fix(vector-io): handle missing document_id in insert_chunks

Fixed KeyError when chunks don't have document_id in metadata or chunk_metadata.
Updated logging to safely extract document_id using getattr and RAG memory
to handle different document_id locations. Added test for missing document_id scenarios.

Fixes issue #3494 where /v1/vector-io/insert would crash with KeyError.
This commit is contained in:
skamenan7 2025-09-22 16:54:51 -04:00
parent a50b63906c
commit a14f79a362
3 changed files with 29 additions and 3 deletions

View file

@ -279,7 +279,10 @@ class MemoryToolRuntimeImpl(ToolGroupsProtocolPrivate, ToolRuntime, RAGToolRunti
return RAGQueryResult(
content=picked,
metadata={
"document_ids": [c.metadata["document_id"] for c in chunks[: len(picked)]],
"document_ids": [
c.metadata.get("document_id") or (c.chunk_metadata.document_id if c.chunk_metadata else None)
for c in chunks[: len(picked)]
],
"chunks": [c.content for c in chunks[: len(picked)]],
"scores": scores[: len(picked)],
"vector_db_ids": [c.metadata["vector_db_id"] for c in chunks[: len(picked)]],