def retrieve()

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