Home / Function/ amax_marginal_relevance_search_with_score_by_vector() — langchain Function Reference

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

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