Home / Class/ MaxMarginalRelevanceExampleSelector Class — langchain Architecture

MaxMarginalRelevanceExampleSelector Class — langchain Architecture

Architecture documentation for the MaxMarginalRelevanceExampleSelector class in semantic_similarity.py from the langchain codebase.

Entity Profile

Dependency Diagram

graph TD
  aa3e3447_c66f_695d_1f2e_1163e1aabd18["MaxMarginalRelevanceExampleSelector"]
  a80787c0_fd68_ab68_1e5d_400de9d4457f["_VectorStoreExampleSelector"]
  aa3e3447_c66f_695d_1f2e_1163e1aabd18 -->|extends| a80787c0_fd68_ab68_1e5d_400de9d4457f
  68b41b07_21c1_a50f_08fe_c4151de58027["semantic_similarity.py"]
  aa3e3447_c66f_695d_1f2e_1163e1aabd18 -->|defined in| 68b41b07_21c1_a50f_08fe_c4151de58027
  c03a4bd4_52ff_4d67_9b7b_92504d0181fb["select_examples()"]
  aa3e3447_c66f_695d_1f2e_1163e1aabd18 -->|method| c03a4bd4_52ff_4d67_9b7b_92504d0181fb
  6e2cf8fc_7d12_860d_060c_d74b9a96affd["aselect_examples()"]
  aa3e3447_c66f_695d_1f2e_1163e1aabd18 -->|method| 6e2cf8fc_7d12_860d_060c_d74b9a96affd
  3782e76b_1f70_0230_9a04_603cfed2da69["from_examples()"]
  aa3e3447_c66f_695d_1f2e_1163e1aabd18 -->|method| 3782e76b_1f70_0230_9a04_603cfed2da69
  5e0b1c7d_4654_751e_77ea_c58bf89a18b7["afrom_examples()"]
  aa3e3447_c66f_695d_1f2e_1163e1aabd18 -->|method| 5e0b1c7d_4654_751e_77ea_c58bf89a18b7

Relationship Graph

Source Code

libs/core/langchain_core/example_selectors/semantic_similarity.py lines 225–358

class MaxMarginalRelevanceExampleSelector(_VectorStoreExampleSelector):
    """Select examples based on Max Marginal Relevance.

    This was shown to improve performance in this paper:
    https://arxiv.org/pdf/2211.13892.pdf
    """

    fetch_k: int = 20
    """Number of examples to fetch to rerank."""

    def select_examples(self, input_variables: dict[str, str]) -> list[dict]:
        """Select examples based on Max Marginal Relevance.

        Args:
            input_variables: The input variables to use for search.

        Returns:
            The selected examples.
        """
        example_docs = self.vectorstore.max_marginal_relevance_search(
            self._example_to_text(input_variables, self.input_keys),
            k=self.k,
            fetch_k=self.fetch_k,
        )
        return self._documents_to_examples(example_docs)

    async def aselect_examples(self, input_variables: dict[str, str]) -> list[dict]:
        """Asynchronously select examples based on Max Marginal Relevance.

        Args:
            input_variables: The input variables to use for search.

        Returns:
            The selected examples.
        """
        example_docs = await self.vectorstore.amax_marginal_relevance_search(
            self._example_to_text(input_variables, self.input_keys),
            k=self.k,
            fetch_k=self.fetch_k,
        )
        return self._documents_to_examples(example_docs)

    @classmethod
    def from_examples(
        cls,
        examples: list[dict],
        embeddings: Embeddings,
        vectorstore_cls: type[VectorStore],
        k: int = 4,
        input_keys: list[str] | None = None,
        fetch_k: int = 20,
        example_keys: list[str] | None = None,
        vectorstore_kwargs: dict | None = None,
        **vectorstore_cls_kwargs: Any,
    ) -> MaxMarginalRelevanceExampleSelector:
        """Create k-shot example selector using example list and embeddings.

        Reshuffles examples dynamically based on Max Marginal Relevance.

        Args:
            examples: List of examples to use in the prompt.
            embeddings: An initialized embedding API interface, e.g. OpenAIEmbeddings().
            vectorstore_cls: A vector store DB interface class, e.g. FAISS.
            k: Number of examples to select.
            fetch_k: Number of `Document` objects to fetch to pass to MMR algorithm.
            input_keys: If provided, the search is based on the input variables
                instead of all variables.
            example_keys: If provided, keys to filter examples to.
            vectorstore_kwargs: Extra arguments passed to similarity_search function
                of the `VectorStore`.
            vectorstore_cls_kwargs: optional kwargs containing url for vector store

        Returns:
            The ExampleSelector instantiated, backed by a vector store.
        """
        string_examples = [cls._example_to_text(eg, input_keys) for eg in examples]
        vectorstore = vectorstore_cls.from_texts(
            string_examples, embeddings, metadatas=examples, **vectorstore_cls_kwargs
        )
        return cls(
            vectorstore=vectorstore,

Frequently Asked Questions

What is the MaxMarginalRelevanceExampleSelector class?
MaxMarginalRelevanceExampleSelector is a class in the langchain codebase, defined in libs/core/langchain_core/example_selectors/semantic_similarity.py.
Where is MaxMarginalRelevanceExampleSelector defined?
MaxMarginalRelevanceExampleSelector is defined in libs/core/langchain_core/example_selectors/semantic_similarity.py at line 225.
What does MaxMarginalRelevanceExampleSelector extend?
MaxMarginalRelevanceExampleSelector extends _VectorStoreExampleSelector.

Analyze Your Own Codebase

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

Try Supermodel Free