Архитектура платформы
Определения
Ядро Платформы – бекэнд, набор сервисов, обеспечивающих ключевой функционал Платформы.

NB Информация часто обновляется и будет дополняться.
Тип | Микросервис | Зона ответственности микросервиса |
Dialog Service | dialog | Контролирует процесс общения с собеседником, действует согласно обученному сценарию, сохраняя контекст общения (чата) в отдельном хранилище (Redis). |
Message Storing | message-storing | Хранит сообщения, сессии, чаты и роутит AMQP сообщения в зависимости от мода текущей сессии в чате. |
System Box | system-box | Обрабатывает команды на исполнение внешних запросов, конструирует запрос в указанный сервис, мапирует данные из ответа на запрос. Обрабатывает входящий запрос. |
Messenger Controller | messenger-controller | Обрабатывает новые сообщения Собеседника из коннектора к мессенджеру, перенаправляет их в шину. Обрабатывает сообщения Бота и Оператора и перенаправляет их обратно в коннектор к мессенджеру. |
| messenger-api | Хранит Каналы и запущенные коннекторы, обрабатывает пользовательский CRUD Каналов. |
Bot Builder API | botbuilder-api | Хранит данные о сценарии Бота (Дерево Диалога, NLU модели, интенты, файлы), обрабатывает пользовательский CRUD этих данных. Обрабатывает команды на обучение, импорт, экспорт, добавляет данные к запросам и перенаправляет их в шину сообщений. Работает с S3 для хранения файлов для ответа Бота, экспортируемые конфиги Бота. Оповещает подписанных клиентов об изменениях переменных контекста в дебаг панели. |
| strategy-debug | Обрабатывает сообщения Бота и, в случае если сообщение из тестового канала, запрашивает сбор контекста у dialog сервиса. |
Strategy Controllers | strategy-train | Обрабатывает команду на обучениеДерева Диалога, выполняет проверки/конвертации/обработки по пайплайну обучения, выдает успех/фейл обучения обратно в шину. |
| strategy-validation | Обрабатывает команду валидации сценария, возвращает результат валидации в шину. |
| strategy-conversion | Обрабатывает команду конвертации сценария (из дерева слотов в граф нод), возвращает результат конвертации в шину. |
| strategy-config | Обрабатывает команды импорта, экспорта (дерева слотов) и кодирования (графа нод) диалоговых сценариев. Импорт и экспорт работают с конфигами JSON формата, кодирование производится в формат DSL dialog сервиса (тоже некоторого JSON формата). Возвращает результат обработки конфига в шину. |
NLU | data-processing | Обрабатывает команды на обработку регулярных выражений в тексте Собеседника. |
| nlu-gateway | Является «фасадом» над операциями создания/удаления NLU моделей, а также их использованием (отправка текстов на обработку в эти модели). |
| nlu-model-controller | Обрабатывает набор команд на обучение/удаление/парсинг NLU моделей, пересылает сообщения на конкретные NLU сервисы хранит структуру NLU конвейера (в каком порядке должны вызываться сервисы для выполнения обработки текста). |
| nlu-average-vector-composer | Возвращает среднее арифметическое над набором векторов (на входе вектора слов, на выходе вектор текста). |
| nlu-elmo-vectorizer | Возвращает контекстно-зависимое векторное представление каждого слова в тексте (на вход упорядоченный набор слов, на выходе упорядоченный набор векторов слов). Использует нейросетевую языковую модель ELMo. |
| nlu-lower-case-transformer | Преобразует упорядоченный набор слов в упорядоченный набор тех же слов в нижнем регистре. |
| nlu-nltk-splitter | Разбивает текст на упорядоченный набор слов. |
| nlu-punctuation-filter | Удаляет из упорядоченного набора слов слова, которые являются пунктуацией. Пунктуационные токены задаются через словарь. |
| nlu-svc-intent-classifier | Обучает модели машины опорных векторов, сохраняет в удаленном хранилище, использует для обработки векторов текстов чтобы получить намерение текста (целевое значение модели). В случае многоклассовой классификации используется подход one-vs-one. |
Admin API | administrator-api | Хранит сущности (компании, проекты, боты), обрабатывает пользовательский CRUD этих сущностей.
NB! имеет side effect – при создании Бота отправляет запрос на создани е тестового канала в messenger-api сервис |
Auth Service | authorization | Хранит Пользователей и их авторизованные сессии в Платформе. Обрабатывает пользовательский CRUD users и команды на вход, проверку авторизации и выход и регистрацию Пользователей.
NB! имеет side effect – при регистрации:
1) отправляет запрос на создание компании в administrator-api сервис
2) отправляет запрос на отправку email в mailing сервис |
Utils | mailing | Обрабатывает команды на отправку письма из платформы на определенный почтовый адрес. Хранит шаблоны писем в виде jinja2. |
| billing | |
| task-manager | Запускает команды по таймеру, отправляет команды в шину. |
Last modified 11mo ago