| 1234567891011121314151617181920212223242526 | from typing import Optionalfrom sqlalchemy import Columnfrom sqlmodel import Field, JSONfrom app.models.base_model import BaseModel, TimeStampMixin, PrimaryKeyMixinfrom app.models.message import MessageCreateclass Thread(BaseModel, PrimaryKeyMixin, TimeStampMixin, table=True):    object: str = Field(nullable=False, default="thread")    metadata_: Optional[dict] = Field(default=None, sa_column=Column("metadata", JSON), schema_extra={"validation_alias": "metadata"})    tool_resources: Optional[dict] = Field(default=None, sa_column=Column(JSON))  # 工具资源class ThreadCreate(BaseModel):    object: str = "thread"    messages: Optional[list[MessageCreate]] = Field(default=None)    metadata_: Optional[dict] = Field(default=None, schema_extra={"validation_alias": "metadata"})    thread_id: Optional[str] = Field(default=None)    end_message_id: Optional[str] = Field(default=None)    tool_resources: Optional[dict] = Field(default=None, sa_column=Column(JSON))  # 工具资源class ThreadUpdate(BaseModel):    metadata_: Optional[dict] = Field(default=None, schema_extra={"validation_alias": "metadata"})
 |