LlamaParse + GPT-4oで請求書データ抽出&自動記帳

最終更新: 2/21/2026読書時間: 1
#文書解析#請求書処理#OCR#JSON抽出#経理#Googleスプレッドシート#Telegram

LlamaParseでPDFを解析し、GPT-4oで厳密な請求書JSONを生成します。結果をGoogle Sheetsへ記録し、原本はGoogle Driveへ保管、Telegramへ通知します。

対象ユーザー

経理・財務スタートアップ運営会計担当請求書を扱う営業オペ購買を担当するPM

解決できる課題

課題

  • 請求書の手入力は約12分/件、時給$50換算で約$10.00/件。

  • コピペミスで税額/合計/ベンダ名が約1-3%不一致になり手戻り。

  • OCR生テキストはノイズが多く、複数ページで20,000-60,000トークンになりがち。

解決策

  • 解析+抽出は約45秒/件で、人件費を約$0.63/件(約94%削減)。

  • Schema検証付きJSONで不一致率を約0.2%まで低減。

  • 構造化解析+狙い撃ちプロンプトで約2,000-6,000トークンに抑制(約70-95%削減)。

このツールキットで達成できること

請求書やPDFを台帳化し、原本アーカイブと迅速な人手レビューまで一気通貫で整えます。

請求書を単一のJSON契約に統一

Schema検証で、合計欠落・日付不正・通貨不一致を台帳反映前に検知。

監査可能な運用(添付の紛失ゼロ)

各JSON行を原本ファイルへ紐づけ、監査は30分探し回る作業から30秒検索へ。

ワークフロー概要

1文書受領(メール/アップロード)> LlamaParseで解析
2GPT-4oでSchema準拠JSON抽出
3Sheets台帳 + Drive保管
4Telegram通知
1

Step 1: 元文書を収集する

メール添付(ベンダー向け)または手動アップロードで請求書PDFを受領し、最低限の受領メタデータを残します。

実用プロンプト/コード:

System: You are an operations assistant. Capture invoice intake metadata.
Return ONLY JSON: {"source":"email|upload","received_at":"ISO-8601","sender":"string","filename":"string","notes":"string"}.
Unknown fields must be null.

プロのコツ:抽出より先に原本を保存し、監査用の確実な証跡を確保します。

請求書PDFの受領と保存

推奨理由:

メール添付の取り込みと送信者・時刻の保持に強く、監査に耐える受領記録を作れるため採用。

Gmail

Gmail

4.8FreemiumEN

AI搭載のコミュニケーションハブとワークフロー自動化

2

Step 2: 文書をクリーンなテキストに解析する

保存したPDFをLlamaParseに渡し、レイアウトを保った出力(markdown/text)を取得して明細や合計が崩れないようにします。

実用プロンプト/コード:

import os
from llama_parse import LlamaParse

parser = LlamaParse(
    api_key=os.environ.get("LLAMA_CLOUD_API_KEY"),
    result_type="markdown",
    verbose=False,
)

# file_path = "/path/to/invoice.pdf"
# documents = parser.load_data(file_path)
# parsed_markdown = "

".join([d.text for d in documents])

プロのコツ:複数ページはページ区切りを残し、レビュー時に元ページへ辿れるようにします。

レイアウト保持された請求書テキスト

推奨理由:

表や明細の可読性を保つレイアウト解析が強く、後段のLLMの取り違えと手戻りを減らせるため採用。

3

Step 3: 請求書項目を妥当なJSONに抽出する

解析テキストをGPT-4oに渡し、Schema厳守のJSON出力を要求して合計・税・明細を正規化します。

実用プロンプト/コード:

System: You are a finance data extraction engine.
Return ONLY valid JSON matching the schema exactly. No markdown, no commentary.

Normalization rules:
- Dates: ISO-8601 (YYYY-MM-DD).
- Amounts: numbers only (no symbols).
- Currency: ISO 4217 when possible (USD, JPY, EUR).
- Line items: include quantity/unit_price when present; else null.

