如何使用带有Node.js的Webhook Tripadvisor API跟踪Dialogflow中的几个意图

如何解决如何使用带有Node.js的Webhook Tripadvisor API跟踪Dialogflow中的几个意图

我正在Dialogflow中创建一个代理商,用于使用Tripadvisor API预订酒店。

示例:

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

用户:预订酒店房间

代理商:在哪个城市?

用户:巴塞罗那

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

用户

代理:告诉我您的全名

用户:Johnny Appleseed

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

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

enter image description here

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

我想要实现的是,通过询问用户的姓名,整个预订都存储在MYSQL数据库中(名称,预订所在的城市,人数,签到,签出...),以便,一旦用户通过与代理再次开始对话来结束与代理的交互,而不是想要进行保留,而是希望查看其保留,则代理会从数据库中读取其保留,只是询问他的名字。因此,要做到这一点,我需要创建另一个意图(跟随意图“是”,在上面的照片中它对应于“ reservaIntent-是”),以获得用户的全名,但是我该如何在我的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数据库?

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

解决方法

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

让我从第一个特工的响应开始,看来您正在尝试按照相同的意图采取行动:

代理商您好,我可以帮助您预订酒店房间或查看预订信息

理想地,从这里开始,应该进行两个意图不同的对话。

一种用于您当前正在阅读的书,另一种用于获取现有的预订详细信息:

因此,请创建双亲意图:

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

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

用户我要检查我的预订

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

代理商:告诉我您的全名

用户:约翰尼·苹果种子

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

现在在Node JS中也非常简单。对话设计有些不同。您需要像对话一样设计每个对话流。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


依赖报错 idea导入项目后依赖报错,解决方案:https://blog.csdn.net/weixin_42420249/article/details/81191861 依赖版本报错:更换其他版本 无法下载依赖可参考:https://blog.csdn.net/weixin_42628809/a
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下 2021-12-03 13:33:33.927 ERROR 7228 [ main] o.s.b.d.LoggingFailureAnalysisReporter : *************************** APPL
错误1:gradle项目控制台输出为乱码 # 解决方案:https://blog.csdn.net/weixin_43501566/article/details/112482302 # 在gradle-wrapper.properties 添加以下内容 org.gradle.jvmargs=-Df
错误还原:在查询的过程中,传入的workType为0时,该条件不起作用 <select id="xxx"> SELECT di.id, di.name, di.work_type, di.updated... <where> <if test=&qu
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct redisServer’没有名为‘server_cpulist’的成员 redisSetCpuAffinity(server.server_cpulist); ^ server.c: 在函数‘hasActiveC
解决方案1 1、改项目中.idea/workspace.xml配置文件,增加dynamic.classpath参数 2、搜索PropertiesComponent,添加如下 <property name="dynamic.classpath" value="tru
删除根组件app.vue中的默认代码后报错:Module Error (from ./node_modules/eslint-loader/index.js): 解决方案:关闭ESlint代码检测,在项目根目录创建vue.config.js,在文件中添加 module.exports = { lin
查看spark默认的python版本 [root@master day27]# pyspark /home/software/spark-2.3.4-bin-hadoop2.7/conf/spark-env.sh: line 2: /usr/local/hadoop/bin/hadoop: No s
使用本地python环境可以成功执行 import pandas as pd import matplotlib.pyplot as plt # 设置字体 plt.rcParams['font.sans-serif'] = ['SimHei'] # 能正确显示负号 p
错误1:Request method ‘DELETE‘ not supported 错误还原:controller层有一个接口,访问该接口时报错:Request method ‘DELETE‘ not supported 错误原因:没有接收到前端传入的参数,修改为如下 参考 错误2:cannot r
错误1:启动docker镜像时报错:Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen 解决方法:重启docker -> systemctl r
错误1:private field ‘xxx‘ is never assigned 按Altʾnter快捷键,选择第2项 参考:https://blog.csdn.net/shi_hong_fei_hei/article/details/88814070 错误2:启动时报错,不能找到主启动类 #
报错如下,通过源不能下载,最后警告pip需升级版本 Requirement already satisfied: pip in c:\users\ychen\appdata\local\programs\python\python310\lib\site-packages (22.0.4) Coll
错误1:maven打包报错 错误还原:使用maven打包项目时报错如下 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources)
错误1:服务调用时报错 服务消费者模块assess通过openFeign调用服务提供者模块hires 如下为服务提供者模块hires的控制层接口 @RestController @RequestMapping("/hires") public class FeignControl
错误1:运行项目后报如下错误 解决方案 报错2:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project sb 解决方案:在pom.
参考 错误原因 过滤器或拦截器在生效时,redisTemplate还没有注入 解决方案:在注入容器时就生效 @Component //项目运行时就注入Spring容器 public class RedisBean { @Resource private RedisTemplate<String
使用vite构建项目报错 C:\Users\ychen\work>npm init @vitejs/app @vitejs/create-app is deprecated, use npm init vite instead C:\Users\ychen\AppData\Local\npm-