Browse Source

fix: ali embedding support base64

feitianbubu 5 months ago
parent
commit
5b869376ab
2 changed files with 14 additions and 1 deletions
  1. 13 0
      dto/openai_response.go
  2. 1 1
      relay/channel/ali/text.go

+ 13 - 0
dto/openai_response.go

@@ -48,6 +48,19 @@ type OpenAIEmbeddingResponse struct {
 	Usage  `json:"usage"`
 }
 
+type FlexibleEmbeddingResponseItem struct {
+	Object    string `json:"object"`
+	Index     int    `json:"index"`
+	Embedding any    `json:"embedding"`
+}
+
+type FlexibleEmbeddingResponse struct {
+	Object string                          `json:"object"`
+	Data   []FlexibleEmbeddingResponseItem `json:"data"`
+	Model  string                          `json:"model"`
+	Usage  `json:"usage"`
+}
+
 type ChatCompletionsStreamResponseChoice struct {
 	Delta        ChatCompletionsStreamResponseChoiceDelta `json:"delta,omitempty"`
 	Logprobs     *any                                     `json:"logprobs"`

+ 1 - 1
relay/channel/ali/text.go

@@ -40,7 +40,7 @@ func embeddingRequestOpenAI2Ali(request dto.EmbeddingRequest) *AliEmbeddingReque
 }
 
 func aliEmbeddingHandler(c *gin.Context, resp *http.Response) (*types.NewAPIError, *dto.Usage) {
-	var fullTextResponse dto.OpenAIEmbeddingResponse
+	var fullTextResponse dto.FlexibleEmbeddingResponse
 	err := json.NewDecoder(resp.Body).Decode(&fullTextResponse)
 	if err != nil {
 		return types.NewError(err, types.ErrorCodeBadResponseBody), nil