実務文書は テキストだけでなく、図表・スクリーンショット・グラフ・写真が多く含まれます。「製品マニュアル」「決算スライド」「設計図面」── これらを で扱うには、Vision 対応の を使った特殊な処理が必要です。本記事では 3 つのアプローチと、コスト・精度のトレードオフを共有します。
なぜテキスト抽出だけだと落ちるのか
- 図表が「画像」で埋め込まれている PDF: では数字や凡例が拾えない
- スクリーンショット中心の文書:UI 画面のキャプチャは Vision で初めて意味を持つ
- グラフ・チャート:「売上が上がった」と書くにはグラフの形を読む必要
- 手書きメモ・図面:CAD 図、技術図面は Vision 必須
処理の 3 アプローチ
| 手法 | 適用 | 精度 | コスト | 実装難度 |
|---|---|---|---|---|
| テキスト抽出のみ(pdfplumber 等) | テキスト主体 PDF | 中 | 低 | 低 |
| ページごと画像化 + Vision | 図表多め(決算 / 設計図) | 高 | 中〜高 | 中 |
| ハイブリッド(OCR + Vision) | テキスト/画像混在 | 高 | 中 | 高 |
アプローチ ②:ページごと画像化 + Vision の実装
from pdf2image import convert_from_pathimport anthropicimport base64
# 1. PDF を 1 ページずつ画像化pages = convert_from_path("report.pdf", dpi=150)
# 2. 各ページを Claude Vision で説明テキスト化client = anthropic.Anthropic()descriptions = []for i, page in enumerate(pages): # 画像を base64 に import io buf = io.BytesIO() page.save(buf, format="PNG") img_b64 = base64.standard_b64encode(buf.getvalue()).decode()
msg = client.messages.create( model="claude-sonnet-4-6", max_tokens=1500, messages=[{ "role": "user", "content": [ {"type": "image", "source": {"type": "base64", "media_type": "image/png", "data": img_b64}}, {"type": "text", "text": "この決算スライドの内容を、図表の数値も含めて日本語で要約してください。グラフは「○年から○年で△→△に推移」のように具体的な数値で。"} ] }] ) descriptions.append({"page": i+1, "text": msg.content[0].text})
# 3. 説明テキストを Embedding して通常 RAG に乗せる# vectorstore.add_documents([{"page": d["page"], "text": d["text"]} for d in descriptions])アプローチ ③:ハイブリッドの設計
「ページの中にテキストが多い場所と図表の場所がある」ような複雑文書は、ページ単位ではなくブロック単位で処理を切り替えます。
- 1レイアウト解析:unstructured / Layout Parser でページを「テキスト / 表 / 画像」のブロックに分解
- 2ブロック別処理:テキストブロックは文字認識、表は OCR + 構造化、画像/グラフは Vision
- 3統合:1 ページの説明として、ブロックごとの結果を結合してチャンクに
- 4:通常 RAG と同じく検索可能に
コスト感(1 ページあたり)
| 手法 | 1 ページのコスト | 1000 ページの月コスト |
|---|---|---|
| テキスト抽出 | ほぼ 0 | 数十円 |
| Vision( Sonnet) | $0.01〜0.03 | $10〜30 = 1500〜4500 円 |
| ハイブリッド | $0.005〜0.015 | $5〜15 = 750〜2250 円 |
Vision 解析は事前バッチでやるのが鉄則。クエリのたびに Vision を呼ぶと遅い・高い。取り込み時に1回だけ Vision で説明テキスト化 → 以降は通常テキスト RAGで 100 倍速。
動画 RAG の現実
動画は 「フレーム抽出 + 音声書き起こし + Vision 説明」の組み合わせで処理。会議録画・教育動画で需要があるが、現状コストが膨大(1 時間動画で $5〜20)。音声書き起こし(Whisper)+ シーン切り替えの代表フレームで実装するハイブリッドが現実解。
ふくふくの進め方
「社内の決算スライド・設計図・マニュアル PDF を RAG に取り込みたい」というご相談には、文書の特性分析(1 週間)→ 適切なアプローチ選定 → バッチ処理パイプライン構築を 1〜2 ヶ月で。コスト試算もセットで提供します。
次回予告
EP.10 は評価の自動化。LLM を評価者に使う罠と、それでも使うべき理由を扱います。
この記事の感想を教えてください
あなたの 1 クリックで、本当にこの記事は更新されます。「もっと詳しく」「続編希望」が一定数集まった記事は、 ふくふくが 実際に内容を拡充したり続編記事を公開 します。 送信したリアクションはお使いのブラウザに記録され、再カウントされません。