From 941cdd4990ccda2d9c19121765b13829ec428669 Mon Sep 17 00:00:00 2001 From: Gabriel Luiz Freitas Almeida Date: Thu, 2 Nov 2023 22:54:17 -0300 Subject: [PATCH] =?UTF-8?q?=F0=9F=93=A6=20chore(ConversationChain.py):=20a?= =?UTF-8?q?dd=20ConversationChain=20component=20to=20handle=20conversation?= =?UTF-8?q?s=20and=20load=20context=20from=20memory=20=F0=9F=93=A6=20chore?= =?UTF-8?q?(LLMChain.py):=20add=20optional=20memory=20parameter=20to=20LLM?= =?UTF-8?q?Chain=20build=20method=20to=20support=20loading=20context=20fro?= =?UTF-8?q?m=20memory?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/chains/ConversationChain.py | 24 +++++++++++++++++++ .../langflow/components/chains/LLMChain.py | 3 ++- 2 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 src/backend/langflow/components/chains/ConversationChain.py diff --git a/src/backend/langflow/components/chains/ConversationChain.py b/src/backend/langflow/components/chains/ConversationChain.py new file mode 100644 index 000000000..530c6fb01 --- /dev/null +++ b/src/backend/langflow/components/chains/ConversationChain.py @@ -0,0 +1,24 @@ +from langflow import CustomComponent +from langchain.chains import ConversationChain +from typing import Optional, Union, Callable +from langflow.field_typing import BaseLanguageModel, BaseMemory, Chain + + +class ConversationChainComponent(CustomComponent): + display_name = "ConversationChain" + description = "Chain to have a conversation and load context from memory." + + def build_config(self): + return { + "prompt": {"display_name": "Prompt"}, + "llm": {"display_name": "LLM"}, + "memory": {"display_name": "Memory"}, + "code": {"show": False}, + } + + def build( + self, + llm: BaseLanguageModel, + memory: Optional[BaseMemory] = None, + ) -> Union[Chain, Callable]: + return ConversationChain(llm=llm, memory=memory) diff --git a/src/backend/langflow/components/chains/LLMChain.py b/src/backend/langflow/components/chains/LLMChain.py index 5056c7f43..12b38a27a 100644 --- a/src/backend/langflow/components/chains/LLMChain.py +++ b/src/backend/langflow/components/chains/LLMChain.py @@ -13,12 +13,13 @@ class LLMChainComponent(CustomComponent): "prompt": {"display_name": "Prompt"}, "llm": {"display_name": "LLM"}, "memory": {"display_name": "Memory"}, + "code": {"show": False}, } def build( self, prompt: PromptTemplate, llm: BaseLanguageModel, - memory: Optional[BaseMemory], + memory: Optional[BaseMemory] = None, ) -> Union[Chain, Callable]: return LLMChain(prompt=prompt, llm=llm, memory=memory)