Skip to content

fix(openai): record zero-cost usage for unpriced models#2319

Open
wucm667 wants to merge 1 commit intoWei-Shaw:mainfrom
wucm667:codex/fix-openai-unpriced-usage-log
Open

fix(openai): record zero-cost usage for unpriced models#2319
wucm667 wants to merge 1 commit intoWei-Shaw:mainfrom
wucm667:codex/fix-openai-unpriced-usage-log

Conversation

@wucm667
Copy link
Copy Markdown
Contributor

@wucm667 wucm667 commented May 9, 2026

概要

修复 OpenAI 兼容接口在模型缺少定价时,成功请求没有写入使用记录的问题。

之前请求已经成功返回,但如果计费模型找不到价格,异步用量记录任务会在写入 usage_logs 前失败,导致这类自定义模型 / 第三方 OpenAI-compatible 模型在使用记录里完全不可见。

这个 PR 将“缺少定价”改为可恢复场景:仍然记录一条 0 费用的使用记录,保留 token、模型、账号、API key、请求耗时等用量信息。

变更内容

  • 新增 ErrModelPricingUnavailable,用于通过 errors.Is 判断模型定价缺失。
  • OpenAI 用量记录遇到模型缺少定价时,不再中断整条记录流程。
  • 缺少定价时写入 total_cost = 0actual_cost = 0 的使用记录。
  • 增加 warning 日志:openai_usage.pricing_missing_record_zero_cost
  • 非定价类错误仍保持原有失败行为。
  • 新增/更新 OpenAI 兼容未知模型的单元测试。

说明

这个改动不会为未知模型补价格,也不会对未知模型扣费。
如果需要准确计费,管理员仍然需要配置渠道定价或补充模型价格数据。

这个 PR 的目标是:请求成功时,即使价格缺失,也不要丢失用量可见性。

测试

GOCACHE=/private/tmp/sub2api-go-build go test -tags=unit ./internal/service

结果

ok  	github.com/Wei-Shaw/sub2api/internal/service	83.282s

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