From d1ef53e89f9229fbe0e5fec1d4991e02f930fd77 Mon Sep 17 00:00:00 2001 From: liuchunk Date: Wed, 8 May 2024 20:19:27 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0gpts?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + middleware/distributor.go | 14 +++++++++++--- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 5a433f55..ef1790e9 100644 --- a/.gitignore +++ b/.gitignore @@ -9,4 +9,5 @@ logs data /web/node_modules /.history + cmd.md diff --git a/middleware/distributor.go b/middleware/distributor.go index d0fd7ba5..f43f1e02 100644 --- a/middleware/distributor.go +++ b/middleware/distributor.go @@ -2,13 +2,15 @@ package middleware import ( "fmt" + "net/http" + "strconv" + "strings" + "github.com/gin-gonic/gin" "github.com/songquanpeng/one-api/common/ctxkey" "github.com/songquanpeng/one-api/common/logger" "github.com/songquanpeng/one-api/model" "github.com/songquanpeng/one-api/relay/channeltype" - "net/http" - "strconv" ) type ModelRequest struct { @@ -39,9 +41,15 @@ func Distribute() func(c *gin.Context) { return } } else { + requestModel = c.GetString(ctxkey.RequestModel) var err error - channel, err = model.CacheGetRandomSatisfiedChannel(userGroup, requestModel, false) + if strings.HasPrefix(requestModel, "gpt-4-gizmo") { + channel, err = model.CacheGetRandomSatisfiedChannel(userGroup, "gpt-4-gizmo", false) + } else { + channel, err = model.CacheGetRandomSatisfiedChannel(userGroup, requestModel, false) + } + if err != nil { message := fmt.Sprintf("当前分组 %s 下对于模型 %s 无可用渠道", userGroup, requestModel) if channel != nil {