Home / Function/ rank_fusion() — langchain Function Reference

rank_fusion() — langchain Function Reference

Architecture documentation for the rank_fusion() function in ensemble.py from the langchain codebase.

Function python LangChainCore Runnables calls 2 called by 2

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

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