Files
T

114 lines
4.5 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‑памятью
**Краткое описание**
Проект реализует чат‑бота на основе RetrievalAugmented Generation (RAG), который использует локальный векторный поиск через Qdrant и генерацию текста/ответов от Ollama.
Бот умеет:
- хранить документы в Qdrant, индексировать их с помощью модели `nomic-embed-text`;
- при запросе пользователя искать релевантные фрагменты из базы;
- генерировать ответ на основе найденных данных и собственного контекста через модель `llama3` (Ollama).
## Предварительные требования
| Компонент | Версия / Минимальная версия | Как установить |
|-----------|-----------------------------|----------------|
| **Python** | 3.10+ | `python -m venv .venv && source .venv/bin/activate` |
| **Ollama** | Любая актуальная версия | [Официальная инструкция](https://ollama.com/download) |
| **Qdrant** | 1.x (Docker рекомендуется) | `docker run -p 6333:6333 qdrant/qdrant:latest` |
| **LangChain** | 0.2+ | Устанавливается через `requirements.txt` |
> ⚠️ Перед запуском убедитесь, что Ollama запущен и модели `llama3` и `nomic-embed-text` доступны:
> ```bash
> ollama pull llama3
> ollama pull nomic-embed-text
> ```
## Установка
```bash
# Клонируйте репозиторий (если ещё не сделано)
git clone https://github.com/yourname/rag-agent.git
cd rag-agent
# Создайте и активируйте виртуальное окружение
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
# Установите зависимости
pip install -r requirements.txt
```
## Запуск файлов
### 1. `agent.py` – основной скрипт бота
```bash
python agent.py --config config.yaml
```
*Параметры*
- `--config`: путь к YAML‑файлу с настройками (порт Qdrant, имя коллекции и т.д.).
> Если файл конфигурации не указан, используются значения по умолчанию.
### 2. `client.py` – простой клиент для взаимодействия
```bash
python client.py --host http://localhost:8000
```
*Параметры*
- `--host`: адрес API‑сервера (по умолчанию `http://localhost:8000`).
> Клиент отправляет запросы к REST‑API, реализованному в `agent.py`.
## Пример использования
1. **Инициализация базы**
```bash
python agent.py --init-db
```
Это создаст коллекцию Qdrant и загрузит документы из папки `data/`.
2. **Запуск бота**
```bash
python agent.py
```
3. **Отправка запроса через клиент**
```bash
python client.py --query "Какой прогноз погоды на завтра?"
```
Ответ будет выглядеть примерно так:
```
AI: На основе данных из базы, ожидается облачность с температурой около 18°C.
```
4. **Прямое взаимодействие**
Внутри `agent.py` можно вызвать функцию `run_agent()` и передать ей строку запроса:
```python
from agent import run_agent
answer = run_agent("Расскажи про историю Qdrant")
print(answer)
```
## Структура проекта
```
rag-agent/
├── agent.py # Основной скрипт, реализующий RAG‑бота
├── client.py # Простой клиент для общения с ботом
├── requirements.txt # Зависимости Python
├── config.yaml # Конфигурация (пример)
└── data/ # Папка с исходными документами
```
## Лицензия
MIT License см. файл `LICENSE`.
---
*Если возникнут вопросы, создайте issue в репозитории.*