Home / File/ embeddings.py — langchain Source File

embeddings.py — langchain Source File

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

Entity Profile

Dependency Diagram

graph LR
  618d8629_65e4_64b6_42e3_5b3ce73dcfc4["embeddings.py"]
  bc46b61d_cfdf_3f6b_a9dd_ac2a328d84b3["langchain_core.embeddings"]
  618d8629_65e4_64b6_42e3_5b3ce73dcfc4 --> bc46b61d_cfdf_3f6b_a9dd_ac2a328d84b3
  f4d905c6_a2b2_eb8f_be9b_7808b72f6a16["langchain_core.utils"]
  618d8629_65e4_64b6_42e3_5b3ce73dcfc4 --> f4d905c6_a2b2_eb8f_be9b_7808b72f6a16
  45fc8fd3_e815_b442_a6d1_0dedc9327b62["openai"]
  618d8629_65e4_64b6_42e3_5b3ce73dcfc4 --> 45fc8fd3_e815_b442_a6d1_0dedc9327b62
  6e58aaea_f08e_c099_3cc7_f9567bfb1ae7["pydantic"]
  618d8629_65e4_64b6_42e3_5b3ce73dcfc4 --> 6e58aaea_f08e_c099_3cc7_f9567bfb1ae7
  91721f45_4909_e489_8c1f_084f8bd87145["typing_extensions"]
  618d8629_65e4_64b6_42e3_5b3ce73dcfc4 --> 91721f45_4909_e489_8c1f_084f8bd87145
  style 618d8629_65e4_64b6_42e3_5b3ce73dcfc4 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

from langchain_core.embeddings import Embeddings
from langchain_core.utils import secret_from_env
from openai import OpenAI
from pydantic import BaseModel, ConfigDict, Field, SecretStr, model_validator
from typing_extensions import Self


class FireworksEmbeddings(BaseModel, Embeddings):
    """Fireworks embedding model integration.

    Setup:

        Install `langchain_fireworks` and set environment variable
        `FIREWORKS_API_KEY`.

        ```bash
        pip install -U langchain_fireworks
        export FIREWORKS_API_KEY="your-api-key"
        ```

    Key init args — completion params:
        model:
            Name of Fireworks model to use.

    Key init args — client params:
        fireworks_api_key:
            Fireworks API key.

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

    Instantiate:

        ```python
        from langchain_fireworks import FireworksEmbeddings

        model = FireworksEmbeddings(
            model="nomic-ai/nomic-embed-text-v1.5"
            # Use FIREWORKS_API_KEY env var or pass it in directly
            # fireworks_api_key="..."
        )
        ```

    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]
        ```

    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]
        ```
    """

    client: OpenAI = Field(default=None, exclude=True)  # type: ignore[assignment]

    fireworks_api_key: SecretStr = Field(
        alias="api_key",
        default_factory=secret_from_env(
            "FIREWORKS_API_KEY",
            default="",
        ),
    )
    """Fireworks API key.

    Automatically read from env variable `FIREWORKS_API_KEY` if not provided.
    """

    model: str = "nomic-ai/nomic-embed-text-v1.5"

    model_config = ConfigDict(
        populate_by_name=True,
        arbitrary_types_allowed=True,
    )

    @model_validator(mode="after")
    def validate_environment(self) -> Self:
        """Validate environment variables."""
        self.client = OpenAI(
            api_key=self.fireworks_api_key.get_secret_value(),
            base_url="https://api.fireworks.ai/inference/v1",
        )
        return self

    def embed_documents(self, texts: list[str]) -> list[list[float]]:
        """Embed search docs."""
        return [
            i.embedding
            for i in self.client.embeddings.create(input=texts, model=self.model).data
        ]

    def embed_query(self, text: str) -> list[float]:
        """Embed query text."""
        return self.embed_documents([text])[0]

Subdomains

Dependencies

  • langchain_core.embeddings
  • langchain_core.utils
  • openai
  • pydantic
  • typing_extensions

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, Serialization subdomain.
What does embeddings.py depend on?
embeddings.py imports 5 module(s): langchain_core.embeddings, langchain_core.utils, openai, pydantic, typing_extensions.
Where is embeddings.py in the architecture?
embeddings.py is located at libs/partners/fireworks/langchain_fireworks/embeddings.py (domain: CoreAbstractions, subdomain: Serialization, directory: libs/partners/fireworks/langchain_fireworks).

Analyze Your Own Codebase

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

Try Supermodel Free