53 lines
1.3 KiB
Python
53 lines
1.3 KiB
Python
"""
|
||
配置管理模块
|
||
"""
|
||
|
||
from pydantic_settings import BaseSettings
|
||
from typing import Optional, List
|
||
|
||
|
||
class Settings(BaseSettings):
|
||
"""应用程序配置"""
|
||
|
||
# DeepSeek配置
|
||
deepseek_api_key: str
|
||
deepseek_base_url: str = "https://api.deepseek.com"
|
||
model_primary: str = "deepseek-chat"
|
||
temperature: float = 0.3
|
||
max_tokens: int = 4096
|
||
|
||
# Embedding配置
|
||
embedding_model_path: str = "./data/models/Qwen3-Embedding-0.6B"
|
||
vector_dim: int = 2048
|
||
use_local_embedding: bool = True
|
||
|
||
# Schema配置
|
||
schema_dir: str = "./data/schemas"
|
||
schema_file: Optional[str] = None # 特定schema文件路径
|
||
vector_db_path: str = "./data/embeddings/chroma"
|
||
|
||
# 验证配置
|
||
enable_sql_validation: bool = True
|
||
block_dangerous_sql: bool = True
|
||
dangerous_keywords: List[str] = ["DROP", "DELETE", "UPDATE", "INSERT", "ALTER", "TRUNCATE"]
|
||
|
||
# 重试配置
|
||
max_retry: int = 2
|
||
retry_delay: float = 1.0
|
||
|
||
# 日志配置
|
||
log_level: str = "INFO"
|
||
log_file: Optional[str] = None
|
||
|
||
# 业务库(backend/db:execute_sql / search_objects);与 .env 中 database_url 一致
|
||
database_url: Optional[str] = None
|
||
sql_max_rows: int = 10000
|
||
|
||
class Config:
|
||
env_file = ".env"
|
||
case_sensitive = False
|
||
|
||
|
||
# 全局配置实例
|
||
settings = Settings()
|