Copilot Studio で作成したCopilot の生成型の回答の実行ログを利用して、継続的な改善を行うためのアプリです。GitHub にソリューションを公開しておりますのでCopilot の改善を考えていらっしゃる方は是非ご利用ください。
こちらの利用方法とインストール方法はYouTubeで紹介しております。

Microsoft 365 Copilot には対応しておりません。
また、開発者環境ではConversationTranscript テーブルに会話ログが保存されませんので対応しておりません。サンドボックスまたは実運用環境をご利用ください。
Copilot 改善アプリ(CopilotImprove)はあくまでもDataverse に保存されているCopilot の実行履歴をJSON形式から情報を抽出、さらにUnicodeエスケープシーケンスとなってしまっている会話内容を読める形式に変換、表示し、さらに改善活動につなげていくワークベンチを実行するアプリです。
参考までに、標準で会話履歴が表示されているConversationTranscript
テーブルには以下のように複雑に会話履歴が保存されております。

目次
動画
1分ぐらいで実際に改善を行う流れを紹介しています。
作成した背景
Copilot の会話の改善を簡単に行えるようにしたい、ということで開発を思いつきました。
動いたよ、できたよという結果は是非、 ギークフジワラのXアカウント までメンションしてご報告ください!!
標準のレポートではCopilot 毎の情報は提供してくれますが、こちらのアプリは環境毎のCopilot の情報を提供してくれます。
Copilot の実際の改善活動を行うチームは、環境ごとに配置されている想定で作成しています。
例えば、環境が会社毎などで分けれれている場合、その会社ごとでCopilot の改善活動を行っていくのではないか、として想定しています。
テナント全体ではCoE Starter Kit による管理を想定しており、環境はこちらのアプリ、テナントはCoE Starter Kit という分担で考えております。
Copilot 改善アプリの利用イメージ
各種レポート
Copilot Studio で作成したCopilotの、環境内で生成型の回答(Generative Answers)を行った際、そしてその改善活動の各種レポートを確認することが出来ます。
利用イメージ





改善対象のログに対して、バックグラウンドで連携されてきます。
Copilot を利用しているユーザーや管理者はデータの収集に関して特に何もする必要がありません。
一度、このアプリを環境にインポートしたら自動的に収集されるようになります。
ただし、Copilot での会話実行後、データ収集まで1時間ほどのタイムラグがあります。
詳細を確認するとメッセージとして送った内容と回答内容、そしてその結果等について確認することが出来ます。

改善アクションへの活用
可視化できるだけでなく、担当者の割当や改善アクションにつなげることが出来ます。

ビジネスプロセスフローでステージを管理することも出来ます。

生成AI による結果の確認
成功したパターン
回答の生成に成功した場合は「回答した」という結果となり、その応答も返ってきます。

返答が実行されなかったパターン
不正なメッセージなどでは「OpenAI によってフィルターされた」などの履歴も確認することが出来ます。

Copilot Studio 側でコンテンツ モデレーションによってフィルターされた結果も反映されてきます。

データソースに関連性が高い情報がなかったときには「検索結果なし」として返ってきます。

Power Automate で行っている処理
Power Automate クラウドフローにて各種変換、Dataverse カスタムテーブルであるCopilot 改善
テーブルへ格納処理を行っています。
ConversationTranscript
テーブルにデータが作成されると、フローが起動します。そして、生成AIでの処理が行われるとGenerativeAnswersSupportData
に関するActivity
が発生しますので、その情報を見を抽出しています。
値がないときはCopilot 改善
テーブルへの値の保存は実行されません。
GenerativeAnswersSupportData
の値がない時というのは、生成型の回答が利用されず、単なる固定的なトピックでの回答が行われた場合などです。

