背景
GASからGeminiを呼び出して、メッセージを作ってもらいSlackでBotが投稿するというメッセージボットを作りました。
リマインダーを送ったり、ジョークを送ったりと、色々便利に活用しています。
ただ、このBotを作るにあたり、「同僚の名前などの個人情報を外部のAIサービスに渡したくない」という課題がありました。
そこで今回は、個人情報をAIに渡すことなく、かつ質の高いメッセージを生成してもらうための簡単なテクニックを紹介します。
小技:プレイスホルダーを活用
テクニックは至ってシンプルです。
Geminiに指示を出すプロンプトで、個人名などの可変部分を__NAME__
のようなプレイスホルダー(目印) に置き換えてもらうよう指示するだけです。
プロンプトの指示例:
名前部分は__NAME__
として出力してください。
こうすることで、GAS側で__NAME__
を実際の同僚の名前に置換するだけで済み、個人情報をAIに送信する必要がなくなります。
実際の活用方法
例として、毎朝の挨拶メッセージを生成するプロンプトを見てみましょう!
プロンプト例:
同僚の__NAME__さんに朝のメッセージを送ります。今日は${today}です。一日が元気に始められるように、今日は何の日や小ネタ、ジョークなどを入れたメッセージを240文字以内で作成してください。そのままBotで投稿するので、返信はテキストメッセージのみとし、名前で呼びかける際は、名前部分を__NAME__としてください。
${today}のところも、GAS上で置き換えることでその日にぴったりなメッセージを送るようにしています。
返信としては、以下のようなメッセージが返ってきます。
__NAME__さん、おはようございます!週の始まり月曜日ですね!ところで今日7月14日は、気象衛星「ひまわり1号」が打ち上げられた「ひまわりの日」だそうです🌻太陽の方を向くひまわりのように、今週も明るく元気に頑張りましょう!
期待通り、日付に合わせた記念日(ひまわりの日)を含んだ、ポジティブなメッセージが生成されました。
このようなパーソナライズされたメッセージは、毎日のコミュニケーションのきっかけ作りにも役立ちます。
プロンプトの最適化: 品質はそのまま、コストを削減
先ほどのプロンプトでも十分に機能しますが、より安定した結果を得るためには、AIへの指示と制約を明確に分離した「構造化プロンプト」が有効です。
例えば、以下のように「背景」「指示」「制約」を明記することで、AIの解釈のブレを抑え、出力の品質をコントロールしやすくなります。
背景
会社の同僚である__NAME__さんへ、チャットボットから毎朝自動で送信する、ポジティブな気持ちで一日を始められるようなメッセージを作成します。
指示
__NAME__さんへの朝の挨拶メッセージを以下の条件で作成してください。
1. 当日の日付は${today}です。
2. __NAME__さん、おはようございます!から始めてください。
3. 内容は、「今日は何の日」の記念日、季節の小ネタ、豆知識、あるいは少し笑えるジョークなどを一つ含めてください。
4. メッセージの最後は、「良い一日を!」「今週も頑張りましょう!」など、ポジティブな言葉で締めくくってください。
制約
- 全体の文字数は240文字以内に収めてください。
- 返信はテキストメッセージのみで、Markdownなどの装飾は使用しないでください。
- 名前の部分は必ず__NAME__というプレースホルダーを使用してください。
- 宗教、政治、ゴシップ、ネガティブな内容は避けてください。
ただし、この方法は丁寧な一方でトークン数(API利用料)が多くなってしまいます。
そこで、このプロンプトの意図を維持しつつ、トークン数を削減できないか試してみましょう。先ほどの長いプロンプトをGemini自身に要約させます。
「上記のプロンプトを指示のクオリティを維持しつつ、トークン数を削減したプロンプトを提案して。」
この指示で得られたのが、以下のプロンプトです。
会社の同僚__NAME__さんへ、${today}付の朝の挨拶メッセージを生成してください。
条件:
- 「__NAME__さん、おはようございます!」で始める。
- 当日の記念日、小ネタ、ジョーク等を一つ含める。
- ポジティブな言葉で締めくくる。
- 全体で240字以内、テキスト形式のみ。
- NGトピック: 宗教、政治、ゴシップ、ネガティブな話。
いい感に簡潔かつ入力トークン数も削減されていますね!
改めて、上記のプロンプトでGeminiに今日のメッセージを作ってもらいましょう。
その結果がこちら↓
__NAME__さん、おはようございます!週の始まり月曜日ですね!ところで今日7月14日は、気象衛星「ひまわり1号」が打ち上げられた「ひまわりの日」だそうです🌻太陽の方を向くひまわりのように、今週も明るく元気に頑張りましょう!
品質は全く落ちていませんね!!
あとは、__NAME__
の部分をGASで置き換えてSlackなどにポストするだけで、朝の挨拶ができます。
BotにGeminiを活用することでメッセージのバリエーションが広がりますし、毎日同じようなメッセージにならないのが魅力ですね。
まとめ:AI利用のセキュリティと効率化を両立する
今回は、AIに個人情報を渡さないためのテクニックとして、プロンプトでプレイスホルダーを使う方法を紹介しました。
この方法は、名前の置換だけでなく、プロジェクト名や日時といった様々な可変情報に応用できます。GASと生成AIを組み合わせることで、セキュリティを担保しつつ、コミュニケーションを豊かにする仕組みが簡単に作れます。
皆さんの現場でも、AIに情報を渡す際の工夫や、効率化したTipsなどがあれば、ぜひコメントで教えてください!