Home / File/ fake_embeddings.py — langchain Source File

fake_embeddings.py — langchain Source File

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

File python LangChainCore Runnables 2 imports 3 classes

Entity Profile

Dependency Diagram

graph LR
  137cdc23_3587_d3e6_41a8_782c05eb74a4["fake_embeddings.py"]
  5ae36043_4f11_1bb7_1115_8f9929a82759["math"]
  137cdc23_3587_d3e6_41a8_782c05eb74a4 --> 5ae36043_4f11_1bb7_1115_8f9929a82759
  918b8514_ba55_6df2_7254_4598ec160e33["langchain_core.embeddings"]
  137cdc23_3587_d3e6_41a8_782c05eb74a4 --> 918b8514_ba55_6df2_7254_4598ec160e33
  style 137cdc23_3587_d3e6_41a8_782c05eb74a4 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

"""Fake Embedding class for testing purposes."""

import math

from langchain_core.embeddings import Embeddings

fake_texts = ["foo", "bar", "baz"]


class FakeEmbeddings(Embeddings):
    """Fake embeddings functionality for testing."""

    def embed_documents(self, texts: list[str]) -> list[list[float]]:
        """Return simple embeddings.
        Embeddings encode each text as its index."""
        return [[1.0] * 9 + [float(i)] for i in range(len(texts))]

    async def aembed_documents(self, texts: list[str]) -> list[list[float]]:
        return self.embed_documents(texts)

    def embed_query(self, text: str) -> list[float]:
        """Return constant query embeddings.
        Embeddings are identical to embed_documents(texts)[0].
        Distance to each text will be that text's index,
        as it was passed to embed_documents."""
        return [1.0] * 9 + [0.0]

    async def aembed_query(self, text: str) -> list[float]:
        return self.embed_query(text)


class ConsistentFakeEmbeddings(FakeEmbeddings):
    """Fake embeddings which remember all the texts seen so far to return consistent
    vectors for the same texts."""

    def __init__(self, dimensionality: int = 10) -> None:
        self.known_texts: list[str] = []
        self.dimensionality = dimensionality

    def embed_documents(self, texts: list[str]) -> list[list[float]]:
        """Return consistent embeddings for each text seen so far."""
        out_vectors = []
        for text in texts:
            if text not in self.known_texts:
                self.known_texts.append(text)
            vector = [1.0] * (self.dimensionality - 1) + [
                float(self.known_texts.index(text)),
            ]
            out_vectors.append(vector)
        return out_vectors

    def embed_query(self, text: str) -> list[float]:
        """Return consistent embeddings for the text, if seen before, or a constant
        one if the text is unknown."""
        return self.embed_documents([text])[0]


class AngularTwoDimensionalEmbeddings(Embeddings):
    """
    From angles (as strings in units of pi) to unit embedding vectors on a circle.
    """

    def embed_documents(self, texts: list[str]) -> list[list[float]]:
        """
        Make a list of texts into a list of embedding vectors.
        """
        return [self.embed_query(text) for text in texts]

    def embed_query(self, text: str) -> list[float]:
        """
        Convert input text to a 'vector' (list of floats).
        If the text is a number, use it as the angle for the
        unit vector in units of pi.
        Any other input text becomes the singular result [0, 0] !
        """
        try:
            angle = float(text)
            return [math.cos(angle * math.pi), math.sin(angle * math.pi)]
        except ValueError:
            # Assume: just test string, no attention is paid to values.
            return [0.0, 0.0]

Domain

Subdomains

Dependencies

  • langchain_core.embeddings
  • math

Frequently Asked Questions

What does fake_embeddings.py do?
fake_embeddings.py is a source file in the langchain codebase, written in python. It belongs to the LangChainCore domain, Runnables subdomain.
What does fake_embeddings.py depend on?
fake_embeddings.py imports 2 module(s): langchain_core.embeddings, math.
Where is fake_embeddings.py in the architecture?
fake_embeddings.py is located at libs/partners/chroma/tests/integration_tests/fake_embeddings.py (domain: LangChainCore, subdomain: Runnables, directory: libs/partners/chroma/tests/integration_tests).

Analyze Your Own Codebase

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

Try Supermodel Free