Parcourir la source

Merge pull request #555 from utopeadia/main

Continue fixing Ollama embedding return issue
Calcium-Ion il y a 1 an
Parent
commit
be652fa3c2
2 fichiers modifiés avec 11 ajouts et 2 suppressions
  1. 1 1
      relay/channel/ollama/dto.go
  2. 10 1
      relay/channel/ollama/relay-ollama.go

+ 1 - 1
relay/channel/ollama/dto.go

@@ -37,5 +37,5 @@ type OllamaEmbeddingRequest struct {
 type OllamaEmbeddingResponse struct {
 	Error     string    `json:"error,omitempty"`
 	Model     string    `json:"model"`
-	Embedding []float64 `json:"embeddings,omitempty"`
+	Embedding [][]float64 `json:"embeddings,omitempty"`
 }

+ 10 - 1
relay/channel/ollama/relay-ollama.go

@@ -73,9 +73,10 @@ func ollamaEmbeddingHandler(c *gin.Context, resp *http.Response, promptTokens in
 	if ollamaEmbeddingResponse.Error != "" {
 		return service.OpenAIErrorWrapper(err, "ollama_error", resp.StatusCode), nil
 	}
+	flattenedEmbeddings := flattenEmbeddings(ollamaEmbeddingResponse.Embedding)
 	data := make([]dto.OpenAIEmbeddingResponseItem, 0, 1)
 	data = append(data, dto.OpenAIEmbeddingResponseItem{
-		Embedding: ollamaEmbeddingResponse.Embedding,
+		Embedding: flattenedEmbeddings,
 		Object:    "embedding",
 	})
 	usage := &dto.Usage{
@@ -120,3 +121,11 @@ func ollamaEmbeddingHandler(c *gin.Context, resp *http.Response, promptTokens in
 	}
 	return nil, usage
 }
+
+func flattenEmbeddings(embeddings [][]float64) []float64 {
+flattened := []float64{}
+for _, row := range embeddings {
+	flattened = append(flattened, row...)
+}
+return flattened
+}