From 5a87031c0eafaec64d92ea5e6c00ca22d9ee01b5 Mon Sep 17 00:00:00 2001 From: Yang Beining <35399433+Suchun-sv@users.noreply.github.com> Date: Mon, 26 Aug 2024 12:28:43 +0200 Subject: [PATCH] Fix error due to incompatible top_p range (#1250) --- plugins/wasm-go/extensions/ai-proxy/provider/qwen.go | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/plugins/wasm-go/extensions/ai-proxy/provider/qwen.go b/plugins/wasm-go/extensions/ai-proxy/provider/qwen.go index 7ea086e04..ffa5be2e3 100644 --- a/plugins/wasm-go/extensions/ai-proxy/provider/qwen.go +++ b/plugins/wasm-go/extensions/ai-proxy/provider/qwen.go @@ -101,6 +101,18 @@ func (m *qwenProvider) OnRequestBody(ctx wrapper.HttpContext, apiName ApiName, b log.Errorf("Replace model error: %v", err) return types.ActionContinue, err } + + // TODO: Temporary fix to clamp top_p value to the range [qwenTopPMin, qwenTopPMax]. + if topPValue := gjson.GetBytes(body, "top_p"); topPValue.Exists() { + rawTopP := topPValue.Float() + scaledTopP := math.Max(qwenTopPMin, math.Min(rawTopP, qwenTopPMax)) + newBody, err = sjson.SetBytes(newBody, "top_p", scaledTopP) + if err != nil { + log.Errorf("Failed to replace top_p: %v", err) + return types.ActionContinue, err + } + } + err = proxywasm.ReplaceHttpRequestBody(newBody) if err != nil { log.Errorf("Replace request body error: %v", err)