QnA Maker API V4 (一般公開版) の Azure Search に関するよくあるご質問

(※ 2018年5月27日公開時点の情報となります。その他の FAQ はこちらよりご確認ください。)

QnA Maker V4 (一般公開版, GA 版) の Azure Search に関するよくあるご質問を以下にまとめました。同様のご質問をお持ちの方のお役に立てば幸いです。

 

Q1. Azure Search の「インデックス」は、QnA Maker の何に該当しますか?

 

A1. Publish された Knowledge Base (KB) の数です。

 

Azure Search のインデックス数が N の場合、そのAzure Search 上で扱える KB の数は N - 1 となります。

詳細は下記のドキュメントもご参照ください。

 

- Choosing capacity for your QnA Maker deployment

< /ja-jp/azure/cognitive-services/QnAMaker/tutorials/choosing-capacity-qnamaker-deployment >

抜粋:

===============================

2. Size and the number of knowledge bases: Choose the appropriate Azure search SKU for your scenario. You can publish N-1 knowledge bases in a particular tier, where N is the maximum indexes allowed in the tier. Also check the maximum size and the number of documents allowed per tier.

===============================

 

言い換えれば、” Azure Search の価格 のページの表に記載された「サービスあたりの最大インデックス数」から 1 を引いた数” が、QnA Maker で Publish 可能な Knowledge Base の数です。

 

clip_image001

 

このことについて、以下のドキュメントもご参照ください。

 

QnA Maker Limits

< /ja-jp/azure/cognitive-services/QnAMaker/limits >

 

clip_image002

 

1 を引く理由は、上記の図に「reserved for test」とある通り、作成いただいた KB とは別にシステムが利用するインデックス (testkb、後述の Q4 の(4) の図参照) が1 つあるためです。

 

なお、QnA Maker のポータル画面ではこの N - 1 を超える数のKB を作成できてしまうことがありますが、この場合新しいインデックスをAzure Search に追加することができず Publish に失敗します。そのため、実質的にはN - 1 以上の KB はご利用いただけません。(Publish されたKnowledge Base (KB) の数であることにご留意ください。)

 

clip_image003

 

 

 

Q2. Azure Search の「ドキュメント」は、QnA Maker の何に該当しますか?

 

clip_image004

 

A2. Azure Search のドキュメント数はID が付与された Q&A ペアのデータの数に相当します。

Q&A ペアのデータ構造については以下をご参照ください。

 

- Key knowledge base concepts

</ja-jp/azure/cognitive-services/QnAMaker/concepts/knowledge-base#key-knowledge-base-concepts >

 

 

Q3. Azure Search の Storage の容量とは、QnA Maker のKB の Q&A ペアのデータの容量ですか?

 

A3. はい、その通りです。

 

 

Q4. KB の容量はどのように確認すればよいですか?

 

A4. 以下の手順で確認できます。

 

(1)         Azure ポータルでご自身の QnA Maker のリソースを開きます。

(2)         左側のペインで Overview を開き、右側のご自身のリソースグループをクリックします。

 

clip_image005

 

(3)         「Search サービス」のリソースをクリックします。

 

clip_image006

 

(4)         「Search サービス」のリソース画面の [概要] の [インデックス] の項目において、当該 KB の Knowledge Base ID と同じ名前のインデックスを確認することで、現在使用されているストレージ
サイズをご確認いただくことが可能です。

 

clip_image008

 

上の図では、Knowledge Base ID に該当するストレージサイズは 102.81 KiB、トータルとしてはtestkb の104.98 KiBと合計した207.79 KiB が、下の [使用状況] に記載されています。

 

 

Q5. 上記の図の[インデックス] の名前にある Knowledge Base ID とは、QnA Maker ポータルのどこで確認できますか?

 

A5. [My knowledge bases] の画面に表示されるKB をクリックしますと、URL に 「https://www.qnamaker.ai/Edit/KnowledgeBase?kbId=********-****-****-****-************」と表示され、この「********-****-****-****-************」の部分が該当します。

 