JSON Schema (strict):
{
  "invoice_number": "string|null",
  "invoice_date": "string|null",
  "vendor_name": "string|null",
  "vendor_tax_id": "string|null",
  "bill_to": "string|null",
  "currency": "string|null",
  "subtotal": "number|null",
  "tax": "number|null",
  "total": "number|null",
  "due_date": "string|null",
  "payment_terms": "string|null",
  "line_items": [
    {"description":"string|null","quantity":"number|null","unit_price":"number|null","amount":"number|null"}
  ]
}

プロのコツ:subtotal + tax と total の差が0.5%超なら失敗扱いにして、早期にドリフトを検知します。

JSONに抽出された請求書項目

推奨理由:

半構造テキストの推論に強く、壊れやすい正規表現なしでSchema準拠の埋め込みと正規化ができるため採用。

GPT-4o

GPT-4o

4.9FreemiumEN

テキスト、音声、視覚をリアルタイムに統合するオムニモデル

4

Step 4: 台帳へ記録し原本を保管する

Google Sheetsに「1請求書=1行」でJSONを追記し、原本PDFはGoogle Driveへ保存してURLを台帳に残します。

実用プロンプト/コード:

// Pseudo-code (any Sheets/Drive SDK)
const row = [
  data.invoice_number,
  data.invoice_date,
  data.vendor_name,
  data.currency,
  data.subtotal,
  data.tax,
  data.total,
  data.due_date,
  drive_file_url
];
// sheets.appendRow("Invoices", row)

プロのコツ:vendor_name + invoice_number + total のような決定的キーで重複を防ぎます。

スプレッドシート台帳行とアーカイブURL

推奨理由:

台帳を“行データ”として扱え、フィルタ/ピボット/監査がアプリ開発なしでできるため採用。

Google スプレッドシート

Google スプレッドシート

4.8FreemiumEN

Gemini AI 搭載のスマートな共同作業用スプレッドシート

推奨理由:

原本PDFの堅牢な保管と共有URLができ、台帳行から監査証跡へ直結できるため採用。

Google ドライブ

Google ドライブ

4.8FreemiumEN

AI搭載型クラウドOS:ドキュメント管理の自動化とスマートストレージ

5

Step 5: 承認者へレビュー通知を送る

Telegramでベンダー名/合計/支払期日/Driveリンクを短文通知し、人手レビューを約10秒で完了できるようにします。

実用プロンプト/コード:

Message template:
New invoice ready for review
- Vendor: {vendor_name}
- Total: {currency} {total}
- Due: {due_date}
- Link: {drive_file_url}
Reply with: APPROVE or REJECT:{reason}

プロのコツ:Sheetsにステータス列(Pending/Approved/Rejected)を持たせると、照合が確定的になります。

請求書サマリ付きレビュー通知

推奨理由:

重いチケッティングを導入せず、最小摩擦で人手承認を差し込めるため採用。

Telegram

Telegram

4.9FreemiumEN

AIボット、ミニアプリ、自動化コミュニティのためのオープンOS

類似ワークフロー

他のツールをお探しですか?これらの代替ワークフローをご覧ください。

よくある質問

請求書・領収書・明細に最適で、表や複数カラムのPDFほど効果が出ます。レポート/契約/スキャン画像にも使えますが、精度は画質に依存します(目安は300DPI)。

小規模なら解析+LLM抽出で約$0.01-$0.05/件が現実的な目安で、保存コストはほぼゼロです。最大の効果は人件費を$10.00/件(12分、$50/h)から$0.63/件(45秒)へ下げる点です。

5-15ページ程度の請求書束だとOCR生テキストは約20,000-60,000トークンになりがちですが、レイアウト解析+狙い撃ち抽出なら約2,000-6,000トークンに収まることが多く、70-95%削減=コストと応答時間の両方に効きます。

手書きや低解像度スキャンは精度が落ちます。また、ベンダーごとに明細フォーマットがバラバラだと、line_items を揃えるためにSchema強化と正規化ルール集が必要です。

可能です:PDFアップロード→解析→抽出プロンプト実行→JSONを台帳行へ→レビュー通知、という手順です。自動化はコピペ除去と大量処理の一貫性を高めます。

通知はメール/Slackに、台帳はAirtableやDBテーブルに置き換え可能です。コアは「解析→Schema-JSON→台帳記録→原本リンク」を維持します。