Files
T

116 lines
4.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Агент с RAG‑памятью
**Агент с RAG‑памятью** – это простая демонстрация, как можно объединить RetrievalAugmented 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 г.