fix: preserve empty reasoning_content for DeepSeek V4 thinking mode (#24146)

Co-authored-by: Simon Klee <hello@simonklee.dk>
This commit is contained in:
黑墨水鱼
2026-04-24 08:42:57 -04:00
committed by GitHub
co-authored by Simon Klee
parent a882e958b3
commit 923af96d26
+10 -15
View File
@@ -185,24 +185,19 @@ function normalizeMessages(
// Filter out reasoning parts from content // Filter out reasoning parts from content
const filteredContent = msg.content.filter((part: any) => part.type !== "reasoning") const filteredContent = msg.content.filter((part: any) => part.type !== "reasoning")
// Include reasoning_content | reasoning_details directly on the message for all assistant messages // Include reasoning_content | reasoning_details directly on the message for all assistant messages.
if (reasoningText) { // Always set the field even when empty — some providers (e.g. DeepSeek) may return empty
return { // reasoning_content which still needs to be sent back in subsequent requests.
...msg,
content: filteredContent,
providerOptions: {
...msg.providerOptions,
openaiCompatible: {
...msg.providerOptions?.openaiCompatible,
[field]: reasoningText,
},
},
}
}
return { return {
...msg, ...msg,
content: filteredContent, content: filteredContent,
providerOptions: {
...msg.providerOptions,
openaiCompatible: {
...msg.providerOptions?.openaiCompatible,
[field]: reasoningText,
},
},
} }
} }