Files

107 lines
3.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Планирующий агент (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
---```