如何使用Dialogflow CX API将参数传递给webhook?似乎 detectorIntent() 设置会话 queryParams 不起作用

2024-03-09

根据谷歌dialogflow cx文档:https://cloud.google.com/dialogflow/cx/docs/concept/parameter https://cloud.google.com/dialogflow/cx/docs/concept/parameter https://cloud.google.com/dialogflow/cx/docs/reference/rest/v3/QueryParameters https://cloud.google.com/dialogflow/cx/docs/reference/rest/v3/QueryParameters

单击以显示参考 https://i.stack.imgur.com/NOhQJ.png我知道我们可以使用 api 来设置会话参数。所以我想通过API方式将参数传递给webhook。

步骤1:前端,使用Detectintent() API,填写queryParams项。
步骤2:GoogleDialogflowCX服务器将设置参数作为会话参数。
第三步:Webhook接收google端函数调用。我们可以从http请求中找到所有的session参数。

就我而言,我只能接收 DialogFlow Agent 中设置的变量,但没有收到通过 detectorintent() API 设置的任何参数。我想我一定做错了什么,谁能告诉我该怎么办?谢谢。

我的代码如下(Nodejs代码):

  const sessionPath = client.projectLocationAgentSessionPath(
    projectId,
    location,
    agentId,
    sessionId
  );
 
  var mapParameters = new Map([['Michael', 95], ['Bob', 75], ['Tracy', 85]]);
 
 const request = {
    session: sessionPath,
    
    "queryInput": {
      
      "text": {
        "text": query,
      },
      languageCode,
    },

    'queryParams': {
      'timeZone': 'America/Los_Angeles',
      'parameters': {
        "fields":mapParameters
      }
    },

 };
const [response] = await client.detectIntent(request);

问题已经解决了。它需要被序列化/转换。

因此,对于文档中提到的参数类型,需要将其作为“struct”发送到DialogFlow。

根据您的协议或客户端库语言,这是由 (MapKey, MapValue) 对的集合组成的映射、关联数组、符号表、字典或 JSON 对象:

正确的结构如下:

