from typing import Optional from pydantic import BaseModel, Field, model_validator class TaskOutput(BaseModel): """Class that represents the result of a task.""" description: str = Field(description="Description of the task") summary: Optional[str] = Field(description="Summary of the task", default=None) result: str = Field(description="Result of the task") @model_validator(mode="after") def set_summary(self): excerpt = " ".join(self.description.split(" ")[:10]) self.summary = f"{excerpt}..." return self