#BotFramework #Composer の対話ログ分析用の #PowerBI テンプレートがありました

Bot Framework Composer の対話ログは この記事 の設定で非常に簡単に管理できます。
しかし、きちんと分析しようとするとなかなか面倒な感じがします。「一度作ればいいだけでしょ?」という意見はあると思いますが。

対話ログ分析用の Power BI テンプレートがありました。知りませんでした・・・。
テンプレの UI は英語ですが、必要に応じてキャプションを変更すればいいでしょう。

https://microsoft.github.io/botframework-solutions/solution-accelerators/tutorials/view-analytics/3-open-template/

ユニークユーザーを理解しているし、一連の対話で何往復したかも表示されます。
ユーザー入力に対するボットの応答を横に並べて表示してくれるので、やり取りも分かりやすい。

続きを読む
広告

#BotFramework #Composer で “Send an HTTP request” で QnA Maker の応答をカスタマイズする手順

前の投稿 で書いたように、Bot Framework Composer では QnA Maker との連携方法が 3通りあります。

簡単なのが、

  • Knowledgebase 管理 + QnA Intent Recognizedトリガー
  • Connect to QnA Knowledgebase

の二つのやり方。

それらと比べると少しだけテクニックが必要なのが、”Send an HTTP request” アクションを使って QnA Maker からの応答を処理する方法です。
要は REST 呼び出しの応答を仕様にあわせてフォーマットしましょうというものです。

今回は、Send an HTTP request で QnA Maker から回答を受け取るための手順を紹介します。

続きを読む

#BotFramework #Composer で #QnAMaker 連携 3通りを整理

Bot Framework Composer を使うと Q&A Bot / FAQ Bot が簡単に作れます。多分ご存じの通り。

QnA Maker との連携方法は 3通りあって、それぞれ特徴があります。
今回は 3通りの連携方法の紹介とそれぞれのメリット・デメリットがあります。(ただし私見を含みます)

  • Knowledgebase 管理 + QnA Intent Recognizedトリガー
  • Connect to QnA Knowledgebase
  • Send an HTTP request (詳しくは 次回)

手順が一番簡単なのがトリガー、一番柔軟性があるのが Send http request です。
順番に見ていきます。

続きを読む

#BotFramework #Composer で永続化データを読み書きする

Bot でデータの永続化はよく必要になります。
今回は Bot Framework Composer で、永続化したデータを読み書きする方法です。

ストレージとしては Cosmos DB を使います。
Composer では Cosmos DB 用のパッケージ を利用すると簡単です。
読み書きそれぞれにアクションが用意されるのでプロパティを設定するだけです。

コストを考えると Table ストレージを使いたくなることも多いと思います。
本稿を書いている時点では Azure Storage 用のパッケージ不具合 がある(?)らしく条件によっては読み込みに失敗するので、今回は Cosmos DB を利用します。
続きを読む

#BotFramework #Composer で任意のメッセージを Application Insights に出力

Bot Framework Composer で任意のメッセージ (Telemetry) を Application Insights に出力する方法についてです。
Composer 標準のアクションを使うだけなので Tips と呼べるレベルです。

Bot Framework Composer のアクションは特に追加のコードやアクションなしでも Application Insights に出力 されます。(ただし設定ファイルの内容によります)
デバッグ用のテキスト もやはり Application Insights に出力できます。

それらに加えて、任意のメッセージも自由に Application Insights に出力できます。
例えば、対話のステートとか変数の設定内容などの対話やユーザーに紐づいた内容が考えられます。アクションの分岐が複雑な場合には条件式に含まれる変数を出力するのもありです。

[Debugging options] – [Emit a telemetry track event] を使います。

続きを読む

#BotFramework #Composer で Application Insights でログ管理

今回は Bot Framework Composer のログを Application Insights で管理しましょうという話です。

Composer はよく出来ていて、詳細なログを Application Insights に出力します。(Composer の設定によります。後述)

