Планирующий агент – экзаменационный проект
Описание проекта
Проект реализует планировочный агент на основе LLM (Large Language Model) из библиотеки langchain.
Агент принимает список целей и генерирует последовательность действий, которые необходимо выполнить для их достижения.
⚠️ Весь код находится в одном файле
solution.py.
Для работы требуется ключ OpenAI – переменная окруженияOPENAI_API_KEY.
Структура проекта
.
├── solution.py # Основной скрипт с реализацией агента
└── README.md # Это файл
Установка зависимостей
# Создайте виртуальное окружение (рекомендуется)
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
# Установите зависимости из requirements.txt (или вручную)
pip install langchain fastapi pydantic rich openai
Важно
langchainавтоматически установитopenai, но иногда требуется явно установить пакетopenai.
Настройка переменной окружения
export OPENAI_API_KEY="sk-XXXXXXXXXXXXXXXXXXXX"
# Windows:
set OPENAI_API_KEY=sk-XXXXXXXXXXXXXXXXXXXX
Если ключ не задан, скрипт завершится с ошибкой.
Запуск
1. Простой запуск из командной строки
python solution.py
Скрипт запустит интерактивный режим:
пользователь вводит список целей (через запятую), после чего агент выводит план действий.
Пример
Введите цели, разделённые запятыми: Купить хлеб, купить молоко План действий: 1. Посетить ближайший супермаркет. 2. Составить список необходимых продуктов: хлеб, молоко. 3. Проверить наличие скидок на продукты. ...
2. Использование как модуля
from solution import PlanningAgent
agent = PlanningAgent()
goals = ["построить дом", "обучиться Python"]
plan = agent.generate_plan(goals)
print(plan)
Пример использования в коде
# example.py
from solution import PlanningAgent
if __name__ == "__main__":
agent = PlanningAgent()
goals = ["построить дом", "обучиться Python"]
plan_text = agent.generate_plan(goals)
print("Сгенерированный план:")
print(plan_text)
Запуск:
python example.py
Что делает класс PlanningAgent
| Метод | Описание |
|---|---|
__init__(self, model_name="gpt-3.5-turbo") |
Инициализация LLM и шаблона Prompt. |
generate_plan(self, goals: List[str]) -> str |
Принимает список целей, формирует запрос к модели и возвращает текст плана действий. |
Тесты
В проекте нет автоматических тестов – это учебный скрипт.
Для проверки можно написать простые unit‑тесты, например:
def test_generate_plan():
agent = PlanningAgent()
plan = agent.generate_plan(["построить дом"])
assert isinstance(plan, str)
assert "дом" in plan.lower()
Лицензия
MIT © 2026.
(Добавьте свой собственный текст лицензии при необходимости.)