開啟 3 天免費試用
註冊即可免費體驗全部高級功能。
*只限新用戶;每位用戶只可獲得一次試用。


要用 AI 提取發票行項目,先在處理單據之前界定一行輸出的模樣,保留每個原始值和頁面定位,然後以確定性的公式核實金額。AI 可以提出結構化的行;但它絕不應判定缺行、來歷不明的收費、幣種衝突或總額不符是無關痛癢的。
對發票而言,負責任的 AI 流程尤其重要,因為整齊的 JSON 並不能證明單據被正確讀取。把提取、計算和會計審批視為三個獨立的階段。
關鍵要點
- 為每張發票和每條可見的行編配穩定的身份識別和來源定位。
- 原始文字與標準化欄位並列存放;切勿覆寫證據。
- 把數量、單位淨價、折讓、附加費、稅項和捨入分開。
- 在模型以外重算行金額和單據控制總額。
- 把缺失、重複、含糊或不符的紀錄交給人處理。
發票行項目是你的流程打算審批、核對、入帳或提出異議的最小計費單位。它通常是一行可見的產品或服務,但續行、組合描述、貸項行、小計、運費或稅額匯總在頁面上可能看來相似。提取之前先界定粒度,以免模型只為令表格整齊而合併或拆分行。
Peppol 帳單規則區分了單據總額、發票行、折讓、附加費、稅項類別和捨入關係。[1]歐盟委員會把歐洲電子發票標準形容為一個語意資料模型,旨在支援可互通的發票資料。[2]OASIS UBL 同樣為發票行、價格、數量、折讓或附加費、稅項和貨幣總額提供各自的結構。[3]這些是設計欄位時有用的參考,而不是普遍適用的稅務或記帳指引。
為你實際處理的單據集寫一份行政策:
| 頁面物件 | 輸出處理方式 |
|---|---|
| 產品或服務行 | 一條候選行,有自己的行 ID |
| 換行的描述 | 只有在版面位置和覆核都確認時,才併入上一行 |
| 頁首或頁尾 | 作為單據詮釋資料存放,而不是計費行 |
| 折讓或附加費 | 按顯示內容原樣記錄在行級或單據級 |
| 稅額匯總 | 與貨品或服務行分開存放 |
| 小計或應付金額 | 作為控制總額,而不是另一項購買的貨品 |
如果發票是 PDF,先依循 PDF 表格提取流程處理。即使在同一個檔案中,含可選取文字、掃描像素、多張表格或旋轉版面的頁面,亦可能需要不同的提取方法。
為原始檔案編配一個不可更改的匯入 ID,並記錄檔案名稱、接收時間戳、頁數、印在單據上的供應商身份、發票號碼、發票日期、標明的幣種,以及任何已批准的查重鍵。原件留在受管治的來源系統;不要讓 AI 充當檔案庫。
提取各行之前,先從單據記錄可見的控制數,不作任何詮釋:
欄位欠缺時記為 Not shown,而不是零。零是一個財務數值;欠缺是一種證據狀態。如果兩頁標明的幣種或發票號碼不同,便把兩項觀察都保留並開立一項異常,而不是揀選看來較合理的那個。
使用一種能還原提取器看到甚麼、標準化又改了甚麼的結構。實用的最低要求是:
| 欄位 | 用途 |
|---|---|
| 匯入 ID/發票 ID | 把每一行連繫到已凍結的來源 |
| 候選行 ID | 發票內穩定的行身份 |
| 頁面與區域定位 | 頁碼加邊界框、表格/行號或同等位置資料 |
| 原始行文字 | 為覆核而保留的逐字證據 |
| 供應商行號 | 印出的行號,或 Not shown |
| 描述/貨品識別碼 | 文字與識別碼分開,不作猜測 |
| 數量/單位代碼 | 原始值和標準化值 |
| 單位淨價/價格基數 | 價格以及單據所用的任何基數數量 |
| 行級折讓/附加費 | 金額、原因和層級 |
| 稅項類別/稅率 | 嚴格按標明內容;不推斷司法管轄區 |
| 報告的行金額 | 該行印出的金額 |
| 計算的行金額 | 確定性的重新計算結果 |
| 提取可信度 | 分流訊號,絕不是正確性的證據 |
| 異常/覆核人/狀態 | 人手處置和審計軌跡 |
數值欄位要把 raw_value、normalized_value 和 normalization_rule 分開存放。小數分隔符、千位分隔符、括號、後置負號以及因地區而異的幣種寫法,都必須按明確的單據政策解析。提取完成後,可參考表格清理指南,但不要改動來源紀錄。
每次只處理一頁或一個有邊界的表格。要求模型傳回符合結構的行,另加未能對應的文字和結構警告。它不應為令發票平帳而加入一件可能欠缺的產品、從上一行複製數值,或把無法辨認的字元變成一個方便的數字。
只提取這個有邊界的頁面區域中可見的發票行證據。
傳回原始行文字、頁面與區域定位、候選行身份,以及
所要求的欄位。保留標點、正負號、小數分隔符、幣種、
單位和欠缺狀態。不要合併行、推斷稅務處理、修正總額,
或創造數值。把不確定的分段和未對應的文字放入異常。
有用的結構警告包括:跨頁的行、表格內重複出現的標題列、孤立的金額、沒有數字儲存格的描述、遮蓋文字的圖片,以及同一欄位可能對應兩欄。可信度分數可協助排定覆核優先次序,但分數再高也不能取代與來源比對。
只有在保留原始值之後才作標準化。按已記錄的地區和供應商規則,解析正負號、小數符號、分組符號、百分比、單位和幣種代碼。遇到含糊的形式便拒絕,而不是悄悄強制轉換。
例如,1.250,00 在一種慣例下可能代表 1,250.00,而 1.250 在其他地方既可能是分組整數,亦可能是小數。模型無法單憑格式解決這種歧義,需要有佐證的單據詮釋資料或人手確認。
按適用的發票規範和機構政策所要求的精度,以十進制算術處理金額。審批計算不要使用二進制浮點數。不要只因印出的總額有兩位小數,便把每個中間值都捨入;容許捨入的環節必須來自適用的規則和發票背景。
先界定公式,才套用。一條簡化的行金額公式可以是:
計算的行金額 = 數量 × 單位淨價 ÷ 價格基數 − 行級折讓 + 行級附加費
這是一條控制公式,而不是普遍適用的稅務規則。有些單據對價格基數、折扣、附加費、稅項、貸項或捨入的表達方式不同。Peppol 為採用其規範的發票公佈了明確的計算和捨入規則。[1]只有當發票和流程確實屬該規範範圍時,才套用這些規則。
存放所有公式輸入、規則版本、未捨入的結果、捨入操作、計算結果、報告結果和差額。然後按已批准的容差為差額分類。AI 可以解釋是哪項輸入造成差異,但計算應由確定性程式碼或經覆核的試算表完成。
使用資料驗證清單測試必填欄位、數值範圍、正負號慣例、容許的幣種狀態和定位是否完整。
分層計算總額,令差額一直可以診斷:
切勿把不同幣種的金額加成一個數。如果單據除發票幣種外亦使用稅務記帳幣種,便分開存放兩者的角色,只套用獲授權的換算規則。欠缺匯率並不代表可以去取得現時的市場匯率。
對帳表應列出 control name、reported amount、calculated amount、currency、difference、tolerance rule、status 和 reviewer。雙表核對流程有助把提取出的行與採購訂單或總帳匯出資料比較,但單據本身的算術應先獨立通過。
單靠總額無法證明完整。一條欠缺的行和一條重複的等值行可能互相抵銷。把算術檢查與結構檢查結合起來:
不要自動刪除重複項目。兩條相同的服務行可能屬合法,而從重疊頁面區域中被提取兩次的同一行則不是。由來源定位和人手覆核決定如何處置。
建立一個發票異常佇列,包含嚴重程度、發票 ID、候選行 ID、來源定位、原始證據、未通過的規則、計算出的差額、負責人、決定、理由和修訂版本。典型類別包括 unreadable、segmentation conflict、missing line、possible duplicate、currency conflict、formula mismatch、tax review 和 control-total mismatch。
訂立停止規則。例如,當發票身份含糊、幣種衝突、必需的行欠缺定位,或應付金額在已批准規則下無法對平時,阻止入帳。可信度較低的描述或可在不阻斷算術的情況下覆核,但這條界線由政策而非模型訂定。
推出初期,就按風險抽取的樣本逐個欄位、就所有異常,獨立地與來源影像比對。量度欄位層面的準確率、行分段錯誤、欠缺率和重複率、算術不符、按供應商/版面分佈的失誤模式,以及覆核人的更正。單一的單據層面準確率可能掩蓋最關鍵的欄位。
在 OCR、模型、提示、供應商範本或標準化規則改變後重新測試。存放來源、提取器版本、結構版本、計算版本、覆核人決定和更正紀錄。NIST 把虛構內容、私隱、資訊完整性和人機配置列為生成式 AI 的風險範疇。[4]模型接觸之前盡量減少發票資料,並使用已批准的環境。
準確率因版面、掃描質素、語言和欄位而異。使用欄位層面的驗證、確定性的總額計算和基於風險的人手審批;不要把流暢的輸出或某一項基準測試當作入帳的依據。
不應該。除非已批准的結構明確訂明其他角色,否則把可見的小計作為控制總額存放。把它們計作購買項目通常會令金額重複。
使用明確的欠缺狀態,例如 Not shown、Unreadable 或 Not applicable。不要把欠缺轉為零,亦不要複製附近的數值。
它可以轉錄標明的稅率並標示衝突。確定適用的稅務處理,需要相關司法管轄區、交易事實、現行規則,以及合資格的稅務或會計人員審核。
一條欠缺的行和一條重複的行可能互相抵銷,錯誤的數量亦可能被錯誤的價格掩蓋。除總額以外,還要檢查來源涵蓋、行身份和欄位值。
保留印出的正負號和單據角色,然後套用已批准的發票規則。不要只為令控制總額平衡便把正負號反轉。
預設不能。保留每個標明的幣種和單據中的換算證據。把欠缺或不一致的匯率交給獲授權的覆核人。
在模型、OCR、提示、結構、供應商版面或計算方式有重大改變後重新測試,並持續監察更正情況。
免責聲明: 本文提供的是有關單據處理和控制的一般資訊,不構成會計、稅務、法律或審計意見。請套用適用的發票規範,並由合資格的財務和稅務專業人員批准重要的處理和入帳決定。
Sources checked 2026 年 9 月 6 日。
註冊即可免費體驗全部高級功能。
*只限新用戶;每位用戶只可獲得一次試用。