From 760fbeb6e6b18ad87535a3c2323cd6dd0b806541 Mon Sep 17 00:00:00 2001 From: Seefs <40468931+seefs001@users.noreply.github.com> Date: Tue, 3 Feb 2026 00:03:19 +0800 Subject: [PATCH] Merge pull request #2811 from seefs001/fix/openrouter-claude-cache-usage fix: openrouter claude cache usage --- relay/channel/claude/relay-claude.go | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/relay/channel/claude/relay-claude.go b/relay/channel/claude/relay-claude.go index 7faa2ac9f..4fdf7c275 100644 --- a/relay/channel/claude/relay-claude.go +++ b/relay/channel/claude/relay-claude.go @@ -631,7 +631,21 @@ func FormatClaudeResponseInfo(requestMode int, claudeResponse *dto.ClaudeRespons // 不叠加,只取最新的 claudeInfo.Usage.PromptTokens = claudeResponse.Usage.InputTokens } - claudeInfo.Usage.CompletionTokens = claudeResponse.Usage.OutputTokens + if claudeResponse.Usage.CacheReadInputTokens > 0 { + claudeInfo.Usage.PromptTokensDetails.CachedTokens = claudeResponse.Usage.CacheReadInputTokens + } + if claudeResponse.Usage.CacheCreationInputTokens > 0 { + claudeInfo.Usage.PromptTokensDetails.CachedCreationTokens = claudeResponse.Usage.CacheCreationInputTokens + } + if cacheCreation5m := claudeResponse.Usage.GetCacheCreation5mTokens(); cacheCreation5m > 0 { + claudeInfo.Usage.ClaudeCacheCreation5mTokens = cacheCreation5m + } + if cacheCreation1h := claudeResponse.Usage.GetCacheCreation1hTokens(); cacheCreation1h > 0 { + claudeInfo.Usage.ClaudeCacheCreation1hTokens = cacheCreation1h + } + if claudeResponse.Usage.OutputTokens > 0 { + claudeInfo.Usage.CompletionTokens = claudeResponse.Usage.OutputTokens + } claudeInfo.Usage.TotalTokens = claudeInfo.Usage.PromptTokens + claudeInfo.Usage.CompletionTokens }