サブスクリプションキー (Subscription Key)
サブスクリプションキーは、QnA Maker アプリ自体の作成や編集を行うためのキーです。 後述のエンドポイントキーよりも厳重に管理しなければならないキーです。
このキーは、Azure ポータル上で QnA Maker のリソースを作成した際に生成されます。 QnA Maker アプリは、Azure 上にリソースを作ってからでないと作成できないため、QnA Maker アプリがすでに存在するのであれば、サブスクリプションキーも必ず存在することになります。
Azule の QnA Maker リソースに割り当てられたサブスクリプションキーは、Azure ポータルの QnA Maker リソースの Keys のページで確認することができます。
LUIS の場合は、アプリ管理用のキーはオーサリングキーと呼んでいたりしますが、それの QnA Maker 版だと考えればよいです。 QnA Maker アプリの場合、このキーの管理は Azure ポータル上で管理されることになっており、Azure 上ではこのようなキーのことをサブスクリプションキーと呼んでいるんですね。 このあたりのチグハグ感に関しては こちらを参照。
エンドポイントキー (Endpoint Key)
エンドポイントキーは、チャットアプリなどのユーザクライアント(Bot Framework では「チャンネル」と呼びます)が、QnA Maker に対してクエリを行うときに使用するキーです。 エンドポイントキーは、QnA Maker ポータルで対象となるナレッジベースを選択後、PUBLISH タブから Publish 処理を実行したとき、あるいは SETTING タブを選択することで確認することができます。
チャットボットなどから QnA Maker を利用する場合、実運用時に設定する API アクセス用のキーは、こっちのエンドポイントキーです。
(コラム)QnA Maker アプリと Azure リソースの結び付け
LUIS アプリの場合は、LUIS ポータル上で LUIS アプリを作成した後に、Azure ポータルで作成したリソースに関連付けるという作業が必要でした。 一方、QnA Maker アプリの場合は、この作業は必要ありません。 なぜなら、QnA Maker ポータル上で QnA Maker アプリ(ナレッジベース)を作成するときに、最初に Azure 上で作成した QnA Maker リソースの結び付けが強制されるからです。
よって、QnA Maker の場合は、ナレッジベースを作成した時点で、その API を Azure リソース経由で呼び出す準備が既に整っていることになります。