Skip to content

feat: Token 计量 — 非流式响应记录 input_tokens / output_tokens#31

Merged
bigmanBass666 merged 3 commits into
mainfrom
feature/token-metering-non-streaming
Jul 16, 2026
Merged

feat: Token 计量 — 非流式响应记录 input_tokens / output_tokens#31
bigmanBass666 merged 3 commits into
mainfrom
feature/token-metering-non-streaming

Conversation

@bigmanBass666

Copy link
Copy Markdown
Contributor

改动

1. internal/utils/utils.go

  • LogEntry 结构体新增 InputTokens / OutputTokens 字段(intomitempty

2. internal/server/proxy_handler.go

  • handleSuccess 中区分流式/非流式响应:
    • 流式(Content-Type: text/event-stream)→ 沿用 streamResponse,Token 记为 0
    • 非流式 → 先 io.ReadAll(resp.Body),解析 Anthropic 格式 usage.input_tokens / usage.output_tokens,再写回客户端
  • 新增 extractTokenUsage 辅助函数,解析 JSON 提取 token 计数
  • LogEntry 写入前设置 InputTokens / OutputTokens

验收

  • 编译通过,go vet 无 warning
  • 单元测试 + 集成测试全量通过
  • 非流式请求后 akswitch logs 输出包含 input_tokens / output_tokens

Closes #26

@bigmanBass666
bigmanBass666 marked this pull request as ready for review July 16, 2026 19:02
@bigmanBass666
bigmanBass666 merged commit d994839 into main Jul 16, 2026
4 checks passed
@bigmanBass666
bigmanBass666 deleted the feature/token-metering-non-streaming branch July 16, 2026 19:23
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.

Token 计量 — 非流式响应解析 usage 字段

1 participant