hotfix: enhance reasoning summary handling in OpenAI response processing (#6037)

This commit is contained in:
SuYao 2025-05-19 17:07:35 +08:00 committed by GitHub
parent 3b68a311cc
commit 3dc0a583ec

View File

@ -524,6 +524,7 @@ export abstract class BaseOpenAIProvider extends BaseProvider {
return
}
let content = ''
let thinkContent = ''
const outputItems: OpenAI.Responses.ResponseOutputItem[] = []
@ -533,28 +534,39 @@ export abstract class BaseOpenAIProvider extends BaseProvider {
}
switch (chunk.type) {
case 'response.output_item.added':
if (time_first_token_millsec === 0) {
time_first_token_millsec = new Date().getTime()
}
if (chunk.item.type === 'function_call') {
outputItems.push(chunk.item)
}
break
case 'response.reasoning_summary_part.added':
if (time_first_token_millsec === 0) {
time_first_token_millsec = new Date().getTime()
}
break
case 'response.reasoning_summary_text.delta':
onChunk({
type: ChunkType.THINKING_DELTA,
text: chunk.delta,
thinking_millsec: new Date().getTime() - time_first_token_millsec
})
thinkContent += chunk.delta
break
case 'response.reasoning_summary_text.done':
onChunk({
type: ChunkType.THINKING_COMPLETE,
text: chunk.text,
thinking_millsec: new Date().getTime() - time_first_token_millsec
})
case 'response.output_item.done': {
if (thinkContent !== '' && chunk.item.type === 'reasoning') {
onChunk({
type: ChunkType.THINKING_COMPLETE,
text: thinkContent,
thinking_millsec: new Date().getTime() - time_first_token_millsec
})
}
break
}
case 'response.content_part.added': {
if (time_first_token_millsec === 0) {
time_first_token_millsec = new Date().getTime()
}
break
}
case 'response.output_text.delta': {
let delta = chunk.delta
if (isEnabledBuiltinWebSearch) {