# Агент с RAG‑памятью **Краткое описание** Проект реализует чат‑бота на основе Retrieval‑Augmented 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 в репозитории.*