62 lines
2.1 KiB
Python
62 lines
2.1 KiB
Python
"""
|
|
配置相关的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="验证警告列表") |