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 }