Асинхронный чат-бот Dialogflow

Я использую Dialogflow с файлом V2 C# client library. Когда пользователь предоставляет чат-боту адрес, я использую веб-хук, чтобы отправить адрес на мой сервер.

Затем моя серверная часть проверяет адрес и выполняет некоторые другие действия (моя серверная часть занимает около 2 секунд).

Тем не менее, я хотел бы, чтобы чат-бот ответил пользователю что-то вроде «Дайте мне секунду, и я проверю адрес, который вы мне предоставили», до того, как мой бэк-энд завершится.

Затем, как только мой сервер завершится, ответьте пользователю с результатами проверки адреса. Я не хочу принимать ввод в течение 2 секунд, которые обрабатывает мой сервер.

Подводя итог, я хотел бы знать, как лучше всего подтвердить ввод пользователя сообщением, не принимать дальнейший ввод до тех пор, пока моя внутренняя обработка не будет завершена, а затем, наконец, ответить пользователю с результатами моей обратной связи. конец?


person Harry Stuart    schedule 20.11.2018    source источник


Ответы (1)


Вам нужно управлять этим через contexts. Если вы используете Dialogflow SDK вместо пользовательского интерфейса, вы можете управлять всем этим через код, что более удобно.

Если вы используете графический интерфейс, установите input_context и дайте ему некоторое время жизни, как вы считаете нужным. При успешном разрешении вашего веб-хука обновите или отмените соответствующий input_context через output_context, чтобы продемонстрировать полноту запроса.

Используя событие contexts, если пользователь задает любой другой вопрос, вы не потеряете предыдущий вопрос, и его ответ все равно будет отображаться пользователю.

Отключение чат-бота, не отвечая на вопросы, может быть не очень удобным для пользователя. Если вы действительно хотите это сделать, вам понадобится JS, который поможет вам создать значок загрузки/обработки в интерфейсе вашего бота для определенных intents, в то время как вы программно управляете командами отключения и включения звука в пользовательском интерфейсе.

person Pruthvi Kumar    schedule 20.11.2018