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")
|