Последующее намерение не запускать метод-обработчик в intentMap.set - Dialogflow - PullRequest
0 голосов
/ 20 февраля 2020

У меня есть намерение с несколькими вложенными последующими намерениями, такими как:

enter image description here

А затем в коде функции выполнения у меня есть это где число 70 стреляет giveChoice, а остальные не стреляют. Почему? Как мне сделать это с намерениями продолжения?

let intentMap = new Map();
  intentMap.set('Default Welcome Intent', welcome);
  intentMap.set('Default Fallback Intent', fallback);
  //Intent - 70
  intentMap.set('0068 - Intents - 70', giveChoice);
  intentMap.set('0068 - Intents - 70 - no', giveFirstNextQuestion);
  intentMap.set('0068 - Intents - 70 - no - no', giveSecondNextQuestion);
  intentMap.set('0068 - Intents - 70 - no - no - no', giveThirdNextQuestion);
  // intentMap.set('your intent name here', googleAssistantHandler);
  agent.handleRequest(intentMap);

1 Ответ

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

Мне удалось воссоздать вашу проблему и решить ее. Я суммирую следующие пункты:

  1. Включить вызов webhook для этого намерения (в разделе исполнения) для всех намерений и последующих намерений, которые вы хотите использовать.

  2. Функции, которые вы создаете для использования, "giveChoice", "giveFirstNextQuestion", ... должны следовать структуре:

  function givechoice(agent){
    agent.add(`Would you like this response to be recorded?`);
    agent.setContext({
      name: 'first-call',
      lifespan: 2,
    });
  }

  function afirmative(agent){
    agent.getContext('first-call');
    agent.add(`Thank you for accepting`);
  }

Обратите внимание, что в приведенном выше случае я делаю только одно последующее намерение. Например, если вы делаете третий, то вторая функция должна иметь getContext и setContext для правильной работы.

Последняя часть точно такая, как вы. В моем случае:

  let intentMap = new Map();
  intentMap.set('0068 - Intents - 70',givechoice);
  intentMap.set('0068 - Intents - 70 - yes',afirmative);
  agent.handleRequest(intentMap);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...