mirror of
https://github.com/CherryHQ/cherry-studio.git
synced 2025-12-27 04:31:27 +08:00
hotfix: enhance reasoning summary handling in OpenAI response processing (#6037)
This commit is contained in:
parent
3b68a311cc
commit
3dc0a583ec
@ -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) {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user