Home / File/ test_multi_vector.py — langchain Source File

test_multi_vector.py — langchain Source File

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

File python CoreAbstractions MessageSchema 7 imports 4 functions 1 classes

Entity Profile

Dependency Diagram

graph LR
  0a4d67ac_6977_1b85_e44a_9173e08d2937["test_multi_vector.py"]
  cfe2bde5_180e_e3b0_df2b_55b3ebaca8e7["collections.abc"]
  0a4d67ac_6977_1b85_e44a_9173e08d2937 --> cfe2bde5_180e_e3b0_df2b_55b3ebaca8e7
  8e2034b7_ceb8_963f_29fc_2ea6b50ef9b3["typing"]
  0a4d67ac_6977_1b85_e44a_9173e08d2937 --> 8e2034b7_ceb8_963f_29fc_2ea6b50ef9b3
  c554676d_b731_47b2_a98f_c1c2d537c0aa["langchain_core.documents"]
  0a4d67ac_6977_1b85_e44a_9173e08d2937 --> c554676d_b731_47b2_a98f_c1c2d537c0aa
  91721f45_4909_e489_8c1f_084f8bd87145["typing_extensions"]
  0a4d67ac_6977_1b85_e44a_9173e08d2937 --> 91721f45_4909_e489_8c1f_084f8bd87145
  31e94b8f_96d7_4f05_deed_73a476b8265a["langchain_classic.retrievers.multi_vector"]
  0a4d67ac_6977_1b85_e44a_9173e08d2937 --> 31e94b8f_96d7_4f05_deed_73a476b8265a
  8a2b4428_3ff3_c61e_4012_29d2cc2b8165["langchain_classic.storage"]
  0a4d67ac_6977_1b85_e44a_9173e08d2937 --> 8a2b4428_3ff3_c61e_4012_29d2cc2b8165
  74a1bb82_932f_5eb6_2729_8e5fde9663f3["tests.unit_tests.indexes.test_indexing"]
  0a4d67ac_6977_1b85_e44a_9173e08d2937 --> 74a1bb82_932f_5eb6_2729_8e5fde9663f3
  style 0a4d67ac_6977_1b85_e44a_9173e08d2937 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

from collections.abc import Callable
from typing import Any

from langchain_core.documents import Document
from typing_extensions import override

from langchain_classic.retrievers.multi_vector import MultiVectorRetriever, SearchType
from langchain_classic.storage import InMemoryStore
from tests.unit_tests.indexes.test_indexing import InMemoryVectorStore


class InMemoryVectorstoreWithSearch(InMemoryVectorStore):
    @staticmethod
    def _identity_fn(score: float) -> float:
        return score

    def _select_relevance_score_fn(self) -> Callable[[float], float]:
        return self._identity_fn

    @override
    def similarity_search(
        self,
        query: str,
        k: int = 4,
        **kwargs: Any,
    ) -> list[Document]:
        res = self.store.get(query)
        if res is None:
            return []
        return [res]

    @override
    def similarity_search_with_score(
        self,
        query: str,
        k: int = 4,
        **kwargs: Any,
    ) -> list[tuple[Document, float]]:
        res = self.store.get(query)
        if res is None:
            return []
        return [(res, 0.8)]


def test_multi_vector_retriever_initialization() -> None:
    vectorstore = InMemoryVectorstoreWithSearch()
    retriever = MultiVectorRetriever(
        vectorstore=vectorstore,
        docstore=InMemoryStore(),
        doc_id="doc_id",
    )
    documents = [Document(page_content="test document", metadata={"doc_id": "1"})]
    retriever.vectorstore.add_documents(documents, ids=["1"])
    retriever.docstore.mset(list(zip(["1"], documents, strict=False)))
    results = retriever.invoke("1")
    assert len(results) > 0
    assert results[0].page_content == "test document"


async def test_multi_vector_retriever_initialization_async() -> None:
// ... (75 more lines)

Subdomains

Dependencies

  • collections.abc
  • langchain_classic.retrievers.multi_vector
  • langchain_classic.storage
  • langchain_core.documents
  • tests.unit_tests.indexes.test_indexing
  • typing
  • typing_extensions

Frequently Asked Questions

What does test_multi_vector.py do?
test_multi_vector.py is a source file in the langchain codebase, written in python. It belongs to the CoreAbstractions domain, MessageSchema subdomain.
What functions are defined in test_multi_vector.py?
test_multi_vector.py defines 4 function(s): test_multi_vector_retriever_initialization, test_multi_vector_retriever_initialization_async, test_multi_vector_retriever_similarity_search_with_score, test_multi_vector_retriever_similarity_search_with_score_async.
What does test_multi_vector.py depend on?
test_multi_vector.py imports 7 module(s): collections.abc, langchain_classic.retrievers.multi_vector, langchain_classic.storage, langchain_core.documents, tests.unit_tests.indexes.test_indexing, typing, typing_extensions.
Where is test_multi_vector.py in the architecture?
test_multi_vector.py is located at libs/langchain/tests/unit_tests/retrievers/test_multi_vector.py (domain: CoreAbstractions, subdomain: MessageSchema, directory: libs/langchain/tests/unit_tests/retrievers).

Analyze Your Own Codebase

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

Try Supermodel Free