[bugfix] add claude usage & bedrock tool_call index (#3095)

This commit is contained in:
rinfx
2025-11-10 10:03:01 +08:00
committed by GitHub
parent 36df9ba5e8
commit d4e6704f33
2 changed files with 14 additions and 7 deletions

View File

@@ -107,8 +107,9 @@ func (b *bedrockProvider) convertEventFromBedrockToOpenAI(ctx wrapper.HttpContex
chatChoice.Delta.Content = nil chatChoice.Delta.Content = nil
chatChoice.Delta.ToolCalls = []toolCall{ chatChoice.Delta.ToolCalls = []toolCall{
{ {
Id: bedrockEvent.Start.ToolUse.ToolUseID, Id: bedrockEvent.Start.ToolUse.ToolUseID,
Type: "function", Index: 0,
Type: "function",
Function: functionCall{ Function: functionCall{
Name: bedrockEvent.Start.ToolUse.Name, Name: bedrockEvent.Start.ToolUse.Name,
Arguments: "", Arguments: "",
@@ -137,7 +138,8 @@ func (b *bedrockProvider) convertEventFromBedrockToOpenAI(ctx wrapper.HttpContex
if bedrockEvent.Delta.ToolUse != nil { if bedrockEvent.Delta.ToolUse != nil {
chatChoice.Delta.ToolCalls = []toolCall{ chatChoice.Delta.ToolCalls = []toolCall{
{ {
Type: "function", Index: 0,
Type: "function",
Function: functionCall{ Function: functionCall{
Arguments: bedrockEvent.Delta.ToolUse.Input, Arguments: bedrockEvent.Delta.ToolUse.Input,
}, },

View File

@@ -440,12 +440,17 @@ func (c *ClaudeToOpenAIConverter) ConvertOpenAIStreamResponseToClaude(ctx wrappe
// buildClaudeStreamResponse builds Claude streaming responses from OpenAI streaming response // buildClaudeStreamResponse builds Claude streaming responses from OpenAI streaming response
func (c *ClaudeToOpenAIConverter) buildClaudeStreamResponse(ctx wrapper.HttpContext, openaiResponse *chatCompletionResponse) []*claudeTextGenStreamResponse { func (c *ClaudeToOpenAIConverter) buildClaudeStreamResponse(ctx wrapper.HttpContext, openaiResponse *chatCompletionResponse) []*claudeTextGenStreamResponse {
var choice chatCompletionChoice
if len(openaiResponse.Choices) == 0 { if len(openaiResponse.Choices) == 0 {
log.Debugf("[OpenAI->Claude] No choices in OpenAI response, skipping") choice = chatCompletionChoice{
return nil Index: 0,
Delta: &chatMessage{
Content: "",
},
}
} else {
choice = openaiResponse.Choices[0]
} }
choice := openaiResponse.Choices[0]
var responses []*claudeTextGenStreamResponse var responses []*claudeTextGenStreamResponse
// Log what we're processing // Log what we're processing