Agentive
自動化ラボ

AIでレシート管理を自動化 — 撮影→OCR→家計簿

約5分で読めます

AIでレシート管理を自動化 — 撮影→OCR→家計簿

レシートをスマホで撮影するだけで、品目・金額・日付を自動抽出し、CSVで家計簿に反映するパイプラインを構築する。

全体のパイプライン

撮影 → 画像アップロード → Claude Vision で解析 → JSON抽出 → CSV追記 → 月次集計

Step 1: 画像からデータを抽出する

Claude Visionはレシート画像を直接読み取れる。OCRツールを別途用意する必要がない。

import anthropic, base64, json

def extract_receipt(image_path: str) -> dict:
    client = anthropic.Anthropic()
    with open(image_path, "rb") as f:
        image_data = base64.standard_b64encode(f.read()).decode("utf-8")

    response = client.messages.create(
        model="claude-sonnet-4-20250514",
        max_tokens=1024,
        messages=[{
            "role": "user",
            "content": [
                {"type": "image", "source": {
                    "type": "base64",
                    "media_type": "image/jpeg",
                    "data": image_data
                }},
                {"type": "text", "text":
                    "このレシートから以下をJSON形式で抽出せよ: "
                    "store(店名), date(YYYY-MM-DD), items(品目と金額の配列), "
                    "total(合計金額), category(食費/日用品/交通費/その他)"
                }
            ]
        }]
    )
    return json.loads(response.content[0].text)

Step 2: CSVに追記する

import csv

def append_to_csv(data: dict, csv_path: str = "expenses.csv"):
    with open(csv_path, "a", newline="", encoding="utf-8") as f:
        writer = csv.writer(f)
        for item in data["items"]:
            writer.writerow([
                data["date"], data["store"],
                item["name"], item["price"], data["category"]
            ])

Step 3: 月次集計

import pandas as pd

def monthly_summary(csv_path: str = "expenses.csv"):
    df = pd.read_csv(csv_path, names=["date","store","item","price","category"])
    df["month"] = pd.to_datetime(df["date"]).dt.to_period("M")
    return df.groupby(["month", "category"])["price"].sum()

精度を上げるコツ

  • 画像は正面から撮る — 斜めだと文字認識精度が落ちる
  • レシート全体を写す — 合計金額が切れると検証できない
  • 抽出結果をクロスチェック — items合計とtotalの一致を自動検証する

対応可能なレシートの種類

種類精度備考
コンビニ・スーパー95%以上フォーマットが統一されており高精度
飲食店90%程度手書きメモが混在する場合あり
交通系ICカード明細85%程度小さい文字が多く解像度依存

まとめ

Claude Visionを使えば、専用OCRサービスなしでレシート管理を完全自動化できる。撮影→JSON抽出→CSV追記の3ステップで、手入力ゼロの家計簿が実現する。

関連記事

A

Agentive 編集部

AIエージェントを実際に使い倒す個人開発者。サイト制作の自動化を実践しながら、その知見を発信しています。