GeminiのGemで社内ナレッジを共有する

タロスカイではGoogle Workspaceを使っており、Business Standard以上のプランで付帯されるGeminiも活用しています。GeminiにはGemというツールがあり、特定の情報源とプロンプトをもとにチャットを開始するミニアプリとして利用できます。

ことの発端はタロスカイのディレクターからの「タロスカイって〇〇できるプラグイン持ってますか」という質問です。タロスカイは10年以上に渡ってWordPressに携わってきたので、これまで作ってきたプラグイン・テーマも多く、社員がすべての機能をあらかじめ知っておくのは無理です。よって、こうした質問が出ることも当然なのですが、『システム運用アンチパターン ―エンジニアがDevOpsで解決する組織・自動化・コミュニケーション』という本によると、社内の情報を探し回ることに費やす時間はけっこう馬鹿にならないのだとか。

そこで、Gemで解決を試みました。

社内ナレッジを理解したGemを作る

基本的な流れはこうです。

  1. GitHubのリポジトリを全部さらってREADMEを結合するGoogle App Script(GAS)を書く
  2. 結合されたGoogleドキュメントをGemの参照ファイルに指定してプロンプトを書く

では、早速いってみましょう。

ステップ1. Googleドキュメントを作る

まず、空のGoogle Documentを作ります。なぜ先にファイルを作るかと言うと、次のステップで作るGASをこのファイルに紐づけたいからですね。GASの保存場所がわからなくなることはよくあるので、私はほとんどの場合なんらかのファイルを先に作ってからGASを書くようにしています。

なお、このときにGoogleドキュメントの閲覧設定を「組織全員」にしておかないと、Gemから利用できないので設定しておいてください。

ステップ2. GASを書かせる

GASはGeminiに書いてもらいます。要件はシンプルに以下の通り。

  1. taroskyというオーガニゼーションのリポジトリを wordpress-plugin というトピックで検索する。
  2. リポジトリの中にREADMEが見つかったら、それをすべて連結
  3. 先ほど作った結合用ドキュメントに上書き保存する。

プライベートリポジトリも含めて検索したいので、PAT(Personal Access Token)の発行がGitHub上で必要になると思います。必要な権限などもGeminiに聞けば教えてくれるはずですが、情報漏洩が心配なので以下の点は補足として伝えておくといいでしょう。

  • Fine-grained PATで作成し、対象をオーガニゼーション限定にし、権限も最小にする。
  • Googleドキュメントの権限を「閲覧」のみにしておく。そうすればGASの中身を見ることはできない(はず)
  • GASにはPropertiesServiceという環境変数機能みたいなものがあるので、PATはそこに保存する。

そして、作成したGASにトリガーを設定します。そんなに頻繁に更新するものでもないですが、毎時ぐらいで更新するようにしておきます。

(こういう記事、以前ならGistにGASをはりつけて共有していたのですが、生成AI時代にはそのモチベーションもわかないですね……。おそらく、一瞬で作ってくれることでしょう)

ステップ3. Gemを作成

ドキュメントが完成したら、Gemにそれを参照用ファイルとして指定し、プロンプトを書きます。今回は「タロスカイでこれできる?」というタイトルにして、ホスティング環境の制約などを書き加えましたが、基本的には「添付のGoogle ドキュメントを参照して回答してください」という内容です。

こんな感じでファイルを参照して回答してもらうGemを作る

Gemが完成したら、共有設定から組織の人が全員アクセスできるようにして、SlackにURLを投稿。

1時間もかからずにできちゃいました。このブログを書いている時間の方が長い可能性さえあります。

なぜGemでNotebookLMではないのか?

特定のリソースをもとにチャットをするのはNotebookLMでもできるのですが、以下の観点からちょっとしたものはGemで作るようにしています。

  1. Gemは組織全体のアクセス設定ができるが、NotebookLMは個別招待(これはすぐ変わるかもですが)
  2. 生成AIのトークン量がどんどん増えているので、100個のリポジトリのREADMEを合体するぐらいならGemで十分

いまタロスカイ社内ではAIアダプテーション、つまり、「どうやって生成AIを活用していくか?」ということにフォーカスしているので、Claude Codeを愛用する私もなるべくシンプルなツールで他の人も再現可能なアプローチを取るようにしています。今回は社内で依頼があったので私が作ったのですが、この作成をノンプログラマーを含めた全員ができるようになることがいまの目標です。

というわけで、Gemの活用方法の紹介でした。「Gem用のデータソースをGASで生成する」というアプローチは他のことにも応用可能ですし、SSOT(Single Source of Truth)を保ちやすいのでおすすめです。試してみてください。

ところで、Google Workspaceまわりの情報キャッチアップですが、私はcooker8というYouTubeチャンネルを見ていたます。牛乳屋の社長「にっしー」さんが発信しています。お試しあれ。