From 92ac610366ca4c21e3d237325c8bf3239888b30d Mon Sep 17 00:00:00 2001 From: cte Date: Mon, 24 Feb 2025 11:14:08 -0800 Subject: [PATCH 1/2] Add Claude 3.7 --- src/api/providers/anthropic.ts | 2 ++ src/api/providers/openrouter.ts | 1 + src/shared/api.ts | 11 +++++++++++ 3 files changed, 14 insertions(+) diff --git a/src/api/providers/anthropic.ts b/src/api/providers/anthropic.ts index 9a14756f5..4c62238f4 100644 --- a/src/api/providers/anthropic.ts +++ b/src/api/providers/anthropic.ts @@ -27,8 +27,10 @@ export class AnthropicHandler implements ApiHandler, SingleCompletionHandler { async *createMessage(systemPrompt: string, messages: Anthropic.Messages.MessageParam[]): ApiStream { let stream: AnthropicStream const modelId = this.getModel().id + switch (modelId) { // 'latest' alias does not support cache_control + case "claude-3-7-sonnet-20250219": case "claude-3-5-sonnet-20241022": case "claude-3-5-haiku-20241022": case "claude-3-opus-20240229": diff --git a/src/api/providers/openrouter.ts b/src/api/providers/openrouter.ts index 1fcf25260..af087226e 100644 --- a/src/api/providers/openrouter.ts +++ b/src/api/providers/openrouter.ts @@ -55,6 +55,7 @@ export class OpenRouterHandler implements ApiHandler, SingleCompletionHandler { // prompt caching: https://openrouter.ai/docs/prompt-caching // this is specifically for claude models (some models may 'support prompt caching' automatically without this) switch (this.getModel().id) { + case "anthropic/claude-3.7-sonnet": case "anthropic/claude-3.5-sonnet": case "anthropic/claude-3.5-sonnet:beta": case "anthropic/claude-3.5-sonnet-20240620": diff --git a/src/shared/api.ts b/src/shared/api.ts index 9ecb12c14..3598eb16a 100644 --- a/src/shared/api.ts +++ b/src/shared/api.ts @@ -95,6 +95,17 @@ export interface ModelInfo { export type AnthropicModelId = keyof typeof anthropicModels export const anthropicDefaultModelId: AnthropicModelId = "claude-3-5-sonnet-20241022" export const anthropicModels = { + "claude-3-7-sonnet-20250219": { + maxTokens: 128_000, + contextWindow: 200_000, + supportsImages: true, + supportsComputerUse: true, + supportsPromptCache: true, + inputPrice: 3.0, // $3 per million input tokens + outputPrice: 15.0, // $15 per million output tokens + cacheWritesPrice: 3.75, // $3.75 per million tokens + cacheReadsPrice: 0.3, // $0.30 per million tokens + }, "claude-3-5-sonnet-20241022": { maxTokens: 8192, contextWindow: 200_000, From c677a450d197bb9b7ee856d2c7353e00abe35b2c Mon Sep 17 00:00:00 2001 From: cte Date: Mon, 24 Feb 2025 11:30:15 -0800 Subject: [PATCH 2/2] Fix maxTokens --- src/shared/api.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/shared/api.ts b/src/shared/api.ts index 3598eb16a..129704ace 100644 --- a/src/shared/api.ts +++ b/src/shared/api.ts @@ -96,7 +96,7 @@ export type AnthropicModelId = keyof typeof anthropicModels export const anthropicDefaultModelId: AnthropicModelId = "claude-3-5-sonnet-20241022" export const anthropicModels = { "claude-3-7-sonnet-20250219": { - maxTokens: 128_000, + maxTokens: 64_000, contextWindow: 200_000, supportsImages: true, supportsComputerUse: true,