QnAMakerの辞書登録APIを使ってみます。
背景
質問と回答のリストやWebURLを指定するだけで超簡単にFAQボット作れる便利なAPIではあるものの、実際導入しようとすると、「取扱説明書」と「取説」を一緒の扱いにしてほしいとか同異義語登録したくなるけどどの程度まで精度上がるの?とかわからなかったのでちょっと試してみる。
前提
- QnAMakerをデプロイし公開済
- QnAMakerの基本的な画面操作は理解している
- このAzureサポートに関するFAQサイトのFAQデータをknowledgebaseに登録した状態
- ブラウザはChrome(他ブラウザでも使えますがFireFoxだとTest入力で使いづらいので注意)
QnAMakerに辞書登録なんてあったんだ?
QnAMakerのAPIリファレンスが見れます。今回で言うとAlterationsってのが辞書登録機能ですね。
使い方こんな。詳しくは「API」とか「json」とかで検索するともっと詳しく調べられると思います。
テストコンソール使い方
API使うツールはPostmanとかありますがこのDocument画面でもテストで利用できるっぽいんで使ってみます。[Open API testing console]クリックして
QnAMakerのサブスクリプションKey入れてってことっぽいのでAzure上にあるCognitiveserviceリソース(QnAMaker管理API)の
※ステータスコードとかRESTはそのAPIごとで違う場合があるようですがこことか参考になるかも。QnAMakerAPIDocument見ても200ってのがなさそうなので204で正常ってことなのかなと理解。(違ったら是非教えてください)
じゃ実際別の文言で登録してみます。
検証
事前確認
knowledgebaseに登録した質問と回答
Qnestion:Azure サポートはどこで受けられますか?
Answer:サポートは、Microsoft Azure が提供されている市場で受けることができます。一般提供 (GA) の直後は、一部の特定のサービスを一部のリージョンで受けられないことがあります。
【注意】質問データが以下の状態になってます。
- クエスチョンが半角
-
Azure
とサポート
の間に半角スペース入ってる
事前スコア値確認
質問 | 相違点 | スコア値 |
---|---|---|
Azure サポートはどこで受けられますか? | クエスチョンを全角に変更 | 78.73 |
Azureサポートはどこで受けられますか? | 間の半角スペース抜く | 78.76 |
アジュール サポートはどこで受けられますか? | 「Azure」を「アジュール」に変更 | 33.32 |
Azure supportはどこで受けられますか? | 「サポート」を「support」に変更 | 69.46 |
Azur supportはどこで受けられますか? | 「Azure」を「Azur」に変更 | 37.32 |
正しい答え返してはくれるけど全角半角やスペース変わっただけでも結構スコア値下がってしまいます。
Alterations登録
いざ。じゃまず。Request bodyの中に以下を入力して[Send]クリックしクエスチョンマークの半角全角を登録します。
{
"wordAlterations": [
{
"alterations": [
"?",
"?"
]
}
]
}
試しにDownload alterationsって方で実行するとちゃんと登録されてることがわかります。
QnAMakerTestで試してみるが…?
Save and train&PUBLISHしてもブラウザリロードしても何しても変わらない…
よし。落ち着け。他も試してみよう。
{
"wordAlterations": [
{
"alterations": [
"Azure",
"アジュール",
"Azur"
]
},
{
"alterations": [
"サポート",
"support"
]
}
]
}
他の質問パターンも試してみる
「Azure」を「アジュール」に変えたパターン。ぉお!!33.32から68.62にスコアが上がった!
「サポート」を「support」に変えたパターン。ん?なぜ下がる…?
「Azure」を「Azur」に変えたパターン。こちらも37.32から68.62に上がった!
他パターンで試行
Microsoft はどの言語でサポートを提供していますか?のMicrosoft
をマイクロソフト
で登録
「マイクロソフト はどの言語でサポートを提供していますか?」
登録前:44.86
登録後:99
さすがMicrosoft。(ってことなのか…?)
障害対応のサポートとは?の障害
をトラブル
で登録
トラブル対応のサポートとは?
登録前:36.2
登録後:80.81
Azure サポート プランを上位プランにアップグレードするには?のアップグレード
をupgrage
で登録
Azure サポート プランを上位プランにupgrageするには?
登録前:49.5
登録後:49.5
変わらん…もしや英語や記号から日本語への代替が反応しないってことか?‥嫌な予感。
月額料金は 1 つの Azure プランが対象ですか? それともアカウント全体が対象になりますか?の1
を一
で登録
月額料金は 一 つの Azure プランが対象ですか? それともアカウント全体が対象になりますか?
登録前:12.35
登録後:100
お?ってことは…
数字の漢字変換試した
{
"wordAlterations": [
{
"alterations": [
"1",
"一"
]
},
{
"alterations": [
"3",
"三"
]
},
{
"alterations": [
"100",
"百"
]
},
{
"alterations": [
"300",
"三百"
]
},
{
"alterations": [
"一万",
"10000",
"10,000",
"10000",
"10,000"
]
},
{
"alterations": [
"5000",
"5,000",
"五千",
"5000",
"5,000"
]
}
]
}
お?なんかステータスコード500出してるんでひょっとしてすでに数字は登録されてるってこと?Download Alterationsを見ると
正常に登録できてるように見える…よくわからない…
そのまま試してみよう。
数字テスト①
数字テスト②
数字テスト③
数字テスト④
数字テスト⑤
数字テスト⑥
まとめ
- (まとめと言っておきながら)いまいちルールわからん
- 登録する意味はありそう
- ってことは数字とか単位(kg等)とか送り仮名違いとか日本語無数に登録しなきゃいけない…?
- もっと頑張って~Microsoftさん!
- 日本語って難しい
Watsonも数字苦手だったりするのでこの辺は日本語対応まだまだなことを実感してます。
このAPI使ってる人(特に日本で)で情報発信してる方見つからなかったので是非触ってみたことのある方やここに情報あるとかご存知な方、アップデート情報とか便利な登録方法とかあれば教えてください!