코로나19(COVID-19) 위기 대응 커뮤니케이션 챗봇과 Slack 통합하기 – IBM Developer

IBM Developer 한국어 사이트가 2021년 6월 1일자로 종료됩니다. developer.ibm.com 영문 사이트는 계속 사용하실 수 있습니다.

코로나19(COVID-19) 위기 대응 커뮤니케이션 챗봇과 Slack 통합하기

위기 상황에서 챗봇은 사람들이 중요한 질문에 대한 답을 빨리 찾는 데 도움을 줄 수 있습니다. 코로나19(COVID-19)와 같은 전염병이 세계적으로 대유행하는 시기에 사람들은 질병의 진행 또는 검사를 받을 수 있는 장소 등에 관한 정보를 찾으려고 할 것입니다. 이 튜토리얼에서는 사용자가 코로나19 관련 질문에 대한 답을 더 빨리 찾을 수 있도록 위기 대응 커뮤니케이션 챗봇을 Slack과 통합하는 방법에 대해 설명합니다.

이 튜토리얼은 Slack으로 COVID 위기 대응 커뮤니케이션 챗봇을 원활하게 실행하는 방법에 대한 단계별 지침을 제공합니다.

아래 이미지는 Slack과 통합된 챗봇의 예를 보여줍니다.

Slack integration GIF

학습 목표

학습 내용:

  • Slack 애플리케이션 구축 방법 알아보기
  • Slack 앱과 Watson Assistant 통합하기
  • Call for Code COVID Crisis Communications Slack 지원 챗봇 솔루션 구축하기

수강 전 준비사항

예상 소요 시간

수강 전 준비사항을 완료하고 이 튜토리얼을 마치는 데 약 15분이 소요됩니다.

아키텍처 다이어그램

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

Crisis Comms Architecture diagram

  1. 사용자가 COVID-19 Slack 통합 챗봇 앱을 호출하고 질문을 합니다.
  2. Slack 앱이 IBM Cloud에 호스팅된 Watson Assistant 서비스를 호출합니다.
  3. Watson Assistant가 자연어 이해 및 머신러닝 기능을 사용하여 사용자가 한 질문의 엔티티(entity)와 인텐트(intent)를 추출합니다.
  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. Cloud Function이 통계 정보를 얻기 위해 COVID-19 API를 호출합니다.
  10. Watson Assistant가 Slack 앱에 응답합니다.
  11. Slack 앱이 사용자에게 채팅 답변을 표시합니다.

단계

Slack Workspace 및 Watson Assistant 챗봇이 원활하게 실행되면 Slack과 챗봇을 통합할 수 있습니다.

  1. COVID-19 Crisis Communications Assistant로 이동하여 Add Integration.을 클릭합니다.

    Add integration button in Watson Assistant

  2. Watson Assistant UI에서 아래로 스크롤하여 “Third-party integration” 섹션으로 이동하고 Slack을 선택합니다.

    Add integration to Slack

  3. 먼저 Slack App을 생성해야 합니다 Create New App을 클릭하고 애플리케이션의 이름을 지정한 다음 Slack 개발 워크스페이스를 선택합니다. Slack App 생성에서 이에 대한 자세한 내용을 확인할 수 있습니다.

    Create a Slack app

  4. Slack app Settings 페이지에서 Basic Information 탭으로 이동한 다음 App Credentials 섹션을 확인합니다. 이 섹션에서 검증 토큰을 복사합니다.

    Copy App Credentials

  5. 4단계에서 복사한 검증 토큰을 Watson Assistant Slack 통합 페이지에서 2단계의 해당 영역에 붙여넣습니다.

    Paste App Credentials

    옵션으로 선택 가능한 단계에서 Basic Information 탭의 Display Information 섹션에 애플리케이션 아이콘과 애플리케이션 이름을 추가할 수 있습니다.

    Paste App Credentials

  6. OAuth & Permissions 탭으로 이동합니다. Bot Token Scopes 섹션에서 Add an Oauth Scope 를 클릭한 다음, app_mentions:read, chat:write, im:history, im:read, 및 im:write 를 선택합니다.

    Paste App Credentials

  7. OAuth & Permissions 탭에서 Install App to Workspace 를 클릭한 다음 Allow 를 클릭합니다. 그러면 OAuth & Permissions 페이지로 다시 이동합니다.

    Paste App Credentials

    참고: 봇 사용자의 OAuth 액세스 토큰 (xoxb로 시작)을, Watson Assistant Slack 통합 페이지의 2단계 > 섹션 3에 있는 OAuth 액세스 토큰 필드와 봇 사용자 OAuth 액세스 토큰 필드에 모두 복사하세요.

    Paste App Credentials

  8. Slack app Settings 페이지에서 Event Subscriptions 탭으로 이동합니다. Enable Events 토글을 On 이 되도록 클릭합니다. Watson Assistant Slack Integration 페이지의 3단계로 가서 Generate Request URL을 클릭합니다. 요청된 URL을 Slack app Settings 페이지에 붙여넣고 Enable Events 페이지에서 확인합니다..

    Paste App Credentials

  9. Event Subscriptions 탭에서 Subscribe to Bot Events 섹션으로 갑니다. Add Bot User Event 를 클릭한 다음 구독하려는 이벤트 유형을 선택합니다. 다음 유형 중 하나 이상을 선택해야 합니다:

    • message.im: 다이렉트 메시지 채널에 게시된 메시지 이벤트를 수신
    • app_mention: 또는 봇을 언급한 메시지 이벤트만 수신

      Paste App Credentials

      변경 사항을 저장합니다.

  10. App Home 탭에서 Edit를 선택하고 가상 어시스턴트의 표시 이름과 기본 사용자 이름을 입력합니다. Save를 클릭합니다. Always Show My Bot as Online 토글을 활성화합니다.

    Paste App Credentials

  11. Watson Assistant Slack Integration 페이지에서 Save Changes 를 클릭합니다.

  12. Slack 워크스페이스에 로그인하고 Browse App을 클릭합니다. 방금 작성한 앱을 찾아서 워크스페이스에 추가합니다.

    Paste App Credentials

  13. 대화 트리의 인텐트와 엔티티를 바탕으로 질문을 하여 애플리케이션을 테스트합니다. 답변이 나타나면 COVID-19 Crisis Communication Assistant를 성공적으로 통합한 것입니다. 축하합니다!

요약

챗봇을 간편하게 프로비저닝하고 Slack에 연결하는 방법을 알아보았습니다. 이제 새로 배운 지식을 활용하여 코로나19(COVID-19)와 같은 위기에 대처하기 위한 솔루션을 만들어보고 Call for Code 코로나19(COVID-19) 챌린지에 동참하세요.