| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 | 
							- from typing import Optional, Union
 
- from pydantic import Field as PDField
 
- from sqlalchemy import Column
 
- from sqlmodel import Field, JSON, TEXT
 
- from app.models.base_model import BaseModel, TimeStampMixin, PrimaryKeyMixin
 
- class AssistantBase(BaseModel):
 
-     model: str = Field(nullable=False)
 
-     description: Optional[str] = Field(default=None)
 
-     file_ids: Optional[list] = Field(default=None, sa_column=Column(JSON))
 
-     instructions: Optional[str] = Field(
 
-         default=None, max_length=32768, sa_column=Column(TEXT)
 
-     )
 
-     metadata_: Optional[dict] = Field(
 
-         default=None,
 
-         sa_column=Column("metadata", JSON),
 
-         schema_extra={"validation_alias": "metadata"},
 
-     )
 
-     name: Optional[str] = Field(default=None)
 
-     tools: Optional[list] = Field(default=None, sa_column=Column(JSON))
 
-     extra_body: Optional[dict] = Field(default={}, sa_column=Column(JSON))
 
-     response_format: Optional[Union[str, dict]] = Field(
 
-         default="auto", sa_column=Column(JSON)
 
-     )  # 响应格式
 
-     tool_resources: Optional[dict] = Field(
 
-         default=None, sa_column=Column(JSON)
 
-     )  # 工具资源
 
-     temperature: Optional[float] = Field(default=None)  # 温度
 
-     top_p: Optional[float] = Field(default=None)  # top_p
 
-     object: str = Field(nullable=False, default="assistant")
 
- class Assistant(AssistantBase, PrimaryKeyMixin, TimeStampMixin, table=True):
 
-     pass
 
- class AssistantCreate(AssistantBase):
 
-     pass
 
- class AssistantUpdate(BaseModel):
 
-     model: Optional[str] = Field(default=None)
 
-     description: Optional[str] = Field(default=None)
 
-     file_ids: Optional[list] = Field(default=None, sa_column=Column(JSON))
 
-     instructions: Optional[str] = Field(
 
-         default=None, max_length=32768, sa_column=Column(TEXT)
 
-     )
 
-     metadata_: Optional[dict] = Field(
 
-         default=None, schema_extra={"validation_alias": "metadata"}
 
-     )
 
-     name: Optional[str] = Field(default=None)
 
-     tools: Optional[list] = Field(default=None, sa_column=Column(JSON))
 
-     extra_body: Optional[dict] = Field(default={}, sa_column=Column(JSON))
 
-     response_format: Optional[Union[str, dict]] = Field(
 
-         default="auto", sa_column=Column(JSON)
 
-     )  # 响应格式
 
-     tool_resources: Optional[dict] = Field(
 
-         default=None, sa_column=Column(JSON)
 
-     )  # 工具资源
 
-     temperature: Optional[float] = Field(default=None)  # 温度
 
-     top_p: Optional[float] = Field(default=None)  # top_p
 
- class AssistantRead(AssistantBase, PrimaryKeyMixin, TimeStampMixin):
 
-     metadata_: Optional[dict] = PDField(default=None, alias="metadata")
 
 
  |