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.
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)
Domain
Subdomains
Functions
Classes
Dependencies
- collections.abc
- langchain_classic.retrievers.multi_vector
- langchain_classic.storage
- langchain_core.documents
- tests.unit_tests.indexes.test_indexing
- typing
- typing_extensions
Source
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