こんな人向けの内容です
Copilot Studioで作成したボットの会話の内容は、Copilot Studio自体の分析タブから確認することはできるのですが、いちいち開くのは面倒。ExcelやPower BIでみられるようにしたいという方向けの記事です。
こちらの記事に、ボットを作成する環境とロールによってできることがまとめられています。これによれば、ボットを作成はさせることができる「環境作成者」はConversationTranscriptへのアクセス権がない模様。そういう人たちにもPower BIで閲覧させるようなことができる方法はないか、ということで試してみました。
(Power BIならばRLSつかって、特定の行だけを見せるということもできますしね。)
ConversationTranscriptsテーブル
Copilot Studioで作成したボットの会話は、ボットを作成したPower Platform環境のDataverseのなかの「ConversationTranscripts」テーブルに記録されています。
しかし、一見して記録されているはずの日本語の文字列はやたらと「\u」ばかりで読めません。
そこで、Copilotくんに翻訳してもらいました。
さらに、エンコード方式を聞いてみました。4桁の16進数文字列が日本語の1文字ずつを示していることがわかります。
Power BI でテキストを抜き出す
Power BI や Excelで利用できるPower Queryは、アクセス権さえあればDataverseのテーブルにアクセスできるため、記録されている文字列へアクセスしてみます。
Power BI Desktopの場合はこちらからアクセスします。 [データを取得]>[Dataverse]
Excel でテキストを抜き出す
Excelの場合はこちらからアクセスします。[データ]>[Power Platformから(W)]>[Dataverseから(A)]
Contentの中に会話の内容あり
文字列はcontent列の中に含まれています。会話の開始時刻はconversationstarttime列にありますので、そのほかの列は一度削除しておきます。
[列の追加]から[カスタム列]を選択します。content列の中身はJSONなのでこれを解析していきます。 Json.Document関数にcontent列の中身をほおりこみます。列名はあとで消える列なのでなんでも構いません。
追加されたカスタム列のヘッダー部分にあるレコード展開ボタンをクリックします。
activities列はリストになっていますので、もういちど展開ボタンを押して「新しい行に展開する」をクリックします。
展開された中にtextが見当たりませんので「さらに読み...」をクリックします。
これでボットの中身の会話テキストが表示されました。なんと、この段階でエンコードが解除されて日本語が読めました。
JSON関数でデコードまでしてくれるなんて驚き
実はもともとエンコードされているテキストをカスタム関数を作って強引にデコードする方法について記事を書いているつもりだったのですが。JSON関数がデコードまでしてくれることを知って不要になりました。思わぬ収穫でした。