thread.py 1.1 KB

1234567891011121314151617181920212223242526
  1. from typing import Optional
  2. from sqlalchemy import Column
  3. from sqlmodel import Field, JSON
  4. from app.models.base_model import BaseModel, TimeStampMixin, PrimaryKeyMixin
  5. from app.models.message import MessageCreate
  6. class Thread(BaseModel, PrimaryKeyMixin, TimeStampMixin, table=True):
  7. object: str = Field(nullable=False, default="thread")
  8. metadata_: Optional[dict] = Field(default=None, sa_column=Column("metadata", JSON), schema_extra={"validation_alias": "metadata"})
  9. tool_resources: Optional[dict] = Field(default=None, sa_column=Column(JSON)) # 工具资源
  10. class ThreadCreate(BaseModel):
  11. object: str = "thread"
  12. messages: Optional[list[MessageCreate]] = Field(default=None)
  13. metadata_: Optional[dict] = Field(default=None, schema_extra={"validation_alias": "metadata"})
  14. thread_id: Optional[str] = Field(default=None)
  15. end_message_id: Optional[str] = Field(default=None)
  16. tool_resources: Optional[dict] = Field(default=None, sa_column=Column(JSON)) # 工具资源
  17. class ThreadUpdate(BaseModel):
  18. metadata_: Optional[dict] = Field(default=None, schema_extra={"validation_alias": "metadata"})