![[BUG]: Responses API usage shape](https://www.chat-gpts.plus/wp-content/uploads/2026/07/5920-b7f1cab4.jpg)
[BUG]: Responses API usage shape
快速结论:该报错出现在 AnythingLLM 迁移至 OpenAI Responses API 后,因字段名不一致导致 token 用量统计缺失或错误(如 TPS 测量异常)。优先排查 AnythingLLM 是否已更新至包含 output_tokens / input_tokens 映射的最新补丁版本。
问题场景
用户在 Docker 远程机器上运行 AnythingLLM,通过 API 端点调用时发现返回的 token 用量字段(usage)为空或不完整,影响前端展示的 token 使用统计和 TPS(每秒 token 数)测量。
报错原文
# 从 API 端点调用返回的 usage 字段丢失部分数据
# 迁移至 Responses API 后,字段映射变化:
# completion_tokens -> output_tokens
# prompt_tokens -> input_tokens
# 原有字段可能缺失
原因分析
这是 AnythingLLM 在迁移至 OpenAI Responses API 时(相关 PR #4403)留下的 token 追踪缺口。Responses API 的响应 schema 与旧版 Completions API 不完全兼容:completion_tokens 和 prompt_tokens 字段在新 API 中被替换为 output_tokens 和 input_tokens。由于后端未及时更新映射逻辑,导致前端期待的旧字段为空,进而引发 TPS 计算错误。
环境排查
- 确认 AnythingLLM 运行方式:Docker 远程机器
- 确认响应 API 类型:Responses API(区别于 Completions API)
- 确认 AnythingLLM 版本是否包含补丁 PR #4458 或 #5197(主要补丁在 #5197 的 diff 中:
R471-R486)
解决步骤
- 检查当前 AnythingLLM 版本,确保已合并 PR #4458 或 PR #5197 的补丁代码。
- 可优先尝试:更新至包含 PR #5197 的最新版本,该补丁在 API 端点处理器中新增了字段映射逻辑:将 Responses API 返回的
output_tokens映射回completion_tokens,将input_tokens映射回prompt_tokens。 - 如果使用 Docker 镜像,拉取最新镜像并重启容器,确保代码更新生效。
- 重新调用 API 端点,检查响应中的
usage字段是否包含完整的completion_tokens和prompt_tokens。
验证方法
调用 API 端点(例如对话或生成请求),检查返回 JSON 中 usage 字段是否同时包含 completion_tokens、prompt_tokens(以及对应的 output_tokens、input_tokens)。观察前端 token 统计和 TPS 显示是否恢复正常。



