вызывать намерения по имени события в версии 2 с помощью followupEventInput

Я пытаюсь перенести приложение V1 на новый API V2, и у меня возникают проблемы с функцией followupEvent.

Это мой вариант использования:

  • Пользователь хочет включить свет в определенной комнате -> у меня есть намерение «light_on» с параметром «zone».
  • Если имя не соответствует известной комнате, ответ веб-перехватчика содержит followupEvent для вызова намерения «неизвестная_зона».
  • Это намерение говорит пользователю: «Извините, я не знаю именованную зону '#unknown_zone.zone'. Можете ли вы повторить название зоны?». Затем у пользователя есть 3 попытки дать действительное имя.

Для этого в V1 мой ответ веб-перехватчика был таким:

{
      "contextOut":[{
          "name":"zone",
          "lifespan":3
       }],
      "followupEvent":{
          "name":"unknown_zone",
          "data":{
              "context_lifespan":"3",
              "current_action":"light_on",
              "zone":"garage"
            }
        }
    }

В V2 я попытался отправить следующий ответ:

{
  "outputContexts": [{
    "name": "zone",
    "lifespanCount": 3
  }],
  "followupEventInput": {
    "name": "unknown_zone",
    "parameters": {
      "zone": "garage",
      "current_action": "light_on",
      "context_lifespan": "3"
    },
    "languageCode":"en-US"
  }
}

Намерение "неизвестная_зона" никогда не вызывается. Я получаю только ответ по умолчанию на мое намерение "light_on".

Я искал в документации: WebhookResponse, EventInput, но мне ничего не помогло. Я также нашел эту тему v2-followupevent-from -webhook-upgrade-from-v1, но безуспешно.

Кто-нибудь может мне помочь ?


person Florent Guillaume    schedule 24.04.2018    source источник


Ответы (2)


Я только что понял, почему мой ответ не сработал. Я не следовал новому формату V2 для вывода имя контекста.

Формат: проекты/{ID проекта}/agent/sessions/{ID сеанса}/contexts/{my_context_name}

Намерение никогда не совпадало, потому что контекст не был установлен должным образом.

person Florent Guillaume    schedule 25.04.2018
comment
Ссылка, которую вы предоставили, сейчас не работает. Какой правильный формат? - person Aitor Aznar Álvarez; 17.02.2019

Свойство name в объекте followupEventInput относится к событию, определенному в намерении, а не к самому намерению. Вы должны добавить событие «unknown_zone» в раздел событий вашего намерения, как показано на этом снимке экрана.

person Jesus Duran    schedule 24.04.2018
comment
Да, это именно то, что я сделал. Тот же ответ в V1 работает отлично. - person Florent Guillaume; 25.04.2018