max_marginal_relevance_search_by_vector() — langchain Function Reference
Architecture documentation for the max_marginal_relevance_search_by_vector() function in vectorstores.py from the langchain codebase.
Entity Profile
Dependency Diagram
graph TD bb3acbcf_8fa2_3d2c_a026_5518a8745385["max_marginal_relevance_search_by_vector()"] babbef04_3a0c_25f4_58a8_9d3209d5867e["Chroma"] bb3acbcf_8fa2_3d2c_a026_5518a8745385 -->|defined in| babbef04_3a0c_25f4_58a8_9d3209d5867e 30c96097_3740_4ac0_c651_e0cc5eacf83c["max_marginal_relevance_search()"] 30c96097_3740_4ac0_c651_e0cc5eacf83c -->|calls| bb3acbcf_8fa2_3d2c_a026_5518a8745385 4b1eec22_ecb8_c99c_8a5f_bbe2249bd26f["maximal_marginal_relevance()"] bb3acbcf_8fa2_3d2c_a026_5518a8745385 -->|calls| 4b1eec22_ecb8_c99c_8a5f_bbe2249bd26f dfdd464c_927a_bd24_fe08_0804d01cfe3e["_results_to_docs()"] bb3acbcf_8fa2_3d2c_a026_5518a8745385 -->|calls| dfdd464c_927a_bd24_fe08_0804d01cfe3e style bb3acbcf_8fa2_3d2c_a026_5518a8745385 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
libs/partners/chroma/langchain_chroma/vectorstores.py lines 1026–1073
def max_marginal_relevance_search_by_vector(
self,
embedding: list[float],
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:
embedding: Embedding to look up documents similar to.
k: Number of `Document` objects to return.
fetch_k: Number of `Document` objects 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.
"""
results = self.__query_collection(
query_embeddings=[embedding],
n_results=fetch_k,
where=filter,
where_document=where_document,
include=["metadatas", "documents", "distances", "embeddings"],
**kwargs,
)
mmr_selected = maximal_marginal_relevance(
np.array(embedding, dtype=np.float32),
results["embeddings"][0],
k=k,
lambda_mult=lambda_mult,
)
candidates = _results_to_docs(results)
return [r for i, r in enumerate(candidates) if i in mmr_selected]
Domain
Subdomains
Called By
Source
Frequently Asked Questions
What does max_marginal_relevance_search_by_vector() do?
max_marginal_relevance_search_by_vector() is a function in the langchain codebase, defined in libs/partners/chroma/langchain_chroma/vectorstores.py.
Where is max_marginal_relevance_search_by_vector() defined?
max_marginal_relevance_search_by_vector() is defined in libs/partners/chroma/langchain_chroma/vectorstores.py at line 1026.
What does max_marginal_relevance_search_by_vector() call?
max_marginal_relevance_search_by_vector() calls 2 function(s): _results_to_docs, maximal_marginal_relevance.
What calls max_marginal_relevance_search_by_vector()?
max_marginal_relevance_search_by_vector() is called by 1 function(s): max_marginal_relevance_search.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free