AI PDF 處理標準作業程序 (AI-PDF Processing SOP)
適用場景:處理財報、法律文件、長篇技術手冊、掃描檔或任何頁碼邏輯複雜的 PDF。 核心目的:徹底解決「機器導航」與「人類引用」的座標衝突,並防止因檔案壓縮或非線性讀取導致的幻覺。
任務指令:高精度 PDF 讀取與分析
為了確保讀取的準確性,請嚴格執行本【AI-PDF 處理標準作業程序 (SOP) 】。
強制執行步驟:
  1. 診斷階段 (Diagnosis):在回答任何問題前,先對檔案進行「第四部分:健康度檢查」。請告訴我這份檔案是「原生 PDF」還是「掃描/非標準 PDF」,以及你決定採用的策略。
  1. 座標鎖定 (Mapping):請建立全域索引,告訴我「PDF Index 0」對應的「印刷頁碼 (Printed Page)」是什麼?這將決定你的 Offset 修正邏輯。
  1. 無狀態執行 (Stateless):在後續讀取時,嚴禁使用數學推算頁碼,必須視覺識別每一頁的頁腳。
以下是必須遵守的 SOP 規範:
第一部分:雙重座標導航策略 (Dual-Coordinate Strategy)
核心原則:徹底分離「機器運作」與「人類閱讀」的邏輯層。
1. 定義兩個真相 (Two Truths)
  • 導航唯一真相 (Navigation SSOT) = PDF 工具索引 (Tool Index, $I$)
  • 定義:檔案結構中的絕對序列 ($0, 1, 2, ..., N$)。
  • 用途僅供 AI 內部使用。調用 read_file(page_index=$I$) 或跳轉頁面時的唯一依據。
  • 鐵律:嚴禁直接呈現給終端用戶。
  • 引用唯一真相 (Citation SSOT) = 文件印刷頁碼 (Printed Page, $P$)
  • 定義:頁面角落視覺上呈現的數字字符(如 $1$, $iv$, $A-1$)。
  • 用途僅供人類閱讀。生成報告、註腳、證據列表時的唯一引用依據。
2. 無狀態提取協議 (Stateless Extraction Protocol)
針對隨機存取(Random Access)或分塊處理場景,強制執行以下規則以防止慣性偏移:
  • **禁止推算 (No Calculation)**:嚴禁使用線性公式 $P = I - \text{Offset}$ 推導頁碼(例如:因為封面是 Index 0,所以 Index 40 一定是 Page 38)。
  • **禁止遞歸假設 (No Recursive Assumption)**:嚴禁假設 $P_{current} = P_{prev} + 1$。
  • **獨立視覺驗證 (Independent Visual Verification)**:無論從哪一頁開始讀取,AI 必須重新「看」該頁面的頁眉/頁腳,提取真實字符。若視覺上無頁碼,標記為 No_Num,絕不可自行補號。
第二部分:執行三步走 (The 3-Step Workflow)
Step 1: 建立全域索引 (Global Indexing) ——「雙映射」
在掃描檔案建立索引時,不計算偏移量,而是同時記錄兩組數據。
  • 格式範例Chapter 3: [p.15 (Printed) | Index 18 (Tool)]
  • 指令:掃描全檔或指定範圍,將每一頁的視覺頁碼 $P$ 與工具索引 $I$ 綁定。
Step 2: 讀取與執行 (Execution) ——「無狀態讀取」
AI 在執行具體讀取任務時:
  1. 導航動作:接收指令跳轉至 Index $I$。
  1. 歸零確認:忽略所有前序頁面的歷史上下文,視當前頁為獨立實體。
  1. 視覺錨定
  • 掃描頁面角落,尋找字符 $P$。
  • 比對檢查:若 $P \neq I$,以 $P$ 為準作為引用依據。
  1. 記憶動作:將內容存入記憶體時,標記其引用標籤為 p.15
Step 3: 報告撰寫 (Reporting) ——「引用淨化」
在輸出最終回應時,執行「引用淨化 (Citation Hygiene)」:
  • 過濾:強制剔除所有 Index $I$ 資訊。
  • 輸出:只保留 (Source: Document Name, p.$P$)
