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

使用PM4Py进行一致性检查时令牌重放诊断返回空对象求助

问题解决:PM4Py Token Replay诊断函数返回空对象

可能的排查与解决步骤

  • 检查Token Replay参数配置
    确保parameters_tbr中开启了诊断所需的核心参数,比如:

    parameters_tbr = {
        pm4py.util.constants.PARAMETER_CONSTANT_ACTIVITY_KEY: "concept:name",
        pm4py.util.constants.PARAMETER_CONSTANT_TIMESTAMP_KEY: "time:timestamp",
        "enable_pltr_fitness": True,
        "enable_trp_fitness": True
    }
    

    这些参数是生成完整trans_fitness和unwanted_activities数据的前提,缺失会导致诊断函数无有效数据可处理。

  • 验证trans_fitness的实际结构
    即使对象非空,也要确认内部是否包含诊断所需字段。打印第一条trace的诊断数据:

    print(trans_fitness[0])
    

    正常结果应包含fitness值、transitions匹配明细、对应trace索引等字段。如果这些字段缺失,诊断函数无法生成有效输出。

  • 标准化事件日志格式
    duration_diagnostics依赖正确的时间戳和活动字段格式,用PM4Py工具标准化日志:

    log = pm4py.format_dataframe(log, activity_key="concept:name", timestamp_key="time:timestamp")
    

    确认日志中时间戳为datetime类型(而非字符串),否则无法计算活动持续时间。

  • 核对PM4Py版本兼容性
    不同版本的PM4Py在诊断函数的参数和返回结构上可能存在差异。尝试升级到最新稳定版:

    pip install --upgrade pm4py
    

    或查阅对应版本的官方文档,确认diagnose_from_trans_fitness的参数要求是否有变更。

  • 手动验证诊断逻辑
    若以上步骤无问题,手动提取异常数据测试:

    # 遍历trans_fitness筛选低适配度trace
    for idx, trace_diag in enumerate(trans_fitness):
        if trace_diag["fitness"] < 0.8:
            log_trace = log[idx]
            # 打印对应trace的活动与时间戳
            for event in log_trace:
                print(event["concept:name"], event["time:timestamp"])
    

    如果手动能获取到有效数据,说明可能需要给diagnose_from_trans_fitness显式传入activity_key或timestamp_key参数。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 09:35:23