feat: Add EmbedComponent and PromptComponent to langflow components

This commit is contained in:
Rodrigo 2024-06-10 21:26:21 -03:00
commit 6cc31da766
2 changed files with 39 additions and 0 deletions

View file

@ -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

View file

@ -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