-
Notifications
You must be signed in to change notification settings - Fork 40
Как создать модуль
Прежде чем приступать к созданию модулей, внимательно ознакомьтесь с описанием архитектуры Агрегата. Без этих вводных знаний трудно понять, что написано в этом разделе.
Модуль - это по сути verticle в терминах Vertx. То есть любой модуль должен быть написан и упакован ровно так же, как пишется и упаковывается любой модуль в Vertx. Подробнее о том, как выглядит модуль Vertx на Java, читайте здесь. В документации Vertx можно найти подробную документацию и для других языков программирования - в разделе Core на этой странице.
Вы можете использовать один из поддерживаемых языков программирования и любую удобную для вас IDE для разработки. Агрегат не накладывает никаких ограничений ни на IDE, ни на способ реализации модуля, ни на сторонние библиотеки, которые ему могут понадобиться.
Любой модуль (неважно какого типа) - это простой архив (в случае с Java это jar архив), который содержит нужный код (в случае с Java скомпилированный байткод, в случае JavaScript просто исходники). Также в архиве должен присутствовать текстовый файл-дескриптор с именем <имя модуля>.json, где указан обязательный параметр main, указывающий на главный исполняющий файл вашего модуля. Например:
{
"main" : "com.aggregate.detector.key.KeyDetector"
}Указывает, что при старте модуля Агрегат должен запустить класс com.aggregate.detector.key.KeyDetector вашего модуля. При этом сам модуль может конечно же содержать гораздо больше файлов и классов, но минимум один.
О том, что такое файл-дескриптор и что в нем можно писать, читайте в документации Vertx.
Имя модуля должно совпадать с именем файла модуля. Так чтобы Агрегат использовал его как имя сервиса в терминах Vertx. Для модулей Java, собранных с помощью Maven, имя файла модуля может также содержать номер версии. Например key-detector-1.0.0.jar
Все что необходимо вашему модулю. В случае если вы создаете функциональный голосовой модуль, то в архиве еще должен присутствовать файл грамматики голосовых запросов с именем <имя модуля>.xml, который содержит шаблоны команд и описание диалоговых контекстов. Подробнее о нем читайте в разделе Функциональный модуль.
Вы можете создать:
- функциональный модуль (который будет понимать голосовые команды пользователя)
- модуль активации (как например активация с клавиатуры)
- модуль распознавания речи (который слушает команду и превращает ее в текст для Агрегата)
- модуль синтеза речи (воспроизводит текст ответа Агрегата в виде речи)
Sorry, there was an error rendering this page.