In MergerRetriever async call all retrievers in parallel (#10938)

pull/10940/head
Nuno Campos 12 months ago committed by GitHub
parent 66d5a7e7cf
commit aac2d4dcef
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -1,3 +1,4 @@
import asyncio
from typing import List from typing import List
from langchain.callbacks.manager import ( from langchain.callbacks.manager import (
@ -100,12 +101,14 @@ class MergerRetriever(BaseRetriever):
""" """
# Get the results of all retrievers. # Get the results of all retrievers.
retriever_docs = [ retriever_docs = await asyncio.gather(
await retriever.aget_relevant_documents( *(
query, callbacks=run_manager.get_child("retriever_{}".format(i + 1)) retriever.aget_relevant_documents(
query, callbacks=run_manager.get_child("retriever_{}".format(i + 1))
)
for i, retriever in enumerate(self.retrievers)
) )
for i, retriever in enumerate(self.retrievers) )
]
# Merge the results of the retrievers. # Merge the results of the retrievers.
merged_documents = [] merged_documents = []

Loading…
Cancel
Save