From 67f8bb9dab66151083743e7a2d5833d9d0e69b22 Mon Sep 17 00:00:00 2001 From: Gabriel Luiz Freitas Almeida Date: Wed, 9 Aug 2023 21:10:31 -0300 Subject: [PATCH 01/13] =?UTF-8?q?=F0=9F=90=9B=20fix(base.py):=20fix=20memo?= =?UTF-8?q?ry=20inputs=20only=20if=20langchain=5Fobject=20is=20not=20an=20?= =?UTF-8?q?instance=20of=20AgentExecutor=20to=20prevent=20unnecessary=20fi?= =?UTF-8?q?x?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 🔀 chore(base.py): merge changes from langchain.agents.agent module to base module --- src/backend/langflow/processing/base.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/backend/langflow/processing/base.py b/src/backend/langflow/processing/base.py index f1d7b6e56..13ff6a385 100644 --- a/src/backend/langflow/processing/base.py +++ b/src/backend/langflow/processing/base.py @@ -5,6 +5,7 @@ from langflow.api.v1.callback import ( ) from langflow.processing.process import fix_memory_inputs, format_actions from langflow.utils.logger import logger +from langchain.agents.agent import AgentExecutor async def get_result_and_steps(langchain_object, inputs: Union[dict, str], **kwargs): @@ -20,7 +21,8 @@ async def get_result_and_steps(langchain_object, inputs: Union[dict, str], **kwa # to display intermediate steps langchain_object.return_intermediate_steps = True try: - fix_memory_inputs(langchain_object) + if not isinstance(langchain_object, AgentExecutor): + fix_memory_inputs(langchain_object) except Exception as exc: logger.error(f"Error fixing memory inputs: {exc}") From 2725e24ced035aa11b80e932c30fd4fd383c0e2c Mon Sep 17 00:00:00 2001 From: Gabriel Luiz Freitas Almeida Date: Wed, 9 Aug 2023 21:11:00 -0300 Subject: [PATCH 02/13] =?UTF-8?q?=F0=9F=9A=80=20feat(constants.py):=20add?= =?UTF-8?q?=20BaseMemory=20to=20LANGCHAIN=5FBASE=5FTYPES=20to=20support=20?= =?UTF-8?q?custom=20memory=20implementation=20in=20Langchain=20interface?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 📝 WHY: The addition of BaseMemory to LANGCHAIN_BASE_TYPES allows for the customization of the memory component in the Langchain interface. This enables users to implement their own memory functionality according to their specific needs. --- src/backend/langflow/interface/custom/constants.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/backend/langflow/interface/custom/constants.py b/src/backend/langflow/interface/custom/constants.py index 83cf4b463..891fc75f9 100644 --- a/src/backend/langflow/interface/custom/constants.py +++ b/src/backend/langflow/interface/custom/constants.py @@ -8,6 +8,7 @@ from langchain.text_splitter import TextSplitter from langchain.tools import Tool from langchain.vectorstores.base import VectorStore from langchain.schema import BaseOutputParser +from langchain.schema.memory import BaseMemory LANGCHAIN_BASE_TYPES = { @@ -22,6 +23,7 @@ LANGCHAIN_BASE_TYPES = { "Embeddings": Embeddings, "BaseRetriever": BaseRetriever, "BaseOutputParser": BaseOutputParser, + "BaseMemory": BaseMemory, } # Langchain base types plus Python base types From 31e02fe25c4e5a1db66ea45a3f1a12321aff9d60 Mon Sep 17 00:00:00 2001 From: Gabriel Luiz Freitas Almeida Date: Wed, 9 Aug 2023 21:37:11 -0300 Subject: [PATCH 03/13] =?UTF-8?q?=E2=9C=A8=20feat(ConversationalAgent.py):?= =?UTF-8?q?=20add=20ConversationalAgent=20component=20to=20handle=20conver?= =?UTF-8?q?sational=20interactions=20using=20OpenAI's=20function=20calling?= =?UTF-8?q?=20API?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This commit adds a new file `ConversationalAgent.py` to the `src/backend/langflow/components/agents` directory. The `ConversationalAgent` class is a custom component that represents a conversational agent capable of using OpenAI's function calling API. The `ConversationalAgent` class has the following features: - It inherits from the `CustomComponent` class. - It has a `display_name` attribute set to "OpenaAI Conversational Agent". - It has a `description` attribute set to "Conversational Agent that can use OpenAI's function calling API". - It implements the `build_config` method to define the configuration options for the agent. - It implements the `build` method to create an instance of the `AgentExecutor` class, which represents the agent's execution environment. - The `build` method takes several parameters, including `model_name`, `tools`, `memory`, `system_message`, and `max_token_limit`. - It uses the `ChatOpenAI` class from the `langchain.chat_models` module to create an instance of the OpenAI language model. - It uses the `ConversationTokenBufferMemory` class from the `langchain.memory.token_buffer` module to handle conversation history and token buffering. - It uses the `OpenAIFunctionsAgent` class from the `langchain.agents.openai_functions_agent.base` module to create an instance of the OpenAI functions agent. - It returns an instance of the `AgentExecutor` class with the agent, tools, memory, verbose, and return_intermediate_steps parameters set. 📝 feat(__init__.py): add empty __init__.py file to the agents directory This commit adds an empty `__init__.py` file to the `src/backend/langflow/components/agents` directory. The `__init__.py` file is necessary to make the `agents` directory a Python package. --- .../components/agents/ConversationalAgent.py | 71 +++++++++++++++++++ .../langflow/components/agents/__init__.py | 0 2 files changed, 71 insertions(+) create mode 100644 src/backend/langflow/components/agents/ConversationalAgent.py create mode 100644 src/backend/langflow/components/agents/__init__.py diff --git a/src/backend/langflow/components/agents/ConversationalAgent.py b/src/backend/langflow/components/agents/ConversationalAgent.py new file mode 100644 index 000000000..9c2bb400b --- /dev/null +++ b/src/backend/langflow/components/agents/ConversationalAgent.py @@ -0,0 +1,71 @@ +from langflow import CustomComponent +from typing import Optional +from langchain.prompts import SystemMessagePromptTemplate +from langchain.tools import Tool +from langchain.schema.memory import BaseMemory +from langchain.chat_models import ChatOpenAI + +from langchain.agents.agent import AgentExecutor +from langchain.agents.openai_functions_agent.base import OpenAIFunctionsAgent +from langchain.memory.token_buffer import ConversationTokenBufferMemory +from langchain.prompts.chat import MessagesPlaceholder +from langchain.agents.agent_toolkits.conversational_retrieval.openai_functions import ( + _get_default_system_message, +) + + +class ConversationalAgent(CustomComponent): + display_name: str = "OpenaAI Conversational Agent" + description: str = "Conversational Agent that can use OpenAI's function calling API" + + def build_config(self): + openai_function_models = [ + "gpt-3.5-turbo-0613", + "gpt-3.5-turbo-16k-0613", + "gpt-4-0613", + "gpt-4-32k-0613", + ] + return { + "tools": {"is_list": True}, + "model_name": { + "display_name": "Model Name", + "options": openai_function_models, + "value": openai_function_models[0], + }, + "code": {"show": False}, + } + + def build( + self, + model_name: str, + tools: Tool, + memory: Optional[BaseMemory] = None, + system_message: Optional[SystemMessagePromptTemplate] = None, + max_token_limit: int = 2000, + ) -> AgentExecutor: + llm = ChatOpenAI(model_name=model_name) + if not memory: + memory_key = "chat_history" + memory = ConversationTokenBufferMemory( + memory_key=memory_key, + return_messages=True, + output_key="output", + llm=llm, + max_token_limit=max_token_limit, + ) + else: + memory_key = memory.memory_key + + _system_message = system_message or _get_default_system_message() + prompt = OpenAIFunctionsAgent.create_prompt( + system_message=_system_message, + extra_prompt_messages=[MessagesPlaceholder(variable_name=memory_key)], + ) + agent = OpenAIFunctionsAgent(llm=llm, tools=tools, prompt=prompt) + return AgentExecutor( + agent=agent, + tools=tools, + memory=memory, + verbose=True, + return_intermediate_steps=True, + ) diff --git a/src/backend/langflow/components/agents/__init__.py b/src/backend/langflow/components/agents/__init__.py new file mode 100644 index 000000000..e69de29bb From 44f4fc1e62a7add19bf6ffda6afdb185f119aa3c Mon Sep 17 00:00:00 2001 From: Gabriel Luiz Freitas Almeida Date: Wed, 9 Aug 2023 21:38:39 -0300 Subject: [PATCH 04/13] =?UTF-8?q?=E2=9C=A8=20feat(OpenAIConversationalAgen?= =?UTF-8?q?t.py):=20add=20implementation=20of=20ConversationalAgent=20clas?= =?UTF-8?q?s=20for=20OpenAI=20conversational=20agent?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../{ConversationalAgent.py => OpenAIConversationalAgent.py} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename src/backend/langflow/components/agents/{ConversationalAgent.py => OpenAIConversationalAgent.py} (100%) diff --git a/src/backend/langflow/components/agents/ConversationalAgent.py b/src/backend/langflow/components/agents/OpenAIConversationalAgent.py similarity index 100% rename from src/backend/langflow/components/agents/ConversationalAgent.py rename to src/backend/langflow/components/agents/OpenAIConversationalAgent.py From 5d226d43d133df9ed100c5e1d3356f256d51ab3a Mon Sep 17 00:00:00 2001 From: Gabriel Luiz Freitas Almeida Date: Wed, 9 Aug 2023 21:48:40 -0300 Subject: [PATCH 05/13] =?UTF-8?q?=F0=9F=90=9B=20fix(OpenAIConversationalAg?= =?UTF-8?q?ent.py):=20change=20parameter=20name=20from=20model=5Fname=20to?= =?UTF-8?q?=20model=20to=20improve=20clarity=20and=20consistency?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../langflow/components/agents/OpenAIConversationalAgent.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/backend/langflow/components/agents/OpenAIConversationalAgent.py b/src/backend/langflow/components/agents/OpenAIConversationalAgent.py index 9c2bb400b..d3164e9a3 100644 --- a/src/backend/langflow/components/agents/OpenAIConversationalAgent.py +++ b/src/backend/langflow/components/agents/OpenAIConversationalAgent.py @@ -43,7 +43,7 @@ class ConversationalAgent(CustomComponent): system_message: Optional[SystemMessagePromptTemplate] = None, max_token_limit: int = 2000, ) -> AgentExecutor: - llm = ChatOpenAI(model_name=model_name) + llm = ChatOpenAI(model=model_name) if not memory: memory_key = "chat_history" memory = ConversationTokenBufferMemory( From 1dcdc02e4f43d24af19fc4788e96b43d6baaf816 Mon Sep 17 00:00:00 2001 From: Gabriel Luiz Freitas Almeida Date: Wed, 9 Aug 2023 21:49:20 -0300 Subject: [PATCH 06/13] =?UTF-8?q?=F0=9F=9A=80=20feat(constants.py):=20impo?= =?UTF-8?q?rt=20BaseChatMemory=20from=20langchain.memory.chat=5Fmemory=20m?= =?UTF-8?q?odule=20to=20add=20support=20for=20chat=20memory=20in=20custom?= =?UTF-8?q?=20interfaces?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/backend/langflow/interface/custom/constants.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/backend/langflow/interface/custom/constants.py b/src/backend/langflow/interface/custom/constants.py index 891fc75f9..89d187bb8 100644 --- a/src/backend/langflow/interface/custom/constants.py +++ b/src/backend/langflow/interface/custom/constants.py @@ -9,7 +9,7 @@ from langchain.tools import Tool from langchain.vectorstores.base import VectorStore from langchain.schema import BaseOutputParser from langchain.schema.memory import BaseMemory - +from langchain.memory.chat_memory import BaseChatMemory LANGCHAIN_BASE_TYPES = { "Chain": Chain, @@ -24,6 +24,7 @@ LANGCHAIN_BASE_TYPES = { "BaseRetriever": BaseRetriever, "BaseOutputParser": BaseOutputParser, "BaseMemory": BaseMemory, + "BaseChatMemory": BaseChatMemory, } # Langchain base types plus Python base types From 33ef3b0a7e1a9bdb90019726e71d1c61c5dae338 Mon Sep 17 00:00:00 2001 From: Gabriel Luiz Freitas Almeida Date: Wed, 9 Aug 2023 21:58:25 -0300 Subject: [PATCH 07/13] =?UTF-8?q?=F0=9F=90=9B=20fix(OpenAIConversationalAg?= =?UTF-8?q?ent.py):=20ignore=20type=20errors=20for=20memory=5Fkey,=20syste?= =?UTF-8?q?m=5Fmessage,=20prompt,=20agent,=20and=20tools=20variables=20?= =?UTF-8?q?=E2=9C=A8=20feat(OpenAIConversationalAgent.py):=20add=20support?= =?UTF-8?q?=20for=20return=5Fintermediate=5Fsteps=20parameter=20in=20Agent?= =?UTF-8?q?Executor=20constructor=20to=20enable=20returning=20intermediate?= =?UTF-8?q?=20steps=20during=20conversation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/agents/OpenAIConversationalAgent.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/backend/langflow/components/agents/OpenAIConversationalAgent.py b/src/backend/langflow/components/agents/OpenAIConversationalAgent.py index d3164e9a3..06c0d6779 100644 --- a/src/backend/langflow/components/agents/OpenAIConversationalAgent.py +++ b/src/backend/langflow/components/agents/OpenAIConversationalAgent.py @@ -54,17 +54,19 @@ class ConversationalAgent(CustomComponent): max_token_limit=max_token_limit, ) else: - memory_key = memory.memory_key + memory_key = memory.memory_key # type: ignore _system_message = system_message or _get_default_system_message() prompt = OpenAIFunctionsAgent.create_prompt( - system_message=_system_message, + system_message=_system_message, # type: ignore extra_prompt_messages=[MessagesPlaceholder(variable_name=memory_key)], ) - agent = OpenAIFunctionsAgent(llm=llm, tools=tools, prompt=prompt) + agent = OpenAIFunctionsAgent( + llm=llm, tools=tools, prompt=prompt # type: ignore + ) return AgentExecutor( agent=agent, - tools=tools, + tools=tools, # type: ignore memory=memory, verbose=True, return_intermediate_steps=True, From b0a2258232cbbdce9fd4f682575ccc056acf1ca0 Mon Sep 17 00:00:00 2001 From: Gabriel Luiz Freitas Almeida Date: Wed, 9 Aug 2023 22:06:33 -0300 Subject: [PATCH 08/13] =?UTF-8?q?=F0=9F=94=A7=20chore(OpenAIConversational?= =?UTF-8?q?Agent.py):=20add=20display=20names=20for=20'tools',=20'memory',?= =?UTF-8?q?=20'system=5Fmessage',=20and=20'max=5Ftoken=5Flimit'=20paramete?= =?UTF-8?q?rs=20to=20improve=20readability=20and=20user=20experience?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../langflow/components/agents/OpenAIConversationalAgent.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/backend/langflow/components/agents/OpenAIConversationalAgent.py b/src/backend/langflow/components/agents/OpenAIConversationalAgent.py index 06c0d6779..5d089ab3b 100644 --- a/src/backend/langflow/components/agents/OpenAIConversationalAgent.py +++ b/src/backend/langflow/components/agents/OpenAIConversationalAgent.py @@ -26,7 +26,10 @@ class ConversationalAgent(CustomComponent): "gpt-4-32k-0613", ] return { - "tools": {"is_list": True}, + "tools": {"is_list": True, "display_name": "Tools"}, + "memory": {"display_name": "Memory"}, + "system_message": {"display_name": "System Message"}, + "max_token_limit": {"display_name": "Max Token Limit"}, "model_name": { "display_name": "Model Name", "options": openai_function_models, From cc4008c861ef491723c2f695ff879e788e10f9c0 Mon Sep 17 00:00:00 2001 From: Gabriel Luiz Freitas Almeida Date: Thu, 10 Aug 2023 11:43:46 -0300 Subject: [PATCH 09/13] =?UTF-8?q?=F0=9F=90=9B=20fix(custom=5Fcomponent.py)?= =?UTF-8?q?:=20fix=20incorrect=20usage=20of=20type=5Fhint=20variable=20in?= =?UTF-8?q?=20if=20condition?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/backend/langflow/interface/custom/custom_component.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/backend/langflow/interface/custom/custom_component.py b/src/backend/langflow/interface/custom/custom_component.py index 74d06215f..4151f056d 100644 --- a/src/backend/langflow/interface/custom/custom_component.py +++ b/src/backend/langflow/interface/custom/custom_component.py @@ -50,8 +50,8 @@ class CustomComponent(Component, extra=Extra.allow): for type_hint in TYPE_HINT_LIST: if reader._is_type_hint_used_in_args( - "Optional", code - ) and not reader._is_type_hint_imported("Optional", code): + type_hint, code + ) and not reader._is_type_hint_imported(type_hint, code): error_detail = { "error": "Type hint Error", "traceback": f"Type hint '{type_hint}' is used but not imported in the code.", From 793366797389c6dfa5f333e13d265700bc77f68e Mon Sep 17 00:00:00 2001 From: Gabriel Luiz Freitas Almeida Date: Thu, 10 Aug 2023 13:45:58 -0300 Subject: [PATCH 10/13] =?UTF-8?q?=F0=9F=9A=80=20feat(constants.py):=20impo?= =?UTF-8?q?rt=20AgentExecutor=20from=20langchain.agents.agent=20module=20t?= =?UTF-8?q?o=20use=20it=20in=20LANGCHAIN=5FBASE=5FTYPES=20dictionary=20?= =?UTF-8?q?=F0=9F=94=80=20chore(constants.py):=20remove=20unnecessary=20im?= =?UTF-8?q?port=20statements?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/backend/langflow/interface/custom/constants.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/backend/langflow/interface/custom/constants.py b/src/backend/langflow/interface/custom/constants.py index 83cf4b463..774bfef22 100644 --- a/src/backend/langflow/interface/custom/constants.py +++ b/src/backend/langflow/interface/custom/constants.py @@ -8,10 +8,11 @@ from langchain.text_splitter import TextSplitter from langchain.tools import Tool from langchain.vectorstores.base import VectorStore from langchain.schema import BaseOutputParser - +from langchain.agents.agent import AgentExecutor LANGCHAIN_BASE_TYPES = { "Chain": Chain, + "AgentExecutor": AgentExecutor, "Tool": Tool, "BaseLLM": BaseLLM, "PromptTemplate": PromptTemplate, From 5cbb86b1848425ba2f0db17d2a588bba0259af29 Mon Sep 17 00:00:00 2001 From: Gabriel Luiz Freitas Almeida Date: Thu, 10 Aug 2023 13:46:25 -0300 Subject: [PATCH 11/13] =?UTF-8?q?=F0=9F=90=9B=20fix(utils.py):=20add=20Unb?= =?UTF-8?q?uiltObject=20class=20to=20improve=20code=20readability=20and=20?= =?UTF-8?q?maintainability?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 🐛 fix(base.py): change the error message when _built_object is None to provide more specific information and handle the case when _built_object is an instance of UnbuiltObject --- src/backend/langflow/graph/utils.py | 4 ++++ src/backend/langflow/graph/vertex/base.py | 13 ++++++++++--- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/src/backend/langflow/graph/utils.py b/src/backend/langflow/graph/utils.py index b78b2f961..e163d76c4 100644 --- a/src/backend/langflow/graph/utils.py +++ b/src/backend/langflow/graph/utils.py @@ -3,6 +3,10 @@ from typing import Any, Union from langflow.interface.utils import extract_input_variables_from_prompt +class UnbuiltObject: + pass + + def validate_prompt(prompt: str): """Validate prompt.""" if extract_input_variables_from_prompt(prompt): diff --git a/src/backend/langflow/graph/vertex/base.py b/src/backend/langflow/graph/vertex/base.py index cb7dc4905..71afc0c02 100644 --- a/src/backend/langflow/graph/vertex/base.py +++ b/src/backend/langflow/graph/vertex/base.py @@ -1,4 +1,5 @@ import ast +from langflow.graph.utils import UnbuiltObject from langflow.interface.initialize import loading from langflow.interface.listing import ALL_TYPES_DICT from langflow.utils.constants import DIRECT_TYPES @@ -22,7 +23,7 @@ class Vertex: self.edges: List["Edge"] = [] self.base_type: Optional[str] = base_type self._parse_data() - self._built_object = None + self._built_object = UnbuiltObject() self._built = False self.artifacts: Dict[str, Any] = {} @@ -245,8 +246,14 @@ class Vertex: """ Checks if the built object is None and raises a ValueError if so. """ - if self._built_object is None: - raise ValueError(f"Node type {self.vertex_type} not found") + if isinstance(self._built_object, UnbuiltObject): + raise ValueError(f"{self.vertex_type}: {self._built_object_repr()}") + elif self._built_object is None: + message = f"{self.vertex_type} returned None." + if self.base_type == "custom_components": + message += " Make sure your build method returns a component." + + raise ValueError(message) def build(self, force: bool = False) -> Any: if not self._built or force: From dc6a5ac73a8027a4165cab211a103bd6483352b7 Mon Sep 17 00:00:00 2001 From: Gabriel Luiz Freitas Almeida Date: Thu, 10 Aug 2023 13:46:57 -0300 Subject: [PATCH 12/13] =?UTF-8?q?=F0=9F=94=84=20refactor(popover.tsx):=20r?= =?UTF-8?q?eorder=20exported=20components=20to=20improve=20readability=20a?= =?UTF-8?q?nd=20consistency?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/frontend/src/components/ui/popover.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/frontend/src/components/ui/popover.tsx b/src/frontend/src/components/ui/popover.tsx index 63c80bb7e..2a7a6988d 100644 --- a/src/frontend/src/components/ui/popover.tsx +++ b/src/frontend/src/components/ui/popover.tsx @@ -27,4 +27,4 @@ const PopoverContent = React.forwardRef< )); PopoverContent.displayName = PopoverPrimitive.Content.displayName; -export { Popover, PopoverTrigger, PopoverContent }; +export { Popover, PopoverContent, PopoverTrigger }; From cc8212b336f4a44683631276967e182d8ea9b615 Mon Sep 17 00:00:00 2001 From: Gabriel Luiz Freitas Almeida Date: Thu, 10 Aug 2023 17:44:14 -0300 Subject: [PATCH 13/13] =?UTF-8?q?=F0=9F=94=96=20chore(pyproject.toml):=20u?= =?UTF-8?q?pdate=20package=20version=20from=200.4.7=20to=200.4.8=20for=20m?= =?UTF-8?q?aintenance=20purposes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- poetry.lock | 20 ++++++++++---------- pyproject.toml | 2 +- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/poetry.lock b/poetry.lock index 9aa8fdbc9..a779b839f 100644 --- a/poetry.lock +++ b/poetry.lock @@ -253,13 +253,13 @@ test = ["astroid", "pytest"] [[package]] name = "async-timeout" -version = "4.0.2" +version = "4.0.3" description = "Timeout context manager for asyncio programs" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" files = [ - {file = "async-timeout-4.0.2.tar.gz", hash = "sha256:2163e1640ddb52b7a8c80d0a67a08587e5d245cc9c553a74a847056bc2976b15"}, - {file = "async_timeout-4.0.2-py3-none-any.whl", hash = "sha256:8ca1e4fcf50d07413d66d1a5e416e42cfdf5851c981d679a09851a6853383b3c"}, + {file = "async-timeout-4.0.3.tar.gz", hash = "sha256:4640d96be84d82d02ed59ea2b7105a0f7b33abe8703703cd0ab0bf87c427522f"}, + {file = "async_timeout-4.0.3-py3-none-any.whl", hash = "sha256:7405140ff1230c310e51dc27b3145b9092d659ce68ff733fb0cefe3ee42be028"}, ] [[package]] @@ -739,13 +739,13 @@ sqlalchemy = ["sqlalchemy (>1.3.21,<2.0)"] [[package]] name = "cohere" -version = "4.19.2" +version = "4.19.3" description = "" optional = false python-versions = ">=3.7,<4.0" files = [ - {file = "cohere-4.19.2-py3-none-any.whl", hash = "sha256:0b6a4fe04380a481a8e975ebcc9bb6433febe4d3eb583b6d6e04342a5e998345"}, - {file = "cohere-4.19.2.tar.gz", hash = "sha256:a0b0fa698b3d3983fb328bb90d68fcf08faaa2268f3772ebc6bfea6ba55acf27"}, + {file = "cohere-4.19.3-py3-none-any.whl", hash = "sha256:6c98f1e58b93b6316c824385c1d2032ed352280e9efa5695ba98306258abf84f"}, + {file = "cohere-4.19.3.tar.gz", hash = "sha256:c3aaa716c4da7d7a8ed68705fcdc92f1b1a2260b737cee6bd27af5c347f31496"}, ] [package.dependencies] @@ -1644,13 +1644,13 @@ six = "*" [[package]] name = "google-cloud-aiplatform" -version = "1.29.0" +version = "1.30.0" description = "Vertex AI API client library" optional = false python-versions = ">=3.7" files = [ - {file = "google-cloud-aiplatform-1.29.0.tar.gz", hash = "sha256:fceabb924d2d26057e3c8c5c2e251929389aa6d553361377bc402781150c0db3"}, - {file = "google_cloud_aiplatform-1.29.0-py2.py3-none-any.whl", hash = "sha256:cf81c1d93c61ccf3df60a65e3a5a1e465e044059d36b6fc1202b940c46c4c1e1"}, + {file = "google-cloud-aiplatform-1.30.0.tar.gz", hash = "sha256:26c16069553d177c3277a4371279871c38e31eab1134906cf83ea905e4203ec4"}, + {file = "google_cloud_aiplatform-1.30.0-py2.py3-none-any.whl", hash = "sha256:8a5d47378babb491cf4737e4f1951289b33b9254bed1e3d8c07be4896cae83ce"}, ] [package.dependencies] diff --git a/pyproject.toml b/pyproject.toml index 0bdcd1150..bbcf8659e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "langflow" -version = "0.4.7" +version = "0.4.8" description = "A Python package with a built-in web application" authors = ["Logspace "] maintainers = [