Инициализируйте типы сущностей сеансов до первого ответа о намерениях в диалоге с помощью Google Assistant - PullRequest
2 голосов
/ 13 апреля 2020

Мое приложение в настоящее время загружает типы сущностей сеансов во время ответа «Добро пожаловать».

Итак, если пользователь говорит:

Поговорите с TestPoemApp.

Мое приложение ответит:

Привет , Какое стихотворение вы хотели бы услышать?

, а также отправляет webhookResponse.SessionEntityTypes, определяющий типы сущностей сеансов для сущности «PoemType» ( метод выполнения ). Затем пользователь может сказать:

Recite My Custom Poem.

, где "My Custom Poem" - это тип объекта сеанса для объекта "PoemType". Намерение RecitePoem срабатывает, и все работает хорошо.

Однако, если пользователь говорит:

Скажите TestPoemApp, чтобы он повторил My Custom Poem. (он же UserPhrase2)

это не работает, поскольку RecitePoem Intent запускается непосредственно перед тем, как типы объектов сеанса были загружены, так как Welcome Intent было обойдено. Есть ли способ загрузить типы сущностей сессий до или во время первого ответа?

ПРИМЕЧАНИЕ 1. Одна из попыток - использовать события с заполнением слотов на стороне сервера. Таким образом, когда пользователь говорит UserPhrase2, объект RecitePoem Intent видит, что требуемый параметр PoemType отсутствует, и отвечает с помощью webhookResponse.SessionEntityTypes, определяющего типы объектов сеанса, а также вызывает событие, которое в основном просто повторяет запуск объекта RecitePoem. Это не работает, потому что я считаю, что webhookResponse.SessionEntityTypes не читается до конца цепочки событий (т. Е. SessionEntityTypes не будет читаться, пока не ответит повторный вызов RecitePoem). Я верю в это, потому что "Когда параметр followupEventInput установлен для WebhookResponse, Dialogflow игнорирует поля assignmentText, executementMessages и payload." Это не касается конкретно SessionEntityTypes, но я предполагаю, что они также игнорируются .

ПРИМЕЧАНИЕ 2. Я мог бы включить «Разрешить автоматическое расширение» для сущности и вроде как обойти это, но я хотел бы избежать этого, если это возможно, потому что я верю, что фактические, определенные типы сущностей сущностей сеанса будут лучше.

1 Ответ

1 голос
/ 21 апреля 2020

Я закончил отправлять сообщения в службу поддержки DialogFlow напрямую и получил ответ, поэтому я решил поделиться им здесь:

К сожалению, на данный момент Dialogflow не поддерживает типы объектов сеансов в AoG Deep Links Призвание. В настоящее время объект Session загружается после начала разговора.

Похоже, это невозможно.

...