From 1c371793b9914c9e3b7b33a456b2d39f6f00b71e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B0=D1=80=D0=B8=D1=8F=20=D0=91=D0=B5=D1=80=D0=B4?= =?UTF-8?q?=D0=BD=D0=B8=D0=BA=D0=BE=D0=B2=D0=B0?= Date: Thu, 28 May 2026 16:28:28 +0000 Subject: [PATCH] =?UTF-8?q?=D0=AD=D0=BA=D0=B7=D0=B0=D0=BC=D0=B5=D0=BD:=20?= =?UTF-8?q?=D0=9F=D0=BB=D0=B0=D0=BD=D0=B8=D1=80=D1=83=D1=8E=D1=89=D0=B8?= =?UTF-8?q?=D0=B9=20=D0=B0=D0=B3=D0=B5=D0=BD=D1=82:=20README.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 136 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 134 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index ca14403..62b3764 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,135 @@ -# task-6a1864fd-ekzamen-planiruyuschiy-ag +# Планирующий агент – экзаменационный проект -Решения домашних заданий \ No newline at end of file +## Описание проекта +Проект реализует **планировочный агент** на основе 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. +(Добавьте свой собственный текст лицензии при необходимости.) + +--- \ No newline at end of file