Skip to content

fix: 修复 OpenAI 和 Anthropic 格式的 token 用量统计 - #432

Open
qiuyaodawo wants to merge 1 commit into
su-kaka:masterfrom
qiuyaodawo:master
Open

qiuyaodawo wants to merge 1 commit into
su-kaka:masterfrom
qiuyaodawo:master

Conversation

@qiuyaodawo

Copy link
Copy Markdown

问题

根据Gemini 的 Response 格式, Gemini 的 promptTokenCount 包含缓存 token,candidatesTokenCount 不包含推理 token.

根据OpenAI 返回的 chat completion object 中 completion_tokens_details 和 prompt_tokens_details 的定义, OpenAI 的 prompt_tokens 包含缓存 token, completion_tokens 包含推理 token.

根据Claude API Reference 中返回的 Message 中 usage 字段的定义, Claude 的 input_tokens 不包含缓存 token, output_tokens 包含推理 token.

当前转换存在以下问题:

  • OpenAI:prompt_tokens 扣除了缓存 token,completion_tokens 未包含推理 token.
  • Anthropic:input_tokens 未扣除缓存读取 token,output_tokens 未包含推理 token.

因此影响到了用量统计。

修改

  • openai2gemini.py:保留完整 prompt_tokens,将推理 token 计入 completion_tokens,并保留缓存和推理的明细字段,更正了 total_tokens 的计算。
  • anthropic2gemini.py:修正流式及非流式的输入、输出统计,返回缓存读取数量和 thinking token 明细。

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant