From d99bcbd80b4fe1ee91206a114711307b02899906 Mon Sep 17 00:00:00 2001 From: Gabriel Luiz Freitas Almeida Date: Fri, 4 Aug 2023 00:11:00 -0300 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20feat(prompt=5Frunner.py):=20add=20P?= =?UTF-8?q?romptRunner=20component=20to=20run=20a=20Chain=20with=20a=20giv?= =?UTF-8?q?en=20PromptTemplate?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/chains/prompt_runner.py | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 src/backend/langflow/components/chains/prompt_runner.py diff --git a/src/backend/langflow/components/chains/prompt_runner.py b/src/backend/langflow/components/chains/prompt_runner.py new file mode 100644 index 000000000..ebc1d0167 --- /dev/null +++ b/src/backend/langflow/components/chains/prompt_runner.py @@ -0,0 +1,31 @@ +from langflow import CustomComponent + +from langchain.llms.base import BaseLLM +from langchain import PromptTemplate +from langchain.schema import Document + + +class PromptRunner(CustomComponent): + display_name: str = "Prompt Runner" + description: str = "Run a Chain with the given PromptTemplate" + beta = True + field_config = { + "llm": {"display_name": "LLM"}, + "prompt": { + "display_name": "Prompt Template", + "info": "Make sure the prompt has all variables filled.", + }, + "code": {"show": False}, + "inputs": {"field_type": "code"}, + } + + def build( + self, + llm: BaseLLM, + prompt: PromptTemplate, + ) -> Document: + chain = prompt | llm + result = chain.invoke() + result = result[chain.output_key] + self.repr_value = result + return Document(page_content=str(result))