Files
task_6a02e23da6fe2e4ac16acf…/README.md
T

4.6 KiB

🤖 Агент корпоративной памяти с RAG (RAG Agent)

Этот проект реализует интеллектуального ассистента, который использует векторную базу знаний Qdrant для извлечения контекстной информации (Retrieval-Augmented Generation, RAG). Все LLM и эмбеддинги обрабатываются локально через Ollama.

🚀 Обзор функционала

Агент способен:

  1. Отвечать на вопросы: Использовать семантический поиск по базе знаний Qdrant для предоставления точных ответов (RAG).
  2. Индексировать данные: Получить новые документы от пользователя и добавить их в базу знаний, чтобы агент мог использовать эту информацию в будущем.

🛠️ Требования к окружению

Для работы агента необходимы следующие компоненты:

  1. Python 3.10+
  2. Ollama: Локальный сервер для запуска LLM и эмбеддингов.
  3. 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

Агент работает в интерактивном режиме. Используйте следующие команды:

  1. Задать вопрос: Просто введите ваш вопрос. Агент автоматически использует search_knowledge_base для поиска и генерации ответа на основе найденного контекста.
  2. Искать информацию по запросу (Явный вызов):
    /search <ваш запрос> 
    # Пример: /search условия отпуска
    
  3. Добавить новую информацию: Используйте эту команду, когда вам нужно обучить агента на новом документе или тексте. Контент должен быть заключен в кавычки.
    /add "<Полный текст нового документа>" "<Тема для индексации>"
    # Пример: /add "Новый раздел о командировочных расходах..." "Политика командировок"
    

⚠️ Важные замечания

  • Конфигурация: Код предполагает, что Ollama запущен на http://localhost:11434 и Qdrant — на localhost:6333. Измените константы в agent.py, если используются другие адреса.
  • Обработка ошибок: В коде реализована базовая обработка исключений для случаев, когда Ollama или Qdrant недоступны.

📚 Документация

LangChain Documentation