有没有办法动态地激活一个dialogflow意图?

时间:2019-08-07 09:48:08

标签: dialogflow

我想知道是否有一种方法可以激活一种意图,一种 “满足此条件,而不是意图XX”。 我试图解释我想做什么: 当用户说一个特定的单词时,该意图会在数据库中查找根据优先级算法要执行的任务。例如,如果选择任务1作为最高优先级,那么我应该能够激活“在运行时”任务1的意图,而无需要求用户说“请说001激活任务1”。 预先感谢

1 个答案:

答案 0 :(得分:1)

我已经通过将我的响应移动到不同的功能,在Webhook中实现了您对“如果满足条件,达到X意向”的要求。在以下情况下,我需要基于if条件的不同响应和不同输出上下文。这样,我可以根据用户输入动态触发不同的意图。

const game = SessionsService.getGame(userId);

if(game) {
  logger.info("Found a gamein progress..")
  const response = gameInProgress();
  conv.contexts.set("_defaultwelcomeintent-followup", 1);

  return conv.ask(response);
} else {
  logger.info("No game in progress found..")
  const response = welcome();
  conv.contexts.set("_introduction", 1);
  conv.contexts.set("_setup", 1);

  return conv.ask(response);
};

响应函数的示例:

function gameInProgress() {

  const text = messages.gameInProgressText();
  const ssml = messages.gameInProgressSsml();

  const response = new BasicResponse(text, ssml);

  return response;
};

您可以代替您的boardService来实现优先级算法。