From eb8f4a273c21f61337495e85aac2b512506cbe32 Mon Sep 17 00:00:00 2001 From: xkm Date: Sat, 21 Mar 2026 16:16:05 +0800 Subject: [PATCH] fix: when reasoningEffort = "", no "reasoning" field --- model.go | 12 ++++++------ openai-response.go | 5 ++++- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/model.go b/model.go index 99fe773..7a6578c 100644 --- a/model.go +++ b/model.go @@ -14,16 +14,16 @@ type OpenaiChatCompletionReq struct { } type OpenaiResponseReasoning struct { - Effort string `json:"effort"` + Effort string `json:"effort,omitempty"` Summary string `json:"summary,omitempty"` // auto, concise, detailed } type OpenaiChatResponseReq struct { - Model string `json:"model"` - Input []OpenaiChatMessage `json:"input"` - Temperature *float64 `json:"temperature,omitempty"` - Reasoning OpenaiResponseReasoning `json:"reasoning,omitempty"` - Stream bool `json:"stream"` + Model string `json:"model"` + Input []OpenaiChatMessage `json:"input"` + Temperature *float64 `json:"temperature,omitempty"` + Reasoning *OpenaiResponseReasoning `json:"reasoning,omitempty"` + Stream bool `json:"stream"` } type OpenaiResponseStreamEvent struct { diff --git a/openai-response.go b/openai-response.go index 4372229..256429c 100644 --- a/openai-response.go +++ b/openai-response.go @@ -32,10 +32,13 @@ func OpenaiStreamChatResponses( Model: model, Input: msgs, Temperature: temperature, - Reasoning: OpenaiResponseReasoning{Effort: reasoningEffort}, Stream: true, } + if reasoningEffort != "" { + body.Reasoning = &OpenaiResponseReasoning{Effort: reasoningEffort} + } + payload, err := json.Marshal(body) if err != nil { return nil, err