Google Assistant - как повторно запросить пользователя с помощью @ sys.any, если входные данные определены как недействительные - PullRequest
0 голосов
/ 06 февраля 2019

Я пытаюсь создать пользовательское действие через Google Assistant.У меня есть пользовательские данные, которые определяются пользователем, и я хочу, чтобы пользователь спросил меня об этих данных, указав, какие данные они хотят узнать, указав их имя.

ex: Пользователь говорит: «Скажите мне»about Fred "Помощник отвечает" Fred is red "

[
  {
    "name":"Fred",
    "info":"Fred is red"
  }
]

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

ex:

Пользователь говорит: «Расскажите мне о Греге» Помощник отвечает: «Я не могу найти« Грега ». О ком бы вы хотели знать?»

[
  {
    "name":"Fred",
    "info":"Fred is red"
  }
]

Я попытался добавить ответ Обучающий, который содержит только параметр «имя», но затем, если пользователь говорит «Расскажите мне о Фреде», для параметра «Имя» задается значение «Рассказать мне о Фреде».вместо просто «Фред», что означает, что он игнорирует другие ответы Обучения, которые я настроил.

Кто-нибудь, кто может быть моим Оби-Ван Кеноби?

Редактировать: Я использовал Alexa для этого же проекта и отправил в AlexaДиректива elicitSlot.Может ли что-то подобное быть реализовано?

1 Ответ

0 голосов
/ 07 февраля 2019

В данном случае нет реального эквивалента директиве elicitSlot (по крайней мере, не так, как я обычно это вижу), но она предоставляет несколько инструментов для выполнения того, что вы пытаетесь сделать.

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

Тогда у вас может быть Intents, для которого установлен этот контекств качестве входного контекста.Тогда намерение будет сопоставлено только в том случае, если контекст активен.Это намерение может соответствовать @sys.any или любому другому типу сущности, который может быть уместен в этом случае.

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

...