Установка и развертывание 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_индекса_в_котором_осуществляется_поиск