COVID-19 危機コミュニケーション・チャットボットを Web サイトに統合する

このチュートリアルでは、シンプルな Node.js アプリケーションを構築し、Watson Assistant API を利用して COVID-19 チャットボットに接続する手順を説明します。ここで説明する手順は、assistant-simple リポジトリーを 2020 Call for Code Challenge で使用するために採用されたものです。COVID-19 チャレンジでは、このチュートリアルを開始テンプレートとして使用できます。

学習の目的

このチュートリアルの目的は次のとおりです。

  1. シンプルな Node.js アプリケーションを作成する方法を学ぶ。
  2. IBM Watson Assistant API を利用してアプリケーションをチャットボットに接続する。
  3. アプリケーションをローカルでテストして実行する。
  4. アプリケーションを Cloud Foundry アプリケーションとして IBM Cloud 上にデプロイする。

完成版アプリケーションのデモをご覧ください。

チャットボットのデモ

前提条件

  1. IBM Cloud アカウントを登録します。
  2. IBM Cloud CLI をダウンロードします。この CLI を使用して Node.js アプリケーションを IBM Cloud にプッシュします。
  3. COVID-19 チャットボットを作成してデータ・ソースに接続します。このチャットボットを Node.js アプリケーション内で使用するには、このチャットボットから資格情報を取得する必要があります。

    • IBM Cloud アカウントにログインします。
    • リソースを表示して、Watson Assistant サービス・インスタンスを開きます。
    • Watson Assistant の起動ページが表示されます。「Service Credentials (サービス資格情報)」をクリックしてサービス資格情報を表示します。

      Watson Assistant 資格情報

    • 以下の手順でアプリケーションを構成する際に、これらの資格情報を .env ファイルに入力します。この JSON をコピーしてどこかに保存するか、このウィンドウを開いたままにしておいてください。

所要時間

このチュートリアルの所要時間は約 30 分です

アーキテクチャー図

以下の図に、COVID-19 に関する質問に答える Web サイト・チャットボットを作成する際のワークフローを示します。

危機コミュニケーションのアーキテクチャー図

  1. ユーザーが Web サイトにアクセスし、COVID-19 チャットボットに質問をします。
  2. Node.js Web サーバーが、IBM Cloud 内でホストされている Watson Assistant サービスを呼び出します。
  3. Watson Assistant が自然言語理解機能と機械学習を使用して、ユーザーの質問からエンティティーとインテントを抽出します。
  4. COVID-19 FAQ に信頼できる CDC データが提供されます。
  5. Watson Assistant が OpenWhisk オープンソースを利用した IBM Cloud Function を呼び出します。
  6. IBM Cloud Function が IBM Cloud 内で実行されている Watson Discovery サービスを呼び出します。
  7. Watson Discovery がニュース記事をスキャンし、関連する記事で応答します。
  8. Watson Assistant が OpenWhisk オープンソースを利用した IBM Cloud Function を呼び出します。
  9. IBM Cloud Function が COVID-19 API を呼び出して統計情報を取得します。
  10. Watson Assistant がユーザーの問い合わせに答えます。
  11. Node.js Web サーバーがチャットの答えをユーザーに表示します。

手順

以下の手順では、すでにアシスタントを作成して COVID スキルをインポートしていること、および Watson Assistant サービス資格情報を入手していることを前提とします。この前提条件を満たしていない場合は、まず、このチュートリアルを実施してください。

アプリケーションを構成する

  1. リポジトリーのクローンを作成し、cd を使用してカレント・ディレクトリーを starter-kit/covid-simple に変更します。

  2. .env.example ファイルを .env ファイルにコピーします。

     cp .env.example .env
    
  3. .env ファイルを開き、前のステップで取得したサービス資格情報を追加します。

    以下のサンプル .env ファイルでは、US East 地域内でホストされている Watson Assistant サービス・インスタンスの apikeyurl を構成しています。

     ASSISTANT_IAM_APIKEY=X4rbi8vwZmKpXfowaS3GAsA7vdy17Qhxxxxxxxx
     ASSISTANT_URL=https://gateway-wdc.watsonplatform.net/assistant/api
    
    • サービス・インスタンスで usernamepassword の資格情報を使用している場合、ASSISTANT_USERNAME 変数と ASSISTANT_PASSWORD 変数を .env ファイルに追加します。

      以下のサンプル .env ファイルでは、US South 地域内でホストされている Watson Assistant サービス・インスタンスの usernamepasswordurl を構成しています。

      ASSISTANT_USERNAME=522be-7b41-ab44-dec3-xxxxxxxx
      ASSISTANT_PASSWORD=A4Z5BdGENxxxx
      ASSISTANT_URL=https://gateway.watsonplatform.net/assistant/api
      

      一方、資格情報に IAM API 鍵が含まれている場合は、apikeyurl を該当するフィールドにコピーします。

      {
        "apikey": "ca2905e6-7b5d-4408-9192-xxxxxxxx",
        "iam_apikey_description": "Auto generated apikey during resource-key ...",
        "iam_apikey_name": "auto-generated-apikey-62b71334-3ae3-4609-xxxxxxxx",
        "iam_role_crn": "crn:v1:bluemix:public:iam::::serviceRole:Manager",
        "iam_serviceid_crn": "crn:v1:bluemix:public:iam...",
        "url": "https://gateway-syd.watsonplatform.net/assistant/api"
      }
      
     ASSISTANT_IAM_APIKEY=ca2905e6-7b5d-4408-9192-xxxxxxxx
    
  4. 上記のプロパティーに、ASSISTANT_ID を追加します。

     ASSISTANT_ID=522be-7b41-ab44-dec3-xxxxxxxx
    

ローカルで実行する

  1. 依存関係をインストールします。

     npm install
    
  2. アプリケーションを実行します。

     npm start
    
  3. ブラウザーで localhost:3000 にアクセスし、アプリケーションを表示します。

Cloud Foundry アプリケーションとして IBM Cloud 上にデプロイする

  1. IBM Cloud CLI を使用して IBM Cloud にログインします。

     ibmcloud login
    
  2. ターゲットとする Cloud Foundry の組織とスペースを設定します。

     ibmcloud target --cf
    
  3. manifest.yml ファイルを編集します。name フィールドの値を一意の値に変更します。
    例えば、- name: covid-assistant-simple-yourname とします。

  4. アプリケーションをデプロイします。

     ibmcloud app push
    
  5. アプリケーションの URL にアクセスしてオンライン・アプリケーションを表示します。例えば、covid-assistant-simple-yourname.mybluemix.net にアクセスします。

COVID-19 と向き合う

このチュートリアルでは、Watson Assistant と IBM Cloud 上の Web サイトを利用して、ユーザーがやり取りできるチャットボットを構築する方法を説明しました。他の Watson Assistant サンプル・アプリケーションについては、公式のドキュメントをご覧ください。

COVID-19 チャレンジに参加して、このチュートリアルで説明したテクノロジーを使用して、このパンデミックに役立つソリューションを考えていきましょう!