Home / Class/ OpenAIEmbeddings Class — langchain Architecture

OpenAIEmbeddings Class — langchain Architecture

Architecture documentation for the OpenAIEmbeddings class in base.py from the langchain codebase.

Entity Profile

Dependency Diagram

graph TD
  02ce964e_7ae0_baca_8a6a_784328c5c8a2["OpenAIEmbeddings"]
  c58e6864_9429_b081_883b_39ba15df0485["Embeddings"]
  02ce964e_7ae0_baca_8a6a_784328c5c8a2 -->|extends| c58e6864_9429_b081_883b_39ba15df0485
  d4ed0629_cc6d_c482_1002_6d2e1e34fca7["base.py"]
  02ce964e_7ae0_baca_8a6a_784328c5c8a2 -->|defined in| d4ed0629_cc6d_c482_1002_6d2e1e34fca7
  a6883fce_c28e_ccf2_a247_ed4b381c3d55["build_extra()"]
  02ce964e_7ae0_baca_8a6a_784328c5c8a2 -->|method| a6883fce_c28e_ccf2_a247_ed4b381c3d55
  fc863327_f0e0_4139_50b5_8b89b099746f["validate_environment()"]
  02ce964e_7ae0_baca_8a6a_784328c5c8a2 -->|method| fc863327_f0e0_4139_50b5_8b89b099746f
  98542c86_111a_0325_5a27_62aa99d69626["_invocation_params()"]
  02ce964e_7ae0_baca_8a6a_784328c5c8a2 -->|method| 98542c86_111a_0325_5a27_62aa99d69626
  593207ba_493c_164a_76eb_fa517d599359["_ensure_sync_client_available()"]
  02ce964e_7ae0_baca_8a6a_784328c5c8a2 -->|method| 593207ba_493c_164a_76eb_fa517d599359
  4a5d9586_0c4d_5a73_b24c_9264385aa161["_tokenize()"]
  02ce964e_7ae0_baca_8a6a_784328c5c8a2 -->|method| 4a5d9586_0c4d_5a73_b24c_9264385aa161
  f8a1b01b_dad7_b4dd_6b8c_a1b15fb3f50c["_get_len_safe_embeddings()"]
  02ce964e_7ae0_baca_8a6a_784328c5c8a2 -->|method| f8a1b01b_dad7_b4dd_6b8c_a1b15fb3f50c
  01a4554a_03d1_73aa_1e68_6aca5d7cc04c["_aget_len_safe_embeddings()"]
  02ce964e_7ae0_baca_8a6a_784328c5c8a2 -->|method| 01a4554a_03d1_73aa_1e68_6aca5d7cc04c
  88f98242_92d2_959c_e03a_78e52ef92089["embed_documents()"]
  02ce964e_7ae0_baca_8a6a_784328c5c8a2 -->|method| 88f98242_92d2_959c_e03a_78e52ef92089
  c7b01758_4a42_ca34_32be_9b682b692308["aembed_documents()"]
  02ce964e_7ae0_baca_8a6a_784328c5c8a2 -->|method| c7b01758_4a42_ca34_32be_9b682b692308
  a9adef1a_33c9_71b5_c622_eeeeebf1e8cf["embed_query()"]
  02ce964e_7ae0_baca_8a6a_784328c5c8a2 -->|method| a9adef1a_33c9_71b5_c622_eeeeebf1e8cf
  9a609982_4ee4_f66a_d069_b18e17d2baaf["aembed_query()"]
  02ce964e_7ae0_baca_8a6a_784328c5c8a2 -->|method| 9a609982_4ee4_f66a_d069_b18e17d2baaf

Relationship Graph

Source Code

libs/partners/openai/langchain_openai/embeddings/base.py lines 86–772

class OpenAIEmbeddings(BaseModel, Embeddings):
    """OpenAI embedding model integration.

    Setup:
        Install `langchain_openai` and set environment variable `OPENAI_API_KEY`.

        ```bash
        pip install -U langchain_openai
        export OPENAI_API_KEY="your-api-key"
        ```

    Key init args — embedding params:
        model:
            Name of OpenAI model to use.
        dimensions:
            The number of dimensions the resulting output embeddings should have.
            Only supported in `'text-embedding-3'` and later models.

    Key init args — client params:
        api_key:
            OpenAI API key.
        organization:
            OpenAI organization ID. If not passed in will be read
            from env var `OPENAI_ORG_ID`.
        max_retries:
            Maximum number of retries to make when generating.
        request_timeout:
            Timeout for requests to OpenAI completion API

    See full list of supported init args and their descriptions in the params section.

    Instantiate:
        ```python
        from langchain_openai import OpenAIEmbeddings

        embed = OpenAIEmbeddings(
            model="text-embedding-3-large"
            # With the `text-embedding-3` class
            # of models, you can specify the size
            # of the embeddings you want returned.
            # dimensions=1024
        )
        ```

    Embed single text:
        ```python
        input_text = "The meaning of life is 42"
        vector = embeddings.embed_query("hello")
        print(vector[:3])
        ```
        ```python
        [-0.024603435769677162, -0.007543657906353474, 0.0039630369283258915]
        ```

    Embed multiple texts:
        ```python
        vectors = embeddings.embed_documents(["hello", "goodbye"])
        # Showing only the first 3 coordinates
        print(len(vectors))
        print(vectors[0][:3])
        ```
        ```python
        2
        [-0.024603435769677162, -0.007543657906353474, 0.0039630369283258915]
        ```

    Async:
        ```python
        await embed.aembed_query(input_text)
        print(vector[:3])

        # multiple:
        # await embed.aembed_documents(input_texts)
        ```
        ```python
        [-0.009100092574954033, 0.005071679595857859, -0.0029193938244134188]
        ```
    """

    client: Any = Field(default=None, exclude=True)

Extends

Frequently Asked Questions

What is the OpenAIEmbeddings class?
OpenAIEmbeddings is a class in the langchain codebase, defined in libs/partners/openai/langchain_openai/embeddings/base.py.
Where is OpenAIEmbeddings defined?
OpenAIEmbeddings is defined in libs/partners/openai/langchain_openai/embeddings/base.py at line 86.
What does OpenAIEmbeddings extend?
OpenAIEmbeddings extends Embeddings.

Analyze Your Own Codebase

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

Try Supermodel Free