Диалоговый поток: возможно ли обойти повторные реплики по умолчанию, если это необходимо? - PullRequest
1 голос
/ 22 марта 2020

Я разрабатываю приложение с диалоговым потоком и действиями на Google, используя webhook и node.js для программирования намерений.

Моя проблема в том, что диалоговый поток выдает повторные реплики по умолчанию для намерений, как показано в приведенном ниже коде.

app.intent('Reprompt', (conv) => {
  const repromptCount = parseInt(conv.arguments.get('REPROMPT_COUNT'));
  if (repromptCount === 0) {
  conv.ask(`What was that?`);
  } else if (repromptCount === 1) {
  conv.ask(`Sorry I didn't catch that. Could you repeat yourself?`);
  } else if (conv.arguments.get('IS_FINAL_REPROMPT')) {
  conv.close(`Okay let's try this again later.`);
  }
});

Контекст заключается в том, что я программирую диалогового агента, который задает пользователям такие вопросы, как «Что заставил тебя улыбнуться сегодня? " и я ожидаю, что пользователи обсудят этот вопрос со своим партнером. В лучшем случае сценарий задает вопрос, а затем только прослушивает «Следующий вопрос» или «Завершить разговор», но не прерывает пользователей.

На данный момент повторная репликация по умолчанию прерывает пользователей, говоря "Что это было?" через некоторое время.

Можно ли поиграть с повторной репликой, чтобы она перестала это делать?

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

1 Ответ

0 голосов
/ 23 марта 2020

У меня была похожая ситуация, когда я задавал пользователям несколько вопросов (опрос), и, каков бы ни был ответ, я go отвечаю на следующий вопрос. Насколько я понимаю, вы ищете что-то подобное. Предположим, вы хотите спросить пользователя: « Как вас зовут? », а после того, как он ответит, вы хотите спросить его: « Откуда вы? ». Вот как вы это делаете (возможно, не оптимальный путь но работает) 1. Создайте намерение «имя» и добавьте обязательный параметр с приглашением «Как вас зовут?» 2. Добавьте пользовательское событие 'userName' 3. Включите вызов webhook для выполнения 4. (Необязательно) Вы можете добавить обучающие фразы, чтобы вызвать это намерение Выполните те же шаги, что и выше, чтобы создать другое намерение для страны 1. Назовите намерение «страна» и добавьте обязательный параметр с приглашением «Откуда вы?» 2. Добавьте пользовательское событие 'userCountry' 3. то же, что и выше

Теперь мы напишем функцию выполнения для намерения «имя», которая вызовет вопрос о стране

function Name(agent){
    agent.add('This will invoke as respond to name question');
    agent.setFollowupEvent('userCountry');
}

Итак, когда пользователь вызывает намерение name , он должен сказать свое имя, и ваш бот не отвечает, а вместо этого вызывает country Намерение, где ответ «Откуда ты?» также требуется. Итак, итоговый разговор будет выглядеть следующим образом:

Bot: What is your name?
User: Blah Blah
Bot: Where you from?
User: Blah Blah
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...