テキスト専用ローカルLLM用の2段構成OCR(OCRエンジン→LLM構造化) #13

Closed
opened 2026-09-27 10:40:40 +00:00 by joe · 1 comment
Owner

背景

qwen3.6-35bやornith1.5-35bなど、手持ちのテキスト専用ローカルモデルは画像を直接扱えないため現在のOCRプロバイダには使えない(vision対応モデルのみ対応)。

提案

2段構成でテキスト専用モデルを活かす:

  1. OCRエンジン(Tesseract / PaddleOCR等)で画像→テキスト化
  2. テキスト専用LLM(カスタムプロバイダのOpenAI互換エンドポイント)でテキスト→JSON構造化(店名・日付・金額・明細)

検討事項

  • OCRエンジンの選定: Tesseractは日本語対応あり(縦書き領収書は弱い)。PaddleOCRはレシート向きだが依存が重い
  • プロンプトを「画像抽出」ではなく「OCRテキストの構造化」に切り替える必要あり
  • 精度はvisionモデル直下より落ちる見込み(手書き・レイアウト依存)
  • カスタムプロバイダの設定に mode: vision|text を持たせて切替える案

優先度は低〜中。vision対応ローカルモデル(qwen3-vl、gemma3等)が使えるならそちらが先。

## 背景 qwen3.6-35bやornith1.5-35bなど、手持ちのテキスト専用ローカルモデルは画像を直接扱えないため現在のOCRプロバイダには使えない(vision対応モデルのみ対応)。 ## 提案 2段構成でテキスト専用モデルを活かす: 1. **OCRエンジン**(Tesseract / PaddleOCR等)で画像→テキスト化 2. **テキスト専用LLM**(カスタムプロバイダのOpenAI互換エンドポイント)でテキスト→JSON構造化(店名・日付・金額・明細) ## 検討事項 - OCRエンジンの選定: Tesseractは日本語対応あり(縦書き領収書は弱い)。PaddleOCRはレシート向きだが依存が重い - プロンプトを「画像抽出」ではなく「OCRテキストの構造化」に切り替える必要あり - 精度はvisionモデル直下より落ちる見込み(手書き・レイアウト依存) - カスタムプロバイダの設定に `mode: vision|text` を持たせて切替える案 優先度は低〜中。vision対応ローカルモデル(qwen3-vl、gemma3等)が使えるならそちらが先。
Author
Owner

実装しました。mainにマージ済み(コミット 0b25378)。

仕様

  • 設定画面のカスタムプロバイダに「モード」列を追加:
    • 画像直接(vision) — 従来どおり画像をそのままLLMへ(vision対応モデル向け)
    • テキストLLM(2段OCR) — ローカルのtesseractで画像→テキスト化し、そのテキストのみをLLMへ送って構造化。テキスト専用モデル(qwen系・ornith系35B等)が使えます
  • フェイルオーバー・プロバイダ個別指定はそのまま機能
  • 領収書・見積書の両方に対応(テキストモード専用プロンプトを用意)

前提(tesseract要インストール)

サーバ側で以下を実行してください:

sudo apt install tesseract-ocr tesseract-ocr-jpn

未インストールの場合はOCR失敗としてフォールバックします。

テスト63件パス。

実装しました。`main`にマージ済み(コミット 0b25378)。 ## 仕様 - 設定画面のカスタムプロバイダに「モード」列を追加: - **画像直接(vision)** — 従来どおり画像をそのままLLMへ(vision対応モデル向け) - **テキストLLM(2段OCR)** — ローカルのtesseractで画像→テキスト化し、そのテキストのみをLLMへ送って構造化。テキスト専用モデル(qwen系・ornith系35B等)が使えます - フェイルオーバー・プロバイダ個別指定はそのまま機能 - 領収書・見積書の両方に対応(テキストモード専用プロンプトを用意) ## 前提(tesseract要インストール) サーバ側で以下を実行してください: ``` sudo apt install tesseract-ocr tesseract-ocr-jpn ``` 未インストールの場合はOCR失敗としてフォールバックします。 テスト63件パス。
joe closed this issue 2026-09-27 10:47:43 +00:00
Sign in to join this conversation.
No labels
bug
cleanup
enhancement
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
joe/sougi#13
No description provided.