Есть ли способ избежать повторного намерения во второй раз? - PullRequest
0 голосов
/ 01 мая 2019

Я новичок, нуждающийся в определенной помощи в Dialogflow. У меня есть три намерения (на самом деле они намного больше), и у каждого из них есть продолжение, позвольте мне сделать набросок ниже.

Я назову 1-е намерение - «Голова», 2-е намерение - «Сундук», 3-е намерение - «Назад»

Скажите, что 1-е намерение срабатывает, когда кто-то говорит: «У меня голова болит», пара последующих действий будет проходить в том же духе, например, «сколько времени это займет», «когда это началось» ...... и т. д. до последнего наблюдения за этим намерением, после этого агент спросит, является ли пользователь имеет проблемы с «Сундуком», что вызывает срабатывание 2-го намерения, или может также спросить, есть ли у пользователя проблемы с «Назад», инициирующим 3-е намерение.

Продолжая, скажем, агент спросил о «Сундуке», который запускает 2-е намерение, которое также имеет свои собственные последующие действия, а также я настроил его, чтобы задавать вопросы о других проблемах, как я делал для 1-го намерения (в данном случае » Голова "или" Назад ").

У меня вопрос: как я могу позволить агенту не спрашивать о «Голове» (который уже был задан в 1-м экземпляре) и переходить только к оставшемуся экземпляру «Назад»?

Надеюсь, я сформулировал это понятным образом.

Любые обходные пути действительно будут оценены, спасибо заранее

1 Ответ

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

Возможно, вы захотите взглянуть на контекст.

https://dialogflow.com/docs/contexts https://dialogflow.com/docs/contexts/input-output-contexts

Итак, как это работает по сути, если у вас есть намерение с входным контекстом, он не сработает, если этот конкретный контекст не активен. Вы можете создать и установить продолжительность контекста в намерении в разделе выходного контекста.

Так что, если вы находитесь в середине разговора о сундуке, вы не хотите, чтобы входной контекст для сундука или спины был активным, чтобы их связанные намерения не сработали.

Только после того, как обработан последний шаг сундука, вы можете запустить входной контекст для Back и в выходном контексте установить срок жизни контекста сундука равным 0, чтобы он заканчивался. Это гарантирует, что намерения, связанные с Сундуком, не сработают снова.

Это предполагает, что вы хотите обрабатывать эти разговоры последовательно, если хотите, чтобы они были более динамичными, где порядок вопросов не имеет значения. Это будет намного сложнее.

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...