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

如何在Dialog Flow中访问字母数字值并配置自定义格式验证?

没问题,这几个需求Dialog Flow都能轻松搞定,我给你分点详细说明:

1. 配置支持ECC86623、L1005这类格式的字母数字参数

最适配的方案是用自定义正则表达式实体,因为这类值都遵循「字母+数字」的固定模式:

  • 打开Dialog Flow控制台,进入你的代理,创建新实体(路径:Entities > Create Entity)
  • 实体类型选择「Regular expression」,输入匹配规则:^[A-Za-z]+[0-9]+$(这个正则能匹配任意字母开头、后续跟数字的字符串,完美覆盖ECC86623、L1005这类格式)
  • 保存实体后,到目标Intent里添加参数(比如命名为roomNumber),参数类型选择你刚创建的这个正则实体
  • 测试一下:输入“location is ECC86623”或者“我在L1005”,Dialog Flow就能自动精准提取出对应的参数值
2. 自定义航班号格式并配置验证

航班号一般是「2-3位航空公司字母代码 + 3-4位数字」(比如CA1234、MU567),可以根据你用的Dialog Flow版本选择不同方式:

  • Dialog Flow CX 方案:正则实体+内置参数验证
    • 先创建专属的航班号正则实体,正则表达式设为^[A-Za-z]{2,3}[0-9]{3,4}$
    • 在Intent的参数设置中,选择这个实体作为参数类型,然后找到「Validation」选项,选择「Regular expression」,输入相同的正则规则,同时设置验证失败时的提示文本(比如“请输入正确的航班号格式,示例:CA1234”)
  • Dialog Flow ES 方案:正则实体+Webhook验证
    • 同样先创建正则实体提取航班号参数
    • 在Intent里启用Webhook调用,当参数被提取后,在你的Webhook代码里做验证:
      // Node.js 示例代码
      const flightNumber = request.body.queryResult.parameters['flightNumber'];
      const flightRegex = /^[A-Za-z]{2,3}[0-9]{3,4}$/;
      
      if (!flightRegex.test(flightNumber)) {
        return {
          fulfillmentText: '抱歉,请输入正确的航班号格式,比如CA1234'
        };
      }
      // 验证通过后的业务逻辑
      
3. 在Dialog Flow中访问字母数字参数值

访问方式分两种场景:

  • 在响应文本中直接引用
    • Dialog Flow ES:用#参数名的格式,比如响应文本写「你提供的房间号是#roomNumber」
    • Dialog Flow CX:用$参数名的格式,比如「你的航班号是$flightNumber」
  • 在Webhook中获取参数值
    • Dialog Flow ES(Node.js示例):
      const roomNumber = request.body.queryResult.parameters['roomNumber'];
      // 基于参数值的后续处理
      
    • Dialog Flow CX(Node.js示例):
      const flightNumber = request.body.sessionInfo.parameters['flightNumber'];
      // 基于参数值的后续处理
      

内容的提问来源于stack exchange,提问作者Akshay Cv

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 08:36:20