QnA Maker で作成したナレッジベースを、実際に API として使用する方法の説明です。
QnA Maker API を呼び出すためのエンドポイント情報を調べる
QnA Maker ナレッジベースの Publish
REST API を使用して QnA Maker のナレッジベースを使用するためには、QnA Maker ポータル上で対象のナレッジベースを Publish しておく必要があります。
Publish 処理が完了すると、ナレッジベースにアクセスするための Endpoint key が発行されます。
curl での QnA Maker API の呼び出しテスト
任意の質問文に対する回答文を得るには、REST API として下記のような HTTP POST リクエストを送ります。
curl -X POST
https://xxx.azurewebsites.net/qnamaker/knowledgebases/<ナレッジベースID>/generateAnswer
-H "Authorization: EndpointKey <上記で発行したキー>"
-H "Content-type: application/json"
-d "{'question':'<質問文>'}"
Linux の curl
コマンドを使用できる環境であれば、上記のように実行するだけで JSON 形式のレスポンスを確認することができます。
Node.js から QnA Maker の REST API を呼び出す
Node.js から HTTP POST リクエストを送って JSON レスポンスを取得してみます。
HTTP リクエストを行うためのモジュールとして、ここでは request
モジュールを使用します。
JavaScript ファイルを作成するディレクトリと同じディレクトリ内で、下記のようにインストールしておいてください。
$ npm install request
QnAMaker の TypeScript (JavaScript) API ドキュメントはこちら。すごい探しにくいです。。。
下記のサンプルコードは、コマンドライン引数で入力した「質問文」を QnA Maker REST API のリクエストとして送り、その結果を標準出力へ出力します。
関連記事