mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-09-05 15:38:19 +08:00
Merge pull request #5367 from PKC278/v2
This commit is contained in:
@@ -214,6 +214,11 @@ async def recommend_search_results(
|
|||||||
|
|
||||||
# 如果是强制模式,先取消并清除旧结果,然后直接启动新任务
|
# 如果是强制模式,先取消并清除旧结果,然后直接启动新任务
|
||||||
if force:
|
if force:
|
||||||
|
# 检查功能是否启用
|
||||||
|
if not settings.AI_AGENT_ENABLE or not settings.AI_RECOMMEND_ENABLED:
|
||||||
|
return schemas.Response(success=True, data={
|
||||||
|
"status": "disabled"
|
||||||
|
})
|
||||||
logger.info("收到新推荐请求,清除旧结果并启动新任务")
|
logger.info("收到新推荐请求,清除旧结果并启动新任务")
|
||||||
recommend_chain.cancel_ai_recommend()
|
recommend_chain.cancel_ai_recommend()
|
||||||
recommend_chain.start_recommend_task(filtered_indices, len(results), results)
|
recommend_chain.start_recommend_task(filtered_indices, len(results), results)
|
||||||
|
|||||||
@@ -166,6 +166,10 @@ async def get_user_global_setting(_: User = Depends(get_current_active_user_asyn
|
|||||||
"AI_RECOMMEND_ENABLED"
|
"AI_RECOMMEND_ENABLED"
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
# 智能助手总开关未开启,智能推荐状态强制返回False
|
||||||
|
if not settings.AI_AGENT_ENABLE:
|
||||||
|
info["AI_RECOMMEND_ENABLED"] = False
|
||||||
|
|
||||||
# 追加用户唯一ID和订阅分享管理权限
|
# 追加用户唯一ID和订阅分享管理权限
|
||||||
share_admin = SubscribeHelper().is_admin_user()
|
share_admin = SubscribeHelper().is_admin_user()
|
||||||
info.update({
|
info.update({
|
||||||
|
|||||||
@@ -43,12 +43,19 @@ class AIRecommendChain(ChainBase, metaclass=Singleton):
|
|||||||
json.dumps(request_data, sort_keys=True).encode()
|
json.dumps(request_data, sort_keys=True).encode()
|
||||||
).hexdigest()
|
).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]:
|
def _build_status(self) -> Dict[str, Any]:
|
||||||
"""
|
"""
|
||||||
构建AI推荐状态字典
|
构建AI推荐状态字典
|
||||||
:return: 状态字典
|
:return: 状态字典
|
||||||
"""
|
"""
|
||||||
if not settings.AI_RECOMMEND_ENABLED:
|
if not self.is_enabled:
|
||||||
return {"status": "disabled"}
|
return {"status": "disabled"}
|
||||||
|
|
||||||
if self._ai_recommend_running:
|
if self._ai_recommend_running:
|
||||||
@@ -92,11 +99,7 @@ class AIRecommendChain(ChainBase, metaclass=Singleton):
|
|||||||
|
|
||||||
# 如果请求变化了(筛选条件改变),返回idle状态
|
# 如果请求变化了(筛选条件改变),返回idle状态
|
||||||
if not is_same_request:
|
if not is_same_request:
|
||||||
return (
|
return {"status": "idle"} if self.is_enabled else {"status": "disabled"}
|
||||||
{"status": "idle"}
|
|
||||||
if settings.AI_RECOMMEND_ENABLED
|
|
||||||
else {"status": "disabled"}
|
|
||||||
)
|
|
||||||
|
|
||||||
# 请求未变化,返回当前实际状态
|
# 请求未变化,返回当前实际状态
|
||||||
return self._build_status()
|
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 search_results_count: 搜索结果总数
|
||||||
:param results: 搜索结果列表
|
:param results: 搜索结果列表
|
||||||
"""
|
"""
|
||||||
|
# 防护检查:确保AI推荐功能已启用
|
||||||
|
if not self.is_enabled:
|
||||||
|
logger.warning("AI推荐功能未启用,跳过任务执行")
|
||||||
|
return
|
||||||
|
|
||||||
# 计算新请求的哈希值
|
# 计算新请求的哈希值
|
||||||
new_request_hash = self._calculate_request_hash(
|
new_request_hash = self._calculate_request_hash(
|
||||||
filtered_indices, search_results_count
|
filtered_indices, search_results_count
|
||||||
|
|||||||
Reference in New Issue
Block a user