添加国外服务器中转ai请求数据,添加gemini

This commit is contained in:
junleea 2025-05-13 12:42:54 +08:00
parent 062d8c676b
commit 4a7c7efe19
3 changed files with 19 additions and 11 deletions

View File

@ -452,7 +452,7 @@ func SendMessageForeignAI(c *gin.Context) {
resp.Message = "模型必要参数不能为空" resp.Message = "模型必要参数不能为空"
} else { } else {
//处理 //处理
generalModel.OpenAIForeignAI(req.ModelParam, &req.IMParamContext, req.PlatForm) generalModel.OpenAIForeignAI(req.ModelParam, &req.IMParamContext, req.PlatForm, req.ChatCompletionMessageParamUnion)
//返回结果 //返回结果
resp.Code = proto.SuccessCode resp.Code = proto.SuccessCode
resp.Message = "success" resp.Message = "success"

View File

@ -120,9 +120,10 @@ type UserFileMessage struct {
} }
type SendMessageForeignAIRRequest struct { type SendMessageForeignAIRRequest struct {
ModelParam ModelParam `json:"model_param" form:"model_param"` //模型参数 ModelParam ModelParam `json:"model_param" form:"model_param"` //模型参数
IMParamContext IMParamContext `json:"im_param_context" form:"im_param_context"` //上下文参数 IMParamContext IMParamContext `json:"im_param_context" form:"im_param_context"` //上下文参数
PlatForm string `json:"platform" form:"platform"` //平台名称 ChatCompletionMessageParamUnion []openai.ChatCompletionMessageParamUnion `json:"chat_completion_message_param_union" form:"chat_completion_message_param_union"` //消息内容
PlatForm string `json:"platform" form:"platform"` //平台名称
} }
type ReceiveMessageForeignAIRRequest struct { type ReceiveMessageForeignAIRRequest struct {

View File

@ -188,7 +188,7 @@ func SingleTurnConversationText(prompt string, param proto.ModelParam) (string,
} }
// 只进行与模型信息交互不进行保存,返回消息给国内服务器 // 只进行与模型信息交互不进行保存,返回消息给国内服务器
func OpenAIForeignAI(modelParam proto.ModelParam, imCtx *proto.IMParamContext, platform string) { func OpenAIForeignAI(modelParam proto.ModelParam, imCtx *proto.IMParamContext, platform string, messages []openai.ChatCompletionMessageParamUnion) {
apiKey := modelParam.APIKey apiKey := modelParam.APIKey
if apiKey == "" { if apiKey == "" {
log.Printf("openai_%s apiKey is empty\n", platform) log.Printf("openai_%s apiKey is empty\n", platform)
@ -198,12 +198,12 @@ func OpenAIForeignAI(modelParam proto.ModelParam, imCtx *proto.IMParamContext, p
option.WithAPIKey(apiKey), option.WithAPIKey(apiKey),
option.WithBaseURL(modelParam.Url), option.WithBaseURL(modelParam.Url),
) )
var messages []openai.ChatCompletionMessageParamUnion //var messages []openai.ChatCompletionMessageParamUnion
err := GetOpenAIHistoryMessages(imCtx.SessionID, modelParam.System, &messages, imCtx.UserID) //err := GetOpenAIHistoryMessages(imCtx.SessionID, modelParam.System, &messages, imCtx.UserID)
if err != nil { //if err != nil {
log.Println("GetOpenAIHistoryMessages error:", err) // log.Println("GetOpenAIHistoryMessages error:", err)
return // return
} //}
if proto.Config.LOG_OUTPUT { if proto.Config.LOG_OUTPUT {
messagesBytes, _ := json.Marshal(messages) messagesBytes, _ := json.Marshal(messages)
log.Println("openai messages:", string(messagesBytes)) log.Println("openai messages:", string(messagesBytes))
@ -315,6 +315,13 @@ func SendOpenAIForeignAI(modelParam proto.ModelParam, imCtx *proto.IMParamContex
req.IMParamContext = *imCtx req.IMParamContext = *imCtx
req.ModelParam = modelParam req.ModelParam = modelParam
req.PlatForm = platform req.PlatForm = platform
var messages []openai.ChatCompletionMessageParamUnion
err1 := GetOpenAIHistoryMessages(imCtx.SessionID, modelParam.System, &messages, imCtx.UserID)
if err1 != nil {
log.Println("GetOpenAIHistoryMessages error:", err1)
return
}
req.ChatCompletionMessageParamUnion = messages
reqBytes, err := json.Marshal(req) reqBytes, err := json.Marshal(req)
if err != nil { if err != nil {
log.Println("send openai foreign ai request error:", err) log.Println("send openai foreign ai request error:", err)