amax_marginal_relevance_search_with_score_by_vector() — langchain Function Reference
Architecture documentation for the amax_marginal_relevance_search_with_score_by_vector() function in vectorstores.py from the langchain codebase.
Entity Profile
Dependency Diagram
graph TD 5b58fc45_0beb_27f4_0065_afd49a62b315["amax_marginal_relevance_search_with_score_by_vector()"] 2d095452_70a7_4606_a1b1_4650d16b5343["Qdrant"] 5b58fc45_0beb_27f4_0065_afd49a62b315 -->|defined in| 2d095452_70a7_4606_a1b1_4650d16b5343 0ec7a2c6_a51b_581a_7363_858cc7222d22["amax_marginal_relevance_search_by_vector()"] 0ec7a2c6_a51b_581a_7363_858cc7222d22 -->|calls| 5b58fc45_0beb_27f4_0065_afd49a62b315 e51a8060_dfbc_bc2e_2d45_e5db47741681["_document_from_scored_point()"] 5b58fc45_0beb_27f4_0065_afd49a62b315 -->|calls| e51a8060_dfbc_bc2e_2d45_e5db47741681 style 5b58fc45_0beb_27f4_0065_afd49a62b315 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
libs/partners/qdrant/langchain_qdrant/vectorstores.py lines 1073–1148
async def amax_marginal_relevance_search_with_score_by_vector(
self,
embedding: list[float],
k: int = 4,
fetch_k: int = 20,
lambda_mult: float = 0.5,
filter: MetadataFilter | None = None, # noqa: A002
search_params: models.SearchParams | None = None,
score_threshold: float | None = None,
consistency: models.ReadConsistency | None = None,
**kwargs: Any,
) -> list[tuple[Document, float]]:
"""Return docs selected using the maximal marginal relevance.
Maximal marginal relevance optimizes for similarity to query AND diversity
among selected documents.
Args:
embedding: Embedding vector 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.
search_params: Additional search params.
score_threshold: Define a minimal score threshold for the result.
consistency: Read consistency of the search.
**kwargs: Additional keyword arguments.
Returns:
List of `Document` objects selected by maximal marginal relevance and
distance for each.
"""
if self.async_client is None or isinstance(
self.async_client._client, AsyncQdrantLocal
):
msg = "QdrantLocal cannot interoperate with sync and async clients"
raise NotImplementedError(msg)
query_vector = embedding
if self.vector_name is not None:
query_vector = (self.vector_name, query_vector) # type: ignore[assignment]
results = await self.async_client.search(
collection_name=self.collection_name,
query_vector=query_vector,
query_filter=filter,
search_params=search_params,
limit=fetch_k,
with_payload=True,
with_vectors=True,
score_threshold=score_threshold,
consistency=consistency,
**kwargs,
)
embeddings = [
result.vector.get(self.vector_name) # type: ignore[index, union-attr]
if self.vector_name is not None
else result.vector
for result in results
]
mmr_selected = maximal_marginal_relevance(
np.array(embedding), embeddings, k=k, lambda_mult=lambda_mult
)
return [
(
self._document_from_scored_point(
results[i],
self.collection_name,
self.content_payload_key,
self.metadata_payload_key,
),
results[i].score,
)
for i in mmr_selected
]
Domain
Subdomains
Source
Frequently Asked Questions
What does amax_marginal_relevance_search_with_score_by_vector() do?
amax_marginal_relevance_search_with_score_by_vector() is a function in the langchain codebase, defined in libs/partners/qdrant/langchain_qdrant/vectorstores.py.
Where is amax_marginal_relevance_search_with_score_by_vector() defined?
amax_marginal_relevance_search_with_score_by_vector() is defined in libs/partners/qdrant/langchain_qdrant/vectorstores.py at line 1073.
What does amax_marginal_relevance_search_with_score_by_vector() call?
amax_marginal_relevance_search_with_score_by_vector() calls 1 function(s): _document_from_scored_point.
What calls amax_marginal_relevance_search_with_score_by_vector()?
amax_marginal_relevance_search_with_score_by_vector() is called by 1 function(s): amax_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