Dialogflow Agent 在 Google 模拟器中工作,但在控制台和 Web 链接中失败

2024-03-05

我正在使用 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(使用前将#替换为@)

Dialogflow Agent 在 Google 模拟器中工作,但在控制台和 Web 链接中失败 的相关文章

随机推荐

  • 如何将自定义视图动态添加到 Visual Studio for Mac C# 中的视图

    我正在完成一个项目 其中我将拥有同一组表单组件的多个正方形大小的实例 我可以在表单 UI 中手动创建 8 个实例 或者我宁愿做的是创建一个视图 或项目渲染器 然后将该视图的实例动态添加到我的主视图中 如何将创建的自定义视图动态添加到 Xam
  • 使 AdMob 在 Android 2.3 设备上运行?

    好吧 我读了很多文章 问题和答案 但仍然找不到适合我的 我正在尝试在 Android 应用程序中显示 AdMob 横幅 我正在使用 Eclipse 和最新的 AdMob SDK 4 3 1 它需要 Android 3 2 13 才能工作 问
  • 如何禁用/启用带有复选框的按钮(如果选中)[重复]

    这个问题在这里已经有答案了 请我需要一个可以与下面的 HTML 代码一起使用的脚本 以便在选中或取消选中复选框时禁用 启用按钮
  • Android - “setToolbarColor(int)”和“setSecondaryToolbarColor(int)”已弃用

    我使用此代码打开 Chrome 自定义选项卡的链接 但它正在显示 Deprecated for setToolbarColor and setSecondaryToolbarColor 我还没有找到任何可以替代的东西 注意 Android
  • 根路径不适用于 php include

    在链接开头获取根文件夹在 php include 中不起作用 例如 example example php 解决办法是什么 我假设根文件夹是指您的网络文档根目录 而不是文件系统根目录 为此 您可以 将 Web 根文件夹添加到包含路径 htt
  • 无法启动捆绑包 - 缺少要求(osgi.wiring.package)

    我是 Apache karaf 和 OSGI 的新手 我正在尝试编写并运行一个非常简单的包 但我在启动该捆绑包时收到此错误 执行命令时出错 在捆绑包上执行命令时出错 无法 解决 karaf 86 R 86 0 缺少要求 karaf 86 R
  • Rails ActiveRecord:验证单个属性

    有什么方法可以验证 ActiveRecord 中的单个属性吗 就像是 ac object valid attribute name 有时有些验证非常昂贵 例如需要执行数据库查询的验证 在这种情况下 您需要避免使用valid 因为它所做的事情
  • 更改我的 iPhone 应用程序的最低操作系统要求?

    我做了一个简单的申请 然后提交审核 之后 应用程序详细信息声称最低操作系统要求是 3 1 2 我使用该 SDK 如果我将目标的 iPhone OS 部署目标更改为较低的 iPhone OS 那么它可以 解决 我的问题吗 有没有风险 我使用一
  • 链接静态库时未捕获异常

    我开始在程序中实现 try catch 但是当我测试它时 异常从未被捕获 程序只是崩溃了 即使是最简单的 try catch 用例也会失败 即 try throw 123 catch cerr lt lt This line doesn t
  • 如果 dotCover 没有报告足够高的结果,我如何才能使 TeamCity 构建失败?

    我希望 TeamCity 运行我的 mSpec 测试并报告测试所涵盖的代码 我还希望 TeamCity 报告构建失败如果某些命名空间中的代码覆盖率未达到阈值 e g MyProduct ImportantStuff必须是100 but My
  • 打印通用字符

    谁能解释为什么通用字符文字 例如 u00b1 被编码为 UTF 8 字符字符串 为什么下面会打印加号 减号 include
  • 可变长度模板参数列表?

    我记得看到过这样的事情 template
  • 具有旧式类的 Python 描述符

    我试着用谷歌搜索一些关于它的东西 为什么非数据描述符适用于旧式类 文件说他们不应该 请注意 描述符仅针对新样式对象或类 子类化的对象或类 调用object or type http docs python org 2 reference d
  • 如何使用Camera2获取前置摄像头的id?

    如何使用新的 Camera2 库获取前置摄像头的 ID 我在文档中找不到它 我找到了解决方案 我可以通过调用获取相机特征getCameraCharacteristics cameraId on CameraManager object St
  • Twitter Bootstrap 中的全宽拆分下拉按钮

    我的网站上有一个地方正在使用一堆button元素样式为btn block example http jsfiddle net TQSk6 1 来自 Twitter Bootstrap 文档 我现在想将其中一些切换为拆分按钮 example
  • STL 和发布/调试库混乱

    我正在使用一些第三方 我正在使用它的共享库版本 因为该库很大 60MB 并且被多个应用程序使用 有没有办法在应用程序启动时找出库的发布 调试版本分别用于我的应用程序的发布 调试版本 更长的描述 公开 C 接口的库 API 方法之一返回std
  • IIS 7.0 中的模拟

    我有一个在 IIS 6 0 下正常工作的网站 它使用 Windows 凭据对用户进行身份验证 然后在与访问数据库的服务通信时 它会传递凭据 在 IIS 7 0 中 相同的配置设置不会传递凭据 并且数据库会受到 NT AUTHORITY AN
  • 捕获某个按钮点击的WndProc消息

    我的表格上有一个取消按钮 我想确定里面WndProc方法表示这个Cancel单击按钮并为其编写一些代码 这是绝对必要的 因为否则我无法取消所有其他尚未执行的控件验证事件 请帮忙 NET 2 0 WinForms 您可以通过以下方式解析左键单
  • Angular 2 TypeScript 如何在数组中查找元素

    我有一个组件和一个服务 成分 export class WebUserProfileViewComponent persons Person personId number constructor params RouteParams pr
  • Dialogflow Agent 在 Google 模拟器中工作,但在控制台和 Web 链接中失败

    我正在使用 Dialogflow V2 API 通过 Google 模拟器上的 Actions 进行测试时一切正常 请查找附件图片 但是 当尝试使用 Dialogflow 中的控制台 右列 以及 Web 集成链接时 它不起作用 代理能够从用