第三部分:壓縮與解析策略 (Compression & Extraction)
核心原則:根據檔案屬性動態切換處理模式(Text-First vs. OCR-First)。
1. 字體與文本層檢查 (Font & Text Layer)
  • 檢查點:嘗試選取或提取文字流 (Text Stream)。
  • 異常徵兆
  • **文字轉曲線 (Outlining)**:視覺可見文字,但無法選取(選取到圖塊)。
  • **亂碼熔斷 (Mojibake)**:提取出的文字包含大量空方格 或亂碼,與視覺字形明顯不符(字體編碼表丟失)。
  • 選取率過低:全檔可選文字比例 < 5%。
  • AI 應對策略
  • 立即標記為 「非原生 PDF (Non-Native)」
  • 強制切換至 OCR 模式,完全忽略底層 Text Stream,僅依賴視覺層。
2. 圖像壓縮檢查 (Image Compression)
  • 檢查點:圖像取樣率 (DPI)。
  • 標準:OCR 最佳解析度建議為 300 DPI
  • 異常徵兆
  • **低解析度 (< 150 DPI)**:文字邊緣模糊,易發生字形混淆(如 83)。
  • **高噪點 (JPEG Artifacts)**:文字周圍有雜訊斑點。
  • AI 應對策略
  • 標記 「源檔模糊 (Low Res)」
  • 啟用 「模糊推斷模式」:利用上下文語義修正 OCR 的拼寫錯誤,而非盲信 OCR 結果。
3. 結構與圖層檢查 (Structure & Layers)
  • 檢查點:表單 (Forms)、隱藏圖層 (OCR Layer)。
  • 異常徵兆
  • 隱藏 OCR 層品質差:許多掃描檔自帶透明文字層,但往往對位不準。
  • **未壓平 (Unflattened)**:填寫內容浮於底圖之上,直接讀取可能遺漏。
  • AI 應對策略
  • 視覺優先 (Vision-First):若提取文字與視覺截圖嚴重不符,丟棄原檔文字層,由 AI 重新執行 OCR。
  • 預處理壓平:在讀取前邏輯上將所有圖層合併,確保讀取到「人類所見」的最終狀態。
