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

This commit is contained in:
2026-05-28 16:28:28 +00:00
parent 4e7e2e671b
commit 1c371793b9
+134 -2
View File
@@ -1,3 +1,135 @@
# task-6a1864fd-ekzamen-planiruyuschiy-ag
# Планирующий агент – экзаменационный проект
Решения домашних заданий
## Описание проекта
Проект реализует **планировочный агент** на основе 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.
(Добавьте свой собственный текст лицензии при необходимости.)
---