2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【GAS x Gemini】Geminiに個人情報をできるだけ渡したくないときにできる小技

Posted at

背景

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などがあれば、ぜひコメントで教えてください!

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?