WIP: sync with tasks

This commit is contained in:
Lorenze Jay
2024-07-03 14:17:57 -07:00
parent 96dc96d13c
commit bb33e1813d
3 changed files with 17 additions and 18 deletions

View File

@@ -409,18 +409,19 @@ class Crew(BaseModel):
futures: List[Tuple[Task, Future[TaskOutput]]] = []
for i, task in enumerate(self.tasks):
if isinstance(task, ConditionalTask):
# print("task_outputs", task_outputs)
previous_output = task_outputs[-1].result() if task_outputs else None
# print("previous_output type", type(previous_output))
if previous_output is not None:
if not task.should_execute(previous_output):
self._logger.log(
"info",
f"Skipping conditional task: {task.description}",
color="yellow",
)
continue
# if isinstance(task, ConditionalTask):
# # print("task_outputs", task_outputs)
# previous_output = task_outputs[-1] if task_outputs else None
# print("previous_output", previous_output)
# # print("previous_output type", type(previous_output))
# if previous_output is not None:
# if not task.should_execute(previous_output):
# self._logger.log(
# "info",
# f"Skipping conditional task: {task.description}",
# color="yellow",
# )
# continue
if task.agent.allow_delegation: # type: ignore # Item "None" of "Agent | None" has no attribute "allow_delegation"
agents_for_delegation = [
agent for agent in self.agents if agent != task.agent

View File

@@ -1,4 +1,4 @@
from typing import Any, Dict, List, Union
from typing import Any, Dict, List
from pydantic import BaseModel, Field
@@ -18,7 +18,7 @@ class CrewOutput(BaseModel):
# TODO: Ask @joao what is the desired behavior here
def result(
self,
) -> List[str | BaseModel | Dict[str, Any]]]:
) -> List[str | BaseModel | Dict[str, Any]]:
"""Return the result of the task based on the available output."""
results = [output.result() for output in self.output]
return results

View File

@@ -224,7 +224,6 @@ class Task(BaseModel):
tools=tools,
)
exported_output = self._export_output(result)
print("exported_output", exported_output["pydantic"])
task_output = TaskOutput(
description=self.description,
@@ -233,7 +232,6 @@ class Task(BaseModel):
json_output=exported_output["json"],
agent=agent.role,
)
print("task_output", task_output)
self.output = task_output
if self.callback:
@@ -313,8 +311,8 @@ class Task(BaseModel):
self, result: str
) -> Dict[str, Union[BaseModel, Dict[str, Any]]]:
output = {
"pydantic": self.output_pydantic() if self.output_pydantic else None,
"json": {},
"pydantic": None,
"json": None,
}
if self.output_pydantic or self.output_json: