MMSP
GitHub123

Token 用量

一次响应的四个 token 计数,以及它们如何相加。

每条流的最后一个事件 stop 会携带本次请求的 token 计数,位于 usage_metadata 字段中。

{"cached_tokens": 120, "prompt_tokens": 412, "thoughts_tokens": 31, "response_tokens": 27}
字段 计数
cached_tokens 从服务商缓存读取的输入 token
prompt_tokens 未命中缓存的输入 token
thoughts_tokens 用于思考的输出 token
response_tokens 回答本身的输出 token

总计

input_tokens  = cached_tokens + prompt_tokens
output_tokens = thoughts_tokens + response_tokens
total_tokens  = input_tokens + output_tokens

服务商未报告的计数为 null,应视为零。

读取位置

从 stop 事件读取计数,只需读取一次。delta 事件中的该字段为 null,无需跨事件累加。

有状态调用记录的助手消息也包含相同的 usage_metadata,因此存储的历史会话会保留每一轮的成本。

即使响应抛出了 EmptyResponseError,也已消耗 token。该错误同样包含其 usage_metadata。IncompleteStreamError 包含流中途断开之前已经到达的 usage_metadata,没有到达则为 null。

在 GitHub 上编辑本页以 Markdown 打开