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:
parent
1443af2e42
commit
7b5ba8e8f5
4 changed files with 19 additions and 39 deletions
|
|
@ -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",
|
|
||||||
]
|
]
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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)
|
||||||
|
|
|
||||||
|
|
@ -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)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue