Refactor ChunkToolCall handling in Anthropic provider

- Clean up the code for sending the initial ChunkToolCall, improving readability and maintaining alignment with OpenAI's format for tool name resolution.
- Ensure that the chunk count is incremented after sending the tool call data, enhancing the message handling process in the streamWithRetry function.
This commit is contained in:
Max 2026-02-15 21:31:16 +08:00
parent a8fc21d070
commit 8a3dd148c7

View file

@ -363,22 +363,22 @@ func (p *Provider) streamWithRetry(ctx *context.Context, messages []context.Mess
}
startToolCallMessage(msgTracker, toolCallInfo, handler)
// Send initial ChunkToolCall with id and function name
// to match OpenAI format so CUI can resolve tool name from stored chunks
if handler != nil {
toolCallData, _ := jsoniter.Marshal([]map[string]interface{}{
{
"index": event.Index,
"id": event.ContentBlock.ID,
"type": "function",
"function": map[string]interface{}{
"name": event.ContentBlock.Name,
// Send initial ChunkToolCall with id and function name
// to match OpenAI format so CUI can resolve tool name from stored chunks
if handler != nil {
toolCallData, _ := jsoniter.Marshal([]map[string]interface{}{
{
"index": event.Index,
"id": event.ContentBlock.ID,
"type": "function",
"function": map[string]interface{}{
"name": event.ContentBlock.Name,
},
},
},
})
handler(message.ChunkToolCall, toolCallData)
incrementChunk(msgTracker)
}
})
handler(message.ChunkToolCall, toolCallData)
incrementChunk(msgTracker)
}
}
}