From 6f259b80d8035584efa5da58a516004266ba26a9 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:33:31 +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, 43 insertions(+), 93 deletions(-) diff --git a/README.md b/README.md index 62b3764..55e9195 100644 --- a/README.md +++ b/README.md @@ -1,23 +1,19 @@ # Планирующий агент – экзаменационный проект ## Описание проекта -Проект реализует **планировочный агент** на основе LLM (Large Language Model) из библиотеки `langchain`. -Агент принимает список целей и генерирует последовательность действий, которые необходимо выполнить для их достижения. +В этом репозитории реализован **планировщик задач** на основе LLM (Large Language Model). +Агент принимает целевое задание и генерирует список шагов, которые необходимо выполнить для достижения цели. -> ⚠️ Весь код находится в одном файле `solution.py`. -> Для работы требуется ключ OpenAI – переменная окружения `OPENAI_API_KEY`. - ---- +Ключевые технологии: +- `langgraph` – библиотека для построения графов состояний с использованием LLM. +- `langchain-openai` – обёртка над OpenAI API (можно заменить на `langchain-ollama`, если хотите использовать локальный LLM). ## Структура проекта ``` -. -├── solution.py # Основной скрипт с реализацией агента -└── README.md # Это файл +├── solution.py # Основной скрипт, реализующий планировщик +└── README.md # Текущий файл ``` ---- - ## Установка зависимостей ```bash @@ -25,111 +21,65 @@ python -m venv .venv source .venv/bin/activate # Windows: .venv\Scripts\activate -# Установите зависимости из requirements.txt (или вручную) -pip install langchain fastapi pydantic rich openai +# Установите зависимости из requirements.txt (если есть) или вручную: +pip install langgraph langchain-openai openai # для OpenAI API ``` > **Важно** -> `langchain` автоматически установит `openai`, но иногда требуется явно установить пакет `openai`. +> Для работы с `ChatOpenAI` необходимо иметь переменную окружения `OPENAI_API_KEY`. +> ```bash +> export OPENAI_API_KEY="sk-..." +> ``` ---- +Если вы хотите использовать Ollama вместо OpenAI, замените импорт и вызов LLM: -## Настройка переменной окружения +```python +from langchain_ollama import ChatOllama -```bash -export OPENAI_API_KEY="sk-XXXXXXXXXXXXXXXXXXXX" -# Windows: -set OPENAI_API_KEY=sk-XXXXXXXXXXXXXXXXXXXX +# ... +llm = ChatOllama(model="llama3.1", temperature=0.2) ``` -Если ключ не задан, скрипт завершится с ошибкой. +## Запуск скрипта ---- - -## Запуск - -### 1. Простой запуск из командной строки +`solution.py` – это самодостаточный скрипт, который можно запустить напрямую: ```bash python solution.py ``` -Скрипт запустит интерактивный режим: -пользователь вводит список целей (через запятую), после чего агент выводит план действий. +При запуске будет предложено ввести цель (goal). После ввода агент сгенерирует список шагов и выведет их на экран. -> **Пример** -> ``` -> Введите цели, разделённые запятыми: -> Купить хлеб, купить молоко -> План действий: -> 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 +$ python solution.py +Введите цель: Создать веб‑страницу для портфолио разработчика. +Генерация плана... +Шаги: +1. Составить структуру HTML (header, main, footer). +2. Подобрать цветовую схему и шрифты. +3. Реализовать адаптивный дизайн с CSS Grid/Flexbox. +4. Добавить интерактивные элементы на JavaScript. +5. Оптимизировать загрузку ресурсов и проверить SEO. ``` ---- - -## Что делает класс `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() +from solution import plan_steps, PlannerState + +state = {"goal": "Написать научную статью по машинному обучению"} +new_state = plan_steps(state) +print(new_state["steps"]) ``` ---- +## Возможные улучшения + +- Добавить сохранение истории планов в файл. +- Интегрировать с `langgraph` для более сложных цепочек действий (например, проверка корректности шагов). +- Подключить к UI (Streamlit/Gradio) для интерактивного взаимодействия. ## Лицензия -MIT © 2026. -(Добавьте свой собственный текст лицензии при необходимости.) - ---- \ No newline at end of file +MIT © 2026 \ No newline at end of file