in src/models/rag.py [0:0]
def retrieve(self, query, return_text=True):
nodes: List[NodeWithScore] = self.retriever.retrieve(query)
if self.keyword_retriever: # hybrid search
kw_nodes: List[NodeWithScore] = self.keyword_retriever.retrieve(query)
node_dict = {node.node.node_id: node for node in (nodes + kw_nodes)}
nodes = list(node_dict.values()) # union
if self.rerank:
nodes = self.rerank.postprocess_nodes(nodes, query_bundle=QueryBundle(query))
if return_text:
nodes = [node.get_text() for node in nodes]
return nodes