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: