Tai Truong
fix readme
d202ada
from typing import Literal
from pydantic import BaseModel, Field, field_serializer, field_validator
class Source(BaseModel):
id: str | None = Field(default=None, description="The id of the source component.")
display_name: str | None = Field(default=None, description="The display name of the source component.")
source: str | None = Field(
default=None,
description="The source of the message. Normally used to display the model name (e.g. 'gpt-4o')",
)
class Properties(BaseModel):
text_color: str | None = None
background_color: str | None = None
edited: bool = False
source: Source = Field(default_factory=Source)
icon: str | None = None
allow_markdown: bool = False
state: Literal["partial", "complete"] = "complete"
targets: list = []
@field_validator("source", mode="before")
@classmethod
def validate_source(cls, v):
if isinstance(v, str):
return Source(id=v, display_name=v, source=v)
return v
@field_serializer("source")
def serialize_source(self, value):
if isinstance(value, Source):
return value.model_dump()
return value