웹사이트에서 코로나19(COVID-19) 위기 대응 커뮤니케이션 챗봇 통합하기

이 튜토리얼은 Watson Assistant API를 사용하여 COVID-19 챗봇에 연결된 간단한 Node.js 애플리케이션 작성 방법을 안내합니다. 각 단계는 assistant-simple 저장소에서 가져왔으며 2020 Call for Code 챌린지를 위해 채택되었습니다. 이 튜토리얼을 코로나19(COVID-19) 챌린지용 시작 템플릿으로 사용해도 됩니다.

학습 목표

학습 내용:

  1. 간단한 Node.js 애플리케이션 작성 방법 알아보기.
  2. IBM Watson Assistant API를 사용하여 애플리케이션을 챗봇에 연결하기.
  3. 로컬에서 애플리케이션 테스트 및 실행하기.
  4. 애플리케이션을 Cloud Foundry 애플리케이션으로 IBM Cloud에 배포하기.

최종 애플리케이션의 예시는 아래와 같습니다:

Chatbot demo

수강 전 준비사항

  1. IBM Cloud 계정 생성을 위해 가입합니다.
  2. IBM Cloud CLI를 다운로드합니다. IBM Cloud CLI는 Node.js 애플리케이션을 클라우드에 푸시하는 데 사용됩니다.
  3. COVID-19 챗봇을 만들고 데이터 소스에 연결합니다. Node.js 애플리케이션에서 사용할 자격 증명을 이 챗봇에서 받아야 합니다:

    • IBM Cloud 계정에 로그인합니다.
    • 리소스로 가서 Watson Assistant 서비스 인스턴스를 엽니다..
    • 그러면 Watson Assistant 시작 페이지로 연결됩니다. Service Credentials를 클릭하여 서비스 자격 증명을 확인합니다.

      Watson Assistant Credentials

    -아래의 애플리케이션을 구성할 때 이 자격 증명을 사용하여 .env 파일을 채웁니다. JSON을 복사하여 다른 위치에 저장하거나 이 창을 열어둡니다.

예상 소요 시간

이 튜토리얼을 완료하는 데 약 30분이 소요됩니다.

아키텍처 다이어그램

아래 다이어그램은 코로나19(COVID-19) 관련 질문에 답변하는 웹사이트 챗봇의 워크플로우를 보여줍니다.

Crisis Comms Architecture diagram

  1. COVID-19 챗봇을 사용하는 웹사이트에 사용자가 방문하여 질문합니다.
  2. Node.js 웹서버는 IBM Cloud에서 호스팅 되고 있는 Watson Assistant 서비스를 호출합니다.
  3. Node.js 웹 서버가 IBM Cloud에 호스팅된 Watson Assistant 서비스를 호출합니다.
  4. Watson Assistant가 자연어 이해 및 머신러닝 기능을 사용하여 사용자가 한 질문의 엔티티(entity)와 인텐트(intent)를 추출합니다.
  5. COVID-19 FAQ 정보를 신뢰할 수 있는 CDC 데이터에서 가져옵니다.
  6. Watson Assistant가 OpenWhisk 오픈소스 지원 IBM Cloud Function을 호출합니다.
  7. IBM Cloud Function이 IBM Cloud에서 실행되는 Watson Discovery 서비스를 호출합니다.
  8. Watson Discovery가 뉴스 기사를 검색하고 관련된 기사로 응답합니다.
  9. Watson Assistant가 OpenWhisk 오픈소스 지원 IBM Cloud Function을 호출합니다.
  10. IBM Cloud Function이 통계 정보를 얻기 위해 COVID-19 API를 호출합니다.
  11. Watson Assistant가 사용자의 질문에 응답합니다.
  12. Node.js 웹 서버가 사용자에게 채팅 답변을 표시합니다.

단계

다음의 각 단계는 여러분이 어시스턴트를 생성했고 COVID 관련 스킬을 가져오기(import) 했으며 Watson Assistant 서비스 자격 증명을 이용 가능함을 전제로 합니다. 이 조건을 충족하지 않는 경우 먼저 이 튜토리얼을 완료 하세요.

애플리케이션 구성

  1. 저장소를 복제(clone) 한 후 starter-kit/covid-simple로 이동합니다.

  2. .env.example 파일을 .env 라는 파일로 복사합니다.

     cp .env.example .env
    
  3. .env 파일을 열고 이전 단계에서 얻은 서비스 자격 증명을 추가합니다.

    아래의 .env 파일 예시에서는 미국 동부 지역에 호스팅된 Watson Assistant 서비스 인스턴스를 위한 apikeyurl 을 구성합니다:

     ASSISTANT_IAM_APIKEY=X4rbi8vwZmKpXfowaS3GAsA7vdy17Qhxxxxxxxx
     ASSISTANT_URL=https://gateway-wdc.watsonplatform.net/assistant/api
    
    • 서비스 인스턴스가 usernamepassword 자격 증명을 사용하는 경우 , .env 파일에 ASSISTANT_USERNAMEASSISTANT_PASSWORD 변수를 추가하세요.

      아래의 .env 파일 예시에서는 미국 남부 지역에 호스팅된 Watson Assistant 서비스 인스턴스를 위한 username, password, 및 url 을 구성합니다:

      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에서 애플리케이션을 봅니다.

IBM Cloud에 Cloud Foundry 애플리케이션으로 배포하기

  1. IBM Cloud CLI를 사용하여 IBM Cloud에 로그인합니다:

     ibmcloud login
    
  2. Cloud Foundry 조직(organization) 및 영역(space)을 대상으로 지정합니다:

     ibmcloud target --cf
    
  3. manifest.yml 파일을 편집합니다. name 필드의 내용을 고유한 이름으로 바꿉니다. 예를 들면, - name: covid-assistant-simple-yourname과 같이 입력합니다.

  4. 애플리케이션을 배포합니다

     ibmcloud app push
    
  5. 앱 URL에서 온라인으로 애플리케이션을 봅니다. 예를 들면, covid-assistant-simple-yourname.mybluemix.net을 사용합니다.

코로나19(COVID-19)에 대처하기

Watson Assistant 및 웹사이트를 사용하여 IBM Cloud에 챗봇을 구축하는 방법에 대해 알아보았습니다. 이 웹사이트에서 사용자는 챗봇을 이용할 수 있습니다. 공식 문서에서 다른 Watson Assistant 샘플 애플리케이션을 확인할 수 있습니다.

이제 여러분이 이 기술을 활용하여 코로나19(COVID-19) 챌린지에 동참하고 세계적 전염병과 싸우는 데 기여할 차례입니다!