AI 识别票据之后:金额、币种和原文证据要分开校验

发布时间:2026/10/25 20:35:04
AI 识别票据之后:金额、币种和原文证据要分开校验 票据图片变成JSON只完成录入的一部分。界面显示total为1200时用户还需要知道它是哪一种币种模型有没有把“1.200,00”按另一种格式解释。比“全自动记账”更值得做好的是让人快速发现不该自动入账的字段。2026年10月19日Cloudflare发布Clairic提取模型预览介绍从非结构化输入中提取数值的能力。发布说明 本文没有调用该模型也不复现厂商准确率。即使换成专门模型字段进入财务系统之前的应用校验仍然存在。保存值也保存出处我会把字段拆为原文、规范值、币种、页码和复核状态。原文“1.200,00 €”可规范为“1200.00”但转换规则必须来自明确地区或人工选择不能简单删除全部逗号。金额关系也需要语义。税额可能已经包含在单价里折扣、运费可能单列。没有文档含义拿两个字段相加也可能是在验证错误公式。用户点击金额应该回到原文区域并看到币种及转换方式。置信度可以帮助排序不能代替原文缺少出处时直接显示“缺证据”。拒绝猜测地区下面只支持事先指定的两种格式拒绝不符合分组约定的输入不处理货币符号也不自动猜测地区。from decimal import Decimal import re def amount(raw, style): patterns { en: r(?:\d|\d{1,3}(?:,\d{3}))\.\d{2}, de: r(?:\d|\d{1,3}(?:\.\d{3})),\d{2} } if style not in patterns or not isinstance(raw, str): raise ValueError(unsupported format) if not re.fullmatch(patterns[style], raw): raise ValueError(needs human review) value raw.replace(,, ) if style en else raw.replace(., ).replace(,, .) return Decimal(value) assert amount(1,200.00, en) Decimal(1200.00) assert amount(1.200,00, de) Decimal(1200.00) try: amount(12,34.56, en) raise AssertionError(invalid grouping accepted) except ValueError: pass print(amount: 3 cases passed)保存为amount.py运行python3 amount.py。从字符串构造Decimal可以避免先经过二进制浮点数再带入误差。Python文档解释了其十进制计算和舍入机制。负数、零位小数币种、贷项通知和舍入政策仍须另行设计。结构正确也可能认错数字Structured Outputs文档区分JSON模式与受Schema约束的输出。票据上的“8”被认成“3”仍可能满足数字字段。UI不能把结构校验的绿勾解释成财务正确。更稳妥的路径是先检查结构再检查格式与字段关系需要复核的内容进入人工队列。只有确认后的结果才能导出修改保留前后值与原因。本地例子只验证金额解析规则没有测试OCR、模型、真实票据集合、财务软件集成或地区税务适用性。让每项检查的范围可见才能知道这段代码适合放在系统的哪一层。

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询