You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从Dialogflow意图提取参数并传递至Webhook?含具体场景需求

如何从Dialogflow意图提取参数并传递到Webhook?

一、通用技术问题解答:从意图提取参数并传递至Webhook

要实现这个需求,核心分为两个关键环节,一步步来就行:

  • 第一步:在Dialogflow控制台配置参数与实体
    先在目标意图里定义需要提取的参数(比如你场景里的PLACE_NAME),给它关联对应的实体——可以用系统自带的@sys.location实体(专门识别地点,准确率更高),也可以自定义实体。同时要确保训练短语里的变量部分(比如PLACE_NAME)已经被正确标记为这个参数。
  • 第二步:在Webhook中读取参数
    Dialogflow触发意图时,会把提取到的参数打包进请求体里传给Webhook。你只需要在Webhook的处理函数里,根据所用的集成方式(比如Actions on Google客户端、原生Webhook请求)从对应的位置取出参数即可。

二、针对intent.direction场景的具体实现

针对你提到的intent.direction意图,结合你给出的代码片段,我整理了具体的实现步骤:

1. 先确认Dialogflow侧的配置

打开intent.direction意图的参数标签页:

  • 确认已经添加了PLACE_NAME参数,并且关联了合适的实体(推荐用@sys.location系统实体);
  • 根据需求设置参数是否为必填,如果必填的话,还可以配置追问话术,当用户没说地点时自动询问;
  • 检查训练短语里的PLACE_NAME对应部分,已经被标记为该参数(比如选中短语里的地点词,关联到PLACE_NAME参数)。

2. 修改Webhook的makeDirection函数获取参数

从你代码里的app.ask()能看出,你用的是Actions on Google客户端,直接用app.getArgument()就能拿到参数,修改后的代码如下:

function makeDirection(app) {
  // 提取PLACE_NAME参数
  const placeName = app.getArgument('PLACE_NAME');
  
  if (!hasScreen) {
    if (!placeName) {
      // 如果没获取到地点,主动询问用户补充
      app.ask('请问你要导航到哪个地点呢?');
    } else {
      // 这里可以把placeName传给后续业务逻辑,比如调用导航API
      app.ask(`好的,我这就为你规划前往${placeName}的路线。`);
    }
  } else {
    // 有屏幕设备的处理逻辑,比如展示路线地图
    app.ask(`正在加载前往${placeName}的路线,请稍等...`);
  }
}

要是你用的是原生Dialogflow Webhook请求(不依赖Actions on Google客户端),就从请求体的queryResult.parameters里取参数,示例如下:

// 处理Webhook请求的核心函数
function handleWebhook(req, res) {
  const intentName = req.body.queryResult.intent.displayName;
  if (intentName === 'intent.direction') {
    const placeName = req.body.queryResult.parameters.PLACE_NAME;
    // 后续业务逻辑:比如调用导航服务、返回结果
    res.json({
      fulfillmentText: `正在为你规划前往${placeName}的最优路线`
    });
  }
}

注意事项

  • 代码里的参数名称要和Dialogflow控制台里的完全一致(大小写敏感),比如控制台叫PLACE_NAME,代码里就不能写成placeName;
  • 如果参数是可选的,一定要加判断逻辑,避免因参数缺失导致代码报错。

内容的提问来源于stack exchange,提问作者akash verma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 08:46:10