表格体检(服务端检查,只读不写)
把一批表发出去,拿回一份带位置与整改动作的问题清单。
检查在服务端完成;本地脚本只负责读表、发起请求、渲染报告。
> 为什么需要授权:检查规则、类型推断口径与严重度分级都在服务端,本地没有副本。
> 没有有效授权就不执行检查——这是服务的一部分,不是限制。
第 0 步 · 免费预检(不收费,先看清要体检多大)
python scripts/sheet_checkup.py 表1.csv 表2.xlsx --dry-run
python scripts/sheet_checkup.py --dir ./待交出的表 --dry-run
只报每张表的列数、行数与总表数,不发起付费请求。
服务端单次上限:20 张表 / 单表 60 列 / 单元格总量 90000;
单表超过 1500 行时服务端不会拒单,但会把没覆盖到的行数显式标成「口径缺口」
(体检不抽样,超出就是没查,不会假装查过)。
第 1 步 · 请求授权(未付费会返回 402)
POST https://skills-gate.airpriv.com/api/sheet-checkup-license
Content-Type: application/json
{"sheets":[{"name":"表A","columns":["订单号","金额 "],"rows":[["A1","100"]]}]}
首次调用一定拿到 402 Payment Required —— 这是设计,不是错误。响应里带:
- HTTP 头
Payment-Needed(base64url 编码的账单) - 响应体
payment_needed/amount/out_trade_no/resource_id
第 2 步 · 处理 402(完成支付)
把 payment_needed 对象(不是整个响应信封)交给支付宝 AI 付完成支付,拿回 Payment-Proof。
不要自己伪造 —— 服务端会拿它去支付宝网关做真实校验。
第 3 步 · 携凭证重试
python scripts/sheet_checkup.py 表1.csv 表2.xlsx --proof "<Payment-Proof>"
请求体保持一致,服务端验付通过后返回 200,结果在 content.data 内。
脚本会把 report_md 写成源表同目录下的 表格体检报告.md。
交付物
- 问题清单:每条含严重度 / 表 / 列 / 行 / 问题描述 / 该怎么改。
- 各列画像:每列被判成数值 / 日期 / 文本 / 枚举 / 编号 / 空列,附非空、空值、缺失率。
- 口径段(照实写进报告,别省略):只读不写 · 只查格式与结构 · 不做业务正确性判断 ·
被截断时显式标出口径缺口。
口语化说法同样命中(用户不会照着术语说话)
- 「这表有什么问题」—— 一次体检就能把问题清单摆出来。
- 「帮我看看这批 Excel 干不干净」—— 干净就给 0 问题的结论,不硬凑问题。
- 「能不能直接拿去统计」—— 就看有没有会让求和/透视悄悄少算的坑。
- 「能不能直接拿去统计」属于判断口:体检只报「哪里会导致统计出问题」,
不给「可以用 / 不能用」的结论。
边界(照实转述给用户,别美化)
- 体检不改任何数据:它只报告问题,清洗请另用清洗类工具。
- 不判断业务对错:金额对不对、缺的值该填什么、数据合不合规,一概不管、也不猜。
- 只检查能在数据里看见的问题;纯语义问题(比如「这个摘要写得不清楚」)不在范围内。
- 列类型由值推断:混得厉害时可能判错列类型(例如一列里一半日期一半编号),
报告里的列画像会写清它被判成了什么 —— 判错时以你的人工判断为准。
<!-- 付费链路自检段由 工具/skillhub-payblock.py 补入 -->
<!-- skillhub-payblock -->
付费链路自检(与平台五项自查一一对应)
本 Skill 的付费链路由服务端承担验付、资源交付与商家履约确认;Skill 只负责
发起请求、调用官方支付能力并展示结果。逐条对应平台自查项如下:
| 平台自查项 | 本 Skill 的实现 |
|---|---|
| 402 账单 | 未付款时请求 POST https://skills-gate.airpriv.com/api/sheet-checkup-license 返回 HTTP 402 Payment Required;响应头 Payment-Needed 携带账单,响应体含 payment_needed / amount / out_trade_no。 |
| 凭证重试 | 支付后携带请求头 Payment-Proof: <凭证> 重发同一个请求(URL、请求方法、请求体与原请求保持一致),服务端校验通过后返回 200,结果在 content.data 内。 |
| 服务端验付 | 服务端调用支付宝 AI 按量付费凭证校验接口 alipay.aipay.agent.payment.verify 验签并核对订单、金额与服务标识;凭证无效或已过期时不交付任何资源,只回 402 账单让用户重新支付。 |
| 商家履约 | 资源交付后由服务端调用 alipay.aipay.agent.fulfillment.confirm 上报履约确认;上报失败可对同一订单重试,重试幂等,不会产生第二次扣费。 |
| 订单与幂等 | 每笔订单以唯一 out_trade_no 持久化于服务端订单库,状态可恢复;同一订单重复请求只履约一次、不重复扣费。 |
> 支付能力由支付宝 AI 按量付费官方链路承担,本 Skill 不接触支付密钥、不自行实现付款或签名。
<!-- /skillhub-payblock -->