Dispatcher
Dispatcher - основная составляющая обертки.
Dispatcher руководит тем, какой хендлер должен исполнится во время конкретного запроса, занимается регистрацией хендлеров.
При инициализации экземпляра класса Dispatcher передается 1 аргумент: ссылка на функцию (асинхронную или синхронную),
которую будем именовать Handler
- обработчик. Этот Handler
будет каким-то образом (каким - придумайте сами) образом
обрабатывать запрос (AliceRequest) и возвращать объект AliceResponse с текстом сообщения, которое будет говорить Алиса
после запуска Диалога пользователем.
Сам диспетчер является Blueprint
с дополнительным функционалом.
Далее о встроенных методах в класс Dispatcher
.
Регистрация нового хендлера
dispatcher.register_message_handler(
priority,
intent,
handler
)
priority: int
- приоритет хендлера.intent: Optional[str]
- название интента (как указано в настройках Диалога). Если не указан - хендлер будет fallback - выполняться без интента.handler: Callable
- ссылка на функцию (синхронную или асинхронную), которая будет обрабатывать запрос. На вход подается AliceRequest, возвращает AliceResponse или None.
Регистрация нового интента декоратором
@dispatcher.message_handler(priority, intent)
priority: int
- приоритет хендлера.intent: Optional[str]
- название интента (как указано в настройках Диалога). Если не указан - хендлер будет fallback - выполняться без интента.- Обрабатывает фукнцию (синхронную или асинхронную), которой на вход подается объект AliceRequest.
Возвращает
AliceResponse
.
Обработчик запроса
dispatcher.dispatch_request(request_obj)
request_obj: AliceRequest
- объект запроса.- Возвращает
AliceResponse
- итоговый объект ответа после обработки.