107 lines
3.7 KiB
Markdown
107 lines
3.7 KiB
Markdown
# Планирующий агент (LangGraph)
|
||
|
||
**Экзаменационное практическое задание** – собрать LangGraph‑агента с отдельным этапом планирования.
|
||
Сначала LLM разбивает задачу на шаги, затем выполняет их по очереди и выдаёт итоговый ответ.
|
||
|
||
---
|
||
|
||
## 📖 Описание
|
||
|
||
* **Язык**: Python 3.10+
|
||
* **Библиотеки**:
|
||
* `langgraph` – граф с прерываниями и чекпоинтером
|
||
* `langchain` + `langchain-openai` – вызов LLM
|
||
* `questionary` – интерактивный ввод в консоли
|
||
|
||
> **Важно**: проект рассчитан на использование модели OpenAI.
|
||
> Если вы хотите использовать другую модель, настройте `ChatOpenAI` в `solution.py`.
|
||
|
||
---
|
||
|
||
## ⚙️ Установка
|
||
|
||
```bash
|
||
# Клонируйте репозиторий
|
||
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:
|
||
|
||
```bash
|
||
export OPENAI_API_KEY="sk-..."
|
||
```
|
||
|
||
---
|
||
|
||
## 🚀 Запуск
|
||
|
||
```bash
|
||
python solution.py
|
||
```
|
||
|
||
### Что происходит
|
||
|
||
1. **Ввод задачи** – пользователь вводит задачу, которую нужно решить.
|
||
2. **Планирование** – LLM генерирует список шагов (`plan`).
|
||
3. **Выполнение** – каждый шаг выполняется последовательно, пользователь может просматривать результаты.
|
||
4. **Итог** – после выполнения всех шагов выводится финальный ответ.
|
||
|
||
---
|
||
|
||
## 📄 Пример использования
|
||
|
||
```text
|
||
$ 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
|
||
|
||
---``` |