我正在使用 Dialogflow V2 API。
通过 Google 模拟器上的 Actions 进行测试时一切正常。请查找附件图片。
但是,当尝试使用 Dialogflow 中的控制台(右列)以及 Web 集成链接时,它不起作用。
代理能够从用户输入中检测到适当的实体,但无法调用 Webhook 中声明的意图。https://bot.dialogflow.com/acc64a26-8d1d-4459-8ce0-24c890acb6d7 https://bot.dialogflow.com/acc64a26-8d1d-4459-8ce0-24c890acb6d7
我尝试在 Dialogflow 论坛中发帖,但发帖时出错。通过 Dialogflow 筹集支持的类似情况。
谷歌模拟器代理的图片(作品):
公共链接代理的图像(失败):
在 webhook js 文件和控制台中声明的响应图像:
请在下面找到我的 index.js webhook 的一部分。我正在使用 Dialogflow 的内联编辑器。
'use strict';
const functions = require('firebase-functions')
const { dialogflow } = require('actions-on-google')
const app = dialogflow()
app.intent('Default Welcome Intent', conv => {
conv.ask('Welcome to Zera! We provide medicine and drug advice. What seems to be bothering you today?')
})
app.intent('QSpecific Problem', (conv, {SpecificProb}) => {
conv.contexts.set('specificprob', 10, {SpecificProb: SpecificProb})
conv.ask(`Do you have these problems before?`)
})
app.intent('QRecurring', (conv, {Recurring}) => {
conv.contexts.set('recurring', 10, {Recurring: Recurring})
if (Recurring === "Recur") {
conv.ask(`Have you taken any medication for this?`);
} else {
const specProb = conv.contexts.get('specificprob')
conv.ask(`How long have you been having this ${specProb.parameters.SpecificProb}?`)
}
})
exports.dialogflowFirebaseFulfillment = functions.https.onRequest(app)
实际上,我写信给 Dialogflow 的支持团队寻求帮助。我和瑞尔交谈过,他非常乐于助人。请看下面他的回复:
您的代理在 Google Simulator 上的操作中按预期工作,因为
您使用的库专门用于 Google 上的 Actions。这
您一直在使用的库是 Actions on Google Node.js 客户端库。
如果您还想使用网络演示集成来进行回复,
您可以使用具有集成功能的 Dialogflow 履行库
使用 AoG 客户端库的 Google Assistant。
您可以参考此示例代码来实现。 '使用严格';
const functions = require('firebase-functions');
const { WebhookClient } = require('dialogflow-fulfillment');
process.env.DEBUG = 'dialogflow:debug';
exports.dialogflowFirebaseFulfillment = functions.https.onRequest((request, response) => {
const agent = new WebhookClient({ request, response });
function welcome(agent) {
let conv = agent.conv();
conv.ask('Welcome to my agent!');
agent.add(conv);
}
let intentMap = new Map();
intentMap.set('Default Welcome Intent', welcome);
agent.handleRequest(intentMap);
});
Dialogflow 的支持团队非常乐于助人,并且回复非常快。我建议您写下来,因为每个人的问题都不同且非常具体!您可以通过以下方式联系他们:[电子邮件受保护] http://support@dialogflow.com
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)