はじめに
問い合わせ対応って非常に手間ですよね。
特に私は最近、Teamsで問い合わせ対応を受けるときに、
「あ、これは調べれば、すぐわかるんじゃないかな…」という内容を答えるのが億劫になる時が度々あります。
そういった状況の中で、AIを使ってうまくサクッと回答したい、そんな夢と希望が詰まったテーマを今回取り扱います。
Power Automateとこれまで使ってこなかったGemini AIの機能を使って、問い合わせ対応の代行にチャレンジします。
Geminiの準備
まずはGeminiのAPIの登録からスタート。
お恥ずかしながら今までGeminiを使ったことがなかったので、どう登録するかなというところから調べました。
下記の記事を参考にさせていただきました🙇感謝です。
GeminiをWeb上で試すリンクがこちら
APIを利用する場合はGoogle AI Studioにアクセスします。
アクセスするだけで、サクサクとAPI キー
が取得でき、入りやすさは抜群です。
サンプルのコード
やクイックスタート
もAPIキー
のページからアクセスできる、非常にユーザーフレンドリーな仕様になっています。
クイックスタート ガイドを見ながら進めていきます。
Gemini はじめの一歩
今回の検証はフリー
プランで実施します。
Power Automateによる実装を進める上では、まずRESTのタブに遷移して内容を見ていきます。
Geminiといえば
- 圧倒的な安さ
- 使いやすさ
上記が歌われていますね。
GPT-4oやClaude 3.5 Sonnet、全て凄すぎるので、もう時代の進歩についていけません・・・。
脱線しましたが、クイックスタートを読み解くと
項目 | 設定値 |
---|---|
方法 | POST |
URI | https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash-latest:generateContent?key={APIキーを挿入} |
{
"contents": [
{
"parts": [
{
"text": "Explain how AI works"
}
]
}
]
}
APIキーがクエリ文字列
に含まれることと本文の構成がほかのモデルと異なります。
APIキーをAzure Key Vaultに格納し、HTTPアクションを実行してみると、すぐに実行が完了します。
contents[0].parts[0].textに指示を追加するだけで、もう簡単なAPI呼び出しは成功してしまいます。
これだと簡単すぎる内容になってしまいますので、カスタムコネクタ
への加工にトライしてみます。
カスタムコネクタの作成
- Power Automateの左パネルからカスタムコネクターをクリック
- 「+ カスタムコネクタの新規作成」及び「コネクタ名」を設定
- URLとベースURLを入力
- 要求にサンプルを入れる
- コンテンツタイプを「application/json」に設定
- 認証設定(基本認証、APIキーをクエリに含める)
- JSONの値を入力してテスト
カスタムコネクタの作成、となると若干ハードルの高さを感じます。
しかし今回は非常に簡単なので、トライしていきましょう。
1. Power Automateの左パネルからカスタムコネクターをクリック
Power Automateの画面左側のパネルからカスタムコネクタ
をクリックします。
画面右上の「+ カスタムコネクタの新規作成」をクリックし、選択肢の中から「一から作成」を選択します。
コネクタ名
を命名して「続行」をクリックしてください。
コチラが「カスタムコネクタの全般情報
」を設定する画面です。
アイコンや背景色も設定できますが、今回は割愛します。
肝心な部分は赤枠rgba(255,0,0,1)
の部分
- スキーマ
HTTPS
- ホスト
generativelanguage.googleapis.com
- ベース URL
/v1beta
上記を選択し、2. セキュリティ
に移ります。
こちらで認証タイプ
を選択します。
認証タイプ
はAPI キー
です。
としてAPI キー
の設定は
- パラメーターのラベル
key
- パラメーター名
key
- パラメーターの場所
クエリ
上記を選択してください。
完了次第、3. 定義
に移ります。
ここで、一度画面右上の✓コネクタの作成
をする必要があります。
保存
するようなイメージです。
成功すると下記のようなメッセージがでます。
次に「+ 新しいアクション」をクリックして、実際のコネクタの動作を定義します。
アクション名
やアクションの概要
、ID
を設定します。
今回はGeminiCall
と雑につけました。
次に「要求」の部分で「+ サンプルからのインポート」をクリックします。
こちらで
- 動詞
POST
- URL
https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash-latest:generateContent
- ヘッダー
Content-Type application/json
上記を設定します。
本文
は最初に登場したプロンプトのJSONを設定し、インポート
をクリックします。
インポートが成功すると下記のような画面になります。
この中でカスタムコネクタ
を呼び出すときContent-Type
とbody
が設定すべき値となります。
Content-Type
は固定なので、値を固定にしましょう。Content-Type
をクリックします。
既定値
をapplication/json
に設定し、必須項目に設定。表示をinternal
します。
これで固定的に設定される値になりました。
body
は必須をオンにする以外はほとんど変更していません。
ここから一気に「6.テスト」まで移ります。
ここでテストを実行するために一度✓コネクタの作成
をする必要があります。
更新後、テスト操作
のための接続作成が必要になります。+ 新しい接続
をクリックしましょう。
GeminiのAPI キーを設定してください。
接続を作成すると、赤枠のような情報が出ます。
即時に反映されるわけではないので、適宜リフレッシュボタンを押して状態を見ましょう。
いよいよテストです。Content-Type
は自動的に設定されます。
未加工の本文
をオン
にして前述のJSONを本文にテストを実行すると、おそらく成功するでしょう。
上手くいくと回答が返ってきます。
フローの作成
フローでは、アクション
でランタイム
がカスタム
の部分に作成したコネクタが反映されていることがわかります。
GUIでプロンプトを設定できることが魅力です。
サクっとカスタムコネクタ
が作成できました。
問い合わせ代行のためのPower Automateの設定
いよいよ本題に移ります。
- 「選択したメッセージの場合」を選択
- プロンプトを設定
-
Gemini
を呼び出す - 返答を投稿する
2024.06.23時点では、選択したメッセージの場合
はクラシックデザイナーにのみ対応しています
プロンプトは下記のように設定しました。
あなたは非常に丁寧で知識豊富なアシスタントです。ユーザーからの問い合わせに対して、以下のガイドラインに従って回答してください。
1. 丁寧な対応: ユーザーに対して常に丁寧な言葉遣いを心がけ、敬意を持って対応してください。相手を尊重し、親しみやすさを感じさせるトーンで返答します。
2. 要点をかいつまむ: 回答は簡潔に、かつユーザーが必要とする情報を漏れなく提供してください。詳細すぎる説明は避け、わかりやすい例や具体的なポイントを挙げることを心がけます。
3. 追加の情報提供: ユーザーがさらに詳細な情報を求める場合に備えて、追加のリソースや参考リンクを提案することも検討してください。
4. 質問の明確化: ユーザーの質問が不明瞭な場合は、明確化のための追加の質問を行い、正確な情報を提供できるよう努めてください。
5. 積極的なフォローアップ: 回答後もユーザーが満足しているか確認し、必要に応じて追加のサポートを提供する意向を示してください。
以下のユーザーからの質問に対応してください:
質問: 「@{triggerBody()?['teamsFlowRunContext']?['messagePayload']?['body']?['plainText']}」
ユーザーへの返答はチャットまたはチャネルでメッセージを投稿する
アクションを使います。
- 投稿者 -
ユーザー
- 投稿先 -
Group Chat
- Group Chat -
triggerBody()?['teamsFlowRunContext']?['conversation']?['id']
一対一の会話もGroup Chat
で設定します。
この会話のIDを取得するために会話ID triggerBody()?['teamsFlowRunContext']?['conversation']?['id']
を選択したメッセージの場合
のトリガーから取得しています。
['conversation']?['id']
が会話IDです。
投稿するメッセージはbody('Generate_Content')?['candidates'][0]?['content']?['parts'][0]?['text']
を設定します
例:「Outlookの使い方がわかんないんだけど」
ユーザーからこのような質問が来たとします。
ちょっとイラっとしなくもないですが・・・、このメッセージを右クリックし、Power Automateフローを起動します。
ラグが発生しているのか、初期段階の雑な名前がそのまま残ってしまっています💦
Geminiの回答がコチラ!
Outlook の使い方が変わって戸惑っていらっしゃるんですね、お気持ちお察しします。ファイル添付ができないとのことですが、具体的にどのような状況でしょうか? 例えば、 * 以前はファイル添付ができたのに、最近できなくなった * 特定のファイルだけ添付できない * 添付しようとした時にエラーメッセージが出る など、状況によって原因と解決策が異なります。 もし可能でしたら、もう少し詳しく教えていただけますか?そうすれば、より的確なアドバイスができます。 もし、他に何か困っていることがあれば、遠慮なくお申し付けください。
素晴らしい!!
非常に丁寧な返信が返ってきました。この返信を使用し、カンバセーションIDを利用して適切なスレッドに返信します。
おわりに
常に親切丁寧対応ができたら嬉しいですが、現実的には難しい場面もありますよね。
Geminiを使える場合は、コスト面の強さも含めて簡素化したいものです。
本日も読んでいただき、ありがとうございました。