Home / File/ test_max_marginal_relevance.py — langchain Source File

test_max_marginal_relevance.py — langchain Source File

Architecture documentation for test_max_marginal_relevance.py, a python file in the langchain codebase. 5 imports, 0 dependents.

File python CoreAbstractions Serialization 5 imports 1 functions

Entity Profile

Dependency Diagram

graph LR
  9dd5ab14_e87e_4bbc_4155_3aa157de96cb["test_max_marginal_relevance.py"]
  120e2591_3e15_b895_72b6_cb26195e40a6["pytest"]
  9dd5ab14_e87e_4bbc_4155_3aa157de96cb --> 120e2591_3e15_b895_72b6_cb26195e40a6
  c554676d_b731_47b2_a98f_c1c2d537c0aa["langchain_core.documents"]
  9dd5ab14_e87e_4bbc_4155_3aa157de96cb --> c554676d_b731_47b2_a98f_c1c2d537c0aa
  e9f800f2_8227_1095_42ef_324e02810451["qdrant_client"]
  9dd5ab14_e87e_4bbc_4155_3aa157de96cb --> e9f800f2_8227_1095_42ef_324e02810451
  77801658_6b3a_bc26_7e54_388e5c04807d["langchain_qdrant"]
  9dd5ab14_e87e_4bbc_4155_3aa157de96cb --> 77801658_6b3a_bc26_7e54_388e5c04807d
  a50ef027_f19e_86a8_94ef_895b4566f94e["tests.integration_tests.common"]
  9dd5ab14_e87e_4bbc_4155_3aa157de96cb --> a50ef027_f19e_86a8_94ef_895b4566f94e
  style 9dd5ab14_e87e_4bbc_4155_3aa157de96cb fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

from __future__ import annotations

import pytest  # type: ignore[import-not-found]
from langchain_core.documents import Document
from qdrant_client import models

from langchain_qdrant import Qdrant
from tests.integration_tests.common import (
    ConsistentFakeEmbeddings,
    assert_documents_equals,
)


@pytest.mark.parametrize("batch_size", [1, 64])
@pytest.mark.parametrize("content_payload_key", [Qdrant.CONTENT_KEY, "test_content"])
@pytest.mark.parametrize("metadata_payload_key", [Qdrant.METADATA_KEY, "test_metadata"])
@pytest.mark.parametrize("vector_name", [None, "my-vector"])
def test_qdrant_max_marginal_relevance_search(
    batch_size: int,
    content_payload_key: str,
    metadata_payload_key: str,
    vector_name: str | None,
) -> None:
    """Test end to end construction and MRR search."""
    filter_ = models.Filter(
        must=[
            models.FieldCondition(
                key=f"{metadata_payload_key}.page",
                match=models.MatchValue(
                    value=2,
                ),
            ),
        ],
    )

    texts = ["foo", "bar", "baz"]
    metadatas = [{"page": i} for i in range(len(texts))]
    docsearch = Qdrant.from_texts(
        texts,
        ConsistentFakeEmbeddings(),
        metadatas=metadatas,
        location=":memory:",
        content_payload_key=content_payload_key,
        metadata_payload_key=metadata_payload_key,
        batch_size=batch_size,
        vector_name=vector_name,
        distance_func="EUCLID",  # Euclid distance used to avoid normalization
    )
    output = docsearch.max_marginal_relevance_search(
        "foo", k=2, fetch_k=3, lambda_mult=0.0
    )
    assert_documents_equals(
        output,
        [
            Document(page_content="foo", metadata={"page": 0}),
            Document(page_content="baz", metadata={"page": 2}),
        ],
    )

    output = docsearch.max_marginal_relevance_search(
        "foo", k=2, fetch_k=3, lambda_mult=0.0, filter=filter_
    )
    assert_documents_equals(
        output,
        [Document(page_content="baz", metadata={"page": 2})],
    )

Subdomains

Dependencies

  • langchain_core.documents
  • langchain_qdrant
  • pytest
  • qdrant_client
  • tests.integration_tests.common

Frequently Asked Questions

What does test_max_marginal_relevance.py do?
test_max_marginal_relevance.py is a source file in the langchain codebase, written in python. It belongs to the CoreAbstractions domain, Serialization subdomain.
What functions are defined in test_max_marginal_relevance.py?
test_max_marginal_relevance.py defines 1 function(s): test_qdrant_max_marginal_relevance_search.
What does test_max_marginal_relevance.py depend on?
test_max_marginal_relevance.py imports 5 module(s): langchain_core.documents, langchain_qdrant, pytest, qdrant_client, tests.integration_tests.common.
Where is test_max_marginal_relevance.py in the architecture?
test_max_marginal_relevance.py is located at libs/partners/qdrant/tests/integration_tests/test_max_marginal_relevance.py (domain: CoreAbstractions, subdomain: Serialization, directory: libs/partners/qdrant/tests/integration_tests).

Analyze Your Own Codebase

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

Try Supermodel Free