MalformedResponse: не удалось проанализировать ответ Dialogflow в AppResponse: индекс: 0 - PullRequest
0 голосов
/ 10 февраля 2020

Я добавил несколько элементов в ответ списка, чтобы пользователь мог выбрать элемент из списка

сценарий

bot: hello what you want to update (list will open with options as{title, objective, place})
user: title {selects either by clicking or typing}
bot: Enter your title (webhook response)
user: xyz
bot: record updated
but the issue is when user clicks on any item it gives me an error

"Извините, тестовые приложения не отвечают прямо сейчас. Пожалуйста, попробуйте еще раз в ближайшее время."

и причина этой ошибки

MalformedResponse Не удалось проанализировать Ответ диалога в AppResponse: Индекс: 0.

это мой код

app.intent(CREATE_INTENT, (conv) => {
conv.ask("Here's the list");
  conv.ask(new List({
    title: "Select an option to update",
    items: {     
      'SELECTION_KEY_TITLE': {
        synonyms: [
          'Title',
          'title',
        ],
        title: 'title',
        description: 'Click here to update title',
        image: new Image({
          url: 'https://storage.googleapis.com/actionsresources/logo_assistant_2x_64dp.png',          alt: 'Image alternate text',
        }),
      },

      'SELECTION_KEY_PLACE': {
        synonyms: [
          'place',
          'Place',
      ],
        title: 'place',
        description: 'This is for updating your city name',
        image: new Image({
          url: 'https://storage.googleapis.com/actionsresources/logo_assistant_2x_64dp.png',          alt: 'Google Home',
        }),
      },

      'SELECTION_KEY_OBJECTIVE': {
        synonyms: [
          'objective',
          'Objective',
        ],
        title: 'objective',
        description: 'select to update objective',
        image: new Image({
          url: 'https://storage.googleapis.com/actionsresources/logo_assistant_2x_64dp.png',          alt: 'Google Pixel',
        }),
      },
    },
  }));

app.intent(TITLE_INTENT, (conv, option) => {  
       if (option === SELECTION_KEY_TITLE) {
     conv.ask("Please enter your resume title");
     } else if (option === SELECTION_KEY_PLACE) {
     conv.ask("What's your current city?");
     } else if (option === SELECTION_KEY_OBJECTIVE) {
     conv.ask("Please enter your objective");
     } else {
         conv.ask('Sorry! please select one option to update.');
         conv.ask(new Suggestions(['Title', 'Place', 'Objective']));
     }
});

Ответы [ 2 ]

1 голос
/ 11 февраля 2020

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

Вы не показываете все Intents, но кажется вероятным, что вызывается Fallback Intent (как вы упоминаете в комментариях ) потому что у вас нет намерения, которое обрабатывает action_intent_OPTION событие.

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

0 голосов
/ 21 февраля 2020

Я понял эту проблему, мы должны удалить все обучающие фразы из TITLE_INTENT и убедиться, что в разделе событий нужно добавить actions_intent_OPTION

...