Skip to main content

 

 

 

 
Language:
 
Service Studioバージョン :
 
 
OutSystems

OutSystemsアプリでAzure QnA Makerコネクタを使用する

Azure QnA Makerコネクタは、Azureのナレッジベースを操作するときに使用するコンポーネントです。Azureでナレッジベースをデプロイしたら、QnA Makerコネクタを使用してユーザーからの質問をナレッジベースに送ります。質問は日常会話の形式です。たとえば、「チケットはどのように送信すればよいですか?」や「どんなサービスがありますか?」のような質問があります。

Azureのナレッジベースをチャットボットのバックエンドとして使用できます。詳細については、「AIチャットボットを作成する」をご覧ください。

マニュアルなどの静的コンテンツや、構造化された「質問と回答」のコンテンツがナレッジベースの情報源になります。詳細については、Microsoftの「インポートされたドキュメントおよびURLの形式のガイドライン」をご覧ください。

はじめに

Azure QnA Makerコネクタを使用する前に、Azureでナレッジベースを作成し、OutSystems環境にコネクタをインストールします。

AzureでQnAナレッジベースを作成するには、Microsoft Azureアカウントと、QnA MakerサービスとQnA Makerナレッジベースを作成するための権限が必要です。

Azureでナレッジベースを作成してデプロイする

Azureでナレッジベースを作成してデプロイするには、2つの方法があります。以下にその方法を示します。

QnAコネクタをインストールして参照する

コネクタをインストールしてアプリで参照するには、以下の手順を実行します。

  1. Azure QnA Maker ConnectorをForgeからインストールします。
  2. Service StudioでCrtl+Qを押し、[Manage Dependencies]ウィンドウでAzureQnAMakerConnectorを検索します。パブリック要素をすべて選択し、[Apply]をクリックします。

    QnAコネクタのストラクチャ

  3. これで、[Logic]のServer Actions > AzureQnAMakerConnectorでサーバーアクションをロジックに追加できるようになりました。

ナレッジベースの設定を取得する

Azure QnA Makerサービスから設定を取得する手順を以下に示します。これらの設定は、OutSystems QnA Makerコネクタを構成するときに必要です。

サブスクリプションキーとエンドポイントURL

QnA Makerサービスの設定は、Azureで実行されているCognitive Servicesに含まれています。

  1. Azureで、ナレッジベースの作成中にQnAナレッジベース用として作成したQnA Makerサービスを開きます。

  2. Keys and Endpoints]に移動します。以下の値をコピーします。

    • サービスのサブスクリプションキー。[KEY 1]または[KEY 2]のいずれかの値です。
    • サービスのエンドポイントURL。[ENDPOINT]フィールドのURLです。

    AzureのQnA Makerサービス

ナレッジベースのデプロイの詳細

これらの設定は、ナレッジベースをデプロイしたにQnA Makerポータルで使用できます。

  1. QnA Makerポータルに移動し、トップメニューの[My knowledge bases]を選択します。

  2. My knowledge bases]ページでナレッジベースを選択します。ナレッジベースエディタが開きます。

  3. ナレッジベースエディタで[Settings]タブに移動し、[Deployment details]セクションまで下にスクロールします。以下の値をコピーします。

    • ナレッジベースのID。POST URLに含まれるランダムな文字列です。たとえば、POST URLが/knowledgebases/123456-abcd-1234-abcd/generateAnswerのとき、ナレッジベースのIDは123456-abcd-1234-abcdです。
    • ナレッジベースのエンドポイントキー。「Authorization」行に含まれるランダムな文字列です。

    以下のスクリーンショットは、ナレッジベースのID(1)とナレッジベースのエンドポイントキー(2)を示しています。

    ナレッジベースのデプロイの詳細

QnA Makerコネクタを構成する

QnA Makerコネクタをアプリで使用するには、Service Centerでコネクタを構成する必要があります。

  1. Service Centerの[Factory > Modules]に移動します。

  2. Name]フィールドに「AzureQnAMakerConnector」と入力して、[Filter]を押します。

  3. 結果リストで[AzureQnAMakerConnector]をクリックして、モジュールの設定を開きます。[Site properties]タブに移動し、[SubscriptionKey]の設定を確認します。

    QnA Makerアクションを含むサンプルロジックフロー

  4. SubscriptionKey]をクリックし、[Effective Value]フィールドに、Azureから取得したサービスのサブスクリプションキーの値を入力します。[Apply]をクリックします。

