Copilot Studioの「値を解析する(値の解析)」ノードが便利だったので、使い方をメモ。
ノード「値を解析する」
「値の解析」ノードは、トピック内で扱う値の「型を変換する」ノード。
主な使い道は、Power Automateの「JSONの解析」のように、型や構造が不定の値(文字列として渡されたJSONなど)に対し、それらの値をトピック内で扱えるよう「型を指定」する際に使用する。
主な使い道は、Power Automateの「JSONの解析」のように、型や構造が不定の値(文字列として渡されたJSONなど)に対し、それらの値をトピック内で扱えるよう「型を指定」する際に使用する。
言葉だとわかりにくいので実例で説明。
公式はこちら
変数の使用 - Microsoft Copilot Studio
カスタムおよび事前構築済みのエンティティで変数を使用して、Copilot Studio でカスタマイズされた会話を作成します。
やりたいこと
だいぶ昔に作成したカスタムコネクタ「PostalCode」、
郵便番号から住所を取得する、このカスタムコネクタの機能をエージェントに追加してみる。
構築
アクションの追加
まずはエージェントにカスタムコネクタを追加する。[アクションの追加]から、
先ほどのカスタムコネクタを選択、
説明や入力、出力を確認し、[アクションの追加]で追加する。
トピックの作成
続いて先ほど追加したアクションを使用するトピックを作成する。
郵便番号から住所を取得したい旨トリガーフレーズに追加し、スロット充填で郵便番号を変数に格納する。
郵便番号から住所を取得したい旨トリガーフレーズに追加し、スロット充填で郵便番号を変数に格納する。
格納した郵便番号を引数に先ほどのアクションを呼び出し、結果をメッセージに送ればトピックの完成。
実際に動作を確認すると、住所は取得できているけど当然JSONのまま出力されてしまう。
(※文字化けしているのはJSONをそのまま出しているためと思われる)
(※文字化けしているのはJSONをそのまま出しているためと思われる)
「値を解析する」ノードの追加
ここで「値の解析」ノードが役に立つ。先ほどのカスタムコネクタアクションの後ろに追加して、「解析対象」にカスタムコネクタの応答(resultsの先頭)を設定し、
※First関数で先頭だけ取得しているのは、APIの仕様として配列の中身は1データと決まっているため
※First関数で先頭だけ取得しているのは、APIの仕様として配列の中身は1データと決まっているため
[データ型]を[サンプルデータから]にして、[サンプルJSONからスキーマを取得する]を押す。
JSONのサンプルを入力するポップアップが表示されるので、カスタムコネクタが返す結果のサンプルを入力し、[確認]を押す。
最後に解析結果を新しい変数(今回はaddress)に入れれば完了。
値を解析したおかげで、後のノードで解析結果を使えるようになるのでメッセージの内容に設定。
先ほどと同じやり取りをしてみると、無事解析結果をメッセージとして送信できている。
トピック内でアクションを使ってデータをやり取りしていると、どうしてもJSONとかを扱う必要が出てくるので、そんなときはこの「値の解析」ノードを使用する。