Перейти к основному содержимому

Установка и развертывание InsightStream

Данная страница содержит пошаговую инструкцию по установке и развертыванию InsightStream на сервере с использованием Docker Compose. Здесь описаны архитектура системы, ключевые компоненты и основные этапы настройки окружения, запуска и проверки работоспособности системы.

Архитектура системы

Основные компоненты InsightStream

  • База данных: Qdrant, используется для хранения и поиска данных.
  • Шина сообщений: RabbitMQ, управляет очередями задач и обменом сообщениями между сервисами.
  • Индексатор: работает с Qdrant для хранения и поиска данных, позволяя находить релевантные документы.
  • Суммаризатор: использует LLM для создания кратких и точных ответов на запросы.
  • Поисковый веб-интерфейс: предоставляет доступ к системе через браузер, построен на React.js и взаимодействует с backend через REST API.
Важно

InsightStream не имеет встроенной аутентификации. Дополнительная настройка RabbitMQ, Qdrant осуществляется отдельно и описана в их документации.

Конфигурация InsightStream

Конфигурация InsightStream задается переменными окружения (переменные и их значения задаются в файле .env).

Основные параметры доступа к серверу InsightStream

Значения этих конфигурационных переменных необходимо задать в соответствии с тем, как будет осуществляться доступ к серверу.

# Сервер для загрузки документов и доступа к API
BASE_URL=http://адрес_или_доменное_имя_сервера:8080
AVAILABLE_USERS="['ключ_для_доступа_к_API']"
примечание

Адрес, заданный в переменной BASE_URL будет использоваться как для доступа к веб-интерфейсу системы, так и для взаимодействия между компонентами. Учитывайте это при настройке правил бранмауэра и в случаях если в сети используется split-horizon DNS.

Использование в этой переменной адресов 127.0.0.1 или localhost приведет к некорректной работе системы.

Дополнительные настройки .env

Для корректной работы InsightStream необходимо указать полный набор переменных остальных компонентов (сами компоненты будут установлены автоматически в следующих шагах).

# Ключи и URL для LLM API
CHAT_API_KEY="empty"
CHAT_MODEL="Compressa-LLM"
CHAT_API_BASE=http://compressa-nginx/v1/

# Настройки эмбеддингов
EMBED_MODEL="Compressa-Embedding"
EMBED_TIKTOKEN_MODEL="Salesforce/SFR-Embedding-Mistral"
EMBED_API_KEY="empty"
EMBED_API_BASE=http://compressa-nginx/v1/

# Настройки реранка
RERANK_MODEL="Compressa-ReRank"
RERANK_API_KEY="empty"
RERANK_API_BASE=http://compressa-nginx/v1/
NUM_DOCS="7"

База данных и очередь сообщений

Если в вашей инфраструктуре уже развернуты Qdrant и RabbitMQ, можно указать данные для доступа к ним в этих переменных:

# База данных Qdrant и очередь RabbitMQ
QDRANT_URL=http://qdrant:6333
RABBITMQ_URL=amqp://guest:guest@rabbitmq:5672/

В случае использования внешнего RabbitMQ рекомендуется создать отдельный vhost для работы InsightStream.

В случае использования RabbitMQ поставляемого как компонент InsightStream можно изменить данные создаваемого по умолчанию пользователя. Для этого необходимо задать значения переменных окружения RABBIT_USER и RABBIT_PASS, а также изменить соответствующим образом значение переменной RABBITMQ_URL в файле .env.

Шаги установки

Проверка окружения

  1. Убедитесь, что Docker и Docker Compose установлены.
  2. Проверьте доступ к Docker Registry для скачивания образов или или что образы импортированы при помощи docker load.

Настройка компонентов

  1. Ознакомьтесь с документацией по Qdrant и RabbitMQ.
  2. Укажите местоположение компонентов в переменных окружения компоуз-файла.

Подготовка Docker Compose файла

  1. Настройте файл конфигурации всех компонентов InsightStream.
  2. Используйте файл .env для упрощения настройки переменных окружения (за основу можно взять файл .env.example и править его)

Запуск системы

Выполните команду для запуска контейнеров в фоне:

docker-compose up -d

Проверка работоспособности

  1. Проверьте запущенные контейнеры:
docker ps
  1. При возникновении ошибок просмотрите логи контейнеров:
docker logs <container_name>

Доступ к компонентам

После успешного запуска системы, к основным компонентам можно получить доступ по следующим адресам:

  • Веб-интерфейс (WebUI) индексации: http://адрес_или_доменное_имя_сервера:8080/indexui/
  • API индексации: http://адрес_или_доменное_имя_сервера:8080/indexapi/
  • Поисковый интерфейс: http://адрес_или_доменное_имя_сервера:8080/ID_индекса_в_котором_осуществляется_поиск

Обеспечение безопасности

По умолчанию InsightStream не имеет встроенной аутентификации, поэтому рекомендуется использовать обратный прокси (например, Nginx) для защиты доступа к API. Ниже приведен пример конфигурации Nginx с использованием фиксированного токена:

server {
listen 443 ssl;
server_name yourdomain.com;
ssl_certificate /path/to/your/fullchain.pem;
ssl_certificate_key /path/to/your/privkey.pem;

location /api/ {
proxy_pass http://localhost:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

if ($http_authorization != "Bearer ваш_API_ключ") {
return 401;
}
}
}

Рекомендуется рассмотреть интеграцию с корпоративной системой SSO или использование OAuth2 для повышения уровня безопасности.

Заключение

После выполнения всех описанных шагов InsightStream будет готов к работе. Вы сможете загружать документы, создавать ассистентов и выполнять поиск по базе знаний. Для дальнейшей работы ознакомьтесь со следующими разделами документации.