# Агент с RAG‑памятью **Агент с RAG‑памятью** – это простая демонстрация, как можно объединить Retrieval‑Augmented Generation (RAG) с памятью агента, чтобы получать более точные и контекстно‑связаные ответы. Проект использует: - **LangChain** – для построения цепочек запросов к LLM и работы с памятью. - **OpenAI** – модель GPT‑4o (или любой другой LLM, поддерживаемый LangChain). - **FAISS** – векторный индекс для быстрого поиска релевантных документов. - **SQLite** – хранение истории диалога и пользовательских данных. --- ## Установка ```bash 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` Главный скрипт, который запускает агента и обрабатывает пользовательский ввод. ```bash python main.py ``` После запуска вы увидите приглашение `> `, где можете задавать вопросы. ### 2. `rag_agent.py` Модуль, реализующий RAG‑агента. Можно импортировать и использовать в собственных скриптах: ```bash python -c "import rag_agent; rag_agent.run_demo()" ``` ### 3. `memory_setup.py` Скрипт для предварительной индексации документов и создания памяти. ```bash python memory_setup.py ``` > После выполнения появится файл `vector_store.faiss` и база `memory.db`. ### 4. `utils.py` Вспомогательные функции (логирование, форматирование). Запуск не требуется, но можно проверить: ```bash python -m pytest tests/test_utils.py ``` --- ## Пример использования ```python 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 г.