Fix: обновлён промпт для явного указания команд на выполнение
- Добавлен маркер === КОМАНДА НА ВЫПОЛНЕНИЕ === для yolo=True - Обновлён SYSTEM_PROMPT с инструкцией выполнять команды - Qwen будет понимать где история разговоров, а где команда Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
This commit is contained in:
parent
29e7dbf7b2
commit
a0f16fa45a
|
|
@ -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
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue