Update embeddings integration for new batch embeddings interfaces (#669)

* Fix vector extraction

* Fix embeddings integration
This commit is contained in:
cybermaggedon 2026-03-08 19:41:52 +00:00 committed by GitHub
parent 0a2ce47a88
commit 919b760c05
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
12 changed files with 55 additions and 56 deletions

View file

@ -148,8 +148,8 @@ class Processor(FlowProcessor):
# Detect embedding dimension by embedding a test string
logger.info("Detecting embedding dimension from embeddings service...")
test_embedding_response = await embeddings_client.embed("test")
test_embedding = test_embedding_response[0] # Extract from [[vector]]
test_embedding_response = await embeddings_client.embed(["test"])
test_embedding = test_embedding_response[0][0] # Extract first vector from first text
dimension = len(test_embedding)
logger.info(f"Detected embedding dimension: {dimension}")

View file

@ -153,13 +153,11 @@ class OntologyEmbedder:
# Get embeddings for batch
texts = [elem['text'] for elem in batch]
try:
# Call embedding service for each text
# Note: embed() returns 2D array [[vector]], so extract first element
embedding_tasks = [self.embedding_service.embed(text) for text in texts]
embeddings_responses = await asyncio.gather(*embedding_tasks)
# Single batch embedding call
embeddings_response = await self.embedding_service.embed(texts)
# Extract vectors from responses (each is [[vector]])
embeddings_list = [resp[0] for resp in embeddings_responses]
# Extract first vector from each text's vector set
embeddings_list = [resp[0] for resp in embeddings_response]
# Convert to numpy array
embeddings = np.array(embeddings_list)
@ -218,9 +216,9 @@ class OntologyEmbedder:
return None
try:
# embed() returns 2D array [[vector]], extract first element
embedding_response = await self.embedding_service.embed(text)
return np.array(embedding_response[0])
# embed() with single text, extract first vector from first text
embedding_response = await self.embedding_service.embed([text])
return np.array(embedding_response[0][0])
except Exception as e:
logger.error(f"Failed to embed text: {e}")
return None
@ -239,11 +237,10 @@ class OntologyEmbedder:
return None
try:
# Call embed() for each text (returns [[vector]] per call)
embedding_tasks = [self.embedding_service.embed(text) for text in texts]
embeddings_responses = await asyncio.gather(*embedding_tasks)
# Extract first vector from each response
embeddings_list = [resp[0] for resp in embeddings_responses]
# Single batch embedding call
embeddings_response = await self.embedding_service.embed(texts)
# Extract first vector from each text's vector set
embeddings_list = [resp[0] for resp in embeddings_response]
return np.array(embeddings_list)
except Exception as e:
logger.error(f"Failed to embed texts: {e}")