Экзамен: Планирующий агент: README.md

This commit is contained in:
2026-05-29 06:39:24 +00:00
parent 2983cccdeb
commit 78dfe4666d
+106 -2
View File
@@ -1,3 +1,107 @@
# task-6a1864fd-ekzamen-planiruyuschiy-ag
# Планирующий агент (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
---```