From e08b1b079c96c758ccbea42dcef0625dd862fda3 Mon Sep 17 00:00:00 2001 From: npc0-hue Date: Fri, 24 Apr 2026 16:38:41 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=9E=84=E5=BB=BA=20Bedrock=20URL?= =?UTF-8?q?=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- admin/server/service/gaia/bedrock_extend.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/admin/server/service/gaia/bedrock_extend.go b/admin/server/service/gaia/bedrock_extend.go index 45fec68ff..f237be94c 100644 --- a/admin/server/service/gaia/bedrock_extend.go +++ b/admin/server/service/gaia/bedrock_extend.go @@ -84,12 +84,14 @@ func (s *ModelProviderService) proxyBedrockRequest( } // 3) 构建 Bedrock URL + // modelID 中可能含有 `:` 等需要 URL 编码的字符(如 anthropic.claude-3-5-sonnet-20241022-v2:0), + // 使用 url.PathEscape 保证 URL 合法。 host := fmt.Sprintf("bedrock-runtime.%s.amazonaws.com", region) op := "invoke" if streaming { op = "invoke-with-response-stream" } - requestURL := fmt.Sprintf("https://%s/model/%s/%s", host, modelID, op) + requestURL := fmt.Sprintf("https://%s/model/%s/%s", host, url.PathEscape(modelID), op) httpReq, err := http.NewRequest(method, requestURL, bytes.NewReader(rewritten)) if err != nil {