
30秒速读:用 Firefly III 自己记账的人都有一个共同的麻烦:收据拍了一堆,录入全靠手打,日期、金额、商店、分类一项项填,攒到周末就再也不想碰。这个小工具就是来补这段路的:手机拍一张收据,AI 先把关键信息抽出来,你核对改好后一键写入 Firefly III,交易还会自动打上标记,方便以后区分哪些是机器录的。它适合已经跑着 Firefly III、又愿意为识别配一个 AI 服务的人;如果想要完全离线识别,或者不能接受收据图片发给外部服务,那它并不合适。
GitHub 国内访问较慢,如打不开可多刷新几次
项目信息表
| 项目 | Receipt Scanner for Firefly III(收据识别与自动记账工具) |
|---|---|
| 实现语言 | Python 编写的 Web 应用 |
| 识别引擎 | Google Gemini,提取日期、金额、商店名称、分类与预算 |
| 记账对接 | Firefly III 个人访问令牌,写入前人工审核,创建后自动添加 #automated 标签 |
| 部署方式 | Docker Compose 为推荐路径,另有手动部署路径 |
| 默认访问 | 据项目说明,本地部署后可通过 http://localhost:8000 访问 |
| 使用场景 | 浏览器上传或手机拍摄收据,移动端界面友好 |
它解决什么问题
手工录入收据的成本不在单张,而在成堆:每张都要看日期、看金额、想分类,错一个数月底对账就对不上。这个工具把流程切成三段:AI 先读,解决从图片到结构化信息的转换;人再审,解决识别出错直接入账的风险;最后一点写入 Firefly III,省掉在记账系统里重复建交易的步骤。人工审核这一步是关键设计:它承认 AI 会读错,所以把最终确认权留在人手里,而不是追求全自动。自动标签则让事后复查有抓手,哪笔是机器录的,一眼就能筛出来。
核心能力一览
- 拍照或上传即识别:支持浏览器上传与手机拍摄,收据产生后当场就能录,不必攒到周末一起补。
- 结构化提取:用 Gemini 抽取交易日期、金额、商店名称、分类与预算,覆盖一笔交易的核心字段。
- 写入前人工复核:识别结果先给你看、给你改,确认无误后再写入,避免错账直接进账本。
- 一键创建交易:确认后一次操作完成 Firefly III 交易创建,并自动附上 #automated 标签。
- 模型可配置:通过 GEMINI_MODEL 环境变量选择使用的 Gemini 模型,换模型不用改代码。
上手指南
- 准备好两样东西:一个可访问的 Firefly III 实例,以及它的个人访问令牌;再加一个 Google AI API 密钥,缺一不可。
- 按 Docker Compose 路径部署:这是项目推荐的部署方式,参照仓库里的说明与示例环境文件填好配置,启动后先在本地网络内访问确认服务起来了。
- 用一张真实收据跑通全流程:拍一张日常购物收据上传,核对识别出的日期、金额、商店与分类,改对后再写入,确认 Firefly III 里出现这笔交易且带有自动标签。
- 确认网络边界再放行:这个应用本身不带内置认证,远程访问之前先想好防护方式,默认只放在本地网络里用是最稳妥的。
- 更新时先看示例配置:升级前检查示例环境文件有没有新增变量,更新流程不会自动改你现有的环境文件,新增项要自己补。
版本选择:先拿稳定版
这类对接外部服务的自托管小工具,建议优先用仓库的正式 Release 版本:部署步骤与环境变量都经过一轮整理,出了问题容易对照文档定位。直接跟进最新主干代码适合愿意自己排障的人,但要接受接口与默认行为可能变动。无论选哪条线,第一次部署都建议只在本地网络跑,确认识别与写入都正常后再考虑要不要扩大访问范围。
先配好的 4 项设置
- 识别模型:通过 GEMINI_MODEL 环境变量选定模型,换模型后用同一批收据复测一遍,确认金额与日期的准确率没有明显滑坡再正式用。
- 令牌权限范围:Firefly III 个人访问令牌只给创建交易所需的权限,定期检查令牌是否仍然有效,失效时第一时间更换,不要等到月底对账才发现写不进去。
- 复核习惯:把人工复核当成固定动作:金额、日期、商店三项每张必看,分类与预算可以慢慢调,但金额错了入账就是错账。
- 拍摄规范:收据拍平、光线均匀、避开反光,模糊、倾斜、反光是识别错误的头号来源,拍清楚比换模型更管用。
注意事项与常见问题
问:能直接放到公网给全家人用吗?
不建议。这个应用不包含内置认证,据项目说明应部署在本地网络中;远程访问需要另外配置 VPN 或其他网络防护,直接暴露到公网风险很大。
问:识别错了怎么办?
流程本身留了人工复核环节,写入前逐项改对再提交;如果某类收据反复读错,先改善拍摄条件,再考虑是不是该类票据本身不适合这类识别。
问:没有网络或不想用外部 AI 服务能用吗?
不能。识别依赖 Gemini 服务,必须配置密钥且能连通服务;需要纯离线识别的话,应另选本地 OCR 方案。
问:交易写不进去通常是什么原因?
先查两处:Firefly III 实例能不能被应用访问,个人访问令牌是否有效;再看环境文件里的关键变量有没有填错,更新后新增的变量有没有漏补。
明确取舍:选它还是不选它
选它,如果:你已经在用 Firefly III,想把收据录入从手打改成拍照加复核,并且能接受识别走外部 AI 服务、应用只放在本地网络使用。
不选它,如果:你要求离线识别、多人账户隔离、批量导入历史票据,或者必须有内置登录与权限体系。这些需求超出了这个小工具的设计范围,硬上只会越用越别扭。
获取方式
本项目为开源项目,仓库地址见文首的 GitHub 按钮。部署前请准备好 Firefly III 实例、个人访问令牌与 Google AI API 密钥,并先确认应用的网络边界符合自己的安全要求。

关注「软件教程管家」
回复软件名即取即下:网盘下载链接 + 提取码,一步直达,不用再跳转。
本站资源仅供个人学习交流,请勿用于商业用途。软件与资料版权归原作者所有;如有侵权,请通过公众号「软件教程管家」联系我们,我们将在 24 小时内下架处理。查看免责声明 ›







