LlamaParse + GPT-4oで請求書データ抽出&自動記帳
LlamaParseでPDFを解析し、GPT-4oで厳密な請求書JSONを生成します。結果をGoogle Sheetsへ記録し、原本はGoogle Driveへ保管、Telegramへ通知します。
対象ユーザー
解決できる課題
課題
請求書の手入力は約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秒検索へ。
ワークフロー概要
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の受領と保存
メール添付の取り込みと送信者・時刻の保持に強く、監査に耐える受領記録を作れるため採用。
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の取り違えと手戻りを減らせるため採用。
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準拠の埋め込みと正規化ができるため採用。
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
台帳を“行データ”として扱え、フィルタ/ピボット/監査がアプリ開発なしでできるため採用。
原本PDFの堅牢な保管と共有URLができ、台帳行から監査証跡へ直結できるため採用。
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)を持たせると、照合が確定的になります。
請求書サマリ付きレビュー通知
重いチケッティングを導入せず、最小摩擦で人手承認を差し込めるため採用。
類似ワークフロー
他のツールをお探しですか?これらの代替ワークフローをご覧ください。
ニュースソースを継続的にAIニュース動画へ変換し、複数チャネルへ配信するための方法です。GPT-4oでキャプションを作成し、HeyGenでアバター動画を生成し、PostizでInstagram・Facebook・YouTubeへ一括配信します。
1つのBriefから媒体別投稿を作成し、GPT-4oとGeminiで最適化します。Gmailで二重承認し、Bufferで配信予約、Telegramでステータス共有します。
「独りメディア工場」は、クリエイティブなアイデアを数時間で 4K 実写級動画に変換するコンテンツ制作ワークフローです。GPT-4o、Sora、ElevenLabs を連携させることで、高価な撮影機材なしで映画のような動画制作を自動化し、クリエイターの生産性を 90% 向上させます。
よくある質問
請求書・領収書・明細に最適で、表や複数カラムの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→台帳記録→原本リンク」を維持します。