diff --git a/relay/adaptor/ali/image.go b/relay/adaptor/ali/image.go index 8261803d..2b34d17e 100644 --- a/relay/adaptor/ali/image.go +++ b/relay/adaptor/ali/image.go @@ -6,6 +6,7 @@ import ( "errors" "fmt" "github.com/gin-gonic/gin" + "github.com/songquanpeng/one-api/common/ctxkey" "github.com/songquanpeng/one-api/common/helper" "github.com/songquanpeng/one-api/common/logger" "github.com/songquanpeng/one-api/relay/adaptor/openai" @@ -19,7 +20,11 @@ import ( func ImageHandler(c *gin.Context, resp *http.Response) (*model.ErrorWithStatusCode, *model.Usage) { apiKey := c.Request.Header.Get("Authorization") apiKey = strings.TrimPrefix(apiKey, "Bearer ") - responseFormat := c.GetString("response_format") + + var responseFormat string + if req, exists := c.Get(ctxkey.ConvertedRequest); exists { + responseFormat = req.(*ImageRequest).ResponseFormat + } var aliTaskResponse TaskResponse responseBody, err := io.ReadAll(resp.Body) diff --git a/relay/adaptor/ali/main.go b/relay/adaptor/ali/main.go index 0462c26b..bf8965e6 100644 --- a/relay/adaptor/ali/main.go +++ b/relay/adaptor/ali/main.go @@ -69,7 +69,7 @@ func ConvertEmbeddingRequest(request model.GeneralOpenAIRequest) *EmbeddingReque func ConvertImageRequest(request model.ImageRequest) *ImageRequest { var imageRequest ImageRequest imageRequest.Input.Prompt = request.Prompt - imageRequest.Model = request.Model + imageRequest.Model = strings.TrimPrefix(request.Model, "ali-") imageRequest.Parameters.Size = strings.Replace(request.Size, "x", "*", -1) imageRequest.Parameters.N = request.N imageRequest.ResponseFormat = request.ResponseFormat diff --git a/relay/controller/image.go b/relay/controller/image.go index 691c7c0e..c6430a8d 100644 --- a/relay/controller/image.go +++ b/relay/controller/image.go @@ -91,6 +91,7 @@ func RelayImageHelper(c *gin.Context, relayMode int) *relaymodel.ErrorWithStatus if err != nil { return openai.ErrorWrapper(err, "marshal_image_request_failed", http.StatusInternalServerError) } + c.Set(ctxkey.ConvertedRequest, finalRequest) requestBody = bytes.NewBuffer(jsonStr) }