完全LLMに任せない“堅牢アーキテクチャ”が鍵
AI-OCRは万能ではありません。実務レベルの精度と可用性を両立するには、 OCR → 正規化 → ルールエンジン → LLM補完 → 人手検証の段階分離が安定します。
関連リンク:
AI-OCRとは?仕組みと主要ツール比較
処理パイプライン
- 画像前処理:傾き補正・二値化・ノイズ除去(OpenCV)。
- OCR:日付・金額・店舗名・税率ごとにフィールド抽出(Vision API / Tesseract+学習)。
- 正規化:全角半角/通貨/税計算の検算。閾値を満たさない場合は保留。
- ルールエンジン:仕訳推定(勘定科目・税区分)をドメインルールで確定。
- LLM補完:不明店舗の業種推定、メモ自動生成、曖昧ケースの候補提示。
- ヒューマン・イン・ザ・ループ:UIで差分確認→承認→学習データ化。
ルール優先、LLMは“ギャップ埋め”に限定
税区分や端数処理はルールで確定させ、LLMは不確実な部分の補助に徹します。
スキーマ例とトレーサビリティ
-- PostgreSQL (simplified)
CREATE TABLE receipts (
id BIGSERIAL PRIMARY KEY,
tenant_id TEXT NOT NULL,
uploaded_at TIMESTAMP NOT NULL,
image_url TEXT NOT NULL,
pay_date DATE, amount NUMERIC(12,2), tax_rate NUMERIC(4,2),
vendor TEXT, category TEXT, tax_code TEXT,
ocr_confidence NUMERIC(5,2),
status TEXT CHECK (status IN ('pending','needs_review','posted')),
trace_id TEXT -- 処理全体のトレース
);
CREATE TABLE audit_logs (
id BIGSERIAL PRIMARY KEY,
receipt_id BIGINT REFERENCES receipts(id),
stage TEXT, -- ocr|normalize|rule|llm|human
payload JSONB, created_at TIMESTAMP DEFAULT now()
);
各ステージを監査ログに残すことで、出力の説明可能性と再現性を担保します。
品質管理:サンプリングと再学習
- 低信頼/高金額のサンプルを優先検証(リスクベース)
- 否認データをハード・ネガティブとして再学習
- 月次で科目・税区分のドリフトをチェック
現場で回る自動化はルール×AI×人の適切な分業から。精度だけでなく、説明責任と運用のしやすさを設計しましょう。
コメント