Skip to content

使用 Anthropic 端点时缓存命中和实际不符 #25

Description

@hhszzzz

使用Anthropic端点,模型为deepseek-v4.1-flash,claudecode,参数默认,开启思考。
服务器环境运行该服务
对话时,发现统计token是实际token的2倍,即claudecode中显示200K,实际上只有100K的真实输入

Anthropic /v1/messages 响应中,把上游 usage 原样转发:

// proxy.mjs ~1379
input_tokens: usage?.inputTokens ?? 0,
cache_read_input_tokens: usage?.cachedInputTokens ?? 0,

貌似上游的 inputTokens 本身就包含缓存命中的 token,而 Anthropic 的 input_tokens 不包含 cache read/creation。两者没有做减法,导致按 Anthropic 语义解析的下游把 input_tokens 与 cache_read_input_tokens 当成互不重叠的两部分,而它们其实是重叠的,于是 input_tokens + cache_read 约等于真实输入的两倍。

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions