最近我完成并公开了一套面向一人公司和小微企业的本地记账与报税准备工具:
小企业会计智能记账报税工具 v1.7.0
GitHub:
https://github.com/superalp1985/small-enterprise-accounting-assistant
这个项目的目标不是做一个大模型聊天界面,而是打通下面这条完整链路:
自然语言 / 发票图片 / PDF
↓
金额、日期、票据信息提取
↓
规则识别或本地模型语义判断
↓
《小企业会计准则》科目对齐
↓
借贷平衡凭证
↓
总账、明细账、资产、往来、月结
↓
税务测算与30张Excel报税准备表
- 为什么不用大模型直接生成凭证
会计场景里,模型“说得像”没有意义,科目、方向、金额和税额必须能够解释和复核。
我的处理方式是三层语库:
明确业务词:走确定性规则;
无歧义同义词:走确定性映射;
口语、模糊词、冲突词:直接交给本地模型。
模型不能创造科目,只能在《小企业会计准则》完整66科目中选择。输出还必须包含语义分类、规则依据和科目推荐理由。
Prompt 中也不会塞入整个三级词库,而是把完整科目分类压缩成结构化摘要,再结合当前业务文本进行判断。这样可以把上下文控制在4096范围内,同时避免先用不可靠的模糊规则筛错候选。
这套多层语库锚定方法已经提交中国发明专利申请:
申请号:202610343019.9
名称:一种基于多层语库锚定的会计科目智能匹配方法及系统 - 本地模型部署
语义模型使用 Qwen3.5 2B Q4_K_M,通过 llama-server 提供本机推理:
4096上下文;
关闭思考模式;
GPU优先;
无可用GPU时自动回退CPU;
模型加载后常驻;
启动和推理过程提供中文Loading窗口及近似进度条。
2B Q4的价值不在于回答百科问题,而在于本地、低成本地处理会计口语和模糊业务语义。原始票据和账套数据不需要上传云端。 - OCR 与票据处理
OCR 使用 RapidOCR,支持图片和PDF。
识别结果会提取发票号码、日期、购销方、金额和税额。OCR失败不会抛出Python Traceback,而是给出类似“第3张发票金额识别不清,请手动输入”的中文提示。
OCR只负责提取,不直接决定最终会计科目。票据结构、语义判断和凭证生成是三个独立阶段,便于用户复核。 - 本地账务与数据安全
底层使用 SQLite,并默认开启 WAL。每次启动执行完整性检查,同时创建压缩备份,只保留最近5份启动备份。
系统还实现了:
JSON兼容镜像修复;
凭证反过账;
损益结转撤销;
归档月份写保护;
强制借贷平衡检查;
固定资产一键生成折旧凭证;
首次设置账号密码,后续启动强制登录。
密码使用带盐PBKDF2摘要保存,但软件也明确提示:登录控制不等于数据库或磁盘加密。 - 税务和Excel输出
当前自动测算范围明确限制为:
小规模纳税人;
小型微利企业。
系统支持按月或按季期间、价税分离、免税阈值、资格校验、未开票收入、红字发票、税费计提、个税、印花税、所得税预缴和年度汇算准备。
税率、阈值、资格上限和政策日期均可修改,软件不会假设预设参数永久有效。
最终可以导出30张Excel工作表,包括凭证、总账、明细账、科目余额表、资产负债表、利润表、现金流量表、银行对账、固定资产、折旧、增值税、个税、印花税、所得税及申报校验底稿。 - 测试与交付
目前保留57项自动化测试,并完成:
连续12个月全周期验收;
完整66科目覆盖;
30张Excel工作表生成;
SQLite WAL与备份恢复验证;
Windows 11干净环境安装测试;
Defender单文件扫描。
离线安装包约1.67GB,因为内含Qwen模型、CPU/GPU推理组件、RapidOCR和Python OCR运行时。用户双击安装即可使用,不要求安装Python或手工下载模型。 - 许可和责任边界
项目源码公开,但采用带非商业限制的自定义互惠许可,因此准确分类是 source-available,不是OSI认证开源许可证。
允许个人及小企业用于自己的记账报税准备,也允许非商业二次开发;禁止闭源、收费服务、SaaS、商业集成和其他盈利活动。向第三方提供修改版时必须公开完整对应源码。
软件只提供记账和报税准备辅助,不构成会计、税务、审计或法律意见,也不承诺导出文件未经复核即可申报。
项目地址:
https://github.com/superalp1985/small-enterprise-accounting-assistant
这次真正想验证的不是“AI能不能写会计分录”,而是:
能不能把自然语义、确定性会计规则、OCR、本地模型、账务数据安全和完整年度流程组合成一个普通人可以安装使用的产品。
现在这个闭环,已经跑通了。