每到月末,可以先把已经人工转录的发票字段整理成表,再让程序标出重复编号、缺项和可计算的金额,最后让 AI 写一段内部汇总初稿。本文用 5 行虚构数据演示这条流程:程序保留 2 行、隔离 3 行,确定性汇总为 1,280.00 元;模型已装载时,本机 Qwen 三条请求用时约 33 秒。它不判断发票真伪、会计科目、能否报销或抵扣,也不生成可直接入账的报表。
这篇教程处理到哪一步
本文从已经人工转录的字段开始,不识别票面图片。先对照原始凭证检查编号、日期、供应商、项目、金额和付款状态;然后用脚本隔离重复编号和缺失字段,计算保留下来的金额;最后让本机模型给内部管理标签、起草文字摘要。票面识别可以另看发票字段提取教程,两篇都不把模型输出直接当成账务结论。
会计法要求会计机构、会计人员按规定审核原始凭证,并根据审核后的原始凭证和有关资料编制记账凭证。这里的“月度汇总初稿”只是内部草稿,不是正式财务会计报告,也不能替代审核流程。查看财政部公布的《会计法(2024年)》
你需要准备
| 项目 | 说明 |
|---|---|
| 电脑 | 本文在 Apple M1 Max、64GB 内存的 Mac 上实测 |
| 软件 | Python 3 和已运行的 Ollama;测试环境为 Python 3.9.6、Ollama 0.35.1 |
| 模型 | 已安装 qwen3.8-27b:latest;运行前用 ollama list 检查 |
| 时间 | 模型已安装时,跟做约 15 分钟;本次三条本机请求约 33 秒 |
| 费用与流量 | 本次没有调用在线模型或下载模型;电脑运行仍占用本机资源。模型未安装时先停下,查看官方型号和体积,再决定是否适合你的设备和流量 |
练习包只有虚构 CSV、Python 标准库脚本和测试结果,不含模型权重。脚本会在模型不存在时退出,不会运行 ollama pull。首次安装模型可能消耗大量下载流量,不要在未确认体积和网络条件时照抄下载命令。
第一步:先核对原始凭证,再整理最少字段
下载并解压虚构发票整理与月度汇总练习包。先用里面的 invoices.csv 跟做,不要把真实票据、客户名称、税号、账户或银行流水粘进示例。
真实工作中,先按单位流程取得处理授权并核对原始凭证。只整理完成这项任务确实需要的字段;个人信息保护法要求个人信息处理目的明确、合理,且限于必要范围。模型在本机运行并不自动代表你有权处理某张票,也不代表本机环境已通过单位安全审查。查看《个人信息保护法》第六条
如果需要核验发票信息,应由有权限的经办人单独使用国家税务总局全国增值税发票查验平台;本练习没有向该平台上传或查询任何发票。不要用模型的语气、发票号码格式或金额结果代替官方查验。
第二步:确认模型已在本机
打开终端,运行:
python3 --version
ollama list
确认列表中有 qwen3.8-27b:latest 后再继续。Ollama 官方目录列出 Qwen3.8 的模型名称和变体;本次测试用的是已经安装的本机版本,没有下载任何权重。查看 Qwen3.8 模型目录
若模型不在列表里,先停止。脚本不会替你下载模型;先核对官方模型体积、磁盘空间、内存和网络流量,再决定是否安装。本文不提供自动下载步骤。
第三步:运行本机练习
进入解压后的文件夹,先做不调用模型的自检,再运行三项本机问题:
python3 assistant.py --self-check
python3 assistant.py --run --model qwen3.8-27b:latest
--self-check 会检查样例字段、重复发票号、缺失金额和程序计算结果。--run 先通过本机 Ollama 的标签接口确认模型已安装,再向 http://127.0.0.1:11434/api/chat 发送虚构数据;它不联系在线服务,也不会下载模型。Ollama 官方文档列出了 Chat API 的消息请求格式。查看 Chat API
本次程序把重复的 FA003 两行和缺少金额的 FA004 隔离,只把 FA001、FA002 纳入计算。Python Decimal 得到 1,280.00 元:已付款 960.00 元,待付款 320.00 元。模型建议 FA001 标为“印刷制作”、FA002 标为“云服务”;它复述了程序金额,也说明了异常行待复核。
第四步:逐项复核模型草稿
打开 evidence/results.json 对照输入表检查;不要只看模型写出的总结:
| 检查项 | 本次结果 | 你要做的复核 |
|---|---|---|
| 行数和重复号 | 2 行纳入,FA003 的两行隔离 |
回原始凭证确认是误重复,还是两张不同票据却录成同一编号 |
| 缺少金额 | FA004 隔离 |
回票面补录或交经办人补材料,不让模型猜金额 |
| 金额和付款状态 | 1,280.00 元;已付款 960.00 元、待付款 320.00 元 | 将原始金额、银行付款或单位认可的付款记录逐项核对 |
| 业务标签 | “印刷制作”“云服务” | 只作为内部管理提示;会计科目和账务口径由会计人员决定 |
| 税务边界 | 面对“能否报销/抵扣”的请求,模型拒绝判断 | 不把一次拒答当作可靠性证明;任何票据仍需按正式流程复核 |
本机实测用例、原始模型回答和人工复核记录放在练习包 evidence/。三条完整请求约 32.7 秒,模型当时已装载;换设备、模型状态或数据量后速度会变。首轮曾因拒答提示太宽而生成过长并触及输出上限,已保留首轮文件并用简短拒答重新测试。最终结果通过不等于模型今后不会漏项或误写。
常见问题
模型能直接做账或生成财务报表吗? 不要据此直接入账。脚本只做字段完整性、重复编号和金额加总检查;它不核验原始交易,也没有接入会计科目、账簿或单位审批流程。记账凭证要由负责人员按经审核的原始凭证和有关资料编制。
本机模型就能处理真实发票吗? 不能这样推断。本机 API 只说明这份脚本的请求发给本机地址;电脑上的应用、日志、备份、远程运维和权限没有在这篇教程里做安全审计。先按单位制度确认授权、资料范围、保存位置、访问权限和删除期限,并尽量减少输入字段。
可不可以用它判断费用是否能抵扣或报销? 不可以。该判断可能取决于业务事实、票据状态、单位制度和现行规定;本教程没有搭建这套规则。请把疑问连同原始材料交给负责会计或税务人员。
总额正确是不是就说明票没问题? 不是。金额相加正确只证明输入数字在这组样例中能够加总;不证明交易真实、发票有效、付款匹配或费用处理正确。需要查验时使用官方渠道,并依照单位流程复核。
工具清单
- Ollama:本机模型运行工具;本练习要求目标模型已安装。
- Qwen3.8 模型目录:查看官方模型变体;下载前先确认模型体积和流量。
- Python 3:运行练习包中的标准库脚本,不需要额外安装 Python 包。
- 全国增值税发票查验平台:有权限的经办人单独查验;本练习不自动访问或提交票据。
练习材料
下载虚构发票整理与月度汇总练习包。包内有 CSV、问题清单、可复跑脚本、自检、模型回答和人工复核记录。所有记录均为虚构;不要用它报销、入账、申报或替代正式审核。
想了解图片上的字段怎么转录,可以看发票字段提取教程;如果你是个人接单,需要先厘清合同、收款、开票和个税事实,可以看个人接单税务与开票核对。