From ad63c9e66f7ce6c4a48d5ed8f4c18da9fa060369 Mon Sep 17 00:00:00 2001 From: "Laisky.Cai" Date: Thu, 13 Mar 2025 09:17:59 +0000 Subject: [PATCH] fix: update cost calculation to use QuotaPerUsd for search context sizes --- .gitignore | 3 +- relay/adaptor/openai/adaptor.go | 12 +- relay/billing/ratio/model.go | 570 ++++++++++++++++---------------- 3 files changed, 301 insertions(+), 284 deletions(-) diff --git a/.gitignore b/.gitignore index e1e018ea..8282d4b0 100644 --- a/.gitignore +++ b/.gitignore @@ -12,4 +12,5 @@ cmd.md .env /one-api temp -.DS_Store \ No newline at end of file +.DS_Store +/__debug_bin* diff --git a/relay/adaptor/openai/adaptor.go b/relay/adaptor/openai/adaptor.go index a340833c..0e955f0a 100644 --- a/relay/adaptor/openai/adaptor.go +++ b/relay/adaptor/openai/adaptor.go @@ -213,11 +213,11 @@ func (a *Adaptor) DoResponse(c *gin.Context, case strings.HasPrefix(meta.ActualModelName, "gpt-4o-search"): switch searchContextSize { case "low": - usage.ToolsCost += int64(math.Ceil(30 / 1000 * ratio.USD)) + usage.ToolsCost += int64(math.Ceil(30 / 1000 * ratio.QuotaPerUsd)) case "medium": - usage.ToolsCost += int64(math.Ceil(35 / 1000 * ratio.USD)) + usage.ToolsCost += int64(math.Ceil(35 / 1000 * ratio.QuotaPerUsd)) case "high": - usage.ToolsCost += int64(math.Ceil(40 / 1000 * ratio.USD)) + usage.ToolsCost += int64(math.Ceil(40 / 1000 * ratio.QuotaPerUsd)) default: return nil, ErrorWrapper( errors.Errorf("invalid search context size %q", searchContextSize), @@ -227,11 +227,11 @@ func (a *Adaptor) DoResponse(c *gin.Context, case strings.HasPrefix(meta.ActualModelName, "gpt-4o-mini-search"): switch searchContextSize { case "low": - usage.ToolsCost += int64(math.Ceil(25 / 1000 * ratio.USD)) + usage.ToolsCost += int64(math.Ceil(25 / 1000 * ratio.QuotaPerUsd)) case "medium": - usage.ToolsCost += int64(math.Ceil(27.5 / 1000 * ratio.USD)) + usage.ToolsCost += int64(math.Ceil(27.5 / 1000 * ratio.QuotaPerUsd)) case "high": - usage.ToolsCost += int64(math.Ceil(30 / 1000 * ratio.USD)) + usage.ToolsCost += int64(math.Ceil(30 / 1000 * ratio.QuotaPerUsd)) default: return nil, ErrorWrapper( errors.Errorf("invalid search context size %q", searchContextSize), diff --git a/relay/billing/ratio/model.go b/relay/billing/ratio/model.go index ebbab966..eb0160c7 100644 --- a/relay/billing/ratio/model.go +++ b/relay/billing/ratio/model.go @@ -9,11 +9,19 @@ import ( "github.com/songquanpeng/one-api/common/logger" ) +// Constants defining currency conversion and token pricing const ( - USD2RMB = 7 - USD = 500 // $0.002 = 1 -> $1 = 500 - MILLI_USD = 1.0 / 1000 * USD - RMB = USD / USD2RMB + USD2RMB float64 = 7 + // QuotaPerUsd is the number of tokens per USD + QuotaPerUsd float64 = 500000 // $0.002 / 1K tokens + // KiloTokensUsd multiply by the USD price per 1,000 tokens to get the quota cost per token + KiloTokensUsd float64 = QuotaPerUsd / 1000 + // MilliTokensUsd multiply by the USD price per 1 million tokens to get the quota cost per token + MilliTokensUsd float64 = KiloTokensUsd / 1000 + // 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 ) var modelRatioLock sync.RWMutex @@ -26,8 +34,8 @@ var modelRatioLock sync.RWMutex // 1 === ¥0.014 / 1k tokens var ModelRatio = map[string]float64{ // https://openai.com/pricing - "gpt-4.5-preview": 75 * MILLI_USD, - "gpt-4.5-preview-2025-02-27": 75 * MILLI_USD, + "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, @@ -52,27 +60,27 @@ var ModelRatio = map[string]float64{ // 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 * MILLI_USD, // $0.15/1M tokens - "gpt-4o-mini-audio-preview-2024-12-17": 0.15 * MILLI_USD, // $0.15/1M tokens - "gpt-3.5-turbo": 0.25, // $0.0005 / 1K tokens + "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 * MILLI_USD, // $15.00 / 1M input tokens - "o1-2024-12-17": 15 * MILLI_USD, - "o1-preview": 15 * MILLI_USD, // $15.00 / 1M input tokens - "o1-preview-2024-09-12": 15 * MILLI_USD, - "o1-mini": 1.1 * MILLI_USD, // $3.00 / 1M input tokens - "o1-mini-2024-09-12": 1.1 * MILLI_USD, - "o3-mini": 1.1 * MILLI_USD, - "o3-mini-2025-01-31": 1.1 * MILLI_USD, + "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 + "o1-2024-12-17": 15 * MilliTokensUsd, + "o1-preview": 15 * MilliTokensUsd, // $15.00 / 1M input tokens + "o1-preview-2024-09-12": 15 * MilliTokensUsd, + "o1-mini": 1.1 * MilliTokensUsd, // $3.00 / 1M input tokens + "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, @@ -97,171 +105,176 @@ var ModelRatio = map[string]float64{ "text-search-ada-doc-001": 10, "text-moderation-stable": 0.1, "text-moderation-latest": 0.1, - "dall-e-2": 0.02 * USD, // $0.016 - $0.020 / image - "dall-e-3": 0.04 * USD, // $0.040 - $0.120 / image + "dall-e-2": 20 * MilliTokensUsd, // $0.016 - $0.020 / image + "dall-e-3": 40 * MilliTokensUsd, // $0.040 - $0.120 / image // https://www.anthropic.com/api#pricing - "claude-instant-1.2": 0.8 / 1000 * USD, - "claude-2.0": 8.0 / 1000 * USD, - "claude-2.1": 8.0 / 1000 * USD, - "claude-3-haiku-20240307": 0.25 / 1000 * USD, - "claude-3-5-haiku-20241022": 1.0 / 1000 * USD, - "claude-3-5-haiku-latest": 1.0 / 1000 * USD, - "claude-3-sonnet-20240229": 3.0 / 1000 * USD, - "claude-3-5-sonnet-20240620": 3.0 / 1000 * USD, - "claude-3-5-sonnet-20241022": 3.0 / 1000 * USD, - "claude-3-5-sonnet-latest": 3.0 / 1000 * USD, - "claude-3-7-sonnet-20250219": 3.0 / 1000 * USD, - "claude-3-7-sonnet-latest": 3.0 / 1000 * USD, - "claude-3-opus-20240229": 15.0 / 1000 * USD, + "claude-instant-1.2": 0.8 / MilliTokensUsd, + "claude-2.0": 8.0 / MilliTokensUsd, + "claude-2.1": 8.0 / MilliTokensUsd, + "claude-3-haiku-20240307": 0.25 / MilliTokensUsd, + "claude-3-5-haiku-20241022": 1.0 / MilliTokensUsd, + "claude-3-5-haiku-latest": 1.0 / MilliTokensUsd, + "claude-3-sonnet-20240229": 3.0 / MilliTokensUsd, + "claude-3-5-sonnet-20240620": 3.0 / MilliTokensUsd, + "claude-3-5-sonnet-20241022": 3.0 / MilliTokensUsd, + "claude-3-5-sonnet-latest": 3.0 / MilliTokensUsd, + "claude-3-7-sonnet-20250219": 3.0 / MilliTokensUsd, + "claude-3-7-sonnet-latest": 3.0 / MilliTokensUsd, + "claude-3-opus-20240229": 15.0 / MilliTokensUsd, // https://cloud.baidu.com/doc/WENXINWORKSHOP/s/hlrk4akp7 - "ERNIE-4.0-8K": 0.120 * RMB, - "ERNIE-3.5-8K": 0.012 * RMB, - "ERNIE-3.5-8K-0205": 0.024 * RMB, - "ERNIE-3.5-8K-1222": 0.012 * RMB, - "ERNIE-Bot-8K": 0.024 * RMB, - "ERNIE-3.5-4K-0205": 0.012 * RMB, - "ERNIE-Speed-8K": 0.004 * RMB, - "ERNIE-Speed-128K": 0.004 * RMB, - "ERNIE-Lite-8K-0922": 0.008 * RMB, - "ERNIE-Lite-8K-0308": 0.003 * RMB, - "ERNIE-Tiny-8K": 0.001 * RMB, - "BLOOMZ-7B": 0.004 * RMB, - "Embedding-V1": 0.002 * RMB, - "bge-large-zh": 0.002 * RMB, - "bge-large-en": 0.002 * RMB, - "tao-8k": 0.002 * RMB, + "ERNIE-4.0-8K": 0.120 * KiloRmb, + "ERNIE-3.5-8K": 0.012 * KiloRmb, + "ERNIE-3.5-8K-0205": 0.024 * KiloRmb, + "ERNIE-3.5-8K-1222": 0.012 * KiloRmb, + "ERNIE-Bot-8K": 0.024 * KiloRmb, + "ERNIE-3.5-4K-0205": 0.012 * KiloRmb, + "ERNIE-Speed-8K": 0.004 * KiloRmb, + "ERNIE-Speed-128K": 0.004 * KiloRmb, + "ERNIE-Lite-8K-0922": 0.008 * KiloRmb, + "ERNIE-Lite-8K-0308": 0.003 * KiloRmb, + "ERNIE-Tiny-8K": 0.001 * KiloRmb, + "BLOOMZ-7B": 0.004 * KiloRmb, + "Embedding-V1": 0.002 * KiloRmb, + "bge-large-zh": 0.002 * KiloRmb, + "bge-large-en": 0.002 * KiloRmb, + "tao-8k": 0.002 * KiloRmb, // https://ai.google.dev/pricing // https://cloud.google.com/vertex-ai/generative-ai/pricing // "gemma-2-2b-it": 0, // "gemma-2-9b-it": 0, // "gemma-2-27b-it": 0, - "gemini-pro": 0.25 * MILLI_USD, // $0.00025 / 1k characters -> $0.001 / 1k tokens - "gemini-1.0-pro": 0.125 * MILLI_USD, - "gemini-1.5-pro": 1.25 * MILLI_USD, - "gemini-1.5-pro-001": 1.25 * MILLI_USD, - "gemini-1.5-pro-experimental": 1.25 * MILLI_USD, - "gemini-1.5-flash": 0.075 * MILLI_USD, - "gemini-1.5-flash-001": 0.075 * MILLI_USD, - "gemini-1.5-flash-8b": 0.0375 * MILLI_USD, - "gemini-2.0-flash-exp": 0.075 * MILLI_USD, - "gemini-2.0-flash": 0.15 * MILLI_USD, - "gemini-2.0-flash-001": 0.15 * MILLI_USD, - "gemini-2.0-flash-lite-preview-02-05": 0.075 * MILLI_USD, - "gemini-2.0-flash-thinking-exp-01-21": 0.075 * MILLI_USD, - "gemini-2.0-pro-exp-02-05": 1.25 * MILLI_USD, + "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, // https://open.bigmodel.cn/pricing - "glm-zero-preview": 0.01 * RMB, - "glm-4-plus": 0.05 * RMB, - "glm-4-0520": 0.1 * RMB, - "glm-4-airx": 0.01 * RMB, - "glm-4-air": 0.0005 * RMB, - "glm-4-long": 0.001 * RMB, - "glm-4-flashx": 0.0001 * RMB, + "glm-zero-preview": 0.01 * KiloRmb, + "glm-4-plus": 0.05 * KiloRmb, + "glm-4-0520": 0.1 * KiloRmb, + "glm-4-airx": 0.01 * KiloRmb, + "glm-4-air": 0.0005 * KiloRmb, + "glm-4-long": 0.001 * KiloRmb, + "glm-4-flashx": 0.0001 * KiloRmb, "glm-4-flash": 0, - "glm-4": 0.1 * RMB, // deprecated model, available until 2025/06 - "glm-3-turbo": 0.001 * RMB, // deprecated model, available until 2025/06 - "glm-4v-plus": 0.004 * RMB, - "glm-4v": 0.05 * RMB, + "glm-4": 0.1 * KiloRmb, // deprecated model, available until 2025/06 + "glm-3-turbo": 0.001 * KiloRmb, // deprecated model, available until 2025/06 + "glm-4v-plus": 0.004 * KiloRmb, + "glm-4v": 0.05 * KiloRmb, "glm-4v-flash": 0, - "cogview-3-plus": 0.06 * RMB, - "cogview-3": 0.1 * RMB, + "cogview-3-plus": 0.06 * KiloRmb, + "cogview-3": 0.1 * KiloRmb, "cogview-3-flash": 0, - "cogviewx": 0.5 * RMB, + "cogviewx": 0.5 * KiloRmb, "cogviewx-flash": 0, - "charglm-4": 0.001 * RMB, - "emohaa": 0.015 * RMB, - "codegeex-4": 0.0001 * RMB, - "embedding-2": 0.0005 * RMB, - "embedding-3": 0.0005 * RMB, + "charglm-4": 0.001 * KiloRmb, + "emohaa": 0.015 * KiloRmb, + "codegeex-4": 0.0001 * KiloRmb, + "embedding-2": 0.0005 * KiloRmb, + "embedding-3": 0.0005 * KiloRmb, // https://help.aliyun.com/zh/dashscope/developer-reference/tongyi-thousand-questions-metering-and-billing - "qwen-turbo": 0.0003 * RMB, - "qwen-turbo-latest": 0.0003 * RMB, - "qwen-plus": 0.0008 * RMB, - "qwen-plus-latest": 0.0008 * RMB, - "qwen-max": 0.0024 * RMB, - "qwen-max-latest": 0.0024 * RMB, - "qwen-max-longcontext": 0.0005 * RMB, - "qwen-vl-max": 0.003 * RMB, - "qwen-vl-max-latest": 0.003 * RMB, - "qwen-vl-plus": 0.0015 * RMB, - "qwen-vl-plus-latest": 0.0015 * RMB, - "qwen-vl-ocr": 0.005 * RMB, - "qwen-vl-ocr-latest": 0.005 * RMB, + "qwen-turbo": 0.0003 * KiloRmb, + "qwen-turbo-latest": 0.0003 * KiloRmb, + "qwen-plus": 0.0008 * KiloRmb, + "qwen-plus-latest": 0.0008 * KiloRmb, + "qwen-max": 0.0024 * KiloRmb, + "qwen-max-latest": 0.0024 * KiloRmb, + "qwen-max-longcontext": 0.0005 * KiloRmb, + "qwen-vl-max": 0.003 * KiloRmb, + "qwen-vl-max-latest": 0.003 * KiloRmb, + "qwen-vl-plus": 0.0015 * KiloRmb, + "qwen-vl-plus-latest": 0.0015 * KiloRmb, + "qwen-vl-ocr": 0.005 * KiloRmb, + "qwen-vl-ocr-latest": 0.005 * KiloRmb, "qwen-audio-turbo": 1.4286, - "qwen-math-plus": 0.004 * RMB, - "qwen-math-plus-latest": 0.004 * RMB, - "qwen-math-turbo": 0.002 * RMB, - "qwen-math-turbo-latest": 0.002 * RMB, - "qwen-coder-plus": 0.0035 * RMB, - "qwen-coder-plus-latest": 0.0035 * RMB, - "qwen-coder-turbo": 0.002 * RMB, - "qwen-coder-turbo-latest": 0.002 * RMB, - "qwen-mt-plus": 0.015 * RMB, - "qwen-mt-turbo": 0.001 * RMB, - "qwq-32b-preview": 0.002 * RMB, - "qwen2.5-72b-instruct": 0.004 * RMB, - "qwen2.5-32b-instruct": 0.03 * RMB, - "qwen2.5-14b-instruct": 0.001 * RMB, - "qwen2.5-7b-instruct": 0.0005 * RMB, - "qwen2.5-3b-instruct": 0.006 * RMB, - "qwen2.5-1.5b-instruct": 0.0003 * RMB, - "qwen2.5-0.5b-instruct": 0.0003 * RMB, - "qwen2-72b-instruct": 0.004 * RMB, - "qwen2-57b-a14b-instruct": 0.0035 * RMB, - "qwen2-7b-instruct": 0.001 * RMB, - "qwen2-1.5b-instruct": 0.001 * RMB, - "qwen2-0.5b-instruct": 0.001 * RMB, - "qwen1.5-110b-chat": 0.007 * RMB, - "qwen1.5-72b-chat": 0.005 * RMB, - "qwen1.5-32b-chat": 0.0035 * RMB, - "qwen1.5-14b-chat": 0.002 * RMB, - "qwen1.5-7b-chat": 0.001 * RMB, - "qwen1.5-1.8b-chat": 0.001 * RMB, - "qwen1.5-0.5b-chat": 0.001 * RMB, - "qwen-72b-chat": 0.02 * RMB, - "qwen-14b-chat": 0.008 * RMB, - "qwen-7b-chat": 0.006 * RMB, - "qwen-1.8b-chat": 0.006 * RMB, - "qwen-1.8b-longcontext-chat": 0.006 * RMB, - "qvq-72b-preview": 0.012 * RMB, - "qwen2.5-vl-72b-instruct": 0.016 * RMB, - "qwen2.5-vl-7b-instruct": 0.002 * RMB, - "qwen2.5-vl-3b-instruct": 0.0012 * RMB, - "qwen2-vl-7b-instruct": 0.016 * RMB, - "qwen2-vl-2b-instruct": 0.002 * RMB, - "qwen-vl-v1": 0.002 * RMB, - "qwen-vl-chat-v1": 0.002 * RMB, - "qwen2-audio-instruct": 0.002 * RMB, - "qwen-audio-chat": 0.002 * RMB, - "qwen2.5-math-72b-instruct": 0.004 * RMB, - "qwen2.5-math-7b-instruct": 0.001 * RMB, - "qwen2.5-math-1.5b-instruct": 0.001 * RMB, - "qwen2-math-72b-instruct": 0.004 * RMB, - "qwen2-math-7b-instruct": 0.001 * RMB, - "qwen2-math-1.5b-instruct": 0.001 * RMB, - "qwen2.5-coder-32b-instruct": 0.002 * RMB, - "qwen2.5-coder-14b-instruct": 0.002 * RMB, - "qwen2.5-coder-7b-instruct": 0.001 * RMB, - "qwen2.5-coder-3b-instruct": 0.001 * RMB, - "qwen2.5-coder-1.5b-instruct": 0.001 * RMB, - "qwen2.5-coder-0.5b-instruct": 0.001 * RMB, - "text-embedding-v1": 0.0007 * RMB, // ¥0.0007 / 1k tokens - "text-embedding-v3": 0.0007 * RMB, - "text-embedding-v2": 0.0007 * RMB, - "text-embedding-async-v2": 0.0007 * RMB, - "text-embedding-async-v1": 0.0007 * RMB, + "qwen-math-plus": 0.004 * KiloRmb, + "qwen-math-plus-latest": 0.004 * KiloRmb, + "qwen-math-turbo": 0.002 * KiloRmb, + "qwen-math-turbo-latest": 0.002 * KiloRmb, + "qwen-coder-plus": 0.0035 * KiloRmb, + "qwen-coder-plus-latest": 0.0035 * KiloRmb, + "qwen-coder-turbo": 0.002 * KiloRmb, + "qwen-coder-turbo-latest": 0.002 * KiloRmb, + "qwen-mt-plus": 0.015 * KiloRmb, + "qwen-mt-turbo": 0.001 * KiloRmb, + "qwq-32b-preview": 0.002 * KiloRmb, + "qwen2.5-72b-instruct": 0.004 * KiloRmb, + "qwen2.5-32b-instruct": 0.03 * KiloRmb, + "qwen2.5-14b-instruct": 0.001 * KiloRmb, + "qwen2.5-7b-instruct": 0.0005 * KiloRmb, + "qwen2.5-3b-instruct": 0.006 * KiloRmb, + "qwen2.5-1.5b-instruct": 0.0003 * KiloRmb, + "qwen2.5-0.5b-instruct": 0.0003 * KiloRmb, + "qwen2-72b-instruct": 0.004 * KiloRmb, + "qwen2-57b-a14b-instruct": 0.0035 * KiloRmb, + "qwen2-7b-instruct": 0.001 * KiloRmb, + "qwen2-1.5b-instruct": 0.001 * KiloRmb, + "qwen2-0.5b-instruct": 0.001 * KiloRmb, + "qwen1.5-110b-chat": 0.007 * KiloRmb, + "qwen1.5-72b-chat": 0.005 * KiloRmb, + "qwen1.5-32b-chat": 0.0035 * KiloRmb, + "qwen1.5-14b-chat": 0.002 * KiloRmb, + "qwen1.5-7b-chat": 0.001 * KiloRmb, + "qwen1.5-1.8b-chat": 0.001 * KiloRmb, + "qwen1.5-0.5b-chat": 0.001 * KiloRmb, + "qwen-72b-chat": 0.02 * KiloRmb, + "qwen-14b-chat": 0.008 * KiloRmb, + "qwen-7b-chat": 0.006 * KiloRmb, + "qwen-1.8b-chat": 0.006 * KiloRmb, + "qwen-1.8b-longcontext-chat": 0.006 * KiloRmb, + "qvq-72b-preview": 0.012 * KiloRmb, + "qwen2.5-vl-72b-instruct": 0.016 * KiloRmb, + "qwen2.5-vl-7b-instruct": 0.002 * KiloRmb, + "qwen2.5-vl-3b-instruct": 0.0012 * KiloRmb, + "qwen2-vl-7b-instruct": 0.016 * KiloRmb, + "qwen2-vl-2b-instruct": 0.002 * KiloRmb, + "qwen-vl-v1": 0.002 * KiloRmb, + "qwen-vl-chat-v1": 0.002 * KiloRmb, + "qwen2-audio-instruct": 0.002 * KiloRmb, + "qwen-audio-chat": 0.002 * KiloRmb, + "qwen2.5-math-72b-instruct": 0.004 * KiloRmb, + "qwen2.5-math-7b-instruct": 0.001 * KiloRmb, + "qwen2.5-math-1.5b-instruct": 0.001 * KiloRmb, + "qwen2-math-72b-instruct": 0.004 * KiloRmb, + "qwen2-math-7b-instruct": 0.001 * KiloRmb, + "qwen2-math-1.5b-instruct": 0.001 * KiloRmb, + "qwen2.5-coder-32b-instruct": 0.002 * KiloRmb, + "qwen2.5-coder-14b-instruct": 0.002 * KiloRmb, + "qwen2.5-coder-7b-instruct": 0.001 * KiloRmb, + "qwen2.5-coder-3b-instruct": 0.001 * KiloRmb, + "qwen2.5-coder-1.5b-instruct": 0.001 * KiloRmb, + "qwen2.5-coder-0.5b-instruct": 0.001 * KiloRmb, + "text-embedding-v1": 0.0007 * KiloRmb, // ¥0.0007 / 1k tokens + "text-embedding-v3": 0.0007 * KiloRmb, + "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, - "deepseek-r1": 0.002 * RMB, - "deepseek-v3": 0.001 * RMB, - "deepseek-r1-distill-qwen-1.5b": 0.001 * RMB, - "deepseek-r1-distill-qwen-7b": 0.0005 * RMB, - "deepseek-r1-distill-qwen-14b": 0.001 * RMB, - "deepseek-r1-distill-qwen-32b": 0.002 * RMB, - "deepseek-r1-distill-llama-8b": 0.0005 * RMB, - "deepseek-r1-distill-llama-70b": 0.004 * RMB, + "deepseek-r1": 0.002 * KiloRmb, + "deepseek-v3": 0.001 * KiloRmb, + "deepseek-r1-distill-qwen-1.5b": 0.001 * KiloRmb, + "deepseek-r1-distill-qwen-7b": 0.0005 * KiloRmb, + "deepseek-r1-distill-qwen-14b": 0.001 * KiloRmb, + "deepseek-r1-distill-qwen-32b": 0.002 * KiloRmb, + "deepseek-r1-distill-llama-8b": 0.0005 * KiloRmb, + "deepseek-r1-distill-llama-70b": 0.004 * KiloRmb, "SparkDesk": 1.2858, // ¥0.018 / 1k tokens "SparkDesk-v1.1": 1.2858, // ¥0.018 / 1k tokens "SparkDesk-v2.1": 1.2858, // ¥0.018 / 1k tokens @@ -275,69 +288,68 @@ var ModelRatio = map[string]float64{ "embedding_s1_v1": 0.0715, // ¥0.001 / 1k tokens "semantic_similarity_s1_v1": 0.0715, // ¥0.001 / 1k tokens // https://cloud.tencent.com/document/product/1729/97731#e0e6be58-60c8-469f-bdeb-6c264ce3b4d0 - "hunyuan-turbo": 0.015 * RMB, - "hunyuan-large": 0.004 * RMB, - "hunyuan-large-longcontext": 0.006 * RMB, - "hunyuan-standard": 0.0008 * RMB, - "hunyuan-standard-256K": 0.0005 * RMB, - "hunyuan-translation-lite": 0.005 * RMB, - "hunyuan-role": 0.004 * RMB, - "hunyuan-functioncall": 0.004 * RMB, - "hunyuan-code": 0.004 * RMB, - "hunyuan-turbo-vision": 0.08 * RMB, - "hunyuan-vision": 0.018 * RMB, - "hunyuan-embedding": 0.0007 * RMB, + "hunyuan-turbo": 0.015 * KiloRmb, + "hunyuan-large": 0.004 * KiloRmb, + "hunyuan-large-longcontext": 0.006 * KiloRmb, + "hunyuan-standard": 0.0008 * KiloRmb, + "hunyuan-standard-256K": 0.0005 * KiloRmb, + "hunyuan-translation-lite": 0.005 * KiloRmb, + "hunyuan-role": 0.004 * KiloRmb, + "hunyuan-functioncall": 0.004 * KiloRmb, + "hunyuan-code": 0.004 * KiloRmb, + "hunyuan-turbo-vision": 0.08 * KiloRmb, + "hunyuan-vision": 0.018 * KiloRmb, + "hunyuan-embedding": 0.0007 * KiloRmb, // https://platform.moonshot.cn/pricing - "moonshot-v1-8k": 0.012 * RMB, - "moonshot-v1-32k": 0.024 * RMB, - "moonshot-v1-128k": 0.06 * RMB, + "moonshot-v1-8k": 0.012 * KiloRmb, + "moonshot-v1-32k": 0.024 * KiloRmb, + "moonshot-v1-128k": 0.06 * KiloRmb, // https://platform.baichuan-ai.com/price - "Baichuan2-Turbo": 0.008 * RMB, - "Baichuan2-Turbo-192k": 0.016 * RMB, - "Baichuan2-53B": 0.02 * RMB, + "Baichuan2-Turbo": 0.008 * KiloRmb, + "Baichuan2-Turbo-192k": 0.016 * KiloRmb, + "Baichuan2-53B": 0.02 * KiloRmb, // https://api.minimax.chat/document/price - "abab6.5-chat": 0.03 * RMB, - "abab6.5s-chat": 0.01 * RMB, - "abab6-chat": 0.1 * RMB, - "abab5.5-chat": 0.015 * RMB, - "abab5.5s-chat": 0.005 * RMB, + "abab6.5-chat": 0.03 * KiloRmb, + "abab6.5s-chat": 0.01 * KiloRmb, + "abab6-chat": 0.1 * KiloRmb, + "abab5.5-chat": 0.015 * KiloRmb, + "abab5.5s-chat": 0.005 * KiloRmb, // https://docs.mistral.ai/platform/pricing/ - "open-mistral-7b": 0.25 / 1000 * USD, - "open-mixtral-8x7b": 0.7 / 1000 * USD, - "mistral-small-latest": 2.0 / 1000 * USD, - "mistral-medium-latest": 2.7 / 1000 * USD, - "mistral-large-latest": 8.0 / 1000 * USD, - "mistral-embed": 0.1 / 1000 * USD, + "open-mistral-7b": 0.25 / MilliTokensUsd, + "open-mixtral-8x7b": 0.7 / MilliTokensUsd, + "mistral-small-latest": 2.0 / MilliTokensUsd, + "mistral-medium-latest": 2.7 / MilliTokensUsd, + "mistral-large-latest": 8.0 / MilliTokensUsd, + "mistral-embed": 0.1 / MilliTokensUsd, // https://wow.groq.com/#:~:text=inquiries%C2%A0here.-,Model,-Current%20Speed - "gemma-7b-it": 0.07 / 1000000 * USD, - "gemma2-9b-it": 0.20 / 1000000 * USD, - "llama-3.1-70b-versatile": 0.59 / 1000000 * USD, - "llama-3.1-8b-instant": 0.05 / 1000000 * USD, - "llama-3.2-11b-text-preview": 0.05 / 1000000 * USD, - "llama-3.2-11b-vision-preview": 0.05 / 1000000 * USD, - "llama-3.2-1b-preview": 0.05 / 1000000 * USD, - "llama-3.2-3b-preview": 0.05 / 1000000 * USD, - "llama-3.2-90b-text-preview": 0.59 / 1000000 * USD, - "llama-guard-3-8b": 0.05 / 1000000 * USD, - "llama3-70b-8192": 0.59 / 1000000 * USD, - "llama3-8b-8192": 0.05 / 1000000 * USD, - "llama3-groq-70b-8192-tool-use-preview": 0.89 / 1000000 * USD, - "llama3-groq-8b-8192-tool-use-preview": 0.19 / 1000000 * USD, - "mixtral-8x7b-32768": 0.24 / 1000000 * USD, - + "gemma-7b-it": 0.07 / 1000 * MilliTokensUsd, + "gemma2-9b-it": 0.20 / 1000 * MilliTokensUsd, + "llama-3.1-70b-versatile": 0.59 / 1000 * MilliTokensUsd, + "llama-3.1-8b-instant": 0.05 / 1000 * MilliTokensUsd, + "llama-3.2-11b-text-preview": 0.05 / 1000 * MilliTokensUsd, + "llama-3.2-11b-vision-preview": 0.05 / 1000 * MilliTokensUsd, + "llama-3.2-1b-preview": 0.05 / 1000 * MilliTokensUsd, + "llama-3.2-3b-preview": 0.05 / 1000 * MilliTokensUsd, + "llama-3.2-90b-text-preview": 0.59 / 1000 * MilliTokensUsd, + "llama-guard-3-8b": 0.05 / 1000 * MilliTokensUsd, + "llama3-70b-8192": 0.59 / 1000 * MilliTokensUsd, + "llama3-8b-8192": 0.05 / 1000 * MilliTokensUsd, + "llama3-groq-70b-8192-tool-use-preview": 0.89 / 1000 * MilliTokensUsd, + "llama3-groq-8b-8192-tool-use-preview": 0.19 / 1000 * MilliTokensUsd, + "mixtral-8x7b-32768": 0.24 / 1000 * MilliTokensUsd, // https://platform.lingyiwanwu.com/docs#-计费单元 - "yi-34b-chat-0205": 2.5 / 1000 * RMB, - "yi-34b-chat-200k": 12.0 / 1000 * RMB, - "yi-vl-plus": 6.0 / 1000 * RMB, + "yi-34b-chat-0205": 2.5 * MilliRmb, + "yi-34b-chat-200k": 12.0 * MilliRmb, + "yi-vl-plus": 6.0 * MilliRmb, // https://platform.stepfun.com/docs/pricing/details - "step-1-8k": 0.005 / 1000 * RMB, - "step-1-32k": 0.015 / 1000 * RMB, - "step-1-128k": 0.040 / 1000 * RMB, - "step-1-256k": 0.095 / 1000 * RMB, - "step-1-flash": 0.001 / 1000 * RMB, - "step-2-16k": 0.038 / 1000 * RMB, - "step-1v-8k": 0.005 / 1000 * RMB, - "step-1v-32k": 0.015 / 1000 * RMB, + "step-1-8k": 0.005 * MilliRmb, + "step-1-32k": 0.015 * MilliRmb, + "step-1-128k": 0.040 * MilliRmb, + "step-1-256k": 0.095 * MilliRmb, + "step-1-flash": 0.001 * MilliRmb, + "step-2-16k": 0.038 * MilliRmb, + "step-1v-8k": 0.005 * MilliRmb, + "step-1v-32k": 0.015 * MilliRmb, // aws llama3 https://aws.amazon.com/cn/bedrock/pricing/ "llama3-8b-8192(33)": 0.0003 / 0.002, // $0.0003 / 1K tokens "llama3-70b-8192(33)": 0.00265 / 0.002, // $0.00265 / 1K tokens @@ -346,61 +358,64 @@ var ModelRatio = map[string]float64{ "command-nightly": 0.5, "command-light": 0.5, "command-light-nightly": 0.5, - "command-r": 0.5 / 1000 * USD, - "command-r-plus": 3.0 / 1000 * USD, + "command-r": 0.5 / MilliTokensUsd, + "command-r-plus": 3.0 / MilliTokensUsd, // https://platform.deepseek.com/api-docs/pricing/ - "deepseek-chat": 0.14 * MILLI_USD, - "deepseek-reasoner": 0.55 * MILLI_USD, + "deepseek-chat": 0.27 * MilliTokensUsd, + "deepseek-reasoner": 0.55 * MilliTokensUsd, // https://www.deepl.com/pro?cta=header-prices - "deepl-zh": 25.0 / 1000 * USD, - "deepl-en": 25.0 / 1000 * USD, - "deepl-ja": 25.0 / 1000 * USD, + "deepl-zh": 25.0 / MilliTokensUsd, + "deepl-en": 25.0 / MilliTokensUsd, + "deepl-ja": 25.0 / MilliTokensUsd, // https://console.x.ai/ - "grok-beta": 5.0 / 1000 * USD, + "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, // replicate charges based on the number of generated images // https://replicate.com/pricing - "black-forest-labs/flux-1.1-pro": 0.04 * USD, - "black-forest-labs/flux-1.1-pro-ultra": 0.06 * USD, - "black-forest-labs/flux-canny-dev": 0.025 * USD, - "black-forest-labs/flux-canny-pro": 0.05 * USD, - "black-forest-labs/flux-depth-dev": 0.025 * USD, - "black-forest-labs/flux-depth-pro": 0.05 * USD, - "black-forest-labs/flux-dev": 0.025 * USD, - "black-forest-labs/flux-dev-lora": 0.032 * USD, - "black-forest-labs/flux-fill-dev": 0.04 * USD, - "black-forest-labs/flux-fill-pro": 0.05 * USD, - "black-forest-labs/flux-pro": 0.055 * USD, - "black-forest-labs/flux-redux-dev": 0.025 * USD, - "black-forest-labs/flux-redux-schnell": 0.003 * USD, - "black-forest-labs/flux-schnell": 0.003 * USD, - "black-forest-labs/flux-schnell-lora": 0.02 * USD, - "ideogram-ai/ideogram-v2": 0.08 * USD, - "ideogram-ai/ideogram-v2-turbo": 0.05 * USD, - "recraft-ai/recraft-v3": 0.04 * USD, - "recraft-ai/recraft-v3-svg": 0.08 * USD, - "stability-ai/stable-diffusion-3": 0.035 * USD, - "stability-ai/stable-diffusion-3.5-large": 0.065 * USD, - "stability-ai/stable-diffusion-3.5-large-turbo": 0.04 * USD, - "stability-ai/stable-diffusion-3.5-medium": 0.035 * USD, + "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, // replicate chat models - "ibm-granite/granite-20b-code-instruct-8k": 0.100 * USD, - "ibm-granite/granite-3.0-2b-instruct": 0.030 * USD, - "ibm-granite/granite-3.0-8b-instruct": 0.050 * USD, - "ibm-granite/granite-8b-code-instruct-128k": 0.050 * USD, - "meta/llama-2-13b": 0.100 * USD, - "meta/llama-2-13b-chat": 0.100 * USD, - "meta/llama-2-70b": 0.650 * USD, - "meta/llama-2-70b-chat": 0.650 * USD, - "meta/llama-2-7b": 0.050 * USD, - "meta/llama-2-7b-chat": 0.050 * USD, - "meta/meta-llama-3.1-405b-instruct": 9.500 * USD, - "meta/meta-llama-3-70b": 0.650 * USD, - "meta/meta-llama-3-70b-instruct": 0.650 * USD, - "meta/meta-llama-3-8b": 0.050 * USD, - "meta/meta-llama-3-8b-instruct": 0.050 * USD, - "mistralai/mistral-7b-instruct-v0.2": 0.050 * USD, - "mistralai/mistral-7b-v0.1": 0.050 * USD, - "mistralai/mixtral-8x7b-instruct-v0.1": 0.300 * USD, + "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, //https://openrouter.ai/models "01-ai/yi-large": 1.5, "aetherwiing/mn-starcannon-12b": 0.6, @@ -449,10 +464,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": 0.445, + "deepseek/deepseek-chat": 1.25 * MilliTokensUsd, "deepseek/deepseek-chat-v2.5": 1.0, "deepseek/deepseek-chat:free": 0.0, - "deepseek/deepseek-r1": 1.2, + "deepseek/deepseek-r1": 7 * MilliTokensUsd, "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, @@ -580,6 +595,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/o1": 30.0, "openai/o1-mini": 2.2, "openai/o1-mini-2024-09-12": 2.2,