Fix: для команд с yolo=True не добавлять контекст

- _build_prompt теперь принимает yolo параметр
- Для yolo=True отправляется только команда без системного промпта и истории
- Qwen-code будет правильно выполнять команды

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
This commit is contained in:
mirivlad 2026-03-19 02:01:22 +08:00
parent 11c1b0f0ac
commit 29e7dbf7b2
1 changed files with 9 additions and 5 deletions

View File

@ -40,18 +40,22 @@ class Orchestrator:
result_lower = result.lower()
return any(keyword in result_lower for keyword in rate_limit_keywords)
def _build_prompt(self, user_prompt: str, chat_id: int) -> str:
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"
similar = self.memory.search_similar(chat_id, user_prompt, limit=3)
if similar:
full_prompt += f"Похожие предыдущие разговоры:\n"
for sim in similar:
full_prompt += f"- {sim}\n"
full_prompt += "\n"
if context:
full_prompt += f"История текущего разговора:\n{context}\n\n"
@ -69,7 +73,7 @@ class Orchestrator:
model_id = model
selected_tool = f"opencode:{model_id}"
full_prompt = self._build_prompt(prompt, chat_id)
full_prompt = self._build_prompt(prompt, chat_id, yolo)
if selected_tool == "gigachat":
result, success = await self.gigachat.ask(full_prompt)