mirror of
https://github.com/cline/cline.git
synced 2026-09-19 02:05:44 +08:00
* Add Bedrock prompt caching support (optional) This feature protected under checkbox because it is not yet rolled out to everyone, and if you will try to send cache headers, and its not enabled for you, you will get error * Add changeset * Update supported models * Fix copy --------- Co-authored-by: Saoud Rizwan <7799382+saoudrizwan@users.noreply.github.com>
889 lines
22 KiB
TypeScript
889 lines
22 KiB
TypeScript
export type ApiProvider =
|
|
| "anthropic"
|
|
| "openrouter"
|
|
| "bedrock"
|
|
| "vertex"
|
|
| "openai"
|
|
| "ollama"
|
|
| "lmstudio"
|
|
| "gemini"
|
|
| "openai-native"
|
|
| "requesty"
|
|
| "together"
|
|
| "deepseek"
|
|
| "qwen"
|
|
| "mistral"
|
|
| "vscode-lm"
|
|
| "litellm"
|
|
| "xai"
|
|
|
|
export interface ApiHandlerOptions {
|
|
apiModelId?: string
|
|
apiKey?: string // anthropic
|
|
liteLlmBaseUrl?: string
|
|
liteLlmModelId?: string
|
|
liteLlmApiKey?: string
|
|
anthropicBaseUrl?: string
|
|
openRouterApiKey?: string
|
|
openRouterModelId?: string
|
|
openRouterModelInfo?: ModelInfo
|
|
awsAccessKey?: string
|
|
awsSecretKey?: string
|
|
awsSessionToken?: string
|
|
awsRegion?: string
|
|
awsUseCrossRegionInference?: boolean
|
|
awsBedrockUsePromptCache?: boolean
|
|
awsUseProfile?: boolean
|
|
awsProfile?: string
|
|
vertexProjectId?: string
|
|
vertexRegion?: string
|
|
openAiBaseUrl?: string
|
|
openAiApiKey?: string
|
|
openAiModelId?: string
|
|
openAiModelInfo?: ModelInfo
|
|
ollamaModelId?: string
|
|
ollamaBaseUrl?: string
|
|
lmStudioModelId?: string
|
|
lmStudioBaseUrl?: string
|
|
geminiApiKey?: string
|
|
openAiNativeApiKey?: string
|
|
deepSeekApiKey?: string
|
|
requestyApiKey?: string
|
|
requestyModelId?: string
|
|
togetherApiKey?: string
|
|
togetherModelId?: string
|
|
qwenApiKey?: string
|
|
mistralApiKey?: string
|
|
azureApiVersion?: string
|
|
vsCodeLmModelSelector?: any
|
|
o3MiniReasoningEffort?: string
|
|
qwenApiLine?: string
|
|
xaiApiKey?: string
|
|
thinkingBudgetTokens?: number
|
|
}
|
|
|
|
export type ApiConfiguration = ApiHandlerOptions & {
|
|
apiProvider?: ApiProvider
|
|
}
|
|
|
|
// Models
|
|
|
|
export interface ModelInfo {
|
|
maxTokens?: number
|
|
contextWindow?: number
|
|
supportsImages?: boolean
|
|
supportsComputerUse?: boolean
|
|
supportsPromptCache: boolean // this value is hardcoded for now
|
|
inputPrice?: number
|
|
outputPrice?: number
|
|
cacheWritesPrice?: number
|
|
cacheReadsPrice?: number
|
|
description?: string
|
|
}
|
|
|
|
// Anthropic
|
|
// https://docs.anthropic.com/en/docs/about-claude/models // prices updated 2025-01-02
|
|
export type AnthropicModelId = keyof typeof anthropicModels
|
|
export const anthropicDefaultModelId: AnthropicModelId = "claude-3-7-sonnet-20250219"
|
|
export const anthropicModels = {
|
|
"claude-3-7-sonnet-20250219": {
|
|
maxTokens: 8192,
|
|
contextWindow: 200_000,
|
|
supportsImages: true,
|
|
supportsComputerUse: true,
|
|
supportsPromptCache: true,
|
|
inputPrice: 3.0,
|
|
outputPrice: 15.0,
|
|
cacheWritesPrice: 3.75,
|
|
cacheReadsPrice: 0.3,
|
|
},
|
|
"claude-3-5-sonnet-20241022": {
|
|
maxTokens: 8192,
|
|
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-haiku-20241022": {
|
|
maxTokens: 8192,
|
|
contextWindow: 200_000,
|
|
supportsImages: false,
|
|
supportsPromptCache: true,
|
|
inputPrice: 0.8,
|
|
outputPrice: 4.0,
|
|
cacheWritesPrice: 1.0,
|
|
cacheReadsPrice: 0.08,
|
|
},
|
|
"claude-3-opus-20240229": {
|
|
maxTokens: 4096,
|
|
contextWindow: 200_000,
|
|
supportsImages: true,
|
|
supportsPromptCache: true,
|
|
inputPrice: 15.0,
|
|
outputPrice: 75.0,
|
|
cacheWritesPrice: 18.75,
|
|
cacheReadsPrice: 1.5,
|
|
},
|
|
"claude-3-haiku-20240307": {
|
|
maxTokens: 4096,
|
|
contextWindow: 200_000,
|
|
supportsImages: true,
|
|
supportsPromptCache: true,
|
|
inputPrice: 0.25,
|
|
outputPrice: 1.25,
|
|
cacheWritesPrice: 0.3,
|
|
cacheReadsPrice: 0.03,
|
|
},
|
|
} as const satisfies Record<string, ModelInfo> // as const assertion makes the object deeply readonly
|
|
|
|
// AWS Bedrock
|
|
// https://docs.aws.amazon.com/bedrock/latest/userguide/conversation-inference.html
|
|
export type BedrockModelId = keyof typeof bedrockModels
|
|
export const bedrockDefaultModelId: BedrockModelId = "anthropic.claude-3-7-sonnet-20250219-v1:0"
|
|
export const bedrockModels = {
|
|
"anthropic.claude-3-7-sonnet-20250219-v1:0": {
|
|
maxTokens: 8192,
|
|
contextWindow: 200_000,
|
|
supportsImages: true,
|
|
supportsComputerUse: true,
|
|
supportsPromptCache: true,
|
|
inputPrice: 3.0,
|
|
outputPrice: 15.0,
|
|
cacheWritesPrice: 3.75,
|
|
cacheReadsPrice: 0.3,
|
|
},
|
|
"anthropic.claude-3-5-sonnet-20241022-v2:0": {
|
|
maxTokens: 8192,
|
|
contextWindow: 200_000,
|
|
supportsImages: true,
|
|
supportsComputerUse: true,
|
|
supportsPromptCache: true,
|
|
inputPrice: 3.0,
|
|
outputPrice: 15.0,
|
|
cacheWritesPrice: 3.75,
|
|
cacheReadsPrice: 0.3,
|
|
},
|
|
"anthropic.claude-3-5-haiku-20241022-v1:0": {
|
|
maxTokens: 8192,
|
|
contextWindow: 200_000,
|
|
supportsImages: false,
|
|
supportsPromptCache: true,
|
|
inputPrice: 1.0,
|
|
outputPrice: 5.0,
|
|
cacheWritesPrice: 1.0,
|
|
cacheReadsPrice: 0.08,
|
|
},
|
|
"anthropic.claude-3-5-sonnet-20240620-v1:0": {
|
|
maxTokens: 8192,
|
|
contextWindow: 200_000,
|
|
supportsImages: true,
|
|
supportsPromptCache: false,
|
|
inputPrice: 3.0,
|
|
outputPrice: 15.0,
|
|
},
|
|
"anthropic.claude-3-opus-20240229-v1:0": {
|
|
maxTokens: 4096,
|
|
contextWindow: 200_000,
|
|
supportsImages: true,
|
|
supportsPromptCache: false,
|
|
inputPrice: 15.0,
|
|
outputPrice: 75.0,
|
|
},
|
|
"anthropic.claude-3-sonnet-20240229-v1:0": {
|
|
maxTokens: 4096,
|
|
contextWindow: 200_000,
|
|
supportsImages: true,
|
|
supportsPromptCache: false,
|
|
inputPrice: 3.0,
|
|
outputPrice: 15.0,
|
|
},
|
|
"anthropic.claude-3-haiku-20240307-v1:0": {
|
|
maxTokens: 4096,
|
|
contextWindow: 200_000,
|
|
supportsImages: true,
|
|
supportsPromptCache: false,
|
|
inputPrice: 0.25,
|
|
outputPrice: 1.25,
|
|
},
|
|
} as const satisfies Record<string, ModelInfo>
|
|
|
|
// OpenRouter
|
|
// https://openrouter.ai/models?order=newest&supported_parameters=tools
|
|
export const openRouterDefaultModelId = "anthropic/claude-3.7-sonnet" // will always exist in openRouterModels
|
|
export const openRouterDefaultModelInfo: ModelInfo = {
|
|
maxTokens: 8192,
|
|
contextWindow: 200_000,
|
|
supportsImages: true,
|
|
supportsComputerUse: true,
|
|
supportsPromptCache: true,
|
|
inputPrice: 3.0,
|
|
outputPrice: 15.0,
|
|
cacheWritesPrice: 3.75,
|
|
cacheReadsPrice: 0.3,
|
|
description:
|
|
"Claude 3.7 Sonnet is an advanced large language model with improved reasoning, coding, and problem-solving capabilities. It introduces a hybrid reasoning approach, allowing users to choose between rapid responses and extended, step-by-step processing for complex tasks. The model demonstrates notable improvements in coding, particularly in front-end development and full-stack updates, and excels in agentic workflows, where it can autonomously navigate multi-step processes. \n\nClaude 3.7 Sonnet maintains performance parity with its predecessor in standard mode while offering an extended reasoning mode for enhanced accuracy in math, coding, and instruction-following tasks.\n\nRead more at the [blog post here](https://www.anthropic.com/news/claude-3-7-sonnet)",
|
|
}
|
|
// Vertex AI
|
|
// https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/use-claude
|
|
// https://cloud.google.com/vertex-ai/generative-ai/pricing#partner-models
|
|
export type VertexModelId = keyof typeof vertexModels
|
|
export const vertexDefaultModelId: VertexModelId = "claude-3-7-sonnet@20250219"
|
|
export const vertexModels = {
|
|
"claude-3-7-sonnet@20250219": {
|
|
maxTokens: 8192,
|
|
contextWindow: 200_000,
|
|
supportsImages: true,
|
|
supportsComputerUse: true,
|
|
supportsPromptCache: true,
|
|
inputPrice: 3.0,
|
|
outputPrice: 15.0,
|
|
},
|
|
"claude-3-5-sonnet-v2@20241022": {
|
|
maxTokens: 8192,
|
|
contextWindow: 200_000,
|
|
supportsImages: true,
|
|
supportsComputerUse: true,
|
|
supportsPromptCache: true,
|
|
inputPrice: 3.0,
|
|
outputPrice: 15.0,
|
|
cacheWritesPrice: 3.75,
|
|
cacheReadsPrice: 0.3,
|
|
},
|
|
"claude-3-5-sonnet@20240620": {
|
|
maxTokens: 8192,
|
|
contextWindow: 200_000,
|
|
supportsImages: true,
|
|
supportsPromptCache: true,
|
|
inputPrice: 3.0,
|
|
outputPrice: 15.0,
|
|
cacheWritesPrice: 3.75,
|
|
cacheReadsPrice: 0.3,
|
|
},
|
|
"claude-3-5-haiku@20241022": {
|
|
maxTokens: 8192,
|
|
contextWindow: 200_000,
|
|
supportsImages: false,
|
|
supportsPromptCache: true,
|
|
inputPrice: 1.0,
|
|
outputPrice: 5.0,
|
|
cacheWritesPrice: 1.25,
|
|
cacheReadsPrice: 0.1,
|
|
},
|
|
"claude-3-opus@20240229": {
|
|
maxTokens: 4096,
|
|
contextWindow: 200_000,
|
|
supportsImages: true,
|
|
supportsPromptCache: true,
|
|
inputPrice: 15.0,
|
|
outputPrice: 75.0,
|
|
cacheWritesPrice: 18.75,
|
|
cacheReadsPrice: 1.5,
|
|
},
|
|
"claude-3-haiku@20240307": {
|
|
maxTokens: 4096,
|
|
contextWindow: 200_000,
|
|
supportsImages: true,
|
|
supportsPromptCache: true,
|
|
inputPrice: 0.25,
|
|
outputPrice: 1.25,
|
|
cacheWritesPrice: 0.3,
|
|
cacheReadsPrice: 0.03,
|
|
},
|
|
} as const satisfies Record<string, ModelInfo>
|
|
|
|
export const openAiModelInfoSaneDefaults: ModelInfo = {
|
|
maxTokens: -1,
|
|
contextWindow: 128_000,
|
|
supportsImages: true,
|
|
supportsPromptCache: false,
|
|
inputPrice: 0,
|
|
outputPrice: 0,
|
|
}
|
|
|
|
// Gemini
|
|
// https://ai.google.dev/gemini-api/docs/models/gemini
|
|
export type GeminiModelId = keyof typeof geminiModels
|
|
export const geminiDefaultModelId: GeminiModelId = "gemini-2.0-flash-001"
|
|
export const geminiModels = {
|
|
"gemini-2.0-flash-001": {
|
|
maxTokens: 8192,
|
|
contextWindow: 1_048_576,
|
|
supportsImages: true,
|
|
supportsPromptCache: false,
|
|
inputPrice: 0,
|
|
outputPrice: 0,
|
|
},
|
|
"gemini-2.0-flash-lite-preview-02-05": {
|
|
maxTokens: 8192,
|
|
contextWindow: 1_048_576,
|
|
supportsImages: true,
|
|
supportsPromptCache: false,
|
|
inputPrice: 0,
|
|
outputPrice: 0,
|
|
},
|
|
"gemini-2.0-pro-exp-02-05": {
|
|
maxTokens: 8192,
|
|
contextWindow: 2_097_152,
|
|
supportsImages: true,
|
|
supportsPromptCache: false,
|
|
inputPrice: 0,
|
|
outputPrice: 0,
|
|
},
|
|
"gemini-2.0-flash-thinking-exp-01-21": {
|
|
maxTokens: 65_536,
|
|
contextWindow: 1_048_576,
|
|
supportsImages: true,
|
|
supportsPromptCache: false,
|
|
inputPrice: 0,
|
|
outputPrice: 0,
|
|
},
|
|
"gemini-2.0-flash-thinking-exp-1219": {
|
|
maxTokens: 8192,
|
|
contextWindow: 32_767,
|
|
supportsImages: true,
|
|
supportsPromptCache: false,
|
|
inputPrice: 0,
|
|
outputPrice: 0,
|
|
},
|
|
"gemini-2.0-flash-exp": {
|
|
maxTokens: 8192,
|
|
contextWindow: 1_048_576,
|
|
supportsImages: true,
|
|
supportsPromptCache: false,
|
|
inputPrice: 0,
|
|
outputPrice: 0,
|
|
},
|
|
"gemini-1.5-flash-002": {
|
|
maxTokens: 8192,
|
|
contextWindow: 1_048_576,
|
|
supportsImages: true,
|
|
supportsPromptCache: false,
|
|
inputPrice: 0,
|
|
outputPrice: 0,
|
|
},
|
|
"gemini-1.5-flash-exp-0827": {
|
|
maxTokens: 8192,
|
|
contextWindow: 1_048_576,
|
|
supportsImages: true,
|
|
supportsPromptCache: false,
|
|
inputPrice: 0,
|
|
outputPrice: 0,
|
|
},
|
|
"gemini-1.5-flash-8b-exp-0827": {
|
|
maxTokens: 8192,
|
|
contextWindow: 1_048_576,
|
|
supportsImages: true,
|
|
supportsPromptCache: false,
|
|
inputPrice: 0,
|
|
outputPrice: 0,
|
|
},
|
|
"gemini-1.5-pro-002": {
|
|
maxTokens: 8192,
|
|
contextWindow: 2_097_152,
|
|
supportsImages: true,
|
|
supportsPromptCache: false,
|
|
inputPrice: 0,
|
|
outputPrice: 0,
|
|
},
|
|
"gemini-1.5-pro-exp-0827": {
|
|
maxTokens: 8192,
|
|
contextWindow: 2_097_152,
|
|
supportsImages: true,
|
|
supportsPromptCache: false,
|
|
inputPrice: 0,
|
|
outputPrice: 0,
|
|
},
|
|
"gemini-exp-1206": {
|
|
maxTokens: 8192,
|
|
contextWindow: 2_097_152,
|
|
supportsImages: true,
|
|
supportsPromptCache: false,
|
|
inputPrice: 0,
|
|
outputPrice: 0,
|
|
},
|
|
} as const satisfies Record<string, ModelInfo>
|
|
|
|
// OpenAI Native
|
|
// https://openai.com/api/pricing/
|
|
export type OpenAiNativeModelId = keyof typeof openAiNativeModels
|
|
export const openAiNativeDefaultModelId: OpenAiNativeModelId = "gpt-4o"
|
|
export const openAiNativeModels = {
|
|
"o3-mini": {
|
|
maxTokens: 100_000,
|
|
contextWindow: 200_000,
|
|
supportsImages: false,
|
|
supportsPromptCache: true,
|
|
inputPrice: 1.1,
|
|
outputPrice: 4.4,
|
|
cacheReadsPrice: 0.55,
|
|
},
|
|
// don't support tool use yet
|
|
o1: {
|
|
maxTokens: 100_000,
|
|
contextWindow: 200_000,
|
|
supportsImages: true,
|
|
supportsPromptCache: false,
|
|
inputPrice: 15,
|
|
outputPrice: 60,
|
|
cacheReadsPrice: 7.5,
|
|
},
|
|
"o1-preview": {
|
|
maxTokens: 32_768,
|
|
contextWindow: 128_000,
|
|
supportsImages: true,
|
|
supportsPromptCache: true,
|
|
inputPrice: 15,
|
|
outputPrice: 60,
|
|
cacheReadsPrice: 7.5,
|
|
},
|
|
"o1-mini": {
|
|
maxTokens: 65_536,
|
|
contextWindow: 128_000,
|
|
supportsImages: true,
|
|
supportsPromptCache: true,
|
|
inputPrice: 1.1,
|
|
outputPrice: 4.4,
|
|
cacheReadsPrice: 0.55,
|
|
},
|
|
"gpt-4o": {
|
|
maxTokens: 4_096,
|
|
contextWindow: 128_000,
|
|
supportsImages: true,
|
|
supportsPromptCache: true,
|
|
inputPrice: 2.5,
|
|
outputPrice: 10,
|
|
cacheReadsPrice: 1.25,
|
|
},
|
|
"gpt-4o-mini": {
|
|
maxTokens: 16_384,
|
|
contextWindow: 128_000,
|
|
supportsImages: true,
|
|
supportsPromptCache: true,
|
|
inputPrice: 0.15,
|
|
outputPrice: 0.6,
|
|
cacheReadsPrice: 0.075,
|
|
},
|
|
"gpt-4.5-preview": {
|
|
maxTokens: 16_384,
|
|
contextWindow: 128_000,
|
|
supportsImages: true,
|
|
supportsPromptCache: false,
|
|
inputPrice: 75,
|
|
outputPrice: 150,
|
|
},
|
|
} as const satisfies Record<string, ModelInfo>
|
|
|
|
// Azure OpenAI
|
|
// https://learn.microsoft.com/en-us/azure/ai-services/openai/api-version-deprecation
|
|
// https://learn.microsoft.com/en-us/azure/ai-services/openai/reference#api-specs
|
|
export const azureOpenAiDefaultApiVersion = "2024-08-01-preview"
|
|
|
|
// DeepSeek
|
|
// https://api-docs.deepseek.com/quick_start/pricing
|
|
export type DeepSeekModelId = keyof typeof deepSeekModels
|
|
export const deepSeekDefaultModelId: DeepSeekModelId = "deepseek-chat"
|
|
export const deepSeekModels = {
|
|
"deepseek-chat": {
|
|
maxTokens: 8_000,
|
|
contextWindow: 64_000,
|
|
supportsImages: false,
|
|
supportsPromptCache: true,
|
|
inputPrice: 0.27,
|
|
outputPrice: 1.1,
|
|
cacheWritesPrice: 0.27,
|
|
cacheReadsPrice: 0.07,
|
|
},
|
|
"deepseek-reasoner": {
|
|
maxTokens: 8_000,
|
|
contextWindow: 64_000,
|
|
supportsImages: false,
|
|
supportsPromptCache: true,
|
|
inputPrice: 0.55,
|
|
outputPrice: 2.19,
|
|
cacheWritesPrice: 0.55,
|
|
cacheReadsPrice: 0.14,
|
|
},
|
|
} as const satisfies Record<string, ModelInfo>
|
|
|
|
// Qwen
|
|
// https://bailian.console.aliyun.com/
|
|
export type QwenModelId = keyof typeof qwenModels
|
|
export const qwenDefaultModelId: QwenModelId = "qwen-coder-plus-latest"
|
|
export const qwenModels = {
|
|
"qwen2.5-coder-32b-instruct": {
|
|
maxTokens: 8_192,
|
|
contextWindow: 131_072,
|
|
supportsImages: false,
|
|
supportsPromptCache: false,
|
|
inputPrice: 0.002,
|
|
outputPrice: 0.006,
|
|
cacheWritesPrice: 0.002,
|
|
cacheReadsPrice: 0.006,
|
|
},
|
|
"qwen2.5-coder-14b-instruct": {
|
|
maxTokens: 8_192,
|
|
contextWindow: 131_072,
|
|
supportsImages: false,
|
|
supportsPromptCache: false,
|
|
inputPrice: 0.002,
|
|
outputPrice: 0.006,
|
|
cacheWritesPrice: 0.002,
|
|
cacheReadsPrice: 0.006,
|
|
},
|
|
"qwen2.5-coder-7b-instruct": {
|
|
maxTokens: 8_192,
|
|
contextWindow: 131_072,
|
|
supportsImages: false,
|
|
supportsPromptCache: false,
|
|
inputPrice: 0.001,
|
|
outputPrice: 0.002,
|
|
cacheWritesPrice: 0.001,
|
|
cacheReadsPrice: 0.002,
|
|
},
|
|
"qwen2.5-coder-3b-instruct": {
|
|
maxTokens: 8_192,
|
|
contextWindow: 32_768,
|
|
supportsImages: false,
|
|
supportsPromptCache: false,
|
|
inputPrice: 0.0,
|
|
outputPrice: 0.0,
|
|
cacheWritesPrice: 0.0,
|
|
cacheReadsPrice: 0.0,
|
|
},
|
|
"qwen2.5-coder-1.5b-instruct": {
|
|
maxTokens: 8_192,
|
|
contextWindow: 32_768,
|
|
supportsImages: false,
|
|
supportsPromptCache: false,
|
|
inputPrice: 0.0,
|
|
outputPrice: 0.0,
|
|
cacheWritesPrice: 0.0,
|
|
cacheReadsPrice: 0.0,
|
|
},
|
|
"qwen2.5-coder-0.5b-instruct": {
|
|
maxTokens: 8_192,
|
|
contextWindow: 32_768,
|
|
supportsImages: false,
|
|
supportsPromptCache: false,
|
|
inputPrice: 0.0,
|
|
outputPrice: 0.0,
|
|
cacheWritesPrice: 0.0,
|
|
cacheReadsPrice: 0.0,
|
|
},
|
|
"qwen-coder-plus-latest": {
|
|
maxTokens: 129_024,
|
|
contextWindow: 131_072,
|
|
supportsImages: false,
|
|
supportsPromptCache: false,
|
|
inputPrice: 3.5,
|
|
outputPrice: 7,
|
|
cacheWritesPrice: 3.5,
|
|
cacheReadsPrice: 7,
|
|
},
|
|
"qwen-plus-latest": {
|
|
maxTokens: 129_024,
|
|
contextWindow: 131_072,
|
|
supportsImages: false,
|
|
supportsPromptCache: false,
|
|
inputPrice: 0.8,
|
|
outputPrice: 2,
|
|
cacheWritesPrice: 0.8,
|
|
cacheReadsPrice: 0.2,
|
|
},
|
|
"qwen-turbo-latest": {
|
|
maxTokens: 1_000_000,
|
|
contextWindow: 1_000_000,
|
|
supportsImages: false,
|
|
supportsPromptCache: false,
|
|
inputPrice: 0.8,
|
|
outputPrice: 2,
|
|
cacheWritesPrice: 0.8,
|
|
cacheReadsPrice: 2,
|
|
},
|
|
"qwen-max-latest": {
|
|
maxTokens: 30_720,
|
|
contextWindow: 32_768,
|
|
supportsImages: false,
|
|
supportsPromptCache: false,
|
|
inputPrice: 2.4,
|
|
outputPrice: 9.6,
|
|
cacheWritesPrice: 2.4,
|
|
cacheReadsPrice: 9.6,
|
|
},
|
|
"qwen-coder-plus": {
|
|
maxTokens: 129_024,
|
|
contextWindow: 131_072,
|
|
supportsImages: false,
|
|
supportsPromptCache: false,
|
|
inputPrice: 3.5,
|
|
outputPrice: 7,
|
|
cacheWritesPrice: 3.5,
|
|
cacheReadsPrice: 7,
|
|
},
|
|
"qwen-plus": {
|
|
maxTokens: 129_024,
|
|
contextWindow: 131_072,
|
|
supportsImages: false,
|
|
supportsPromptCache: false,
|
|
inputPrice: 0.8,
|
|
outputPrice: 2,
|
|
cacheWritesPrice: 0.8,
|
|
cacheReadsPrice: 0.2,
|
|
},
|
|
"qwen-turbo": {
|
|
maxTokens: 1_000_000,
|
|
contextWindow: 1_000_000,
|
|
supportsImages: false,
|
|
supportsPromptCache: false,
|
|
inputPrice: 0.3,
|
|
outputPrice: 0.6,
|
|
cacheWritesPrice: 0.3,
|
|
cacheReadsPrice: 0.6,
|
|
},
|
|
"qwen-max": {
|
|
maxTokens: 30_720,
|
|
contextWindow: 32_768,
|
|
supportsImages: false,
|
|
supportsPromptCache: false,
|
|
inputPrice: 2.4,
|
|
outputPrice: 9.6,
|
|
cacheWritesPrice: 2.4,
|
|
cacheReadsPrice: 9.6,
|
|
},
|
|
"deepseek-v3": {
|
|
maxTokens: 8_000,
|
|
contextWindow: 64_000,
|
|
supportsImages: false,
|
|
supportsPromptCache: true,
|
|
inputPrice: 0,
|
|
outputPrice: 0.28,
|
|
cacheWritesPrice: 0.14,
|
|
cacheReadsPrice: 0.014,
|
|
},
|
|
"deepseek-r1": {
|
|
maxTokens: 8_000,
|
|
contextWindow: 64_000,
|
|
supportsImages: false,
|
|
supportsPromptCache: true,
|
|
inputPrice: 0,
|
|
outputPrice: 2.19,
|
|
cacheWritesPrice: 0.55,
|
|
cacheReadsPrice: 0.14,
|
|
},
|
|
"qwen-vl-max": {
|
|
maxTokens: 30_720,
|
|
contextWindow: 32_768,
|
|
supportsImages: true,
|
|
supportsPromptCache: false,
|
|
inputPrice: 3,
|
|
outputPrice: 9,
|
|
cacheWritesPrice: 3,
|
|
cacheReadsPrice: 9,
|
|
},
|
|
"qwen-vl-max-latest": {
|
|
maxTokens: 129_024,
|
|
contextWindow: 131_072,
|
|
supportsImages: true,
|
|
supportsPromptCache: false,
|
|
inputPrice: 3,
|
|
outputPrice: 9,
|
|
cacheWritesPrice: 3,
|
|
cacheReadsPrice: 9,
|
|
},
|
|
"qwen-vl-plus": {
|
|
maxTokens: 6_000,
|
|
contextWindow: 8_000,
|
|
supportsImages: true,
|
|
supportsPromptCache: false,
|
|
inputPrice: 1.5,
|
|
outputPrice: 4.5,
|
|
cacheWritesPrice: 1.5,
|
|
cacheReadsPrice: 4.5,
|
|
},
|
|
"qwen-vl-plus-latest": {
|
|
maxTokens: 129_024,
|
|
contextWindow: 131_072,
|
|
supportsImages: true,
|
|
supportsPromptCache: false,
|
|
inputPrice: 1.5,
|
|
outputPrice: 4.5,
|
|
cacheWritesPrice: 1.5,
|
|
cacheReadsPrice: 4.5,
|
|
},
|
|
} as const satisfies Record<string, ModelInfo>
|
|
|
|
// Mistral
|
|
// https://docs.mistral.ai/getting-started/models/models_overview/
|
|
export type MistralModelId = keyof typeof mistralModels
|
|
export const mistralDefaultModelId: MistralModelId = "codestral-2501"
|
|
export const mistralModels = {
|
|
"mistral-large-2411": {
|
|
maxTokens: 131_000,
|
|
contextWindow: 131_000,
|
|
supportsImages: false,
|
|
supportsPromptCache: false,
|
|
inputPrice: 2.0,
|
|
outputPrice: 6.0,
|
|
},
|
|
"pixtral-large-2411": {
|
|
maxTokens: 131_000,
|
|
contextWindow: 131_000,
|
|
supportsImages: true,
|
|
supportsPromptCache: false,
|
|
inputPrice: 2.0,
|
|
outputPrice: 6.0,
|
|
},
|
|
"ministral-3b-2410": {
|
|
maxTokens: 131_000,
|
|
contextWindow: 131_000,
|
|
supportsImages: false,
|
|
supportsPromptCache: false,
|
|
inputPrice: 0.04,
|
|
outputPrice: 0.04,
|
|
},
|
|
"ministral-8b-2410": {
|
|
maxTokens: 131_000,
|
|
contextWindow: 131_000,
|
|
supportsImages: false,
|
|
supportsPromptCache: false,
|
|
inputPrice: 0.1,
|
|
outputPrice: 0.1,
|
|
},
|
|
"mistral-small-2501": {
|
|
maxTokens: 32_000,
|
|
contextWindow: 32_000,
|
|
supportsImages: false,
|
|
supportsPromptCache: false,
|
|
inputPrice: 0.1,
|
|
outputPrice: 0.3,
|
|
},
|
|
"pixtral-12b-2409": {
|
|
maxTokens: 131_000,
|
|
contextWindow: 131_000,
|
|
supportsImages: true,
|
|
supportsPromptCache: false,
|
|
inputPrice: 0.15,
|
|
outputPrice: 0.15,
|
|
},
|
|
"open-mistral-nemo-2407": {
|
|
maxTokens: 131_000,
|
|
contextWindow: 131_000,
|
|
supportsImages: false,
|
|
supportsPromptCache: false,
|
|
inputPrice: 0.15,
|
|
outputPrice: 0.15,
|
|
},
|
|
"open-codestral-mamba": {
|
|
maxTokens: 256_000,
|
|
contextWindow: 256_000,
|
|
supportsImages: false,
|
|
supportsPromptCache: false,
|
|
inputPrice: 0.15,
|
|
outputPrice: 0.15,
|
|
},
|
|
"codestral-2501": {
|
|
maxTokens: 256_000,
|
|
contextWindow: 256_000,
|
|
supportsImages: false,
|
|
supportsPromptCache: false,
|
|
inputPrice: 0.3,
|
|
outputPrice: 0.9,
|
|
},
|
|
} as const satisfies Record<string, ModelInfo>
|
|
|
|
// LiteLLM
|
|
// https://docs.litellm.ai/docs/
|
|
export type LiteLLMModelId = string
|
|
export const liteLlmDefaultModelId = "gpt-3.5-turbo"
|
|
export const liteLlmModelInfoSaneDefaults: ModelInfo = {
|
|
maxTokens: -1,
|
|
contextWindow: 128_000,
|
|
supportsImages: true,
|
|
supportsPromptCache: false,
|
|
inputPrice: 0,
|
|
outputPrice: 0,
|
|
}
|
|
|
|
// X AI
|
|
// https://docs.x.ai/docs/api-reference
|
|
export type XAIModelId = keyof typeof xaiModels
|
|
export const xaiDefaultModelId: XAIModelId = "grok-2-latest"
|
|
export const xaiModels = {
|
|
"grok-2-latest": {
|
|
maxTokens: 8192,
|
|
contextWindow: 131072,
|
|
supportsImages: false,
|
|
supportsPromptCache: false,
|
|
inputPrice: 2.0,
|
|
outputPrice: 10.0,
|
|
description: "X AI's Grok-2 model - latest version with 131K context window",
|
|
},
|
|
"grok-2": {
|
|
maxTokens: 8192,
|
|
contextWindow: 131072,
|
|
supportsImages: false,
|
|
supportsPromptCache: false,
|
|
inputPrice: 2.0,
|
|
outputPrice: 10.0,
|
|
description: "X AI's Grok-2 model with 131K context window",
|
|
},
|
|
"grok-2-1212": {
|
|
maxTokens: 8192,
|
|
contextWindow: 131072,
|
|
supportsImages: false,
|
|
supportsPromptCache: false,
|
|
inputPrice: 2.0,
|
|
outputPrice: 10.0,
|
|
description: "X AI's Grok-2 model (version 1212) with 131K context window",
|
|
},
|
|
"grok-2-vision-latest": {
|
|
maxTokens: 8192,
|
|
contextWindow: 32768,
|
|
supportsImages: true,
|
|
supportsPromptCache: false,
|
|
inputPrice: 2.0,
|
|
outputPrice: 10.0,
|
|
description: "X AI's Grok-2 Vision model - latest version with image support and 32K context window",
|
|
},
|
|
"grok-2-vision": {
|
|
maxTokens: 8192,
|
|
contextWindow: 32768,
|
|
supportsImages: true,
|
|
supportsPromptCache: false,
|
|
inputPrice: 2.0,
|
|
outputPrice: 10.0,
|
|
description: "X AI's Grok-2 Vision model with image support and 32K context window",
|
|
},
|
|
"grok-2-vision-1212": {
|
|
maxTokens: 8192,
|
|
contextWindow: 32768,
|
|
supportsImages: true,
|
|
supportsPromptCache: false,
|
|
inputPrice: 2.0,
|
|
outputPrice: 10.0,
|
|
description: "X AI's Grok-2 Vision model (version 1212) with image support and 32K context window",
|
|
},
|
|
"grok-vision-beta": {
|
|
maxTokens: 8192,
|
|
contextWindow: 8192,
|
|
supportsImages: true,
|
|
supportsPromptCache: false,
|
|
inputPrice: 5.0,
|
|
outputPrice: 15.0,
|
|
description: "X AI's Grok Vision Beta model with image support and 8K context window",
|
|
},
|
|
"grok-beta": {
|
|
maxTokens: 8192,
|
|
contextWindow: 131072,
|
|
supportsImages: false,
|
|
supportsPromptCache: false,
|
|
inputPrice: 5.0,
|
|
outputPrice: 15.0,
|
|
description: "X AI's Grok Beta model (legacy) with 131K context window",
|
|
},
|
|
} as const satisfies Record<string, ModelInfo>
|