From 062d8c676bf7d7333bbbba542edb902c5325e05e Mon Sep 17 00:00:00 2001 From: junleea <354425203@qq.com> Date: Tue, 13 May 2025 12:05:53 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=9B=BD=E5=A4=96=E6=9C=8D?= =?UTF-8?q?=E5=8A=A1=E5=99=A8=E4=B8=AD=E8=BD=ACai=E8=AF=B7=E6=B1=82?= =?UTF-8?q?=E6=95=B0=E6=8D=AE,=E6=B7=BB=E5=8A=A0gemini?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- handler/im.go | 2 ++ service/generalModel/openai.go | 41 ++++++++++++++++++++++++++++++++++ service/imService.go | 2 +- 3 files changed, 44 insertions(+), 1 deletion(-) diff --git a/handler/im.go b/handler/im.go index 4be2917..867357b 100644 --- a/handler/im.go +++ b/handler/im.go @@ -444,6 +444,8 @@ func SendMessageForeignAI(c *gin.Context) { if user.Role == "admin" { //解析请求参数 if err := c.ShouldBind(&req); err == nil { + reqBytes, _ := json.Marshal(req) + log.Println("SendMessageForeignAI req:", string(reqBytes)) //校验参数 if req.ModelParam.Model == "" || req.ModelParam.Url == "" || req.ModelParam.APIKey == "" { resp.Code = proto.ParameterError diff --git a/service/generalModel/openai.go b/service/generalModel/openai.go index bf4c7ad..5ada9d8 100644 --- a/service/generalModel/openai.go +++ b/service/generalModel/openai.go @@ -306,3 +306,44 @@ func OpenAIForeignAIResponseToGeneralMassageAndSendMsgQueue(data *proto.ReceiveM worker.SetRedisWithExpire(data.IMParamContext.Channel+"_stream_msg", answer, time.Second*30) } } + +// 将任务发送到国外服务器 +func SendOpenAIForeignAI(modelParam proto.ModelParam, imCtx *proto.IMParamContext, platform string) { + //post请求 + url := "https://vis.ljsea.top/im/send_message_foreign_ai?super_id=1" + var req proto.SendMessageForeignAIRRequest + req.IMParamContext = *imCtx + req.ModelParam = modelParam + req.PlatForm = platform + reqBytes, err := json.Marshal(req) + if err != nil { + log.Println("send openai foreign ai request error:", err) + return + } + superTokens := worker.GetRedisSetMembers("super_permission_tokens") + if len(superTokens) == 0 { + log.Println("send openai foreign ai super permission tokens is empty") + return + } + //设置请求头 + headers := map[string]string{ + "token": superTokens[0], + "super_id": "1", + } + + err, respBytes := worker.DoPostRequestJSON(url, reqBytes, headers) + if err != nil { + log.Println("send openai foreign ai request error:", err) + return + } + var resp proto.GenerateResp + err = json.Unmarshal(respBytes, &resp) + if err != nil { + log.Println("send openai foreign ai response error:", err) + return + } + if resp.Code != proto.SuccessCode { + log.Println("send openai foreign ai response error:", resp.Message) + return + } +} diff --git a/service/imService.go b/service/imService.go index b894c0e..450d333 100644 --- a/service/imService.go +++ b/service/imService.go @@ -175,7 +175,7 @@ func WSReceiveMessageServiceV2(modelParam proto.ModelParam, ctx *proto.IMParamCo case proto.ModelTypeHunyuan: generalModel.OpenAI(modelParam, ctx, ctx.ModelType) case proto.ModelTypeGemini: - generalModel.OpenAIForeignAI(modelParam, ctx, ctx.ModelType) + generalModel.SendOpenAIForeignAI(modelParam, ctx, ctx.ModelType) default: resErr, resID = errors.New("model type not exist:"+ctx.ModelType), 0 }