|
|
@@ -25,9 +25,9 @@ export interface ModelInfo {
|
|
|
export type ApiModelId = AnthropicModelId | OpenRouterModelId | BedrockModelId
|
|
|
|
|
|
// Anthropic
|
|
|
+// https://docs.anthropic.com/en/docs/about-claude/models
|
|
|
export type AnthropicModelId = keyof typeof anthropicModels
|
|
|
export const anthropicDefaultModelId: AnthropicModelId = "claude-3-5-sonnet-20240620"
|
|
|
-// https://docs.anthropic.com/en/docs/about-claude/models
|
|
|
export const anthropicModels = {
|
|
|
"claude-3-5-sonnet-20240620": {
|
|
|
maxTokens: 8192,
|
|
|
@@ -44,37 +44,165 @@ export const anthropicModels = {
|
|
|
"claude-3-sonnet-20240229": {
|
|
|
maxTokens: 4096,
|
|
|
supportsImages: true,
|
|
|
- inputPrice: 2.5,
|
|
|
- outputPrice: 12.5,
|
|
|
+ inputPrice: 3.0,
|
|
|
+ outputPrice: 15.0,
|
|
|
},
|
|
|
"claude-3-haiku-20240307": {
|
|
|
maxTokens: 4096,
|
|
|
supportsImages: true,
|
|
|
- inputPrice: 2.5,
|
|
|
- outputPrice: 12.5,
|
|
|
+ inputPrice: 0.25,
|
|
|
+ outputPrice: 1.25,
|
|
|
},
|
|
|
-} as const satisfies Record<string, ModelInfo>
|
|
|
+} as const satisfies Record<string, ModelInfo> // as const assertion makes the object deeply readonly
|
|
|
|
|
|
-// OpenRouter
|
|
|
-export type OpenRouterModelId = keyof typeof openRouterModels
|
|
|
-export const openRouterDefaultModelId: OpenRouterModelId = "anthropic/claude-3.5-sonnet:beta"
|
|
|
-export const openRouterModels = {
|
|
|
- "anthropic/claude-3.5-sonnet:beta": {
|
|
|
+// AWS Bedrock
|
|
|
+// https://docs.aws.amazon.com/bedrock/latest/userguide/conversation-inference.html
|
|
|
+export type BedrockModelId = keyof typeof bedrockModels
|
|
|
+export const bedrockDefaultModelId: BedrockModelId = "anthropic.claude-3-5-sonnet-20240620-v1:0"
|
|
|
+export const bedrockModels = {
|
|
|
+ "anthropic.claude-3-5-sonnet-20240620-v1:0": {
|
|
|
maxTokens: 4096,
|
|
|
supportsImages: true,
|
|
|
inputPrice: 3.0,
|
|
|
outputPrice: 15.0,
|
|
|
},
|
|
|
+ "anthropic.claude-3-opus-20240229-v1:0": {
|
|
|
+ maxTokens: 4096,
|
|
|
+ supportsImages: true,
|
|
|
+ inputPrice: 15.0,
|
|
|
+ outputPrice: 75.0,
|
|
|
+ },
|
|
|
+ "anthropic.claude-3-sonnet-20240229-v1:0": {
|
|
|
+ maxTokens: 4096,
|
|
|
+ supportsImages: true,
|
|
|
+ inputPrice: 3.0,
|
|
|
+ outputPrice: 15.0,
|
|
|
+ },
|
|
|
+ "anthropic.claude-3-haiku-20240307-v1:0": {
|
|
|
+ maxTokens: 4096,
|
|
|
+ supportsImages: true,
|
|
|
+ inputPrice: 0.25,
|
|
|
+ outputPrice: 1.25,
|
|
|
+ },
|
|
|
} as const satisfies Record<string, ModelInfo>
|
|
|
|
|
|
-// AWS Bedrock
|
|
|
-export type BedrockModelId = keyof typeof bedrockModels
|
|
|
-export const bedrockDefaultModelId: BedrockModelId = "anthropic.claude-3-5-sonnet-20240620-v1:0"
|
|
|
-export const bedrockModels = {
|
|
|
- "anthropic.claude-3-5-sonnet-20240620-v1:0": {
|
|
|
- maxTokens: 4096,
|
|
|
+// OpenRouter
|
|
|
+// https://openrouter.ai/models?order=newest&supported_parameters=tools
|
|
|
+export type OpenRouterModelId = keyof typeof openRouterModels
|
|
|
+export const openRouterDefaultModelId: OpenRouterModelId = "anthropic/claude-3.5-sonnet"
|
|
|
+export const openRouterModels = {
|
|
|
+ "anthropic/claude-3.5-sonnet": {
|
|
|
+ maxTokens: 8192,
|
|
|
supportsImages: true,
|
|
|
inputPrice: 3.0,
|
|
|
outputPrice: 15.0,
|
|
|
},
|
|
|
-} as const satisfies Record<string, ModelInfo> // as const assertion makes the object deeply readonly (just declaring it as const makes it mutable)
|
|
|
+ "anthropic/claude-3-opus": {
|
|
|
+ maxTokens: 4096,
|
|
|
+ supportsImages: true,
|
|
|
+ inputPrice: 15,
|
|
|
+ outputPrice: 75,
|
|
|
+ },
|
|
|
+ "anthropic/claude-3-sonnet": {
|
|
|
+ maxTokens: 4096,
|
|
|
+ supportsImages: true,
|
|
|
+ inputPrice: 3,
|
|
|
+ outputPrice: 15,
|
|
|
+ },
|
|
|
+ "anthropic/claude-3-haiku": {
|
|
|
+ maxTokens: 4096,
|
|
|
+ supportsImages: true,
|
|
|
+ inputPrice: 0.25,
|
|
|
+ outputPrice: 1.25,
|
|
|
+ },
|
|
|
+ "openai/gpt-4o-2024-08-06": {
|
|
|
+ maxTokens: 16384,
|
|
|
+ supportsImages: true,
|
|
|
+ inputPrice: 2.5,
|
|
|
+ outputPrice: 10,
|
|
|
+ },
|
|
|
+ "openai/gpt-4o-mini-2024-07-18": {
|
|
|
+ maxTokens: 16384,
|
|
|
+ supportsImages: true,
|
|
|
+ inputPrice: 0.15,
|
|
|
+ outputPrice: 0.6,
|
|
|
+ },
|
|
|
+ "openai/gpt-4-turbo": {
|
|
|
+ maxTokens: 4096,
|
|
|
+ supportsImages: true,
|
|
|
+ inputPrice: 10,
|
|
|
+ outputPrice: 30,
|
|
|
+ },
|
|
|
+ "meta-llama/llama-3.1-405b-instruct": {
|
|
|
+ maxTokens: 2048,
|
|
|
+ supportsImages: false,
|
|
|
+ inputPrice: 2.7,
|
|
|
+ outputPrice: 2.7,
|
|
|
+ },
|
|
|
+ "meta-llama/llama-3.1-70b-instruct": {
|
|
|
+ maxTokens: 2048,
|
|
|
+ supportsImages: false,
|
|
|
+ inputPrice: 0.52,
|
|
|
+ outputPrice: 0.75,
|
|
|
+ },
|
|
|
+ "meta-llama/llama-3.1-8b-instruct": {
|
|
|
+ maxTokens: 2048,
|
|
|
+ supportsImages: false,
|
|
|
+ inputPrice: 0.06,
|
|
|
+ outputPrice: 0.06,
|
|
|
+ },
|
|
|
+ "google/gemini-pro-1.5": {
|
|
|
+ maxTokens: 8192,
|
|
|
+ supportsImages: true,
|
|
|
+ inputPrice: 2.5,
|
|
|
+ outputPrice: 7.5,
|
|
|
+ },
|
|
|
+ "google/gemini-flash-1.5": {
|
|
|
+ maxTokens: 8192,
|
|
|
+ supportsImages: true,
|
|
|
+ inputPrice: 0.25,
|
|
|
+ outputPrice: 0.75,
|
|
|
+ },
|
|
|
+ "deepseek/deepseek-coder": {
|
|
|
+ maxTokens: 4096,
|
|
|
+ supportsImages: false,
|
|
|
+ inputPrice: 0.14,
|
|
|
+ outputPrice: 0.28,
|
|
|
+ },
|
|
|
+ "mistralai/mistral-large": {
|
|
|
+ maxTokens: 8192,
|
|
|
+ supportsImages: false,
|
|
|
+ inputPrice: 3,
|
|
|
+ outputPrice: 9,
|
|
|
+ },
|
|
|
+ "mistralai/mistral-medium": {
|
|
|
+ maxTokens: 4096,
|
|
|
+ supportsImages: false,
|
|
|
+ inputPrice: 2.7,
|
|
|
+ outputPrice: 8.1,
|
|
|
+ },
|
|
|
+ "mistralai/mistral-small": {
|
|
|
+ maxTokens: 4096,
|
|
|
+ supportsImages: false,
|
|
|
+ inputPrice: 2,
|
|
|
+ outputPrice: 6,
|
|
|
+ },
|
|
|
+ "mistralai/mistral-7b-instruct-v0.1": {
|
|
|
+ maxTokens: 4096,
|
|
|
+ supportsImages: false,
|
|
|
+ inputPrice: 0.06,
|
|
|
+ outputPrice: 0.06,
|
|
|
+ },
|
|
|
+ "cohere/command-r-plus": {
|
|
|
+ maxTokens: 4000,
|
|
|
+ supportsImages: false,
|
|
|
+ inputPrice: 3,
|
|
|
+ outputPrice: 15,
|
|
|
+ },
|
|
|
+ "cohere/command-r": {
|
|
|
+ maxTokens: 4000,
|
|
|
+ supportsImages: false,
|
|
|
+ inputPrice: 0.5,
|
|
|
+ outputPrice: 1.5,
|
|
|
+ },
|
|
|
+} as const satisfies Record<string, ModelInfo>
|