大改,未验证

This commit is contained in:
2026-03-20 16:50:26 +08:00
parent c7ee292c4f
commit e14e3ee7a5
36 changed files with 1419 additions and 4805 deletions

View File

@@ -71,6 +71,19 @@ class AIAccuracyConfig:
human_resolution_confidence: float = 0.90
@dataclass
class EmbeddingConfig:
"""Embedding 向量配置"""
enabled: bool = True
api_key: Optional[str] = None # 本地模式不需要
base_url: Optional[str] = None # 本地模式不需要
model: str = "BAAI/bge-small-zh-v1.5" # 本地轻量中文模型
dimension: int = 512 # bge-small-zh 输出维度
batch_size: int = 32
similarity_threshold: float = 0.5 # 语义搜索相似度阈值
cache_ttl: int = 86400 # embedding 缓存过期时间(秒),默认 1 天
@dataclass
class RedisConfig:
"""Redis缓存配置"""
@@ -99,6 +112,7 @@ class UnifiedConfig:
self.feishu = self._load_feishu_from_env()
self.ai_accuracy = self._load_ai_accuracy_from_env()
self.redis = self._load_redis_from_env()
self.embedding = self._load_embedding_from_env()
self.validate_config()
def _load_database_from_env(self) -> DatabaseConfig:
@@ -172,6 +186,18 @@ class UnifiedConfig:
logger.info("Redis config loaded.")
return config
def _load_embedding_from_env(self) -> EmbeddingConfig:
config = EmbeddingConfig(
enabled=os.getenv("EMBEDDING_ENABLED", "True").lower() in ('true', '1', 't'),
model=os.getenv("EMBEDDING_MODEL", "BAAI/bge-small-zh-v1.5"),
dimension=int(os.getenv("EMBEDDING_DIMENSION", 512)),
batch_size=int(os.getenv("EMBEDDING_BATCH_SIZE", 32)),
similarity_threshold=float(os.getenv("EMBEDDING_SIMILARITY_THRESHOLD", 0.5)),
cache_ttl=int(os.getenv("EMBEDDING_CACHE_TTL", 86400)),
)
logger.info("Embedding config loaded.")
return config
def validate_config(self):
"""在启动时验证关键配置"""
if not self.database.url:
@@ -193,6 +219,7 @@ class UnifiedConfig:
'feishu': asdict(self.feishu),
'ai_accuracy': asdict(self.ai_accuracy),
'redis': asdict(self.redis),
'embedding': asdict(self.embedding),
}
# --- 全局单例模式 ---