From 93b6f1066b7cf4fdac9491b3f952b31b6d1c8f5e Mon Sep 17 00:00:00 2001 From: RedwindA Date: Mon, 14 Jul 2025 16:59:48 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=8E=A8=20feat(channel-test):=20Enhance=20?= =?UTF-8?q?request=20conversion=20for=20Embedding=20models=20and=20update?= =?UTF-8?q?=20input=20type?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- controller/channel-test.go | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/controller/channel-test.go b/controller/channel-test.go index 203c91a2..1c56db5f 100644 --- a/controller/channel-test.go +++ b/controller/channel-test.go @@ -17,6 +17,7 @@ import ( "one-api/model" "one-api/relay" relaycommon "one-api/relay/common" + relayconstant "one-api/relay/constant" "one-api/relay/helper" "one-api/service" "one-api/types" @@ -165,7 +166,21 @@ func testChannel(channel *model.Channel, testModel string) testResult { adaptor.Init(info) - convertedRequest, err := adaptor.ConvertOpenAIRequest(c, info, request) + var convertedRequest any + // 根据 RelayMode 选择正确的转换函数 + if info.RelayMode == relayconstant.RelayModeEmbeddings { + // 创建一个 EmbeddingRequest + embeddingRequest := dto.EmbeddingRequest{ + Input: request.Input, + Model: request.Model, + } + // 调用专门用于 Embedding 的转换函数 + convertedRequest, err = adaptor.ConvertEmbeddingRequest(c, info, embeddingRequest) + } else { + // 对其他所有请求类型(如 Chat),保持原有逻辑 + convertedRequest, err = adaptor.ConvertOpenAIRequest(c, info, request) + } + if err != nil { return testResult{ context: c, @@ -278,7 +293,7 @@ func buildTestRequest(model string) *dto.GeneralOpenAIRequest { strings.Contains(model, "bge-") { testRequest.Model = model // Embedding 请求 - testRequest.Input = []string{"hello world"} + testRequest.Input = []any{"hello world"} // 修改为any,因为dto/openai_request.go 的ParseInput方法无法处理[]string类型 return testRequest } // 并非Embedding 模型