From 77397269e1523435c3aaaba4d7ce8b6243b16576 Mon Sep 17 00:00:00 2001 From: mirivlad Date: Thu, 26 Feb 2026 11:05:22 +0800 Subject: [PATCH] =?UTF-8?q?=D0=A3=D0=BB=D1=83=D1=87=D1=88=D0=B5=D0=BD?= =?UTF-8?q?=D1=8B=20=D1=82=D1=80=D0=B8=D0=B3=D0=B3=D0=B5=D1=80=D1=8B=20?= =?UTF-8?q?=D0=B4=D0=BB=D1=8F=20RSS=20=E2=80=94=20=D0=B1=D0=BE=D0=BB=D0=B5?= =?UTF-8?q?=D0=B5=20=D1=81=D1=82=D1=80=D0=BE=D0=B3=D0=B8=D0=B5=20=D1=83?= =?UTF-8?q?=D1=81=D0=BB=D0=BE=D0=B2=D0=B8=D1=8F=20(v0.5.3)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Qwen-Coder --- bot/ai_agent.py | 33 ++++++++++++--------------------- 1 file changed, 12 insertions(+), 21 deletions(-) diff --git a/bot/ai_agent.py b/bot/ai_agent.py index 26f82ee..9d82cce 100644 --- a/bot/ai_agent.py +++ b/bot/ai_agent.py @@ -44,13 +44,13 @@ class AIAgent: 'скачай', 'загрузи', 'найди информацию', 'посмотри в сети' ] - # Триггеры для RSS + # Триггеры для RSS — ТОЛЬКО явные запросы новостей RSS_TRIGGERS = [ - 'новости', 'rss', 'лента', 'feed', 'дайджест', - 'что нового в linux', 'новости it', 'tech news', - 'почитай новости', 'последние статьи', 'свежие новости', - 'новости технологий', 'opensource новости', 'linux новости', - 'покажи новости', 'что в лентах', 'есть новые статьи' + 'почитай новости', 'покажи новости', 'что нового в linux', + 'новости it', 'tech news', 'opensource новости', 'linux новости', + 'новости технологий', 'rss лента', 'дайджест новостей', + 'свежие новости it', 'последние новости it', 'новости linux', + 'it новости', 'новости opensource', 'лента новостей' ] # Триггеры для SSH-команд @@ -109,22 +109,13 @@ class AIAgent: message_lower = message.lower() score = 0.0 + # Только прямые триггеры — высокий порог for trigger in self.RSS_TRIGGERS: if trigger in message_lower: - return True, 0.9 + return True, 0.95 - # Если пользователь спрашивает про новости технологий - tech_news = ['новости linux', 'it новости', 'tech news', 'opensource'] - for topic in tech_news: - if topic in message_lower: - score = max(score, 0.8) - - # Контекстные подсказки - if any(word in message_lower for word in ['почитай', 'посмотри', 'покажи']) and \ - any(word in message_lower for word in ['статьи', 'материалы', 'публикации']): - score = max(score, 0.75) - - return score >= 0.75, score + # Больше никаких контекстных подсказок — только явные запросы + return False, score def _should_use_ssh(self, message: str) -> tuple[bool, float]: """Проверить, нужна ли SSH-команда.""" @@ -226,9 +217,9 @@ class AIAgent: reasoning='Пользователю нужна информация из интернета' ) - # 4. Проверка на RSS + # 4. Проверка на RSS — только явные запросы should_rss, rss_conf = self._should_read_rss(message) - if should_rss and rss_conf > 0.7: + if should_rss: # Порог уже проверен в _should_read_rss (0.95) return AgentDecision( should_use_tool=True, tool_name='rss_tool',