nex_basse/backend/app/schemas/ai_model.py

45 lines
1.1 KiB
Python

from pydantic import BaseModel, Field, ConfigDict
from typing import Optional, Any
from datetime import datetime
class AIModelBase(BaseModel):
model_config = ConfigDict(protected_namespaces=())
model_type: str = Field(..., pattern="^(asr|llm)$")
provider: str = Field(..., max_length=50)
model_name: str = Field(..., max_length=100)
api_key: Optional[str] = None
base_url: Optional[str] = None
api_path: Optional[str] = None
config: Optional[dict[str, Any]] = None
is_default: bool = False
status: int = 1
class AIModelCreate(AIModelBase):
pass
class AIModelUpdate(BaseModel):
model_config = ConfigDict(protected_namespaces=())
model_type: Optional[str] = None
provider: Optional[str] = None
model_name: Optional[str] = None
api_key: Optional[str] = None
base_url: Optional[str] = None
api_path: Optional[str] = None
config: Optional[dict[str, Any]] = None
is_default: Optional[bool] = None
status: Optional[int] = None
class AIModelOut(AIModelBase):
model_id: int
created_at: datetime
updated_at: datetime
class Config:
from_attributes = True