@@ -81,3 +81,59 @@ async def test_query_accepts_valid_modes(self):
81
81
# Test that invalid mode raises an error
82
82
with pytest .raises (ValueError ):
83
83
RAGQueryConfig (mode = "wrong_mode" )
84
+
85
+ @pytest .mark .asyncio
86
+ async def test_query_adds_vector_db_id_to_chunk_metadata (self ):
87
+ rag_tool = MemoryToolRuntimeImpl (
88
+ config = MagicMock (),
89
+ vector_io_api = MagicMock (),
90
+ inference_api = MagicMock (),
91
+ files_api = MagicMock (),
92
+ )
93
+
94
+ vector_db_ids = ["db1" , "db2" ]
95
+
96
+ # Fake chunks from each DB
97
+ chunk_metadata1 = ChunkMetadata (
98
+ document_id = "doc1" ,
99
+ chunk_id = "chunk1" ,
100
+ source = "test_source1" ,
101
+ metadata_token_count = 5 ,
102
+ )
103
+ chunk1 = Chunk (
104
+ content = "chunk from db1" ,
105
+ metadata = {"vector_db_id" : "db1" , "document_id" : "doc1" },
106
+ stored_chunk_id = "c1" ,
107
+ chunk_metadata = chunk_metadata1 ,
108
+ )
109
+
110
+ chunk_metadata2 = ChunkMetadata (
111
+ document_id = "doc2" ,
112
+ chunk_id = "chunk2" ,
113
+ source = "test_source2" ,
114
+ metadata_token_count = 5 ,
115
+ )
116
+ chunk2 = Chunk (
117
+ content = "chunk from db2" ,
118
+ metadata = {"vector_db_id" : "db2" , "document_id" : "doc2" },
119
+ stored_chunk_id = "c2" ,
120
+ chunk_metadata = chunk_metadata2 ,
121
+ )
122
+
123
+ rag_tool .vector_io_api .query_chunks = AsyncMock (
124
+ side_effect = [
125
+ QueryChunksResponse (chunks = [chunk1 ], scores = [0.9 ]),
126
+ QueryChunksResponse (chunks = [chunk2 ], scores = [0.8 ]),
127
+ ]
128
+ )
129
+
130
+ result = await rag_tool .query (content = "test" , vector_db_ids = vector_db_ids )
131
+ returned_chunks = result .metadata ["chunks" ]
132
+ returned_scores = result .metadata ["scores" ]
133
+ returned_doc_ids = result .metadata ["document_ids" ]
134
+ returned_vector_db_ids = result .metadata ["vector_db_ids" ]
135
+
136
+ assert returned_chunks == ["chunk from db1" , "chunk from db2" ]
137
+ assert returned_scores == (0.9 , 0.8 )
138
+ assert returned_doc_ids == ["doc1" , "doc2" ]
139
+ assert returned_vector_db_ids == ["db1" , "db2" ]
0 commit comments