InvoiceFlowAI 開源報帳工具,把中國電子發票整理進 Excel

InvoiceFlowAI 是開源的報帳整理工具,把 QQ 與 163 信箱裡的中國電子發票自動下載、辨識、歸檔,產出 Excel 報帳彙總表。信箱支援範圍、資料外送邊界與 AI 費用,這篇逐一拆開。

用 AI 摘要這篇文章:

每個月報帳前的那個下午通常是這樣過的:在信箱裡搜「發票」,把中國開票平台寄來的 PDF 一封封點開、下載、改名,再把日期、金額、發票號碼抄進試算表。單張不難,麻煩在於數量,出差一週下來,車票、機票、住宿、餐飲的票據散落在十幾封郵件裡,有些甚至只有一個「點擊查看發票」的連結,附件欄是空的。這套流程在需要經手中國電子發票的人身上每個月重演一次。

InvoiceFlowAI 是一款衝著這個流程來的開源桌面工具。它連上你的信箱後,自動把電子發票附件抓下來、辨識票面資訊、按類型歸檔命名,最後產出一份 Excel 報帳彙總表。專案放在 GitHub(EthanYoQ/Invoice-Downloader),採 Apache-2.0 授權,提供 Windows x64 與 Apple Silicon Mac 兩種安裝檔,全部免費,辨識用的 AI 要自帶 API 金鑰。

InvoiceFlowAI 官方功能總覽圖,呈現啟動配置、處理中心、結果分析與安全提示四個介面畫面Pin
InvoiceFlowAI 官方 README 功能總覽:啟動配置、處理中心、結果分析與使用前確認(GitHub 專案圖)

一張合成發票 XML,在本地就解完了

我把專案的原始碼完整抓下來讀過一輪,接著做了一個小實驗:按原始碼裡 XML 解析器認得的欄位名稱,組一份假的全電子發票檔,內容包括 20 位發票號碼、賣方「上海某科技有限公司」、買方「台北某股份有限公司」、金額 888.00 元、開票日期與品名住宿服務,然後呼叫專案的本地解析入口。結果不需要任何 AI:號碼、買賣雙方、金額、日期全數解出,還自動歸進「住宿發票」分類,全程零次 API 呼叫。

我也餵了兩個故意做壞的檔案。金額改成 0.00 的那張被判定無效,只含一段普通文字的 XML 同樣被拒於門外。換句話說,這條本地路徑不是能撈就撈,它有基本的欄位檢查:號碼要落在 8 到 20 位數字、日期要能解析、金額必須大於零,過不了關的檔案會被送去別的路徑處理或列入人工複核。

這個測試有它的邊界:合成檔證明的是「本地解析這條路真的存在、真的能跑」,不是它在真實世界各種版式上的涵蓋率。中國各開票平台產出的 XML 結構有官方規格,我的假檔是照解析器認的欄位造的,等於考卷照著課本出;真實票據的辨識表現,仍要以實際使用為準。

最現實的第一問:你的信箱通不通

答案寫在程式碼裡,比官方文件更硬:整個信箱通道表只有 qq.com 和 163.com 兩個網域。解析信箱位址的邏輯是,網域屬於這兩家就直接對到各自的 IMAP 伺服器,其他任何網域一律回落到 QQ 的伺服器。也就是說,填 Gmail 地址不會得到「不支援」的友善提示,而是被當成 QQ 信箱送去看 imap.qq.com,然後連線失敗。安裝介面的下拉選單也只有這兩個網域可選,填了別的會被直接換成 qq.com。Gmail、Outlook、iCloud 使用者到這裡就可以離開了,這是程式碼層級的邊界,換版本也不會變。

QQ 與 163 信箱要用這類工具,都得先在信箱設定裡開啟 IMAP 服務,取得一組 16 位授權碼,這組碼不等於信箱密碼,是專門給第三方郵件軟體用的。工具連上信箱後以唯讀模式作業,原始碼裡開信箱的呼叫明確帶著唯讀參數,不標記已讀、不搬信、不刪信。如果你要的是把整個信箱長期備份下來,那是另一種需求,可以參考像 Bichon 這類自架的 IMAP 郵件歸檔工具;InvoiceFlowAI 只做單向收取這件事。

