コルネの進捗や備忘録が記されたなにか

進捗や成果物や備忘録てきななにかを雑に更新していきます。

Power AppsのCopilot controlを利用して、アプリ内で対話形式でデータの概要を質問してみる


スポンサードリンク

はじめに

Power AppsにCopilot controlなるものが追加されていたので、こちらを利用してみました。

learn.microsoft.com

このコントロールを利用することで、アプリ内でユーザがデータについて対話形式で質問することでその内容について回答してくれるようになります。

この記事では、利用までの備忘録(2023/11/06時点)と利用できそうなことを簡単にまとめています。

参考文献

Copilot コントロールをキャンバス アプリに追加する - Power Apps | Microsoft Learn

AI コパイロットの概要 - Power Apps | Microsoft Learn

テーブルを構成して Copilot を使用する - Power Apps | Microsoft Learn

前提条件

環境

現時点では機能を利用するには、環境が米国である必要があります。

learn.microsoft.com

この機能を試したい方で、米国の環境をお持ちでない方はまず米国リージョンの環境を作成してください。

また環境を作成する際は、Dataverseを利用可能な環境を作成してください。

環境設定

米国環境にしたうえで、その環境の設定を変更する必要があります。(デフォルトでオンになっているかもですが)

こちらの公式ドキュメントを参考に設定を行います。

AI コパイロットの概要 - Power Apps | Microsoft Learn

  1. Power Platform 管理センターにアクセスします
  2. 環境 > [米国環境の選択] > 設定 > 製品 > 機能 にアクセスします
  3. "AI Builder のプレビュー モデル"をオンにします
    日本語

    英語

言語設定

Power Appsの設定で言語を"English"にする必要があります。
日本語

英語


この設定だけで会話からアプリを作成する機能が使えるようになりますが、

learn.microsoft.com

Copilot controlを利用できるようにするにはこれだけの設定ではできません。

Copilot controlを利用できるようにするにはブラウザの言語も"English"に設定する必要があります。

Dateverse側の設定

Dataverseをデータソースとして、Copilot controlを利用するにはこちらのドキュメントの設定を行う必要があります。

learn.microsoft.com

インデックス作成を有効にする(Enable indexing)

DataverseでCopilotを利用可能な状態にするんは、"Track changes"(変更の追跡)と"Apperar in search results"(検索結果に表示)がオプションよりオンになっている必要があります。

既定のテーブルではこの設定はオンになっているかと思いますが、カスタムテーブルではこの設定はデフォルトではオンになっていないので、自身でオンにする必要があります。

  1. 対象のテーブルを開き、"Properties"を開きます
  2. "Advances options"より、詳細オプションを設定します
  3. "For this table"内の"Track changes"と、"Row in this table"内の"Apperar in search results"をオンに設定して保存します

列を構成する(Configure columns)

検索対象の列と、ユーザに返答する列の情報を構成する必要があります。

この設定は以下から行うことできます。

  1. "Data experiences"より"Views"を選択します
  2. "Quick Find Active [テーブル名]"というビューを選択します
  3. 2で選択した列を編集します
  4. 画面右下にある"Find by ..."より、"Edit find table columns ..."を選択してユーザとの対話により検索対象としたい列を追加します
    不要な列については"×"より削除してください
  5. 画面中央にある"View columns"を選択して、ユーザとの対話により応答によって返してもらいたい列を追加します
    不要な列については"×"より削除してください


    ドキュメントでは以下のように記載されています。
    これを意識して設定するとよいかもです。

    ユーザーがすべての列を返す自由回答式の質問をしたときに、Copilot エクスペリエンスでエンド ユーザーに返される列を定義する必要があります。
    これを行うには、ビューに列を追加します。 Copilot の回答に含めることができるデータは限られているため、正確な回答を得るには質問の質が高いことを確認することが重要です。

  6. 最後に"Save and publish"より変更を保存して公開します

Copilot controlをアプリに追加する

アプリの設定

Copilot controlを利用するには、"Copilot component"がオンになっている必要があります。

Settings Upcoming features > Preview より、"Copilot component"をオンに設定してください。

多分前提条件の設定をクリアしている場合は、この設定が表示されてデフォルトでオンになっているかと思います。

逆にここの設定が出てこない方は前提条件の設定に漏れがあると思いますので再度確認してみてください。

アプリに追加する

Copilot controlは、Popular > Copilot (preview) もしくは Input > Copilot (preview) にあります。

アプリ内に追加したら、"Data source(Items)"もしくは Items より、Dateverse側の設定を行ったDataverseテーブルを設定します。

これでCopilot controlを利用できます!

"Fields"でテーブルのフィールドを設定可能ですが、ここは設定していても設定していなくても変わらないような...?

というより、ドキュメントで各プロパティの説明が以下のように記載されていますが、これ現時点では機能していないような気がする。。。

learn.microsoft.com

要検証ですかねー

実際に動作を試してみる

自然言語でチャットすることでデータソースの情報を返してくれます。

例えば、データソースの件数を「How many data items are in this data source?」という質問できいてみたところ、ちゃんと5件だよ。と返してくれました。

また、日本語での質問にも返答してくれます。
ただし、言語英語にしているからか返答は英語ですね。

ただしこんな感じで「日本語で教えて」というとちゃんと日本語でも答えてくれます。
ここはさすが裏ではAzure OpenAI Serviceが機能しているだけありますね。

また、こんな感じの曖昧な質問にも答えてくれます。

ただここまで曖昧だと正しく返してくれないようです。
ここはChatGPTを上手く利用するためのプロンプトに似ていますね。

ただ、こんな感じでフィールドの列名や入っている情報からそのフィールドがどのようなデータのフィールドなのか推測して、応答を返してくれるのは凄いですね。

ちなみにこのテーブルは会話から生成したテーブルなので列の説明なんてものは設定されていません。

これを活用すれば、データ一覧画面で様々な情報でフィルタできるように設定しなくともよくなるかもしれないですね。

あとは、テーブルコントロールみたいな形式でいいからテーブル形式でデータを出力してくれると嬉しいですね。

[おまけ]SharePoint Listをデータソースに設定した場合

SharePoint Listをデータソースに設定することも可能です。

ただ上手く検索できないですね。。。

ただ、これが返ってくるのはインデックス作成がサポートされていないImage列が含まれているからの可能性があります。

support.microsoft.com

以下のようにインデックス作成がサポートされている列のみで構成されている列ですと、結果は返ってきました。

ただし、うまく動いてくれてないように見えますね。。。

今後SharePoint List(Microsoft List)でも動くようになるといいなー。。。
と思いましたが、うーーん難しそう。

おわりに

ギークフジワラさん@geekfujiwaraにDataverse側の設定も必要なことを教えていただくまで、まだこの機能は使えないと思っていました。

改めて教えていただきありがとうございました!

まだまだプレビューの機能なので制限なども多いですが、簡単にデータソースの情報を対話形式で質問できるようになるのは素晴らしいですね!

今後のアップデートに期待しましょう!


スポンサードリンク