clip_image009

 

もしくは、SETTINGS をクリックして、Deployment details の「POST /knowledgebases/********-****-****-****-************/generateAnswer」としても確認できます。

 

clip_image010

 

また、特定ユーザーのKB を列挙する API でもご確認いただけます。

 

- Get Knowledgebases for user

<https://westus.dev.cognitive.microsoft.com/docs/services/5a93fcf85b4ccd136866eb37/operations/knowledgebases_getknowledgebasesforuser >

 

 

Q6. Azure Search の価格 のドキュメントにおける「サービスあたりの最大インデックス数」の「サービス」とは、QnA Maker ポータルの[My knowledge bases] の画面に表示されるKB 一つを指しますか?現在の QnA Maker ポータルではKnowledge base name となっていますが、プレビュー版の QnA Maker ポータルでは Service Name となっていました。

 

A6. いいえ、Azure Search のドキュメントにおける “サービス” とは、プレビュー版における QnA Maker のサービスではなく、Azure Search のサービス(リソース) そのものを指します。

例えば、Basic レベルを選択した場合に、「サービスあたりの最大インデックス数」が 5 となりますが、Azure Search の 1 つのリソースで扱うことのできるインデックスの数は 5 個までということを示しております。

(A1 でご説明した通り、実際に作成可能なKB の数は、5 –1 = 4 個です。)

 

 

Q7. 以下の「Search サービス」の[概要] で確認できる[ドキュメント数] は、A2 の通りQ&A ペアの数と理解しましたが、1 つのAnswer に対する Question をいくつ追加しても、1 ペアの場合は 1 ドキュメントでしょうか?

 

clip_image012

 

 

A7. はい。1 つのAnswer に対して複数の Question が設定されている場合でも、ドキュメント数は1 つです。

上の例では、ドキュメント数が2 となっておりますが、実際は以下のように1つのAnswer に対して複数の Question が登録されているものが含まれています。

 

clip_image014

 

こちらは [検索エクスプローラー] を使用することでも確認できます。

検索エクスプローラーは[概要] ページの[インデックス] から該当 Knowledge Base ID をクリックすることでアクセスできます。そして以下のように[クエリ文字列] に「*」で検索した結果を見ると「Table
です。」というAnswer に対して、「テーブル」「テーブルは?」など 6 つ Question が登録されていることが確認できます。

 

clip_image016

 

 

Q8. 複数のBot を作成する予定ですが、コスト削減のため 1 つのAzure Search の中に複数KB を用意したい(複数KB で1 つのAzure Search リソースを共有させたい)。1 つのAzure Search の中の各KBに対して、各Bot を1 対1 に紐づけるようなことは可能でしょうか。

 

A8. はい、可能です。

 

Bot から参照するのはQnA Maker 管理API ではなく、QnA endpoint API となりますため、1 つの QnA Maker サービスに複数のKB が含まれていれば、Knowledge Base ID を指定することで Bot は個々のKB を参照することが可能です。

管理API はそのQnA Maker に含まれる全てのKB を管理するために利用されますが、実際の QnA の処理結果を得るEndpoint API はKnowledge Base ID を指定するため、どの KB に対する呼び出しなのかは区別できるようになっています。

 

- Connect your QnA Maker knowledge base to the bot

</en-us/azure/cognitive-services/qnamaker/tutorials/create-qna-bot#connect-your-qna-maker-knowledge-base-to-the-bot >

上記 Key Management のドキュメントも合わせてご参照ください。

 

簡略な構成としては以下の図の通りKB のデータの実体としては Azure Search 内に格納されていますが、個々のKB にはユニークなKnowledge Base ID が設定されています。そのため、Knowledge Base ID を指定することにより Web Apps 上で動作するランタイムを経由して、管理ポータルや Bot は特定の KB の情報を参照することができるようになっています。

 

clip_image017

 

 

上記がお役に立てば幸いです。

 

Cognitive Services 開発サポートチーム 津田