rolling abckt o pydantic v1

This commit is contained in:
Joao Moura
2023-11-05 23:51:45 -03:00
parent f412c69b00
commit 3a37dd76f9

View File

@@ -1,6 +1,5 @@
from typing import List, Optional
from pydantic.v1 import BaseModel, Field
from pydantic import model_validator
from pydantic.v1 import BaseModel, Field, root_validator
from langchain.tools import Tool
@@ -21,7 +20,19 @@ class Task(BaseModel):
default=[]
)
@model_validator(mode="after")
def _set_tools(self) -> None:
@root_validator(pre=False)
def _set_tools(cls, values):
if values.get('agent'):
values['tools'] = values.get('agent.tools')
return values
def execute(self, context) -> str:
"""
Execute the task.
Returns:
output (str): Output of the task.
"""
if self.agent:
self.tools = self.agent.tools
return self.agent.execute_task(self.description, context)
else:
raise Exception(f"The task '{self.description}' has no agent assigned, therefore it can't be executed directly and should be executed in a Crew using a specific process that support that, either consensual or hierarchical.")