Skip to content

Commit ec66480

Browse files
committed
feat: enhance reasoning handling in translation process
1 parent 65a3568 commit ec66480

File tree

1 file changed

+9
-4
lines changed

1 file changed

+9
-4
lines changed

src/routes/messages/stream-translation.ts

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -62,8 +62,11 @@ function handleFinish(
6262
index: state.contentBlockIndex,
6363
})
6464
state.contentBlockOpen = false
65+
state.contentBlockIndex++
6566
}
6667

68+
handleReasoningOpaque(choice.delta, events, state)
69+
6770
events.push(
6871
{
6972
type: "message_delta",
@@ -96,7 +99,11 @@ function handleToolCalls(
9699
events: Array<AnthropicStreamEventData>,
97100
) {
98101
if (delta.tool_calls && delta.tool_calls.length > 0) {
99-
closeThinkingBlockIfOpen(delta, state, events)
102+
closeThinkingBlockIfOpen(state, events)
103+
104+
if (!state.contentBlockOpen) {
105+
handleReasoningOpaque(delta, events, state)
106+
}
100107

101108
for (const toolCall of delta.tool_calls) {
102109
if (toolCall.id && toolCall.function?.name) {
@@ -156,7 +163,7 @@ function handleContent(
156163
events: Array<AnthropicStreamEventData>,
157164
) {
158165
if (delta.content && delta.content.length > 0) {
159-
closeThinkingBlockIfOpen(delta, state, events)
166+
closeThinkingBlockIfOpen(state, events)
160167

161168
if (isToolBlockOpen(state)) {
162169
// A tool block was open, so close it before starting a text block.
@@ -312,7 +319,6 @@ function handleThinkingText(
312319
}
313320

314321
function closeThinkingBlockIfOpen(
315-
delta: Delta,
316322
state: AnthropicStreamState,
317323
events: Array<AnthropicStreamEventData>,
318324
): void {
@@ -334,7 +340,6 @@ function closeThinkingBlockIfOpen(
334340
state.contentBlockIndex++
335341
state.thinkingBlockOpen = false
336342
}
337-
handleReasoningOpaque(delta, events, state)
338343
}
339344

340345
export function translateErrorToAnthropicErrorEvent(): AnthropicStreamEventData {

0 commit comments

Comments
 (0)