Skip to content

Commit

Permalink
feat: Add tool_mode to Output model and add it to the skip output che…
Browse files Browse the repository at this point in the history
…ck (#6036)

* feat: Add tool_mode field to Output model for tool usage specification

* fix: Specify type for component_toolkit in to_toolkit method

* feat: Add method to determine if output should be skipped in ComponentToolkit

* [autofix.ci] apply automated fixes

* test: Add tool_mode field to Output model in test schema

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
  • Loading branch information
ogabrielluiz and autofix-ci[bot] authored Jan 30, 2025
1 parent 22fa4cf commit b00ab3a
Show file tree
Hide file tree
Showing 22 changed files with 187 additions and 2 deletions.
20 changes: 19 additions & 1 deletion src/backend/base/langflow/base/tools/component_tool.py
Original file line number Diff line number Diff line change
Expand Up @@ -169,6 +169,24 @@ def __init__(self, component: Component, metadata: pd.DataFrame | None = None):
self.component = component
self.metadata = metadata

def _should_skip_output(self, output: Output) -> bool:
"""Determines if an output should be skipped when creating tools.
Args:
output (Output): The output to check.
Returns:
bool: True if the output should be skipped, False otherwise.
The output will be skipped if:
- tool_mode is False (output is not meant to be used as a tool)
- output name matches TOOL_OUTPUT_NAME
- output types contain any of the tool types in TOOL_TYPES_SET
"""
return not output.tool_mode or (
output.name == TOOL_OUTPUT_NAME or any(tool_type in output.types for tool_type in TOOL_TYPES_SET)
)

def get_tools(
self,
tool_name: str | None = None,
Expand All @@ -178,7 +196,7 @@ def get_tools(
) -> list[BaseTool]:
tools = []
for output in self.component.outputs:
if output.name == TOOL_OUTPUT_NAME or any(tool_type in output.types for tool_type in TOOL_TYPES_SET):
if self._should_skip_output(output):
continue

if not output.method:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@
if TYPE_CHECKING:
from collections.abc import Callable

from langflow.base.tools.component_tool import ComponentToolkit
from langflow.events.event_manager import EventManager
from langflow.graph.edge.schema import EdgeData
from langflow.graph.vertex.base import Vertex
Expand Down Expand Up @@ -1023,7 +1024,7 @@ def _get_fallback_input(self, **kwargs):
return Input(**kwargs)

async def to_toolkit(self) -> list[Tool]:
component_toolkit = _get_component_toolkit()
component_toolkit: type[ComponentToolkit] = _get_component_toolkit()
tools = component_toolkit(component=self).get_tools(callbacks=self.get_langchain_callbacks())
if hasattr(self, TOOLS_METADATA_INPUT_NAME):
tools = component_toolkit(component=self, metadata=self.tools_metadata).update_tools_metadata(tools=tools)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -213,6 +213,7 @@
"method": "build_prompt",
"name": "prompt",
"selected": "Message",
"tool_mode": true,
"types": [
"Message"
],
Expand Down Expand Up @@ -345,6 +346,7 @@
"method": "message_response",
"name": "message",
"selected": "Message",
"tool_mode": true,
"types": [
"Message"
],
Expand Down Expand Up @@ -639,6 +641,7 @@
"method": "message_response",
"name": "message",
"selected": "Message",
"tool_mode": true,
"types": [
"Message"
],
Expand Down Expand Up @@ -915,6 +918,7 @@
"method": "build_prompt",
"name": "prompt",
"selected": "Message",
"tool_mode": true,
"types": [
"Message"
],
Expand Down Expand Up @@ -1041,6 +1045,7 @@
"method": "build_prompt",
"name": "prompt",
"selected": "Message",
"tool_mode": true,
"types": [
"Message"
],
Expand Down Expand Up @@ -1251,6 +1256,7 @@
"name": "text_output",
"required_inputs": [],
"selected": "Message",
"tool_mode": true,
"types": [
"Message"
],
Expand All @@ -1266,6 +1272,7 @@
"api_key"
],
"selected": "LanguageModel",
"tool_mode": true,
"types": [
"LanguageModel"
],
Expand Down Expand Up @@ -1595,6 +1602,7 @@
"name": "text_output",
"required_inputs": [],
"selected": "Message",
"tool_mode": true,
"types": [
"Message"
],
Expand All @@ -1610,6 +1618,7 @@
"api_key"
],
"selected": "LanguageModel",
"tool_mode": true,
"types": [
"LanguageModel"
],
Expand Down Expand Up @@ -1939,6 +1948,7 @@
"name": "text_output",
"required_inputs": [],
"selected": "Message",
"tool_mode": true,
"types": [
"Message"
],
Expand All @@ -1954,6 +1964,7 @@
"api_key"
],
"selected": "LanguageModel",
"tool_mode": true,
"types": [
"LanguageModel"
],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,7 @@
"method": "message_response",
"name": "message",
"selected": "Message",
"tool_mode": true,
"types": [
"Message"
],
Expand Down Expand Up @@ -400,6 +401,7 @@
"method": "build_prompt",
"name": "prompt",
"selected": "Message",
"tool_mode": true,
"types": [
"Message"
],
Expand Down Expand Up @@ -602,6 +604,7 @@
"method": "message_response",
"name": "message",
"selected": "Message",
"tool_mode": true,
"types": [
"Message"
],
Expand Down Expand Up @@ -888,6 +891,7 @@
"name": "text_output",
"required_inputs": [],
"selected": "Message",
"tool_mode": true,
"types": [
"Message"
],
Expand All @@ -903,6 +907,7 @@
"api_key"
],
"selected": "LanguageModel",
"tool_mode": true,
"types": [
"LanguageModel"
],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -171,6 +171,7 @@
"method": "parse_data",
"name": "text",
"selected": "Message",
"tool_mode": true,
"types": [
"Message"
],
Expand All @@ -183,6 +184,7 @@
"method": "parse_data_as_list",
"name": "data_list",
"selected": "Data",
"tool_mode": true,
"types": [
"Data"
],
Expand Down Expand Up @@ -327,6 +329,7 @@
"method": "build_prompt",
"name": "prompt",
"selected": "Message",
"tool_mode": true,
"types": [
"Message"
],
Expand Down Expand Up @@ -496,6 +499,7 @@
"method": "text_response",
"name": "text",
"selected": "Message",
"tool_mode": true,
"types": [
"Message"
],
Expand Down Expand Up @@ -606,6 +610,7 @@
"method": "message_response",
"name": "message",
"selected": "Message",
"tool_mode": true,
"types": [
"Message"
],
Expand Down Expand Up @@ -987,6 +992,7 @@
"name": "text_output",
"required_inputs": [],
"selected": "Message",
"tool_mode": true,
"types": [
"Message"
],
Expand All @@ -1002,6 +1008,7 @@
"api_key"
],
"selected": "LanguageModel",
"tool_mode": true,
"types": [
"LanguageModel"
],
Expand Down Expand Up @@ -1322,6 +1329,7 @@
"method": "fetch_content",
"name": "data",
"selected": "Data",
"tool_mode": true,
"types": [
"Data"
],
Expand All @@ -1334,6 +1342,7 @@
"method": "fetch_content_text",
"name": "text",
"selected": "Message",
"tool_mode": true,
"types": [
"Message"
],
Expand All @@ -1346,6 +1355,7 @@
"method": "as_dataframe",
"name": "dataframe",
"selected": "DataFrame",
"tool_mode": true,
"types": [
"DataFrame"
],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -236,6 +236,7 @@
"method": "message_response",
"name": "message",
"selected": "Message",
"tool_mode": true,
"types": [
"Message"
],
Expand Down Expand Up @@ -537,6 +538,7 @@
"method": "retrieve_messages",
"name": "messages",
"selected": "Data",
"tool_mode": true,
"types": [
"Data"
],
Expand All @@ -549,6 +551,7 @@
"method": "retrieve_messages_as_text",
"name": "messages_text",
"selected": "Message",
"tool_mode": true,
"types": [
"Message"
],
Expand Down Expand Up @@ -786,6 +789,7 @@
"method": "build_prompt",
"name": "prompt",
"selected": "Message",
"tool_mode": true,
"types": [
"Message"
],
Expand Down Expand Up @@ -1032,6 +1036,7 @@
"method": "message_response",
"name": "message",
"selected": "Message",
"tool_mode": true,
"types": [
"Message"
],
Expand Down Expand Up @@ -1371,6 +1376,7 @@
"method": "fetch_content",
"name": "data",
"selected": "Data",
"tool_mode": true,
"types": [
"Data"
],
Expand All @@ -1383,6 +1389,7 @@
"method": "fetch_content_text",
"name": "text",
"selected": "Message",
"tool_mode": true,
"types": [
"Message"
],
Expand All @@ -1395,6 +1402,7 @@
"method": "as_dataframe",
"name": "dataframe",
"selected": "DataFrame",
"tool_mode": true,
"types": [
"DataFrame"
],
Expand Down Expand Up @@ -1524,6 +1532,7 @@
"method": "fetch_content",
"name": "data",
"selected": "Data",
"tool_mode": true,
"types": [
"Data"
],
Expand All @@ -1536,6 +1545,7 @@
"method": "fetch_content_text",
"name": "text",
"selected": "Message",
"tool_mode": true,
"types": [
"Message"
],
Expand All @@ -1548,6 +1558,7 @@
"method": "as_dataframe",
"name": "dataframe",
"selected": "DataFrame",
"tool_mode": true,
"types": [
"DataFrame"
],
Expand Down Expand Up @@ -1683,6 +1694,7 @@
"method": "fetch_content",
"name": "data",
"selected": "Data",
"tool_mode": true,
"types": [
"Data"
],
Expand All @@ -1695,6 +1707,7 @@
"method": "fetch_content_text",
"name": "text",
"selected": "Message",
"tool_mode": true,
"types": [
"Message"
],
Expand All @@ -1707,6 +1720,7 @@
"method": "as_dataframe",
"name": "dataframe",
"selected": "DataFrame",
"tool_mode": true,
"types": [
"DataFrame"
],
Expand Down Expand Up @@ -1847,6 +1861,7 @@
"name": "text_output",
"required_inputs": [],
"selected": "Message",
"tool_mode": true,
"types": [
"Message"
],
Expand All @@ -1862,6 +1877,7 @@
"api_key"
],
"selected": "LanguageModel",
"tool_mode": true,
"types": [
"LanguageModel"
],
Expand Down
Loading

0 comments on commit b00ab3a

Please sign in to comment.