diff --git a/src/backend/langflow/components/prompts/Prompt.py b/src/backend/langflow/components/prompts/Prompt.py new file mode 100644 index 000000000..803a9170b --- /dev/null +++ b/src/backend/langflow/components/prompts/Prompt.py @@ -0,0 +1,28 @@ +from langchain_core.prompts import PromptTemplate +from langflow import CustomComponent +from langflow.field_typing import Prompt, TemplateField, Text + + +class PromptComponent(CustomComponent): + display_name: str = "Prompt" + description: str = "A component for creating prompts using templates" + beta = True + + def build_config(self): + return { + "template": TemplateField(display_name="Template"), + "code": TemplateField(advanced=True), + } + + def build( + self, + template: Prompt, + **kwargs, + ) -> Text: + prompt_template = PromptTemplate.from_template(template) + try: + formated_prompt = prompt_template.format(**kwargs) + except Exception as exc: + raise ValueError(f"Error formatting prompt: {exc}") from exc + self.status = f'Prompt: "{formated_prompt}"' + return formated_prompt diff --git a/src/backend/langflow/components/prompts/__init_.py b/src/backend/langflow/components/prompts/__init_.py new file mode 100644 index 000000000..e69de29bb