代理: 流式中断按已生成部分计费

- 新增 tokenizer 包(tiktoken-go)按模型估算 token, 未知模型回退 cl100k_base
- passthrough 提取请求输入文本 + SSE 已生成内容, 客户端断开时记 canceled
- usage 计费范围扩展: canceled(流式中断)按已生成部分收费

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Sakurasan
2026-08-16 09:04:18 +08:00
co-authored by Claude
parent 4b507d8064
commit 0ee92d78e7
5 changed files with 156 additions and 5 deletions
+2 -1
View File
@@ -97,7 +97,8 @@ func (r *Recorder) flush(logs []*store.UsageLog) error {
return err
}
for _, l := range logs {
if l.Status != store.UsageStatusSuccess || l.Cost <= 0 {
// 计费范围:success(正常完成)与 canceled(流式中断,按已生成部分收费)
if (l.Status != store.UsageStatusSuccess && l.Status != store.UsageStatusCanceled) || l.Cost <= 0 {
continue
}
// 扣余额(余额可为负:流式请求不中断;后续请求被拒)