mirror of
https://github.com/crewAIInc/crewAI.git
synced 2026-05-07 10:12:38 +00:00
Revert to single output in _create_crew_output; remove redundant empty task check
Co-Authored-By: brandon@crewai.com <brandon@crewai.com>
This commit is contained in:
@@ -440,9 +440,6 @@ class Crew(BaseModel):
|
|||||||
@model_validator(mode="after")
|
@model_validator(mode="after")
|
||||||
def validate_must_have_non_conditional_task(self) -> "Crew":
|
def validate_must_have_non_conditional_task(self) -> "Crew":
|
||||||
"""Ensure that a crew has at least one non-conditional task."""
|
"""Ensure that a crew has at least one non-conditional task."""
|
||||||
if not self.tasks:
|
|
||||||
return self # Empty task list is handled by other validators
|
|
||||||
|
|
||||||
non_conditional_count = sum(
|
non_conditional_count = sum(
|
||||||
1 for task in self.tasks if not isinstance(task, ConditionalTask)
|
1 for task in self.tasks if not isinstance(task, ConditionalTask)
|
||||||
)
|
)
|
||||||
@@ -922,13 +919,14 @@ class Crew(BaseModel):
|
|||||||
)
|
)
|
||||||
|
|
||||||
def _create_crew_output(self, task_outputs: List[TaskOutput]) -> CrewOutput:
|
def _create_crew_output(self, task_outputs: List[TaskOutput]) -> CrewOutput:
|
||||||
# Filter out empty task outputs
|
if not task_outputs:
|
||||||
valid_task_outputs = [t for t in task_outputs if t.raw]
|
raise ValueError("No task outputs available to create crew output.")
|
||||||
|
|
||||||
# Use the last valid task output as the final output
|
# Filter out empty outputs and get the last valid one as the main output
|
||||||
final_task_output = valid_task_outputs[-1] if valid_task_outputs else None
|
valid_outputs = [t for t in task_outputs if t.raw]
|
||||||
if not final_task_output:
|
if not valid_outputs:
|
||||||
raise ValueError("No valid task outputs available to create crew output.")
|
raise ValueError("No valid task outputs available to create crew output.")
|
||||||
|
final_task_output = valid_outputs[-1]
|
||||||
|
|
||||||
final_string_output = final_task_output.raw
|
final_string_output = final_task_output.raw
|
||||||
self._finish_execution(final_string_output)
|
self._finish_execution(final_string_output)
|
||||||
@@ -938,7 +936,7 @@ class Crew(BaseModel):
|
|||||||
raw=final_task_output.raw,
|
raw=final_task_output.raw,
|
||||||
pydantic=final_task_output.pydantic,
|
pydantic=final_task_output.pydantic,
|
||||||
json_dict=final_task_output.json_dict,
|
json_dict=final_task_output.json_dict,
|
||||||
tasks_output=valid_task_outputs, # Only include valid task outputs
|
tasks_output=task_outputs, # Keep all task outputs
|
||||||
token_usage=token_usage,
|
token_usage=token_usage,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user