この記事は「なんでもCopilot Advent Calendar 2024」に参加しています。
8日目の記事です。
はじめに
Microsoft 365 ライセンスで利用できる Copilot Studio for Teams を使って、質問を投げかけると色々な猫画像が表示されるコパイロット(チャットボット)を作る手順です。
1.準備する
Copilot Studio for Teamsとは
Copilot Studio for Teams は(一部の)Microsoft 365 ライセンスがあれば利用できる機能限定版のようなものです。Copilotの名を冠してはいますが、生成AIで回答を生成するといった機能は備えていません。
生成AI以前からあるトピックを用意して回答させる形のコパイロットをつくることができるものです。
※単体ライセンス版のCopilot Studioでは作成する”コパイロット”を"エージェント"と呼ぶように変わりましたが、Copilot Studio for Teamsでは2024年12月時点でも"コパイロット"表記されていますので、この記事でも"コパイロット"と呼称してます。
※Copilot Studioを利用するには複数のライセンスの選択肢がありそれぞれできることが違います。そのあたりこちらの記事に書きました。(投稿した翌日にCopilot Studioの従量課金制が正式に公開されました!)
Copilot Studio for Teamsをインストール
こちらのリンクからCopilot Studio for Teams をインストールすることができます。
「開く」ボタンをクリックすると開きます。
Teamsのウィンドウ左のバーに追加されますので、次回以降はそちらからアクセスできます。
2.コパイロットを作成する
「コパイロット」タブを選択し「新しいコパイロット」を作成します。
チームを選択します。
Copilot Studio for Teams で作成するコパイロットは必ずチームに接続する必要があります。
選択したチームで Dataverse for Teams を利用したことがない場合は、セットアップにしばらく時間がかかります。このメッセージが表示された場合は待ちましょう。
利用可能になるとこのように通知されます。
3.Copilotに名前とアイコンを指定して作成する
Copilotに名前とアイコンを指定して「作成」をクリックします。
このようなアニメーションが表示されるのでしばらく待ちます(おそらく1分以内)
4.トピックを作成する
Copilot Studioの「トピック」は、ユーザーが入力した内容に対してコパイロットがどんな反応をするかを決めるものです。トピックは、ユーザーが入力する「トリガーフレーズ」と、それに対するコパイロットの返事は複数のノードから成り立っています。
本来はトピック→新しいトピックからトピックを定義していろいろな応答のバリエーションを持たせていくのですが、今回はどんな入力に対してもワンパターンの回答をさせるために「フォールバックトピック」という特殊なトピックのみを使用します。
※通常のトピックの作り方は既定で有効になっているサンプルトピック(レッスン1 〜 レッスン4)がとても参考になります。
フォールバックトピックを有効化する
Copilotが作成されるとこのような画面が表示されます。
早速左下の「設定」をクリックします。
システムのフォールバック→フォールバックトピックの追加の「追加」ボタンをクリックします。
フォールバックトピックとは、あらかじめ作成したトピックのどれにも該当しない場合に選択されるトピックです。今回は必ず猫たちが応答するためにこのトピックを使用します。
※「フォールバックトピック」は"プレビュー"の表記があり正式リリースされたものではありません。期待した動作をしない可能性もあります。
しばらく待つと"トピックが追加されました。"と表示されます。
「フォールバックトピックに移動」ボタンをクリックします。
※"追加されました"と表示された直後に「フォールバックトピックに移動」ボタンをクリックしても、実際にはまだ反映中の場合があります。設定を閉じて、トピックに「フォールバックトピック」が表示されるまで待ち、表示されたらフォールバックトピックをクリックします。
現在時刻を取得するPower Automate クラウドフローを作成する
こちらが既定の状態のフォールバックトピックです。
「リダイレクト」を削除します。
「保存」をクリックした後、「トリガーフレーズ」と「メッセージ」の間のラインをマウスでポイントすると表示される「+」をクリックします。
「アクションを呼び出す」→「フローの作成」
「Power Virtual Agents フロー テンプレート」を選択します。
「+」→「アクションの追加」をクリックします。
"現在の時刻"で検索して日時コネクタの「現在の時刻」アクションを選択します。
このように現在時刻を取得するアクションが追加されます。
「Return value(s) to Power Virtual Agents」のタイトルバーをクリック→出力の追加を選択します。
「テキスト」を選択します。
"UTCNow"と入力し「現在の時刻」をクリックします。
「Power Virtual Agents フロー テンプレート」という名前のフローになっているため、"現在の時刻"という名称に変更し保存をクリックします。
「保存済み」と表示されるまで待ってから、「←」をクリックします。
トピックにフローを追加する
トピックの表示に戻り、再び「トリガーフレーズ」と「メッセージ」の間のラインをマウスでポイントすると表示される「+」をクリックし、「アクションを呼び出す」を選択すると、先ほど作成したクラウドフロー「現在の時刻」が表示されますのでこれを選択します。
追加するとこのようになります。
メッセージを変更する
メッセージのテキストをすべて削除し下記のHTMLテキストを入力します。
<p>🐈「ニャー」</p> <p><img src="https://cataas.com/cat?type=small&dmy=" alt="cat"></p>
メッセージにはHTMLタグが使える
QiitaにMiyakeさんが投稿されている記事を参考にしました。
Copilot Studio の前身の Power Virtual Agents 対象の記事です。
現在の有償のCopilot Studio ではhtmlは使えませんでしたが、Copilot Studio for Teams では Power Virtual Agents のテクニックを使うことができました。
ランダム猫画像はCat as a service (CATAAS)を利用
今回の猫画像をランダムに表示する部分はCat as a service (CATAAS)を利用しています。
REST APIで猫画像を取得できるサービスですが、認証無しでGETで取得できるため、HTMLのimgタグから呼び出して画像を取得しています。
&dmy= と " の間にカーソルを置いた状態で、{x} → UTCNow をクリックしてUTCNow変数を挿入します。
このような状態になったことを確認し「保存」をクリックします。
imgタグは何故か消えてしまう事があるので注意
※あちこちクリックしたりしていると、張り付けた img タグの部分が消えてしまう事がありました。トピックを開きなおした場合にも同様の現象がありました。その場合は、もう一度入力しなおす必要があります。
キャッシュされるのを防ぐためにダミーのパラメータdmyをセット
img タグに設定するURLのパラメータにはtypeとdmyを指定しています。
typeはCATAASのパラメータでファイルサイズを指定しています。
dmyはCATAASには存在しないパラメータですが、今回は非常に重要なパラメータです。このパラメータを設定しない場合、画像がキャッシュされてしまい毎回同じ猫画像が表示されてしまいます。そこで、CATAASには存在しないdmyパラメータで毎回変化する現在日時を渡すことでキャッシュされずに毎回猫画像が変化する動作を実現しています。
「戻る」をクリックします。
トピックのリストに戻りますので、既定で有効になっているサンプルトピックをすべてオフにします。
5.動作確認
「テストボット」をクリックします。
画面下部のテキストボックスにプロンプトを入力してみると、猫が答えてくれます。
6.コパイロットを公開する
作成したコパイロットを公開し、Teamsで利用できるようにします。
公開の「公開」ボタンをクリックします。
「公開」ボタンをクリックします。
しばらく待ちます。
Teamsに公開するための設定が表示されます。
「設定の詳細」をクリックします。
(おまけ)「詳細の編集」で見た目を整える
このままTeamsで使ってみることもできますが、「詳細の編集」をクリックして下記を設定しておくと、見た目が整います。
- アイコン
- Copilotに設定したものと同じアイコンでも使えますが、画面上の説明にあるように白透過画像[透過と白(FFFFFF)の2色のみの画像]にしておくと、Teamsのアプリバーで他のアプリとの見た目に統一感が出ますし、Teamsのテーマがライト/ダークどちらでも視認できるアイコンになります。
- 簡単な説明
- 詳細な説明
- 詳細設定→開発者の名前
いずれかの「Teamsで開く」をクリックします。
「追加」をクリックします。
「開く」をクリックします。
作成した猫コパイロットが表示されますのでいろいろ相談してみましょう。
さいごに
今回の手順だけでは実用性はありませんが、最小手順でPower Automate クラウドフローと連携するコパイロットを作る体験をすることができると思います。
これであなたも「コパイロットを作ったことあります」と言っていいかもしれません!
Copilot Studio for Teams は生成AIを必要としないシーンではまだまだ使える機能かと思いますので、ご活用ください。