mirror of
https://github.com/hwchase17/langchain.git
synced 2025-09-14 22:17:15 +00:00
Minor update to ensemble retriever to handle a mix of Documents or str (#14552)
This commit is contained in:
@@ -103,6 +103,13 @@ class EnsembleRetriever(BaseRetriever):
|
||||
for i, retriever in enumerate(self.retrievers)
|
||||
]
|
||||
|
||||
# Enforce that retrieved docs are Documents for each list in retriever_docs
|
||||
for i in range(len(retriever_docs)):
|
||||
retriever_docs[i] = [
|
||||
Document(page_content=doc) if not isinstance(doc, Document) else doc
|
||||
for doc in retriever_docs[i]
|
||||
]
|
||||
|
||||
# apply rank fusion
|
||||
fused_documents = self.weighted_reciprocal_rank(retriever_docs)
|
||||
|
||||
@@ -130,6 +137,13 @@ class EnsembleRetriever(BaseRetriever):
|
||||
for i, retriever in enumerate(self.retrievers)
|
||||
]
|
||||
|
||||
# Enforce that retrieved docs are Documents for each list in retriever_docs
|
||||
for i in range(len(retriever_docs)):
|
||||
retriever_docs[i] = [
|
||||
Document(page_content=doc) if not isinstance(doc, Document) else doc
|
||||
for doc in retriever_docs[i]
|
||||
]
|
||||
|
||||
# apply rank fusion
|
||||
fused_documents = self.weighted_reciprocal_rank(retriever_docs)
|
||||
|
||||
|
Reference in New Issue
Block a user