""" 配置相关的Pydantic模式 """ from pydantic import BaseModel, Field from typing import Dict, Any, Optional, List class DatabaseConfig(BaseModel): """数据库配置模式""" url: str = Field(..., description="数据库连接URL") echo: bool = Field(False, description="是否输出SQL日志") class GeminiConfig(BaseModel): """Gemini API配置模式""" api_key: str = Field(..., description="Gemini API密钥") model: str = Field("gemini-pro", description="使用的模型") temperature: float = Field(0.7, description="生成温度") max_tokens: int = Field(2048, description="最大token数") class DataSourceConfig(BaseModel): """数据源配置模式""" name: str = Field(..., description="数据源名称") api_key: Optional[str] = Field(None, description="API密钥") base_url: Optional[str] = Field(None, description="基础URL") timeout: int = Field(30, description="超时时间(秒)") class ConfigResponse(BaseModel): """配置响应模式""" database: Optional[DatabaseConfig] = None gemini_api: Optional[GeminiConfig] = None data_sources: Dict[str, DataSourceConfig] = {} class ConfigUpdateRequest(BaseModel): """配置更新请求模式""" database: Optional[DatabaseConfig] = None gemini_api: Optional[GeminiConfig] = None data_sources: Optional[Dict[str, DataSourceConfig]] = None class ConfigTestRequest(BaseModel): """配置测试请求模式""" config_type: str = Field(..., description="配置类型") config_data: Dict[str, Any] = Field(..., description="配置数据") class ConfigTestResponse(BaseModel): """配置测试响应模式""" success: bool = Field(..., description="测试是否成功") message: str = Field(..., description="测试结果消息") details: Optional[Dict[str, Any]] = Field(None, description="详细信息") class ConfigValidationResponse(BaseModel): """配置验证响应模式""" valid: bool = Field(..., description="配置是否有效") errors: List[str] = Field([], description="验证错误列表") warnings: List[str] = Field([], description="验证警告列表")