3333 GraphRelation ,
3434 InputType ,
3535 ResourceRequest ,
36- RunAck ,
36+ RunIngestAck ,
3737 RunRequest ,
38- RunResponse ,
38+ RunSearchResponse ,
3939)
4040from vechord .rerank import BaseReranker , CohereReranker , JinaReranker
4141from vechord .spec import (
@@ -209,7 +209,7 @@ def from_steps(cls, steps: list[ResourceRequest]) -> Self:
209209
210210 async def run (
211211 self , request : RunRequest , vr : "VechordRegistry"
212- ) -> RunAck | RunResponse :
212+ ) -> RunIngestAck | RunSearchResponse :
213213 """Run the dynamic pipeline with the given request."""
214214 async with set_namespace (request .name ):
215215 resp = (
@@ -248,7 +248,9 @@ def _convert_from_extracted_graph(
248248 ]
249249 return converted_ents , converted_rels
250250
251- async def run_index (self , request : RunRequest , vr : "VechordRegistry" ) -> RunAck : # noqa: PLR0912
251+ async def run_index ( # noqa: PLR0912
252+ self , request : RunRequest , vr : "VechordRegistry"
253+ ) -> RunIngestAck :
252254 dim = (
253255 self .text_emb .get_dim () if self .text_emb else self .multimodal_emb .get_dim ()
254256 )
@@ -335,7 +337,7 @@ async def run_index(self, request: RunRequest, vr: "VechordRegistry") -> RunAck:
335337 await self .graph_insert (
336338 ents = ents , rels = rels , ent_cls = Entity , rel_cls = Relation , vr = vr
337339 )
338- return RunAck (name = request .name , msg = "succeed" , uid = doc .uid )
340+ return RunIngestAck (name = request .name , msg = "succeed" , uid = doc .uid )
339341
340342 async def graph_insert (
341343 self ,
@@ -392,7 +394,7 @@ async def graph_insert(
392394
393395 async def run_search (
394396 self , request : RunRequest , vr : "VechordRegistry"
395- ) -> RunResponse :
397+ ) -> RunSearchResponse :
396398 query = request .data .decode ("utf-8" )
397399
398400 # for type hint and compatibility
@@ -405,7 +407,7 @@ class Entity(_Entity):
405407 class Relation (_Relation ):
406408 pass
407409
408- resp = RunResponse ()
410+ resp = RunSearchResponse ()
409411 if self .search .vector :
410412 vec = (
411413 await self .text_emb .vectorize_query (query )
@@ -423,6 +425,7 @@ class Relation(_Relation):
423425 )
424426 if self .search .graph :
425427 resp .extend (await self .graph_search (query , Chunk , Entity , Relation , vr ))
428+ resp .deduplicate ()
426429 if self .rerank :
427430 if self .multimodal_emb :
428431 indices = await self .rerank .rerank_multimodal (
@@ -432,7 +435,7 @@ class Relation(_Relation):
432435 )
433436 else :
434437 indices = await self .rerank .rerank (
435- query = query , chunks = [chunk .text for chunk in resp ]
438+ query = query , chunks = [chunk .text for chunk in resp . chunks ]
436439 )
437440 resp .reorder (indices )
438441 if self .evaluate :
0 commit comments