它判斷「這封郵件是不是發票信」的關鍵字清單,認的是簡體字串和英文的 receipt、invoice,繁體寫法的「發票」兩個字並不在清單裡。這呼應了整個工具的定位,它是為中國開票生態造的,從信箱、關鍵字到後面會講的開票平台對應,每一層都是。

發票資料會流到哪裡

先講留在本機的部分:收信、下載附件、解壓縮、歸檔改名、產 Excel,整條處理鏈都在你的電腦上跑,原始碼裡沒有任何遙測、統計或回報端點。信箱授權碼的儲存也有做功課,Windows 上用系統的資料保護 API 加密,只能綁在你這個 Windows 帳號下解開,macOS 上則存進鑰匙圈。這兩點我逐一翻過對應的程式碼確認。

唯一會離開電腦的是 AI 辨識這一段,而且邊界比多數同類工具講得清楚。它把發票頁面轉成圖片後,送到開發者文件指定的智譜開放平台做文字辨識與欄位抽取,送出去的內容就只有票面本身,郵件正文、寄件人、其他附件都不隨行;這一點在原始碼的請求組裝處可以直接核對。要注意的是「只有票面」仍然包含賣方名稱、金額、買方統一編號這類欄位,如果你的發票上有客戶或公司機密資訊,這一段就要先過公司對第三方 AI 服務的合規要求,責任在工具的免責聲明裡也明確留給使用者。

為什麼作者敢估 5 塊人民幣的 AI 額度用一年

官方 README 的費用估算寫得很敢:新註冊智譜帳號送 500 萬 tokens,每張發票約消耗 1,000 到 3,000 tokens,每月處理 200 張的話,儲值 5 元人民幣大約可用 12 個月。這是作者宣稱,我沒有實際計費驗證,但讀完原始碼後,這個數字就不像行銷話術了,因為整個架構都在想辦法少叫 AI。

第一道節流在郵件層。信箱裡絕大多數郵件跟發票無關,全部送去辨識既慢又花錢,所以先過四層過濾:寄件網域比對白名單(鐵路 12306、滴滴、高德、萬豪、華住、美團,以及幾家商旅公司),沒中就看主題關鍵字,再看正文關鍵字,最後檢查附件圖片裡有沒有發票 QR Code。四層都沒通過的郵件直接丟掉,根本不會進到辨識流程。附件本身還有一道分級:2 像素見方的追蹤圖、32 像素內的裝飾圖直接丟棄,超過 5MB 的大檔暫存不處理,正常的 PDF 和圖片才進入主流程。

第二道節流在辨識層,這也是我開頭那個測試的意義。進到辨識階段的檔案會先跑一串本地的確定性解析器:XML 直解、信內電子收據、國外格式旅宿單據、中國標準版式的 PDF 文字抽取,能解出來就直接用,一次 AI 都不叫。全部失敗才升級到雲端,先走 OCR 加文字模型的精確路線,再失敗換視覺模型直接看圖。換句話說,AI 在這套設計裡是最後一招,規則能解的票不花錢也不外送,這正是小額額度撐得久的原因。

官方宣傳裡有個「自然語言分類規則」的功能,例如設定「滴滴大於 100 元放進大額資料夾」。讀原始碼會發現它的實作方式很老實:這段文字被原樣附在發給模型的提示詞裡,由模型在抽取欄位時順便判斷分類。這代表規則只對真的走到 AI 那一步的票據生效,被本地路徑解掉的檔案不會經過這套判斷,要自訂分類規則的人值得知道這個差別。

只有連結、沒有附件的發票,它想辦法追回來

中國電子發票有個麻煩之處:很多平台寄來的郵件不附檔,只給一個「查看發票」的網頁連結。只掃附件的工具碰到這種信就漏票了。InvoiceFlowAI 對這類連結做了三級處理:百望雲這類需要登入操作的平台,用它內建的自動化瀏覽器走完登入、點按、攔截下載檔案的流程;稅務平台、諾諾、航信這類能直連的來源,用 HTTP 直接抓檔,原始碼裡寫死了七種平台族的對應規則,連拼多多、京東雲、比亞迪的發票網域都有對應;完全認不出的網頁,就整頁轉存成 A4 版面的 PDF 再進辨識。

這是它相對「只收附件」工具最有企圖心的部分,也是最脆弱的部分。開票平台改版,對應就會失效,作者自己在文件裡也承認不保證所有連結都能還原,建議掃完後檢查有無遺漏。歸檔時它還會做憑證配對,住宿發票和飯店水單、叫車發票和行程明細自動配成一對相鄰命名,這對要拿整套憑證去核銷的人是實際的省事。

