From 9a0cf9b7629bff8b896371cff5af02027d7eac63 Mon Sep 17 00:00:00 2001 From: HaoJie Liu Date: Mon, 30 Jun 2025 10:35:14 +0800 Subject: [PATCH] fix(ai-proxy): add system message handling for Bedrock requests (#2516) --- .../wasm-go/extensions/ai-proxy/provider/bedrock.go | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/plugins/wasm-go/extensions/ai-proxy/provider/bedrock.go b/plugins/wasm-go/extensions/ai-proxy/provider/bedrock.go index 637e3b58a..906f7f3a9 100644 --- a/plugins/wasm-go/extensions/ai-proxy/provider/bedrock.go +++ b/plugins/wasm-go/extensions/ai-proxy/provider/bedrock.go @@ -723,10 +723,18 @@ func (b *bedrockProvider) onChatCompletionRequestBody(ctx wrapper.HttpContext, b func (b *bedrockProvider) buildBedrockTextGenerationRequest(origRequest *chatCompletionRequest, headers http.Header) ([]byte, error) { messages := make([]bedrockMessage, 0, len(origRequest.Messages)) - for i := range origRequest.Messages { - messages = append(messages, chatMessage2BedrockMessage(origRequest.Messages[i])) + systemMessages := make([]systemContentBlock, 0) + + for _, msg := range origRequest.Messages { + if msg.Role == roleSystem { + systemMessages = append(systemMessages, systemContentBlock{Text: msg.StringContent()}) + } else { + messages = append(messages, chatMessage2BedrockMessage(msg)) + } } + request := &bedrockTextGenRequest{ + System: systemMessages, Messages: messages, InferenceConfig: bedrockInferenceConfig{ MaxTokens: origRequest.MaxTokens,