From 3759588f5bfa8ebe02d45dd62322a2264712257a Mon Sep 17 00:00:00 2001 From: 546657701 <546657701@qq.com> Date: Tue, 12 May 2026 19:02:10 +0800 Subject: [PATCH] fix: openaiResponsesToAnthropic usage fallback for OpenAI-compatible APIs Non-streaming adapter only read `output_tokens`/`input_tokens` (Anthropic-style), but many OpenAI-compatible providers (e.g. Jiutian MoMA) return standard `completion_tokens`/`prompt_tokens` fields. This caused a null reference error when reading `output_tokens` from such responses. The streaming adapter already handles `completion_tokens` correctly, and the Azure adapter uses the same fallback pattern applied here. Fixes #383 Co-Authored-By: Claude Opus 4.7 --- src/server/proxy/transform/openaiResponsesToAnthropic.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/server/proxy/transform/openaiResponsesToAnthropic.ts b/src/server/proxy/transform/openaiResponsesToAnthropic.ts index c75c5558..d924abd4 100644 --- a/src/server/proxy/transform/openaiResponsesToAnthropic.ts +++ b/src/server/proxy/transform/openaiResponsesToAnthropic.ts @@ -38,8 +38,8 @@ export function openaiResponsesToAnthropic(response: OpenAIResponsesResponse, mo stop_reason: mapStatus(response.status, hasToolUse), stop_sequence: null, usage: { - input_tokens: response.usage?.input_tokens || 0, - output_tokens: response.usage?.output_tokens || 0, + input_tokens: response.usage?.input_tokens ?? response.usage?.prompt_tokens ?? 0, + output_tokens: response.usage?.output_tokens ?? response.usage?.completion_tokens ?? 0, }, } }