mirror of
https://github.com/songquanpeng/one-api.git
synced 2025-09-17 09:16:36 +08:00
fix: improve error handling in pricing model calculations
This commit is contained in:
parent
adcf4712e6
commit
bbfaf1fb95
@ -21,7 +21,8 @@ const (
|
||||
// KiloRmb multiply by the RMB price per 1,000 tokens to get the quota cost per token
|
||||
KiloRmb float64 = KiloTokensUsd / USD2RMB
|
||||
// MilliRmb multiply by the RMB price per 1 million tokens to get the quota cost per token
|
||||
MilliRmb float64 = MilliTokensUsd / USD2RMB
|
||||
MilliRmb float64 = MilliTokensUsd / USD2RMB
|
||||
ImageUsdPerPic float64 = QuotaPerUsd / 1000
|
||||
)
|
||||
|
||||
var modelRatioLock sync.RWMutex
|
||||
@ -33,80 +34,83 @@ var modelRatioLock sync.RWMutex
|
||||
// 1 === $0.002 / 1K tokens
|
||||
// 1 === ¥0.014 / 1k tokens
|
||||
var ModelRatio = map[string]float64{
|
||||
// -------------------------------------
|
||||
// OpenAI
|
||||
// https://openai.com/pricing
|
||||
// -------------------------------------
|
||||
"gpt-4.5-preview": 75 * MilliTokensUsd,
|
||||
"gpt-4.5-preview-2025-02-27": 75 * MilliTokensUsd,
|
||||
"gpt-4": 15,
|
||||
"gpt-4-0314": 15,
|
||||
"gpt-4-0613": 15,
|
||||
"gpt-4-32k": 30,
|
||||
"gpt-4-32k-0314": 30,
|
||||
"gpt-4-32k-0613": 30,
|
||||
"gpt-4-1106-preview": 5, // $0.01 / 1K tokens
|
||||
"gpt-4-0125-preview": 5, // $0.01 / 1K tokens
|
||||
"gpt-4-turbo-preview": 5, // $0.01 / 1K tokens
|
||||
"gpt-4-turbo": 5, // $0.01 / 1K tokens
|
||||
"gpt-4-turbo-2024-04-09": 5, // $0.01 / 1K tokens
|
||||
"gpt-4o": 2.5, // $0.005 / 1K tokens
|
||||
"chatgpt-4o-latest": 2.5, // $0.005 / 1K tokens
|
||||
"gpt-4o-2024-05-13": 2.5, // $0.005 / 1K tokens
|
||||
"gpt-4o-2024-08-06": 1.25, // $0.0025 / 1K tokens
|
||||
"gpt-4o-2024-11-20": 1.25, // $0.0025 / 1K tokens
|
||||
"gpt-4o-search-preview": 2.5, // $0.005 / 1K tokens
|
||||
"gpt-4o-mini": 0.075, // $0.00015 / 1K tokens
|
||||
"gpt-4o-mini-2024-07-18": 0.075, // $0.00015 / 1K tokens
|
||||
"gpt-4o-mini-search-preview": 0.075, // $0.00015 / 1K tokens
|
||||
"gpt-4-vision-preview": 5, // $0.01 / 1K tokens
|
||||
"gpt-4": 30 * MilliTokensUsd,
|
||||
"gpt-4-0314": 30 * MilliTokensUsd,
|
||||
"gpt-4-0613": 30 * MilliTokensUsd,
|
||||
"gpt-4-32k": 60 * MilliTokensUsd,
|
||||
"gpt-4-32k-0314": 60 * MilliTokensUsd,
|
||||
"gpt-4-32k-0613": 60 * MilliTokensUsd,
|
||||
"gpt-4-1106-preview": 10 * MilliTokensUsd,
|
||||
"gpt-4-0125-preview": 10 * MilliTokensUsd,
|
||||
"gpt-4-turbo-preview": 10 * MilliTokensUsd,
|
||||
"gpt-4-turbo": 10 * MilliTokensUsd,
|
||||
"gpt-4-turbo-2024-04-09": 10 * MilliTokensUsd,
|
||||
"gpt-4o": 2.5 * MilliTokensUsd,
|
||||
"chatgpt-4o-latest": 5 * MilliTokensUsd,
|
||||
"gpt-4o-2024-05-13": 5 * MilliTokensUsd,
|
||||
"gpt-4o-2024-08-06": 2.5 * MilliTokensUsd,
|
||||
"gpt-4o-2024-11-20": 2.5 * MilliTokensUsd,
|
||||
"gpt-4o-search-preview": 5 * MilliTokensUsd,
|
||||
"gpt-4o-mini": 0.15 * MilliTokensUsd,
|
||||
"gpt-4o-mini-2024-07-18": 0.15 * MilliTokensUsd,
|
||||
"gpt-4o-mini-search-preview": 0.15 * MilliTokensUsd,
|
||||
"gpt-4-vision-preview": 10 * MilliTokensUsd,
|
||||
// Audio billing will mix text and audio tokens, the unit price is different.
|
||||
// Here records the cost of text, the cost multiplier of audio
|
||||
// relative to text is in AudioRatio
|
||||
"gpt-4o-audio-preview": 1.25, // $0.0025 / 1K tokens
|
||||
"gpt-4o-audio-preview-2024-12-17": 1.25, // $0.0025 / 1K tokens
|
||||
"gpt-4o-audio-preview-2024-10-01": 1.25, // $0.0025 / 1K tokens
|
||||
"gpt-4o-mini-audio-preview": 0.15 * MilliTokensUsd, // $0.15/1M tokens
|
||||
"gpt-4o-mini-audio-preview-2024-12-17": 0.15 * MilliTokensUsd, // $0.15/1M tokens
|
||||
"gpt-3.5-turbo": 0.25, // $0.0005 / 1K tokens
|
||||
"gpt-3.5-turbo-0301": 0.75,
|
||||
"gpt-3.5-turbo-0613": 0.75,
|
||||
"gpt-3.5-turbo-16k": 1.5, // $0.003 / 1K tokens
|
||||
"gpt-3.5-turbo-16k-0613": 1.5,
|
||||
"gpt-3.5-turbo-instruct": 0.75, // $0.0015 / 1K tokens
|
||||
"gpt-3.5-turbo-1106": 0.5, // $0.001 / 1K tokens
|
||||
"gpt-3.5-turbo-0125": 0.25, // $0.0005 / 1K tokens
|
||||
"o1": 15 * MilliTokensUsd, // $15.00 / 1M input tokens
|
||||
"gpt-4o-audio-preview": 2.5 * MilliTokensUsd,
|
||||
"gpt-4o-audio-preview-2024-12-17": 2.5 * MilliTokensUsd,
|
||||
"gpt-4o-audio-preview-2024-10-01": 2.5 * MilliTokensUsd,
|
||||
"gpt-4o-mini-audio-preview": 0.15 * MilliTokensUsd,
|
||||
"gpt-4o-mini-audio-preview-2024-12-17": 0.15 * MilliTokensUsd,
|
||||
"gpt-3.5-turbo": 0.5 * MilliTokensUsd,
|
||||
"gpt-3.5-turbo-0301": 1.5 * MilliTokensUsd,
|
||||
"gpt-3.5-turbo-0613": 1.5 * MilliTokensUsd,
|
||||
"gpt-3.5-turbo-16k": 3 * MilliTokensUsd,
|
||||
"gpt-3.5-turbo-16k-0613": 3 * MilliTokensUsd,
|
||||
"gpt-3.5-turbo-instruct": 1.5 * MilliTokensUsd,
|
||||
"gpt-3.5-turbo-1106": 1 * MilliTokensUsd,
|
||||
"gpt-3.5-turbo-0125": 0.5 * MilliTokensUsd,
|
||||
"o1": 15 * MilliTokensUsd,
|
||||
"o1-2024-12-17": 15 * MilliTokensUsd,
|
||||
"o1-preview": 15 * MilliTokensUsd, // $15.00 / 1M input tokens
|
||||
"o1-preview": 15 * MilliTokensUsd,
|
||||
"o1-preview-2024-09-12": 15 * MilliTokensUsd,
|
||||
"o1-mini": 1.1 * MilliTokensUsd, // $3.00 / 1M input tokens
|
||||
"o1-mini": 1.1 * MilliTokensUsd,
|
||||
"o1-mini-2024-09-12": 1.1 * MilliTokensUsd,
|
||||
"o3-mini": 1.1 * MilliTokensUsd,
|
||||
"o3-mini-2025-01-31": 1.1 * MilliTokensUsd,
|
||||
"davinci-002": 1, // $0.002 / 1K tokens
|
||||
"babbage-002": 0.2, // $0.0004 / 1K tokens
|
||||
"text-ada-001": 0.2,
|
||||
"text-babbage-001": 0.25,
|
||||
"text-curie-001": 1,
|
||||
"text-davinci-002": 10,
|
||||
"text-davinci-003": 10,
|
||||
"text-davinci-edit-001": 10,
|
||||
"code-davinci-edit-001": 10,
|
||||
"whisper-1": 15,
|
||||
"tts-1": 7.5, // $0.015 / 1K characters
|
||||
"tts-1-1106": 7.5,
|
||||
"tts-1-hd": 15, // $0.030 / 1K characters
|
||||
"tts-1-hd-1106": 15,
|
||||
"davinci": 10,
|
||||
"curie": 10,
|
||||
"babbage": 10,
|
||||
"ada": 10,
|
||||
"text-embedding-ada-002": 0.05,
|
||||
"text-embedding-3-small": 0.01,
|
||||
"text-embedding-3-large": 0.065,
|
||||
"text-search-ada-doc-001": 10,
|
||||
"text-moderation-stable": 0.1,
|
||||
"text-moderation-latest": 0.1,
|
||||
"dall-e-2": 20 * MilliTokensUsd, // $0.016 - $0.020 / image
|
||||
"dall-e-3": 40 * MilliTokensUsd, // $0.040 - $0.120 / image
|
||||
"davinci-002": 2 * MilliTokensUsd,
|
||||
"babbage-002": 0.4 * MilliTokensUsd,
|
||||
"text-ada-001": 0.4 * MilliTokensUsd,
|
||||
"text-babbage-001": 0.5 * MilliTokensUsd,
|
||||
"text-curie-001": 2 * MilliTokensUsd,
|
||||
"text-davinci-002": 20 * MilliTokensUsd,
|
||||
"text-davinci-003": 20 * MilliTokensUsd,
|
||||
"text-davinci-edit-001": 20 * MilliTokensUsd,
|
||||
"code-davinci-edit-001": 20 * MilliTokensUsd,
|
||||
"whisper-1": 30 * MilliTokensUsd,
|
||||
"tts-1": 15 * MilliTokensUsd,
|
||||
"tts-1-1106": 15 * MilliTokensUsd,
|
||||
"tts-1-hd": 30 * MilliTokensUsd,
|
||||
"tts-1-hd-1106": 30 * MilliTokensUsd,
|
||||
"davinci": 20 * MilliTokensUsd,
|
||||
"curie": 20 * MilliTokensUsd,
|
||||
"babbage": 20 * MilliTokensUsd,
|
||||
"ada": 20 * MilliTokensUsd,
|
||||
"text-embedding-ada-002": 0.1 * MilliTokensUsd,
|
||||
"text-embedding-3-small": 0.02 * MilliTokensUsd,
|
||||
"text-embedding-3-large": 0.13 * MilliTokensUsd,
|
||||
"text-search-ada-doc-001": 20 * MilliTokensUsd,
|
||||
"text-moderation-stable": 0.2 * MilliTokensUsd,
|
||||
"text-moderation-latest": 0.2 * MilliTokensUsd,
|
||||
"dall-e-2": 0.02 * ImageUsdPerPic,
|
||||
"dall-e-3": 0.04 * ImageUsdPerPic,
|
||||
// https://www.anthropic.com/api#pricing
|
||||
"claude-instant-1.2": 0.8 * MilliTokensUsd,
|
||||
"claude-2.0": 8.0 * MilliTokensUsd,
|
||||
@ -143,26 +147,27 @@ var ModelRatio = map[string]float64{
|
||||
// "gemma-2-2b-it": 0,
|
||||
// "gemma-2-9b-it": 0,
|
||||
// "gemma-2-27b-it": 0,
|
||||
"gemini-pro": 0.25 * MilliTokensUsd, // $0.00025 / 1k characters -> $0.001 / 1k tokens
|
||||
"gemini-1.0-pro": 0.125 * MilliTokensUsd,
|
||||
"gemini-1.0-pro-vision": 0.125 * MilliTokensUsd,
|
||||
"gemini-1.5-pro": 1.25 * MilliTokensUsd,
|
||||
"gemini-1.5-pro-001": 1.25 * MilliTokensUsd,
|
||||
"gemini-1.5-pro-002": 1.25 * MilliTokensUsd,
|
||||
"gemini-1.5-pro-experimental": 1.25 * MilliTokensUsd,
|
||||
"gemini-1.5-flash": 0.075 * MilliTokensUsd,
|
||||
"gemini-1.5-flash-001": 0.075 * MilliTokensUsd,
|
||||
"gemini-1.5-flash-002": 0.075 * MilliTokensUsd,
|
||||
"gemini-1.5-flash-8b": 0.0375 * MilliTokensUsd,
|
||||
"gemini-2.0-flash": 0.15 * MilliTokensUsd,
|
||||
"gemini-2.0-flash-exp": 0.075 * MilliTokensUsd,
|
||||
"gemini-2.0-flash-001": 0.15 * MilliTokensUsd,
|
||||
"gemini-2.0-flash-lite": 0.075 * MilliTokensUsd,
|
||||
"gemini-2.0-flash-lite-001": 0.075 * MilliTokensUsd,
|
||||
"gemini-2.0-flash-lite-preview-02-05": 0.075 * MilliTokensUsd,
|
||||
"gemini-2.0-flash-thinking-exp-01-21": 0.075 * MilliTokensUsd,
|
||||
"gemini-2.0-pro-exp-02-05": 1.25 * MilliTokensUsd,
|
||||
"aqa": 1,
|
||||
"gemini-pro": 0.25 * MilliTokensUsd, // $0.00025 / 1k characters -> $0.001 / 1k tokens
|
||||
"gemini-1.0-pro": 0.125 * MilliTokensUsd,
|
||||
"gemini-1.0-pro-vision": 0.125 * MilliTokensUsd,
|
||||
"gemini-1.5-pro": 1.25 * MilliTokensUsd,
|
||||
"gemini-1.5-pro-001": 1.25 * MilliTokensUsd,
|
||||
"gemini-1.5-pro-002": 1.25 * MilliTokensUsd,
|
||||
"gemini-1.5-pro-experimental": 1.25 * MilliTokensUsd,
|
||||
"gemini-1.5-flash": 0.075 * MilliTokensUsd,
|
||||
"gemini-1.5-flash-001": 0.075 * MilliTokensUsd,
|
||||
"gemini-1.5-flash-002": 0.075 * MilliTokensUsd,
|
||||
"gemini-1.5-flash-8b": 0.0375 * MilliTokensUsd,
|
||||
"gemini-2.0-flash": 0.15 * MilliTokensUsd,
|
||||
"gemini-2.0-flash-exp": 0.075 * MilliTokensUsd,
|
||||
"gemini-2.0-flash-001": 0.15 * MilliTokensUsd,
|
||||
"gemini-2.0-flash-lite": 0.075 * MilliTokensUsd,
|
||||
"gemini-2.0-flash-lite-001": 0.075 * MilliTokensUsd,
|
||||
"gemini-2.0-flash-lite-preview-02-05": 0.075 * MilliTokensUsd,
|
||||
"gemini-2.0-flash-thinking-exp-01-21": 0.075 * MilliTokensUsd,
|
||||
"gemini-2.0-pro-exp-02-05": 1.25 * MilliTokensUsd,
|
||||
"gemini-2.0-flash-exp-image-generation": 0.075 * MilliTokensUsd,
|
||||
"aqa": 1,
|
||||
// https://open.bigmodel.cn/pricing
|
||||
"glm-zero-preview": 0.01 * KiloRmb,
|
||||
"glm-4-plus": 0.05 * KiloRmb,
|
||||
@ -264,9 +269,9 @@ var ModelRatio = map[string]float64{
|
||||
"text-embedding-v2": 0.0007 * KiloRmb,
|
||||
"text-embedding-async-v2": 0.0007 * KiloRmb,
|
||||
"text-embedding-async-v1": 0.0007 * KiloRmb,
|
||||
"ali-stable-diffusion-xl": 8.00,
|
||||
"ali-stable-diffusion-v1.5": 8.00,
|
||||
"wanx-v1": 8.00,
|
||||
"ali-stable-diffusion-xl": 0.016 * ImageUsdPerPic,
|
||||
"ali-stable-diffusion-v1.5": 0.016 * ImageUsdPerPic,
|
||||
"wanx-v1": 0.016 * ImageUsdPerPic,
|
||||
"deepseek-r1": 0.002 * KiloRmb,
|
||||
"deepseek-v3": 0.001 * KiloRmb,
|
||||
"deepseek-r1-distill-qwen-1.5b": 0.001 * KiloRmb,
|
||||
@ -338,6 +343,11 @@ var ModelRatio = map[string]float64{
|
||||
"llama3-8b-8192": 0.05 * MilliTokensUsd,
|
||||
"llama3-groq-70b-8192-tool-use-preview": 0.59 * MilliTokensUsd,
|
||||
"llama3-groq-8b-8192-tool-use-preview": 0.05 * MilliTokensUsd,
|
||||
"llama-3.3-70b-specdec": 0.59 * MilliTokensUsd,
|
||||
"mistral-saba-24b": 0.79 * MilliTokensUsd,
|
||||
"qwen-qwq-32b": 0.29 * MilliTokensUsd,
|
||||
"qwen-2.5-coder-32b": 0.79 * MilliTokensUsd,
|
||||
"qwen-2.5-32b": 0.79 * MilliTokensUsd,
|
||||
"mixtral-8x7b-32768": 0.24 * MilliTokensUsd,
|
||||
"whisper-large-v3": 0.111 * MilliTokensUsd,
|
||||
"whisper-large-v3-turbo": 0.04 * MilliTokensUsd,
|
||||
@ -379,90 +389,103 @@ var ModelRatio = map[string]float64{
|
||||
"grok-beta": 5.0 * MilliTokensUsd,
|
||||
// vertex imagen3
|
||||
// https://cloud.google.com/vertex-ai/generative-ai/pricing#imagen-models
|
||||
"imagen-3.0-generate-001": 0.02 * KiloTokensUsd,
|
||||
"imagen-3.0-generate-001": 0.04 * ImageUsdPerPic,
|
||||
"imagen-3.0-generate-002": 0.04 * ImageUsdPerPic,
|
||||
"imagen-3.0-fast-generate-001": 0.02 * ImageUsdPerPic,
|
||||
"imagen-3.0-capability-001": 0.04 * ImageUsdPerPic,
|
||||
// -------------------------------------
|
||||
// replicate charges based on the number of generated images
|
||||
// https://replicate.com/pricing
|
||||
"black-forest-labs/flux-1.1-pro": 0.04 * KiloTokensUsd,
|
||||
"black-forest-labs/flux-1.1-pro-ultra": 0.06 * KiloTokensUsd,
|
||||
"black-forest-labs/flux-canny-dev": 0.025 * KiloTokensUsd,
|
||||
"black-forest-labs/flux-canny-pro": 0.05 * KiloTokensUsd,
|
||||
"black-forest-labs/flux-depth-dev": 0.025 * KiloTokensUsd,
|
||||
"black-forest-labs/flux-depth-pro": 0.05 * KiloTokensUsd,
|
||||
"black-forest-labs/flux-dev": 0.025 * KiloTokensUsd,
|
||||
"black-forest-labs/flux-dev-lora": 0.032 * KiloTokensUsd,
|
||||
"black-forest-labs/flux-fill-dev": 0.04 * KiloTokensUsd,
|
||||
"black-forest-labs/flux-fill-pro": 0.05 * KiloTokensUsd,
|
||||
"black-forest-labs/flux-pro": 0.055 * KiloTokensUsd,
|
||||
"black-forest-labs/flux-redux-dev": 0.025 * KiloTokensUsd,
|
||||
"black-forest-labs/flux-redux-schnell": 0.003 * KiloTokensUsd,
|
||||
"black-forest-labs/flux-schnell": 0.003 * KiloTokensUsd,
|
||||
"black-forest-labs/flux-schnell-lora": 0.02 * KiloTokensUsd,
|
||||
"ideogram-ai/ideogram-v2": 0.08 * KiloTokensUsd,
|
||||
"ideogram-ai/ideogram-v2-turbo": 0.05 * KiloTokensUsd,
|
||||
"recraft-ai/recraft-v3": 0.04 * KiloTokensUsd,
|
||||
"recraft-ai/recraft-v3-svg": 0.08 * KiloTokensUsd,
|
||||
"stability-ai/stable-diffusion-3": 0.035 * KiloTokensUsd,
|
||||
"stability-ai/stable-diffusion-3.5-large": 0.065 * KiloTokensUsd,
|
||||
"stability-ai/stable-diffusion-3.5-large-turbo": 0.04 * KiloTokensUsd,
|
||||
"stability-ai/stable-diffusion-3.5-medium": 0.035 * KiloTokensUsd,
|
||||
// -------------------------------------
|
||||
"black-forest-labs/flux-1.1-pro": 0.04 * ImageUsdPerPic,
|
||||
"black-forest-labs/flux-1.1-pro-ultra": 0.06 * ImageUsdPerPic,
|
||||
"black-forest-labs/flux-canny-dev": 0.025 * ImageUsdPerPic,
|
||||
"black-forest-labs/flux-canny-pro": 0.05 * ImageUsdPerPic,
|
||||
"black-forest-labs/flux-depth-dev": 0.025 * ImageUsdPerPic,
|
||||
"black-forest-labs/flux-depth-pro": 0.05 * ImageUsdPerPic,
|
||||
"black-forest-labs/flux-dev": 0.025 * ImageUsdPerPic,
|
||||
"black-forest-labs/flux-dev-lora": 0.032 * ImageUsdPerPic,
|
||||
"black-forest-labs/flux-fill-dev": 0.04 * ImageUsdPerPic,
|
||||
"black-forest-labs/flux-fill-pro": 0.05 * ImageUsdPerPic,
|
||||
"black-forest-labs/flux-pro": 0.055 * ImageUsdPerPic,
|
||||
"black-forest-labs/flux-redux-dev": 0.025 * ImageUsdPerPic,
|
||||
"black-forest-labs/flux-redux-schnell": 0.003 * ImageUsdPerPic,
|
||||
"black-forest-labs/flux-schnell": 0.003 * ImageUsdPerPic,
|
||||
"black-forest-labs/flux-schnell-lora": 0.02 * ImageUsdPerPic,
|
||||
"ideogram-ai/ideogram-v2": 0.08 * ImageUsdPerPic,
|
||||
"ideogram-ai/ideogram-v2-turbo": 0.05 * ImageUsdPerPic,
|
||||
"recraft-ai/recraft-v3": 0.04 * ImageUsdPerPic,
|
||||
"recraft-ai/recraft-v3-svg": 0.08 * ImageUsdPerPic,
|
||||
"stability-ai/stable-diffusion-3": 0.035 * ImageUsdPerPic,
|
||||
"stability-ai/stable-diffusion-3.5-large": 0.065 * ImageUsdPerPic,
|
||||
"stability-ai/stable-diffusion-3.5-large-turbo": 0.04 * ImageUsdPerPic,
|
||||
"stability-ai/stable-diffusion-3.5-medium": 0.035 * ImageUsdPerPic,
|
||||
// replicate chat models
|
||||
"ibm-granite/granite-20b-code-instruct-8k": 0.100 * KiloTokensUsd,
|
||||
"ibm-granite/granite-3.0-2b-instruct": 0.030 * KiloTokensUsd,
|
||||
"ibm-granite/granite-3.0-8b-instruct": 0.050 * KiloTokensUsd,
|
||||
"ibm-granite/granite-8b-code-instruct-128k": 0.050 * KiloTokensUsd,
|
||||
"meta/llama-2-13b": 0.100 * KiloTokensUsd,
|
||||
"meta/llama-2-13b-chat": 0.100 * KiloTokensUsd,
|
||||
"meta/llama-2-70b": 0.650 * KiloTokensUsd,
|
||||
"meta/llama-2-70b-chat": 0.650 * KiloTokensUsd,
|
||||
"meta/llama-2-7b": 0.050 * KiloTokensUsd,
|
||||
"meta/llama-2-7b-chat": 0.050 * KiloTokensUsd,
|
||||
"meta/meta-llama-3.1-405b-instruct": 9.500 * KiloTokensUsd,
|
||||
"meta/meta-llama-3-70b": 0.650 * KiloTokensUsd,
|
||||
"meta/meta-llama-3-70b-instruct": 0.650 * KiloTokensUsd,
|
||||
"meta/meta-llama-3-8b": 0.050 * KiloTokensUsd,
|
||||
"meta/meta-llama-3-8b-instruct": 0.050 * KiloTokensUsd,
|
||||
"mistralai/mistral-7b-instruct-v0.2": 0.050 * KiloTokensUsd,
|
||||
"mistralai/mistral-7b-v0.1": 0.050 * KiloTokensUsd,
|
||||
"mistralai/mixtral-8x7b-instruct-v0.1": 0.300 * KiloTokensUsd,
|
||||
"anthropic/claude-3.5-haiku": 1.0 * MilliTokensUsd,
|
||||
"anthropic/claude-3.5-sonnet": 3.75 * MilliTokensUsd,
|
||||
"anthropic/claude-3.7-sonnet": 3.0 * MilliTokensUsd,
|
||||
"deepseek-ai/deepseek-r1": 10.0 * MilliTokensUsd,
|
||||
"ibm-granite/granite-20b-code-instruct-8k": 0.100 * MilliTokensUsd,
|
||||
"ibm-granite/granite-3.0-2b-instruct": 0.030 * MilliTokensUsd,
|
||||
"ibm-granite/granite-3.0-8b-instruct": 0.050 * MilliTokensUsd,
|
||||
"ibm-granite/granite-3.1-2b-instruct": 0.030 * MilliTokensUsd,
|
||||
"ibm-granite/granite-3.1-8b-instruct": 0.030 * MilliTokensUsd,
|
||||
"ibm-granite/granite-3.2-8b-instruct": 0.030 * MilliTokensUsd,
|
||||
"ibm-granite/granite-8b-code-instruct-128k": 0.050 * MilliTokensUsd,
|
||||
"meta/llama-2-13b": 0.100 * MilliTokensUsd,
|
||||
"meta/llama-2-13b-chat": 0.100 * MilliTokensUsd,
|
||||
"meta/llama-2-70b": 0.650 * MilliTokensUsd,
|
||||
"meta/llama-2-70b-chat": 0.650 * MilliTokensUsd,
|
||||
"meta/llama-2-7b": 0.050 * MilliTokensUsd,
|
||||
"meta/llama-2-7b-chat": 0.050 * MilliTokensUsd,
|
||||
"meta/meta-llama-3.1-405b-instruct": 9.500 * MilliTokensUsd,
|
||||
"meta/meta-llama-3-70b": 0.650 * MilliTokensUsd,
|
||||
"meta/meta-llama-3-70b-instruct": 0.650 * MilliTokensUsd,
|
||||
"meta/meta-llama-3-8b": 0.050 * MilliTokensUsd,
|
||||
"meta/meta-llama-3-8b-instruct": 0.050 * MilliTokensUsd,
|
||||
"mistralai/mistral-7b-instruct-v0.2": 0.050 * MilliTokensUsd,
|
||||
"mistralai/mistral-7b-v0.1": 0.050 * MilliTokensUsd,
|
||||
// -------------------------------------
|
||||
//https://openrouter.ai/models
|
||||
"01-ai/yi-large": 1.5,
|
||||
"aetherwiing/mn-starcannon-12b": 0.6,
|
||||
"ai21/jamba-1-5-large": 4.0,
|
||||
"ai21/jamba-1-5-mini": 0.2,
|
||||
"ai21/jamba-instruct": 0.35,
|
||||
"aion-labs/aion-1.0": 6.0,
|
||||
"aion-labs/aion-1.0-mini": 1.2,
|
||||
"aion-labs/aion-rp-llama-3.1-8b": 0.1,
|
||||
"allenai/llama-3.1-tulu-3-405b": 5.0,
|
||||
"alpindale/goliath-120b": 4.6875,
|
||||
"alpindale/magnum-72b": 1.125,
|
||||
"amazon/nova-lite-v1": 0.12,
|
||||
"amazon/nova-micro-v1": 0.07,
|
||||
"amazon/nova-pro-v1": 1.6,
|
||||
"anthracite-org/magnum-v2-72b": 1.5,
|
||||
"anthracite-org/magnum-v4-72b": 1.125,
|
||||
"anthropic/claude-2": 12.0,
|
||||
"anthropic/claude-2.0": 12.0,
|
||||
"anthropic/claude-2.0:beta": 12.0,
|
||||
"anthropic/claude-2.1": 12.0,
|
||||
"anthropic/claude-2.1:beta": 12.0,
|
||||
"anthropic/claude-2:beta": 12.0,
|
||||
"anthropic/claude-3-haiku": 0.625,
|
||||
"anthropic/claude-3-haiku:beta": 0.625,
|
||||
"anthropic/claude-3-opus": 37.5,
|
||||
"anthropic/claude-3-opus:beta": 37.5,
|
||||
"anthropic/claude-3-sonnet": 7.5,
|
||||
"anthropic/claude-3-sonnet:beta": 7.5,
|
||||
"anthropic/claude-3.5-haiku": 2.0,
|
||||
"anthropic/claude-3.5-haiku-20241022": 2.0,
|
||||
"anthropic/claude-3.5-haiku-20241022:beta": 2.0,
|
||||
"anthropic/claude-3.5-haiku:beta": 2.0,
|
||||
"anthropic/claude-3.5-sonnet": 7.5,
|
||||
"anthropic/claude-3.5-sonnet-20240620": 7.5,
|
||||
"anthropic/claude-3.5-sonnet-20240620:beta": 7.5,
|
||||
"anthropic/claude-3.5-sonnet:beta": 7.5,
|
||||
"cognitivecomputations/dolphin-mixtral-8x22b": 0.45,
|
||||
"cognitivecomputations/dolphin-mixtral-8x7b": 0.25,
|
||||
// -------------------------------------
|
||||
"01-ai/yi-large": 1.5,
|
||||
"aetherwiing/mn-starcannon-12b": 0.6,
|
||||
"ai21/jamba-1-5-large": 4.0,
|
||||
"ai21/jamba-1-5-mini": 0.2,
|
||||
"ai21/jamba-instruct": 0.35,
|
||||
"aion-labs/aion-1.0": 6.0,
|
||||
"aion-labs/aion-1.0-mini": 1.2,
|
||||
"aion-labs/aion-rp-llama-3.1-8b": 0.1,
|
||||
"allenai/llama-3.1-tulu-3-405b": 5.0,
|
||||
"alpindale/goliath-120b": 4.6875,
|
||||
"alpindale/magnum-72b": 1.125,
|
||||
"amazon/nova-lite-v1": 0.12,
|
||||
"amazon/nova-micro-v1": 0.07,
|
||||
"amazon/nova-pro-v1": 1.6,
|
||||
"anthracite-org/magnum-v2-72b": 1.5,
|
||||
"anthracite-org/magnum-v4-72b": 1.125,
|
||||
"anthropic/claude-2": 12.0,
|
||||
"anthropic/claude-2.0": 12.0,
|
||||
"anthropic/claude-2.0:beta": 12.0,
|
||||
"anthropic/claude-2.1": 12.0,
|
||||
"anthropic/claude-2.1:beta": 12.0,
|
||||
"anthropic/claude-2:beta": 12.0,
|
||||
"anthropic/claude-3-haiku": 0.625,
|
||||
"anthropic/claude-3-haiku:beta": 0.625,
|
||||
"anthropic/claude-3-opus": 37.5,
|
||||
"anthropic/claude-3-opus:beta": 37.5,
|
||||
"anthropic/claude-3-sonnet": 7.5,
|
||||
"anthropic/claude-3-sonnet:beta": 7.5,
|
||||
// "anthropic/claude-3.5-haiku": 2.0,
|
||||
"anthropic/claude-3.5-haiku-20241022": 2.0,
|
||||
"anthropic/claude-3.5-haiku-20241022:beta": 2.0,
|
||||
"anthropic/claude-3.5-haiku:beta": 2.0,
|
||||
// "anthropic/claude-3.5-sonnet": 7.5,
|
||||
"anthropic/claude-3.5-sonnet-20240620": 7.5,
|
||||
"anthropic/claude-3.5-sonnet-20240620:beta": 7.5,
|
||||
"anthropic/claude-3.5-sonnet:beta": 7.5,
|
||||
"cognitivecomputations/dolphin-mixtral-8x22b": 0.45,
|
||||
"cognitivecomputations/dolphin-mixtral-8x7b": 0.25,
|
||||
"cohere/command": 0.95,
|
||||
"cohere/command-r": 0.7125,
|
||||
"cohere/command-r-03-2024": 0.7125,
|
||||
@ -472,10 +495,10 @@ var ModelRatio = map[string]float64{
|
||||
"cohere/command-r-plus-08-2024": 4.75,
|
||||
"cohere/command-r7b-12-2024": 0.075,
|
||||
"databricks/dbrx-instruct": 0.6,
|
||||
"deepseek/deepseek-chat": 1.25 * MilliTokensUsd,
|
||||
"deepseek/deepseek-chat": 1.25,
|
||||
"deepseek/deepseek-chat-v2.5": 1.0,
|
||||
"deepseek/deepseek-chat:free": 0.0,
|
||||
"deepseek/deepseek-r1": 7 * MilliTokensUsd,
|
||||
"deepseek/deepseek-r1": 7,
|
||||
"deepseek/deepseek-r1-distill-llama-70b": 0.345,
|
||||
"deepseek/deepseek-r1-distill-llama-70b:free": 0.0,
|
||||
"deepseek/deepseek-r1-distill-llama-8b": 0.02,
|
||||
@ -603,7 +626,7 @@ var ModelRatio = map[string]float64{
|
||||
"openai/gpt-4o-mini": 0.3,
|
||||
"openai/gpt-4o-mini-2024-07-18": 0.3,
|
||||
"openai/gpt-4o:extended": 9.0,
|
||||
"openai/gpt-4.5-preview": 75 * MilliTokensUsd,
|
||||
"openai/gpt-4.5-preview": 75,
|
||||
"openai/o1": 30.0,
|
||||
"openai/o1-mini": 2.2,
|
||||
"openai/o1-mini-2024-09-12": 2.2,
|
||||
@ -613,66 +636,74 @@ var ModelRatio = map[string]float64{
|
||||
"openai/o3-mini-high": 2.2,
|
||||
"openchat/openchat-7b": 0.0275,
|
||||
"openchat/openchat-7b:free": 0.0,
|
||||
"openrouter/auto": -500000.0,
|
||||
"perplexity/llama-3.1-sonar-huge-128k-online": 2.5,
|
||||
"perplexity/llama-3.1-sonar-large-128k-chat": 0.5,
|
||||
"perplexity/llama-3.1-sonar-large-128k-online": 0.5,
|
||||
"perplexity/llama-3.1-sonar-small-128k-chat": 0.1,
|
||||
"perplexity/llama-3.1-sonar-small-128k-online": 0.1,
|
||||
"perplexity/sonar": 0.5,
|
||||
"perplexity/sonar-reasoning": 2.5,
|
||||
"pygmalionai/mythalion-13b": 0.6,
|
||||
"qwen/qvq-72b-preview": 0.25,
|
||||
"qwen/qwen-2-72b-instruct": 0.45,
|
||||
"qwen/qwen-2-7b-instruct": 0.027,
|
||||
"qwen/qwen-2-7b-instruct:free": 0.0,
|
||||
"qwen/qwen-2-vl-72b-instruct": 0.2,
|
||||
"qwen/qwen-2-vl-7b-instruct": 0.05,
|
||||
"qwen/qwen-2.5-72b-instruct": 0.2,
|
||||
"qwen/qwen-2.5-7b-instruct": 0.025,
|
||||
"qwen/qwen-2.5-coder-32b-instruct": 0.08,
|
||||
"qwen/qwen-max": 3.2,
|
||||
"qwen/qwen-plus": 0.6,
|
||||
"qwen/qwen-turbo": 0.1,
|
||||
"qwen/qwen-vl-plus:free": 0.0,
|
||||
"qwen/qwen2.5-vl-72b-instruct:free": 0.0,
|
||||
"qwen/qwq-32b-preview": 0.09,
|
||||
"raifle/sorcererlm-8x22b": 2.25,
|
||||
"sao10k/fimbulvetr-11b-v2": 0.6,
|
||||
"sao10k/l3-euryale-70b": 0.4,
|
||||
"sao10k/l3-lunaris-8b": 0.03,
|
||||
"sao10k/l3.1-70b-hanami-x1": 1.5,
|
||||
"sao10k/l3.1-euryale-70b": 0.4,
|
||||
"sao10k/l3.3-euryale-70b": 0.4,
|
||||
"sophosympatheia/midnight-rose-70b": 0.4,
|
||||
"sophosympatheia/rogue-rose-103b-v0.2:free": 0.0,
|
||||
"teknium/openhermes-2.5-mistral-7b": 0.085,
|
||||
"thedrummer/rocinante-12b": 0.25,
|
||||
"thedrummer/unslopnemo-12b": 0.25,
|
||||
"undi95/remm-slerp-l2-13b": 0.6,
|
||||
"undi95/toppy-m-7b": 0.035,
|
||||
"undi95/toppy-m-7b:free": 0.0,
|
||||
"x-ai/grok-2-1212": 5.0,
|
||||
"x-ai/grok-2-vision-1212": 5.0,
|
||||
"x-ai/grok-beta": 7.5,
|
||||
"x-ai/grok-vision-beta": 7.5,
|
||||
"xwin-lm/xwin-lm-70b": 1.875,
|
||||
// "openrouter/auto": -500000.0,
|
||||
"perplexity/llama-3.1-sonar-huge-128k-online": 2.5,
|
||||
"perplexity/llama-3.1-sonar-large-128k-chat": 0.5,
|
||||
"perplexity/llama-3.1-sonar-large-128k-online": 0.5,
|
||||
"perplexity/llama-3.1-sonar-small-128k-chat": 0.1,
|
||||
"perplexity/llama-3.1-sonar-small-128k-online": 0.1,
|
||||
"perplexity/sonar": 0.5,
|
||||
"perplexity/sonar-reasoning": 2.5,
|
||||
"pygmalionai/mythalion-13b": 0.6,
|
||||
"qwen/qvq-72b-preview": 0.25,
|
||||
"qwen/qwen-2-72b-instruct": 0.45,
|
||||
"qwen/qwen-2-7b-instruct": 0.027,
|
||||
"qwen/qwen-2-7b-instruct:free": 0.0,
|
||||
"qwen/qwen-2-vl-72b-instruct": 0.2,
|
||||
"qwen/qwen-2-vl-7b-instruct": 0.05,
|
||||
"qwen/qwen-2.5-72b-instruct": 0.2,
|
||||
"qwen/qwen-2.5-7b-instruct": 0.025,
|
||||
"qwen/qwen-2.5-coder-32b-instruct": 0.08,
|
||||
"qwen/qwen-max": 3.2,
|
||||
"qwen/qwen-plus": 0.6,
|
||||
"qwen/qwen-turbo": 0.1,
|
||||
"qwen/qwen-vl-plus:free": 0.0,
|
||||
"qwen/qwen2.5-vl-72b-instruct:free": 0.0,
|
||||
"qwen/qwq-32b-preview": 0.09,
|
||||
"raifle/sorcererlm-8x22b": 2.25,
|
||||
"sao10k/fimbulvetr-11b-v2": 0.6,
|
||||
"sao10k/l3-euryale-70b": 0.4,
|
||||
"sao10k/l3-lunaris-8b": 0.03,
|
||||
"sao10k/l3.1-70b-hanami-x1": 1.5,
|
||||
"sao10k/l3.1-euryale-70b": 0.4,
|
||||
"sao10k/l3.3-euryale-70b": 0.4,
|
||||
"sophosympatheia/midnight-rose-70b": 0.4,
|
||||
"sophosympatheia/rogue-rose-103b-v0.2:free": 0.0,
|
||||
"teknium/openhermes-2.5-mistral-7b": 0.085,
|
||||
"thedrummer/rocinante-12b": 0.25,
|
||||
"thedrummer/unslopnemo-12b": 0.25,
|
||||
"undi95/remm-slerp-l2-13b": 0.6,
|
||||
"undi95/toppy-m-7b": 0.035,
|
||||
"undi95/toppy-m-7b:free": 0.0,
|
||||
"x-ai/grok-2-1212": 5.0,
|
||||
"x-ai/grok-2-vision-1212": 5.0,
|
||||
"x-ai/grok-beta": 7.5,
|
||||
"x-ai/grok-vision-beta": 7.5,
|
||||
"xwin-lm/xwin-lm-70b": 1.875,
|
||||
}
|
||||
|
||||
// CompletionRatio is the price ratio between completion tokens and prompt tokens
|
||||
var CompletionRatio = map[string]float64{
|
||||
// -------------------------------------
|
||||
// aws llama3
|
||||
// -------------------------------------
|
||||
"llama3-8b-8192(33)": 0.0006 / 0.0003,
|
||||
"llama3-70b-8192(33)": 0.0035 / 0.00265,
|
||||
// -------------------------------------
|
||||
// whisper
|
||||
// -------------------------------------
|
||||
"whisper-1": 0, // only count input tokens
|
||||
"whisper-large-v3": 0, // only count input tokens
|
||||
"whisper-large-v3-turbo": 0, // only count input tokens
|
||||
"distil-whisper-large-v3-en": 0, // only count input tokens
|
||||
// -------------------------------------
|
||||
// deepseek
|
||||
// -------------------------------------
|
||||
"deepseek-chat": 1.1 / 0.27,
|
||||
"deepseek-reasoner": 2.19 / 0.55,
|
||||
// -------------------------------------
|
||||
// openrouter
|
||||
// -------------------------------------
|
||||
"deepseek/deepseek-chat": 1,
|
||||
"deepseek/deepseek-r1": 1,
|
||||
// -------------------------------------
|
||||
@ -693,9 +724,41 @@ var CompletionRatio = map[string]float64{
|
||||
"llama3-groq-70b-8192-tool-use-preview": 0.79 / 0.59,
|
||||
"llama3-groq-8b-8192-tool-use-preview": 0.08 / 0.05,
|
||||
"mixtral-8x7b-32768": 1.0,
|
||||
"deepseek-r1-distill-qwen-32b": 1,
|
||||
"deepseek-r1-distill-qwen-32b": 1.0,
|
||||
"deepseek-r1-distill-llama-70b-specdec": 0.99 / 0.75,
|
||||
"deepseek-r1-distill-llama-70b": 0.99 / 0.75,
|
||||
"llama-3.3-70b-specdec": 0.99 / 0.59,
|
||||
"mistral-saba-24b": 1.0,
|
||||
"qwen-qwq-32b": 0.39 / 0.29,
|
||||
"qwen-2.5-coder-32b": 1.0,
|
||||
"qwen-2.5-32b": 1.0,
|
||||
// -------------------------------------
|
||||
// Replicate
|
||||
// -------------------------------------
|
||||
"anthropic/claude-3.5-haiku": 5.0 / 1.0,
|
||||
"anthropic/claude-3.5-sonnet": 18.75 / 3.75,
|
||||
"anthropic/claude-3.7-sonnet": 15.0 / 3.0,
|
||||
"deepseek-ai/deepseek-r1": 10.0 / 10.0,
|
||||
"ibm-granite/granite-20b-code-instruct-8k": 0.5 / 0.1,
|
||||
"ibm-granite/granite-3.0-2b-instruct": 0.25 / 0.03,
|
||||
"ibm-granite/granite-3.0-8b-instruct": 0.25 / 0.05,
|
||||
"ibm-granite/granite-3.1-2b-instruct": 0.25 / 0.03,
|
||||
"ibm-granite/granite-3.1-8b-instruct": 0.25 / 0.03,
|
||||
"ibm-granite/granite-3.2-8b-instruct": 0.25 / 0.03,
|
||||
"ibm-granite/granite-8b-code-instruct-128k": 0.25 / 0.05,
|
||||
"meta/llama-2-13b": 0.5 / 0.1,
|
||||
"meta/llama-2-13b-chat": 0.5 / 0.1,
|
||||
"meta/llama-2-70b": 2.75 / 0.65,
|
||||
"meta/llama-2-70b-chat": 2.75 / 0.65,
|
||||
"meta/llama-2-7b": 0.25 / 0.05,
|
||||
"meta/llama-2-7b-chat": 0.25 / 0.05,
|
||||
"meta/meta-llama-3.1-405b-instruct": 9.5 / 9.5,
|
||||
"meta/meta-llama-3-70b": 2.75 / 0.65,
|
||||
"meta/meta-llama-3-70b-instruct": 2.75 / 0.65,
|
||||
"meta/meta-llama-3-8b": 0.25 / 0.05,
|
||||
"meta/meta-llama-3-8b-instruct": 0.25 / 0.05,
|
||||
"mistralai/mistral-7b-instruct-v0.2": 0.25 / 0.05,
|
||||
"mistralai/mistral-7b-v0.1": 0.25 / 0.05,
|
||||
}
|
||||
|
||||
// AudioRatio represents the price ratio between audio tokens and text tokens
|
||||
@ -812,11 +875,18 @@ func ModelRatio2JSONString() string {
|
||||
return string(jsonBytes)
|
||||
}
|
||||
|
||||
// UpdateModelRatioByJSONString updates the ModelRatio map with the given JSON string.
|
||||
func UpdateModelRatioByJSONString(jsonStr string) error {
|
||||
modelRatioLock.Lock()
|
||||
defer modelRatioLock.Unlock()
|
||||
ModelRatio = make(map[string]float64)
|
||||
return json.Unmarshal([]byte(jsonStr), &ModelRatio)
|
||||
err := json.Unmarshal([]byte(jsonStr), &ModelRatio)
|
||||
if err != nil {
|
||||
logger.SysError("error unmarshalling model ratio: " + err.Error())
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func GetModelRatio(name string, channelType int) float64 {
|
||||
@ -844,7 +914,7 @@ func GetModelRatio(name string, channelType int) float64 {
|
||||
}
|
||||
|
||||
logger.SysError("model ratio not found: " + name)
|
||||
return 30
|
||||
return 0.1 * QuotaPerUsd
|
||||
}
|
||||
|
||||
// CompletionRatio2JSONString returns the CompletionRatio map as a JSON string.
|
||||
|
Loading…
Reference in New Issue
Block a user