From bf35299f27fc1b08a5382fe24441b61d1e840402 Mon Sep 17 00:00:00 2001 From: Markov Andrey Date: Tue, 30 Jun 2026 21:01:57 +0000 Subject: [PATCH] =?UTF-8?q?=D0=A0=D0=B5=D0=B4=D0=B0=D0=BA=D1=82=D0=B8?= =?UTF-8?q?=D1=80=D0=BE=D0=B2=D0=B0=D1=82=D1=8C=20plan=5Fgeneration.py?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- rag/functions/plan_generation.py | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/rag/functions/plan_generation.py b/rag/functions/plan_generation.py index fa7e080..d82aa88 100644 --- a/rag/functions/plan_generation.py +++ b/rag/functions/plan_generation.py @@ -35,19 +35,17 @@ async def generate_plan( step_description: str, required_data: str (опционально), expected_output: str (опционально). - В случае ошибки возвращает пустой список или базовый план. + В случае ошибки возвращает пустой список. """ prompt_template = prompts.get("planning") if not prompt_template: logger.error("Промпт для генерации плана не найден") return [] - # Формируем полный промпт - # Можно использовать историю для контекста, но для простоты берём только последнее сообщение context = "" if history: - # Берём последние 3 сообщения для контекста context = "\n".join([f"{msg['role']}: {msg['content']}" for msg in history[-3:]]) + full_prompt = prompt_template.format(query=query, context=context) try: @@ -58,14 +56,10 @@ async def generate_plan( file_id=None, temperature=getattr(config, 'planning_temperature', 0.2), ) - # Ожидаем JSON-список data = json.loads(response.strip()) if isinstance(data, list): - # Проверяем, что каждый элемент содержит step_description for item in data: if "step_description" not in item: - logger.warning("План содержит шаг без step_description, игнорируем") - # Можно добавить базовые поля item["step_description"] = item.get("description", "Неизвестный шаг") return data else: