From 08849b6bab5b973164bd80a39289f7799e28f0fa Mon Sep 17 00:00:00 2001 From: Phil Miesle Date: Fri, 22 Nov 2024 18:05:40 +0000 Subject: [PATCH] feat: adds LangChain Fake Embeddings (#4789) adding LangChain Fake Embeddings Co-authored-by: Eric Hare --- .../langchain_utilities/__init__.py | 2 ++ .../langchain_utilities/fake_embeddings.py | 26 +++++++++++++++++++ 2 files changed, 28 insertions(+) create mode 100644 src/backend/base/langflow/components/langchain_utilities/fake_embeddings.py diff --git a/src/backend/base/langflow/components/langchain_utilities/__init__.py b/src/backend/base/langflow/components/langchain_utilities/__init__.py index 16961327e..42f1939f9 100644 --- a/src/backend/base/langflow/components/langchain_utilities/__init__.py +++ b/src/backend/base/langflow/components/langchain_utilities/__init__.py @@ -1,6 +1,7 @@ from .character import CharacterTextSplitterComponent from .conversation import ConversationChainComponent from .csv import CSVAgentComponent +from .fake_embeddings import FakeEmbeddingsComponent from .html_link_extractor import HtmlLinkExtractorComponent from .json import JsonAgentComponent from .json_document_builder import JSONDocumentBuilder @@ -30,6 +31,7 @@ __all__ = [ "CharacterTextSplitterComponent", "ConversationChainComponent", "CSVAgentComponent", + "FakeEmbeddingsComponent", "HtmlLinkExtractorComponent", "JSONDocumentBuilder", "JsonAgentComponent", diff --git a/src/backend/base/langflow/components/langchain_utilities/fake_embeddings.py b/src/backend/base/langflow/components/langchain_utilities/fake_embeddings.py new file mode 100644 index 000000000..bb0e1ff36 --- /dev/null +++ b/src/backend/base/langflow/components/langchain_utilities/fake_embeddings.py @@ -0,0 +1,26 @@ +from langchain_community.embeddings import FakeEmbeddings + +from langflow.base.embeddings.model import LCEmbeddingsModel +from langflow.field_typing import Embeddings +from langflow.io import IntInput + + +class FakeEmbeddingsComponent(LCEmbeddingsModel): + display_name = "Fake Embeddings" + description = "Generate fake embeddings, useful for initial testing and connecting components." + icon = "LangChain" + name = "LangChainFakeEmbeddings" + + inputs = [ + IntInput( + name="dimensions", + display_name="Dimensions", + info="The number of dimensions the resulting output embeddings should have.", + value=5, + ), + ] + + def build_embeddings(self) -> Embeddings: + return FakeEmbeddings( + size=self.dimensions or 5, + )