Google диалоги, как использовать динамические строки ответа? - PullRequest
1 голос
/ 08 апреля 2019

Я пытаюсь сделать простой диалог диалога. Я сделал простой разговор, чтобы спросить человека, которому он пытается позвонить, и затем говорит, что человек доступен / недоступен, что является просто текстовым ответом. Когда человек недоступен, у меня есть потенциально 3 действия, которые пользователь может сделать, оставить голосовую почту, перенаправить коллеге или подождать, пока человек не станет доступен,

поэтому сообщение, которое я бы возвратил, было «Я сожалею, что nameOfPerson недоступно, хотите оставить сообщение голосовой почты, перенаправить коллеге или подождать, пока nameOfPerson станет доступным?»

Что работает, но как я могу сделать так, чтобы, скажем, не было голосовой почты, на которую отвечает только намерение: «Извините, nameOfPerson недоступно, хотите ли вы перенаправить коллеге или подождать, пока nameOfPerson станет доступным? «

В настоящее время я вижу единственный способ исправить это - создать 7 намерений в разных контекстах, таких как:

Intent1: voicemailContext
Intent2: redirectContext
Intent3: voicemailContext, redirectContext
Intent4: waitingContext
Intent5: WaitingContext, redirectContext
Intent6: waitingContext, voicemailContext
intent7: waitingContext,redirectContext, voicemailContext

Вся эта работа только для небольшой настройки кажется сложной. Кроме того, в настоящее время я отправляю эти варианты в вызове, который я бы предпочел не делать, так как люди могли бы просто сказать эти варианты и получить совпадение

1 Ответ

0 голосов
/ 09 апреля 2019

Dialogflow очень плохо обрабатывает логику.Вы можете сделать это, как вы видели, но это приводит к чрезмерно сложным моделям.Помните, что в этом может помочь то, что Intents хорошо моделирует того, что говорит пользователь , но вы все еще несете ответственность за то, что вы делаете с этим.

Лучше во многихдело в том, чтобы положить логику в выполнение веб-крюка.Это позволяет вашему коду определить лучший ответ и отправить его.В зависимости от того, как вы хотите структурировать свои ответы, у вас есть несколько других вариантов:

  • Вы можете отправить контекст обратно в ответе.Это ограничило бы, какие Intents могут быть вызваны, когда пользователь отвечает.
  • Другой подход состоит в том, чтобы иметь только один Намерение для ответа, но использовать Entities для представления того, какие действия они могут делать.Затем сделайте так, чтобы ваше исполнение снова определило, дали ли они вам действительный или недействительный ответ, и ответьте соответственно.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...