chatme.ai
Search
⌃K

Архитектура платформы

Ядро Платформы (Core)

Определения
Ядро Платформы – бекэнд, набор сервисов, обеспечивающих ключевой функционал Платформы.
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
Запускает команды по таймеру, отправляет команды в шину.