修复 Completions转Anthropic时不记录实际返回模型、Input token记录错误问题 (#2774)

* fix(proxy): 修复completions转claude格式流式响应未记录实际命中模型

* style: cargo fmt fix

* fix(proxy): 修复completions转claude格式时input与cache_read重复计费

* fix(proxy): 修复完全缓存命中时input_tokens计算错误

* test: 更新input_tokens期望值匹配去重逻辑
This commit is contained in:
LaoYueHanNi
2026-06-09 20:30:05 +08:00
committed by GitHub
parent 955ea26da9
commit edc597ab23
2 changed files with 14 additions and 8 deletions
+4 -3
View File
@@ -333,7 +333,7 @@ async fn handle_claude_transform(
let usage_collector = if usage_logging_enabled(state) {
let state = state.clone();
let provider_id = ctx.provider.id.clone();
let model = ctx.request_model.clone();
let request_model = ctx.request_model.clone();
let status_code = status.as_u16();
let start_time = ctx.start_time;
let session_id = ctx.session_id.clone();
@@ -343,11 +343,12 @@ async fn handle_claude_transform(
Some(claude_stream_usage_event_filter),
move |events, first_token_ms| {
if let Some(usage) = TokenUsage::from_claude_stream_events(&events) {
let model = usage.model.clone().unwrap_or(request_model.clone());
let latency_ms = start_time.elapsed().as_millis() as u64;
let state = state.clone();
let provider_id = provider_id.clone();
let model = model.clone();
let session_id = session_id.clone();
let request_model = request_model.clone();
tokio::spawn(async move {
log_usage(
@@ -355,7 +356,7 @@ async fn handle_claude_transform(
&provider_id,
"claude",
&model,
&model,
&request_model,
usage,
latency_ms,
first_token_ms,