rank_fusion() — langchain Function Reference
Architecture documentation for the rank_fusion() function in ensemble.py from the langchain codebase.
Entity Profile
Dependency Diagram
graph TD 846fcd62_7844_5645_0197_3c181518377e["rank_fusion()"] b484cd3a_bbd0_4ff6_dc8c_3fc1ac219bca["EnsembleRetriever"] 846fcd62_7844_5645_0197_3c181518377e -->|defined in| b484cd3a_bbd0_4ff6_dc8c_3fc1ac219bca d7e07719_d9d2_93df_a94c_b665406d2538["invoke()"] d7e07719_d9d2_93df_a94c_b665406d2538 -->|calls| 846fcd62_7844_5645_0197_3c181518377e ccce4b1c_718f_d147_2e66_f9cb6956fb6b["_get_relevant_documents()"] ccce4b1c_718f_d147_2e66_f9cb6956fb6b -->|calls| 846fcd62_7844_5645_0197_3c181518377e e4787291_6959_3384_643b_10f54ba9483a["weighted_reciprocal_rank()"] 846fcd62_7844_5645_0197_3c181518377e -->|calls| e4787291_6959_3384_643b_10f54ba9483a d7e07719_d9d2_93df_a94c_b665406d2538["invoke()"] 846fcd62_7844_5645_0197_3c181518377e -->|calls| d7e07719_d9d2_93df_a94c_b665406d2538 style 846fcd62_7844_5645_0197_3c181518377e fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
libs/langchain/langchain_classic/retrievers/ensemble.py lines 202–242
def rank_fusion(
self,
query: str,
run_manager: CallbackManagerForRetrieverRun,
*,
config: RunnableConfig | None = None,
) -> list[Document]:
"""Rank fusion.
Retrieve the results of the retrievers and use rank_fusion_func to get
the final result.
Args:
query: The query to search for.
run_manager: The callback handler to use.
config: Optional configuration for the retrievers.
Returns:
A list of reranked documents.
"""
# Get the results of all retrievers.
retriever_docs = [
retriever.invoke(
query,
patch_config(
config,
callbacks=run_manager.get_child(tag=f"retriever_{i + 1}"),
),
)
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=cast("str", doc)) if isinstance(doc, str) else doc # type: ignore[unreachable]
for doc in retriever_docs[i]
]
# apply rank fusion
return self.weighted_reciprocal_rank(retriever_docs)
Domain
Subdomains
Called By
Source
Frequently Asked Questions
What does rank_fusion() do?
rank_fusion() is a function in the langchain codebase, defined in libs/langchain/langchain_classic/retrievers/ensemble.py.
Where is rank_fusion() defined?
rank_fusion() is defined in libs/langchain/langchain_classic/retrievers/ensemble.py at line 202.
What does rank_fusion() call?
rank_fusion() calls 2 function(s): invoke, weighted_reciprocal_rank.
What calls rank_fusion()?
rank_fusion() is called by 2 function(s): _get_relevant_documents, invoke.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free