4.6 KiB
🤖 Агент корпоративной памяти с RAG (RAG Agent)
Этот проект реализует интеллектуального ассистента, который использует векторную базу знаний Qdrant для извлечения контекстной информации (Retrieval-Augmented Generation, RAG). Все LLM и эмбеддинги обрабатываются локально через Ollama.
🚀 Обзор функционала
Агент способен:
- Отвечать на вопросы: Использовать семантический поиск по базе знаний Qdrant для предоставления точных ответов (RAG).
- Индексировать данные: Получить новые документы от пользователя и добавить их в базу знаний, чтобы агент мог использовать эту информацию в будущем.
🛠️ Требования к окружению
Для работы агента необходимы следующие компоненты:
- Python 3.10+
- Ollama: Локальный сервер для запуска LLM и эмбеддингов.
- Qdrant: Векторная база данных (рекомендуется запуск Docker-контейнера).
⚙️ Установка зависимостей
Шаг 1: Запуск Ollama
Установите Ollama и убедитесь, что он запущен на http://localhost:11434. Затем скачайте необходимые модели через терминал:
ollama pull llama3 # Основная модель для генерации ответов
ollama pull nomic-embed-text # Модель эмбеддингов (для векторного поиска)
Шаг 2: Запуск Qdrant
Рекомендуется запустить Qdrant в Docker для простоты.
docker run -p 6333:6333 qdrant/qdrant
Убедитесь, что порт 6333 свободен.
Шаг 3: Установка Python зависимостей
Клонируйте репозиторий и установите все необходимые библиотеки.
# Предполагая, что вы в корневой папке проекта
pip install -r requirements.txt
▶️ Запуск Агента
Запустите скрипт agent.py из командной строки:
python agent.py
При первом запуске агент автоматически проинициализирует коллекцию в Qdrant и загрузит имитацию начальных данных (Политика отпусков, Оплата труда).
💬 Команды CLI
Агент работает в интерактивном режиме. Используйте следующие команды:
- Задать вопрос: Просто введите ваш вопрос. Агент автоматически использует
search_knowledge_baseдля поиска и генерации ответа на основе найденного контекста. - Искать информацию по запросу (Явный вызов):
/search <ваш запрос> # Пример: /search условия отпуска - Добавить новую информацию: Используйте эту команду, когда вам нужно обучить агента на новом документе или тексте. Контент должен быть заключен в кавычки.
/add "<Полный текст нового документа>" "<Тема для индексации>" # Пример: /add "Новый раздел о командировочных расходах..." "Политика командировок"
⚠️ Важные замечания
- Конфигурация: Код предполагает, что Ollama запущен на
http://localhost:11434и Qdrant — наlocalhost:6333. Измените константы вagent.py, если используются другие адреса. - Обработка ошибок: В коде реализована базовая обработка исключений для случаев, когда Ollama или Qdrant недоступны.