Files
homework-solutions/solutions/69a474cdc46fd26feae69896_Практическое_задание__3__Память_и_подтве

Практическое задание №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
Qdrant 1.10+ (локальный сервер) docker run -p 6333:6333 qdrant/qdrant
Rich 13.x pip install rich

⚠️ Убедитесь, что Ollama запущен и модели llama3 и nomic-embed-text загружены:

ollama pull llama3
ollama pull nomic-embed-text

Установка зависимостей проекта

# В корне репозитория
pip install -r requirements.txt

Файл requirements.txt содержит:

langchain==0.2.*
langgraph==0.1.*
langchain-ollama==0.1.*
langchain-qdrant==0.1.*
rich==13.*

Если вы используете виртуальное окружение, активируйте его перед установкой.

Запуск

1. Запустить агента (agent.py)

python agent.py

Пример вывода:

🤖 Agent: Здравствуйте! Чем могу помочь?
User: Какой сегодня прогноз погоды в Москве?
🤖 Agent (tool: weather): ...

Агент будет запрашивать подтверждение перед каждым вызовом инструмента. Пользователь отвечает yes/no.

2. Запустить клиент (client.py)

python client.py

Пример взаимодействия:

Client: Какой сегодня прогноз погоды в Москве?
Agent: ...

Скрипт демонстрирует простое API‑взаимодействие с агентом.

Пример использования

  1. Запуск агента
    python agent.py
    
  2. Ввод запроса
    User: Расскажи мне о последних новостях в области ИИ.
    
  3. Подтверждение вызова инструмента
    Агент предложит вызвать инструмент news. Вы отвечаете:
    yes
    
  4. Получение ответа
    Агент возвращает результат, а история диалога сохраняется для последующих вопросов.

Память позволяет агенту учитывать контекст предыдущих сообщений, а подтверждение повышает контроль над выполнением действий.

Дополнительные сведения

  • Для изменения модели или параметров памяти отредактируйте agent.py.
  • В client.py можно подключить собственный веб‑интерфейс или REST API.
  • Логи и вывод форматируются библиотекой Rich для удобства чтения в терминале.

Если возникли вопросы, откройте issue в репозитории. Удачной работы!