From bb3ac598341cb468cd8dc3d6055ee74d23704902 Mon Sep 17 00:00:00 2001 From: Liang Deng Date: Thu, 11 Dec 2025 14:15:38 +0800 Subject: [PATCH] feat(ai-proxy): support handle array content in chatToolMessage2BedrockMessage (#3200) Signed-off-by: Liang Deng Co-authored-by: rinfx --- .../extensions/ai-proxy/provider/bedrock.go | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/plugins/wasm-go/extensions/ai-proxy/provider/bedrock.go b/plugins/wasm-go/extensions/ai-proxy/provider/bedrock.go index 034c78ea9..6dbf4f94f 100644 --- a/plugins/wasm-go/extensions/ai-proxy/provider/bedrock.go +++ b/plugins/wasm-go/extensions/ai-proxy/provider/bedrock.go @@ -1059,17 +1059,19 @@ func chatToolMessage2BedrockMessage(chatMessage chatMessage) bedrockMessage { Text: text, }, } - openaiContent := chatMessage.ParseContent() - for _, part := range openaiContent { - var content bedrockMessageContent - if part.Type == contentTypeText { - content.Text = part.Text - } else { - continue + } else if contentList, ok := chatMessage.Content.([]any); ok { + for _, contentItem := range contentList { + contentMap, ok := contentItem.(map[string]any) + if ok && contentMap["type"] == contentTypeText { + if text, ok := contentMap[contentTypeText].(string); ok { + toolResultContent.Content = append(toolResultContent.Content, toolResultContentBlock{ + Text: text, + }) + } } } } else { - log.Warnf("only text content is supported, current content is %v", chatMessage.Content) + log.Warnf("the content type is not supported, current content is %v", chatMessage.Content) } return bedrockMessage{ Role: roleUser,