fix: component-set-handle-list-tools (#4465)

update component.py

I added a StructuredTool to define the set function in the component. This change resolved an error that occurred when the list of tools was set by the component. In the future, we may need to add tests to manage unexpected situations in the component's set function.

I also updated the pytest.
This commit is contained in:
Edwin Jose 2024-11-08 05:11:13 -05:00 committed by GitHub
commit 0bf7dda009
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 3 additions and 2 deletions

View file

@ -10,6 +10,7 @@ from typing import TYPE_CHECKING, Any, ClassVar, get_type_hints
import nanoid
import yaml
from langchain_core.tools import StructuredTool
from pydantic import BaseModel, ValidationError
from langflow.base.tools.constants import TOOL_OUTPUT_DISPLAY_NAME, TOOL_OUTPUT_NAME
@ -494,7 +495,7 @@ class Component(CustomComponent):
# if value is a list of components, we need to process each component
# Note this update make sure it is not a list str | int | float | bool | type(None)
if isinstance(value, list) and not any(
isinstance(val, str | int | float | bool | type(None) | Message | Data) for val in value
isinstance(val, str | int | float | bool | type(None) | Message | Data | StructuredTool) for val in value
):
for val in value:
self._process_connection_or_parameter(key, val)

View file

@ -24,5 +24,5 @@ async def test_agent_component_with_calculator():
temperature=temperature,
)
response = await agent.get_response()
response = await agent.message_response()
assert "4" in response.data.get("text")