Workspace Studio发票流程替代:API抽取、去重与回读

apizt 实测记录 · 2026-10-24 · 不是第三方产品界面截图

用apizt抽取四封虚构发票邮件,再在本地SQLite验证幂等写入与回读:零税额保留,缺税额与金额冲突挂起,同附件转发不重复插入。模型漏掉重复邮件行的原输出保留,源邮件去重由程序控制,不能交给模型隐式决定。

本次操作

  1. 准备四封虚构输入:包含正常零税额、同附件转发、税额缺失、总额算术冲突四种输入,保留邮件ID与附件哈希。
  2. 真实API抽取但不直接写入:要求JSON、缺失用null和原字段;API实际抽出3行,重复E02未列出,因此仍以源邮件清单作覆盖基准。
  3. 程序判定去重和待审:以供应方/发票号/日期/币种为身份,附件哈希追踪来源;缺税额和60+6≠68的记录挂起。
  4. 写入后读取并重放:本地SQLite实际只插入INV-100,税额0保留;回读核对后重放同一输入,新增行数为0。

结果与限制

extract-invoices-json

httpmodelrequestSeconds
200gpt-4.1-mini6.302

write-readback.json

emailactiontaxreasonsreason
E01insert0.0
E03hold["tax_missing_requires_review"]
E04hold["Total conflicts with sum of subtotal and tax", "arithmetic_conflict"]
E02skip_duplicatesame source attachment hash demo-a; handled by source envelope, not inferred from missing LLM row
查看原始模型输出
{
  "invoices": [
    {
      "email_id": "E01",
      "message_id": "msg-a",
      "invoice_id": "INV-100",
      "supplier": "松风材料社",
      "buyer": "青禾工作室",
      "issue_date": "2026-10-20",
      "currency": "CNY",
      "subtotal": 100.0,
      "tax": 0.0,
      "total": 100.0,
      "attachment_hash": "demo-a",
      "review_reasons": []
    },
    {
      "email_id": "E03",
      "message_id": "msg-b",
      "invoice_id": "INV-101",
      "supplier": "松风材料社",
      "buyer": "青禾工作室",
      "issue_date": "2026-10-21",
      "currency": "CNY",
      "subtotal": 80.0,
      "tax": null,
      "total": 80.0,
      "attachment_hash": "demo-b",
      "review_reasons": []
    },
    {
      "email_id": "E04",
      "message_id": "msg-c",
      "invoice_id": "INV-102",
      "supplier": "北门纸品社",
      "buyer": "青禾工作室",
      "issue_date": "2026-10-22",
      "currency": "CNY",
      "subtotal": 60.0,
      "tax": 6.0,
      "total": 68.0,
      "attachment_hash": "demo-c",
      "review_reasons": [
        "Total conflicts with sum of subtotal and tax"
      ]
    }
  ]
}

复跑与凭据

下载本题 evidence.zip,保留各任务目录。API脚本通过本机环境变量 tokenba_API_KEY 读取你的Key;不把Key放进请求JSON。先核对模型广场当前可用型号和价格,再显式运行一次小样。

生成次数、文件成功、内容质检分别判断。没有在公开报告中保存任何可用Key。