From a89f433ddeb5dd5cd50e6ad7c2cffbdb04e6b539 Mon Sep 17 00:00:00 2001 From: "Mr.XYS" <44491763+a1398394385@users.noreply.github.com> Date: Sat, 7 Mar 2026 21:15:48 +0800 Subject: [PATCH] fix: fix the issue of missing token statistics for cache hits in streaming responses (#1244) --- src-tauri/src/proxy/usage/parser.rs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src-tauri/src/proxy/usage/parser.rs b/src-tauri/src/proxy/usage/parser.rs index 0a33d0187..f3ce1362f 100644 --- a/src-tauri/src/proxy/usage/parser.rs +++ b/src-tauri/src/proxy/usage/parser.rs @@ -109,6 +109,23 @@ impl TokenUsage { usage.input_tokens = input as u32; } } + // 从 message_delta 中处理缓存命中(cache_read_input_tokens) + if usage.cache_read_tokens == 0 { + if let Some(cache_read) = + delta_usage.get("cache_read_input_tokens").and_then(|v| v.as_u64()) + { + usage.cache_read_tokens = cache_read as u32; + } + } + // 从 message_delta 中处理缓存创建(cache_creation_input_tokens) + // 注: 现在 zhipu 没有返回 cache_creation_input_tokens 字段 + if usage.cache_creation_tokens == 0 { + if let Some(cache_creation) = + delta_usage.get("cache_creation_input_tokens").and_then(|v| v.as_u64()) + { + usage.cache_creation_tokens = cache_creation as u32; + } + } } } _ => {}