コネクタをテストする

QnA Makerコネクタをテストし、動作していることを確認する必要があります。

ナレッジベースの情報をリクエストする

Azureのナレッジベースの情報をリクエストして、OutSystemsコネクタとAzure間の接続をテストします。

  1. サンプルアプリを作成し、QnA Makerコネクタを参照します。

  2. クライアントアクションを追加し、[Logic]のServer Actions > AzureQnAMakerConnector > QnAMakerAPI_KnowledgebaseからGetKnowledgebaseDetailsサーバーアクションをフローにドラッグします。

  3. GetKnowledgebaseDetailsサーバーアクションのプロパティで、[KbId]フィールドにナレッジベースのIDを入力します。

    コネクタにテキストを送信するサンプルフロー

    サーバーアクションの出力パラメータはKnowledgebaseDTOデータ型のKnowledgebaseDetailsです。この例では、JSONSerializeによってレスポンスが変換されてテキストとして表示されています。

  4. サンプルロジックを実行します。コネクタが適切に動作している場合、選択したナレッジベースの情報を受信します。この例では、ユーザーインターフェイスに情報が表示されますが、デバッガを使用して戻り値をすばやく検査できます。

    Azureから返されるナレッジベースの情報

ナレッジベースからの応答メッセージをリクエストする

QnA Makerコネクタによる応答の取得をテストする手順を以下に示します。

  1. サンプルアプリを作成し、QnA Makerコネクタを参照します。
  2. QuestionDTOデータ型の質問の変数を定義し、QuestionDTO.Questionに質問のテキストを設定します。たとえば、パラメータ名がMyQuestionQuestionDTOデータ型)の場合、MyQuestion.Question"What is your number?"になります。MyQuestion.Questionがコネクタによって質問としてナレッジベースに送信されます。

    質問のパラメータ

  3. Logic]のServer Actions > AzureQnAMakerConnector > QnAMakerAPI_GenerateAnswerからGenerateAnswerアクションをフローに追加します。アクションのプロパティに値を入力します。

    • QnAResourceName
    • KnowledgeBaseId
    • Authorization
    • Question

    QnAResourceNameKnowledgeBaseIdAuthorizationを取得する方法については、「参照」セクションをご覧ください。Questionは先ほど定義したQuestionDTO型のパラメータです。

  4. ナレッジベースから返された値を変数に保存します。応答メッセージはGenerateAnswer.Answer.Answers.Current.Answerのテキスト値です。

    Azure QnA Makerサービスからの応答を取得するサンプルロジック

  5. アクションを実行します。コネクタが適切に動作している場合、質問に最も近い一致を受信します。また、ユーザーインターフェイスを作成してナレッジベースの応答を表示したり、デバッガを使用して戻り値をすばやく検査したりすることができます。

    サンプル応答

参照

このセクションでは、追加情報を提供します。

コネクタのアクションのパラメータ

QnA Makerコネクタの設定と対応するAzureの値の一部を以下に示します。

プロパティ 場所 説明
KbIdKnowledgebaseId QnA Makerコネクタのサーバーアクション ナレッジベースの識別子(ID)。この識別子は、QnA Makerポータルのナレッジベースの設定にある[Deployment details]から取得します。POST URLのランダムな値です。
QnAResourceName QnA Makerコネクタのサーバーアクション QnA Makerを実行するAzureのサービスの名前。QnA Makerポータルの[Deployment details]から取得できます。Host行を確認し、URLの最初の部分を取得します。たとえば、Host行がHost: https://my-example-service.azurewebsites.net/qnamakerの場合、リソース名はmy-example-serviceです。AzureのサービスのエンドポイントURLからもリソース名を取得できます。
Authorization QnA Makerコネクタのサーバーアクション QnA Makerポータルのナレッジベースの設定にある[Deployment details]のエンドポイントキー。たとえば、Authorization行がAuthorization: EndpointKey abcd123456の場合、必要な値はabcd123456です。

データストラクチャ

コネクタのデータストラクチャを確認するには、Service Studioで[Data]のStructures > AzureQnAMakerConnectorを確認します。

APIに関するその他の情報

QnA Makerコネクタは、Azure QnA Makerサービスに基づいて作成されています。Azure APIの詳細については、「Azure Cognitive Services REST APIリファレンス」の以下の項目をご覧ください。

  • QnA Maker API
  • QnA Maker Runtime API