Files
task-6a1864fd-ekzamen-plani…/README.md
T

3.7 KiB
Raw Blame History

Планирующий агент (LangGraph)

Экзаменационное практическое задание – собрать LangGraph‑агента с отдельным этапом планирования.
Сначала LLM разбивает задачу на шаги, затем выполняет их по очереди и выдаёт итоговый ответ.


📖 Описание

  • Язык: Python 3.10+
  • Библиотеки:
    • langgraph – граф с прерываниями и чекпоинтером
    • langchain + langchain-openai вызов LLM
    • questionary – интерактивный ввод в консоли

Важно: проект рассчитан на использование модели OpenAI.
Если вы хотите использовать другую модель, настройте ChatOpenAI в solution.py.


⚙️ Установка

# Клонируйте репозиторий
git clone https://github.com/your-username/planning-agent.git
cd planning-agent

# Создайте виртуальное окружение (рекомендуется)
python -m venv .venv
source .venv/bin/activate   # Windows: .venv\Scripts\activate

# Установите зависимости
pip install langgraph langchain langchain-openai questionary

API‑ключ
Установите переменную окружения OPENAI_API_KEY с вашим ключом OpenAI:

export OPENAI_API_KEY="sk-..."

🚀 Запуск

python solution.py

Что происходит

  1. Ввод задачи – пользователь вводит задачу, которую нужно решить.
  2. Планирование – LLM генерирует список шагов (plan).
  3. Выполнение – каждый шаг выполняется последовательно, пользователь может просматривать результаты.
  4. Итог – после выполнения всех шагов выводится финальный ответ.

📄 Пример использования

$ python solution.py
Введите задачу: Напиши план по изучению Python за 3 месяца

План:
1. Изучить основы синтаксиса
2. Практиковаться с проектами
3. Изучить продвинутые темы
4. Пройти сертификацию

Выберите шаг для выполнения (1-4): 1
Результат шага 1: ...
Выберите шаг для выполнения (1-4): 2
Результат шага 2: ...
...

Итоговый ответ:
...

📂 Структура проекта

.
├── solution.py          # Основной скрипт
├── README.md            # Это файл
└── requirements.txt     # (опционально) список зависимостей

🔧 Настройка

  • Параметры модели – можно изменить в solution.py (например, temperature, max_tokens).
  • Чекпоинтер – по умолчанию используется SqliteSaver. Путь к базе можно задать через SqliteSaver.from_conn_str("sqlite:///graph_state.db").
  • Интерактивность questionary обеспечивает простое меню выбора. Если нужно убрать интерактивность, замените select и text на обычный input().

📜 Лицензия

MIT © 2026

---```