Fix/OpenAI embedding dimensions 4153 (#4481)
This commit is contained in:
+11
-10
@@ -13,6 +13,9 @@ class OpenAIEmbedding(EmbeddingBase):
|
||||
super().__init__(config)
|
||||
|
||||
self.config.model = self.config.model or "text-embedding-3-small"
|
||||
# Only pass `dimensions` to the API when the user set embedding_dims; non-matryoshka
|
||||
# OpenAI-compatible backends (vLLM, Voyage, etc.) reject the parameter
|
||||
self._pass_dimensions_to_api = self.config.embedding_dims is not None
|
||||
self.config.embedding_dims = self.config.embedding_dims or 1536
|
||||
|
||||
api_key = self.config.api_key or os.getenv("OPENAI_API_KEY")
|
||||
@@ -42,13 +45,11 @@ class OpenAIEmbedding(EmbeddingBase):
|
||||
list: The embedding vector.
|
||||
"""
|
||||
text = text.replace("\n", " ")
|
||||
return (
|
||||
self.client.embeddings.create(
|
||||
input=[text],
|
||||
model=self.config.model,
|
||||
dimensions=self.config.embedding_dims,
|
||||
encoding_format="float",
|
||||
)
|
||||
.data[0]
|
||||
.embedding
|
||||
)
|
||||
kwargs = {
|
||||
"input": [text],
|
||||
"model": self.config.model,
|
||||
"encoding_format": "float",
|
||||
}
|
||||
if self._pass_dimensions_to_api:
|
||||
kwargs["dimensions"] = self.config.embedding_dims
|
||||
return self.client.embeddings.create(**kwargs).data[0].embedding
|
||||
|
||||
Reference in New Issue
Block a user