本記事はFIXERが提供する「cloud.config Tech Blog」に掲載された「QnA Makerについて調べてみた! #Azure リレー」を再編集したものです。
マイクロソフトの資格取得に奔走している堀でございます。
今回はAzureのコグニティブサービスの1つであるQnA Makerについて少し調べたので記事にしてみようと思います。
【参考】以下のサイトの手順に沿っていくと簡単に作成できるかと思います。
https://www.qnamaker.ai/Create
そもそもQnA Makerとは
QnAMakerは簡単に言うとFAQを対話形式で返してくれるサービスです。
いろいろな企業や組織でFAQサイトを公開しているかと思います。ですが多くのFAQサイトで「自分が欲しい情報がどこに書いているのか見つからない!」ということがよくあるかと思います。
ユーザーは欲しい情報を見つけるために、電話やメールを使って質問しようとします。
それによってサポート担当者はさらに仕事が増えてしまいます。
こういった課題を解決するためにQnAMakerを使用するとユーザーは早く情報を見つけることが可能になり、サポート担当者の負担も減少させることができます。
QnA Makerを作成する
QnA Makerを作成します。
ここで作成されるリソースは5つです。
1. Cognitive Service
QnA Makerリソースを使うと、オーサリングおよび公開APIだけでなく、実行時にQnAペアの中で自然言語処理(NLP)ベースの2番目の順位のレイヤー(ランカー #2)にアクセスできます。
検証用であればFreeを選択できます(私のものは2つ目ですのでスタンダートになっています)。
2. 検索サービス
QnAペアの格納、実行時にQnAペアの初期順位を指定します。
CognitiveServiceと同様、検証用であればFreeを選択できます。
3. App Service
4. App Serviceプラン
App ServiceとApp Serviceプランは、クラインとアプリケーションからランタイムエンドポイントを介して公開されたナレッジベースにアクセスするときに使用されます。公開されたナレッジベースのクエリを実行する場合、公開されたナレッジベースにはすべて同じURLエンドポイントが使用されますが、ルート内のナレッジベースIDを指定します。
5. Application Insights
チャットログとテレメトリを収集したい方は作成してください。Application Insightsについては有効・無効を選択できます。
ナレッジベースを作成する
ナレッジベースはFAQのベースとなる情報のことで質問と回答がペアになって構成されます。
例えば以下のような構成をしているものです。
Q. FIXERで働いている従業員の平均年齢を教えてください。
A. FIXERの平均年齢は29歳です。
このように登録することでユーザーは「平均年齢」のような質問をすると「FIXERの平均年齢は29歳です。」といったような対話をすることができます。
作成したQnAサービスを選択して、データを登録していきます(QnA Makerを先に作成しておく)。
データソースは空の状態でも登録できますが、直接データソース(パブリックURL、SharePointのプライベートURL、ファイル)を使用して作成することも可能です。また空の状態で作成したとしてもあとから上記のようなデータソースを追加できます。注意点としては最終的な形式がマークダウン形式となっている必要があることです。
作成後はナレッジベースを公開することで、外部のアプリケーションと統合することができます。
クライアントアプリケーションと統合
ナレッジベースの公開後、クライアントアプリケーションはナレッジベースのエンドポイントに質問を送信し、結果をJSON形式で受信します。一般的に多く利用されているのはチャットボットを利用しています。
統合するには予測ランタイムエンドポイントにクエリを送信することで実現します。クエリはQnAMakerのウェブアプリエンドポイントへのSDKまたはRESTベースの要求と共に、特定のナレッジベースに送信されます。
まとめ
今回は簡単にQnA Makerについてご紹介させていただきました。PowerAppsのようなクライアントアプリケーションと統合すればローコードでFAQを返してくれるサービスを作成できます。
次回は実際に作成してみたいと思います!!!
ざぶろー/FIXER
(ほり こうざぶろう)
楽しいを追及して!日々前進していきます!