Home / Class/ EmbeddingsIntegrationTests Class — langchain Architecture

EmbeddingsIntegrationTests Class — langchain Architecture

Architecture documentation for the EmbeddingsIntegrationTests class in embeddings.py from the langchain codebase.

Entity Profile

Dependency Diagram

graph TD
  62dd6083_6171_c59e_a7f4_2ef6b850810c["EmbeddingsIntegrationTests"]
  7f874e7e_e3e0_e72d_7d8c_b0f10e3f8e26["EmbeddingsTests"]
  62dd6083_6171_c59e_a7f4_2ef6b850810c -->|extends| 7f874e7e_e3e0_e72d_7d8c_b0f10e3f8e26
  8ced2803_d437_6f31_79fb_a35b46100c40["embeddings.py"]
  62dd6083_6171_c59e_a7f4_2ef6b850810c -->|defined in| 8ced2803_d437_6f31_79fb_a35b46100c40
  0032878c_f933_57ed_a972_e072a06525c5["test_embed_query()"]
  62dd6083_6171_c59e_a7f4_2ef6b850810c -->|method| 0032878c_f933_57ed_a972_e072a06525c5
  6b4fd8bf_19d2_81ff_6cc1_c4ff185d8f23["test_embed_documents()"]
  62dd6083_6171_c59e_a7f4_2ef6b850810c -->|method| 6b4fd8bf_19d2_81ff_6cc1_c4ff185d8f23
  823ad989_5671_c0e7_76b2_a792b3272b41["test_aembed_query()"]
  62dd6083_6171_c59e_a7f4_2ef6b850810c -->|method| 823ad989_5671_c0e7_76b2_a792b3272b41
  07f65a12_7e42_40fc_948c_955646a9e215["test_aembed_documents()"]
  62dd6083_6171_c59e_a7f4_2ef6b850810c -->|method| 07f65a12_7e42_40fc_948c_955646a9e215

Relationship Graph

Source Code

libs/standard-tests/langchain_tests/integration_tests/embeddings.py lines 8–119

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.

Extends

Frequently Asked Questions

What is the EmbeddingsIntegrationTests class?
EmbeddingsIntegrationTests is a class in the langchain codebase, defined in libs/standard-tests/langchain_tests/integration_tests/embeddings.py.
Where is EmbeddingsIntegrationTests defined?
EmbeddingsIntegrationTests is defined in libs/standard-tests/langchain_tests/integration_tests/embeddings.py at line 8.
What does EmbeddingsIntegrationTests extend?
EmbeddingsIntegrationTests extends EmbeddingsTests.

Analyze Your Own Codebase

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

Try Supermodel Free