Add initial ChunkToolCall handling in Anthropic provider
- Implement functionality to send an initial ChunkToolCall with the event's ID and function name, aligning with OpenAI's format for tool name resolution. - Enhance message tracking by incrementing the chunk count after sending the tool call data, improving the overall message handling process in the streamWithRetry function.
This commit is contained in:
parent
71eab0689e
commit
a8fc21d070
1 changed files with 17 additions and 0 deletions
|
|
@ -362,6 +362,23 @@ func (p *Provider) streamWithRetry(ctx *context.Context, messages []context.Mess
|
||||||
Index: event.Index,
|
Index: event.Index,
|
||||||
}
|
}
|
||||||
startToolCallMessage(msgTracker, toolCallInfo, handler)
|
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,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
handler(message.ChunkToolCall, toolCallData)
|
||||||
|
incrementChunk(msgTracker)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue