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

Great Expectations中ExpectationConfiguration如何指定评估参数

报错根因

{"$PARAMETER": "runtime_values"}的写法只是在期望配置中声明:value_set字段需要引用名为runtime_values的运行时评估参数,并没有给这个参数绑定实际值。框架在校验配置加载阶段找不到对应参数的赋值,就会抛出No value found for $PARAMETER runtime_values的异常。

正确配置方式

根据参数值的确定时机,选对应方案即可:

方案1:校验运行时动态传参

适合value_set的值每次校验都可能变化、无法提前硬编码的场景:

  • 你当前写的ExpectationConfiguration定义不需要修改,$PARAMETER占位符的语法本身是正确的。
  • 执行校验(调用checkpoint.run()或validator.validate())时,必须通过runtime_evaluation_parameters字段传入对应参数的实际值,示例:
validation_result = checkpoint.run(
    # 显式传入所有声明过的运行时评估参数
    runtime_evaluation_parameters={
        "runtime_values": ["g001", "g002", "g003"]  # 替换为业务要求的合法gameid集合
    }
)

注意:传入的参数字典键名必须和$PARAMETER后标注的参数名完全一致,大小写敏感,名称不匹配会直接触发参数找不到的报错。

方案2:提前在期望套件中注册固定参数值

适合value_set是固定枚举值、不需要每次运行动态调整的场景:
在添加期望配置之前,先把参数值注册到期望套件的评估参数存储中,后续执行校验不需要额外传参:

# 先注册评估参数
suite.add_evaluation_parameter(
    parameter_name="runtime_values",
    parameter_value=["g001", "g002", "g003"] # 替换为实际的合法gameid集合
)
# 再添加你定义的ExpectationConfiguration即可,不需要修改配置内容
suite.add_expectation(expectation_configuration=expectation_configuration_2)
避坑提示
  • 如果value_set是固定值,完全不需要用$PARAMETER占位符,直接在kwargs里写"value_set": ["g001", "g002", "g003"]即可,多余的占位符声明反而会触发参数查找逻辑报错。
  • 如果传入的评估参数是嵌套字典结构,比如参数值存在{"game_config": {"allowed_ids": [1,2,3]}}层级,占位符里的参数名必须写全路径:{"$PARAMETER": "game_config.allowed_ids"},不能只写最后一级键名。
  • 不要在未做参数绑定的情况下随意使用$PARAMETER语法,只要配置里出现该占位符,框架就会强制查找对应参数值,找不到就直接抛错终止运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 12:45:42