diff --git a/src/backend/base/langflow/components/experimental/Embed.py b/src/backend/base/langflow/components/experimental/Embed.py new file mode 100644 index 000000000..88de23486 --- /dev/null +++ b/src/backend/base/langflow/components/experimental/Embed.py @@ -0,0 +1,15 @@ +from langflow.custom import CustomComponent +from langflow.schema import Record +from langflow.field_typing import Embeddings + + +class EmbedComponent(CustomComponent): + display_name = "Embed Texts" + + def build_config(self): + return {"texts": {"display_name": "Texts"}, "embbedings": {"display_name": "Embeddings"}} + + def build(self, texts: list[str], embbedings: Embeddings) -> Embeddings: + vectors = Record(vector=embbedings.embed_documents(texts)) + self.status = vectors + return vectors diff --git a/src/backend/base/langflow/components/prompts/Prompt.py b/src/backend/base/langflow/components/prompts/Prompt.py new file mode 100644 index 000000000..ca421b395 --- /dev/null +++ b/src/backend/base/langflow/components/prompts/Prompt.py @@ -0,0 +1,24 @@ +from langflow.custom import CustomComponent +from langflow.field_typing import TemplateField +from langflow.field_typing.prompt import Prompt + + +class PromptComponent(CustomComponent): + display_name: str = "Empty Prompt" + description: str = "Create a prompt template with dynamic variables." + icon = "prompts" + + def build_config(self): + return { + "template": TemplateField(display_name="Template"), + "code": TemplateField(advanced=True), + } + + async def build( + self, + template: Prompt, + **kwargs, + ) -> Prompt: + prompt = await Prompt.from_template_and_variables(template, kwargs) + self.status = prompt.format_text() + return prompt