【问题标题】:How to followup several intents in Dialogflow using Webhook Tripadvisor API with Node.js如何使用带有 Node.js 的 Webhook Tripadvisor API 在 Dialogflow 中跟进多个意图
【发布时间】:2020-12-02 02:32:12
【问题描述】:

我正在 Dialogflow 中使用 Tripadvisor API 创建酒店预订代理。

例子:

代理:您好,我可以帮助您预订酒店房间或查看您的预订

用户:预订酒店房间

代理:在哪个城市?

用户:巴塞罗那

代理:我们推荐酒店“Barcelona Hoteles”。要我预订吗?

用户

代理:告诉我你的全名

用户:Johnny Appleseed

代理:好的,Johnny Appleseed。 我在“巴塞罗那酒店”酒店预订

为此,我创建了两个后续意图,具体取决于用户是否想在代理推荐的酒店预订:

我正在使用 ngrok 向 Internet 公开本地开发服务器。

我想要实现的是,通过询问用户他们的姓名,整个预订都存储在 MYSQL 数据库中(姓名、预订的城市、人数、登记、结帐......) ,一旦用户关闭与代理的交互,通过再次开始与他的对话,而不是想要进行预订,用户想要查看他的预订,代理从数据库中读取他的预订,只需询问他的姓名。所以要做到这一点,我需要创建另一个意图(跟进意图“yes”,在上面的照片中它对应于“reservaIntent - yes”)以获得用户的全名,但是我该怎么做在我的 Node.js 项目中进行此开发?

这是我的代码的最新开发。在这里,我将答案发送给 Dialogflow,说“x”的推荐酒店是“x”:

request(options, function (error, response, body) {
  var json2 = JSON.parse(body);
  respuestaWebhook.fulfillmentText = 'For the city ' + city+ ' we recommend the hotel ' + json2.data[0].name + '. Do you want me to book?';
  res.json(respuestaWebhook);

// where "json2.data[0].name" is the name of the hotel received from de Tripadvisor API

所以现在,如果用户回答“是”,当代理在“后续意图 - 是”中询问他的姓名时,我如何在我的 Node.js 中收集该变量,以便以后将其存储在我的MYSQL 数据库?

我希望它很清楚。不要犹豫,问我是否有不清楚的地方:)

【问题讨论】:

  • Abhinav 的提议对我来说很有意义。首先,需要根据用户的真正需求做出决定。要管理用户名,您可以使用Parameters & entities 您能否确认这是否解决了您的问题?如果没有,请分享可能是什么问题的详细信息。
  • 好的,我想我明白了。我的代理在 Dialogflow 中的结构应该如下,对吗?snipboard.io/Df3k0Z.jpg 在默认欢迎意图中我问用户“你想做什么?”那时用户可以选择是进行预订还是查看现有的,对吧?
  • 是的,我同意图片的顺序,它符合 Abhinav 的推荐。您现在可以按照正确的意图收集正确的变量。所以,如果这回答了您的问题,请告诉我们。

标签: mysql node.js google-cloud-platform dialogflow-es webhooks


【解决方案1】:

如果我在这里正确理解了您的情况,那么您需要在此处更改一些方法以使其变得容易。

让我从第一个代理响应开始,您似乎正试图以相同的意图处理操作:

代理您好,我可以帮您预订酒店房间或查看您的预订情况

理想情况下,应该进行两次不同意图的不同对话。

一个是你目前正在做的书,另一个是获取现有的预订详细信息:

所以创建双亲意图:

  1. 创建预订:您已经处理并成功预订。
  2. 获取预订详细信息:它有一个后续意图 askName 以获取名称并显示预订详细信息。所以,这就是对话中的样子

代理: 您好,我可以帮您预订酒店房间或查看您的预订情况

用户: 我想查看我的预订

//This above response will be decision point to invoke either of intent (**create a booking or get reservation**)

代理:告诉我你的全名

用户: Johnny Appleseed

代理: 好的,Johnny Appleseed。您已于 8 月 31 日在巴塞罗那酒店预订。

现在在 Node JS 中也很简单。对话设计有点不同。您需要设计每个对话流程,如对话。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-13
    • 1970-01-01
    • 2019-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多