ふくふくHukuhuku Inc.
EP.09RAG 11分公開: 2026-05-10

マルチモーダルRAG:PDF・画像・動画を扱う

テキストだけでなく、図表・画像・動画を含む文書から RAG する実装パターン。claude / GPT-4o の Vision を活用、3 アプローチの使い分け。

#マルチモーダル#Vision#PDF
CO📔 Google Colab で開く(上から順にセルを実行)
シェア

実務文書は テキストだけでなく、図表・スクリーンショット・グラフ・写真が多く含まれます。「製品マニュアル」「決算スライド」「設計図面」── これらを で扱うには、Vision 対応の を使った特殊な処理が必要です。本記事では 3 つのアプローチと、コスト・精度のトレードオフを共有します。

なぜテキスト抽出だけだと落ちるのか

  • 図表が「画像」で埋め込まれている PDF では数字や凡例が拾えない
  • スクリーンショット中心の文書:UI 画面のキャプチャは Vision で初めて意味を持つ
  • グラフ・チャート:「売上が上がった」と書くにはグラフの形を読む必要
  • 手書きメモ・図面:CAD 図、技術図面は Vision 必須

処理の 3 アプローチ

PDF / 画像文書を扱う手法比較
手法適用精度コスト実装難度
テキスト抽出のみ(pdfplumber 等)テキスト主体 PDF
ページごと画像化 + Vision図表多め(決算 / 設計図)中〜高
ハイブリッド(OCR + Vision)テキスト/画像混在

アプローチ ②:ページごと画像化 + Vision の実装

PDF を 1 ページ画像化して Claude Vision で扱う
Python
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. 1レイアウト解析:unstructured / Layout Parser でページを「テキスト / 表 / 画像」のブロックに分解
  2. 2ブロック別処理:テキストブロックは文字認識、表は OCR + 構造化、画像/グラフは Vision
  3. 3統合:1 ページの説明として、ブロックごとの結果を結合してチャンクに
  4. 4:通常 RAG と同じく検索可能に

コスト感(1 ページあたり)

手法1 ページのコスト1000 ページの月コスト
テキスト抽出ほぼ 0数十円
Vision( Sonnet)$0.01〜0.03$10〜30 = 1500〜4500 円
ハイブリッド$0.005〜0.015$5〜15 = 750〜2250 円
事前処理 vs クエリ時処理

Vision 解析は事前バッチでやるのが鉄則。クエリのたびに Vision を呼ぶと遅い・高い。取り込み時に1回だけ Vision で説明テキスト化 → 以降は通常テキスト RAGで 100 倍速。

動画 RAG の現実

動画は 「フレーム抽出 + 音声書き起こし + Vision 説明」の組み合わせで処理。会議録画・教育動画で需要があるが、現状コストが膨大(1 時間動画で $5〜20)。音声書き起こし(Whisper)+ シーン切り替えの代表フレームで実装するハイブリッドが現実解。

ふくふくの進め方

社内の決算スライド・設計図・マニュアル PDF を RAG に取り込みたい」というご相談には、文書の特性分析(1 週間)→ 適切なアプローチ選定 → バッチ処理パイプライン構築を 1〜2 ヶ月で。コスト試算もセットで提供します。

次回予告

EP.10 は評価の自動化。LLM を評価者に使う罠と、それでも使うべき理由を扱います。

シェア

この記事の感想を教えてください

あなたの 1 クリックで、本当にこの記事は更新されます。「もっと詳しく」「続編希望」が一定数集まった記事は、 ふくふくが 実際に内容を拡充したり続編記事を公開 します。 送信したリアクションはお使いのブラウザに記録され、再カウントされません。

シリーズの外も探す:

まずは、現状を聞かせてください。

要件が固まっていなくて大丈夫です。現状診断と方針提案までを無料でお手伝いします。

無料相談フォームへ hello [at] hukuhuku [dot] co [dot] jp