Skip to content

Внешние зависимости ​

Какие сторонние сервисы нужны платформе, для чего каждый нужен и без каких из них платформа работать не будет.

Сводная таблица ​

СервисДля чегоОбязателен
PostgreSQL 16Единственное хранилище данных. Все таблицы, включая очередь сообщенийДа. Без строки подключения API не запустится
Каталог на дискеСодержимое файлов чатов. Должен быть виден и API, и RuntimeДа, если нужна работа с файлами
Провайдер языковой моделиВсе обращения к модели. Любой сервис с OpenAI-совместимым APIДа, иначе платформа ничего не сможет ответить
Серверы MCPИнструменты для ИИНет
ONLYOFFICE Document Server CEПросмотр офисных документов в интерфейсеНет, по умолчанию выключен
Модель поиска персональных данныхОпределение имён и адресов в текстеНет, нужна только при включённом маскировании

PostgreSQL ​

Вся база платформы. Отдельного брокера сообщений нет: сообщения, которые не смогли начаться сразу, складываются в обычную таблицу, а API проверяет её по таймеру каждые 2,5 секунды.

Подключение задаётся либо одной строкой DATABASE_URL, либо набором переменных POSTGRES_*. Если ни того, ни другого нет, API не запустится.

Каталог файлов ​

Путь задаётся переменной SESSION_FILES_DIR. Runtime получает этот же путь и читает файлы напрямую, поэтому оба приложения обязаны видеть один и тот же каталог.

Подробности устройства в разделе Файлы и слой S3.

Провайдер языковой модели ​

Платформа не содержит своей модели. Провайдер это внешний сервис с OpenAI-совместимым API.

Ключи не в переменных окружения

Адрес провайдера и ключ доступа хранятся в базе данных и настраиваются через интерфейс администрирования, а не через переменные окружения. Ключ хранится в зашифрованном виде.

Серверы MCP ​

Инструменты подключаются по протоколу MCP. Поддерживаются три транспорта: запуск локального процесса, Streamable HTTP и SSE.

Инструменты не входят в ядро платформы и не обязательны. Платформа без них работает как обычный чат с моделью.

ONLYOFFICE Document Server CE ​

Нужен только для просмотра документов Word, Excel и PowerPoint в интерфейсе. По умолчанию выключен настройкой платформы.

В поставке для разработки поднимается в контейнере и привязывается к локальному адресу. Платформа обращается к нему через собственное проксирование, поэтому наружу его открывать не нужно.

Модель поиска персональных данных ​

Для поиска имён и адресов используется модель распознавания сущностей, работающая внутри процесса API. По умолчанию это Xenova/bert-base-multilingual-cased-ner-hrl, размер около 180 МБ. Модель скачивается при первом включении маскирования и хранится в локальном кэше.

Важное следствие

Если маскирование включено, а модель не загрузилась, платформа откажется обрабатывать сообщения. Такой режим выбран сознательно: лучше отказать, чем отправить провайдеру персональные данные.

Чего платформа не использует ​

Не используетсяПояснение
S3, MinIO и другие объектные хранилищаФайлы лежат в каталоге на диске, обращения в стиле S3 обслуживает сам API
Redis, RabbitMQ, Kafka и любые брокерыОчередь это таблица в базе данных
MilvusВ коде платформы и в коде поставляемых серверов MCP упоминаний нет

Про Milvus и SearXNG

На архитектурной схеме продукта Milvus и SearXNG показаны как сторонние сервисы. SearXNG действительно используется, но не платформой, а сервером searcher. Milvus в переданном коде не найден. Уточните, где он используется, прежде чем описывать его как зависимость платформы.

Как поставляется ​

Образ собирается одним Dockerfile на базе node:22-alpine, при этом API и Runtime запускаются в одном контейнере.

Файл docker-compose.yml описывает только PostgreSQL и ONLYOFFICE, самого приложения в нём нет. То есть compose поднимает окружение для разработки, а не готовую установку.

Документация платформы EVA