裝之前的三個現實

第一個現實是體積。Windows 免安裝版壓縮檔 689MB,安裝版 502MB,macOS 版 365MB,對一個發票工具來說相當大。原因在它的技術選擇:整套用 Python 打包,又內建了自動化瀏覽器元件來處理需要登入的開票平台,等於把一整個執行環境塞進安裝檔。下載前請先確認網路與硬碟空間都到位。

第二個現實是程式未簽署。Windows 第一次執行通常會跳 SmartScreen 警告,macOS 要到系統設定的隱私與安全性裡手動允許開啟。這對個人使用者是幾分鐘的事,但在公司電腦上,資安政策可能直接把未簽署程式擋下來。第三個現實前面講過:AI 辨識要自己去智譜開放平台申請 API 金鑰,軟體本身不代管。

InvoiceFlowAI 桌面版首次啟動的設定畫面,包含信箱授權碼、輸出資料夾、GLM API 金鑰與提取時間範圍Pin
桌面版的啟動設定畫面:信箱授權碼、輸出資料夾、GLM API 金鑰與提取時間範圍(官方 GitHub 截圖)

如果 689MB 讓你猶豫,它還有一條輕量的替代路線:作者另外發布了 DeepSeek Harness 的側邊欄外掛,裝進 DeepSeek Harness 桌面外殼後從側欄叫用,OCR 在本地跑,只把辨識出的文字交給你選的 DeepSeek 模型抽取欄位,和桌面版把票面圖片送智譜的資料流不同。兩條路線授權碼的存放方式也不同,外掛版交給宿主軟體的憑證服務保管。

它明確不做的事

定位上它是「報帳前的整理助理」,不是發票管理系統。發票驗真、重複票據偵測、微信或支付寶票夾匯入,這些功能官方都沒有提供,需要的人得另外找工具搭配。辨識沒把握的檔案也不會被硬塞進結果,而是放進「待人工複核」資料夾,附上原因前綴,這條路徑在歸檔程式碼裡有明確實作,低信心就轉人工,不猜。

免責聲明值得認真看一眼:作者不保證辨識結果的準確性與完整性,也不保證稅務、財務上的合規性,金額、日期、發票號碼這些關鍵欄位在正式報帳前都要人工核對。另一條更根本的邊界是:它處理的是中國電子發票生態的 PDF、OFD 與 XML 格式,台灣的統一發票、載具與雲端發票 App 完全不在它的設計範圍裡。

Apache-2.0 可商用,但整個專案只有一個人

專案採 Apache-2.0 授權,允許商業使用與二次散布,條件是保留版權聲明與作者的 NOTICE 署名檔。整個專案由作者 EthanYoQ 一人開發,2026 年 3 月建立,到 7 月底已經發了六個正式版,最近一次程式碼推送停在 2026 年 8 月 29 日,157 個議題裡只剩 2 個未關,最新的提問是 9 月 1 日有使用者詢問有無 Docker 版,維護節奏相當勤。

不過它的使用者規模還很小,最新版三個安裝包的下載次數加起來兩百多次,星數三百出頭。單人維護加上小眾社群,好處是議題回覆快,風險是巴士係數為一,作者停手就沒有下一版,重要資料流程依賴它的話要有備案心理準備。如果你想要的是更通用的文件辨識基底,OCR Server 這類把手機文字辨識開成區域網路 API 的自架工具是不同路線的選擇;產出的報帳彙總表如果要跟舊表對帳,Diff Excel 這類試算表比對工具可以接著用。

總結我的判斷:每個月要從 QQ 或 163 信箱裡整理一堆中國電子發票的人,這工具把最耗時的下載、命名、抄寫三件事自動掉了,AI 費用可控、資料外送邊界清楚,值得一試;信箱不是這兩家、或手上只有台灣發票的人,它現在幫不上忙,等作者開放通用 IMAP 與繁體關鍵字支援再回來看。

Sliven 褚崇名
Sliven 褚崇名

每日分享科技新知、免費資源以及 WordPress、虛擬主機相關主題,任何問題歡迎在科技月球下方留言,或是發送 Email 至 [email protected] 與我聯繫。

文章: 1065

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *


Share to...