Skip to content

修复:Qoder 模型归属回落 Auto + Anthropic 流式上下文用量恒 0 - #336

Open
tomliangzi wants to merge 2 commits into
aimod-cc:mainfrom
tomliangzi:fix/qoder-model-attribution
Open

tomliangzi wants to merge 2 commits into
aimod-cc:mainfrom
tomliangzi:fix/qoder-model-attribution

Conversation

@tomliangzi

Copy link
Copy Markdown

问题

  1. 在 Qoder 账号下选择 Kimi-K3.1-Pro 等模型时,请求能正常返回,但 Qoder 后台的模型归属/计费始终显示 Auto。
  2. 使用 /v1/messages(Claude Code)时,context-hud 的上下文用量始终为 0。

原因

  1. 官方 Qoder 客户端在请求体 business 块里固定携带当前模型键(官方运行时 d8() 的第 5 个参数即 model_key)。上游后台的模型归属优先读它;此前只发送 model_config.key 与 X-Model-Key,缺少 business.model_key 时会回落到账号默认档 Auto。
  2. Anthropic 流式响应收尾的 message_delta 只回传 output_tokens,上游已拿到的 input_tokens / cache_read_input_tokens 被丢弃;message_start 又只能在首帧发 0 占位,客户端因此无法感知上下文用量。

改动

  • qoder/protocol.rs:business 增加 model_key,并新增单测锁住该字段。
  • anthropic.rs:message_delta 改用 usage_to_anthropic 回传完整 usage;新增 estimate_chat_tokens,message_start 用请求体估算值占位(真实值随后覆盖)。
  • api/protocol.rs:把估算值接入 AnthropicStream::with_input_tokens。

验证

  • cargo test:586 passed,0 failed(新增 1 条回归测试)。
  • 实测:同一 Kimi-K3.1-Pro 请求,Qoder 后台由 Auto 变为 Kimi-K3.1-Pro。
  • 实测:/v1/messages 流式 message_start 返回估算 input,message_delta 返回真实 input_tokens=90 / output_tokens=32 / cache_read_input_tokens=0。

🤖 Generated with Claude Code

yanjw3 and others added 2 commits October 25, 2026 09:43
官方 Qoder 客户端的 agent 循环在 business 块里固定携带当前模型键
(运行时 d8() 的第 5 个参数)。上游后台的模型归属/计费优先读它;
Agent2API 之前只带 model_config.key 与 X-Model-Key,选择 Kimi-K3.1-Pro
等模型时后台一律记成账号默认档 Auto。

补上 business.model_key 后,同一请求在 Qoder 后台由 Auto 变为
Kimi-K3.1-Pro;新增单测锁住该字段。

Co-Authored-By: Claude Code <noreply@anthropic.com>
/v1/messages 流式响应收尾的 message_delta 原来只回传 output_tokens,
上游已拿到的 input_tokens / cache_read_input_tokens 被丢弃,客户端
(Claude Code context-hud)因此始终认为本次请求没有输入,上下文用量
恒为 0。

- message_delta 改用 usage_to_anthropic(self.usage),回传完整用量;
- message_start 用请求体粗估的输入 token 数占位(真实值随后覆盖),
  保证首帧也不是 0;
- 估算为纯内存字符扫描,不增加网络等待。

Co-Authored-By: Claude Code <noreply@anthropic.com>
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