Merge pull request #5367 from PKC278/v2

This commit is contained in:
jxxghp
2026-01-15 22:58:10 +08:00
committed by GitHub
3 changed files with 23 additions and 6 deletions

View File

@@ -214,6 +214,11 @@ async def recommend_search_results(
# 如果是强制模式,先取消并清除旧结果,然后直接启动新任务
if force:
# 检查功能是否启用
if not settings.AI_AGENT_ENABLE or not settings.AI_RECOMMEND_ENABLED:
return schemas.Response(success=True, data={
"status": "disabled"
})
logger.info("收到新推荐请求,清除旧结果并启动新任务")
recommend_chain.cancel_ai_recommend()
recommend_chain.start_recommend_task(filtered_indices, len(results), results)

View File

@@ -166,6 +166,10 @@ async def get_user_global_setting(_: User = Depends(get_current_active_user_asyn
"AI_RECOMMEND_ENABLED"
}
)
# 智能助手总开关未开启智能推荐状态强制返回False
if not settings.AI_AGENT_ENABLE:
info["AI_RECOMMEND_ENABLED"] = False
# 追加用户唯一ID和订阅分享管理权限
share_admin = SubscribeHelper().is_admin_user()
info.update({

View File

@@ -43,12 +43,19 @@ class AIRecommendChain(ChainBase, metaclass=Singleton):
json.dumps(request_data, sort_keys=True).encode()
).hexdigest()
@property
def is_enabled(self) -> bool:
"""
检查AI推荐功能是否已启用。
"""
return settings.AI_AGENT_ENABLE and settings.AI_RECOMMEND_ENABLED
def _build_status(self) -> Dict[str, Any]:
"""
构建AI推荐状态字典
:return: 状态字典
"""
if not settings.AI_RECOMMEND_ENABLED:
if not self.is_enabled:
return {"status": "disabled"}
if self._ai_recommend_running:
@@ -92,11 +99,7 @@ class AIRecommendChain(ChainBase, metaclass=Singleton):
# 如果请求变化了筛选条件改变返回idle状态
if not is_same_request:
return (
{"status": "idle"}
if settings.AI_RECOMMEND_ENABLED
else {"status": "disabled"}
)
return {"status": "idle"} if self.is_enabled else {"status": "disabled"}
# 请求未变化,返回当前实际状态
return self._build_status()
@@ -187,6 +190,11 @@ Output Format: Return ONLY a JSON array of "index" numbers (e.g., [0, 3, 1]). Do
:param search_results_count: 搜索结果总数
:param results: 搜索结果列表
"""
# 防护检查确保AI推荐功能已启用
if not self.is_enabled:
logger.warning("AI推荐功能未启用跳过任务执行")
return
# 计算新请求的哈希值
new_request_hash = self._calculate_request_hash(
filtered_indices, search_results_count