from pydantic import BaseModel, validator from ..models.main import Traceback class Observation(BaseModel): pass class TracebackObservation(Observation): traceback: Traceback class ValidatorObservation(Observation): passed: bool class UserInputObservation(Observation): user_input: str class DictObservation(Observation): values: dict def __getitem__(self, key): return self.values[key] class TextObservation(Observation): text: str @validator("text", pre=True, always=True) def text_not_none(cls, v): if v is None: return "" return v class InternalErrorObservation(Observation): title: str error: str