From 16149260c7acc4c55c1e3f6bdbe226ba4fcea6e9 Mon Sep 17 00:00:00 2001 From: easyai Date: Wed, 22 Jul 2026 03:56:00 +0800 Subject: [PATCH] =?UTF-8?q?fix(universal):=20=E6=98=A0=E5=B0=84=E8=84=9A?= =?UTF-8?q?=E6=9C=AC=E4=B8=8A=E6=B8=B8=E6=A8=A1=E5=9E=8B=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 让 server-main 参数预处理兼容上下文使用平台绑定的真实模型名,避免把用户侧别名提交给上游。 --- apps/api/internal/clients/universal.go | 8 ++++++-- apps/api/internal/clients/universal_test.go | 4 ++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/apps/api/internal/clients/universal.go b/apps/api/internal/clients/universal.go index 976a20e..4d1b4da 100644 --- a/apps/api/internal/clients/universal.go +++ b/apps/api/internal/clients/universal.go @@ -242,9 +242,13 @@ func universalScriptContext(request Request, modelType string, payload map[strin return selectedBase + "/" + strings.TrimLeft(path, "/") } context["creatRequestURL"] = context["createRequestURL"] - context["processedParams"] = cloneBody(request.Body) + processedParams := cloneBody(request.Body) + processedParams["model"] = upstreamModelName(request.Candidate) + context["processedParams"] = processedParams context["preProcessParams"] = func(params map[string]any, _ ...string) map[string]any { - return cloneMapAny(params) + processed := cloneMapAny(params) + processed["model"] = upstreamModelName(request.Candidate) + return processed } context["resolveGetTaskURL"] = func(taskID string) string { return resolveUniversalTaskURL(request.Candidate.PlatformConfig, taskID) diff --git a/apps/api/internal/clients/universal_test.go b/apps/api/internal/clients/universal_test.go index f08d084..42579cf 100644 --- a/apps/api/internal/clients/universal_test.go +++ b/apps/api/internal/clients/universal_test.go @@ -102,7 +102,7 @@ func TestUniversalClientSupportsServerMainScriptContextAndNestedResult(t *testin "customGetParamsScript": map[string]any{ "image_generate": `async function getParams(params, context) { const processed = await context.preProcessParams(params, context.type); - return { prompt: processed.prompt + "-" + context.processedParams.prompt }; + return { prompt: processed.prompt + "-" + processed.model + "-" + context.processedParams.model }; }`, }, "customSubmitScript": map[string]any{ @@ -128,7 +128,7 @@ func TestUniversalClientSupportsServerMainScriptContextAndNestedResult(t *testin t.Fatalf("unexpected nested result: %#v", response.Result) } image, ok := data[0].(map[string]any) - if !ok || image["url"] != "https://cdn.example/hello-hello.png" { + if !ok || image["url"] != "https://cdn.example/hello-provider-model-provider-model.png" { t.Fatalf("unexpected image result: %#v", response.Result) } }