Home / Function/ max_marginal_relevance_search() — langchain Function Reference

max_marginal_relevance_search() — langchain Function Reference

Architecture documentation for the max_marginal_relevance_search() function in vectorstores.py from the langchain codebase.

Entity Profile

Dependency Diagram

graph TD
  30c96097_3740_4ac0_c651_e0cc5eacf83c["max_marginal_relevance_search()"]
  babbef04_3a0c_25f4_58a8_9d3209d5867e["Chroma"]
  30c96097_3740_4ac0_c651_e0cc5eacf83c -->|defined in| babbef04_3a0c_25f4_58a8_9d3209d5867e
  bb3acbcf_8fa2_3d2c_a026_5518a8745385["max_marginal_relevance_search_by_vector()"]
  30c96097_3740_4ac0_c651_e0cc5eacf83c -->|calls| bb3acbcf_8fa2_3d2c_a026_5518a8745385
  style 30c96097_3740_4ac0_c651_e0cc5eacf83c fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

libs/partners/chroma/langchain_chroma/vectorstores.py lines 1075–1122

    def max_marginal_relevance_search(
        self,
        query: str,
        k: int = DEFAULT_K,
        fetch_k: int = 20,
        lambda_mult: float = 0.5,
        filter: dict[str, str] | None = None,  # noqa: A002
        where_document: dict[str, str] | None = None,
        **kwargs: Any,
    ) -> list[Document]:
        """Return docs selected using the maximal marginal relevance.

        Maximal marginal relevance optimizes for similarity to query AND diversity
        among selected documents.

        Args:
            query: Text to look up documents similar to.
            k: Number of Documents to return.
            fetch_k: Number of Documents to fetch to pass to MMR algorithm.
            lambda_mult: Number between `0` and `1` that determines the degree
                of diversity among the results with `0` corresponding
                to maximum diversity and `1` to minimum diversity.
            filter: Filter by metadata.
            where_document: dict used to filter by the document contents.
                e.g. `{"$contains": "hello"}`.
            kwargs: Additional keyword arguments to pass to Chroma collection query.

        Returns:
            List of `Document` objects selected by maximal marginal relevance.

        Raises:
            ValueError: If the embedding function is not provided.
        """
        if self._embedding_function is None:
            msg = "For MMR search, you must specify an embedding function on creation."
            raise ValueError(
                msg,
            )

        embedding = self._embedding_function.embed_query(query)
        return self.max_marginal_relevance_search_by_vector(
            embedding,
            k,
            fetch_k,
            lambda_mult=lambda_mult,
            filter=filter,
            where_document=where_document,
        )

Domain

Subdomains

Frequently Asked Questions

What does max_marginal_relevance_search() do?
max_marginal_relevance_search() is a function in the langchain codebase, defined in libs/partners/chroma/langchain_chroma/vectorstores.py.
Where is max_marginal_relevance_search() defined?
max_marginal_relevance_search() is defined in libs/partners/chroma/langchain_chroma/vectorstores.py at line 1075.
What does max_marginal_relevance_search() call?
max_marginal_relevance_search() calls 1 function(s): max_marginal_relevance_search_by_vector.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free