Оформление
Внешние зависимости
Какие сторонние сервисы нужны платформе, для чего каждый нужен и без каких из них платформа работать не будет.
Сводная таблица
| Сервис | Для чего | Обязателен |
|---|---|---|
| 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 поднимает окружение для разработки, а не готовую установку.