#BotFramework Emulator の機能 #8 ~ transcript ファイル (保存済み実行結果) の閲覧

Bot Framework Emulator の機能紹介の 8回目、最終回です。

  1. テストクライアント機能
  2. Bot 作成手順の確認
  3. bot ファイル (設定ファイル) の暗号化・復号化
  4. Bot アプリのエンドポイント管理
  5. 外部サービス (LUIS, QnA Maker) の接続管理
  6. LUIS 再学習
  7. chat ファイル (会話セットの設計) の閲覧
  8. transcript ファイル (保存済み実行結果) の閲覧(今回)

今回は Transcript ファイルの閲覧機能を紹介します。

個人的には、chat ファイルの閲覧機能と並んで(対になる機能として)お気に入りの機能です。
Bot アプリケーションの実装フェーズではあまり使用しない機能ですが、テストフェーズや Bot アプリケーションの運用を考えた時に特に大事な機能です。


Transcript ファイル

Transcript ファイルとは、ユーザーと Bot との会話の実行結果です。
会話ログとして、Conversation ごと(=ユーザーが Bot に接続してからの一連の)にまとめられます。

Bot Framework Emulator では、各アクティビティ(ユーザーの入力または Bot の応答の一つ一つ・・・直感的にはそれぞれの吹き出し)のデータが右上に表示されます。

これを会話が始まってから終わるまで(正しくは、会話が続いていればその時点までの一連のやり取り)をまとめたものが transcript ファイルです。


Transcript ファイルの生成その 1 ~ Emulator でテスト中に生成

Transcript ファイルは Emulator でテスト中に随時保存することができます。
保存できるのはテスト中に限定されるものではありませんが、Emulator を使って Bot アプリケーションに接続するのはデバッグ中かテスト中がほとんどだと思います。運用で Emulator を使うことはまず無いと思われるので、ここではテスト中としました。

Transcript ファイルを保存するには、Emulator で会話中に任意のタイミングで [Save transcript] をクリックします。
SaveAs ダイアログが開くので任意の名前で保存するだけです。


テスト中に不具合が見つかった場合、Web アプリなどでもプロジェクトのバグトラックにエビデンスとして画面キャプチャを添付することもあると思います。

Bot では会話はシーケンシャルにどんどん流れていくので、直近の会話だけがバグの原因とは限りません。
このため画面キャプチャだけでは不具合の詳細を確認するには不十分なことはよくあります。

不具合発生時には Save transcript をしてエビデンスとします。
こうすることで別のマシンであっても Bot アプリに接続できない環境であっても、会話の内容をすべて再現できます。

chat ファイルの読み込み方 と同じ方法で bot ファイルを作成して、Transcript フォルダーに先ほど保存した transcript ファイルを置くことで、Emulator で開けます。


Transcript ファイルの生成その 2 ~ 運用時

会話ログ(※いわゆるアプリログとは別)は Bot アプリの Startup.cs で AzureBlobTranscriptStore ミドルウェアを追加します。

コードの断片ですが、こんな感じ。

var storageService = botConfig.Services.FirstOrDefault(s => s.Type == ServiceTypes.BlobStorage) ?? throw new Exception("Please configure your Azure Storage service in your .bot file.");
var blobStorage = storageService as BlobStorageService;
var transcriptStore = new AzureBlobTranscriptStore(blobStorage.ConnectionString, blobStorage.Container);
var transcriptMiddleware = new TranscriptLoggerMiddleware(transcriptStore);
options.Middleware.Add(transcriptMiddleware);

Transcript の保存先は Blob ストレージでいいでしょう。
ログなので検索応答性は必ずしも高くなくてもいいので低コストなのがいいですね。

ただし Transcript は ConversationId ごとのフォルダーに Activity 単位の JSON ファイルが保存されます。

一連の会話を 1 ファイルに保存するタイミングが決まらない(いつ会話が終了するのか、どのくらいの間隔が空くのかはユーザー次第)のと、パフォーマンスを保つためだと思います。
Activity 単位のファイルなので、ダウンロードしながら Conversation 単位に 1 ファイルにまとめるツールがあるといいですね。
これについては、また改めて(と書いておく)。

いずれにしても生の会話ログは保存されているわけなので、これを使えば運用時にも発生した事象をトレースできます。


まとめ

chat ファイルの閲覧機能とあわせて、transcript ファイルの閲覧機能は、Bot あぷりのテスト時、運用時にも Emulator が有用なツールであることが分かったと思います。

以上 8回に分けて Bot Framework Emulator の機能を紹介しました。
Emulator を活用しながら Bot アプリ開発を楽しんでください。

広告
カテゴリー: Bot Builder SDK, Bot Framework, Bot Service, Cogbot タグ: , , , , パーマリンク

#BotFramework Emulator の機能 #8 ~ transcript ファイル (保存済み実行結果) の閲覧 への7件のフィードバック

  1. ピンバック: #BotFramework Emulator の機能 #1 ~ Bot アプリケーションのテストクライアント機能 | 技術との戯れ

  2. ピンバック: #BotFramework Emulator の機能 #2 ~ Bot 作成手順の確認 | 技術との戯れ

  3. ピンバック: #BotFramework Emulator の機能 #3 ~ bot ファイルの暗号化・復号化 | 技術との戯れ

  4. ピンバック: #BotFramework Emulator の機能 #4 ~ Bot アプリのエンドポイント管理 | 技術との戯れ

  5. ピンバック: #BotFramework Emulator の機能 #5 ~ 外部サービス (LUIS, QnA Maker) の接続管理 | 技術との戯れ

  6. ピンバック: #BotFramework Emulator の機能 #6 ~ LUIS 再学習 | 技術との戯れ

  7. ピンバック: #BotFramework Emulator の機能 #7 ~ chat ファイル (会話セットの設計) の閲覧 | 技術との戯れ

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google フォト

Google アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中