5
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【Azure】QnA MakerでFAQチャットボットを作る

Last updated at Posted at 2019-09-01

QnA Makerとは、AzureのCognitive Serviceを使い、FAQ用の質問+回答のナレッジベースを作成できるもの。

QnA Maker 全般にわたって解説した記事
QnA Maker Deep Dive (といいつつ実際は公式ドキュメントのサマリ) - Qiita

初期構築時の注意

利用者のログを残したければ、App Insightsを有効にして作成する。
FAQチャットボットを運用する場合、ログが無いと何も改善できないので、有効にするのが良いと思われる。

ナレッジベース初回登録時の注意

ナレッジベースに初めて登録する質問+回答で、Search Serviceの言語が決まる。後からの変更はできないので、QnA Makerを作り直さなければいけない。

参考:下記記事のQ1
QnA Maker API V4 (一般公開版) のよくあるご質問 – Japan Cognitive Services Support Blog

質問と全く同じ文を入力しても答えが返ってこない場合、この状態に陥っている可能性がある。

QnA Maker構築時に作られるApp Serviceについて

QnA Makerを作成して出来るApp Serviceは、ナレッジベースのメンテ等APIの提供に使われているっぽいので、いじってしまうとAPIが動作しなくなったりしてしまう。

Q&Aのログを参照する

QnA Maker作成時にApp Insightsを有効にしていれば、App Insightsにログがたまる。
https://docs.microsoft.com/ja-jp/azure/cognitive-services/qnamaker/how-to/get-analytics-knowledge-base

同義語を登録する

「パソコン」であれば、「PC」や「コンピュータ」など、同義語を登録してQ&Aのヒット率を向上させることができる。同義語についてはAPIしか用意されていないため、PowerShellなどを使って登録&更新する必要がある。

Alterations (Azure Cognitive Services) | Microsoft Docs

APIの実行に必要な Endpoint と Key は、Azureポータルの Cognitive Service のページから取得できる。

同義語の登録は置換式なので、一度登録済みの内容を取得してから同義語を追加し、登録するのが良い。

以下、同義語の取得&登録ができるPowerShellのサンプル。

Param($func)

$endpoint = "https://westus.api.cognitive.microsoft.com/qnamaker/v4.0"
$key = "Azureポータルで取得したキー"

$headers = @{"Ocp-Apim-Subscription-Key" = $key}

$filename = "alterations.json"

<#
    同義語を取得する
#>
function GetAlterations() {
    $url = "${endpoint}/alterations"

    $rc = Invoke-WebRequest -Uri $url -Headers $headers -OutFile $filename -PassThru
}

<#
    同義語を登録する
#>
function PutAlterations() {
    $url = "${endpoint}/alterations"

    $rc = Invoke-WebRequest -Uri $url -Headers $headers -Method Put -InFile $filename
}

if ($func -eq "get") {
    GetAlterations
} elseif ($func -eq "put") {
    PutAlterations
}

コンソールから.\alterations.ps1 "get"と実行すると登録済みの同義語の取得、.\alterations.ps1 "put"と実行すると同義語の登録ができる。同義語のファイルは、スクリプトと同じフォルダにalterations.jsonというファイル名で保存される。

次のステップ

Bot Serviceを作る (ナレッジ←→UIの中間部分)

5
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?