環境へのインストール
前提条件
以下のライセンスが必要です。
- Copilot Studio
- Power Apps Premium またはPower Apps per app
ソリューションのインポート
ソリューションはリリースに提供されています。不定期でアップデートします。最新のリリースを利用するようにしてください。
アップデート情報は ギークフジワラのXアカウント でご案内します。フォローしてお待ち下さい。
ソリューションをダウンロードして、Zip形式のままインポートを行います。
インポート後、カスタマイズをすべて公開し、クラウドフローがオフになっている場合オン(有効)にしてください。
ウイザードに則って行えば問題なくインポートができるはずです。ご不明な方はインポート方法は以下を参考にしてください。
記事内の画像のリンクが切れて、せっかくの内容がわかりにくくなっているので、更新頂けると大変うれしいです。
失礼しました。画像リンクを修正しました。ご指摘いただきましてありがとうございました。
アプリを試用させて頂いております。ただ、意図した動作にならない部分あり困っております。恐らくCopilot Studio側で仕様変更が発生しているのではと推測しています。
1)
生成型の回答のノードを通る質問をしているにも関わらず、GenerativeAnswersSupportData がJSONの中に含まれないケースがあります。
2)
必ずではありませんが、クラウドフローがエラーになります。
条件2のノードで「ActionFailed. An action failed. No dependent actions succeeded.」というエラーが出ます。
実際のエラー箇所は「はいの場合」に分岐した後のPurseJSONのノードのようで、「ValidationFailed. The schema validation failed.」というエラーです。
いつもわかりやすく最新の情報を提供いただきありがとうございます。
Copilot 改善アプリの方もGitHubとXの方で改訂案内を入れて頂いているのを確認いたしました。
そこで、以前問合せしていた件が解消されているかもと思い、早速試そうとしたのですが、「インポートに失敗しました。Copilot Improvementに対する依存関係が見つかりません。」というエラーとなりインポートを完了できません。
最新バージョンを新規環境にインポートする場合と、1つ前のマネージドのアプリが入っている環境への上書きインポートの場合と、双方で同じエラーとなります。
エラーの詳細画面[依存関係を表示する]ボタンの先では、「Copilot Improvementをインポートする際は、この環境に次の項目をインポートする必要があります」とのメッセージが出ています。
表示名:new_sharedcommondateserviceforapps_f5691
種類:connectionreference
要求者:GenAnsCSATLoadFlow
種類:クラウドフロー
どう対処すればよいかご教示いただけると大変幸いです。
お手数をおかけしました。更新したソリューションを公開しましたのでご確認ください。
https://github.com/geekfujiwara/CopilotImprove/releases/tag/1.0.2.1
迅速なご対応ありがとうございます。
ただ申し訳ありません、改めてインポートを試しましたが、やはりCopilot Improvementに対する依存関係のエラーが発生します。
エラーの詳細画面を見ると、「Copilot FAQ」、「Copilot profile」、「Copilot test case」という3つのテーブルに関する、列・ビュー・クラウドフロー・キャンパスアプリ・システムフォームなどの種類に対して発生しているようです。お手数ですが今一度ご確認をお願いできますでしょうか。
失礼しました。不要な依存関係を削除しました。こちらでいかがでしょうか。
https://github.com/geekfujiwara/CopilotImprove/releases
インポートできることを確認しました。迅速なご対応ありがとうございました。
なお、インポート時に警告として「Translated labels for the following languages could not be imported because they have not been enabled for this organaization: 1033」というものがでますが、環境設定の言語で1033(英語)を有効化すればよいと認識しています。もし認識に誤りあるようであればご指摘頂ければと思います。
認識あっております。
度々の質問で申し訳ありません。
アプリの仕様として、ナレッジから回答できたケースは改善対象外としてアプリへのデータ連携は行われていない認識です。だとすると、CSAT評価は、言語モデルの情報から生成された回答を分析する機能の位置づけでしょうか。つまり、ナレッジから回答されてはいるけれども、最適解ではないケースを改善する用途は対象外でしょうか。
生成型の回答を行なったケースではすべて連携される仕様にしています(生成型の回答が利用されず固定的なメッセージの回答を行ったケースはCopilot 改善テーブルに連携されない) 。
生成型の回答を行った同一セッションでCSAT回答を行うと、生成型の回答の結果と同じレコードにCSAT 評価が連携されます。
GenerativeAnswersSupportDataの値があることがアプリに連携するデータの条件になっていると思いますが、こちらで確認している分には、下記のケースで上記の値がJSONコード上に存在していないようなのです。Copilot Studio側で仕様変更が発生していることを懸念しています。お手数ですがご確認頂くことは可能でしょうか。
Copilot Studio 内テスト画面
・ナレッジから回答するケース
公開先チャネルがTeams
・ナレッジから回答するケース
・”AI が備える一般ナレッジ”から回答するケース
なお、テスト画面から”AI が備える一般ナレッジ”から回答するケースでは、GenerativeAnswersSupportDataの値が存在することを確認しています。
質問を重ねることお許しください。
このアプリ(ソリューション)を導入したアカウントが廃止される場合にとるべき対処について確認をさせてください。
ソリューション内のクラウドフローは所有者の変更ができることは認識しています。
一方、所有者を変更しても、つながり参照は当初の導入作業者になっています。これを変更するには、下記の手順で認識は間違いないでしょうか。もっとスマートな手順はありますでしょうか。
①Copilot Improvementソリューション内の接続参照「Microsoft Dataverse CIP」はマネージドのため直接編集できないため、別のアンマネージドソリューションを作成し、「Microsoft Dataverse CIP」を「既存を追加」のメニューから追加する。
②上記を編集メニューで開き、接続のプルダウンから「+新しい接続」を選択する。
③コネクタの一覧から「Microsoft Dataverse」を検索する。
④(なぜか2つ表示されるが、緑のアイコンの方を選択し)「作成」をクリックする。
⑤引き継ぐアカウントでログインし、新しい接続情報が作成されたことを確認する。
⑥「②」の画面に戻り、接続の「最新の状態に更新」をクリックする。
⑦プルダウンから追加された新しい接続を選択し、保存する。
⑧「①」で作成したソリューションを削除する。
少なくとも、⑦の作業だけでクラウドフローのつながり参照は変更されていたのですが、①で作成したソリューションを用いて元のCopilot Improvementソリューションを何らか更新する必要性があるのか、がわかっておりません。
督促で恐縮なのですが、以前質問入れております件、何らかご見解頂けると大変感謝です。