大改,未验证
This commit is contained in:
@@ -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),
|
||||
}
|
||||
|
||||
# --- 全局单例模式 ---
|
||||
|
||||
Reference in New Issue
Block a user