📄 Google Apps Script で Gemini API を呼び出し、PDF を全文検索できる Chatbot 連携向けユーティリティ。少ないコードでドキュメント検索の PoC を素早く立ち上げられるよ!
- ✨ プロジェクト概要
- 🚀 主な機能
- 🛠️ 技術スタック
- 📂 リポジトリ構成
- ⚙️ セットアップ
- 🧪 動作確認
- 📝 使用方法
- 🌐 デプロイ手順
- 🔒 環境変数とセキュリティ
- 🧭 よくある質問
- 🤝 コントリビュート
- 📄 ライセンス
- Gemini API を利用して PDF を解析・全文検索する Google Apps Script プロジェクトだよ。
- Google Drive 上の PDF を読み込み、インデックス化して検索クエリに応じた回答を生成するよ。
- Google Workspace の自動化、Slack 連携、ドキュメントアシスタントの構築に最適!
- ✅ PDF のテキスト抽出と要約生成
- ✅ Gemini API を使った高度な自然言語検索
- ✅ Apps Script からの外部 API 呼び出しテンプレート
- ✅ 環境変数(Script Properties)管理のベストプラクティス
| カテゴリ | 使用技術 |
|---|---|
| 言語 | Google Apps Script (JavaScript) |
| API | Google Gemini API, Google Drive API |
| ビルド / デプロイ | Apps Script IDE, clasp (任意) |
| ドキュメント | Markdown, Mermaid |
.
├── README.md # このドキュメント
├── appsscript.json # Apps Script プロジェクト設定
└── code.gs # メインスクリプト(Gemini 呼び出し+PDF 検索)- 📁 Google Drive に対象の PDF をアップロードする。
- 🧪 Google Gemini API と Google Drive API を有効化して、API キーを取得する。
- 🔑 Apps Script プロジェクトの Script Properties に
GEMINI_API_KEYを設定する。 - 💻
claspを利用する場合はローカルにプロジェクトを clone し、clasp login→clasp pushでデプロイする。
- Apps Script IDE の
code.gsを開き、main関数を実行。 - 初回実行時は UrlFetchApp などの OAuth 権限を付与する。
- ログに File Search ストア名と Gemini のレスポンス JSON が出力されれば成功だよ。
flowchart TD
A[ユーザーの検索クエリ] --> B[Apps Script]
B --> C[Gemini API]
C --> D[PDF インデックス]
D --> E[回答生成]
E --> F[Slack / Gmail / Webhook]
main()関数を実行すると、PDF 取得 → ストアへの登録 → Gemini への問い合わせまでを一括で実施するよ。CONFIGオブジェクトでPDF_URLやMODELを調整して、目的に合うドキュメントを指定しよう。- 既存のワークフローに組み込みたい場合は、
askWithFileSearch_()やcreateFileSearchStore_()を必要に応じて呼び出してね。
- Apps Script のトリガーで
mainもしくは必要なカスタム関数を定期実行に設定。 - Web アプリとしてデプロイする場合は、HTTP リクエストから
mainを呼び出すハンドラーを追加してね。 - Slack Slash Command などの外部サービスと連携する際は、生成したエンドポイント URL を Webhook に登録しよう。
- 機密情報は必ず Script Properties(
PropertiesService.getScriptProperties())に保存してね。 - GitHub には
.clasp.jsonやclient_secret.jsonをコミットしないよう.gitignoreに追加すること。 - API キーのローテーションポリシーを決めて、定期的に更新するのが安心だよ。
- Issue を立てて改善内容を共有してね。
- フォークしてブランチを作成。
- コードスタイルを守り、テスト用のサンプルを追加してプルリクを送ってね。
このプロジェクトは MIT License のもとで提供されているよ。