4.1 KiB
4.1 KiB
Агент с RAG‑памятью
Агент с RAG‑памятью – это простая демонстрация, как можно объединить Retrieval‑Augmented 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 г.