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

Dialogflow参数能否设为字典?Dialogflow CX如何高效封装参数传递

Dialogflow CX 参数相关问题解答

问题1:我的Dialogflow参数能否为字典?

Dialogflow CX 本身不支持原生字典(或JSON对象)类型的参数,它仅支持字符串、数字、布尔值这类基础数据类型。但可以通过特定方式模拟字典的层级结构,实现类似的参数管理效果。

问题2:在Dialogflow CX中,将大量参数封装为字典/JSON对象对外传递的最高效方式

针对你的场景,推荐两种实用方案:

方案1:用嵌套命名参数模拟字典结构

Dialogflow CX 支持参数的点式命名规则,你可以直接创建player.first_name、player.surname这类带前缀的参数名,系统会自动将同前缀参数识别为逻辑上的嵌套结构,完美匹配你想要的player.xxx操作方式。

具体操作:

  1. 在Dialogflow CX的参数配置里,直接定义以下参数名:
    • player.first_name
    • player.surname
    • player.team
    • player.award
  2. 脚本中直接按名称赋值:
    p1 = 'Joe'
    p2 = 'DiMaggio'
    p3 = 'New York Yankees'
    p4 = 'MVP'
    
    # 给嵌套参数赋值
    parameters["player.first_name"] = p1
    parameters["player.surname"] = p2
    parameters["player.team"] = p3
    parameters["player.award"] = p4
    
  3. 对外API调用时,直接整理为字典:
    player_dict = {
        "first_name": parameters["player.first_name"],
        "surname": parameters["player.surname"],
        "team": parameters["player.team"],
        "award": parameters["player.award"]
    }
    # 用player_dict发起API请求即可
    

方案2:将字典序列化为JSON字符串存为单个参数

如果不需要在Dialogflow内部单独操作子参数,仅需整体对外传递,这种方式更简洁:

具体操作:

  1. 在Dialogflow CX中创建一个字符串类型的参数player_json
  2. 脚本中打包字典并序列化为JSON字符串:
    import json
    
    p1 = 'Joe'
    p2 = 'DiMaggio'
    p3 = 'New York Yankees'
    p4 = 'MVP'
    
    player_dict = {
        "first_name": p1,
        "surname": p2,
        "team": p3,
        "award": p4
    }
    # 序列化后存入参数
    parameters["player_json"] = json.dumps(player_dict)
    
  3. API调用时反序列化为字典:
    player_dict = json.loads(parameters["player_json"])
    # 直接使用player_dict即可
    

方案对比

  • 方案1适合需要在Dialogflow内部单独调用子参数的场景(比如用player.team做路由判断)
  • 方案2适合仅需整体传递参数的场景,操作步骤更少

内容的提问来源于stack exchange,提问作者Divided Highway

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 05:02:24