Files
T

4.1 KiB
Raw Blame History

Агент с RAG‑памятью

Агент с RAG‑памятью – это простая демонстрация, как можно объединить RetrievalAugmented Generation (RAG) с памятью агента, чтобы получать более точные и контекстно‑связаные ответы.
Проект использует:

  • LangChain – для построения цепочек запросов к LLM и работы с памятью.
  • OpenAI – модель GPT‑4o (или любой другой LLM, поддерживаемый LangChain).
  • FAISS – векторный индекс для быстрого поиска релевантных документов.
  • SQLite – хранение истории диалога и пользовательских данных.

Установка

git clone https://github.com/yourusername/agent-rag-memory.git
cd agent-rag-memory
pip install -r requirements.txt

Важно:

  • Установите переменную окружения OPENAI_API_KEY с вашим ключом OpenAI.
  • Если хотите использовать другую модель, поменяйте её в config.py.

Запуск файлов

1. main.py

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

python main.py

После запуска вы увидите приглашение > , где можете задавать вопросы.

2. rag_agent.py

Модуль, реализующий RAG‑агента.
Можно импортировать и использовать в собственных скриптах:

python -c "import rag_agent; rag_agent.run_demo()"

3. memory_setup.py

Скрипт для предварительной индексации документов и создания памяти.

python memory_setup.py

После выполнения появится файл vector_store.faiss и база memory.db.

4. utils.py

Вспомогательные функции (логирование, форматирование).
Запуск не требуется, но можно проверить:

python -m pytest tests/test_utils.py

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

from rag_agent import RagAgent

# Инициализируем агента (использует уже созданный индекс и память)
agent = RagAgent()

# Задаём вопрос
response = agent.ask("Какой сегодня прогноз погоды в Москве?")

print(response)

Вывод будет выглядеть примерно так:

Прогноз погоды в Москве на сегодня: солнечно, температура 18°C, ветер 5 м/с.

Структура проекта

agent-rag-memory/
├── config.py          # Конфигурация модели и путей
├── main.py            # Точка входа
├── rag_agent.py       # Класс агента
├── memory_setup.py    # Индексация документов
├── utils.py           # Вспомогательные функции
├── requirements.txt   # Зависимости
├── vector_store.faiss # Векторный индекс (создаётся после запуска memory_setup.py)
└── memory.db          # SQLite‑база памяти (создаётся после запуска memory_setup.py)

Что дальше?

  • Добавить поддержку нескольких LLM (Claude, Gemini и т.д.).
  • Интегрировать с веб‑интерфейсом (FastAPI + React).
  • Добавить автоматическое обновление памяти при новых запросах.

Автор: Ваше имя
Дата: 26 мая 2026 г.