Revert "fix: Optimize Setting of Output Required Inputs" (#4404)

Revert "fix: Optimize Setting of Output Required Inputs (#4389)"

This reverts commit 7cc497aa52.
This commit is contained in:
Gabriel Luiz Freitas Almeida 2024-11-05 12:55:48 -03:00 • committed by GitHub
commit 7b5ba8e8f5
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 19 additions and 39 deletions

View file

@ -1,4 +1,3 @@
from .agent import AgentComponent
from .crewai import CrewAIAgentComponent from .crewai import CrewAIAgentComponent
from .csv import CSVAgentComponent from .csv import CSVAgentComponent
from .hierarchical_crew import HierarchicalCrewComponent from .hierarchical_crew import HierarchicalCrewComponent
@ -27,5 +26,4 @@ __all__ = [
"VectorStoreAgentComponent", "VectorStoreAgentComponent",
"VectorStoreRouterAgentComponent", "VectorStoreRouterAgentComponent",
"XMLAgentComponent", "XMLAgentComponent",
"AgentComponent",
] ]

View file

@ -10,7 +10,6 @@ from langflow.field_typing import LanguageModel
from langflow.field_typing.range_spec import RangeSpec from langflow.field_typing.range_spec import RangeSpec
from langflow.inputs import BoolInput, DictInput, DropdownInput, FloatInput, IntInput, SecretStrInput, StrInput from langflow.inputs import BoolInput, DictInput, DropdownInput, FloatInput, IntInput, SecretStrInput, StrInput
from langflow.inputs.inputs import HandleInput from langflow.inputs.inputs import HandleInput
from langflow.io import Output
class OpenAIModelComponent(LCModelComponent): class OpenAIModelComponent(LCModelComponent):
@ -82,10 +81,6 @@ class OpenAIModelComponent(LCModelComponent):
input_types=["OutputParser"], input_types=["OutputParser"],
), ),
] ]
outputs = [
Output(display_name="Text", name="text_output", method="text_response"),
Output(display_name="Language Model", name="model_output", method="build_model"),
]
def build_model(self) -> LanguageModel: # type: ignore[type-var] def build_model(self) -> LanguageModel: # type: ignore[type-var]
# self.output_schema is a list of dictionaries # self.output_schema is a list of dictionaries

View file

@ -369,8 +369,6 @@ class Component(CustomComponent):
def _set_output_required_inputs(self) -> None: def _set_output_required_inputs(self) -> None:
for output in self.outputs: for output in self.outputs:
if output.required_inputs:
continue
if not output.method: if not output.method:
continue continue
method = getattr(self, output.method, None) method = getattr(self, output.method, None)

View file

@ -1,5 +1,5 @@
import pytest import pytest
from langflow.components.agents import AgentComponent, CrewAIAgentComponent, ToolCallingAgentComponent from langflow.components.agents import CrewAIAgentComponent, ToolCallingAgentComponent
from langflow.components.helpers import SequentialTaskComponent from langflow.components.helpers import SequentialTaskComponent
from langflow.components.inputs import ChatInput from langflow.components.inputs import ChatInput
from langflow.components.models import OpenAIModelComponent from langflow.components.models import OpenAIModelComponent
@ -32,44 +32,33 @@ def _assert_all_outputs_have_different_required_inputs(outputs: list[Output]):
return True return True
def test_set_required_inputs_chat_input(): def test_set_required_inputs():
chatinput = ChatInput() chatinput = ChatInput()
assert all(_output_required_inputs_are_in_inputs(output, chatinput._inputs) for output in chatinput.outputs) assert all(_output_required_inputs_are_in_inputs(output, chatinput._inputs) for output in chatinput.outputs)
assert _assert_all_outputs_have_different_required_inputs(chatinput.outputs) assert _assert_all_outputs_have_different_required_inputs(chatinput.outputs)
def test_set_required_inputs_chat_output(): def test_set_required_inputs_various_components():
chatinput = ChatInput()
chatoutput = ChatOutput() chatoutput = ChatOutput()
assert all(_output_required_inputs_are_in_inputs(output, chatoutput._inputs) for output in chatoutput.outputs) task = SequentialTaskComponent()
assert _assert_all_outputs_have_different_required_inputs(chatoutput.outputs) tool_calling_agent = ToolCallingAgentComponent()
def test_set_required_inputs_openai_component():
openai_component = OpenAIModelComponent() openai_component = OpenAIModelComponent()
assert all(_output_required_inputs_are_in_inputs(output, chatinput._inputs) for output in chatinput.outputs)
assert all(_output_required_inputs_are_in_inputs(output, chatoutput._inputs) for output in chatoutput.outputs)
assert all(_output_required_inputs_are_in_inputs(output, task._inputs) for output in task.outputs)
assert all(
_output_required_inputs_are_in_inputs(output, tool_calling_agent._inputs)
for output in tool_calling_agent.outputs
)
assert all( assert all(
_output_required_inputs_are_in_inputs(output, openai_component._inputs) for output in openai_component.outputs _output_required_inputs_are_in_inputs(output, openai_component._inputs) for output in openai_component.outputs
) )
assert _assert_all_outputs_have_different_required_inputs(openai_component.outputs)
assert _assert_all_outputs_have_different_required_inputs(chatinput.outputs)
def test_set_required_inputs_tool_calling_agent_component(): assert _assert_all_outputs_have_different_required_inputs(chatoutput.outputs)
tool_calling_agent_component = ToolCallingAgentComponent()
assert all(
_output_required_inputs_are_in_inputs(output, tool_calling_agent_component._inputs)
for output in tool_calling_agent_component.outputs
)
assert _assert_all_outputs_have_different_required_inputs(tool_calling_agent_component.outputs)
def test_set_required_inputs_agent_component():
agent_component = AgentComponent()
assert all(
_output_required_inputs_are_in_inputs(output, agent_component._inputs) for output in agent_component.outputs
)
assert _assert_all_outputs_have_different_required_inputs(agent_component.outputs)
def test_set_required_inputs_sequential_task_component():
task = SequentialTaskComponent()
assert all(_output_required_inputs_are_in_inputs(output, task._inputs) for output in task.outputs)
assert _assert_all_outputs_have_different_required_inputs(task.outputs) assert _assert_all_outputs_have_different_required_inputs(task.outputs)
assert _assert_all_outputs_have_different_required_inputs(tool_calling_agent.outputs)
assert _assert_all_outputs_have_different_required_inputs(openai_component.outputs)