第四部分:檔案健康度檢查表 (File Health Check)
在處理任何 PDF 之前,AI 應先執行此診斷:
# AI PDF 處理標準作業程序 (AI-PDF Processing SOP) > **適用場景**:處理財報、法律文件、長篇技術手冊、掃描檔或任何頁碼邏輯複雜的 PDF。 > **核心目的**:徹底解決「機器導航」與「人類引用」的座標衝突,並防止因檔案壓縮或非線性讀取導致的幻覺。 --- ## 第一部分:雙重座標導航策略 (Dual-Coordinate Strategy) **核心原則**:徹底分離「機器運作」與「人類閱讀」的邏輯層。 ### 1. 定義兩個真相 (Two Truths) * **導航唯一真相 (Navigation SSOT)** = **PDF 工具索引 (Tool Index, $I$)** * **定義**:檔案結構中的絕對序列 ($0, 1, 2, ..., N$)。 * **用途**:**僅供 AI 內部使用**。調用 `read_file(page_index=$I$)` 或跳轉頁面時的唯一依據。 * **鐵律**:嚴禁直接呈現給終端用戶。 * **引用唯一真相 (Citation SSOT)** = **文件印刷頁碼 (Printed Page, $P$)** * **定義**:頁面角落視覺上呈現的數字字符(如 $1$, $iv$, $A-1$)。 * **用途**:**僅供人類閱讀**。生成報告、註腳、證據列表時的唯一引用依據。 ### 2. 無狀態提取協議 (Stateless Extraction Protocol) 針對隨機存取(Random Access)或分塊處理場景,強制執行以下規則以防止慣性偏移: * **禁止推算 (No Calculation)**:嚴禁使用線性公式 $P = I - \text{Offset}$ 推導頁碼(例如:因為封面是 Index 0,所以 Index 40 一定是 Page 38)。 * **禁止遞歸假設 (No Recursive Assumption)**:嚴禁假設 $P_{current} = P_{prev} + 1$。 * **獨立視覺驗證 (Independent Visual Verification)**:無論從哪一頁開始讀取,AI 必須重新「看」該頁面的頁眉/頁腳,提取真實字符。若視覺上無頁碼,標記為 `No_Num`,絕不可自行補號。 --- ## 第二部分:執行三步走 (The 3-Step Workflow) ### Step 1: 建立全域索引 (Global Indexing) ——「雙映射」 在掃描檔案建立索引時,不計算偏移量,而是同時記錄兩組數據。 * **格式範例**:`Chapter 3: [p.15 (Printed) | Index 18 (Tool)]` * **指令**:掃描全檔或指定範圍,將每一頁的視覺頁碼 $P$ 與工具索引 $I$ 綁定。 ### Step 2: 讀取與執行 (Execution) ——「無狀態讀取」 AI 在執行具體讀取任務時: 1. **導航動作**:接收指令跳轉至 Index $I$。 2. **歸零確認**:忽略所有前序頁面的歷史上下文,視當前頁為獨立實體。 3. **視覺錨定**: * 掃描頁面角落,尋找字符 $P$。 * **比對檢查**:若 $P \neq I$,**以 $P$ 為準**作為引用依據。 4. **記憶動作**:將內容存入記憶體時,標記其引用標籤為 `p.15`。 ### Step 3: 報告撰寫 (Reporting) ——「引用淨化」 在輸出最終回應時,執行「引用淨化 (Citation Hygiene)」: * **過濾**:強制剔除所有 `Index $I$` 資訊。 * **輸出**:只保留 `(Source: Document Name, p.$P$)`。 --- ## 第三部分:壓縮與解析策略 (Compression & Extraction) **核心原則**:根據檔案屬性動態切換處理模式(Text-First vs. OCR-First)。 ### 1. 字體與文本層檢查 (Font & Text Layer) * **檢查點**:嘗試選取或提取文字流 (Text Stream)。 * **異常徵兆**: * **文字轉曲線 (Outlining)**:視覺可見文字,但無法選取(選取到圖塊)。 * **亂碼熔斷 (Mojibake)**:提取出的文字包含大量空方格 `□` 或亂碼,與視覺字形明顯不符(字體編碼表丟失)。 * **選取率過低**:全檔可選文字比例 < 5%。 * **AI 應對策略**: * 立即標記為 **「非原生 PDF (Non-Native)」**。 * **強制切換至 OCR 模式**,完全忽略底層 Text Stream,僅依賴視覺層。 ### 2. 圖像壓縮檢查 (Image Compression) * **檢查點**:圖像取樣率 (DPI)。 * **標準**:OCR 最佳解析度建議為 **300 DPI**。 * **異常徵兆**: * **低解析度 (< 150 DPI)**:文字邊緣模糊,易發生字形混淆(如 `8` 與 `3`)。 * **高噪點 (JPEG Artifacts)**:文字周圍有雜訊斑點。 * **AI 應對策略**: * 標記 **「源檔模糊 (Low Res)」**。 * 啟用 **「模糊推斷模式」**:利用上下文語義修正 OCR 的拼寫錯誤,而非盲信 OCR 結果。 ### 3. 結構與圖層檢查 (Structure & Layers) * **檢查點**:表單 (Forms)、隱藏圖層 (OCR Layer)。 * **異常徵兆**: * **隱藏 OCR 層品質差**:許多掃描檔自帶透明文字層,但往往對位不準。 * **未壓平 (Unflattened)**:填寫內容浮於底圖之上,直接讀取可能遺漏。 * **AI 應對策略**: * **視覺優先 (Vision-First)**:若提取文字與視覺截圖嚴重不符,**丟棄原檔文字層**,由 AI 重新執行 OCR。 * **預處理壓平**:在讀取前邏輯上將所有圖層合併,確保讀取到「人類所見」的最終狀態。 --- ## 第四部分:檔案健康度檢查表 (File Health Check) 在處理任何 PDF 之前,AI 應先執行此診斷: | 檢查維度 | 檢測指標 | 異常判斷 | AI 自動應對策略 (Auto-Fix) | | :--- | :--- | :--- | :--- | | **導航** | $P$ (Printed) vs $I$ (Index) | 數值不一致 (Offset) | 啟用 **雙重座標**:內用 Index 導航,外顯 Page 引用。 | | **解析** | 文字提取品質 | 亂碼 / 空格 / 無法選取 | 放棄 Text Stream,強制啟動 **OCR 引擎**。 | | **品質** | 圖像 DPI | < 150 DPI | 標記 **Low Res**,降低置信度閾值,啟用語義糾錯。 | | **結構** | 向量路徑 | 有形狀無文字層 | 視為 **純圖像** 處理 (Vision/OCR)。 | | **內容** | 隱藏層品質 | $Text_{extracted} \neq Text_{visual}$ | **丟棄原檔 OCR**,重新執行 AI OCR。 | | **完整性** | 線性化 (Linearization) | 讀取時頁數計算錯誤 | 完整下載檔案後再解析,避免依賴 Fast Web View 表頭。 |