Commit 10528988 by 1808837298@qq.com

feat: 上游渠道为OpenAI渠道类型时,透传请求 (close #532)

parent 1d8271e0
...@@ -76,6 +76,7 @@ func TextHelper(c *gin.Context) *dto.OpenAIErrorWithStatusCode { ...@@ -76,6 +76,7 @@ func TextHelper(c *gin.Context) *dto.OpenAIErrorWithStatusCode {
} }
// map model name // map model name
isModelMapped := false
modelMapping := c.GetString("model_mapping") modelMapping := c.GetString("model_mapping")
//isModelMapped := false //isModelMapped := false
if modelMapping != "" && modelMapping != "{}" { if modelMapping != "" && modelMapping != "{}" {
...@@ -85,6 +86,7 @@ func TextHelper(c *gin.Context) *dto.OpenAIErrorWithStatusCode { ...@@ -85,6 +86,7 @@ func TextHelper(c *gin.Context) *dto.OpenAIErrorWithStatusCode {
return service.OpenAIErrorWrapperLocal(err, "unmarshal_model_mapping_failed", http.StatusInternalServerError) return service.OpenAIErrorWrapperLocal(err, "unmarshal_model_mapping_failed", http.StatusInternalServerError)
} }
if modelMap[textRequest.Model] != "" { if modelMap[textRequest.Model] != "" {
isModelMapped = true
textRequest.Model = modelMap[textRequest.Model] textRequest.Model = modelMap[textRequest.Model]
// set upstream model name // set upstream model name
//isModelMapped = true //isModelMapped = true
...@@ -159,15 +161,23 @@ func TextHelper(c *gin.Context) *dto.OpenAIErrorWithStatusCode { ...@@ -159,15 +161,23 @@ func TextHelper(c *gin.Context) *dto.OpenAIErrorWithStatusCode {
adaptor.Init(relayInfo) adaptor.Init(relayInfo)
var requestBody io.Reader var requestBody io.Reader
convertedRequest, err := adaptor.ConvertRequest(c, relayInfo, textRequest) if relayInfo.ChannelType == common.ChannelTypeOpenAI && !isModelMapped {
if err != nil { body, err := common.GetRequestBody(c)
return service.OpenAIErrorWrapperLocal(err, "convert_request_failed", http.StatusInternalServerError) if err != nil {
} return service.OpenAIErrorWrapperLocal(err, "get_request_body_failed", http.StatusInternalServerError)
jsonData, err := json.Marshal(convertedRequest) }
if err != nil { requestBody = bytes.NewBuffer(body)
return service.OpenAIErrorWrapperLocal(err, "json_marshal_failed", http.StatusInternalServerError) } else {
convertedRequest, err := adaptor.ConvertRequest(c, relayInfo, textRequest)
if err != nil {
return service.OpenAIErrorWrapperLocal(err, "convert_request_failed", http.StatusInternalServerError)
}
jsonData, err := json.Marshal(convertedRequest)
if err != nil {
return service.OpenAIErrorWrapperLocal(err, "json_marshal_failed", http.StatusInternalServerError)
}
requestBody = bytes.NewBuffer(jsonData)
} }
requestBody = bytes.NewBuffer(jsonData)
statusCodeMappingStr := c.GetString("status_code_mapping") statusCodeMappingStr := c.GetString("status_code_mapping")
resp, err := adaptor.DoRequest(c, relayInfo, requestBody) resp, err := adaptor.DoRequest(c, relayInfo, requestBody)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment