「投げて放置」で勝手に片付く!
Automationsを使った自動OCR→フォルダ仕分けの仕組みと全貌
〜必要な機能、命名規則と仕分け仕様、Sidecar定期実行手順から本音の運用感想まで徹底解説〜
どうも、ぽトル(Pottle)です。
前回は日本語特化Document AI「YomiToku」の基本機能を紹介しましたが、今回はその一歩先です。
「Antigravity Automations(定期実行サイドカー)」を組み合わせて、Googleドライブの未整理フォルダに入った書類を全自動で解析・命名・仕分け・クリーンアップする仕組みを構築しました!
- スマホやPCから「90_未整理ファイル」フォルダに適当に放り込むだけ
- 毎日正午(cronスケジュール)に自律エージェントが自動起動
- PDFの1ページ目を日本語OCR解析し、日付と書類種別(給与、賞与、医療、年金、カード明細など)を特定
- 「202610_給与明細_本人.pdf」のように分かりやすい名前にリネーム
- 「01_家計」「02_医療」「04_保険税金」などの所定フォルダへ自動移動し、空の元フォルダはゴミ箱へ撤去
本記事では、この自動化を実現するために「どんな機能が必要だったのか」「どういう判定仕様にしたのか」「具体的な導入・適用手順」、そして「実際に毎日動かしてみて感じた本音の感想」を包み隠さずまとめました。
1. 全体の仕組み(アーキテクチャ)
全体構成は、「クラウドストレージ(Google Drive)」「定期自律エージェント(Antigravity Automations)」「日本語解析エンジン(YomiToku)」「操作実行スクリプト(sorter.py)」の4層で連携しています。
CRON_TZ=Asia/Tokyo 0 12 * * *(毎日正午12時)に自動起動。バックグラウンドで新しいエージェントセッションを開始し、タスクを指示します。
「90_未整理ファイル」フォルダを走査。投入されたPDFファイルや、ZIP解凍後の一時フォルダ内の全ファイルをリストアップし、ローカル作業領域に一時ダウンロードします。
PDFの1ページ目を画像化し、文字認識・表構造認識を実行。Markdown形式のテキストに変換して、文書内に含まれる「年月」「組織名」「書類タイトル」「個人名」を高速抽出します。
ルールエンジンで生成した新ファイル名へ更新し、該当する家庭機能フォルダへ移動(親フォルダ付け替え)。空になった一時フォルダは自動でゴミ箱へ移動して整理を完了します。
2. 自動化に必要だった5つの重要機能
単なる「PDF名のリネーム」ではなく、家庭で破綻なく運用するためには以下の5つの機能が不可欠でした。
① 階層型スキャン&一時フォルダ回収機能
ユーザーはファイルを直接ドライブ直下に置くだけでなく、「ZIPを展開したフォルダごと放り込む」ケースが多々あります。直下のファイルだけでなく、子フォルダの中身も再帰的に検知し、処理後に空フォルダをゴミ箱へ片付ける機能が必要です。
② 日本の帳票に強いローカルOCR(YomiToku)
海外製OCRでは、給与明細の細かい表組みや、縦書きの年金通知書、傾いた領収書で文字化けが発生します。ローカルで動作するYomiTokuを使うことで、API費用をかけずに高精度な日本語テキストが得られます。
③ 日付の正規化抽出(西暦・和暦・短縮表記対応)
書類によって「2026年4月」「2026-04-15」「2604」「2411」など日付の書き方がバラバラです。正規表現を用いて一律YYYYMMまたはYYYYMMDDの命名フォーマットに揃えます。
④ ドメイン分類ルール(人物判定・書類種別判定)
同じ給与明細でも「夫」と「妻」で保存先フォルダが分かれます。本文中の氏名やキーワードから「誰の給与か」「通常給与か賞与か」を識別し、的確なサブフォルダIDへ振り分けます。
⑤ 最小権限設定(Sidecar permissions)
バックグラウンドで無人実行されるため、アクセス権限は必要最小限のコマンド(python3, node)とトークン・スクリプトパスに限定し、安全性を確保します。
3. 仕分けルールと命名規則の仕様
我が家の生活・家計構造に基づき、以下のようにルールを設計・実装しています。
4. 実際の適用手順(セットアップの流れ)
ステップ①:仕分け処理スクリプト(sorter.py)の準備
YomiTokuでPDFの1ページ目を読み、テキストを正規表現で判定してDrive上の親フォルダを付け替えるスクリプトです。外部APIを使わないため完全無料で運用できます。
環境構築手順:
仕分けルール判定スクリプトのコアコード(sorter.py):
ステップ②:Automations(Sidecar)の設定ファイルを作成
~/.gemini/config/sidecars/drive-unorganized-sorter/sidecar.json を配置します。
ステップ③:動作テストと権限確認
手動で未整理フォルダに「給与明細」や「健康レポート」のPDFを投入し、スクリプトを単体実行して期待通りにフォルダ移動・リネームされるかを確認します。確認後はcronスケジュールにより毎日自動実行されます。
5. 🐼 ぽトルの本音レビュー:運用して感じたリアルなメリットと注意点
✨ ここが最高!良かったところ
- 「書類をどこに保存するか」悩む脳のメモリがゼロになった: とりあえず未整理フォルダに放り込めば、正午に全部きれいに片付いている快感。
- 「あの書類どこだっけ?」の検索が爆速に: 「202610_給与明細_本人.pdf」のように命名規則が完全に揃うため、検索一発でヒットする。
- クラウドAIを使わないので完全無料&セキュア: 個人情報満載の給与明細や医療データを外部APIに送らず、ローカルのYomiTokuで処理できる安心感。
⚠️ 運用上の注意点・ハマりどころ
- PDFの全ページを読むと重い: 10ページのPDFを丸ごとOCRすると時間がかかるため、「1ページ目だけを解析して書類特定する」割り切りが高速化の鍵。
- Google Driveのトークン有効期限: 定期実行がエラーで止まらないよう、認証トークンの自動更新管理が必要。
- 未知の書類はフォールバック先へ: ルールに該当しない書類を無理にリネームせず、「01_家計/請求明細」などの共通置き場に残す設計が安全。
🐼 ぽトルのまとめ:暮らしの自動化は「小さな雑務の消滅」から始まる
「書類に日付を打って、フォルダを開いてドラッグする」。1回あたりは数十秒の作業ですが、毎月・毎年積み重なると巨大な負担になります。
AntigravityのAutomationsとYomiTokuを組み合わせることで、こうした日常のノイズが完全に自動消滅しました。
人間はもっとだらだらと、楽しくクリエイティブなことに時間を使っていきましょう🐼💤