From 611d65eacccbd6118bd6d35184ec88b611296e5a Mon Sep 17 00:00:00 2001 From: TooYoungTooSimp <6648049+TooYoungTooSimp@users.noreply.github.com> Date: Wed, 1 Jul 2026 10:28:36 +0800 Subject: [PATCH] Improve reasoning content handling in response logic Enhance reasoning content retrieval by falling back to 'reasoning' if 'reasoning_content' is absent or empty. In some selfhosted openai-like server serving deepseek, the response.delta may contains reasoning rather than reasoning_content. So the client like codex does not recognize the thinking process. --- .../openai/responses/openai_openai-responses_response.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/internal/translator/openai/openai/responses/openai_openai-responses_response.go b/internal/translator/openai/openai/responses/openai_openai-responses_response.go index d471683af..6f9e2a5e0 100644 --- a/internal/translator/openai/openai/responses/openai_openai-responses_response.go +++ b/internal/translator/openai/openai/responses/openai_openai-responses_response.go @@ -398,7 +398,11 @@ func ConvertOpenAIChatCompletionsResponseToOpenAIResponses(ctx context.Context, } // reasoning_content (OpenAI reasoning incremental text) - if rc := delta.Get("reasoning_content"); rc.Exists() && rc.String() != "" { + rc := delta.Get("reasoning_content") + if !rc.Exists() || rc.String() == "" { + rc = delta.Get("reasoning") + } + if rc.Exists() && rc.String() != "" { // On first appearance, add reasoning item and part if st.ReasoningID == "" { st.ReasoningID = fmt.Sprintf("rs_%s_%d", st.ResponseID, idx)