embeddings.py — langchain Source File
Architecture documentation for embeddings.py, a python file in the langchain codebase. 2 imports, 0 dependents.
Entity Profile
Dependency Diagram
graph LR ece21489_1e74_a061_bc6e_e778594df4d0["embeddings.py"] bc46b61d_cfdf_3f6b_a9dd_ac2a328d84b3["langchain_core.embeddings"] ece21489_1e74_a061_bc6e_e778594df4d0 --> bc46b61d_cfdf_3f6b_a9dd_ac2a328d84b3 2fbe8eb1_5f30_3412_8f93_d0622486af65["langchain_tests.unit_tests.embeddings"] ece21489_1e74_a061_bc6e_e778594df4d0 --> 2fbe8eb1_5f30_3412_8f93_d0622486af65 style ece21489_1e74_a061_bc6e_e778594df4d0 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
"""Integration tests for embeddings."""
from langchain_core.embeddings import Embeddings
from langchain_tests.unit_tests.embeddings import EmbeddingsTests
class EmbeddingsIntegrationTests(EmbeddingsTests):
"""Base class for embeddings integration tests.
Test subclasses must implement the `embeddings_class` property to specify the
embeddings model to be tested. You can also override the
`embedding_model_params` property to specify initialization parameters.
```python
from typing import Type
from langchain_tests.integration_tests import EmbeddingsIntegrationTests
from my_package.embeddings import MyEmbeddingsModel
class TestMyEmbeddingsModelIntegration(EmbeddingsIntegrationTests):
@property
def embeddings_class(self) -> Type[MyEmbeddingsModel]:
# Return the embeddings model class to test here
return MyEmbeddingsModel
@property
def embedding_model_params(self) -> dict:
# Return initialization parameters for the model.
return {"model": "model-001"}
```
!!! note
API references for individual test methods include troubleshooting tips.
"""
def test_embed_query(self, model: Embeddings) -> None:
"""Test embedding a string query.
??? note "Troubleshooting"
If this test fails, check that:
1. The model will generate a list of floats when calling `.embed_query`
on a string.
2. The length of the list is consistent across different inputs.
"""
embedding_1 = model.embed_query("foo")
assert isinstance(embedding_1, list)
assert isinstance(embedding_1[0], float)
embedding_2 = model.embed_query("bar")
assert len(embedding_1) > 0
assert len(embedding_1) == len(embedding_2)
def test_embed_documents(self, model: Embeddings) -> None:
"""Test embedding a list of strings.
??? note "Troubleshooting"
If this test fails, check that:
1. The model will generate a list of lists of floats when calling
`embed_documents` on a list of strings.
2. The length of each list is the same.
"""
documents = ["foo", "bar", "baz"]
embeddings = model.embed_documents(documents)
assert len(embeddings) == len(documents)
assert all(isinstance(embedding, list) for embedding in embeddings)
assert all(isinstance(embedding[0], float) for embedding in embeddings)
assert len(embeddings[0]) > 0
assert all(len(embedding) == len(embeddings[0]) for embedding in embeddings)
async def test_aembed_query(self, model: Embeddings) -> None:
"""Test embedding a string query async.
??? note "Troubleshooting"
If this test fails, check that:
1. The model will generate a list of floats when calling `aembed_query`
on a string.
2. The length of the list is consistent across different inputs.
"""
embedding_1 = await model.aembed_query("foo")
assert isinstance(embedding_1, list)
assert isinstance(embedding_1[0], float)
embedding_2 = await model.aembed_query("bar")
assert len(embedding_1) > 0
assert len(embedding_1) == len(embedding_2)
async def test_aembed_documents(self, model: Embeddings) -> None:
"""Test embedding a list of strings async.
??? note "Troubleshooting"
If this test fails, check that:
1. The model will generate a list of lists of floats when calling
`aembed_documents` on a list of strings.
2. The length of each list is the same.
"""
documents = ["foo", "bar", "baz"]
embeddings = await model.aembed_documents(documents)
assert len(embeddings) == len(documents)
assert all(isinstance(embedding, list) for embedding in embeddings)
assert all(isinstance(embedding[0], float) for embedding in embeddings)
assert len(embeddings[0]) > 0
assert all(len(embedding) == len(embeddings[0]) for embedding in embeddings)
Domain
Subdomains
Classes
Dependencies
- langchain_core.embeddings
- langchain_tests.unit_tests.embeddings
Source
Frequently Asked Questions
What does embeddings.py do?
embeddings.py is a source file in the langchain codebase, written in python. It belongs to the CoreAbstractions domain, MessageSchema subdomain.
What does embeddings.py depend on?
embeddings.py imports 2 module(s): langchain_core.embeddings, langchain_tests.unit_tests.embeddings.
Where is embeddings.py in the architecture?
embeddings.py is located at libs/standard-tests/langchain_tests/integration_tests/embeddings.py (domain: CoreAbstractions, subdomain: MessageSchema, directory: libs/standard-tests/langchain_tests/integration_tests).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free