javascript - Dialogflow 实现以触发另一个意图
问题描述
你好那里的开发人员。我正在 Dialogflow 中设计一个代理,我想使用事件和实现从后续意图触发另一个意图。我不是开发人员,所以我一直在使用互联网寻求帮助。
我在 YouTube 上找到了这个视频,它与我正在处理的用例相似,它在 Mockable 中使用了这个代码。
{
"followupEventInput": {
"name": "eventname"
}
}
我尝试在内联编辑器中使用它来完成部分,但我遇到了错误。我可以利用你的专业知识来帮助我。我很想学习一点,所以我想让它自己工作,而不是让别人为我编码。老师,如果您能提供任何知识,我将不胜感激!:)
谢谢,克里斯特尔
解决方案
如果您有 2 个意图,例如意图 1 和意图 2,让我们举个例子。(注意:请在意图实现部分为那些意图“启用 Webhook”)
意图 1 短语:
- 你好
- 你好
- 你好吗
意图 1 响应:
- 你好,很高兴认识你。
intent-1 输出上下文:
- 你好 // 只是为了看结果
意图 2 事件
- 测试
意图 2 响应
- 这是一个测试响应。
现在使用 Node/Python 或任何您熟悉的语言创建 API。我在 Node 中创建了 API 并在 webhook 中进行了配置。
这是示例代码:
const express = require('express');
const fetch = require('node-fetch');
const app = express()
const port = process.env.PORT || 3000;
app.listen(port, () => {
console.log(`Starting server at ${port}`);
});
app.use(express.json())
app.post('/webhook/v2', async (req, res) => {
console.log("Dialogflow: Received a POST request");
if (!req.body) return res.sendStatus(400)
let responseObj = {
"followupEventInput": {
"name": "test",
},
"source": ""
}
return res.json(responseObj)
})
所以在这里我将返回{"followupEventInput": {"name": "test",}
所有 webhook 调用(因为它是为了测试目的。你可以在这里使用你自己的业务逻辑,并在此基础上添加 followupEventInput 作为响应)。所以在配置webhook后,当我尝试在Dialogflow模拟器中输入Hi/Hello(即intent-1的训练短语)时,Dialogflow会检测到intent-1并调用webhook。对于 webhook 响应,我们设置了followupEventInput,所以在内部它会调用 intent-2 并显示 intent-2 响应。
对于测试,您可以检查在模拟器中为 intent-1 设置的输出上下文。(你好)
在这里,我附上了可能对您有所帮助的结果图像。
如果您仍有任何疑问,请告诉我。
推荐阅读
- rust - 无法打开创世配置文件
- c# - Unity IOException:在 output_log.txt 的路径上共享冲突,如何读取正在使用的文件?
- python - 使模型的第一个实例在 SQLAlchemy 中具有唯一字段
- swift - SWIFTUI Firebase 检索子集合数据
- qt - 是否在 deleteLater() 之前调用了所有 Qt 插槽?
- c - 在 GDB 中使用便利变量的地址
- java - 尝试保存图像时出现 Android 运行时错误
- java - 有谁知道如何自动在手机屏幕上找到坏点?
- arrays - 检测 shell 脚本中的 ksh 数组支持
- javascript - 如何在 Jest 中跟踪失败的异步测试?