設定を確認すれば、開発者が特にがんばらなくても詳細なログを残せます。素敵!

続きを読む

#BotFramework #Composer でデバッグ用のテキストをコンソール出力する

Bot Framework Composer を使って開発する時の Tips を一つ。デバッグ用のメッセージをコンソールに出力する方法です。

とても当たり前でとても簡単な内容ですが、任意のテキストをコンソールにログ出力できることをそもそも知らなかったというケースを目にしたので、Composer の操作の基本として紹介します。

Composer には “Log to console” アクションが用意されているのでこれを使います。

続きを読む

#BotFramework #Composer でキャンセル機能を実装 第3回 ~HelpAndCancel パッケージを日本語ボットで利用する ~

Bot Framework Composer でキャンセル機能を実装する方法についてのシリーズの最終回 3回目。
今回は HelpAndCancel パッケージを日本語ボットで利用 する方法を紹介します。

  1. まずはキャンセル実装前の Bot を用意する
  2. キャンセル機能の実装
  3. HelpAndCancel パッケージを日本語ボットで利用する (今回)

Composer でキャンセル機能を実装するのは難しくありません。シリーズの 前回の投稿 の通り。
なので前回の投稿で「キャンセル機能はこうやって実装するんだよ、終わり!」としてしまってもいいと思います。

が、Composer を眺めていると “HelpAndCancel” パッケージが提供されているのが目に留まります。

「これはいい!」とインストールすると、日本語ボットではビルドエラーが発生します。ロケールに起因するようです。

今回はエラーを避けつつ、このパッケージを利用してキャンセル機能を実装する手順です。
ただし 前回のように自前で実装 することで全く問題なくキャンセル機能を実現できるので、今回の投稿は余談・雑談のレベルかもしれません。
そこを理解した上でお付き合いください。

また Composer を本気で使いだすと結局コードを編集したくなる (lg ファイルを直接触りたくなる) ことが出てきます。本稿はその時の練習にもなると思います。

続きを読む

#BotFramework #Composer でキャンセル機能を実装 第2回 ~キャンセル機能の実装~

Bot Framework Composer でキャンセル機能を実装する方法についてのシリーズ 2回目。
今回は 自前でキャンセル機能を実装 する方法を紹介します。

  1. まずはキャンセル実装前の Bot を用意する
  2. キャンセル機能の実装 (今回)
  3. HelpAndCancel パッケージを日本語ボットで利用する

Composer でキャンセルを実装するのはとても簡単です。やり方(設定の仕方とアクションの配置)が分かれば難しいところはありません。

今回は シリーズの1回目で作ったボット にキャンセル機能を追加していきます。

続きを読む

#BotFramework #Composer でキャンセル機能を実装 第1回 ~まずはキャンセル実装前の Bot を用意する~

Bot Framework Composer でダイアログの一連のフローを 途中でキャンセル させる機能の実装方法を紹介します。
一度やってみれば難しい話ではないんですが「意外と知らないかも?」なので。

長くなるので 3回に分けて紹介します。

  1. まずはキャンセル実装前の Bot を用意する (今回)
  2. キャンセル機能の実装
  3. HelpAndCancel パッケージを日本語ボットで利用する

FAQ Bot のような 1ターンで完結するようなボットは別にして、一般にはユーザーと何回かやり取りして対話が完結することはよくあります。
お馴染みの例としては会議室予約ボット。

ユーザー:「会議室を予約したい」
ボット:「希望の日時を入力してください」
ユーザー:「明日の15時から」
・・・(略)・・・
ボット:「〇月〇日 15時から60分間、人数は 3人ですね。よろしいですか?」
ユーザー:「はい」
ボット:「予約が完了しました」

このやり取りの途中で「やっぱり止めたい」と思うことはよくあります。
これを Composer ではどうやって実装するのかを見ていきます。

続きを読む