From a0f16fa45a3b40f88641786a979eab6396bbb1cc Mon Sep 17 00:00:00 2001 From: mirivlad Date: Thu, 19 Mar 2026 02:06:00 +0800 Subject: [PATCH] =?UTF-8?q?Fix:=20=D0=BE=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB?= =?UTF-8?q?=D1=91=D0=BD=20=D0=BF=D1=80=D0=BE=D0=BC=D0=BF=D1=82=20=D0=B4?= =?UTF-8?q?=D0=BB=D1=8F=20=D1=8F=D0=B2=D0=BD=D0=BE=D0=B3=D0=BE=20=D1=83?= =?UTF-8?q?=D0=BA=D0=B0=D0=B7=D0=B0=D0=BD=D0=B8=D1=8F=20=D0=BA=D0=BE=D0=BC?= =?UTF-8?q?=D0=B0=D0=BD=D0=B4=20=D0=BD=D0=B0=20=D0=B2=D1=8B=D0=BF=D0=BE?= =?UTF-8?q?=D0=BB=D0=BD=D0=B5=D0=BD=D0=B8=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Добавлен маркер === КОМАНДА НА ВЫПОЛНЕНИЕ === для yolo=True - Обновлён SYSTEM_PROMPT с инструкцией выполнять команды - Qwen будет понимать где история разговоров, а где команда Co-authored-by: Qwen-Coder --- src/tools/orchestrator.py | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/tools/orchestrator.py b/src/tools/orchestrator.py index 6da1750..26e1fcb 100644 --- a/src/tools/orchestrator.py +++ b/src/tools/orchestrator.py @@ -15,7 +15,13 @@ SYSTEM_PROMPT = """Ты Валера - дружелюбный Telegram-бот а Ты помогаешь с программированием, отвечаешь на вопросы. Будь кратким, используй кодовые блоки. -Твое имя - Валера.""" +Твое имя - Валера. + +=== ИНСТРУКЦИЯ ПО ВЫПОЛНЕНИЮ КОМАНД === +Если видишь маркер "=== КОМАНДА НА ВЫПОЛНЕНИЕ ===" - это значит что пользователь хочет выполнить команду на сервере. +В этом случае ты ДОЛЖЕН выполнить команду с помощью инструмента и вернуть результат. +Не отвечай текстом - ВЫПОЛНЯЙ команду! +========================================""" class Orchestrator: @@ -41,10 +47,6 @@ class Orchestrator: return any(keyword in result_lower for keyword in rate_limit_keywords) def _build_prompt(self, user_prompt: str, chat_id: int, yolo: bool = False) -> str: - # Для команд с yolo=True не добавляем контекст - отправляем только команду - if yolo: - return user_prompt - context = self.memory.get_context_for_prompt(chat_id) full_prompt = f"{SYSTEM_PROMPT}\n\n" @@ -59,7 +61,11 @@ class Orchestrator: if context: full_prompt += f"История текущего разговора:\n{context}\n\n" - full_prompt += f"Вопрос пользователя: {user_prompt}" + # Для команд с yolo=True явно указываем что это команда на выполнение + if yolo: + full_prompt += f"=== КОМАНДА НА ВЫПОЛНЕНИЕ ===\n{user_prompt}\n============================" + else: + full_prompt += f"Вопрос пользователя: {user_prompt}" return full_prompt