Практическое задание №3: Память и подтверждение действий: README.md

This commit is contained in:
2026-05-27 14:51:45 +00:00
parent b702980550
commit 3808516c66
@@ -0,0 +1,107 @@
# Практическое задание №3 – Память и подтверждение действий
## Описание проекта
В этом проекте реализован чат‑бот на основе LangChain + LangGraph с поддержкой:
- **Памяти разговора** (сохраняется история диалога в памяти `MemorySaver`).
- **Подтверждения** каждого вызова инструмента пользователем.
- Взаимодействия с локальными моделями Ollama (`llama3`, `nomicembed-text`) и хранением эмбеддингов в Qdrant.
Файлы проекта:
- `agent.py` – основной скрипт, создающий агента и запускающий диалог.
- `client.py` – пример клиентского кода для взаимодействия с агентом через API.
## Предварительные требования
| Компонент | Версия / Минимальные требования | Как установить |
|-----------|---------------------------------|----------------|
| **Python** | 3.10+ | `python -m venv .venv && source .venv/bin/activate` |
| **Ollama** | Любая версия, поддерживающая модели `llama3` и `nomic-embed-text` | [Скачать Ollama](https://ollama.ai/) |
| **Qdrant** | 1.10+ (локальный сервер) | `docker run -p 6333:6333 qdrant/qdrant` |
| **Rich** | 13.x | `pip install rich` |
> ⚠️ Убедитесь, что Ollama запущен и модели `llama3` и `nomic-embed-text` загружены:
> ```bash
> ollama pull llama3
> ollama pull nomic-embed-text
> ```
## Установка зависимостей проекта
```bash
# В корне репозитория
pip install -r requirements.txt
```
Файл `requirements.txt` содержит:
```text
langchain==0.2.*
langgraph==0.1.*
langchain-ollama==0.1.*
langchain-qdrant==0.1.*
rich==13.*
```
> Если вы используете виртуальное окружение, активируйте его перед установкой.
## Запуск
### 1. Запустить агента (`agent.py`)
```bash
python agent.py
```
Пример вывода:
```
🤖 Agent: Здравствуйте! Чем могу помочь?
User: Какой сегодня прогноз погоды в Москве?
🤖 Agent (tool: weather): ...
```
> Агент будет запрашивать подтверждение перед каждым вызовом инструмента. Пользователь отвечает `yes`/`no`.
### 2. Запустить клиент (`client.py`)
```bash
python client.py
```
Пример взаимодействия:
```
Client: Какой сегодня прогноз погоды в Москве?
Agent: ...
```
> Скрипт демонстрирует простое API‑взаимодействие с агентом.
## Пример использования
1. **Запуск агента**
```bash
python agent.py
```
2. **Ввод запроса**
```
User: Расскажи мне о последних новостях в области ИИ.
```
3. **Подтверждение вызова инструмента**
Агент предложит вызвать инструмент `news`. Вы отвечаете:
```
yes
```
4. **Получение ответа**
Агент возвращает результат, а история диалога сохраняется для последующих вопросов.
> Память позволяет агенту учитывать контекст предыдущих сообщений, а подтверждение повышает контроль над выполнением действий.
## Дополнительные сведения
- Для изменения модели или параметров памяти отредактируйте `agent.py`.
- В `client.py` можно подключить собственный веб‑интерфейс или REST API.
- Логи и вывод форматируются библиотекой **Rich** для удобства чтения в терминале.
---
Если возникли вопросы, откройте issue в репозитории. Удачной работы!