Как создавать динамические диалоги из REST API в botframework - PullRequest
0 голосов
/ 10 июля 2019

Я не хочу создавать бота, который собирает его ответы и вопросы из API отдыха.

Bot: How are you?
User: I'm fine, how are you?
Bot: I'm fine, also.

Таким образом, вопросы от бота (даже первого) собираются через REST API из внешнего сервиса. Также ответ пользователя отправляется в эту службу, и ответ ботов "Я тоже в порядке" является результатом запроса REST.

Сначала я реализовал это, не используя функцию диалога вообще. Прекрасно работает, но без диалога завершить диалог невозможно.

Оглядываясь на некоторые примеры, я мог найти только некоторые с WaterfallDialog. WatefallDialogs создаются с шагами - и я не знаю количество шагов.

Возможно ли построить такой диалог, или бот-фреймворк не предназначен для таких вещей?

1 Ответ

2 голосов
/ 10 июля 2019

В каркасе ботов V4 поток диалогов / разговоров, который вы выбираете для разговоров, является необязательным, и вам не нужно их использовать (https://docs.microsoft.com/en-us/azure/bot-service/bot-service-design-conversation-flow?view=azure-bot-service-4.0). Все, что вам нужно сделать, это реализовать состояние бота (https://docs.microsoft.com/en-us/azure/bot-service/bot-builder-howto-v4-state?view=azure-bot-service-4.0), так что вы можете хранить либо данные разговора (или данные пользователя - зависит от того, в каком состоянии вы нуждаетесь).

Я реализовал диалог разговора, используя один обработчик активности и FSM (https://en.wikipedia.org/wiki/Finite-state_machine) - я используюраспознаватели для общих диалогов (справка), но по большей части мой обработчик переходов выполняет сравнения регулярных выражений для извлечения ключевых слов, а затем переходит в следующее состояние. Итак, если вы можете построить график своего FSM и перечислить все параметры диалогов, вы можете создатьдиалоговое окно, которое кажется диалоговым и естественным.

В настоящее время я не могу поделиться кодом, но, надеюсь, он вам не нужен.

...