Установка и развертывание 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.
Шаги установки
Проверка окружения
- Убедитесь, что Docker и Docker Compose установлены.
- Проверьте доступ к Docker Registry для скачивания образов или или что образы импортированы при помощи
docker load.
Настройка компонентов
- Ознакомьтесь с документацией по Qdrant и RabbitMQ.
- Укажите местоположение компонентов в переменных окружения компоуз-файла.
Подготовка Docker Compose файла
- Настройте файл конфигурации всех компонентов InsightStream.
- Используйте файл
.envдля упрощения настройки переменных окружения (за основу можно взять файл.env.exampleи править его)
Запуск системы
Выполните команду для запуска контейнеров в фоне:
docker-compose up -d
Проверка работоспособности
- Проверьте запущенные контейнеры:
docker ps
- При возникновении ошибок просмотрите логи контейнеров:
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 будет готов к работе. Вы сможете загружать документы, создавать ассистентов и выполнять поиск по базе знаний. Для дальнейшей работы ознакомьтесь со следующими разделами документации.