Используйте одно намерение дважды спина к спине - PullRequest
0 голосов
/ 12 мая 2019

У меня есть чат-бот со следующей предполагаемой структурой:
...
бот: вот несколько вопросов-
1. что такое программирование?
2. что такое диалоговое окно?
3. что такое контекст?
Пожалуйста, ответьте с номером вопроса, чтобы узнать ответ.
пользователь: 2
bot: Dialogflow - это платформа для создания чат-ботов
Вот еще несколько вопросов, которые могут у вас возникнуть -
4. Каково намерение?
5.Что такое выполнение?
ответить с номер вопроса, чтобы узнать ответ-
пользователь: 5
бот: выполнение .........
...
(и т. Д.)

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

Имя намерения showAnswer, и контексты установлены так, как показано на рисунке. contexts of showAnswer

Что я сделал, так это вставил сюда контекст ввода и вывода для его собственного продолжения (showAnswer-followup). Так что это может быть его собственным последующим намерением.

Проблема в том, что при выполнении описанного выше контекстного трюка он не отвечает даже в первый раз. Когда я не помещаю контекст (showAnswer-followup) в область входного контекста, это работает. но только один раз. Второй раз, когда пользователь отправляет номер вопроса, он его не распознает.

Я хочу, чтобы это намерение также распознавало второй (номер вопроса) введенный пользователем. Что здесь не так, и как я могу сделать этот цикл?

1 Ответ

1 голос
/ 13 мая 2019

Проблема заключается в том, что для запуска намерения, все входные контексты должны совпадать.Таким образом, поскольку вы устанавливаете showAnswer-followup только в контексте вывода этого намерения, оно никогда не сработает.

Не совсем понятно, зачем вам вообще требуется повторное намерение.Вы можете поддерживать действительные вопросы в контексте (который вы просто используете для хранения) и иметь намерение, которое срабатывает на число.Ваш обработчик намерений может проверить номер, обновить, какие из них действительны, и вернуть ответ.

(Кроме того, кажется, что просто не разговаривать с пользователем просто с цифрами.)

...