前回 の記事では OAuth をつかった外部 Web サービスの利用を見ていきました。今回は Azure が提供する QnA Maker との統合を見ていきます。
QnA Maker
Azure QnA Maker とは、既存の FAQ ページや説明書などから、Q&A 用の API を自動生成するサービスです。はじめは一問一答形式のみのサポートでしたが、今は複数回のやり取りを行い、より効果的な答えを返すこともできるようになっています。
QnA については QnA Maker Deep Dive (といいつつ実際は公式ドキュメントのサマリ) を参照してください。
QnA の作成
今回はテレワークで活躍間違いなしの Surface Headphone のヘルプページを QnA にしてみます。
1. QnA Maker ポータルに接続してログイン。「Create a knowledge base」をクリック。
2. QnA サービスリソースが無い場合、「Create a QnA Service」をクリック。
4. サービス作成後、前画面に戻ってリソースを選択。リソースが出ない場合は、「Refresh」をクリック。言語は「Japanese」を指定。
6. Chit-chat は今回利用しないため None を選択し、「Create your KB」をクリック。データを読み込んでサービスを作成するまで少し時間がかかるため、先ほどのブログでも読んでおく。
7. 読み込みが完了したら、不要な QA などを削除後、「Save and train」をクリック。
9. 結果にあるホスト名、キーおよびナレッジベース ID は後で使うため保存。
Composer で統合を構成
1. 新規ダイアログより「SurfaceHeadphoneQnA」ダイアログを作成。
2. BeginDialog トリガーで「Connect to QnA Knowledgebase」アクションを追加。
3. プロパティを変更。settings スコープのアクセスは ${settings.<>}
のため、既定の値は変更。またオプションの値も現状入れないと動作しない模様のため、入力。
4. 設定メニューより「Show keys」を選択し、QnA 関連の値を設定。
6. Condition で確率を 0.7 より大きいに設定。
制限
現在は以下の制限があります。
- 1 ダイアログで接続できる QnA は 1 つ
- HTTP リクエストアクションで呼び出す場合は特に制限なし
LUIS と QnA Maker を同時に使う場合は、インテントの管理とスコアの閾値を使って意図したダイアログが呼ばれるよう調整してください。
まとめ
今回は QnA Maker との統合を紹介しました。既に QnA Maker があり、開発中のボットと統合する意味がある場合は数ステップでできるため、是非試してください。次はチャネル固有機能の使い方を紹介します。