thread.py 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738
  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(
  9. default=None,
  10. sa_column=Column("metadata", JSON),
  11. schema_extra={"validation_alias": "metadata"},
  12. )
  13. tool_resources: Optional[dict] = Field(
  14. default=None, sa_column=Column(JSON)
  15. ) # 工具资源
  16. class ThreadCreate(BaseModel):
  17. object: str = "thread"
  18. messages: Optional[list[MessageCreate]] = Field(default=None)
  19. metadata_: Optional[dict] = Field(
  20. default=None, schema_extra={"validation_alias": "metadata"}
  21. )
  22. thread_id: Optional[str] = Field(default=None)
  23. end_message_id: Optional[str] = Field(default=None)
  24. tool_resources: Optional[dict] = Field(
  25. default=None, sa_column=Column(JSON)
  26. ) # 工具资源
  27. class ThreadUpdate(BaseModel):
  28. metadata_: Optional[dict] = Field(
  29. default=None, schema_extra={"validation_alias": "metadata"}
  30. )