mirror of
https://github.com/songquanpeng/one-api.git
synced 2025-09-18 01:26:37 +08:00
fix: improve error handling in pricing model calculations
This commit is contained in:
parent
adcf4712e6
commit
bbfaf1fb95
@ -22,6 +22,7 @@ const (
|
||||
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
|
||||
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,
|
||||
@ -162,6 +166,7 @@ var ModelRatio = map[string]float64{
|
||||
"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,
|
||||
@ -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,52 +389,65 @@ 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,
|
||||
@ -453,11 +476,11 @@ var ModelRatio = map[string]float64{
|
||||
"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": 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": 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,
|
||||
@ -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,7 +636,7 @@ 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,
|
||||
// "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,
|
||||
@ -661,18 +684,26 @@ var ModelRatio = map[string]float64{
|
||||
|
||||
// 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