mirror of
https://github.com/trustgraph-ai/trustgraph.git
synced 2026-07-10 22:02:12 +02:00
Fix ontology RAG pipeline + add query concurrency (#691)
- Fix ontology RAG pipeline: embeddings API, chunker provenance, and query concurrency
- Fix ontology embeddings to use correct response shape from embed()
API (returns list of vectors, not list of list of vectors).
- Simplify chunker URI logic to append /c{index} to parent ID
instead of parsing page/doc URI structure which was fragile.
- Add provenance tracking and librarian integration to token
chunker, matching recursive chunker capabilities.
- Add configurable concurrency (default 10) to Cassandra, Qdrant,
and embeddings query services.
This commit is contained in:
parent
312174eb88
commit
45e6ad4abc
9 changed files with 148 additions and 50 deletions
|
|
@ -149,7 +149,7 @@ 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][0] # Extract first vector from first text
|
||||
test_embedding = test_embedding_response[0] # Extract first vector
|
||||
dimension = len(test_embedding)
|
||||
logger.info(f"Detected embedding dimension: {dimension}")
|
||||
|
||||
|
|
|
|||
|
|
@ -153,14 +153,11 @@ class OntologyEmbedder:
|
|||
# Get embeddings for batch
|
||||
texts = [elem['text'] for elem in batch]
|
||||
try:
|
||||
# Single batch embedding call
|
||||
# Single batch embedding call - returns list of vectors
|
||||
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]
|
||||
|
||||
# Convert to numpy array
|
||||
embeddings = np.array(embeddings_list)
|
||||
embeddings = np.array(embeddings_response)
|
||||
|
||||
# Log embedding shape for debugging
|
||||
logger.debug(f"Embeddings shape: {embeddings.shape}, expected: ({len(batch)}, {self.vector_store.dimension})")
|
||||
|
|
@ -216,9 +213,9 @@ class OntologyEmbedder:
|
|||
return None
|
||||
|
||||
try:
|
||||
# embed() with single text, extract first vector from first text
|
||||
# embed() with single text, extract first vector
|
||||
embedding_response = await self.embedding_service.embed([text])
|
||||
return np.array(embedding_response[0][0])
|
||||
return np.array(embedding_response[0])
|
||||
except Exception as e:
|
||||
logger.error(f"Failed to embed text: {e}")
|
||||
return None
|
||||
|
|
@ -237,11 +234,9 @@ class OntologyEmbedder:
|
|||
return None
|
||||
|
||||
try:
|
||||
# Single batch embedding call
|
||||
# Single batch embedding call - returns list of vectors
|
||||
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)
|
||||
return np.array(embeddings_response)
|
||||
except Exception as e:
|
||||
logger.error(f"Failed to embed texts: {e}")
|
||||
return None
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue