easynet.run · 全部问题场景

数据没取到,报告就该把缺口说出来

经营周报拿到了订单,退款服务却离线了。助手依然写出净收入增长的结论,因为传给模型的退款材料是一段空文本。对读者来说,报告没有留下任何缺口;对计算来说,“没查到”已经被偷换成“没有退款”。

固定 BI 报表应先用数据管道的完整性检查,缺关键分区就不发布。EasyNet 不需要接管这件事。它适合来源由不同团队维护、助手临时组合查询的情况,让每次取数有明确输入和可检查的结果,而不是靠一堆复制粘贴材料凑报告。

订单和退款可分别作为受限查询接入,接受同一约定时区、时间范围及项目范围。提供方返回业务数据、数据截至时间和口径版本;它仍负责访问原数据库。调用身份只能查询获准业务,不能让模型通过任意 SQL 扩大取数范围。

编排代码要先检查来源覆盖,再邀请模型写文字。空数组是有效业务结果;超时、权限拒绝和数据过旧各有不同处理。净收入依赖两类数据,就应该在缺退款时停止给数,或者明确交付只有订单部分的报告。

如果原数据较大,也不必把整张表交给助手。可以在提供方完成确定性聚合,返回必要统计及可核对的引用。报告注明未取得的来源;恢复后生成新的版本,说明哪些结论更新,而不是悄悄覆盖已经被转发的旧稿。

测试应让退款服务真的不可用,再用确实为零的退款样本对照,检查两份报告是否不同。调用终态只是输入证据,完整性规则和业务计算仍需团队实现。这条方案的意义,是让读者知道能相信哪部分,不是保证每次都产出一份看似完整的周报。

  1. 01

    查询同一期间

    订单与退款各自返回状态

  2. 02

    检查必要来源

    失败不是零退款

  3. 03

    交付明确范围

    缺数据不输出净收入

先判断来源齐不齐,再计算净收入。

把零和未知分开

本地完整性检查;金额用整数分。此处模拟查询结果,不连接真实财务系统。

本地示例 · python
def net_revenue(orders, refunds):
    if orders["status"] != "ok" or refunds["status"] != "ok":
        return {"net_cents": None, "complete": False}
    return {"net_cents": orders["cents"] - refunds["cents"],
            "complete": True}

orders = {"status": "ok", "cents": 10000}
missing = net_revenue(orders, {"status": "timeout"})
zero = net_revenue(orders, {"status": "ok", "cents": 0})
assert missing["net_cents"] is None
assert zero["net_cents"] == 10000
print(missing)
print(zero)

预期结果:超时得到 None/False;真实零退款得到 10000/True,不能混成同一份报告。

接入时的检查项
  • 断开退款来源后是否停止给出完整净收入。
  • 合法零退款与查询失败是否显示为不同状态。
  • 报告能否说明数据截至时间及覆盖范围。
源码与接入资料