6

我需要添加一个确认实体,以便在 dialogflow (api.ai) 中某个操作的参数中获得“是”或“取消”。假设用户正在购买咖啡,我会询问有关咖啡和数量的详细信息,最后我需要确认,我应该向哪个实体申请?任何引用相同内容的教程也会有所帮助。

4

3 回答 3

7

DialogFlow 有一个称为后续意图的概念,您可以在这样的情况下使用它:

添加后续意图

如果用户想要继续,您将创建一个“是”跟进来捕获,一个“否”来取消,以及一个“后备”来向用户解释正在发生的事情以及什么是可接受的答案。

如果您正在使用 Actions on Google,您还可以使用askForConfirmation,这完全是在您的 webhook 代码中完成的。

您可以根据代码的结构选择最合适的方式。

于 2017-10-24T22:18:21.647 回答
2

另一种方法是创建一个确认实体并在您的意图中提示它。

创建实体:使用适当的同义词创建 2 行,一行表示是,另一行表示否。

创建确认实体

将它作为参数添加到您刚刚创建的实体中,并添加适当的提示。

添加提示

添加参数

于 2018-06-19T08:40:43.797 回答
1

谁跳到这里试图通过 Google 行动获得此确认行为的答案。

您可以查看Actions SDK for Node.js的 Confirmation helper 的文档。

actions_intent_CONFIRMATION解决方案是使用DialogFlow 中的事件设置意图,以检索用户响应。我的建议是检查您如何配置您的意图并使用此方法,否则请确保创建具有所需上下文生命周期的后续意图。

文档中的示例:

app.intent('Default Welcome Intent', conv => {
  conv.ask(new Confirmation('Are you sure you want to do that?'))
})

// Create a Dialogflow intent with the `actions_intent_CONFIRMATION` event
app.intent('Get Confirmation', (conv, input, confirmation) => {
  if (confirmation) {
    conv.close(`Great! I'm glad you want to do it!`)
  } else {
    conv.close(`That's okay. Let's not do it now.`)
  }
})

另请参阅此问题

于 2019-03-22T14:00:27.900 回答