mirror of
https://github.com/cline/cline.git
synced 2026-09-19 02:05:44 +08:00
* fix(vscode): update Claude Sonnet 5 pricing * fix(vscode): restore Claude Sonnet 4.6 pricing
5628 lines
140 KiB
TypeScript
5628 lines
140 KiB
TypeScript
import { ApiFormat } from "./proto/cline/models"
|
||
import type { ApiHandlerSettings } from "./storage/state-keys"
|
||
|
||
export type ApiProvider =
|
||
| "anthropic"
|
||
| "claude-code"
|
||
| "openrouter"
|
||
| "bedrock"
|
||
| "vertex"
|
||
| "openai"
|
||
| "ollama"
|
||
| "lmstudio"
|
||
| "gemini"
|
||
| "openai-native"
|
||
| "openai-codex"
|
||
| "requesty"
|
||
| "together"
|
||
| "deepseek"
|
||
| "qwen"
|
||
| "qwen-code"
|
||
| "doubao"
|
||
| "mistral"
|
||
| "vscode-lm"
|
||
| "cline"
|
||
| "cline-pass"
|
||
| "litellm"
|
||
| "moonshot"
|
||
| "nebius"
|
||
| "fireworks"
|
||
| "asksage"
|
||
| "xai"
|
||
| "sambanova"
|
||
| "cerebras"
|
||
| "sapaicore"
|
||
| "groq"
|
||
| "huggingface"
|
||
| "huawei-cloud-maas"
|
||
| "dify"
|
||
| "baseten"
|
||
| "vercel-ai-gateway"
|
||
| "zai"
|
||
| "oca"
|
||
| "aihubmix"
|
||
| "minimax"
|
||
| "hicap"
|
||
| "nousResearch"
|
||
| "wandb"
|
||
|
||
export const DEFAULT_API_PROVIDER = "openrouter" as ApiProvider
|
||
|
||
export interface ApiHandlerOptions extends Partial<ApiHandlerSettings> {
|
||
ulid?: string // Used to identify the task in API requests
|
||
onRetryAttempt?: (attempt: number, maxRetries: number, delay: number, error: any) => void // Callback function
|
||
}
|
||
|
||
export type ApiConfiguration = ApiHandlerOptions
|
||
|
||
// Models
|
||
|
||
interface PriceTier {
|
||
tokenLimit: number // Upper limit (inclusive) of *input* tokens for this price. Use Infinity for the highest tier.
|
||
price: number // Price per million tokens for this tier.
|
||
}
|
||
|
||
export interface ModelInfo {
|
||
name?: string
|
||
maxTokens?: number
|
||
contextWindow?: number
|
||
supportsImages?: boolean
|
||
supportsPromptCache: boolean // this value is hardcoded for now
|
||
supportsReasoning?: boolean // Whether the model supports reasoning/thinking mode
|
||
inputPrice?: number // Keep for non-tiered input models
|
||
outputPrice?: number // Keep for non-tiered output models
|
||
thinkingConfig?: {
|
||
maxBudget?: number // Max allowed thinking budget tokens
|
||
outputPrice?: number // Output price per million tokens when budget > 0
|
||
outputPriceTiers?: PriceTier[] // Optional: Tiered output price when budget > 0
|
||
geminiThinkingLevel?: "low" | "high" // Optional: preset thinking level
|
||
supportsThinkingLevel?: boolean // Whether the model supports thinking level (low/high)
|
||
}
|
||
supportsGlobalEndpoint?: boolean // Whether the model supports a global endpoint with Vertex AI
|
||
cacheWritesPrice?: number
|
||
cacheReadsPrice?: number
|
||
description?: string
|
||
tiers?: {
|
||
contextWindow: number
|
||
inputPrice?: number
|
||
outputPrice?: number
|
||
cacheWritesPrice?: number
|
||
cacheReadsPrice?: number
|
||
}[]
|
||
temperature?: number
|
||
apiFormat?: ApiFormat // The API format used by this model
|
||
}
|
||
|
||
export interface OpenAiCompatibleModelInfo extends ModelInfo {
|
||
temperature?: number
|
||
isR1FormatRequired?: boolean
|
||
systemRole?: "developer" | "system"
|
||
supportsReasoningEffort?: boolean
|
||
supportsTools?: boolean
|
||
supportsStreaming?: boolean
|
||
}
|
||
|
||
export interface OcaModelInfo extends OpenAiCompatibleModelInfo {
|
||
modelName: string
|
||
surveyId?: string
|
||
banner?: string
|
||
surveyContent?: string
|
||
supportsReasoning?: boolean
|
||
reasoningEffortOptions: string[]
|
||
}
|
||
|
||
export const CLAUDE_SONNET_1M_SUFFIX = ":1m"
|
||
export const ANTHROPIC_FAST_MODE_SUFFIX = ":fast"
|
||
export const CLAUDE_SONNET_1M_TIERS = [
|
||
{
|
||
contextWindow: 200000,
|
||
inputPrice: 3.0,
|
||
outputPrice: 15,
|
||
cacheWritesPrice: 3.75,
|
||
cacheReadsPrice: 0.3,
|
||
},
|
||
{
|
||
contextWindow: Number.MAX_SAFE_INTEGER, // storing infinity in vs storage is not possible, it converts to 'null', which causes crash in webview ModelInfoView
|
||
inputPrice: 6,
|
||
outputPrice: 22.5,
|
||
cacheWritesPrice: 7.5,
|
||
cacheReadsPrice: 0.6,
|
||
},
|
||
]
|
||
export const CLAUDE_OPUS_1M_TIERS = [
|
||
{
|
||
contextWindow: 200000,
|
||
inputPrice: 5.0,
|
||
outputPrice: 25,
|
||
cacheWritesPrice: 6.25,
|
||
cacheReadsPrice: 0.5,
|
||
},
|
||
{
|
||
contextWindow: Number.MAX_SAFE_INTEGER,
|
||
inputPrice: 10,
|
||
outputPrice: 37.5,
|
||
cacheWritesPrice: 12.5,
|
||
cacheReadsPrice: 1.0,
|
||
},
|
||
]
|
||
export const CLAUDE_FABLE_1M_TIERS = [
|
||
{
|
||
contextWindow: 200000,
|
||
inputPrice: 10,
|
||
outputPrice: 50,
|
||
cacheWritesPrice: 12.5,
|
||
cacheReadsPrice: 1,
|
||
},
|
||
{
|
||
contextWindow: Number.MAX_SAFE_INTEGER,
|
||
inputPrice: 10,
|
||
outputPrice: 50,
|
||
cacheWritesPrice: 12.5,
|
||
cacheReadsPrice: 1,
|
||
},
|
||
]
|
||
|
||
export interface HicapCompatibleModelInfo extends ModelInfo {
|
||
temperature?: number
|
||
}
|
||
|
||
export const hicapModelInfoSaneDefaults: HicapCompatibleModelInfo = {
|
||
maxTokens: -1,
|
||
contextWindow: 128_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
inputPrice: 0,
|
||
outputPrice: 0,
|
||
temperature: 1,
|
||
}
|
||
|
||
// 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-sonnet-5"
|
||
export const ANTHROPIC_MIN_THINKING_BUDGET = 1_024
|
||
export const ANTHROPIC_MAX_THINKING_BUDGET = 6_000
|
||
export const anthropicModels = {
|
||
"claude-sonnet-5": {
|
||
maxTokens: 128_000,
|
||
contextWindow: 200_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
supportsReasoning: true,
|
||
inputPrice: 2.0,
|
||
outputPrice: 10.0,
|
||
cacheWritesPrice: 2.5,
|
||
cacheReadsPrice: 0.2,
|
||
},
|
||
"claude-sonnet-5:1m": {
|
||
maxTokens: 128_000,
|
||
contextWindow: 1_000_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
supportsReasoning: true,
|
||
inputPrice: 2.0,
|
||
outputPrice: 10.0,
|
||
cacheWritesPrice: 2.5,
|
||
cacheReadsPrice: 0.2,
|
||
tiers: CLAUDE_SONNET_1M_TIERS,
|
||
},
|
||
"claude-sonnet-4-6": {
|
||
maxTokens: 64_000,
|
||
contextWindow: 200_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
supportsReasoning: true,
|
||
inputPrice: 3.0,
|
||
outputPrice: 15.0,
|
||
cacheWritesPrice: 3.75,
|
||
cacheReadsPrice: 0.3,
|
||
},
|
||
"claude-sonnet-4-6:1m": {
|
||
maxTokens: 64_000,
|
||
contextWindow: 1_000_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
supportsReasoning: true,
|
||
inputPrice: 3.0,
|
||
outputPrice: 15.0,
|
||
cacheWritesPrice: 3.75,
|
||
cacheReadsPrice: 0.3,
|
||
tiers: CLAUDE_SONNET_1M_TIERS,
|
||
},
|
||
"claude-sonnet-4-5-20250929": {
|
||
maxTokens: 64_000,
|
||
contextWindow: 200_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
supportsReasoning: true,
|
||
inputPrice: 3.0,
|
||
outputPrice: 15.0,
|
||
cacheWritesPrice: 3.75,
|
||
cacheReadsPrice: 0.3,
|
||
},
|
||
"claude-sonnet-4-5-20250929:1m": {
|
||
maxTokens: 64_000,
|
||
contextWindow: 1_000_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
supportsReasoning: true,
|
||
inputPrice: 3.0,
|
||
outputPrice: 15.0,
|
||
cacheWritesPrice: 3.75,
|
||
cacheReadsPrice: 0.3,
|
||
tiers: CLAUDE_SONNET_1M_TIERS,
|
||
},
|
||
"claude-haiku-4-5-20251001": {
|
||
maxTokens: 64_000,
|
||
contextWindow: 200_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
supportsReasoning: true,
|
||
inputPrice: 1,
|
||
outputPrice: 5.0,
|
||
cacheWritesPrice: 1.25,
|
||
cacheReadsPrice: 0.1,
|
||
},
|
||
"claude-sonnet-4-20250514": {
|
||
maxTokens: 64_000,
|
||
contextWindow: 200_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
supportsReasoning: true,
|
||
inputPrice: 3.0,
|
||
outputPrice: 15.0,
|
||
cacheWritesPrice: 3.75,
|
||
cacheReadsPrice: 0.3,
|
||
},
|
||
"claude-sonnet-4-20250514:1m": {
|
||
maxTokens: 64_000,
|
||
contextWindow: 1_000_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
supportsReasoning: true,
|
||
inputPrice: 3.0,
|
||
outputPrice: 15.0,
|
||
cacheWritesPrice: 3.75,
|
||
cacheReadsPrice: 0.3,
|
||
tiers: CLAUDE_SONNET_1M_TIERS,
|
||
},
|
||
"claude-opus-4-6": {
|
||
maxTokens: 128_000,
|
||
contextWindow: 200_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
supportsReasoning: true,
|
||
inputPrice: 5.0,
|
||
outputPrice: 25.0,
|
||
cacheWritesPrice: 6.25,
|
||
cacheReadsPrice: 0.5,
|
||
},
|
||
"claude-opus-4-6:fast": {
|
||
maxTokens: 128_000,
|
||
contextWindow: 200_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
supportsReasoning: true,
|
||
inputPrice: 30.0,
|
||
outputPrice: 150.0,
|
||
cacheWritesPrice: 37.5,
|
||
cacheReadsPrice: 3.0,
|
||
description:
|
||
"Anthropic fast mode preview for Claude Opus 4.6. Same model and capabilities with higher output token speed at premium pricing. Requires fast mode access on your Anthropic account.",
|
||
},
|
||
"claude-opus-4-6:1m": {
|
||
maxTokens: 128_000,
|
||
contextWindow: 1_000_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
supportsReasoning: true,
|
||
inputPrice: 5.0,
|
||
outputPrice: 25.0,
|
||
cacheWritesPrice: 6.25,
|
||
cacheReadsPrice: 0.5,
|
||
tiers: CLAUDE_OPUS_1M_TIERS,
|
||
},
|
||
"claude-opus-4-6:1m:fast": {
|
||
maxTokens: 128_000,
|
||
contextWindow: 1_000_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
supportsReasoning: true,
|
||
inputPrice: 30.0,
|
||
outputPrice: 150.0,
|
||
cacheWritesPrice: 37.5,
|
||
cacheReadsPrice: 3.0,
|
||
description:
|
||
"Anthropic fast mode preview for Claude Opus 4.6 with the 1M context beta enabled. Same model and capabilities with higher output token speed at premium pricing across the full 1M context window. Requires both fast mode and 1M context access on your Anthropic account.",
|
||
},
|
||
"claude-opus-4-8": {
|
||
maxTokens: 128_000,
|
||
contextWindow: 200_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
supportsReasoning: true,
|
||
inputPrice: 5.0,
|
||
outputPrice: 25.0,
|
||
cacheWritesPrice: 6.25,
|
||
cacheReadsPrice: 0.5,
|
||
},
|
||
"claude-opus-4-8:1m": {
|
||
maxTokens: 128_000,
|
||
contextWindow: 1_000_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
supportsReasoning: true,
|
||
inputPrice: 5.0,
|
||
outputPrice: 25.0,
|
||
cacheWritesPrice: 6.25,
|
||
cacheReadsPrice: 0.5,
|
||
tiers: CLAUDE_OPUS_1M_TIERS,
|
||
},
|
||
"claude-fable-5": {
|
||
maxTokens: 128_000,
|
||
contextWindow: 200_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
supportsReasoning: true,
|
||
inputPrice: 10,
|
||
outputPrice: 50,
|
||
cacheWritesPrice: 12.5,
|
||
cacheReadsPrice: 1,
|
||
},
|
||
"claude-fable-5:1m": {
|
||
maxTokens: 128_000,
|
||
contextWindow: 1_000_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
supportsReasoning: true,
|
||
inputPrice: 10,
|
||
outputPrice: 50,
|
||
cacheWritesPrice: 12.5,
|
||
cacheReadsPrice: 1,
|
||
tiers: CLAUDE_FABLE_1M_TIERS,
|
||
},
|
||
"claude-opus-4-7": {
|
||
maxTokens: 128_000,
|
||
contextWindow: 200_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
supportsReasoning: true,
|
||
inputPrice: 5.0,
|
||
outputPrice: 25.0,
|
||
cacheWritesPrice: 6.25,
|
||
cacheReadsPrice: 0.5,
|
||
},
|
||
"claude-opus-4-7:1m": {
|
||
maxTokens: 128_000,
|
||
contextWindow: 1_000_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
supportsReasoning: true,
|
||
inputPrice: 5.0,
|
||
outputPrice: 25.0,
|
||
cacheWritesPrice: 6.25,
|
||
cacheReadsPrice: 0.5,
|
||
tiers: CLAUDE_OPUS_1M_TIERS,
|
||
},
|
||
"claude-opus-4-5-20251101": {
|
||
maxTokens: 64_000,
|
||
contextWindow: 200_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
supportsReasoning: true,
|
||
inputPrice: 5.0,
|
||
outputPrice: 25.0,
|
||
cacheWritesPrice: 6.25,
|
||
cacheReadsPrice: 0.5,
|
||
},
|
||
"claude-opus-4-1-20250805": {
|
||
maxTokens: 32_000,
|
||
contextWindow: 200_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
supportsReasoning: true,
|
||
inputPrice: 15.0,
|
||
outputPrice: 75.0,
|
||
cacheWritesPrice: 18.75,
|
||
cacheReadsPrice: 1.5,
|
||
},
|
||
"claude-opus-4-20250514": {
|
||
maxTokens: 32_000,
|
||
contextWindow: 200_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
supportsReasoning: true,
|
||
inputPrice: 15.0,
|
||
outputPrice: 75.0,
|
||
cacheWritesPrice: 18.75,
|
||
cacheReadsPrice: 1.5,
|
||
},
|
||
"claude-3-7-sonnet-20250219": {
|
||
maxTokens: 128_000,
|
||
contextWindow: 200_000,
|
||
supportsImages: true,
|
||
|
||
supportsPromptCache: true,
|
||
supportsReasoning: 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,
|
||
|
||
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: true,
|
||
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
|
||
|
||
// Claude Code
|
||
export type ClaudeCodeModelId = keyof typeof claudeCodeModels
|
||
export const claudeCodeDefaultModelId: ClaudeCodeModelId = "claude-sonnet-5"
|
||
export const claudeCodeModels = {
|
||
sonnet: {
|
||
...anthropicModels["claude-sonnet-5"],
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
},
|
||
"sonnet[1m]": {
|
||
...anthropicModels["claude-sonnet-5:1m"],
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
},
|
||
opus: {
|
||
...anthropicModels["claude-opus-4-8"],
|
||
contextWindow: 200_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
},
|
||
"opus[1m]": {
|
||
...anthropicModels["claude-opus-4-8:1m"],
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
},
|
||
"claude-haiku-4-5-20251001": {
|
||
...anthropicModels["claude-haiku-4-5-20251001"],
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
},
|
||
"claude-sonnet-5": {
|
||
...anthropicModels["claude-sonnet-5"],
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
},
|
||
"claude-sonnet-5[1m]": {
|
||
...anthropicModels["claude-sonnet-5:1m"],
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
},
|
||
"claude-sonnet-4-6": {
|
||
...anthropicModels["claude-sonnet-4-6"],
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
},
|
||
"claude-sonnet-4-6[1m]": {
|
||
...anthropicModels["claude-sonnet-4-6:1m"],
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
},
|
||
"claude-sonnet-4-5-20250929": {
|
||
...anthropicModels["claude-sonnet-4-5-20250929"],
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
},
|
||
"claude-sonnet-4-5-20250929[1m]": {
|
||
...anthropicModels["claude-sonnet-4-5-20250929:1m"],
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
},
|
||
"claude-sonnet-4-20250514": {
|
||
...anthropicModels["claude-sonnet-4-20250514"],
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
},
|
||
"claude-opus-4-6": {
|
||
...anthropicModels["claude-opus-4-6"],
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
},
|
||
"claude-opus-4-6[1m]": {
|
||
...anthropicModels["claude-opus-4-6:1m"],
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
},
|
||
"claude-opus-4-8": {
|
||
...anthropicModels["claude-opus-4-8"],
|
||
contextWindow: 200_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
},
|
||
"claude-opus-4-8[1m]": {
|
||
...anthropicModels["claude-opus-4-8:1m"],
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
},
|
||
"claude-fable-5": {
|
||
...anthropicModels["claude-fable-5"],
|
||
contextWindow: 200_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
},
|
||
"claude-fable-5[1m]": {
|
||
...anthropicModels["claude-fable-5:1m"],
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
},
|
||
"claude-opus-4-7": {
|
||
...anthropicModels["claude-opus-4-7"],
|
||
contextWindow: 200_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
},
|
||
"claude-opus-4-7[1m]": {
|
||
...anthropicModels["claude-opus-4-7:1m"],
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
},
|
||
"claude-opus-4-5-20251101": {
|
||
...anthropicModels["claude-opus-4-5-20251101"],
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
},
|
||
"claude-opus-4-1-20250805": {
|
||
...anthropicModels["claude-opus-4-1-20250805"],
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
},
|
||
"claude-opus-4-20250514": {
|
||
...anthropicModels["claude-opus-4-20250514"],
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
},
|
||
"claude-3-7-sonnet-20250219": {
|
||
...anthropicModels["claude-3-7-sonnet-20250219"],
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
},
|
||
"claude-3-5-haiku-20241022": {
|
||
...anthropicModels["claude-3-5-haiku-20241022"],
|
||
supportsImages: true,
|
||
supportsPromptCache: false,
|
||
},
|
||
} as const satisfies Record<string, ModelInfo>
|
||
|
||
// 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-sonnet-5"
|
||
export const bedrockModels = {
|
||
"anthropic.claude-sonnet-5": {
|
||
maxTokens: 128_000,
|
||
contextWindow: 200_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
supportsReasoning: true,
|
||
supportsGlobalEndpoint: true,
|
||
inputPrice: 2.0,
|
||
outputPrice: 10.0,
|
||
cacheWritesPrice: 2.5,
|
||
cacheReadsPrice: 0.2,
|
||
},
|
||
"anthropic.claude-sonnet-5:1m": {
|
||
maxTokens: 128_000,
|
||
contextWindow: 1_000_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
supportsReasoning: true,
|
||
supportsGlobalEndpoint: true,
|
||
inputPrice: 2.0,
|
||
outputPrice: 10.0,
|
||
cacheWritesPrice: 2.5,
|
||
cacheReadsPrice: 0.2,
|
||
tiers: CLAUDE_SONNET_1M_TIERS,
|
||
},
|
||
"anthropic.claude-sonnet-4-6": {
|
||
maxTokens: 64_000,
|
||
contextWindow: 200_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
supportsReasoning: true,
|
||
supportsGlobalEndpoint: true,
|
||
inputPrice: 3.0,
|
||
outputPrice: 15.0,
|
||
cacheWritesPrice: 3.75,
|
||
cacheReadsPrice: 0.3,
|
||
},
|
||
"anthropic.claude-sonnet-4-6:1m": {
|
||
maxTokens: 64_000,
|
||
contextWindow: 1_000_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
supportsReasoning: true,
|
||
supportsGlobalEndpoint: true,
|
||
inputPrice: 3.0,
|
||
outputPrice: 15.0,
|
||
cacheWritesPrice: 3.75,
|
||
cacheReadsPrice: 0.3,
|
||
tiers: CLAUDE_SONNET_1M_TIERS,
|
||
},
|
||
"anthropic.claude-sonnet-4-5-20250929-v1:0": {
|
||
maxTokens: 64_000,
|
||
contextWindow: 200_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
supportsReasoning: true,
|
||
supportsGlobalEndpoint: true,
|
||
inputPrice: 3.0,
|
||
outputPrice: 15.0,
|
||
cacheWritesPrice: 3.75,
|
||
cacheReadsPrice: 0.3,
|
||
},
|
||
"anthropic.claude-sonnet-4-5-20250929-v1:0:1m": {
|
||
maxTokens: 64_000,
|
||
contextWindow: 1_000_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
supportsReasoning: true,
|
||
supportsGlobalEndpoint: true,
|
||
inputPrice: 3.0,
|
||
outputPrice: 15.0,
|
||
cacheWritesPrice: 3.75,
|
||
cacheReadsPrice: 0.3,
|
||
tiers: CLAUDE_SONNET_1M_TIERS,
|
||
},
|
||
"anthropic.claude-haiku-4-5-20251001-v1:0": {
|
||
maxTokens: 64_000,
|
||
contextWindow: 200_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
supportsReasoning: true,
|
||
supportsGlobalEndpoint: true,
|
||
inputPrice: 1,
|
||
outputPrice: 5.0,
|
||
cacheWritesPrice: 1.25,
|
||
cacheReadsPrice: 0.1,
|
||
},
|
||
"anthropic.claude-sonnet-4-20250514-v1:0": {
|
||
maxTokens: 64_000,
|
||
contextWindow: 200_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
supportsReasoning: true,
|
||
supportsGlobalEndpoint: true,
|
||
inputPrice: 3.0,
|
||
outputPrice: 15.0,
|
||
cacheWritesPrice: 3.75,
|
||
cacheReadsPrice: 0.3,
|
||
},
|
||
"anthropic.claude-sonnet-4-20250514-v1:0:1m": {
|
||
maxTokens: 64_000,
|
||
contextWindow: 1_000_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
supportsReasoning: true,
|
||
supportsGlobalEndpoint: true,
|
||
inputPrice: 3.0,
|
||
outputPrice: 15.0,
|
||
cacheWritesPrice: 3.75,
|
||
cacheReadsPrice: 0.3,
|
||
tiers: CLAUDE_SONNET_1M_TIERS,
|
||
},
|
||
"anthropic.claude-opus-4-6-v1": {
|
||
maxTokens: 128_000,
|
||
contextWindow: 200_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
supportsReasoning: true,
|
||
supportsGlobalEndpoint: true,
|
||
inputPrice: 5.0,
|
||
outputPrice: 25.0,
|
||
cacheWritesPrice: 6.25,
|
||
cacheReadsPrice: 0.5,
|
||
},
|
||
"anthropic.claude-opus-4-6-v1:1m": {
|
||
maxTokens: 128_000,
|
||
contextWindow: 1_000_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
supportsReasoning: true,
|
||
supportsGlobalEndpoint: true,
|
||
inputPrice: 5.0,
|
||
outputPrice: 25.0,
|
||
cacheWritesPrice: 6.25,
|
||
cacheReadsPrice: 0.5,
|
||
tiers: CLAUDE_OPUS_1M_TIERS,
|
||
},
|
||
"anthropic.claude-opus-4-8": {
|
||
maxTokens: 128_000,
|
||
contextWindow: 200_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
supportsReasoning: true,
|
||
supportsGlobalEndpoint: true,
|
||
inputPrice: 5.0,
|
||
outputPrice: 25.0,
|
||
cacheWritesPrice: 6.25,
|
||
cacheReadsPrice: 0.5,
|
||
},
|
||
"anthropic.claude-opus-4-8:1m": {
|
||
maxTokens: 128_000,
|
||
contextWindow: 1_000_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
supportsReasoning: true,
|
||
supportsGlobalEndpoint: true,
|
||
inputPrice: 5.0,
|
||
outputPrice: 25.0,
|
||
cacheWritesPrice: 6.25,
|
||
cacheReadsPrice: 0.5,
|
||
tiers: CLAUDE_OPUS_1M_TIERS,
|
||
},
|
||
"anthropic.claude-fable-5": {
|
||
maxTokens: 128_000,
|
||
contextWindow: 200_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
supportsReasoning: true,
|
||
supportsGlobalEndpoint: true,
|
||
inputPrice: 10,
|
||
outputPrice: 50,
|
||
cacheWritesPrice: 12.5,
|
||
cacheReadsPrice: 1,
|
||
},
|
||
"anthropic.claude-fable-5:1m": {
|
||
maxTokens: 128_000,
|
||
contextWindow: 1_000_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
supportsReasoning: true,
|
||
supportsGlobalEndpoint: true,
|
||
inputPrice: 10,
|
||
outputPrice: 50,
|
||
cacheWritesPrice: 12.5,
|
||
cacheReadsPrice: 1,
|
||
tiers: CLAUDE_FABLE_1M_TIERS,
|
||
},
|
||
"anthropic.claude-opus-4-7": {
|
||
maxTokens: 128_000,
|
||
contextWindow: 200_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
supportsReasoning: true,
|
||
supportsGlobalEndpoint: true,
|
||
inputPrice: 5.0,
|
||
outputPrice: 25.0,
|
||
cacheWritesPrice: 6.25,
|
||
cacheReadsPrice: 0.5,
|
||
},
|
||
"anthropic.claude-opus-4-7:1m": {
|
||
maxTokens: 128_000,
|
||
contextWindow: 1_000_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
supportsReasoning: true,
|
||
supportsGlobalEndpoint: true,
|
||
inputPrice: 5.0,
|
||
outputPrice: 25.0,
|
||
cacheWritesPrice: 6.25,
|
||
cacheReadsPrice: 0.5,
|
||
tiers: CLAUDE_OPUS_1M_TIERS,
|
||
},
|
||
"anthropic.claude-opus-4-5-20251101-v1:0": {
|
||
maxTokens: 64_000,
|
||
contextWindow: 200_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
supportsReasoning: true,
|
||
supportsGlobalEndpoint: true,
|
||
inputPrice: 5.0,
|
||
outputPrice: 25.0,
|
||
cacheWritesPrice: 6.25,
|
||
cacheReadsPrice: 0.5,
|
||
},
|
||
"anthropic.claude-opus-4-20250514-v1:0": {
|
||
maxTokens: 32_000,
|
||
contextWindow: 200_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
supportsReasoning: true,
|
||
inputPrice: 15.0,
|
||
outputPrice: 75.0,
|
||
cacheWritesPrice: 18.75,
|
||
cacheReadsPrice: 1.5,
|
||
},
|
||
"anthropic.claude-opus-4-1-20250805-v1:0": {
|
||
maxTokens: 32_000,
|
||
contextWindow: 200_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
supportsReasoning: true,
|
||
inputPrice: 15.0,
|
||
outputPrice: 75.0,
|
||
cacheWritesPrice: 18.75,
|
||
cacheReadsPrice: 1.5,
|
||
},
|
||
"amazon.nova-premier-v1:0": {
|
||
maxTokens: 10_000,
|
||
contextWindow: 1_000_000,
|
||
supportsImages: true,
|
||
|
||
supportsPromptCache: false,
|
||
inputPrice: 2.5,
|
||
outputPrice: 12.5,
|
||
},
|
||
"amazon.nova-pro-v1:0": {
|
||
maxTokens: 5000,
|
||
contextWindow: 300_000,
|
||
supportsImages: true,
|
||
|
||
supportsPromptCache: true,
|
||
inputPrice: 0.8,
|
||
outputPrice: 3.2,
|
||
// cacheWritesPrice: 3.2, // not written
|
||
cacheReadsPrice: 0.2,
|
||
},
|
||
"amazon.nova-lite-v1:0": {
|
||
maxTokens: 5000,
|
||
contextWindow: 300_000,
|
||
supportsImages: true,
|
||
|
||
supportsPromptCache: true,
|
||
inputPrice: 0.06,
|
||
outputPrice: 0.24,
|
||
// cacheWritesPrice: 0.24, // not written
|
||
cacheReadsPrice: 0.015,
|
||
},
|
||
"amazon.nova-2-lite-v1:0": {
|
||
maxTokens: 5000,
|
||
contextWindow: 1_000_000,
|
||
supportsImages: true,
|
||
|
||
supportsPromptCache: true,
|
||
inputPrice: 0.3,
|
||
outputPrice: 2.5,
|
||
// cacheWritesPrice: 2.5, // not written
|
||
cacheReadsPrice: 0.075,
|
||
supportsGlobalEndpoint: true,
|
||
},
|
||
"amazon.nova-micro-v1:0": {
|
||
maxTokens: 5000,
|
||
contextWindow: 128_000,
|
||
supportsImages: false,
|
||
|
||
supportsPromptCache: true,
|
||
inputPrice: 0.035,
|
||
outputPrice: 0.14,
|
||
// cacheWritesPrice: 0.14, // not written
|
||
cacheReadsPrice: 0.00875,
|
||
},
|
||
"anthropic.claude-3-7-sonnet-20250219-v1:0": {
|
||
maxTokens: 128_000,
|
||
contextWindow: 200_000,
|
||
supportsImages: true,
|
||
|
||
supportsPromptCache: true,
|
||
supportsReasoning: 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,
|
||
|
||
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: true,
|
||
supportsPromptCache: true,
|
||
inputPrice: 0.8,
|
||
outputPrice: 4.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,
|
||
},
|
||
"deepseek.r1-v1:0": {
|
||
maxTokens: 8_000,
|
||
contextWindow: 64_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 1.35,
|
||
outputPrice: 5.4,
|
||
},
|
||
"openai.gpt-oss-120b-1:0": {
|
||
maxTokens: 8192,
|
||
contextWindow: 128_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.15,
|
||
outputPrice: 0.6,
|
||
description:
|
||
"A state-of-the-art 120B open-weight Mixture-of-Experts language model optimized for strong reasoning, tool use, and efficient deployment on large GPUs",
|
||
},
|
||
"openai.gpt-oss-20b-1:0": {
|
||
maxTokens: 8192,
|
||
contextWindow: 128_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.07,
|
||
outputPrice: 0.3,
|
||
description:
|
||
"A compact 20B open-weight Mixture-of-Experts language model designed for strong reasoning and tool use, ideal for edge devices and local inference.",
|
||
},
|
||
"qwen.qwen3-coder-30b-a3b-v1:0": {
|
||
maxTokens: 8192,
|
||
contextWindow: 262_144,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.15,
|
||
outputPrice: 0.6,
|
||
description:
|
||
"Qwen3 Coder 30B MoE model with 3.3B activated parameters, optimized for code generation and analysis with 256K context window.",
|
||
},
|
||
"qwen.qwen3-coder-480b-a35b-v1:0": {
|
||
maxTokens: 8192,
|
||
contextWindow: 262_144,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.22,
|
||
outputPrice: 1.8,
|
||
description:
|
||
"Qwen3 Coder 480B flagship MoE model with 35B activated parameters, designed for complex coding tasks with advanced reasoning capabilities and 256K context window.",
|
||
},
|
||
} as const satisfies Record<string, ModelInfo>
|
||
|
||
// OpenRouter
|
||
// https://openrouter.ai/models?order=newest&supported_parameters=tools
|
||
export const openRouterDefaultModelId = "anthropic/claude-sonnet-5" // will always exist in openRouterModels
|
||
export const openRouterClaudeSonnet41mModelId = `anthropic/claude-sonnet-4${CLAUDE_SONNET_1M_SUFFIX}`
|
||
export const openRouterClaudeSonnet451mModelId = `anthropic/claude-sonnet-4.5${CLAUDE_SONNET_1M_SUFFIX}`
|
||
export const openRouterClaudeSonnet461mModelId = `anthropic/claude-sonnet-4.6${CLAUDE_SONNET_1M_SUFFIX}`
|
||
export const openRouterClaudeSonnet51mModelId = `anthropic/claude-sonnet-5${CLAUDE_SONNET_1M_SUFFIX}`
|
||
export const openRouterClaudeOpus461mModelId = `anthropic/claude-opus-4.6${CLAUDE_SONNET_1M_SUFFIX}`
|
||
export const openRouterClaudeOpus471mModelId = `anthropic/claude-opus-4.7${CLAUDE_SONNET_1M_SUFFIX}`
|
||
export const openRouterClaudeOpus481mModelId = `anthropic/claude-opus-4.8${CLAUDE_SONNET_1M_SUFFIX}`
|
||
export const openRouterClaudeFable51mModelId = `anthropic/claude-fable-5${CLAUDE_SONNET_1M_SUFFIX}`
|
||
export const openRouterDefaultModelInfo: ModelInfo = {
|
||
maxTokens: 128_000,
|
||
contextWindow: 200_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
inputPrice: 2.0,
|
||
outputPrice: 10.0,
|
||
cacheWritesPrice: 2.5,
|
||
cacheReadsPrice: 0.2,
|
||
description:
|
||
"Claude Sonnet 5 is Anthropic's latest Sonnet model for coding, agents, and professional work. It supports adaptive thinking, prompt caching, image inputs, and long-context workflows.",
|
||
}
|
||
|
||
// Cline custom model - Devstral
|
||
export const clineDevstralModelInfo: ModelInfo = {
|
||
contextWindow: 256000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0,
|
||
outputPrice: 0,
|
||
cacheReadsPrice: 0,
|
||
cacheWritesPrice: 0,
|
||
description: "A stealth model for agentic coding tasks",
|
||
}
|
||
|
||
export type ClinePassModelId = keyof typeof clinePassModels
|
||
export const clinePassDefaultModelId = "cline-pass/glm-5.2"
|
||
export const clinePassModelInfoSaneDefaults: ModelInfo = {
|
||
maxTokens: 8_192,
|
||
contextWindow: 128_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
supportsReasoning: true,
|
||
inputPrice: 0,
|
||
outputPrice: 0,
|
||
cacheReadsPrice: 0,
|
||
cacheWritesPrice: 0,
|
||
description: "",
|
||
}
|
||
export const clinePassModels = {
|
||
"cline-pass/glm-5.2": {
|
||
name: "cline-pass/glm-5.2",
|
||
maxTokens: 131_072,
|
||
contextWindow: 202_752,
|
||
supportsImages: false,
|
||
supportsPromptCache: true,
|
||
supportsReasoning: true,
|
||
inputPrice: 0.98,
|
||
outputPrice: 3.08,
|
||
cacheReadsPrice: 0.182,
|
||
cacheWritesPrice: 0,
|
||
description: "",
|
||
},
|
||
"cline-pass/glm-5.1": {
|
||
name: "cline-pass/glm-5.1",
|
||
maxTokens: 131_072,
|
||
contextWindow: 202_752,
|
||
supportsImages: false,
|
||
supportsPromptCache: true,
|
||
supportsReasoning: true,
|
||
inputPrice: 0.98,
|
||
outputPrice: 3.08,
|
||
cacheReadsPrice: 0.182,
|
||
cacheWritesPrice: 0,
|
||
description: "",
|
||
},
|
||
} as const satisfies Record<string, ModelInfo>
|
||
|
||
export function getModelSlug(modelId: string): string {
|
||
return modelId.split("/").at(-1) ?? modelId
|
||
}
|
||
|
||
export function buildModelInfoNameMap(models: Record<string, ModelInfo>): Record<string, ModelInfo> {
|
||
const nameMap: Record<string, ModelInfo> = {}
|
||
|
||
for (const [id, info] of Object.entries(models)) {
|
||
nameMap[getModelSlug(id)] = info
|
||
}
|
||
|
||
return nameMap
|
||
}
|
||
|
||
export function resolveClinePassModelInfo(modelId: string, modelInfoByName?: Record<string, ModelInfo>): ModelInfo {
|
||
const modelSlug = getModelSlug(modelId)
|
||
const clinePassSlugModelId = `cline-pass/${modelSlug}`
|
||
return (
|
||
modelInfoByName?.[modelSlug] ??
|
||
clinePassModels[modelId as keyof typeof clinePassModels] ??
|
||
clinePassModels[clinePassSlugModelId as keyof typeof clinePassModels] ??
|
||
clinePassModelInfoSaneDefaults
|
||
)
|
||
}
|
||
|
||
export const OPENROUTER_PROVIDER_PREFERENCES: Record<string, { order: string[]; allow_fallbacks: boolean }> = {
|
||
// Exacto Providers
|
||
"moonshotai/kimi-k2:exacto": {
|
||
order: ["groq", "moonshotai"],
|
||
allow_fallbacks: false,
|
||
},
|
||
"z-ai/glm-4.6:exacto": {
|
||
order: ["z-ai", "novita"],
|
||
allow_fallbacks: false,
|
||
},
|
||
"deepseek/deepseek-v3.1-terminus:exacto": {
|
||
order: ["novita", "deepinfra"],
|
||
allow_fallbacks: false,
|
||
},
|
||
"qwen/qwen3-coder:exacto": {
|
||
order: ["baseten"],
|
||
allow_fallbacks: false,
|
||
},
|
||
"openai/gpt-oss-120b:exacto": {
|
||
order: ["groq", "novita"],
|
||
allow_fallbacks: false,
|
||
},
|
||
|
||
// Normal Providers
|
||
"moonshotai/kimi-k2": {
|
||
order: ["groq", "fireworks", "baseten", "parasail", "novita", "deepinfra"],
|
||
allow_fallbacks: false,
|
||
},
|
||
"qwen/qwen3-coder": {
|
||
order: ["nebius", "baseten", "fireworks", "together", "deepinfra"],
|
||
allow_fallbacks: false,
|
||
},
|
||
"qwen/qwen3-235b-a22b-thinking-2507": {
|
||
order: ["nebius", "baseten", "fireworks", "together", "deepinfra"],
|
||
allow_fallbacks: false,
|
||
},
|
||
"qwen/qwen3-235b-a22b-07-25": {
|
||
order: ["nebius", "baseten", "fireworks", "together", "deepinfra"],
|
||
allow_fallbacks: false,
|
||
},
|
||
"qwen/qwen3-30b-a3b-thinking-2507": {
|
||
order: ["nebius", "baseten", "fireworks", "together", "deepinfra"],
|
||
allow_fallbacks: false,
|
||
},
|
||
"qwen/qwen3-30b-a3b-instruct-2507": {
|
||
order: ["nebius", "baseten", "fireworks", "together", "deepinfra"],
|
||
allow_fallbacks: false,
|
||
},
|
||
"qwen/qwen3-30b-a3b:free": {
|
||
order: ["nebius", "baseten", "fireworks", "together", "deepinfra"],
|
||
allow_fallbacks: false,
|
||
},
|
||
"qwen/qwen3-next-80b-a3b-thinking": {
|
||
order: ["nebius", "baseten", "fireworks", "together", "deepinfra"],
|
||
allow_fallbacks: false,
|
||
},
|
||
"qwen/qwen3-next-80b-a3b-instruct": {
|
||
order: ["nebius", "baseten", "fireworks", "together", "deepinfra"],
|
||
allow_fallbacks: false,
|
||
},
|
||
"qwen/qwen3-max": {
|
||
order: ["nebius", "baseten", "fireworks", "together", "deepinfra"],
|
||
allow_fallbacks: false,
|
||
},
|
||
"deepseek/deepseek-v3.2-exp": {
|
||
order: ["deepseek", "novita", "fireworks", "nebius"],
|
||
allow_fallbacks: false,
|
||
},
|
||
"z-ai/glm-4.6": {
|
||
order: ["z-ai", "novita", "baseten", "fireworks", "chutes"],
|
||
allow_fallbacks: false,
|
||
},
|
||
"z-ai/glm-4.5v": {
|
||
order: ["z-ai", "novita", "baseten", "fireworks", "chutes"],
|
||
allow_fallbacks: false,
|
||
},
|
||
"z-ai/glm-4.5": {
|
||
order: ["z-ai", "novita", "baseten", "fireworks", "chutes"],
|
||
allow_fallbacks: false,
|
||
},
|
||
"z-ai/glm-4.5-air": {
|
||
order: ["z-ai", "novita", "baseten", "fireworks", "chutes"],
|
||
allow_fallbacks: false,
|
||
},
|
||
}
|
||
|
||
// 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 = "gemini-3-pro-preview"
|
||
export const vertexModels = {
|
||
"gemini-3.5-flash": {
|
||
maxTokens: 65536,
|
||
contextWindow: 1_048_576,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
supportsGlobalEndpoint: true,
|
||
inputPrice: 1.5,
|
||
outputPrice: 9.0,
|
||
cacheReadsPrice: 0.15,
|
||
temperature: 1.0,
|
||
supportsReasoning: true,
|
||
thinkingConfig: {
|
||
geminiThinkingLevel: "low",
|
||
supportsThinkingLevel: true,
|
||
},
|
||
},
|
||
"gemini-3.1-pro-preview": {
|
||
maxTokens: 8192,
|
||
contextWindow: 1_048_576,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
supportsGlobalEndpoint: true,
|
||
inputPrice: 2.0,
|
||
outputPrice: 12.0,
|
||
temperature: 1.0,
|
||
supportsReasoning: true,
|
||
thinkingConfig: {
|
||
geminiThinkingLevel: "high",
|
||
supportsThinkingLevel: true,
|
||
},
|
||
},
|
||
"gemini-3-pro-preview": {
|
||
maxTokens: 8192,
|
||
contextWindow: 1_048_576,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
supportsGlobalEndpoint: true,
|
||
inputPrice: 2.0,
|
||
outputPrice: 12.0,
|
||
temperature: 1.0,
|
||
supportsReasoning: true,
|
||
thinkingConfig: {
|
||
geminiThinkingLevel: "high",
|
||
supportsThinkingLevel: true,
|
||
},
|
||
},
|
||
"gemini-3-flash-preview": {
|
||
maxTokens: 65536,
|
||
contextWindow: 1_048_576,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
supportsGlobalEndpoint: true,
|
||
inputPrice: 0.5,
|
||
outputPrice: 3.0,
|
||
cacheWritesPrice: 0.05,
|
||
temperature: 1.0,
|
||
supportsReasoning: true,
|
||
thinkingConfig: {
|
||
geminiThinkingLevel: "high",
|
||
supportsThinkingLevel: true,
|
||
},
|
||
},
|
||
"claude-sonnet-5": {
|
||
maxTokens: 128_000,
|
||
contextWindow: 200_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
inputPrice: 2.0,
|
||
outputPrice: 10.0,
|
||
cacheWritesPrice: 2.5,
|
||
cacheReadsPrice: 0.2,
|
||
supportsReasoning: true,
|
||
},
|
||
"claude-sonnet-5:1m": {
|
||
maxTokens: 128_000,
|
||
contextWindow: 1_000_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
inputPrice: 2.0,
|
||
outputPrice: 10.0,
|
||
cacheWritesPrice: 2.5,
|
||
cacheReadsPrice: 0.2,
|
||
supportsReasoning: true,
|
||
tiers: CLAUDE_SONNET_1M_TIERS,
|
||
},
|
||
"claude-sonnet-4-6": {
|
||
maxTokens: 64_000,
|
||
contextWindow: 200_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
inputPrice: 3.0,
|
||
outputPrice: 15.0,
|
||
cacheWritesPrice: 3.75,
|
||
cacheReadsPrice: 0.3,
|
||
supportsReasoning: true,
|
||
},
|
||
"claude-sonnet-4-6:1m": {
|
||
maxTokens: 64_000,
|
||
contextWindow: 1_000_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
inputPrice: 3.0,
|
||
outputPrice: 15.0,
|
||
cacheWritesPrice: 3.75,
|
||
cacheReadsPrice: 0.3,
|
||
supportsReasoning: true,
|
||
tiers: CLAUDE_SONNET_1M_TIERS,
|
||
},
|
||
"claude-sonnet-4-5@20250929": {
|
||
maxTokens: 64_000,
|
||
contextWindow: 200_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
inputPrice: 3.0,
|
||
outputPrice: 15.0,
|
||
cacheWritesPrice: 3.75,
|
||
cacheReadsPrice: 0.3,
|
||
supportsReasoning: true,
|
||
},
|
||
"claude-sonnet-4@20250514": {
|
||
maxTokens: 64_000,
|
||
contextWindow: 200_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
inputPrice: 3.0,
|
||
outputPrice: 15.0,
|
||
cacheWritesPrice: 3.75,
|
||
cacheReadsPrice: 0.3,
|
||
supportsReasoning: true,
|
||
},
|
||
"claude-haiku-4-5@20251001": {
|
||
maxTokens: 64_000,
|
||
contextWindow: 200_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: true,
|
||
inputPrice: 1.0,
|
||
outputPrice: 5.0,
|
||
cacheWritesPrice: 1.25,
|
||
cacheReadsPrice: 0.1,
|
||
supportsReasoning: true,
|
||
},
|
||
"claude-opus-4-6": {
|
||
maxTokens: 128_000,
|
||
contextWindow: 200_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
supportsGlobalEndpoint: true,
|
||
inputPrice: 5.0,
|
||
outputPrice: 25.0,
|
||
cacheWritesPrice: 6.25,
|
||
cacheReadsPrice: 0.5,
|
||
supportsReasoning: true,
|
||
},
|
||
"claude-opus-4-6:1m": {
|
||
maxTokens: 128_000,
|
||
contextWindow: 1_000_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
supportsGlobalEndpoint: true,
|
||
inputPrice: 5.0,
|
||
outputPrice: 25.0,
|
||
cacheWritesPrice: 6.25,
|
||
cacheReadsPrice: 0.5,
|
||
supportsReasoning: true,
|
||
tiers: CLAUDE_OPUS_1M_TIERS,
|
||
},
|
||
"claude-opus-4-8": {
|
||
maxTokens: 128_000,
|
||
contextWindow: 200_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
supportsGlobalEndpoint: true,
|
||
inputPrice: 5.0,
|
||
outputPrice: 25.0,
|
||
cacheWritesPrice: 6.25,
|
||
cacheReadsPrice: 0.5,
|
||
supportsReasoning: true,
|
||
},
|
||
"claude-opus-4-8:1m": {
|
||
maxTokens: 128_000,
|
||
contextWindow: 1_000_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
supportsGlobalEndpoint: true,
|
||
inputPrice: 5.0,
|
||
outputPrice: 25.0,
|
||
cacheWritesPrice: 6.25,
|
||
cacheReadsPrice: 0.5,
|
||
supportsReasoning: true,
|
||
tiers: CLAUDE_OPUS_1M_TIERS,
|
||
},
|
||
"claude-fable-5": {
|
||
maxTokens: 128_000,
|
||
contextWindow: 200_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
supportsGlobalEndpoint: true,
|
||
inputPrice: 10,
|
||
outputPrice: 50,
|
||
cacheWritesPrice: 12.5,
|
||
cacheReadsPrice: 1,
|
||
supportsReasoning: true,
|
||
},
|
||
"claude-fable-5:1m": {
|
||
maxTokens: 128_000,
|
||
contextWindow: 1_000_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
supportsGlobalEndpoint: true,
|
||
inputPrice: 10,
|
||
outputPrice: 50,
|
||
cacheWritesPrice: 12.5,
|
||
cacheReadsPrice: 1,
|
||
supportsReasoning: true,
|
||
tiers: CLAUDE_FABLE_1M_TIERS,
|
||
},
|
||
"claude-opus-4-7": {
|
||
maxTokens: 128_000,
|
||
contextWindow: 200_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
supportsGlobalEndpoint: true,
|
||
inputPrice: 5.0,
|
||
outputPrice: 25.0,
|
||
cacheWritesPrice: 6.25,
|
||
cacheReadsPrice: 0.5,
|
||
supportsReasoning: true,
|
||
},
|
||
"claude-opus-4-7:1m": {
|
||
maxTokens: 128_000,
|
||
contextWindow: 1_000_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
supportsGlobalEndpoint: true,
|
||
inputPrice: 5.0,
|
||
outputPrice: 25.0,
|
||
cacheWritesPrice: 6.25,
|
||
cacheReadsPrice: 0.5,
|
||
supportsReasoning: true,
|
||
tiers: CLAUDE_OPUS_1M_TIERS,
|
||
},
|
||
"claude-opus-4-5@20251101": {
|
||
maxTokens: 64_000,
|
||
contextWindow: 200_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
inputPrice: 5.0,
|
||
outputPrice: 25.0,
|
||
cacheWritesPrice: 6.25,
|
||
cacheReadsPrice: 0.5,
|
||
supportsReasoning: true,
|
||
},
|
||
"claude-opus-4-1@20250805": {
|
||
maxTokens: 32_000,
|
||
contextWindow: 200_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
inputPrice: 15.0,
|
||
outputPrice: 75.0,
|
||
cacheWritesPrice: 18.75,
|
||
cacheReadsPrice: 1.5,
|
||
supportsReasoning: true,
|
||
},
|
||
"claude-opus-4@20250514": {
|
||
maxTokens: 32_000,
|
||
contextWindow: 200_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
inputPrice: 15.0,
|
||
outputPrice: 75.0,
|
||
cacheWritesPrice: 18.75,
|
||
cacheReadsPrice: 1.5,
|
||
supportsReasoning: true,
|
||
},
|
||
"claude-3-7-sonnet@20250219": {
|
||
maxTokens: 128_000,
|
||
contextWindow: 200_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
inputPrice: 3.0,
|
||
outputPrice: 15.0,
|
||
cacheWritesPrice: 3.75,
|
||
cacheReadsPrice: 0.3,
|
||
thinkingConfig: {
|
||
maxBudget: 64000,
|
||
outputPrice: 15.0,
|
||
},
|
||
supportsReasoning: true,
|
||
},
|
||
"claude-3-5-sonnet-v2@20241022": {
|
||
maxTokens: 8192,
|
||
contextWindow: 200_000,
|
||
supportsImages: 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: true,
|
||
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,
|
||
},
|
||
"mistral-large-2411": {
|
||
maxTokens: 128_000,
|
||
contextWindow: 128_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 2.0,
|
||
outputPrice: 6.0,
|
||
},
|
||
"mistral-small-2503": {
|
||
maxTokens: 128_000,
|
||
contextWindow: 128_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.1,
|
||
outputPrice: 0.3,
|
||
},
|
||
"codestral-2501": {
|
||
maxTokens: 256_000,
|
||
contextWindow: 256_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.3,
|
||
outputPrice: 0.9,
|
||
},
|
||
"llama-4-maverick-17b-128e-instruct-maas": {
|
||
maxTokens: 128_000,
|
||
contextWindow: 1_048_576,
|
||
supportsImages: true,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.35,
|
||
outputPrice: 1.15,
|
||
},
|
||
"llama-4-scout-17b-16e-instruct-maas": {
|
||
maxTokens: 1_000_000,
|
||
contextWindow: 10_485_760,
|
||
supportsImages: true,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.25,
|
||
outputPrice: 0.7,
|
||
},
|
||
"gemini-2.0-flash-001": {
|
||
maxTokens: 8192,
|
||
contextWindow: 1_048_576,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
supportsGlobalEndpoint: true,
|
||
inputPrice: 0.15,
|
||
outputPrice: 0.6,
|
||
cacheWritesPrice: 1.0,
|
||
cacheReadsPrice: 0.025,
|
||
},
|
||
"gemini-2.0-flash-lite-001": {
|
||
maxTokens: 8192,
|
||
contextWindow: 1_048_576,
|
||
supportsImages: true,
|
||
supportsPromptCache: false,
|
||
supportsGlobalEndpoint: true,
|
||
inputPrice: 0.075,
|
||
outputPrice: 0.3,
|
||
},
|
||
"gemini-2.0-flash-thinking-exp-1219": {
|
||
maxTokens: 8192,
|
||
contextWindow: 32_767,
|
||
supportsImages: true,
|
||
supportsPromptCache: false,
|
||
supportsGlobalEndpoint: true,
|
||
inputPrice: 0,
|
||
outputPrice: 0,
|
||
},
|
||
"gemini-2.0-flash-exp": {
|
||
maxTokens: 8192,
|
||
contextWindow: 1_048_576,
|
||
supportsImages: true,
|
||
supportsPromptCache: false,
|
||
supportsGlobalEndpoint: true,
|
||
inputPrice: 0,
|
||
outputPrice: 0,
|
||
},
|
||
"gemini-2.5-pro-exp-03-25": {
|
||
maxTokens: 65536,
|
||
contextWindow: 1_048_576,
|
||
supportsImages: true,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0,
|
||
outputPrice: 0,
|
||
},
|
||
"gemini-2.5-pro": {
|
||
maxTokens: 65536,
|
||
contextWindow: 1_048_576,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
supportsGlobalEndpoint: true,
|
||
inputPrice: 2.5,
|
||
outputPrice: 15,
|
||
cacheReadsPrice: 0.625,
|
||
thinkingConfig: {
|
||
maxBudget: 32767,
|
||
},
|
||
tiers: [
|
||
{
|
||
contextWindow: 200000,
|
||
inputPrice: 1.25,
|
||
outputPrice: 10,
|
||
cacheReadsPrice: 0.31,
|
||
},
|
||
{
|
||
contextWindow: Number.POSITIVE_INFINITY,
|
||
inputPrice: 2.5,
|
||
outputPrice: 15,
|
||
cacheReadsPrice: 0.625,
|
||
},
|
||
],
|
||
},
|
||
"gemini-2.5-flash": {
|
||
maxTokens: 65536,
|
||
contextWindow: 1_048_576,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
supportsGlobalEndpoint: true,
|
||
inputPrice: 0.3,
|
||
outputPrice: 2.5,
|
||
thinkingConfig: {
|
||
maxBudget: 24576,
|
||
outputPrice: 3.5,
|
||
},
|
||
},
|
||
|
||
"gemini-2.5-flash-lite-preview-06-17": {
|
||
maxTokens: 64000,
|
||
contextWindow: 1_000_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
supportsGlobalEndpoint: true,
|
||
inputPrice: 0.1,
|
||
outputPrice: 0.4,
|
||
cacheReadsPrice: 0.025,
|
||
description: "Preview version - may not be available in all regions",
|
||
thinkingConfig: {
|
||
maxBudget: 24576,
|
||
},
|
||
},
|
||
"gemini-2.0-flash-thinking-exp-01-21": {
|
||
maxTokens: 65_536,
|
||
contextWindow: 1_048_576,
|
||
supportsImages: true,
|
||
supportsPromptCache: false,
|
||
supportsGlobalEndpoint: true,
|
||
inputPrice: 0,
|
||
outputPrice: 0,
|
||
},
|
||
"gemini-exp-1206": {
|
||
maxTokens: 8192,
|
||
contextWindow: 2_097_152,
|
||
supportsImages: true,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0,
|
||
outputPrice: 0,
|
||
},
|
||
"gemini-1.5-flash-002": {
|
||
maxTokens: 8192,
|
||
contextWindow: 1_048_576,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
inputPrice: 0.15,
|
||
outputPrice: 0.6,
|
||
cacheWritesPrice: 1.0,
|
||
cacheReadsPrice: 0.0375,
|
||
tiers: [
|
||
{
|
||
contextWindow: 128000,
|
||
inputPrice: 0.075,
|
||
outputPrice: 0.3,
|
||
cacheReadsPrice: 0.01875,
|
||
},
|
||
{
|
||
contextWindow: Number.POSITIVE_INFINITY,
|
||
inputPrice: 0.15,
|
||
outputPrice: 0.6,
|
||
cacheReadsPrice: 0.0375,
|
||
},
|
||
],
|
||
},
|
||
"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: 1.25,
|
||
outputPrice: 5,
|
||
},
|
||
"gemini-1.5-pro-exp-0827": {
|
||
maxTokens: 8192,
|
||
contextWindow: 2_097_152,
|
||
supportsImages: true,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0,
|
||
outputPrice: 0,
|
||
},
|
||
} as const satisfies Record<string, ModelInfo>
|
||
|
||
export const vertexGlobalModels: Record<string, ModelInfo> = Object.fromEntries(
|
||
Object.entries(vertexModels).filter(([_k, v]) => Object.hasOwn(v, "supportsGlobalEndpoint")),
|
||
) as Record<string, ModelInfo>
|
||
|
||
export const openAiModelInfoSaneDefaults: OpenAiCompatibleModelInfo = {
|
||
maxTokens: -1,
|
||
contextWindow: 128_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: false,
|
||
isR1FormatRequired: false,
|
||
inputPrice: 0,
|
||
outputPrice: 0,
|
||
temperature: 0,
|
||
}
|
||
|
||
// Gemini
|
||
// https://ai.google.dev/gemini-api/docs/models/gemini
|
||
export type GeminiModelId = keyof typeof geminiModels
|
||
export const geminiDefaultModelId: GeminiModelId = "gemini-3.1-pro-preview"
|
||
export const geminiModels = {
|
||
"gemini-3.5-flash": {
|
||
maxTokens: 65536,
|
||
contextWindow: 1_048_576,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
inputPrice: 1.5,
|
||
outputPrice: 9.0,
|
||
cacheReadsPrice: 0.15,
|
||
supportsReasoning: true,
|
||
thinkingConfig: {
|
||
geminiThinkingLevel: "low",
|
||
supportsThinkingLevel: true,
|
||
},
|
||
},
|
||
"gemini-3.1-pro-preview": {
|
||
maxTokens: 65536,
|
||
contextWindow: 1_048_576,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
inputPrice: 4.0,
|
||
outputPrice: 18.0,
|
||
cacheReadsPrice: 0.4,
|
||
thinkingConfig: {
|
||
// If you don't specify a thinking level, Gemini will use the model's default
|
||
// dynamic thinking level, "high", for Gemini 3 Pro Preview.
|
||
geminiThinkingLevel: "high",
|
||
supportsThinkingLevel: true,
|
||
},
|
||
tiers: [
|
||
{
|
||
contextWindow: 200000,
|
||
inputPrice: 2.0,
|
||
outputPrice: 12.0,
|
||
cacheReadsPrice: 0.2,
|
||
},
|
||
{
|
||
contextWindow: Number.POSITIVE_INFINITY,
|
||
inputPrice: 4.0,
|
||
outputPrice: 18.0,
|
||
cacheReadsPrice: 0.4,
|
||
},
|
||
],
|
||
},
|
||
"gemini-3-pro-preview": {
|
||
maxTokens: 65536,
|
||
contextWindow: 1_048_576,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
inputPrice: 4.0,
|
||
outputPrice: 18.0,
|
||
cacheReadsPrice: 0.4,
|
||
thinkingConfig: {
|
||
geminiThinkingLevel: "high",
|
||
supportsThinkingLevel: true,
|
||
},
|
||
tiers: [
|
||
{
|
||
contextWindow: 200000,
|
||
inputPrice: 2.0,
|
||
outputPrice: 12.0,
|
||
cacheReadsPrice: 0.2,
|
||
},
|
||
{
|
||
contextWindow: Number.POSITIVE_INFINITY,
|
||
inputPrice: 4.0,
|
||
outputPrice: 18.0,
|
||
cacheReadsPrice: 0.4,
|
||
},
|
||
],
|
||
},
|
||
"gemini-3-flash-preview": {
|
||
maxTokens: 65536,
|
||
contextWindow: 1_048_576,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
supportsGlobalEndpoint: true,
|
||
inputPrice: 0.5,
|
||
outputPrice: 3.0,
|
||
cacheWritesPrice: 0.05,
|
||
supportsReasoning: true,
|
||
thinkingConfig: {
|
||
geminiThinkingLevel: "low",
|
||
supportsThinkingLevel: true,
|
||
},
|
||
tiers: [
|
||
{
|
||
contextWindow: 200000,
|
||
inputPrice: 0.3,
|
||
outputPrice: 2.5,
|
||
cacheReadsPrice: 0.03,
|
||
},
|
||
{
|
||
contextWindow: Number.POSITIVE_INFINITY,
|
||
inputPrice: 0.3,
|
||
outputPrice: 2.5,
|
||
cacheReadsPrice: 0.03,
|
||
},
|
||
],
|
||
},
|
||
"gemini-2.5-pro": {
|
||
maxTokens: 65536,
|
||
contextWindow: 1_048_576,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
inputPrice: 2.5,
|
||
outputPrice: 15,
|
||
cacheReadsPrice: 0.625,
|
||
thinkingConfig: {
|
||
maxBudget: 32767,
|
||
},
|
||
tiers: [
|
||
{
|
||
contextWindow: 200000,
|
||
inputPrice: 1.25,
|
||
outputPrice: 10,
|
||
cacheReadsPrice: 0.31,
|
||
},
|
||
{
|
||
contextWindow: Number.POSITIVE_INFINITY,
|
||
inputPrice: 2.5,
|
||
outputPrice: 15,
|
||
cacheReadsPrice: 0.625,
|
||
},
|
||
],
|
||
},
|
||
"gemini-2.5-flash-lite-preview-06-17": {
|
||
maxTokens: 64000,
|
||
contextWindow: 1_000_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
supportsGlobalEndpoint: true,
|
||
inputPrice: 0.1,
|
||
outputPrice: 0.4,
|
||
cacheReadsPrice: 0.025,
|
||
description: "Preview version - may not be available in all regions",
|
||
thinkingConfig: {
|
||
maxBudget: 24576,
|
||
},
|
||
},
|
||
"gemini-2.5-flash": {
|
||
maxTokens: 65536,
|
||
contextWindow: 1_048_576,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
inputPrice: 0.3,
|
||
outputPrice: 2.5,
|
||
cacheReadsPrice: 0.075,
|
||
thinkingConfig: {
|
||
maxBudget: 24576,
|
||
outputPrice: 3.5,
|
||
},
|
||
},
|
||
"gemini-2.0-flash-001": {
|
||
maxTokens: 8192,
|
||
contextWindow: 1_048_576,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
inputPrice: 0.1,
|
||
outputPrice: 0.4,
|
||
cacheReadsPrice: 0.025,
|
||
cacheWritesPrice: 1.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: true,
|
||
inputPrice: 0.15, // Default price (highest tier)
|
||
outputPrice: 0.6, // Default price (highest tier)
|
||
cacheReadsPrice: 0.0375,
|
||
cacheWritesPrice: 1.0,
|
||
tiers: [
|
||
{
|
||
contextWindow: 128000,
|
||
inputPrice: 0.075,
|
||
outputPrice: 0.3,
|
||
cacheReadsPrice: 0.01875,
|
||
},
|
||
{
|
||
contextWindow: Number.POSITIVE_INFINITY,
|
||
inputPrice: 0.15,
|
||
outputPrice: 0.6,
|
||
cacheReadsPrice: 0.0375,
|
||
},
|
||
],
|
||
},
|
||
"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-5.5"
|
||
export const openAiNativeModels = {
|
||
"gpt-5.5": {
|
||
maxTokens: 8_192,
|
||
contextWindow: 1_050_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
inputPrice: 5.0,
|
||
outputPrice: 30.0,
|
||
cacheReadsPrice: 0.5,
|
||
apiFormat: ApiFormat.OPENAI_RESPONSES,
|
||
temperature: 1,
|
||
systemRole: "developer",
|
||
supportsReasoning: true,
|
||
supportsReasoningEffort: true,
|
||
},
|
||
"gpt-5.4": {
|
||
maxTokens: 8_192,
|
||
contextWindow: 1_050_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
inputPrice: 2.5,
|
||
outputPrice: 15.0,
|
||
cacheReadsPrice: 0.25,
|
||
apiFormat: ApiFormat.OPENAI_RESPONSES,
|
||
temperature: 1,
|
||
systemRole: "developer",
|
||
supportsReasoning: true,
|
||
supportsReasoningEffort: true,
|
||
},
|
||
"gpt-5.4-mini": {
|
||
maxTokens: 8_192,
|
||
contextWindow: 400_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
inputPrice: 0.75,
|
||
outputPrice: 4.5,
|
||
cacheReadsPrice: 0.075,
|
||
apiFormat: ApiFormat.OPENAI_RESPONSES,
|
||
temperature: 1,
|
||
systemRole: "developer",
|
||
supportsReasoning: true,
|
||
supportsReasoningEffort: true,
|
||
},
|
||
"gpt-5.4-nano": {
|
||
maxTokens: 8_192,
|
||
contextWindow: 400_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
inputPrice: 0.2,
|
||
outputPrice: 1.25,
|
||
cacheReadsPrice: 0.02,
|
||
apiFormat: ApiFormat.OPENAI_RESPONSES,
|
||
temperature: 1,
|
||
systemRole: "developer",
|
||
supportsReasoning: true,
|
||
supportsReasoningEffort: true,
|
||
},
|
||
"gpt-5.3-codex": {
|
||
maxTokens: 8_192, // 128000 breaks context window truncation
|
||
contextWindow: 400000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
inputPrice: 1.75,
|
||
outputPrice: 14.0,
|
||
cacheReadsPrice: 0.175,
|
||
apiFormat: ApiFormat.OPENAI_RESPONSES_WEBSOCKET_MODE,
|
||
temperature: 1,
|
||
systemRole: "developer",
|
||
supportsReasoning: true,
|
||
supportsReasoningEffort: true,
|
||
},
|
||
"gpt-5.3-chat-latest": {
|
||
maxTokens: 16_384,
|
||
contextWindow: 128_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
inputPrice: 1.75,
|
||
outputPrice: 14.0,
|
||
cacheReadsPrice: 0.175,
|
||
temperature: 1,
|
||
systemRole: "developer",
|
||
},
|
||
"gpt-5.2-chat-latest": {
|
||
maxTokens: 16_384,
|
||
contextWindow: 128_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
inputPrice: 1.75,
|
||
outputPrice: 14.0,
|
||
cacheReadsPrice: 0.175,
|
||
temperature: 1,
|
||
systemRole: "developer",
|
||
},
|
||
"gpt-5.2": {
|
||
maxTokens: 8_192,
|
||
contextWindow: 272000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
inputPrice: 1.75,
|
||
outputPrice: 14.0,
|
||
cacheReadsPrice: 0.175,
|
||
temperature: 1,
|
||
systemRole: "developer",
|
||
supportsReasoning: true,
|
||
supportsReasoningEffort: true,
|
||
},
|
||
"gpt-5.2-codex": {
|
||
maxTokens: 8_192, // 128000 breaks context window truncation
|
||
contextWindow: 400000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
inputPrice: 1.75,
|
||
outputPrice: 14.0,
|
||
cacheReadsPrice: 0.175,
|
||
apiFormat: ApiFormat.OPENAI_RESPONSES_WEBSOCKET_MODE,
|
||
temperature: 1,
|
||
systemRole: "developer",
|
||
supportsReasoning: true,
|
||
supportsReasoningEffort: true,
|
||
},
|
||
"gpt-5.1-2025-11-13": {
|
||
maxTokens: 8_192,
|
||
contextWindow: 272000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
inputPrice: 1.25,
|
||
outputPrice: 10.0,
|
||
cacheReadsPrice: 0.125,
|
||
temperature: 1,
|
||
systemRole: "developer",
|
||
supportsReasoning: true,
|
||
supportsReasoningEffort: true,
|
||
},
|
||
"gpt-5.1": {
|
||
maxTokens: 8_192, // 128000 breaks context window truncation
|
||
contextWindow: 272000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
inputPrice: 1.25,
|
||
outputPrice: 10.0,
|
||
cacheReadsPrice: 0.125,
|
||
temperature: 1,
|
||
systemRole: "developer",
|
||
supportsReasoning: true,
|
||
supportsReasoningEffort: true,
|
||
},
|
||
"gpt-5.1-codex": {
|
||
maxTokens: 8_192, // 128000 breaks context window truncation
|
||
contextWindow: 400000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
inputPrice: 1.25,
|
||
outputPrice: 10.0,
|
||
cacheReadsPrice: 0.125,
|
||
apiFormat: ApiFormat.OPENAI_RESPONSES_WEBSOCKET_MODE,
|
||
temperature: 1,
|
||
systemRole: "developer",
|
||
supportsReasoning: true,
|
||
supportsReasoningEffort: true,
|
||
},
|
||
"gpt-5.1-chat-latest": {
|
||
maxTokens: 8_192,
|
||
contextWindow: 400000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
inputPrice: 1.25,
|
||
outputPrice: 10,
|
||
cacheReadsPrice: 0.125,
|
||
temperature: 1,
|
||
systemRole: "developer",
|
||
supportsReasoning: true,
|
||
supportsReasoningEffort: true,
|
||
},
|
||
"gpt-5-2025-08-07": {
|
||
maxTokens: 8_192, // 128000 breaks context window truncation
|
||
contextWindow: 272000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
inputPrice: 1.25,
|
||
outputPrice: 10.0,
|
||
cacheReadsPrice: 0.125,
|
||
temperature: 1,
|
||
systemRole: "developer",
|
||
supportsReasoning: true,
|
||
supportsReasoningEffort: true,
|
||
},
|
||
"gpt-5-codex": {
|
||
maxTokens: 8_192, // 128000 breaks context window truncation
|
||
contextWindow: 400000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
inputPrice: 1.25,
|
||
outputPrice: 10.0,
|
||
cacheReadsPrice: 0.125,
|
||
apiFormat: ApiFormat.OPENAI_RESPONSES_WEBSOCKET_MODE,
|
||
temperature: 1,
|
||
systemRole: "developer",
|
||
supportsReasoning: true,
|
||
supportsReasoningEffort: true,
|
||
},
|
||
"gpt-5-mini-2025-08-07": {
|
||
maxTokens: 8_192,
|
||
contextWindow: 272000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
inputPrice: 0.25,
|
||
outputPrice: 2.0,
|
||
cacheReadsPrice: 0.025,
|
||
temperature: 1,
|
||
systemRole: "developer",
|
||
supportsReasoning: true,
|
||
supportsReasoningEffort: true,
|
||
},
|
||
"gpt-5-nano-2025-08-07": {
|
||
maxTokens: 8_192,
|
||
contextWindow: 272000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
inputPrice: 0.05,
|
||
outputPrice: 0.4,
|
||
cacheReadsPrice: 0.005,
|
||
temperature: 1,
|
||
systemRole: "developer",
|
||
supportsReasoning: true,
|
||
supportsReasoningEffort: true,
|
||
},
|
||
"gpt-5-chat-latest": {
|
||
maxTokens: 8_192,
|
||
contextWindow: 400000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
inputPrice: 1.25,
|
||
outputPrice: 10,
|
||
cacheReadsPrice: 0.125,
|
||
temperature: 1,
|
||
systemRole: "developer",
|
||
supportsReasoning: true,
|
||
supportsReasoningEffort: true,
|
||
},
|
||
o3: {
|
||
maxTokens: 100_000,
|
||
contextWindow: 200_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
inputPrice: 2.0,
|
||
outputPrice: 8.0,
|
||
cacheReadsPrice: 0.5,
|
||
systemRole: "developer",
|
||
supportsReasoning: true,
|
||
supportsReasoningEffort: true,
|
||
supportsTools: false,
|
||
},
|
||
"o4-mini": {
|
||
maxTokens: 100_000,
|
||
contextWindow: 200_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
inputPrice: 1.1,
|
||
outputPrice: 4.4,
|
||
cacheReadsPrice: 0.275,
|
||
systemRole: "developer",
|
||
supportsReasoning: true,
|
||
supportsReasoningEffort: true,
|
||
supportsTools: false,
|
||
},
|
||
"gpt-4.1": {
|
||
maxTokens: 32_768,
|
||
contextWindow: 1_047_576,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
inputPrice: 2,
|
||
outputPrice: 8,
|
||
cacheReadsPrice: 0.5,
|
||
temperature: 0,
|
||
},
|
||
"gpt-4.1-mini": {
|
||
maxTokens: 32_768,
|
||
contextWindow: 1_047_576,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
inputPrice: 0.4,
|
||
outputPrice: 1.6,
|
||
cacheReadsPrice: 0.1,
|
||
temperature: 0,
|
||
},
|
||
"gpt-4.1-nano": {
|
||
maxTokens: 32_768,
|
||
contextWindow: 1_047_576,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
inputPrice: 0.1,
|
||
outputPrice: 0.4,
|
||
cacheReadsPrice: 0.025,
|
||
temperature: 0,
|
||
},
|
||
"o3-mini": {
|
||
maxTokens: 100_000,
|
||
contextWindow: 200_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: true,
|
||
inputPrice: 1.1,
|
||
outputPrice: 4.4,
|
||
cacheReadsPrice: 0.55,
|
||
systemRole: "developer",
|
||
supportsReasoning: true,
|
||
supportsReasoningEffort: true,
|
||
supportsTools: false,
|
||
},
|
||
// don't support tool use yet
|
||
o1: {
|
||
maxTokens: 100_000,
|
||
contextWindow: 200_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: false,
|
||
inputPrice: 15,
|
||
outputPrice: 60,
|
||
cacheReadsPrice: 7.5,
|
||
supportsStreaming: false,
|
||
},
|
||
"o1-preview": {
|
||
maxTokens: 32_768,
|
||
contextWindow: 128_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
inputPrice: 15,
|
||
outputPrice: 60,
|
||
cacheReadsPrice: 7.5,
|
||
supportsStreaming: false,
|
||
},
|
||
"o1-mini": {
|
||
maxTokens: 65_536,
|
||
contextWindow: 128_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
inputPrice: 1.1,
|
||
outputPrice: 4.4,
|
||
cacheReadsPrice: 0.55,
|
||
supportsStreaming: false,
|
||
},
|
||
"gpt-4o": {
|
||
maxTokens: 4_096,
|
||
contextWindow: 128_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
inputPrice: 2.5,
|
||
outputPrice: 10,
|
||
cacheReadsPrice: 1.25,
|
||
temperature: 0,
|
||
},
|
||
"gpt-4o-mini": {
|
||
maxTokens: 16_384,
|
||
contextWindow: 128_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
inputPrice: 0.15,
|
||
outputPrice: 0.6,
|
||
cacheReadsPrice: 0.075,
|
||
temperature: 0,
|
||
},
|
||
"chatgpt-4o-latest": {
|
||
maxTokens: 16_384,
|
||
contextWindow: 128_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: false,
|
||
inputPrice: 5,
|
||
outputPrice: 15,
|
||
temperature: 0,
|
||
},
|
||
} as const satisfies Record<string, OpenAiCompatibleModelInfo>
|
||
|
||
// OpenAI Codex (ChatGPT Plus/Pro subscription)
|
||
// Uses OAuth authentication via ChatGPT, routes to chatgpt.com/backend-api/codex/responses
|
||
// Subscription-based pricing (all costs are $0)
|
||
export type OpenAiCodexModelId = keyof typeof openAiCodexModels
|
||
export const openAiCodexDefaultModelId: OpenAiCodexModelId = "gpt-5.3-codex"
|
||
export const openAiCodexModels = {
|
||
"gpt-5.5": {
|
||
maxTokens: 128_000,
|
||
contextWindow: 1_000_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
supportsReasoning: true,
|
||
apiFormat: ApiFormat.OPENAI_RESPONSES,
|
||
// Subscription-based: no per-token costs
|
||
inputPrice: 0,
|
||
outputPrice: 0,
|
||
description: "GPT-5.5 Codex: OpenAI's latest flagship coding model via ChatGPT subscription",
|
||
},
|
||
"gpt-5.4": {
|
||
maxTokens: 128_000,
|
||
contextWindow: 1_000_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
supportsReasoning: true,
|
||
apiFormat: ApiFormat.OPENAI_RESPONSES,
|
||
// Subscription-based: no per-token costs
|
||
inputPrice: 0,
|
||
outputPrice: 0,
|
||
description: "GPT-5.4 Codex: OpenAI's latest flagship coding model via ChatGPT subscription",
|
||
},
|
||
"gpt-5.3-codex": {
|
||
maxTokens: 128_000,
|
||
contextWindow: 400_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
supportsReasoning: true,
|
||
apiFormat: ApiFormat.OPENAI_RESPONSES,
|
||
// Subscription-based: no per-token costs
|
||
inputPrice: 0,
|
||
outputPrice: 0,
|
||
description: "GPT-5.3 Codex: OpenAI's latest flagship coding model via ChatGPT subscription",
|
||
},
|
||
"gpt-5.2-codex": {
|
||
maxTokens: 128_000,
|
||
contextWindow: 400_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
supportsReasoning: true,
|
||
apiFormat: ApiFormat.OPENAI_RESPONSES,
|
||
// Subscription-based: no per-token costs
|
||
inputPrice: 0,
|
||
outputPrice: 0,
|
||
description: "GPT-5.2 Codex: OpenAI's flagship coding model via ChatGPT subscription",
|
||
},
|
||
"gpt-5.1-codex-max": {
|
||
maxTokens: 128_000,
|
||
contextWindow: 400_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
supportsReasoning: true,
|
||
apiFormat: ApiFormat.OPENAI_RESPONSES,
|
||
inputPrice: 0,
|
||
outputPrice: 0,
|
||
description: "GPT-5.1 Codex Max: Maximum capability coding model via ChatGPT subscription",
|
||
},
|
||
"gpt-5.1-codex-mini": {
|
||
maxTokens: 128_000,
|
||
contextWindow: 400_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
supportsReasoning: true,
|
||
apiFormat: ApiFormat.OPENAI_RESPONSES,
|
||
inputPrice: 0,
|
||
outputPrice: 0,
|
||
description: "GPT-5.1 Codex Mini: Faster version for coding tasks via ChatGPT subscription",
|
||
},
|
||
"gpt-5.2": {
|
||
maxTokens: 128_000,
|
||
contextWindow: 400_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
supportsReasoning: true,
|
||
apiFormat: ApiFormat.OPENAI_RESPONSES,
|
||
inputPrice: 0,
|
||
outputPrice: 0,
|
||
description: "GPT-5.2: Latest GPT model via ChatGPT subscription",
|
||
},
|
||
} 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-v4-flash": {
|
||
maxTokens: 384_000,
|
||
contextWindow: 1_000_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: true,
|
||
supportsReasoning: true,
|
||
inputPrice: 0, // all input is either a cache hit or miss
|
||
outputPrice: 0.28,
|
||
cacheWritesPrice: 0.14,
|
||
cacheReadsPrice: 0.0028,
|
||
},
|
||
"deepseek-v4-pro": {
|
||
maxTokens: 384_000,
|
||
contextWindow: 1_000_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: true,
|
||
supportsReasoning: true,
|
||
inputPrice: 0, // all input is either a cache hit or miss
|
||
outputPrice: 0.87,
|
||
cacheWritesPrice: 0.435,
|
||
cacheReadsPrice: 0.003625,
|
||
},
|
||
"deepseek-chat": {
|
||
maxTokens: 8_000,
|
||
contextWindow: 128_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: true, // supports context caching, but not in the way anthropic does it (deepseek reports input tokens and reads/writes in the same usage report) FIXME: we need to show users cache stats how deepseek does it
|
||
inputPrice: 0, // technically there is no input price, it's all either a cache hit or miss (ApiOptions will not show this). Input is the sum of cache reads and writes
|
||
outputPrice: 1.1,
|
||
cacheWritesPrice: 0.27,
|
||
cacheReadsPrice: 0.07,
|
||
},
|
||
"deepseek-reasoner": {
|
||
maxTokens: 8_000,
|
||
contextWindow: 128_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: true, // supports context caching, but not in the way anthropic does it (deepseek reports input tokens and reads/writes in the same usage report) FIXME: we need to show users cache stats how deepseek does it
|
||
inputPrice: 0, // technically there is no input price, it's all either a cache hit or miss (ApiOptions will not show this)
|
||
outputPrice: 2.19,
|
||
cacheWritesPrice: 0.55,
|
||
cacheReadsPrice: 0.14,
|
||
},
|
||
} as const satisfies Record<string, ModelInfo>
|
||
|
||
// Hugging Face Inference Providers
|
||
// https://huggingface.co/docs/inference-providers/en/index
|
||
export type HuggingFaceModelId = keyof typeof huggingFaceModels
|
||
export const huggingFaceDefaultModelId: HuggingFaceModelId = "moonshotai/Kimi-K2-Instruct"
|
||
export const huggingFaceModels = {
|
||
"openai/gpt-oss-120b": {
|
||
maxTokens: 32766,
|
||
contextWindow: 131_072,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0,
|
||
outputPrice: 0,
|
||
description:
|
||
"Large open-weight reasoning model for high-end desktops and data centers, built for complex coding, math, and general AI tasks.",
|
||
},
|
||
"openai/gpt-oss-20b": {
|
||
maxTokens: 32766,
|
||
contextWindow: 131_072,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0,
|
||
outputPrice: 0,
|
||
description:
|
||
"Medium open-weight reasoning model that runs on most desktops, balancing strong reasoning with broad accessibility.",
|
||
},
|
||
"moonshotai/Kimi-K2-Instruct": {
|
||
maxTokens: 131_072,
|
||
contextWindow: 131_072,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0,
|
||
outputPrice: 0,
|
||
description: "Advanced reasoning model with superior performance across coding, math, and general capabilities.",
|
||
},
|
||
"deepseek-ai/DeepSeek-V3-0324": {
|
||
maxTokens: 8192,
|
||
contextWindow: 64_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0,
|
||
outputPrice: 0,
|
||
description: "Advanced reasoning model with superior performance across coding, math, and general capabilities.",
|
||
},
|
||
"deepseek-ai/DeepSeek-R1": {
|
||
maxTokens: 8192,
|
||
contextWindow: 64_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0,
|
||
outputPrice: 0,
|
||
description: "DeepSeek's reasoning model with step-by-step thinking capabilities.",
|
||
},
|
||
"deepseek-ai/DeepSeek-R1-0528": {
|
||
maxTokens: 64_000,
|
||
contextWindow: 64_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0,
|
||
outputPrice: 0,
|
||
description: "DeepSeek's reasoning model's latest version with step-by-step thinking capabilities",
|
||
},
|
||
"meta-llama/Llama-3.1-8B-Instruct": {
|
||
maxTokens: 8192,
|
||
contextWindow: 128_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0,
|
||
outputPrice: 0,
|
||
description: "Efficient 8B parameter Llama model for general-purpose tasks.",
|
||
},
|
||
} as const satisfies Record<string, ModelInfo>
|
||
|
||
// Qwen
|
||
// https://bailian.console.aliyun.com/
|
||
// The first model in the list is used as the default model for each region
|
||
export const internationalQwenModels = {
|
||
"qwen3-coder-plus": {
|
||
maxTokens: 65_536,
|
||
contextWindow: 1_000_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 1,
|
||
outputPrice: 5,
|
||
},
|
||
"qwen3-coder-480b-a35b-instruct": {
|
||
maxTokens: 65_536,
|
||
contextWindow: 204_800,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 1.5,
|
||
outputPrice: 7.5,
|
||
},
|
||
"qwen3-235b-a22b": {
|
||
maxTokens: 16_384,
|
||
contextWindow: 131_072,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 2,
|
||
outputPrice: 8,
|
||
cacheWritesPrice: 2,
|
||
cacheReadsPrice: 8,
|
||
thinkingConfig: {
|
||
maxBudget: 38_912,
|
||
outputPrice: 20,
|
||
},
|
||
},
|
||
"qwen3-32b": {
|
||
maxTokens: 16_384,
|
||
contextWindow: 131_072,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 2,
|
||
outputPrice: 8,
|
||
cacheWritesPrice: 2,
|
||
cacheReadsPrice: 8,
|
||
thinkingConfig: {
|
||
maxBudget: 38_912,
|
||
outputPrice: 20,
|
||
},
|
||
},
|
||
"qwen3-30b-a3b": {
|
||
maxTokens: 16_384,
|
||
contextWindow: 131_072,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.75,
|
||
outputPrice: 3,
|
||
cacheWritesPrice: 0.75,
|
||
cacheReadsPrice: 3,
|
||
thinkingConfig: {
|
||
maxBudget: 38_912,
|
||
outputPrice: 7.5,
|
||
},
|
||
},
|
||
"qwen3-14b": {
|
||
maxTokens: 8_192,
|
||
contextWindow: 131_072,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 1,
|
||
outputPrice: 4,
|
||
cacheWritesPrice: 1,
|
||
cacheReadsPrice: 4,
|
||
thinkingConfig: {
|
||
maxBudget: 38_912,
|
||
outputPrice: 10,
|
||
},
|
||
},
|
||
"qwen3-8b": {
|
||
maxTokens: 8_192,
|
||
contextWindow: 131_072,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.5,
|
||
outputPrice: 2,
|
||
cacheWritesPrice: 0.5,
|
||
cacheReadsPrice: 2,
|
||
thinkingConfig: {
|
||
maxBudget: 38_912,
|
||
outputPrice: 5,
|
||
},
|
||
},
|
||
"qwen3-4b": {
|
||
maxTokens: 8_192,
|
||
contextWindow: 131_072,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.3,
|
||
outputPrice: 1.2,
|
||
cacheWritesPrice: 0.3,
|
||
cacheReadsPrice: 1.2,
|
||
thinkingConfig: {
|
||
maxBudget: 38_912,
|
||
outputPrice: 3,
|
||
},
|
||
},
|
||
"qwen3-1.7b": {
|
||
maxTokens: 8_192,
|
||
contextWindow: 32_768,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.3,
|
||
outputPrice: 1.2,
|
||
cacheWritesPrice: 0.3,
|
||
cacheReadsPrice: 1.2,
|
||
thinkingConfig: {
|
||
maxBudget: 30_720,
|
||
outputPrice: 3,
|
||
},
|
||
},
|
||
"qwen3-0.6b": {
|
||
maxTokens: 8_192,
|
||
contextWindow: 32_768,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.3,
|
||
outputPrice: 1.2,
|
||
cacheWritesPrice: 0.3,
|
||
cacheReadsPrice: 1.2,
|
||
thinkingConfig: {
|
||
maxBudget: 30_720,
|
||
outputPrice: 3,
|
||
},
|
||
},
|
||
"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: 16_384,
|
||
contextWindow: 131_072,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.8,
|
||
outputPrice: 2,
|
||
cacheWritesPrice: 0.8,
|
||
cacheReadsPrice: 2,
|
||
thinkingConfig: {
|
||
maxBudget: 38_912,
|
||
outputPrice: 16,
|
||
},
|
||
},
|
||
"qwen-turbo-latest": {
|
||
maxTokens: 16_384,
|
||
contextWindow: 1_000_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.3,
|
||
outputPrice: 0.6,
|
||
cacheWritesPrice: 0.3,
|
||
cacheReadsPrice: 0.6,
|
||
thinkingConfig: {
|
||
maxBudget: 38_912,
|
||
outputPrice: 6,
|
||
},
|
||
},
|
||
"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>
|
||
|
||
export const mainlandQwenModels = {
|
||
"qwen3-235b-a22b": {
|
||
maxTokens: 16_384,
|
||
contextWindow: 131_072,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 2,
|
||
outputPrice: 8,
|
||
cacheWritesPrice: 2,
|
||
cacheReadsPrice: 8,
|
||
thinkingConfig: {
|
||
maxBudget: 38_912,
|
||
outputPrice: 20,
|
||
},
|
||
},
|
||
"qwen3-32b": {
|
||
maxTokens: 16_384,
|
||
contextWindow: 131_072,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 2,
|
||
outputPrice: 8,
|
||
cacheWritesPrice: 2,
|
||
cacheReadsPrice: 8,
|
||
thinkingConfig: {
|
||
maxBudget: 38_912,
|
||
outputPrice: 20,
|
||
},
|
||
},
|
||
"qwen3-30b-a3b": {
|
||
maxTokens: 16_384,
|
||
contextWindow: 131_072,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.75,
|
||
outputPrice: 3,
|
||
cacheWritesPrice: 0.75,
|
||
cacheReadsPrice: 3,
|
||
thinkingConfig: {
|
||
maxBudget: 38_912,
|
||
outputPrice: 7.5,
|
||
},
|
||
},
|
||
"qwen3-14b": {
|
||
maxTokens: 8_192,
|
||
contextWindow: 131_072,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 1,
|
||
outputPrice: 4,
|
||
cacheWritesPrice: 1,
|
||
cacheReadsPrice: 4,
|
||
thinkingConfig: {
|
||
maxBudget: 38_912,
|
||
outputPrice: 10,
|
||
},
|
||
},
|
||
"qwen3-8b": {
|
||
maxTokens: 8_192,
|
||
contextWindow: 131_072,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.5,
|
||
outputPrice: 2,
|
||
cacheWritesPrice: 0.5,
|
||
cacheReadsPrice: 2,
|
||
thinkingConfig: {
|
||
maxBudget: 38_912,
|
||
outputPrice: 5,
|
||
},
|
||
},
|
||
"qwen3-4b": {
|
||
maxTokens: 8_192,
|
||
contextWindow: 131_072,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.3,
|
||
outputPrice: 1.2,
|
||
cacheWritesPrice: 0.3,
|
||
cacheReadsPrice: 1.2,
|
||
thinkingConfig: {
|
||
maxBudget: 38_912,
|
||
outputPrice: 3,
|
||
},
|
||
},
|
||
"qwen3-1.7b": {
|
||
maxTokens: 8_192,
|
||
contextWindow: 32_768,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.3,
|
||
outputPrice: 1.2,
|
||
cacheWritesPrice: 0.3,
|
||
cacheReadsPrice: 1.2,
|
||
thinkingConfig: {
|
||
maxBudget: 30_720,
|
||
outputPrice: 3,
|
||
},
|
||
},
|
||
"qwen3-0.6b": {
|
||
maxTokens: 8_192,
|
||
contextWindow: 32_768,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.3,
|
||
outputPrice: 1.2,
|
||
cacheWritesPrice: 0.3,
|
||
cacheReadsPrice: 1.2,
|
||
thinkingConfig: {
|
||
maxBudget: 30_720,
|
||
outputPrice: 3,
|
||
},
|
||
},
|
||
"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: 16_384,
|
||
contextWindow: 131_072,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.8,
|
||
outputPrice: 2,
|
||
cacheWritesPrice: 0.8,
|
||
cacheReadsPrice: 2,
|
||
thinkingConfig: {
|
||
maxBudget: 38_912,
|
||
outputPrice: 16,
|
||
},
|
||
},
|
||
"qwen-turbo-latest": {
|
||
maxTokens: 16_384,
|
||
contextWindow: 1_000_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.3,
|
||
outputPrice: 0.6,
|
||
cacheWritesPrice: 0.3,
|
||
cacheReadsPrice: 0.6,
|
||
thinkingConfig: {
|
||
maxBudget: 38_912,
|
||
outputPrice: 6,
|
||
},
|
||
},
|
||
"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,
|
||
},
|
||
"qwq-plus-latest": {
|
||
maxTokens: 8_192,
|
||
contextWindow: 131_071,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.0,
|
||
outputPrice: 0.0,
|
||
cacheWritesPrice: 0.0,
|
||
cacheReadsPrice: 0.0,
|
||
},
|
||
"qwq-plus": {
|
||
maxTokens: 8_192,
|
||
contextWindow: 131_071,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.0,
|
||
outputPrice: 0.0,
|
||
cacheWritesPrice: 0.0,
|
||
cacheReadsPrice: 0.0,
|
||
},
|
||
"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>
|
||
export enum QwenApiRegions {
|
||
CHINA = "china",
|
||
INTERNATIONAL = "international",
|
||
}
|
||
export type MainlandQwenModelId = keyof typeof mainlandQwenModels
|
||
export type InternationalQwenModelId = keyof typeof internationalQwenModels
|
||
// Set first model in the list as the default model for each region
|
||
export const internationalQwenDefaultModelId: InternationalQwenModelId = Object.keys(
|
||
internationalQwenModels,
|
||
)[0] as InternationalQwenModelId
|
||
export const mainlandQwenDefaultModelId: MainlandQwenModelId = Object.keys(mainlandQwenModels)[0] as MainlandQwenModelId
|
||
|
||
// Doubao
|
||
// https://www.volcengine.com/docs/82379/1298459
|
||
// https://console.volcengine.com/ark/region:ark+cn-beijing/openManagement
|
||
export type DoubaoModelId = keyof typeof doubaoModels
|
||
export const doubaoDefaultModelId: DoubaoModelId = "doubao-1-5-pro-256k-250115"
|
||
export const doubaoModels = {
|
||
"doubao-1-5-pro-256k-250115": {
|
||
maxTokens: 12_288,
|
||
contextWindow: 256_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.7,
|
||
outputPrice: 1.3,
|
||
cacheWritesPrice: 0,
|
||
cacheReadsPrice: 0,
|
||
},
|
||
"doubao-1-5-pro-32k-250115": {
|
||
maxTokens: 12_288,
|
||
contextWindow: 32_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.11,
|
||
outputPrice: 0.3,
|
||
cacheWritesPrice: 0,
|
||
cacheReadsPrice: 0,
|
||
},
|
||
"deepseek-v3-250324": {
|
||
maxTokens: 12_288,
|
||
contextWindow: 128_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.55,
|
||
outputPrice: 2.19,
|
||
cacheWritesPrice: 0,
|
||
cacheReadsPrice: 0,
|
||
},
|
||
"deepseek-r1-250120": {
|
||
maxTokens: 32_768,
|
||
contextWindow: 64_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.27,
|
||
outputPrice: 1.09,
|
||
cacheWritesPrice: 0,
|
||
cacheReadsPrice: 0,
|
||
},
|
||
} 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 = "devstral-2512"
|
||
export const mistralModels = {
|
||
"devstral-2512": {
|
||
maxTokens: 256_000,
|
||
contextWindow: 256_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0,
|
||
outputPrice: 0,
|
||
},
|
||
"labs-devstral-small-2512": {
|
||
maxTokens: 256_000,
|
||
contextWindow: 256_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0,
|
||
outputPrice: 0,
|
||
},
|
||
"mistral-large-2512": {
|
||
maxTokens: 256_000,
|
||
contextWindow: 256_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.5,
|
||
outputPrice: 1.5,
|
||
},
|
||
"ministral-14b-2512": {
|
||
maxTokens: 256_000,
|
||
contextWindow: 256_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.2,
|
||
outputPrice: 0.2,
|
||
},
|
||
"mistral-large-2411": {
|
||
maxTokens: 128_000,
|
||
contextWindow: 128_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: 128_000,
|
||
contextWindow: 128_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.04,
|
||
outputPrice: 0.04,
|
||
},
|
||
"ministral-8b-2410": {
|
||
maxTokens: 128_000,
|
||
contextWindow: 128_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.1,
|
||
outputPrice: 0.1,
|
||
},
|
||
"mistral-small-latest": {
|
||
maxTokens: 128_000,
|
||
contextWindow: 128_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.1,
|
||
outputPrice: 0.3,
|
||
},
|
||
"mistral-medium-latest": {
|
||
maxTokens: 128_000,
|
||
contextWindow: 128_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.4,
|
||
outputPrice: 2.0,
|
||
},
|
||
"mistral-small-2501": {
|
||
maxTokens: 32_000,
|
||
contextWindow: 32_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.1,
|
||
outputPrice: 0.3,
|
||
},
|
||
"pixtral-12b-2409": {
|
||
maxTokens: 128_000,
|
||
contextWindow: 128_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.15,
|
||
outputPrice: 0.15,
|
||
},
|
||
"open-mistral-nemo-2407": {
|
||
maxTokens: 128_000,
|
||
contextWindow: 128_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,
|
||
},
|
||
"devstral-small-2505": {
|
||
maxTokens: 128_000,
|
||
contextWindow: 131_072,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.1,
|
||
outputPrice: 0.3,
|
||
},
|
||
"devstral-medium-latest": {
|
||
maxTokens: 128_000,
|
||
contextWindow: 131_072,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.4,
|
||
outputPrice: 2.0,
|
||
},
|
||
} as const satisfies Record<string, ModelInfo>
|
||
|
||
// LiteLLM
|
||
// https://docs.litellm.ai/docs/
|
||
export type LiteLLMModelId = string
|
||
export const liteLlmDefaultModelId = "anthropic/claude-3-7-sonnet-20250219"
|
||
export interface LiteLLMModelInfo extends ModelInfo {
|
||
temperature?: number
|
||
}
|
||
|
||
export const liteLlmModelInfoSaneDefaults: LiteLLMModelInfo = {
|
||
maxTokens: -1,
|
||
contextWindow: 128_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
inputPrice: 0,
|
||
outputPrice: 0,
|
||
cacheWritesPrice: 0,
|
||
cacheReadsPrice: 0,
|
||
temperature: 0,
|
||
}
|
||
|
||
// AskSage Models
|
||
// https://docs.asksage.ai/
|
||
export type AskSageModelId = keyof typeof askSageModels
|
||
export const askSageDefaultModelId: AskSageModelId = "claude-4-sonnet"
|
||
export const askSageDefaultURL: string = "https://api.asksage.ai/server"
|
||
export const askSageModels = {
|
||
"gpt-4o": {
|
||
maxTokens: 4096,
|
||
contextWindow: 128_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0,
|
||
outputPrice: 0,
|
||
},
|
||
"gpt-4o-gov": {
|
||
maxTokens: 4096,
|
||
contextWindow: 128_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0,
|
||
outputPrice: 0,
|
||
},
|
||
"gpt-4.1": {
|
||
maxTokens: 32_768,
|
||
contextWindow: 1_047_576,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0,
|
||
outputPrice: 0,
|
||
},
|
||
"claude-35-sonnet": {
|
||
maxTokens: 8192,
|
||
contextWindow: 200_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0,
|
||
outputPrice: 0,
|
||
},
|
||
"aws-bedrock-claude-35-sonnet-gov": {
|
||
maxTokens: 8192,
|
||
contextWindow: 200_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0,
|
||
outputPrice: 0,
|
||
},
|
||
"claude-37-sonnet": {
|
||
maxTokens: 8192,
|
||
contextWindow: 200_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0,
|
||
outputPrice: 0,
|
||
},
|
||
"claude-4.6-sonnet": {
|
||
maxTokens: 8192,
|
||
contextWindow: 200_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0,
|
||
outputPrice: 0,
|
||
},
|
||
"claude-4-sonnet": {
|
||
maxTokens: 8192,
|
||
contextWindow: 200_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0,
|
||
outputPrice: 0,
|
||
},
|
||
"claude-4-opus": {
|
||
maxTokens: 8192,
|
||
contextWindow: 200_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0,
|
||
outputPrice: 0,
|
||
},
|
||
"google-gemini-2.5-pro": {
|
||
maxTokens: 65536,
|
||
contextWindow: 1_048_576,
|
||
supportsImages: true,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0,
|
||
outputPrice: 0,
|
||
},
|
||
"google-claude-45-sonnet": {
|
||
maxTokens: 64000,
|
||
contextWindow: 200_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0,
|
||
outputPrice: 0,
|
||
},
|
||
"google-claude-4-opus": {
|
||
maxTokens: 32000,
|
||
contextWindow: 200_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0,
|
||
outputPrice: 0,
|
||
},
|
||
"gpt-5": {
|
||
maxTokens: 65536,
|
||
contextWindow: 2_097_152,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0,
|
||
outputPrice: 0,
|
||
},
|
||
"gpt-5-mini": {
|
||
maxTokens: 32768,
|
||
contextWindow: 1_048_576,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0,
|
||
outputPrice: 0,
|
||
},
|
||
"gpt-5-nano": {
|
||
maxTokens: 16384,
|
||
contextWindow: 262_144,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0,
|
||
outputPrice: 0,
|
||
},
|
||
}
|
||
|
||
// Nebius AI Studio
|
||
// https://docs.nebius.com/studio/inference/models
|
||
export const nebiusModels = {
|
||
"deepseek-ai/DeepSeek-V3": {
|
||
maxTokens: 32_000,
|
||
contextWindow: 96_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.5,
|
||
outputPrice: 1.5,
|
||
},
|
||
"deepseek-ai/DeepSeek-V3-0324-fast": {
|
||
maxTokens: 128_000,
|
||
contextWindow: 128_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 2,
|
||
outputPrice: 6,
|
||
},
|
||
"deepseek-ai/DeepSeek-R1": {
|
||
maxTokens: 32_000,
|
||
contextWindow: 96_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.8,
|
||
outputPrice: 2.4,
|
||
},
|
||
"deepseek-ai/DeepSeek-R1-fast": {
|
||
maxTokens: 32_000,
|
||
contextWindow: 96_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 2,
|
||
outputPrice: 6,
|
||
},
|
||
"deepseek-ai/DeepSeek-R1-0528": {
|
||
maxTokens: 128_000,
|
||
contextWindow: 163_840,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.8,
|
||
outputPrice: 2.4,
|
||
},
|
||
"meta-llama/Llama-3.3-70B-Instruct-fast": {
|
||
maxTokens: 32_000,
|
||
contextWindow: 96_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.25,
|
||
outputPrice: 0.75,
|
||
},
|
||
"Qwen/Qwen2.5-32B-Instruct-fast": {
|
||
maxTokens: 8_192,
|
||
contextWindow: 32_768,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.13,
|
||
outputPrice: 0.4,
|
||
},
|
||
"Qwen/Qwen2.5-Coder-32B-Instruct-fast": {
|
||
maxTokens: 128_000,
|
||
contextWindow: 128_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.1,
|
||
outputPrice: 0.3,
|
||
},
|
||
"Qwen/Qwen3-4B-fast": {
|
||
maxTokens: 32_000,
|
||
contextWindow: 41_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.08,
|
||
outputPrice: 0.24,
|
||
},
|
||
"Qwen/Qwen3-30B-A3B-fast": {
|
||
maxTokens: 32_000,
|
||
contextWindow: 41_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.3,
|
||
outputPrice: 0.9,
|
||
},
|
||
"Qwen/Qwen3-235B-A22B": {
|
||
maxTokens: 32_000,
|
||
contextWindow: 41_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.2,
|
||
outputPrice: 0.6,
|
||
},
|
||
"openai/gpt-oss-120b": {
|
||
maxTokens: 32766, // Quantization: fp4
|
||
contextWindow: 131_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.15,
|
||
outputPrice: 0.6,
|
||
},
|
||
"moonshotai/Kimi-K2-Instruct": {
|
||
maxTokens: 16384, // Quantization: fp4
|
||
contextWindow: 131_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: true,
|
||
inputPrice: 0.5,
|
||
outputPrice: 2.4,
|
||
},
|
||
"Qwen/Qwen3-Coder-480B-A35B-Instruct": {
|
||
maxTokens: 163800, // Quantization: fp8
|
||
contextWindow: 262_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.4,
|
||
outputPrice: 1.8,
|
||
},
|
||
"openai/gpt-oss-20b": {
|
||
maxTokens: 32766, // Quantization: fp4
|
||
contextWindow: 131_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.05,
|
||
outputPrice: 0.2,
|
||
},
|
||
"zai-org/GLM-4.5": {
|
||
maxTokens: 98304, // Quantization: fp8
|
||
contextWindow: 128_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: true,
|
||
inputPrice: 0.6,
|
||
outputPrice: 2.2,
|
||
},
|
||
"zai-org/GLM-4.5-Air": {
|
||
maxTokens: 98304, // Quantization: fp8
|
||
contextWindow: 128_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: true,
|
||
inputPrice: 0.2,
|
||
outputPrice: 1.2,
|
||
},
|
||
"deepseek-ai/DeepSeek-R1-0528-fast": {
|
||
maxTokens: 128000, // Quantization: fp4
|
||
contextWindow: 164_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 2.0,
|
||
outputPrice: 6.0,
|
||
},
|
||
"Qwen/Qwen3-235B-A22B-Instruct-2507": {
|
||
maxTokens: 64000, // Quantization: fp8
|
||
contextWindow: 262_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.2,
|
||
outputPrice: 0.6,
|
||
},
|
||
"Qwen/Qwen3-30B-A3B": {
|
||
maxTokens: 32000, // Quantization: fp8
|
||
contextWindow: 41_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.1,
|
||
outputPrice: 0.3,
|
||
},
|
||
"Qwen/Qwen3-32B": {
|
||
maxTokens: 16384, // Quantization: fp8
|
||
contextWindow: 41_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.1,
|
||
outputPrice: 0.3,
|
||
},
|
||
"Qwen/Qwen3-32B-fast": {
|
||
maxTokens: 16384, // Quantization: fp8
|
||
contextWindow: 41_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.2,
|
||
outputPrice: 0.6,
|
||
},
|
||
} as const satisfies Record<string, ModelInfo>
|
||
export type NebiusModelId = keyof typeof nebiusModels
|
||
export const nebiusDefaultModelId = "Qwen/Qwen2.5-32B-Instruct-fast" satisfies NebiusModelId
|
||
|
||
// W&B Inference by CoreWeave
|
||
// https://docs.wandb.ai/inference/models
|
||
export const wandbModels = {
|
||
"deepseek-ai/DeepSeek-V3.1": {
|
||
maxTokens: 8_192,
|
||
contextWindow: 161_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.55,
|
||
outputPrice: 1.65,
|
||
description: "A large hybrid model that supports both thinking and non-thinking modes via prompt templates",
|
||
},
|
||
"meta-llama/Llama-4-Scout-17B-16E-Instruct": {
|
||
maxTokens: 16_384,
|
||
contextWindow: 64_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.17,
|
||
outputPrice: 0.66,
|
||
description: "Multimodal model integrating text and image understanding, ideal for visual tasks and combined analysis",
|
||
},
|
||
"meta-llama/Llama-3.3-70B-Instruct": {
|
||
maxTokens: 8_192,
|
||
contextWindow: 128_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.71,
|
||
outputPrice: 0.71,
|
||
description: "Multilingual model excelling in conversational tasks, detailed instruction-following, and coding",
|
||
},
|
||
"meta-llama/Llama-3.1-70B-Instruct": {
|
||
maxTokens: 8_192,
|
||
contextWindow: 128_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.8,
|
||
outputPrice: 0.8,
|
||
description: "Efficient conversational model optimized for responsive multilingual chatbot interactions",
|
||
},
|
||
"meta-llama/Llama-3.1-8B-Instruct": {
|
||
maxTokens: 8_192,
|
||
contextWindow: 128_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.22,
|
||
outputPrice: 0.22,
|
||
description: "Efficient conversational model optimized for responsive multilingual chatbot interactions",
|
||
},
|
||
"microsoft/Phi-4-mini-instruct": {
|
||
maxTokens: 4_096,
|
||
contextWindow: 128_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.08,
|
||
outputPrice: 0.35,
|
||
description: "Compact, efficient model ideal for fast responses in resource-constrained environments",
|
||
},
|
||
"MiniMaxAI/MiniMax-M2.5": {
|
||
maxTokens: 40_960,
|
||
contextWindow: 197_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.3,
|
||
outputPrice: 1.2,
|
||
description:
|
||
"MoE model with a highly sparse architecture designed for high-throughput and low latency with strong coding capabilities",
|
||
},
|
||
"nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-FP8": {
|
||
maxTokens: 8_192,
|
||
contextWindow: 262_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.2,
|
||
outputPrice: 0.8,
|
||
description: "A LatentMoE model designed to deliver strong agentic, reasoning, and conversational capabilities",
|
||
},
|
||
"openai/gpt-oss-120b": {
|
||
maxTokens: 32_768,
|
||
contextWindow: 131_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.15,
|
||
outputPrice: 0.6,
|
||
description: "Efficient Mixture-of-Experts model designed for high-reasoning, agentic and general-purpose use cases",
|
||
},
|
||
"openai/gpt-oss-20b": {
|
||
maxTokens: 32_768,
|
||
contextWindow: 131_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.05,
|
||
outputPrice: 0.2,
|
||
description:
|
||
"Lower latency Mixture-of-Experts model trained on OpenAI’s Harmony response format with reasoning capabilities",
|
||
},
|
||
"OpenPipe/Qwen3-14B-Instruct": {
|
||
maxTokens: 8_192,
|
||
contextWindow: 32_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.05,
|
||
outputPrice: 0.22,
|
||
description:
|
||
"An efficient multilingual, dense, instruction-tuned model, optimized by OpenPipe for building agents with finetuning",
|
||
},
|
||
"Qwen/Qwen3-235B-A22B-Thinking-2507": {
|
||
maxTokens: 32_768,
|
||
contextWindow: 262_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.1,
|
||
outputPrice: 0.1,
|
||
description:
|
||
"High-performance Mixture-of-Experts model optimized for structured reasoning, math, and long-form generation",
|
||
},
|
||
"Qwen/Qwen3-235B-A22B-Instruct-2507": {
|
||
maxTokens: 32_768,
|
||
contextWindow: 262_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.1,
|
||
outputPrice: 0.1,
|
||
description: "Efficient multilingual, Mixture-of-Experts, instruction-tuned model, optimized for logical reasoning",
|
||
},
|
||
"Qwen/Qwen3-30B-A3B-Instruct-2507": {
|
||
maxTokens: 8_192,
|
||
contextWindow: 262_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.1,
|
||
outputPrice: 0.3,
|
||
description: "MoE instruction-tuned model with enhanced reasoning, coding, and long-context understanding",
|
||
},
|
||
"Qwen/Qwen3-Coder-480B-A35B-Instruct": {
|
||
maxTokens: 32_768,
|
||
contextWindow: 262_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 1.0,
|
||
outputPrice: 1.5,
|
||
description:
|
||
"Mixture-of-Experts model optimized for agentic coding tasks such as function calling, tool use, and long-context reasoning",
|
||
},
|
||
"zai-org/GLM-5-FP8": {
|
||
maxTokens: 8_192,
|
||
contextWindow: 200_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 1.0,
|
||
outputPrice: 3.2,
|
||
description: "Mixture-of-Experts model for long-horizon agentic tasks with strong performance on reasoning and coding",
|
||
},
|
||
} as const satisfies Record<string, ModelInfo>
|
||
export type WandbModelId = keyof typeof wandbModels
|
||
export const wandbDefaultModelId = "meta-llama/Llama-3.3-70B-Instruct" satisfies WandbModelId
|
||
|
||
// X AI
|
||
// https://docs.x.ai/docs/api-reference
|
||
export type XAIModelId = keyof typeof xaiModels
|
||
export const xaiDefaultModelId: XAIModelId = "grok-4"
|
||
export const xaiModels = {
|
||
"grok-4-1-fast-reasoning": {
|
||
contextWindow: 2_000_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: true,
|
||
inputPrice: 0.2,
|
||
cacheReadsPrice: 0.05,
|
||
outputPrice: 0.5,
|
||
description: "xAI's Grok 4.1 Reasoning Fast - multimodal model with 2M context.",
|
||
},
|
||
"grok-4-1-fast-non-reasoning": {
|
||
contextWindow: 2_000_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
inputPrice: 0.2,
|
||
cacheReadsPrice: 0.05,
|
||
outputPrice: 0.5,
|
||
description: "xAI's Grok 4.1 Non-Reasoning Fast - multimodal model with 2M context.",
|
||
},
|
||
"grok-code-fast-1": {
|
||
contextWindow: 256_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: true,
|
||
inputPrice: 0.2,
|
||
cacheReadsPrice: 0.02,
|
||
outputPrice: 1.5,
|
||
description: "xAI's Grok Coding model.",
|
||
},
|
||
"grok-4-fast-reasoning": {
|
||
maxTokens: 30000,
|
||
contextWindow: 2000000,
|
||
supportsImages: true,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.2,
|
||
cacheReadsPrice: 0.05,
|
||
outputPrice: 0.5,
|
||
description: "xAI's Grok 4 Fast (free) multimodal model with 2M context.",
|
||
},
|
||
"grok-4": {
|
||
maxTokens: 8192,
|
||
contextWindow: 262144,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
inputPrice: 3.0, // will have different pricing for long context vs short context
|
||
cacheReadsPrice: 0.75,
|
||
outputPrice: 15.0,
|
||
},
|
||
"grok-3-beta": {
|
||
maxTokens: 8192,
|
||
contextWindow: 131072,
|
||
supportsImages: false,
|
||
supportsPromptCache: true,
|
||
inputPrice: 3.0,
|
||
outputPrice: 15.0,
|
||
description: "X AI's Grok-3 beta model with 131K context window",
|
||
},
|
||
"grok-3-fast-beta": {
|
||
maxTokens: 8192,
|
||
contextWindow: 131072,
|
||
supportsImages: false,
|
||
supportsPromptCache: true,
|
||
inputPrice: 5.0,
|
||
outputPrice: 25.0,
|
||
description: "X AI's Grok-3 fast beta model with 131K context window",
|
||
},
|
||
"grok-3-mini-beta": {
|
||
maxTokens: 8192,
|
||
contextWindow: 131072,
|
||
supportsImages: false,
|
||
supportsPromptCache: true,
|
||
inputPrice: 0.3,
|
||
outputPrice: 0.5,
|
||
description: "X AI's Grok-3 mini beta model with 131K context window",
|
||
},
|
||
"grok-3-mini-fast-beta": {
|
||
maxTokens: 8192,
|
||
contextWindow: 131072,
|
||
supportsImages: false,
|
||
supportsPromptCache: true,
|
||
inputPrice: 0.6,
|
||
outputPrice: 4.0,
|
||
description: "X AI's Grok-3 mini fast beta model with 131K context window",
|
||
},
|
||
"grok-3": {
|
||
maxTokens: 8192,
|
||
contextWindow: 131072,
|
||
supportsImages: false,
|
||
supportsPromptCache: true,
|
||
inputPrice: 3.0,
|
||
outputPrice: 15.0,
|
||
description: "X AI's Grok-3 model with 131K context window",
|
||
},
|
||
"grok-3-fast": {
|
||
maxTokens: 8192,
|
||
contextWindow: 131072,
|
||
supportsImages: false,
|
||
supportsPromptCache: true,
|
||
inputPrice: 5.0,
|
||
outputPrice: 25.0,
|
||
description: "X AI's Grok-3 fast model with 131K context window",
|
||
},
|
||
"grok-3-mini": {
|
||
maxTokens: 8192,
|
||
contextWindow: 131072,
|
||
supportsImages: false,
|
||
supportsPromptCache: true,
|
||
inputPrice: 0.3,
|
||
outputPrice: 0.5,
|
||
description: "X AI's Grok-3 mini model with 131K context window",
|
||
},
|
||
"grok-3-mini-fast": {
|
||
maxTokens: 8192,
|
||
contextWindow: 131072,
|
||
supportsImages: false,
|
||
supportsPromptCache: true,
|
||
inputPrice: 0.6,
|
||
outputPrice: 4.0,
|
||
description: "X AI's Grok-3 mini fast model with 131K context window",
|
||
},
|
||
"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>
|
||
|
||
// SambaNova
|
||
// https://docs.sambanova.ai/cloud/docs/get-started/supported-models
|
||
export type SambanovaModelId = keyof typeof sambanovaModels
|
||
export const sambanovaDefaultModelId: SambanovaModelId = "Meta-Llama-3.3-70B-Instruct"
|
||
export const sambanovaModels = {
|
||
"DeepSeek-V3.1": {
|
||
maxTokens: 7168,
|
||
contextWindow: 131072,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
temperature: 0.6,
|
||
inputPrice: 3.0,
|
||
outputPrice: 4.5,
|
||
},
|
||
"DeepSeek-V3.2": {
|
||
maxTokens: 7168,
|
||
contextWindow: 32768,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
temperature: 0.6,
|
||
inputPrice: 3.0,
|
||
outputPrice: 4.5,
|
||
},
|
||
"Llama-4-Maverick-17B-128E-Instruct": {
|
||
maxTokens: 4096,
|
||
contextWindow: 131072,
|
||
supportsImages: true,
|
||
supportsPromptCache: false,
|
||
temperature: 0.6,
|
||
inputPrice: 0.63,
|
||
outputPrice: 1.8,
|
||
},
|
||
"Meta-Llama-3.3-70B-Instruct": {
|
||
maxTokens: 3072,
|
||
contextWindow: 131072,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
temperature: 0.6,
|
||
inputPrice: 0.6,
|
||
outputPrice: 1.2,
|
||
},
|
||
"MiniMax-M2.7": {
|
||
maxTokens: 196608,
|
||
contextWindow: 196608,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
temperature: 1.0,
|
||
inputPrice: 0.6,
|
||
outputPrice: 2.4,
|
||
},
|
||
} as const satisfies Record<string, ModelInfo>
|
||
|
||
// Cerebras
|
||
// https://inference-docs.cerebras.ai/api-reference/models
|
||
export type CerebrasModelId = keyof typeof cerebrasModels
|
||
export const cerebrasDefaultModelId: CerebrasModelId = "zai-glm-4.7"
|
||
export const cerebrasModels = {
|
||
"zai-glm-4.7": {
|
||
maxTokens: 40000,
|
||
contextWindow: 131072,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
temperature: 0.9,
|
||
inputPrice: 0,
|
||
outputPrice: 0,
|
||
description:
|
||
"Highly capable general-purpose model on Cerebras (up to 1,000 tokens/s), competitive with leading proprietary models on coding tasks.",
|
||
},
|
||
"gpt-oss-120b": {
|
||
maxTokens: 65536,
|
||
contextWindow: 128000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0,
|
||
outputPrice: 0,
|
||
description: "Intelligent general purpose model with 3,000 tokens/s",
|
||
},
|
||
"qwen-3-235b-a22b-instruct-2507": {
|
||
maxTokens: 64000,
|
||
contextWindow: 64000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0,
|
||
outputPrice: 0,
|
||
description: "Intelligent model with ~1400 tokens/s",
|
||
},
|
||
} as const satisfies Record<string, ModelInfo>
|
||
|
||
// Groq
|
||
// https://console.groq.com/docs/models
|
||
// https://groq.com/pricing/
|
||
export type GroqModelId = keyof typeof groqModels
|
||
export const groqDefaultModelId: GroqModelId = "moonshotai/kimi-k2-instruct-0905"
|
||
export const groqModels = {
|
||
"openai/gpt-oss-120b": {
|
||
maxTokens: 32766, // Model fails if you try to use more than 32K tokens
|
||
contextWindow: 131_072,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.15,
|
||
outputPrice: 0.75,
|
||
description:
|
||
"A state-of-the-art 120B open-weight Mixture-of-Experts language model optimized for strong reasoning, tool use, and efficient deployment on large GPUs",
|
||
},
|
||
"openai/gpt-oss-20b": {
|
||
maxTokens: 32766, // Model fails if you try to use more than 32K tokens
|
||
contextWindow: 131_072,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.1,
|
||
outputPrice: 0.5,
|
||
description:
|
||
"A compact 20B open-weight Mixture-of-Experts language model designed for strong reasoning and tool use, ideal for edge devices and local inference.",
|
||
},
|
||
// Compound Beta Models - Hybrid architectures optimized for tool use
|
||
"compound-beta": {
|
||
maxTokens: 8192,
|
||
contextWindow: 128000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.0,
|
||
outputPrice: 0.0,
|
||
description:
|
||
"Compound model using Llama 4 Scout for core reasoning with Llama 3.3 70B for routing and tool use. Excellent for plan/act workflows.",
|
||
},
|
||
"compound-beta-mini": {
|
||
maxTokens: 8192,
|
||
contextWindow: 128000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.0,
|
||
outputPrice: 0.0,
|
||
description: "Lightweight compound model for faster inference while maintaining tool use capabilities.",
|
||
},
|
||
// DeepSeek Models - Reasoning-optimized
|
||
"deepseek-r1-distill-llama-70b": {
|
||
maxTokens: 131072,
|
||
contextWindow: 131072,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.75,
|
||
outputPrice: 0.99,
|
||
description:
|
||
"DeepSeek R1 reasoning capabilities distilled into Llama 70B architecture. Excellent for complex problem-solving and planning.",
|
||
},
|
||
// Llama 4 Models
|
||
"meta-llama/llama-4-maverick-17b-128e-instruct": {
|
||
maxTokens: 8192,
|
||
contextWindow: 131072,
|
||
supportsImages: true,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.2,
|
||
outputPrice: 0.6,
|
||
description: "Meta's Llama 4 Maverick 17B model with 128 experts, supports vision and multimodal tasks.",
|
||
},
|
||
"meta-llama/llama-4-scout-17b-16e-instruct": {
|
||
maxTokens: 8192,
|
||
contextWindow: 131072,
|
||
supportsImages: true,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.11,
|
||
outputPrice: 0.34,
|
||
description: "Meta's Llama 4 Scout 17B model with 16 experts, optimized for fast inference and general tasks.",
|
||
},
|
||
// Llama 3.3 Models
|
||
"llama-3.3-70b-versatile": {
|
||
maxTokens: 32768,
|
||
contextWindow: 131072,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.59,
|
||
outputPrice: 0.79,
|
||
description: "Meta's latest Llama 3.3 70B model optimized for versatile use cases with excellent performance and speed.",
|
||
},
|
||
// Llama 3.1 Models - Fast inference
|
||
"llama-3.1-8b-instant": {
|
||
maxTokens: 131072,
|
||
contextWindow: 131072,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.05,
|
||
outputPrice: 0.08,
|
||
description: "Fast and efficient Llama 3.1 8B model optimized for speed, low latency, and reliable tool execution.",
|
||
},
|
||
// Moonshot Models
|
||
"moonshotai/kimi-k2-instruct": {
|
||
maxTokens: 16384,
|
||
contextWindow: 131072,
|
||
supportsImages: false,
|
||
supportsPromptCache: true,
|
||
inputPrice: 1.0,
|
||
outputPrice: 3.0,
|
||
cacheReadsPrice: 0.5, // 50% discount for cached input tokens
|
||
description:
|
||
"Kimi K2 is Moonshot AI's state-of-the-art Mixture-of-Experts (MoE) language model with 1 trillion total parameters and 32 billion activated parameters.",
|
||
},
|
||
"moonshotai/kimi-k2-instruct-0905": {
|
||
maxTokens: 16384,
|
||
contextWindow: 262144,
|
||
supportsImages: false,
|
||
supportsPromptCache: true,
|
||
inputPrice: 0.6,
|
||
outputPrice: 2.5,
|
||
cacheReadsPrice: 0.15,
|
||
description:
|
||
"Kimi K2 model gets a new version update: Agentic coding: more accurate, better generalization across scaffolds. Frontend coding: improved aesthetics and functionalities on web, 3d, and other tasks. Context length: extended from 128k to 256k, providing better long-horizon support.",
|
||
},
|
||
} as const satisfies Record<string, ModelInfo>
|
||
|
||
// Requesty
|
||
// https://requesty.ai/models
|
||
export const requestyDefaultModelId = "anthropic/claude-sonnet-5"
|
||
export const requestyDefaultModelInfo: ModelInfo = {
|
||
maxTokens: 128_000,
|
||
contextWindow: 200_000,
|
||
supportsImages: true,
|
||
|
||
supportsPromptCache: true,
|
||
inputPrice: 2.0,
|
||
outputPrice: 10.0,
|
||
cacheWritesPrice: 2.5,
|
||
cacheReadsPrice: 0.2,
|
||
description: "Anthropic's latest Sonnet model for coding, agents, and professional work.",
|
||
}
|
||
|
||
// SAP AI Core
|
||
export type SapAiCoreModelId = keyof typeof sapAiCoreModels
|
||
export const sapAiCoreDefaultModelId: SapAiCoreModelId = "anthropic--claude-3.5-sonnet"
|
||
// Pricing is calculated using Capacity Units, not directly in USD
|
||
const sapAiCoreModelDescription = "Pricing is calculated using SAP's Capacity Units rather than direct USD pricing."
|
||
export const sapAiCoreModels = {
|
||
"anthropic--claude-sonnet-5": {
|
||
maxTokens: 128_000,
|
||
contextWindow: 200_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
description: sapAiCoreModelDescription,
|
||
},
|
||
"anthropic--claude-4.5-haiku": {
|
||
maxTokens: 64000,
|
||
contextWindow: 200_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
description: sapAiCoreModelDescription,
|
||
},
|
||
"anthropic--claude-4.6-sonnet": {
|
||
maxTokens: 8192,
|
||
contextWindow: 200_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
description: sapAiCoreModelDescription,
|
||
},
|
||
"anthropic--claude-4.5-sonnet": {
|
||
maxTokens: 64_000,
|
||
contextWindow: 200_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
description: sapAiCoreModelDescription,
|
||
},
|
||
"anthropic--claude-4-sonnet": {
|
||
maxTokens: 64_000,
|
||
contextWindow: 200_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
description: sapAiCoreModelDescription,
|
||
},
|
||
"anthropic--claude-4.7-opus": {
|
||
maxTokens: 128_000,
|
||
contextWindow: 1_000_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
description: sapAiCoreModelDescription,
|
||
},
|
||
"anthropic--claude-4.6-opus": {
|
||
maxTokens: 128_000,
|
||
contextWindow: 1_000_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
description: sapAiCoreModelDescription,
|
||
},
|
||
"anthropic--claude-4.5-opus": {
|
||
maxTokens: 64_000,
|
||
contextWindow: 200_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
description: sapAiCoreModelDescription,
|
||
},
|
||
"anthropic--claude-4-opus": {
|
||
maxTokens: 32_000,
|
||
contextWindow: 200_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
description: sapAiCoreModelDescription,
|
||
},
|
||
"anthropic--claude-3.7-sonnet": {
|
||
maxTokens: 64_000,
|
||
contextWindow: 200_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
description: sapAiCoreModelDescription,
|
||
},
|
||
"anthropic--claude-3.5-sonnet": {
|
||
maxTokens: 8192,
|
||
contextWindow: 200_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: false,
|
||
description: sapAiCoreModelDescription,
|
||
},
|
||
"anthropic--claude-3-sonnet": {
|
||
maxTokens: 4096,
|
||
contextWindow: 200_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: false,
|
||
description: sapAiCoreModelDescription,
|
||
},
|
||
"anthropic--claude-3-haiku": {
|
||
maxTokens: 4096,
|
||
contextWindow: 200_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: false,
|
||
description: sapAiCoreModelDescription,
|
||
},
|
||
"anthropic--claude-3-opus": {
|
||
maxTokens: 4096,
|
||
contextWindow: 200_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: false,
|
||
description: sapAiCoreModelDescription,
|
||
},
|
||
"amazon--nova-pro": {
|
||
maxTokens: 10_000,
|
||
contextWindow: 300_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: false,
|
||
description: sapAiCoreModelDescription,
|
||
},
|
||
"amazon--nova-lite": {
|
||
maxTokens: 10_000,
|
||
contextWindow: 300_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: false,
|
||
description: sapAiCoreModelDescription,
|
||
},
|
||
"amazon--nova-micro": {
|
||
maxTokens: 10_000,
|
||
contextWindow: 128_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
description: sapAiCoreModelDescription,
|
||
},
|
||
"gemini-2.5-pro": {
|
||
maxTokens: 65536,
|
||
contextWindow: 1_048_576,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
thinkingConfig: {
|
||
maxBudget: 32767,
|
||
},
|
||
description: sapAiCoreModelDescription,
|
||
},
|
||
"gemini-2.5-flash": {
|
||
maxTokens: 65536,
|
||
contextWindow: 1_048_576,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
thinkingConfig: {
|
||
maxBudget: 24576,
|
||
},
|
||
description: sapAiCoreModelDescription,
|
||
},
|
||
"gemini-2.5-flash-lite": {
|
||
maxTokens: 65535,
|
||
contextWindow: 1_048_576,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
thinkingConfig: {
|
||
maxBudget: 24576,
|
||
},
|
||
description: sapAiCoreModelDescription,
|
||
},
|
||
"gemini-2.5-flash-image": {
|
||
maxTokens: 32_768,
|
||
contextWindow: 32_768,
|
||
supportsImages: true,
|
||
supportsPromptCache: false,
|
||
description: sapAiCoreModelDescription,
|
||
},
|
||
"gpt-4": {
|
||
maxTokens: 4096,
|
||
contextWindow: 200_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: false,
|
||
description: sapAiCoreModelDescription,
|
||
},
|
||
"gpt-4o": {
|
||
maxTokens: 4096,
|
||
contextWindow: 200_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: false,
|
||
description: sapAiCoreModelDescription,
|
||
},
|
||
"gpt-4o-mini": {
|
||
maxTokens: 4096,
|
||
contextWindow: 200_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: false,
|
||
description: sapAiCoreModelDescription,
|
||
},
|
||
"gpt-4.1": {
|
||
maxTokens: 32_768,
|
||
contextWindow: 1_047_576,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
description: sapAiCoreModelDescription,
|
||
},
|
||
"gpt-4.1-nano": {
|
||
maxTokens: 32_768,
|
||
contextWindow: 1_047_576,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
description: sapAiCoreModelDescription,
|
||
},
|
||
"gpt-5": {
|
||
maxTokens: 128_000,
|
||
contextWindow: 272_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
description: sapAiCoreModelDescription,
|
||
},
|
||
"gpt-5-nano": {
|
||
maxTokens: 128_000,
|
||
contextWindow: 272_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
description: sapAiCoreModelDescription,
|
||
},
|
||
"gpt-5-mini": {
|
||
maxTokens: 128_000,
|
||
contextWindow: 272_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
description: sapAiCoreModelDescription,
|
||
},
|
||
"gpt-5.2": {
|
||
maxTokens: 128_000,
|
||
contextWindow: 400_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
description: sapAiCoreModelDescription,
|
||
},
|
||
"gpt-5.5": {
|
||
maxTokens: 128_000,
|
||
contextWindow: 1_050_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
description: sapAiCoreModelDescription,
|
||
},
|
||
"gpt-5.4": {
|
||
maxTokens: 128_000,
|
||
contextWindow: 1_050_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
description: sapAiCoreModelDescription,
|
||
},
|
||
"gpt-5.4-nano": {
|
||
maxTokens: 128_000,
|
||
contextWindow: 400_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
description: sapAiCoreModelDescription,
|
||
},
|
||
o1: {
|
||
maxTokens: 4096,
|
||
contextWindow: 200_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: false,
|
||
description: sapAiCoreModelDescription,
|
||
},
|
||
o3: {
|
||
maxTokens: 100_000,
|
||
contextWindow: 200_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
description: sapAiCoreModelDescription,
|
||
},
|
||
"o3-mini": {
|
||
maxTokens: 4096,
|
||
contextWindow: 200_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: false,
|
||
description: sapAiCoreModelDescription,
|
||
},
|
||
"o4-mini": {
|
||
maxTokens: 100_000,
|
||
contextWindow: 200_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
description: sapAiCoreModelDescription,
|
||
},
|
||
sonar: {
|
||
maxTokens: 128_000,
|
||
contextWindow: 128_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
description: sapAiCoreModelDescription,
|
||
},
|
||
"sonar-pro": {
|
||
maxTokens: 128_000,
|
||
contextWindow: 200_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
description: sapAiCoreModelDescription,
|
||
},
|
||
"mistralai--mistral-medium-instruct": {
|
||
maxTokens: 8192,
|
||
contextWindow: 128_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
description: sapAiCoreModelDescription,
|
||
},
|
||
"mistralai--mistral-large-instruct": {
|
||
maxTokens: 8192,
|
||
contextWindow: 64_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
description: sapAiCoreModelDescription,
|
||
},
|
||
"mistralai--mistral-small-instruct": {
|
||
maxTokens: 8192,
|
||
contextWindow: 128_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
description: sapAiCoreModelDescription,
|
||
},
|
||
"mistralai--mistral-small": {
|
||
maxTokens: 8192,
|
||
contextWindow: 128_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
description: sapAiCoreModelDescription,
|
||
},
|
||
"cohere--command-a-reasoning": {
|
||
maxTokens: 8192,
|
||
contextWindow: 256_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
description: sapAiCoreModelDescription,
|
||
},
|
||
} as const satisfies Record<string, ModelInfo>
|
||
|
||
// Moonshot AI Studio
|
||
// https://platform.moonshot.ai/docs/pricing/chat
|
||
export const moonshotModels = {
|
||
"kimi-k2.6": {
|
||
maxTokens: 32_000,
|
||
contextWindow: 262_144,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
inputPrice: 0.95,
|
||
outputPrice: 4.0,
|
||
cacheReadsPrice: 0.16,
|
||
temperature: 1.0,
|
||
},
|
||
"kimi-k2.5": {
|
||
maxTokens: 32_000,
|
||
contextWindow: 262_144,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
inputPrice: 0.6,
|
||
outputPrice: 3.0,
|
||
cacheReadsPrice: 0.1,
|
||
temperature: 1.0,
|
||
},
|
||
"kimi-k2-0905-preview": {
|
||
maxTokens: 16384,
|
||
contextWindow: 262144,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.6,
|
||
outputPrice: 2.5,
|
||
temperature: 0.6,
|
||
},
|
||
"kimi-k2-0711-preview": {
|
||
maxTokens: 32_000,
|
||
contextWindow: 131_072,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.6,
|
||
outputPrice: 2.5,
|
||
temperature: 0.6,
|
||
},
|
||
"kimi-k2-turbo-preview": {
|
||
maxTokens: 32_000,
|
||
contextWindow: 262_144,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 2.4,
|
||
outputPrice: 10,
|
||
temperature: 0.6,
|
||
},
|
||
"kimi-k2-thinking": {
|
||
maxTokens: 32_000,
|
||
contextWindow: 262_144,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.6,
|
||
outputPrice: 2.5,
|
||
temperature: 1.0,
|
||
},
|
||
"kimi-k2-thinking-turbo": {
|
||
maxTokens: 32_000,
|
||
contextWindow: 262_144,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 2.4,
|
||
outputPrice: 10,
|
||
temperature: 1.0,
|
||
},
|
||
} as const satisfies Record<string, OpenAiCompatibleModelInfo>
|
||
export type MoonshotModelId = keyof typeof moonshotModels
|
||
export const moonshotDefaultModelId = "kimi-k2-0905-preview" satisfies MoonshotModelId
|
||
|
||
// Huawei Cloud MaaS
|
||
// Dify.ai - No model selection needed, models are configured in Dify workflows
|
||
|
||
export type HuaweiCloudMaasModelId = keyof typeof huaweiCloudMaasModels
|
||
export const huaweiCloudMaasDefaultModelId: HuaweiCloudMaasModelId = "DeepSeek-V3"
|
||
export const huaweiCloudMaasModels = {
|
||
"DeepSeek-V3": {
|
||
maxTokens: 16_384,
|
||
contextWindow: 64_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.27,
|
||
outputPrice: 1.1,
|
||
cacheWritesPrice: 0,
|
||
cacheReadsPrice: 0,
|
||
},
|
||
"DeepSeek-R1": {
|
||
maxTokens: 16_384,
|
||
contextWindow: 64_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.55,
|
||
outputPrice: 2.2,
|
||
cacheWritesPrice: 0,
|
||
cacheReadsPrice: 0,
|
||
thinkingConfig: {
|
||
maxBudget: 8192,
|
||
outputPrice: 2.2,
|
||
},
|
||
},
|
||
"deepseek-r1-250528": {
|
||
maxTokens: 16_384,
|
||
contextWindow: 64_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.55,
|
||
outputPrice: 2.2,
|
||
cacheWritesPrice: 0,
|
||
cacheReadsPrice: 0,
|
||
thinkingConfig: {
|
||
maxBudget: 8192,
|
||
outputPrice: 2.2,
|
||
},
|
||
},
|
||
"qwen3-235b-a22b": {
|
||
maxTokens: 8_192,
|
||
contextWindow: 32_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.27,
|
||
outputPrice: 1.1,
|
||
cacheWritesPrice: 0,
|
||
cacheReadsPrice: 0,
|
||
thinkingConfig: {
|
||
maxBudget: 4096,
|
||
outputPrice: 1.1,
|
||
},
|
||
},
|
||
"qwen3-32b": {
|
||
maxTokens: 8_192,
|
||
contextWindow: 32_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.27,
|
||
outputPrice: 1.1,
|
||
cacheWritesPrice: 0,
|
||
cacheReadsPrice: 0,
|
||
thinkingConfig: {
|
||
maxBudget: 4096,
|
||
outputPrice: 1.1,
|
||
},
|
||
},
|
||
} as const satisfies Record<string, ModelInfo>
|
||
|
||
// Baseten
|
||
// https://baseten.co/products/model-apis/
|
||
// Extended ModelInfo to include supportedFeatures, like tools
|
||
export interface BasetenModelInfo extends ModelInfo {
|
||
supportedFeatures?: string[]
|
||
}
|
||
|
||
export const basetenModels = {
|
||
"moonshotai/Kimi-K2-Thinking": {
|
||
maxTokens: 163_800,
|
||
contextWindow: 262_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.6,
|
||
outputPrice: 2.5,
|
||
cacheWritesPrice: 0,
|
||
cacheReadsPrice: 0,
|
||
description: "Kimi K2 Thinking - A model with enhanced reasoning capabilities from Kimi K2",
|
||
supportsReasoning: true,
|
||
},
|
||
"zai-org/GLM-4.6": {
|
||
maxTokens: 200_000,
|
||
contextWindow: 200_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.6,
|
||
outputPrice: 2.2,
|
||
cacheWritesPrice: 0,
|
||
cacheReadsPrice: 0,
|
||
description: "Frontier open model with advanced agentic, reasoning and coding capabilities",
|
||
supportsReasoning: true,
|
||
},
|
||
"deepseek-ai/DeepSeek-R1": {
|
||
maxTokens: 131_072,
|
||
contextWindow: 163_840,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 2.55,
|
||
outputPrice: 5.95,
|
||
cacheWritesPrice: 0,
|
||
cacheReadsPrice: 0,
|
||
description: "DeepSeek's first-generation reasoning model",
|
||
supportsReasoning: true,
|
||
},
|
||
"deepseek-ai/DeepSeek-R1-0528": {
|
||
maxTokens: 131_072,
|
||
contextWindow: 163_840,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 2.55,
|
||
outputPrice: 5.95,
|
||
cacheWritesPrice: 0,
|
||
cacheReadsPrice: 0,
|
||
description: "The latest revision of DeepSeek's first-generation reasoning model",
|
||
supportsReasoning: true,
|
||
},
|
||
"deepseek-ai/DeepSeek-V3-0324": {
|
||
maxTokens: 131_072,
|
||
contextWindow: 163_840,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.77,
|
||
outputPrice: 0.77,
|
||
cacheWritesPrice: 0,
|
||
cacheReadsPrice: 0,
|
||
description: "Fast general-purpose LLM with enhanced reasoning capabilities",
|
||
supportsReasoning: true,
|
||
},
|
||
"deepseek-ai/DeepSeek-V3.1": {
|
||
maxTokens: 131_072,
|
||
contextWindow: 163_840,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.5,
|
||
outputPrice: 1.5,
|
||
cacheWritesPrice: 0,
|
||
cacheReadsPrice: 0,
|
||
description: "Extremely capable general-purpose LLM with hybrid reasoning capabilities and advanced tool calling",
|
||
supportsReasoning: true,
|
||
},
|
||
"deepseek-ai/DeepSeek-V3.2": {
|
||
maxTokens: 131_072,
|
||
contextWindow: 163_840,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.3,
|
||
outputPrice: 0.45,
|
||
cacheWritesPrice: 0,
|
||
cacheReadsPrice: 0,
|
||
description: "DeepSeek's hybrid reasoning model with efficient long context scaling with GPT-5 level performance",
|
||
supportsReasoning: true,
|
||
},
|
||
"Qwen/Qwen3-235B-A22B-Instruct-2507": {
|
||
maxTokens: 262_144,
|
||
contextWindow: 262_144,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.22,
|
||
outputPrice: 0.8,
|
||
cacheWritesPrice: 0,
|
||
cacheReadsPrice: 0,
|
||
description: "Mixture-of-experts LLM with math and reasoning capabilities",
|
||
supportsReasoning: false,
|
||
},
|
||
"Qwen/Qwen3-Coder-480B-A35B-Instruct": {
|
||
maxTokens: 262_144,
|
||
contextWindow: 262_144,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.38,
|
||
outputPrice: 1.53,
|
||
cacheWritesPrice: 0,
|
||
cacheReadsPrice: 0,
|
||
description: "Mixture-of-experts LLM with advanced coding and reasoning capabilities",
|
||
supportsReasoning: false,
|
||
},
|
||
"openai/gpt-oss-120b": {
|
||
maxTokens: 128_072,
|
||
contextWindow: 128_072,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.1,
|
||
outputPrice: 0.5,
|
||
cacheWritesPrice: 0,
|
||
cacheReadsPrice: 0,
|
||
description: "Extremely capable general-purpose LLM with strong, controllable reasoning capabilities",
|
||
supportsReasoning: true,
|
||
},
|
||
"moonshotai/Kimi-K2-Instruct-0905": {
|
||
maxTokens: 168_000,
|
||
contextWindow: 262_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.6,
|
||
outputPrice: 2.5,
|
||
cacheWritesPrice: 0,
|
||
cacheReadsPrice: 0,
|
||
description: "State of the art language model for agentic and coding tasks. September Update.",
|
||
supportsReasoning: false,
|
||
},
|
||
} as const satisfies Record<string, ModelInfo>
|
||
export type BasetenModelId = keyof typeof basetenModels
|
||
export const basetenDefaultModelId = "zai-org/GLM-4.6" satisfies BasetenModelId
|
||
|
||
// Z AI
|
||
// https://docs.z.ai/guides/llm/glm-5.2
|
||
// https://docs.z.ai/guides/llm/glm-5.1
|
||
// https://docs.z.ai/guides/llm/glm-5
|
||
// https://docs.z.ai/guides/overview/pricing
|
||
export type internationalZAiModelId = keyof typeof internationalZAiModels
|
||
export const internationalZAiDefaultModelId: internationalZAiModelId = "glm-5.1"
|
||
export const internationalZAiModels = {
|
||
"glm-5.2": {
|
||
maxTokens: 128_000,
|
||
contextWindow: 1_000_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: true,
|
||
cacheReadsPrice: 0.26,
|
||
inputPrice: 1.4,
|
||
outputPrice: 4.4,
|
||
},
|
||
"glm-5.1": {
|
||
maxTokens: 128_000,
|
||
contextWindow: 200_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: true,
|
||
cacheReadsPrice: 0.26,
|
||
inputPrice: 1.4,
|
||
outputPrice: 4.4,
|
||
},
|
||
"glm-5": {
|
||
maxTokens: 128_000,
|
||
contextWindow: 200_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: true,
|
||
cacheReadsPrice: 0.2,
|
||
inputPrice: 1.0,
|
||
outputPrice: 3.2,
|
||
},
|
||
"glm-4.7": {
|
||
maxTokens: 131_000,
|
||
contextWindow: 200_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: true,
|
||
cacheReadsPrice: 0.11,
|
||
inputPrice: 0.6,
|
||
outputPrice: 2.2,
|
||
},
|
||
"glm-4.6": {
|
||
maxTokens: 128_000,
|
||
contextWindow: 200_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: true,
|
||
cacheReadsPrice: 0.11,
|
||
inputPrice: 0.6,
|
||
outputPrice: 2.2,
|
||
},
|
||
"glm-4.5": {
|
||
maxTokens: 98_304,
|
||
contextWindow: 131_072,
|
||
supportsImages: false,
|
||
supportsPromptCache: true,
|
||
inputPrice: 0.6,
|
||
outputPrice: 2.2,
|
||
cacheWritesPrice: 0,
|
||
cacheReadsPrice: 0.11,
|
||
description:
|
||
"GLM-4.5 is Zhipu's latest featured model. Its comprehensive capabilities in reasoning, coding, and agent reach the state-of-the-art (SOTA) level among open-source models, with a context length of up to 128k.",
|
||
},
|
||
"glm-4.5-air": {
|
||
maxTokens: 98304, // Quantization: fp8
|
||
contextWindow: 128_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: true,
|
||
inputPrice: 0.2,
|
||
outputPrice: 1.2,
|
||
cacheWritesPrice: 0,
|
||
cacheReadsPrice: 0.03,
|
||
description:
|
||
"GLM-4.5-Air is the lightweight version of GLM-4.5. It balances performance and cost-effectiveness, and can flexibly switch to hybrid thinking models.",
|
||
},
|
||
} as const satisfies Record<string, ModelInfo>
|
||
|
||
export type mainlandZAiModelId = keyof typeof mainlandZAiModels
|
||
export const mainlandZAiDefaultModelId: mainlandZAiModelId = "glm-5.1"
|
||
export const mainlandZAiModels = {
|
||
"glm-5.2": {
|
||
maxTokens: 128_000,
|
||
contextWindow: 1_000_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: true,
|
||
cacheReadsPrice: 0.26,
|
||
inputPrice: 1.4,
|
||
outputPrice: 4.4,
|
||
},
|
||
"glm-5.1": {
|
||
maxTokens: 128_000,
|
||
contextWindow: 200_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: true,
|
||
cacheReadsPrice: 0.26,
|
||
inputPrice: 1.4,
|
||
outputPrice: 4.4,
|
||
},
|
||
"glm-5": {
|
||
maxTokens: 128_000,
|
||
contextWindow: 200_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: true,
|
||
cacheReadsPrice: 0.2,
|
||
inputPrice: 1.0,
|
||
outputPrice: 3.2,
|
||
},
|
||
"glm-4.7": {
|
||
maxTokens: 131_000,
|
||
contextWindow: 200_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: true,
|
||
cacheReadsPrice: 0.11,
|
||
inputPrice: 0.6,
|
||
outputPrice: 2.2,
|
||
},
|
||
"glm-4.6": {
|
||
maxTokens: 128_000,
|
||
contextWindow: 200_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: true,
|
||
cacheReadsPrice: 0.11,
|
||
inputPrice: 0.6,
|
||
outputPrice: 2.2,
|
||
},
|
||
"glm-4.5": {
|
||
maxTokens: 98_304,
|
||
contextWindow: 131_072,
|
||
supportsImages: false,
|
||
supportsPromptCache: true,
|
||
inputPrice: 0.29,
|
||
outputPrice: 1.14,
|
||
cacheWritesPrice: 0,
|
||
cacheReadsPrice: 0.057,
|
||
description:
|
||
"GLM-4.5 is Zhipu's latest featured model. Its comprehensive capabilities in reasoning, coding, and agent reach the state-of-the-art (SOTA) level among open-source models, with a context length of up to 128k.",
|
||
tiers: [
|
||
{
|
||
contextWindow: 32_000,
|
||
inputPrice: 0.21,
|
||
outputPrice: 1.0,
|
||
cacheReadsPrice: 0.043,
|
||
},
|
||
{
|
||
contextWindow: 128_000,
|
||
inputPrice: 0.29,
|
||
outputPrice: 1.14,
|
||
cacheReadsPrice: 0.057,
|
||
},
|
||
{
|
||
contextWindow: Number.POSITIVE_INFINITY,
|
||
inputPrice: 0.29,
|
||
outputPrice: 1.14,
|
||
cacheReadsPrice: 0.057,
|
||
},
|
||
],
|
||
},
|
||
"glm-4.5-air": {
|
||
maxTokens: 98304, // Quantization: fp8
|
||
contextWindow: 128_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: true,
|
||
inputPrice: 0.086,
|
||
outputPrice: 0.57,
|
||
cacheWritesPrice: 0,
|
||
cacheReadsPrice: 0.017,
|
||
description:
|
||
"GLM-4.5-Air is the lightweight version of GLM-4.5. It balances performance and cost-effectiveness, and can flexibly switch to hybrid thinking models.",
|
||
tiers: [
|
||
{
|
||
contextWindow: 32_000,
|
||
inputPrice: 0.057,
|
||
outputPrice: 0.43,
|
||
cacheReadsPrice: 0.011,
|
||
},
|
||
{
|
||
contextWindow: 128_000,
|
||
inputPrice: 0.086,
|
||
outputPrice: 0.57,
|
||
cacheReadsPrice: 0.017,
|
||
},
|
||
{
|
||
contextWindow: Number.POSITIVE_INFINITY,
|
||
inputPrice: 0.086,
|
||
outputPrice: 0.57,
|
||
cacheReadsPrice: 0.017,
|
||
},
|
||
],
|
||
},
|
||
} as const satisfies Record<string, ModelInfo>
|
||
|
||
// Fireworks AI
|
||
export type FireworksModelId = keyof typeof fireworksModels
|
||
export const fireworksDefaultModelId: FireworksModelId = "accounts/fireworks/models/kimi-k2p6"
|
||
export const fireworksModels = {
|
||
"accounts/fireworks/models/kimi-k2p7-code": {
|
||
maxTokens: 262000,
|
||
contextWindow: 262000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
inputPrice: 0.95,
|
||
outputPrice: 4,
|
||
cacheWritesPrice: 0,
|
||
cacheReadsPrice: 0.19,
|
||
description:
|
||
"Moonshot's latest open coding model. Kimi K2.7 Code unifies vision and text, thinking and non-thinking modes, and single-agent and multi-agent execution.",
|
||
},
|
||
"accounts/fireworks/models/kimi-k2p6": {
|
||
maxTokens: 262000,
|
||
contextWindow: 262000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
inputPrice: 0.95,
|
||
outputPrice: 4,
|
||
cacheWritesPrice: 0,
|
||
cacheReadsPrice: 0.16,
|
||
description:
|
||
"Moonshot's latest open agentic model. Kimi K2.6 unifies vision and text, thinking and non-thinking modes, and single-agent and multi-agent execution.",
|
||
},
|
||
"accounts/fireworks/routers/kimi-k2p6-turbo": {
|
||
maxTokens: 262000,
|
||
contextWindow: 262000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
inputPrice: 2,
|
||
outputPrice: 8,
|
||
cacheWritesPrice: 0,
|
||
cacheReadsPrice: 0.3,
|
||
description:
|
||
"Kimi K2.6 Turbo router for high-performance agentic workloads with vision and text reasoning.",
|
||
},
|
||
"accounts/fireworks/routers/kimi-k2p6-fast": {
|
||
maxTokens: 262000,
|
||
contextWindow: 262000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
inputPrice: 2,
|
||
outputPrice: 8,
|
||
cacheWritesPrice: 0,
|
||
cacheReadsPrice: 0.3,
|
||
description:
|
||
"Kimi K2.6 Fast router for high-performance agentic workloads with vision and text reasoning.",
|
||
},
|
||
"accounts/fireworks/routers/kimi-k2p7-code-fast": {
|
||
maxTokens: 262000,
|
||
contextWindow: 262000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
inputPrice: 1.9,
|
||
outputPrice: 8,
|
||
cacheWritesPrice: 0,
|
||
cacheReadsPrice: 0.38,
|
||
description:
|
||
"Kimi K2.7 Code Fast router for high-performance coding workloads with vision and text reasoning.",
|
||
},
|
||
"accounts/fireworks/models/deepseek-v4-flash": {
|
||
maxTokens: 384000,
|
||
contextWindow: 1000000,
|
||
supportsImages: false,
|
||
supportsPromptCache: true,
|
||
inputPrice: 0.14,
|
||
outputPrice: 0.28,
|
||
cacheWritesPrice: 0,
|
||
cacheReadsPrice: 0.028,
|
||
description:
|
||
"DeepSeek V4 Flash is a fast, cost-efficient reasoning model with a 1M context window and strong tool-use capabilities.",
|
||
},
|
||
"accounts/fireworks/models/deepseek-v4-pro": {
|
||
maxTokens: 384000,
|
||
contextWindow: 1000000,
|
||
supportsImages: false,
|
||
supportsPromptCache: true,
|
||
inputPrice: 1.74,
|
||
outputPrice: 3.48,
|
||
cacheWritesPrice: 0,
|
||
cacheReadsPrice: 0.145,
|
||
description:
|
||
"DeepSeek V4 Pro is a flagship reasoning model with a 1M context window, advanced structured output, and agentic performance.",
|
||
},
|
||
"accounts/fireworks/models/glm-5p2": {
|
||
maxTokens: 131072,
|
||
contextWindow: 1048576,
|
||
supportsImages: false,
|
||
supportsPromptCache: true,
|
||
inputPrice: 1.4,
|
||
outputPrice: 4.4,
|
||
cacheWritesPrice: 0,
|
||
cacheReadsPrice: 0.26,
|
||
description: "GLM 5.2 is a next-generation general-purpose model optimized for coding, reasoning, and agentic workflows with a 1M context window.",
|
||
},
|
||
"accounts/fireworks/models/glm-5p1": {
|
||
maxTokens: 131072,
|
||
contextWindow: 202800,
|
||
supportsImages: false,
|
||
supportsPromptCache: true,
|
||
inputPrice: 1.4,
|
||
outputPrice: 4.4,
|
||
cacheWritesPrice: 0,
|
||
cacheReadsPrice: 0.26,
|
||
description: "GLM 5.1 is a next-generation general-purpose model optimized for coding, reasoning, and agentic workflows.",
|
||
},
|
||
"accounts/fireworks/routers/glm-5p1-fast": {
|
||
maxTokens: 131072,
|
||
contextWindow: 202800,
|
||
supportsImages: false,
|
||
supportsPromptCache: true,
|
||
inputPrice: 2.8,
|
||
outputPrice: 8.8,
|
||
cacheWritesPrice: 0,
|
||
cacheReadsPrice: 0.52,
|
||
description: "GLM 5.1 Fast router for high-throughput coding, reasoning, and agentic workflows.",
|
||
},
|
||
"accounts/fireworks/models/minimax-m3": {
|
||
maxTokens: 512000,
|
||
contextWindow: 512000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
inputPrice: 0.3,
|
||
outputPrice: 1.2,
|
||
cacheWritesPrice: 0,
|
||
cacheReadsPrice: 0.06,
|
||
description: "MiniMax M3 is built for state-of-the-art coding, agentic tool use, and long-context multimodal tasks.",
|
||
},
|
||
"accounts/fireworks/models/minimax-m2p7": {
|
||
maxTokens: 196608,
|
||
contextWindow: 196608,
|
||
supportsImages: false,
|
||
supportsPromptCache: true,
|
||
inputPrice: 0.3,
|
||
outputPrice: 1.2,
|
||
cacheWritesPrice: 0,
|
||
cacheReadsPrice: 0.06,
|
||
description: "MiniMax M2.7 is tuned for strong real-world performance across coding, agent-driven, and workflow-heavy tasks.",
|
||
},
|
||
"accounts/fireworks/models/qwen3p7-plus": {
|
||
maxTokens: 262144,
|
||
contextWindow: 262144,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
inputPrice: 0.4,
|
||
outputPrice: 1.6,
|
||
cacheWritesPrice: 0,
|
||
cacheReadsPrice: 0.08,
|
||
description: "Qwen 3.7 Plus with strong multimodal reasoning, long context support, and function calling.",
|
||
},
|
||
"accounts/fireworks/models/gpt-oss-120b": {
|
||
maxTokens: 32768,
|
||
contextWindow: 131072,
|
||
supportsImages: false,
|
||
supportsPromptCache: true,
|
||
inputPrice: 0.15,
|
||
outputPrice: 0.6,
|
||
cacheWritesPrice: 0,
|
||
cacheReadsPrice: 0.015,
|
||
description: "OpenAI GPT OSS 120B open-weight model for production and high-reasoning use cases.",
|
||
},
|
||
"accounts/fireworks/models/gpt-oss-20b": {
|
||
maxTokens: 32768,
|
||
contextWindow: 131072,
|
||
supportsImages: false,
|
||
supportsPromptCache: true,
|
||
inputPrice: 0.07,
|
||
outputPrice: 0.3,
|
||
cacheWritesPrice: 0,
|
||
cacheReadsPrice: 0.035,
|
||
description: "OpenAI GPT OSS 20B open-weight model for efficient production and reasoning use cases.",
|
||
},
|
||
} as const satisfies Record<string, ModelInfo>
|
||
|
||
// Qwen Code
|
||
// https://chat.qwen.ai/
|
||
export const qwenCodeModels = {
|
||
"qwen3-coder-plus": {
|
||
maxTokens: 65_536,
|
||
contextWindow: 1_000_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0,
|
||
outputPrice: 0,
|
||
cacheWritesPrice: 0,
|
||
cacheReadsPrice: 0,
|
||
description: "Qwen3 Coder Plus - High-performance coding model with 1M context window for large codebases",
|
||
},
|
||
"qwen3-coder-flash": {
|
||
maxTokens: 65_536,
|
||
contextWindow: 1_000_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0,
|
||
outputPrice: 0,
|
||
cacheWritesPrice: 0,
|
||
cacheReadsPrice: 0,
|
||
description: "Qwen3 Coder Flash - Fast coding model with 1M context window optimized for speed",
|
||
},
|
||
} as const satisfies Record<string, ModelInfo>
|
||
export type QwenCodeModelId = keyof typeof qwenCodeModels
|
||
export const qwenCodeDefaultModelId: QwenCodeModelId = "qwen3-coder-plus"
|
||
|
||
// Minimax
|
||
// https://www.minimax.io/platform/document/text_api_intro
|
||
// https://www.minimax.io/platform/document/pricing
|
||
export type MinimaxModelId = keyof typeof minimaxModels
|
||
export const minimaxDefaultModelId: MinimaxModelId = "MiniMax-M2.7"
|
||
export const minimaxModels = {
|
||
"MiniMax-M3": {
|
||
maxTokens: 32_000,
|
||
contextWindow: 1_000_000,
|
||
supportsImages: true,
|
||
supportsPromptCache: true,
|
||
supportsReasoning: true,
|
||
inputPrice: 0.6,
|
||
outputPrice: 2.4,
|
||
cacheWritesPrice: 0.6,
|
||
cacheReadsPrice: 0.12,
|
||
tiers: [
|
||
{
|
||
contextWindow: 512_000,
|
||
inputPrice: 0.6,
|
||
outputPrice: 2.4,
|
||
cacheWritesPrice: 0.6,
|
||
cacheReadsPrice: 0.12,
|
||
},
|
||
{
|
||
contextWindow: Number.MAX_SAFE_INTEGER,
|
||
inputPrice: 1.2,
|
||
outputPrice: 4.8,
|
||
cacheWritesPrice: 1.2,
|
||
cacheReadsPrice: 0.24,
|
||
},
|
||
],
|
||
description: "Latest M-series model for coding, agentic reasoning, tool use, and long-context multimodal tasks",
|
||
},
|
||
"MiniMax-M2.7": {
|
||
maxTokens: 128_000,
|
||
contextWindow: 192_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: true,
|
||
supportsReasoning: true,
|
||
inputPrice: 0.3,
|
||
outputPrice: 1.2,
|
||
cacheWritesPrice: 0.375,
|
||
cacheReadsPrice: 0.06,
|
||
description: "Latest flagship model with enhanced reasoning and coding",
|
||
},
|
||
"MiniMax-M2.7-highspeed": {
|
||
maxTokens: 128_000,
|
||
contextWindow: 192_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: true,
|
||
supportsReasoning: true,
|
||
inputPrice: 0.6,
|
||
outputPrice: 2.4,
|
||
cacheWritesPrice: 0.375,
|
||
cacheReadsPrice: 0.06,
|
||
description: "High-speed version of M2.7 for low-latency scenarios",
|
||
},
|
||
"MiniMax-M2.5": {
|
||
maxTokens: 128_000,
|
||
contextWindow: 192_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: true,
|
||
supportsReasoning: true,
|
||
inputPrice: 0.3,
|
||
outputPrice: 1.2,
|
||
cacheWritesPrice: 0.375,
|
||
cacheReadsPrice: 0.03,
|
||
},
|
||
"MiniMax-M2.5-highspeed": {
|
||
maxTokens: 128_000,
|
||
contextWindow: 192_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: true,
|
||
supportsReasoning: true,
|
||
inputPrice: 0.6,
|
||
outputPrice: 2.4,
|
||
cacheWritesPrice: 0.375,
|
||
cacheReadsPrice: 0.03,
|
||
},
|
||
"MiniMax-M2.1": {
|
||
maxTokens: 128_000,
|
||
contextWindow: 192_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: true,
|
||
inputPrice: 0.3,
|
||
outputPrice: 1.2,
|
||
cacheWritesPrice: 0.375,
|
||
cacheReadsPrice: 0.03,
|
||
},
|
||
"MiniMax-M2.1-lightning": {
|
||
maxTokens: 128_000,
|
||
contextWindow: 192_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: true,
|
||
inputPrice: 0.6,
|
||
outputPrice: 2.4,
|
||
cacheWritesPrice: 0.375,
|
||
cacheReadsPrice: 0.03,
|
||
},
|
||
"MiniMax-M2": {
|
||
maxTokens: 128_000,
|
||
contextWindow: 192_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.3,
|
||
outputPrice: 1.2,
|
||
cacheWritesPrice: 0,
|
||
cacheReadsPrice: 0,
|
||
},
|
||
} as const satisfies Record<string, ModelInfo>
|
||
|
||
// NousResearch
|
||
// https://inference-api.nousResearch.com
|
||
export type NousResearchModelId = keyof typeof nousResearchModels
|
||
export const nousResearchDefaultModelId: NousResearchModelId = "Hermes-4-405B"
|
||
export const nousResearchModels = {
|
||
"Hermes-4-405B": {
|
||
maxTokens: 8192,
|
||
contextWindow: 128_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.09,
|
||
outputPrice: 0.37,
|
||
description:
|
||
"This is the largest model in the Hermes 4 family, and it is the fullest expression of our design, focused on advanced reasoning and creative depth rather than optimizing inference speed or cost.",
|
||
},
|
||
"Hermes-4-70B": {
|
||
maxTokens: 8192,
|
||
contextWindow: 128_000,
|
||
supportsImages: false,
|
||
supportsPromptCache: false,
|
||
inputPrice: 0.05,
|
||
outputPrice: 0.2,
|
||
description:
|
||
"This incarnation of Hermes 4 balances scale and size. It handles complex reasoning tasks, while staying fast and cost effective. A versatile choice for many use cases.",
|
||
},
|
||
} as const satisfies Record<string, ModelInfo>
|