# Планирующий агент – экзаменационный проект ## Описание проекта Проект реализует **планировочный агент** на основе LLM (Large Language Model) из библиотеки `langchain`. Агент принимает список целей и генерирует последовательность действий, которые необходимо выполнить для их достижения. > ⚠️ Весь код находится в одном файле `solution.py`. > Для работы требуется ключ OpenAI – переменная окружения `OPENAI_API_KEY`. --- ## Структура проекта ``` . ├── solution.py # Основной скрипт с реализацией агента └── README.md # Это файл ``` --- ## Установка зависимостей ```bash # Создайте виртуальное окружение (рекомендуется) python -m venv .venv source .venv/bin/activate # Windows: .venv\Scripts\activate # Установите зависимости из requirements.txt (или вручную) pip install langchain fastapi pydantic rich openai ``` > **Важно** > `langchain` автоматически установит `openai`, но иногда требуется явно установить пакет `openai`. --- ## Настройка переменной окружения ```bash export OPENAI_API_KEY="sk-XXXXXXXXXXXXXXXXXXXX" # Windows: set OPENAI_API_KEY=sk-XXXXXXXXXXXXXXXXXXXX ``` Если ключ не задан, скрипт завершится с ошибкой. --- ## Запуск ### 1. Простой запуск из командной строки ```bash python solution.py ``` Скрипт запустит интерактивный режим: пользователь вводит список целей (через запятую), после чего агент выводит план действий. > **Пример** > ``` > Введите цели, разделённые запятыми: > Купить хлеб, купить молоко > План действий: > 1. Посетить ближайший супермаркет. > 2. Составить список необходимых продуктов: хлеб, молоко. > 3. Проверить наличие скидок на продукты. > ... > ``` ### 2. Использование как модуля ```python from solution import PlanningAgent agent = PlanningAgent() goals = ["построить дом", "обучиться Python"] plan = agent.generate_plan(goals) print(plan) ``` --- ## Пример использования в коде ```python # example.py from solution import PlanningAgent if __name__ == "__main__": agent = PlanningAgent() goals = ["построить дом", "обучиться Python"] plan_text = agent.generate_plan(goals) print("Сгенерированный план:") print(plan_text) ``` Запуск: ```bash python example.py ``` --- ## Что делает класс `PlanningAgent` | Метод | Описание | |-------|----------| | `__init__(self, model_name="gpt-3.5-turbo")` | Инициализация LLM и шаблона Prompt. | | `generate_plan(self, goals: List[str]) -> str` | Принимает список целей, формирует запрос к модели и возвращает текст плана действий. | --- ## Тесты > В проекте нет автоматических тестов – это учебный скрипт. > Для проверки можно написать простые unit‑тесты, например: ```python def test_generate_plan(): agent = PlanningAgent() plan = agent.generate_plan(["построить дом"]) assert isinstance(plan, str) assert "дом" in plan.lower() ``` --- ## Лицензия MIT © 2026. (Добавьте свой собственный текст лицензии при необходимости.) ---