"""知识库相关 Pydantic v2 Schema。""" from pydantic import BaseModel, Field class KbCreateRequest(BaseModel): name: str = Field(min_length=1, max_length=255) description: str | None = Field(default=None, max_length=2000) class KbUpdateRequest(BaseModel): name: str | None = Field(default=None, min_length=1, max_length=255) description: str | None = None class KbResponse(BaseModel): id: str name: str description: str | None enabled: bool token_hint: str | None ai_url: str | None = None # 仅创建/重置时返回完整 URL document_count: int = 0 created_at: str updated_at: str model_config = {"from_attributes": True} class KbListResponse(BaseModel): items: list[KbResponse] total: int class KbTokenResponse(BaseModel): """Token 重置/创建/查询时的完整 URL 响应。""" token: str ai_url: str token_hint: str expires_at: str | None = None is_expired: bool = False class KbSetExpiryRequest(BaseModel): """设置链接有效期。expires_in_minutes=null 表示长期有效。""" expires_in_minutes: int | None = None