發票圖片視覺辨識與結構化存檔
用途
自動掃描指定資料夾的新增發票圖片,用視覺辨識萃取結構化欄位輸出 hints JSON,並記錄需要人工確認的項目,讓每日帳務數位化不再靠手工輸入。
何時用
- 適合:有大量紙本或電子發票要每日數位化入帳時;想把發票掃描後自動存成結構化資料、再丟給會計軟體匯入時。
- 不要用:只有單張臨時辨識、不需要自動化流程時,直接把圖片貼給 Claude 問就好,不需要這套 pipeline;或者發票品質很差(模糊、折痕嚴重),辨識率會很低,建議先改善掃描品質。
Prompt
請執行發票視覺辨識流程:
1. 掃描 {{Todo目錄}} 資料夾,找出所有尚未處理的發票圖片(格式:jpg/png/pdf)
- 已處理的圖片會有對應的 .json 檔,跳過不重複處理
2. 對每張圖片執行視覺辨識,萃取以下欄位:
- type(統一發票 / 收據 / 收銀機發票)
- date(發票日期,格式 YYYY-MM-DD)
- vendor(賣方名稱)
- vendor_ein(賣方統一編號,找不到填 null)
- buyer(買方名稱,找不到填 null)
- buyer_ein(買方統一編號,找不到填 null)
- amount(含稅金額)
- tax(稅額,找不到填 null)
- invoice_no(發票號碼)
- confidence(辨識信心度:high / medium / low)
3. 把每張發票的結果存成同名 .json 檔(如 invoice-001.jpg → invoice-001.json)
4. 整理「需人工確認項目清單」:confidence = low 或欄位為 null 的發票
5. 寫入每日處理 log:{{log目錄}}/YYYY-MM-DD.log
格式:處理N張 / 成功X張 / 需確認Y張 / 錯誤Z張
輸出:執行摘要 + 需人工確認清單(含原因)。範例 / 變體
- 填好變數:
{{Todo目錄}}填~/Documents/invoices/todo,{{log目錄}}填~/Documents/invoices/logs,跑完自動在 todo 資料夾生成對應 JSON。 - 變體(直接單張辨識):不要掃描資料夾,把發票圖片直接貼入對話,問「請辨識這張發票並輸出 JSON」,適合臨時單筆需求。
- 變體(匯出 CSV):在步驟 5 後加「把所有今日處理的 JSON 合併成一個 CSV,欄位對應 QuickBooks 匯入格式」,直接串接會計軟體。
🎯 範例輸出(實測)
在 Claude Code 跑這句、把
{{變數}}填成「Todo目錄:~/Documents/invoices/todo;log目錄:~/Documents/invoices/logs」的結果:
點開看 AI 實際輸出
步驟 1 — 掃描 Todo 目錄
找到 5 個新檔案(無對應 .json): invoice-2026-06-01.jpg、receipt-starbucks.jpg、invoice-ecpay-0603.pdf、invoice-shopee.png、receipt-7-11.jpg
步驟 2 — 視覺辨識結果
invoice-2026-06-01.json(信心度:high)
{
"type": "統一發票",
"date": "2026-06-01",
"vendor": "全家便利商店",
"vendor_ein": "22546533",
"buyer": null,
"buyer_ein": null,
"amount": 85,
"tax": 4,
"invoice_no": "AB12345678",
"confidence": "high"
}receipt-starbucks.json(信心度:medium)
{
"type": "收據",
"date": "2026-06-02",
"vendor": "星巴克咖啡",
"vendor_ein": null,
"buyer": null,
"buyer_ein": null,
"amount": 165,
"tax": null,
"invoice_no": null,
"confidence": "medium"
}其餘 3 張:invoice-ecpay-0603(high)、invoice-shopee(medium)、receipt-7-11(low — 圖片模糊)
步驟 4 — 需人工確認
receipt-7-11.json:confidence=low,vendor_ein / invoice_no 均為 null,圖片對比度不足
步驟 5 — 每日 log
~/Documents/invoices/logs/2026-06-03.log:處理 5 張 / 成功 4 張 / 需確認 1 張 / 錯誤 0 張
💡 實測心得:PDF 發票辨識率明顯高於模糊相片,建議手機掃描時用「文件模式」自動裁切;confidence=medium 的發票通常只缺少統一編號,加一條「medium 也列入待確認」的規則,月底對帳會更乾淨。
延伸
你有沒有遇過這種情況?月底要報帳,翻出一疊發票才開始一張一張輸入,花了半天。這個流程的設計前提是「每天跑一次、每次幾分鐘」,把帳務數位化變成習慣而不是月底的噩夢。
如果你的發票量很大,可以把這個流程搭配「Git 夜間 Commit」每晚自動存檔,讓發票 JSON 也進版控,不怕遺失。