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,
Extends
Source
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