diff --git a/src/tools/orchestrator.py b/src/tools/orchestrator.py index 9d8b446..6da1750 100644 --- a/src/tools/orchestrator.py +++ b/src/tools/orchestrator.py @@ -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)