Агент с RAG-памятью: README.md
This commit is contained in:
@@ -0,0 +1,116 @@
|
||||
# Агент с 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 г.
|
||||
Reference in New Issue
Block a user