{
  session: 'projects/xxxxx...........',
  queryInput: {
    text: { text: 'hello world!' },
    languageCode: 'en'
  },
  queryParams: {
    timeZone: 'America/Los_Angeles',
    parameters: {
      fields: {
        ID: { kind: 'numberValue', numberValue: 5 },
        Email: { kind: 'stringValue', stringValue: '[email protected] /cdn-cgi/l/email-protection' },
        Phone: { kind: 'stringValue', stringValue: '7789511xxx' },
        Domain: { kind: 'stringValue', stringValue: 'xxxxxx.com' }
      }
    }
  }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用Dialogflow CX API将参数传递给webhook?似乎 detectorIntent() 设置会话 queryParams 不起作用 的相关文章

随机推荐

  • Excel 下拉至整列

    如何将下拉菜单 数据验证 复制到 Excel 中的整个列 仅包含其他内容的行 并且 在这种情况下 如何为标题保留行 不要单击单元格 而是单击标题 A B C 等 并转到 数据工具 gt 数据验证
  • 通过 RDP 远程访问 SF 节点

    如何远程连接到 SF 集群中的节点 由于这些只是虚拟机 我感觉我应该能够通过 RDP 访问它们 即使这是我通常想要避免的事情 我将如何进行远程处理 在 Vaclav 的答案中添加一些特定于 Service Fabric 的详细信息 标准 S
  • 退回邮件解析

    我目前在捕获 解析和排序退回的电子邮件方面遇到了麻烦 我已经很好地设置了基础知识 并且它满足了我的要求 这很好 问题是退回的电子邮件中返回的消息似乎没有标准 例如 某些服务器返回 RFC 1893 指定的错误代码 我十有八九可以通过简单的正
  • 如何继承系统的抗锯齿设置,以便像 swing 那样将文本绘制到屏幕外图像?

    当我在 Java 6 下运行 swing GUI 应用程序时 它们会自动使用我为所有字体配置的子像素抗锯齿设置 结果比标准 AA 选项有了很大改善 但是当我绘制图像时 我找不到初始化图形上下文以使用系统的 AA 配置的方法 尝试使用 Jav
  • 如何在 .NET 7 中为 Number 提供通用变量?

    我们可以使用新的INumber
  • 来自 FileObserver 的 Toast

    我有个问题 我正在使用一个FileObserver 它将新文件从监视的目录移动到另一个以前指定的目录 在我看来 只要观察者观察目录 即使应用程序仅在后台运行 也应该显示一条 toast 消息 指出 文件 xy 已被移动 但我没有让它发挥作用
  • “Java 修改的 UTF-8 编码”是什么意思?

    Java 修改的 UTF 8 编码 是什么意思 它与普通的 UTF 8 编码有何不同 javadoc 中有详细描述DataInput http download oracle com javase 6 docs api java io Da
  • DeleteFile() 或 CopyFile() 会抛出异常吗?

    我用DeleteFile and CopyFile方法 这些函数是否抛出异常或只是设置errno and lastError 我需要用以下内容包围这段代码吗try and catch 如果您指的是 Win32 API 函数 答案是否定的 W
  • chrono stable_clock 没有给出正确的结果?

    我的应用程序服务器代码中有一行代码 它使用以下命令获取时间戳值steady clock如下所示 uint64 t now duration cast
  • 如何创建具有特定 inode 编号的文件?

    如何在 ext3 文件系统中创建文件 具有特定的索引节点号 例如 我想创建一个 inode number 12253 的文件 我认为从用户空间创建文件时没有任何编程方式来请求特定的索引节点号 除了可见于stat 结果 inode 编号在用户
  • 如何在不使用递归的情况下遍历二叉搜索树?

    我可以使用递归轻松遍历二叉搜索树 但我不知道如何在没有递归的情况下遍历二叉搜索树 所以请任何人解释一下 是的 你可以用堆栈来做到这一点 你必须在这里采用 stack 算法 以二叉搜索树的迭代方式 非递归方式 方法 进行预重排序 中序和后序遍
  • 将新视图推送到 UINavigationViewController 时强制纵向方向

    我有一个 TabBar 基础应用程序 它仅支持一种特殊视图 UINaviagtionController 的根视图 的横向方向 现在我想强制此导航控制器的所有其他视图为纵向 我尝试过使用 UIDevice currentDevice set
  • 如何让div全屏显示?

    我在用Flot http people iola dk olau flot examples 绘制我的一些数据的图表 我想在单击按钮时使该图表显示全屏 占据显示器上的整个空间 会很棒 目前 我的div如下 div style width 1
  • 如何使用 PHPSpreadsheet 在 Excel 上添加新行

    您好 我是这个名为 PHPSpreadsheet 的库的新手 我尝试阅读它的文档 但我无法理解它 我想在existingExcel 文件和 这是我到目前为止所拥有的
  • 在 SQL 查询中连接 4 个表

    我的数据库中有 4 个关系表 想要加入它们以获得总价值 例如 我有朋友 家人 关注者和熟人 想要加入这些以获得 全部 值 表格格式如下 Friends id follower following 1 2 3 2 4 5 Family id
  • Windows 7 任务计划程序和 Python - 壁纸不变

    我尝试每五分钟运行一次 Python 脚本来更新 Windows 7 桌面背景 从命令行启动时它可以完美运行 但不能作为计划任务运行 相关代码 import ctypes According to MSDN other websites S
  • Flutter可以以kiosk模式制作应用程序吗? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 Flutter可以以kiosk模式制作应用程序吗 如果是的话我该怎么做 有任何文档或教程可以帮助我吗
  • 寻找支持 ANSI 转义码的 UserControl

    我正在寻找处理具有 ANSI 转义码的传入 telnet 文本 对于赏金 我正在寻找一个完整的实现 我可以将文本附加到缓冲区的末尾 控件应该是可滚动的 但在用户滚动到视图之外时仍然能够处理附加文本 光标定位等 例如 e 0 32mHello
  • Android 中日期格式的转换方法

    我正在将日期放入字符串中YYYY MM DD HH MM SS格式 我想将其更改为mm dd yyyy HH mm ss它还会向上午和下午显示我该怎么做 请帮助我 谢谢 要获取 AM PM 和 12 小时日期格式 请使用hh mm ss a
  • 如何使用Dialogflow CX API将参数传递给webhook?似乎 detectorIntent() 设置会话 queryParams 不起作用

    根据谷歌dialogflow cx文档 https cloud google com dialogflow cx docs concept parameter https cloud google com dialogflow cx doc