From 0a43029dc6b3d91ade0cf2057434e6627d7b482b Mon Sep 17 00:00:00 2001 From: Krish Kalaria <96818172+krishkalaria12@users.noreply.github.com> Date: Thu, 17 Oct 2024 18:07:16 +0530 Subject: [PATCH] Update claude-3-5-sonnet.ts --- models/claude-3-5-sonnet.ts | 73 ++++++++++++++++++------------------- 1 file changed, 35 insertions(+), 38 deletions(-) diff --git a/models/claude-3-5-sonnet.ts b/models/claude-3-5-sonnet.ts index 3ccd970..c47ce9b 100644 --- a/models/claude-3-5-sonnet.ts +++ b/models/claude-3-5-sonnet.ts @@ -1,47 +1,44 @@ -import { Anthropic } from '@anthropic-ai/sdk'; +import { Anthropic } from "@anthropic-ai/sdk"; import { type ModelHandler } from "."; -const anthropic = new Anthropic({ - apiKey: process.env.ANTHROPIC_API_KEY, -}); - export const claude35sonnet: ModelHandler = async (prompt, map) => { - try { - const response = await anthropic.messages.create({ - model: "claude-3-sonnet-20240307", - max_tokens: 1024, - temperature: 0, - system: prompt, - messages: [ - { - role: "user", - content: JSON.stringify(map), - }, - ], - }); + const anthropic = new Anthropic({ + apiKey: process.env.ANTHROPIC_API_KEY, + }); - const content = response.content[0]; + const response = await anthropic.messages.create({ + model: "claude-3-sonnet-20240307", + max_tokens: 1024, + temperature: 0, + system: prompt, + messages: [ + { + role: "user", + content: JSON.stringify(map), + }, + ], + }); - if (content.type !== 'text') { - throw new Error('Unexpected response type from Claude'); - } + const content = response.content[0]; - const parsedResponse = JSON.parse(content.text); + if (content.type !== "text") { + throw new Error("Unexpected response type from Claude"); + } - // Validate the response structure - if (!Array.isArray(parsedResponse.boxCoordinates) || - !Array.isArray(parsedResponse.playerCoordinates) || - typeof parsedResponse.reasoning !== 'string') { - throw new Error('Invalid response structure'); - } + const parsedResponse = JSON.parse(content.text); - return { - boxCoordinates: parsedResponse.boxCoordinates, - playerCoordinates: parsedResponse.playerCoordinates, - reasoning: parsedResponse.reasoning, - }; - } catch (error) { - console.error('Error in Claude 3.5 Sonnet handler:', error); - throw new Error('Failed to process Claude 3.5 Sonnet response'); + // Validate the response structure + if ( + !Array.isArray(parsedResponse.boxCoordinates) || + !Array.isArray(parsedResponse.playerCoordinates) || + typeof parsedResponse.reasoning !== "string" + ) { + throw new Error("Invalid response structure"); } -}; \ No newline at end of file + + return { + boxCoordinates: parsedResponse.boxCoordinates, + playerCoordinates: parsedResponse.playerCoordinates, + reasoning: parsedResponse.reasoning, + }; +};