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,