確定性差異迴歸探針
HPDFCompareRegressionResultsDeterministic 在選定的範疇上反覆執行兩個引擎配接器、拒絕不穩定或失敗的執行,並記錄一份有序且機器可讀的結果
API
function HPDFCompareRegressionResultsDeterministic(
const Input: TBytes;
Domains: THPDFRegressionDomains;
const LeftProbe, RightProbe: THPDFRegressionProbe;
const Options: THPDFDifferentialProbeOptions;
out AInfo: THPDFDifferentialRegressionInfo): Boolean;
function HPDFProbeHotPDFDocument(
Domain: THPDFRegressionDomain;
const Input: TBytes): AnsiString;
function HPDFDifferentialRegressionInfoToJSON(
const AInfo: THPDFDifferentialRegressionInfo): AnsiString;
範疇
| 範疇 | 內建 HotPDF 特徵碼 |
|---|---|
rgdParser | 頁面、物件、版本、註解、字型、影像、表單、簽章、加密、AcroForm 與結構摘要 |
rgdRenderer | 在固定 DPI 下由上而下的 BGR 像素 SHA-256,排除 alpha 與掃描列填充 |
rgdText | 經 CRLF 與 CR 正規化後、以頁面分隔的 UTF-8 SHA-256 |
rgdSave | 以確定性字典順序產生之有界輸出的 SHA-256 與位元組長度 |
舊版的 rgdSignature 與 rgdConformance 值仍然可用,既有的探針配接器因此保留其序數值與原始碼相容性
HPDFRegressionDomainName(Domain) 回傳單一 THPDFRegressionDomain 值的穩定小寫名稱,例如 parser 或 renderer,供日誌與報告欄位使用
穩定性契約
HPDFDefaultDifferentialProbeOptions 選擇三次執行、256 MiB 輸入上限與穩定的後備引擎名稱
RepeatCount 接受 2 到 64 次執行;同一個引擎內的特徵碼出現變化時,該範疇就會被標記為不穩定,即使它的第一個特徵碼與另一個引擎相符也一樣
探針例外會轉換成含有例外類別與訊息 SHA-256 的穩定錯誤特徵碼,而任何錯誤都會讓該範疇以 fail-closed 方式判定為不一致
相同的不可變輸入會以固定的範疇與引擎順序提供,且每個選定範疇在 JSON 報告中恰好出現一次
內建上限
可設定的 HPDFProbeHotPDFDocument 多載接受轉譯 DPI、最大頁數與最大輸出位元組數
轉譯特徵碼排除 alpha 與列填充,文字特徵碼會正規化換行表示法,儲存輸出在雜湊前先經過有界串流
報告
THPDFDifferentialRegressionInfo 帶有已比較與存在差異的範疇集合、左右特徵碼、不穩定集合、錯誤集合、引擎名稱、重複次數與輸入 SHA-256
HPDFDifferentialRegressionInfoToJSON 輸出固定的 hotpdf.differential.v1 結構,欄位與範疇順序穩定,適合 CI、語料庫分類與稽核儲存
相容性輔助
HPDFCompareRegressionResults 保留原本單次執行的回呼行為,供已自行在外部穩定特徵碼的呼叫端使用