47 lines
1.1 KiB
Python
47 lines
1.1 KiB
Python
import uuid
|
|
from datetime import datetime
|
|
from pydantic import BaseModel, Field, field_serializer
|
|
|
|
|
|
class AIModelCreate(BaseModel):
|
|
name: str = Field(..., max_length=100)
|
|
provider: str = Field(..., max_length=50)
|
|
endpoint: str = Field(..., max_length=255)
|
|
api_key: str
|
|
extra_params: dict = Field(default_factory=dict)
|
|
is_enabled: bool = True
|
|
remark: str | None = None
|
|
|
|
|
|
class AIModelUpdate(BaseModel):
|
|
name: str | None = Field(None, max_length=100)
|
|
provider: str | None = Field(None, max_length=50)
|
|
endpoint: str | None = Field(None, max_length=255)
|
|
api_key: str | None = None
|
|
extra_params: dict | None = None
|
|
is_enabled: bool | None = None
|
|
remark: str | None = None
|
|
|
|
|
|
class AIModelToggle(BaseModel):
|
|
is_enabled: bool
|
|
|
|
|
|
class AIModelResponse(BaseModel):
|
|
id: uuid.UUID
|
|
name: str
|
|
provider: str
|
|
endpoint: str
|
|
api_key: str
|
|
extra_params: dict
|
|
is_enabled: bool
|
|
remark: str | None = None
|
|
created_at: datetime
|
|
updated_at: datetime
|
|
|
|
model_config = {"from_attributes": True}
|
|
|
|
@field_serializer("api_key")
|
|
def mask_api_key(self, value: str) -> str:
|
|
return "***"
|