Skip to content

Commit bce618e

Browse files
authored
[BUG]: Fix Voyage AI EF to match new API (#4392)
1 parent b604892 commit bce618e

File tree

2 files changed

+22
-1
lines changed

2 files changed

+22
-1
lines changed

chromadb/test/ef/test_voyageai_ef.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
import os
2+
import pytest
3+
from chromadb.utils.embedding_functions.voyageai_embedding_function import (
4+
VoyageAIEmbeddingFunction,
5+
)
6+
7+
voyageai = pytest.importorskip("voyageai", reason="voyageai not installed")
8+
9+
10+
def test_with_embedding_dimensions() -> None:
11+
if os.environ.get("CHROMA_VOYAGE_API_KEY") is None:
12+
pytest.skip("CHROMA_VOYAGE_API_KEY not set")
13+
ef = VoyageAIEmbeddingFunction(
14+
api_key=os.environ["CHROMA_VOYAGE_API_KEY"]
15+
)
16+
embeddings = ef(["hello world"])
17+
assert embeddings is not None
18+
assert len(embeddings) == 1
19+
assert len(embeddings[0]) == 1536

chromadb/utils/embedding_functions/voyageai_embedding_function.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,9 @@ def __call__(self, input: Documents) -> Embeddings:
5555
embeddings = self._client.embed(texts=input, model=self.model_name)
5656

5757
# Convert to numpy arrays
58-
return [np.array(embedding, dtype=np.float32) for embedding in embeddings]
58+
return [
59+
np.array(embedding, dtype=np.float32) for embedding in embeddings.embeddings
60+
]
5961

6062
@staticmethod
6163
def name() -> str:

0 commit comments

Comments
 (0)