4. Chatbot (챗봇) 이란?
• 옥스포드 사전의 정의에 따르면, Chatbot
은 아래의 한 문장으로 표현된다.
• “A computer program designed to
simulate conversation with human users,
especially over the Internet.”
• 좀 더 구체적으로 말하자면, Chatbot 은 웹
사이트, 어플리케이션 혹은 인스턴스 메신
저 (카카오톡, 페이스북, 텔레그램 등)과 연
동된 가상 친구로서 텍스트 메시지를 통해
우리와 소통하는 비서이자 사업가들이 고객
들과 더 가깝게 소통할 수 있도록 도와주는
통로로서의 역할을 수행한다.
• 이러한 Chatbot은 사용자들과 소통을 위한
자동화된 시스템이라고 정의할 수 있다.
4
5. Chatbot 의 역사
5
출처: https://www.altexsoft.com/blog/business/a-comprehensive-guide-to-chatbots-best-practices-for-building-conversational-interfaces/
ELIZA - 독일계 미국인 컴퓨터 공학자이자
MIT 공대 교수였던 Joseph Weizenbaum 에
의해 개발된 컴퓨터 프로그램으로, 심리치료사
와의 대화를 흉내내며 몇 가지 주요 단어들과 패
턴을 인식하여 그에 맞게 대답할 수 있는 세계
최초의 챗봇
Watson - 원래 의미는 미국 뉴욕주 요크타운에 위치한
Thomas J. Watson Research Center 에 있는 슈퍼컴퓨터라
고 볼 수도 있지만, 소프트웨적인 측면에서는 자연어 기반의 질
의응답을 할 수 있는 인공지능 시스템을 의미하며, 이시스템은
2006년에 Principal Investigator로 IBM에 재직했던 David
Ferrucci 가 주도한 DeepQA project의 결과물로 탄생함
Siri - 스티브 잡스가 생전에 마지막으로 참여하고 기획했
던 iPhone 4s 에 탑재된 인공지능 기반 음성 챗봇으로
서 원래 이 챗봇의 음성인식엔진은 미 국방성 산하 연구
개발 조직인 방위고등연구계획국(DARPA) 의 자금지원
으로 진행된 CALO project 의 결과물이었으나 스티브
잡스의 지시로 Siri를 2010년에 애플이 완전히 인수하면
서 비공개 소프트웨어로 전환되었고 아이폰, 아이패드 및
맥용 머신에만 탑재되어 있음
6. Chatbot 이 왜 필요한가?
• Chatbot 을 활용하면 비즈니스에는 도움이 별로 되지 않
으면서 반복적으로 시간을 소모해야 하는 대면 업무와 고
객이 요청하는 수많은 요구사항들을 실시간으로 처리할
수 있으므로 비용절감효과가 발생한다.
• 뿐만 아니라 Chatbot 이 엄청난 속도로 고객의 요청사항
을 처리하는 것을 경험한 소비자들은 해당 기업에 대해
더욱 더 강한 신뢰를 보내며 해당 기업의 브랜드와 제품
에 대해 강한 충성도를 보여주므로 도입할 만한 가치가
있다.
6
7. 고객은 왜 Chatbot 을
선택하는가?
• 2017년 11월에 열린 제4회 인터넷 과학 국제 컨퍼런스에
서 공개된 연구 보고서에 사람들이 Chatbot 과 소통하
길 선택하는지에 대해 몇 가지 이유가 명시되어 있다.
이 연구조사에 따르면, 사람들이 Chatbot을 사용하도록
동기부여하는 몇 가지 요인은 아래와 같다.
• 생산성 측면 - Chatbot은 정보에 빠르고 효율적으로 접
근할 수 있도록 도와준다.
• 엔터테인먼트 측면 - Chatbot은 고객들에게 재밌는 팁
을 제공해서 사람들을 웃게 하거나 고객들이 할 일이 없
을 때 심심하지 않게 도와준다.
• 소셜 및 관계 측면 - Chatbot은 고객들이 외로움을 피
할 수 있도록 도와주며 타인의 시선에 대해 신경쓰지 않
고 대화할 수 있고 대화 기술을 개선할 수 있도록 도와준
다.
• 호기심 측면 - Chatbot 으로 인해 고객의 호기심이 증폭
된다. 즉, 고객들은 Chatbot의 기능에 대해 자세히 알아
보고 싶어하며 새로운 것을 시도해보고 싶어한다.
7
9. –Christina Milian
“I think chatbots are the future of engagement
between a fan and a brand or celebrity.”
9
10. Chatbot은 어떻게
비즈니스에서 활용되는가?
고객 서비스 개선
쇼핑 프로세스 단순화
개인화된 소통방식
고객의 응답률 개선
반복된 업무 자동화
10
1. 상담원 응답을 기다릴 필요가 없음
2. FAQ 사이트에서 답변 검색할 필요 없음
고객이 Chatbot에게 사고자 하는 물건 정보만 전달하면
Chatbot이 자동으로 판매부서에 전달하여 재고가 있는지 확
인하여 전달하므로 불필요한 소통 제거 효과 발생
Chatbot은 많은 양의 긴 정보를 보여주는 대신 고객의 경험
에 기초하여 간결하게 구체적인 답변만 보여주므로 고객이
Chatbot 과 대화에 집중할 수록 고객은 구매 욕구가 상승한
다.
페이스북 페이지에서 고객에게 물어보는 질문은 90% 가
까이 답변이 되지 않는 상태로 남아있는 반면, Chatbot이 제
시한 질문에 대해서는 고객이 100% 답변을 하므로 더 많은
방문자가 고객이 될 가능성이 높아진다.
상당수 고객이 사는 곳, 직장, 배송 여부와 같은 반복된 질문
을 듣고 답변을 하고 있는데 Chatbot을 쓰면 이러한 소통을
대신 해주므로 노동자의 업무부담을 줄일 수 있다.
12. 어떤 종류의 Chatbot이 있는가?
• Chatbot 이 고객이 자주 묻는 질문에 대한 답변자뿐만 아니라 기업의 제품에 대해 구매의도가 있는 고
객들의 니즈를 발굴할 수 있는 도구 (Lead Generation)로서 비즈니스의 다양한 영역의 업무를 할 수
있게 되면서 Chatbot은 사용 범위가 점점 확장되고 있다. 여러 케이스가 존재하지만 대표적으로
Chatbot은 크게 5가지 종류로 분류할 수 있다.
• FAQ assistants - 고객이 기업에 대해 많이 하는 간단한 질문에 대해 친절하게 답변해주는 역할
• Navigation Bots - 고객이 원하는 정보가 담긴 블로그나 지도 등을 보여줘서 검색 스트레스를 줄여줌
• Lead generation and retention bots - 특정 쇼핑몰에 방문했을 때 고객의 구매의도 및 취향을 파악
해서 고객에게 맞는 맞춤형 상품을 추천하고 재구매를 하게 해주는 역할
• Transaction bots - 예를 들면 Chatbot이 사람 대신 고객으로부터 주문을 받아 정보를 사람에게 전달
하여 직접 고객에게 배송할 수 있도록 도와주는 역할
• Internal assistant chatbots - 회사 내의 직원들이 관리부서 직원에게 각종 질문 및 서비스를 요청하
는 경우가 많은데 관리부서 직원 대신 Chatbot이 업무를 처리해주는 역할 (예: 휴가 및 경조사 규정등
을 알려주는 업무 혹은 비용 처리 업무 대행)
12
16. 챗봇 예시 - 소매 및 패션 업계
• Retailer & Brand Chatbot offers to consumers powered by AI - TrendBrew
• 출처: https://www.youtube.com/watch?v=74JEJlpX9w4
16
17. 챗봇 예시 - Google Duplex
• Google Duplex A.I. - How Does it Work? - ColdFusion
• 출처: https://www.youtube.com/watch?v=IuIpgArEZig
17
19. Chatbot 개발 프로세스
목적 정의
고객과 소통할
플랫폼 선택
개발 방식 선택 개발, 맞춤화 및 배포
Chatbot이 반드시 수행
해야 하는 기능 정의 및 목
록 생성
Chatbot이 동작하는
Channel 을 선택
(예: 자사 웹사이트,
Facebook,
Telegram)
Chatbot의 동작 기반인
Bot Engine을 자체 개발할 것
인지 검증된 기업의 Builder
Platform을 써서
개발할 것인지 선택
Chatbot의 동작 알고리
즘 정리 및 답변에 대한 데이
터베이스 구축 및 유닛 테스
트 및 사용자 테스트 수행
19
20. Chatbot 시스템 내부 구조
20
출처: https://wiprodigital.com/2019/07/11/conversational-ai-and-chatbots-the-new-digital-frontier/
Channels Bot Engine Enterprise System
24. Chatbot 개발 비용 구조 예시
24
출처: https://www.cleveroad.com/blog/how-to-create-a-chatbot-for-business--step-by-step-guide-with-an-estimation
25. Chatbot 대화 수준 정의
25
출처: https://chatbotslife.com/ultimate-guide-to-leveraging-nlp-machine-learning-for-you-chatbot-531ff2dd870c
26. Chatbot 관련 기본 용어
• Intents: to convey purpose or goal
• Entities: make logical decisions based on user input
• Dialogs: design a conversation
• Slots: collect important information to fulfill an
intent
• Digressions and Handlers: handle unexpected
conversations.
26
28. 전체 실습 프로세스
IBM Cloud 에 로그온
IBM Watson Assistant 활성화
및 다이얼로그 완성
IBM Cloud Functions 의 Action
생성 및 코딩
IBM Watson Assistant의 다이얼
로그와 Action을 연결
IBM Node-Red에서
Telegram과 연결
Telegram 에서 Chatbot 동작
확인
28
29. 강의 관련 GitHub Repository
29
https://github.com/KyoYoon/ibm_watson_chatbot_lecture_basic
30. 실습에 들어가기 전에..
• Chrome 브라우저 설치
• Gmail 계정 생성 및 Google Colab 접속
• Telegram 다운로드 및 설치 후 Bot 생성
• Open API 신청
• IBM 계정 생성
• IBM Cloud 접속 후 활성화
30
39. Telegram Bot 만들기 (3)
4. name 을
watson_chat_<your_name>_bot
으로 입력 후 엔터
5. username 을
watson_chat_<your_name>_b
ot 으로 입력 후 엔터
6. Token 을 복사해서 따
로 저장 (매우 중요!)
39
40. Telegram Bot 만들기 (4)
7.
@watson_chat_<your_name>_bot
입력 후 검색한 후 결과에 나오는 Bot
선택
40
41. 공공 인공지능 오픈 API DATA
서비스 포털에서 대화처리 API 신청 (1)
41
42. 공공 인공지능 오픈 API DATA
서비스 포털에서 대화처리 API 신청 (2)
42
43. 공공 인공지능 오픈 API DATA
서비스 포털에서 대화처리 API 신청 (3)
43
44. 공공 인공지능 오픈 API DATA
서비스 포털에서 대화처리 API 신청 (4)
44
45. 공공 인공지능 오픈 API DATA
서비스 포털에서 대화처리 API 신청 (5)
45
46. 공공 인공지능 오픈 API DATA
서비스 포털에서 대화처리 API 신청 (6)
왼쪽과 같이 관리자로부터 메일이
오면 양식을 그대로 복사해서 붙여
넣기 후 관련 내용 기입해서 답장
을 보내면 관리자가 확인 키 발급
을 진행하게 됨
46
47. 공공 인공지능 오픈 API DATA
서비스 포털에서 대화처리 API 신청 (7)
47
48. IBM 계정 생성 (1)
48
https://www.ibm.com/kr-ko
55. IBM Cloud 로그인 및 활성화
1.공공장소에서 동일한 네트워크에 여러 명이 접
속한 뒤에 처음 IBM Cloud 접속 후 활성화를
진행하면 IBM에서 활성화를 차단하므로 먼저
본인 스마트폰과 테터링을 먼저 해야 됨
-> 집에서 혼자 이 작업을 진행할 때는 필요없음
55
https://cloud.ibm.com/
56. IBM Cloud 로그인 및 활성화
56
https://cloud.ibm.com/
71. IBM Watson Assistant
하부 구성요소
71
IBM Watson
Assistant
IBM Cloud
Assistant #1 Assistant #2
Skill 1 Skill 2 Skill 1 Skill 2
Intent #1 ~ n
Entity @1 ~ n
Dialog
Intent #1 ~ n
Entity @1 ~ n
Dialog
Intent #1 ~ n
Entity @1 ~ n
Dialog
Intent #1 ~ n
Entity @1 ~ n
Dialog
73. 레스토랑 예약 챗봇 (영어)
73
레스토랑
영업시간 문의
레스토랑
위치 문의
이 레스토랑은
본점과 분점 총
2개의 매장이
있다고 가정하고
챗봇이 질문
74. 레스토랑 예약 챗봇 (영어)
74
레스토랑
테이블 예약 문의
챗봇이
레스토랑
위치, 시간,
총 인원 정보
요청
#1 레스토랑 위치
답변함
챗봇이
예약 날짜에 관해
질문
#2 “내일”이라고
답변함
챗봇이
예약 시간에 관해
질문
#3 “저녁7시”
라고 답변함
챗봇이
예약 인원에 관해
질문
#4 “3명”이
라고 답변함
챗봇이
최종 예약
확인 통보
82. Intent 만들기 -
#book_table
82
User examples
Can I book a table for 4 people, at 7pm?
can i book a table?
Can I reserve a table for 10 people at 8pm?
can I reserve a table?
I'd like to book a table
I'd like to book a table for 3 people, at 10am
I'd like to reserve a table
I'd like to reserve a table for 7 people, at 6pm
85. Intent 만들기 -
#locations
85
User examples
can you tell me where it is?
can you tell me where the restaurant is?
how can i get there?
please, let me know the address of the restaurant
please, let me know the location of the restaurant
please, tell me the address of the restaurant
please, tell me the location of the restaurant
plz, let me know the address of it
Where is the store at
86. Intent 만들기 -
#locations
86
User examples
plz, let me know the location
plz, let me know the location of it
plz, tell me the address
plz, tell me the address of it
plz, tell me the location of it
what's the address of the restaurant?
where is the restaurant
where is the restaurant located?
where is it
97. Dialog 만들기 -
“Hours of Operation” Node
97
#3
그냥 사용자가 다음 질문을
할 때까지 기다리는 옵션으
로 설정
#1
사용자가 해당 Intent 에
부합하는 질문을 할 때만 챗봇
이 동작하도록 정의
#2
사용자의 질문에 챗봇이
대답할 답변 정의
#4
이 노드의 이름 정의
98. Dialog 만들기 -
“Hours of Operation” Node
98
사용자가 챗봇에게 던진 질문
챗봇이 사용자의 질문에 답변함
챗봇이 사용자의 질문의 intent를
#hours_of_operation 으로
파악함
99. Dialog 만들기 -
“Locations” Node
99
#1
사용자가 해당 Intent 에
부합하는 질문을 할 때만 챗봇
이 동작하도록 정의
#2
이 레스토랑은 같은 상호로 2개가 있으므로
이 Intent에 대해 챗봇이 다르게
반응하도록 하기 위해 Customize를
클릭해서 설정을 변경해야 함
112. Dialog 만들기 -
“Book Table” Node
112
CHECK FOR SAVE IT AS
IF NOT
PRESENT, ASK
TYPE
@locations $locations Which store did you want
to go to? First or Main? Required
@sys-date $date What day do want to
come in? Required
@sys-time $time What time did you want
to arrive? Required
@sys-number $number How many people in your
party? Required
118. Dialog 테스트 -
“Book Table” Node
118
사용자는 예약을 끝내서 식사를 잘 했고 약 2주가 지난 후 다시 이 레스토랑에서 식사를 하기로 해서
챗봇에게 “Can I book a room?”라고 말했는데 이전 예약 정보가 그대로 남아서
예약이 되었다는 황당한 메시지를 받게 된다.
이 문제를 어떻게 수정해야 할까?
119. Dialog 수정 -
“Book Table” node
119
테이블 예약이 끝나면 고객이 챗봇과 대화를 할 이유가 없어지므로 일단 대화가 처음부터 다시 시작되어야 한다.
아래와 같이 “The assistant should” 부분에서 아래 옵션을 “Jump to”로 바꿔준 후 테이블 예약 관련 노드에서
Welcome 노드로 이동하도록 마우스를 클릭한 후 옵션을 Respond로 주면 된다.
120. Dialog 수정 -
“Welcome” Node
120
그 다음은 대화가 끝나고 난 후 대화를 재시작할 때 기존에 저장되어 있는 Context Variable을 어떻게
초기화할 수 있을지 방법에 대해 생각해보아야 한다.
대화의 시작은 Welcome Node 이므로 Welcome Node 가 실행될 때 기존에 있던 Context Variable을
초기화해주는 것이 해결책이다.
아래와 같이 오른쪽 마우스 클릭 후 Open JSON Editor를 클릭해서 context variable들을 초기화하는
셋팅을 넣을 준비를 한다.
121. Dialog 수정 -
“Welcome” Node
121
{
“output":{ … },
"context": {
"locations": null,
"time": null,
"date": null,
"number": null }
}
아래와 같이 JSON Editor에서 빨간 색으로 된 부분을 추가하여 Context Variable 들의 값들을 전부 null 로
셋팅한다.
이렇게 되면 기존 데이터는 다 사라지고 완전히 처음 상태로 돌아가서 대화를 시작할 수 있게 된다.
Context variable
초기화
122. Dialog 수정 -
“Welcome” Node
122
대화가 재시작될 때 아래와 같이 기존에 값이 저장된 Context Variable의 값이 전부 null 로 바뀌게 된다.
123. Dialog 테스트 -
“Book Table” Node
123
수정을 다 한 후 다시 테스트를 하게 되면 아래와 같이 대화가 재시작될 때 기존에 저장된 정보들은 다 사라졌으므로
예약 관련 질문을 해서 필수 정보가 언급이 되어 있지 않으면 챗봇이 다시 정보를 달라고 요청하게 된다.
124. Dialog 수정 -
“Welcome” Node
124
이제, Intent, Entity, Dialog 전부 완성하였고 테스트를 완료하였으니 Node-Red를 통해 텔레그램 메신저에
배포할 차례이다. 그 전에 Welcome 노드를 수정해야 하는데 그 이유는 텔레그램은 대화가 시작과 동시에
“/start”라는 문자를 전송하는데 이를 Watson Assistant 가 인지를 못한다.
따라서, 이와 관련된 Entity를 하나 만들고 이 Entity를 Welcome Node 에 적용해보도록 하자.
125. Dialog 수정 -
“Welcome” Node
125
아래와 같이 telegram_start 라는 이름으로 Entity를 하나 만들고 추가할 값으로 /start 를 넣고 저장한다.
126. Dialog 수정 -
“Welcome” Node
126
아래와 같이 @telegram_start 를 Welcome Node의 “If assistant recognizes” 부분에
or 조건으로 연결해서 저장한다.
127. Node-Red 란 무엇인가?
127
IBM Cloud 안에서 만든 모든 어플리케이션들을 사용자가 사용하는 플랫폼 혹은 하드웨어에
배포를 해서 실사용자들이 쉽게 해당 어플리케이션들을 쓸 수 있도록 해주는 프로그래밍 툴
https://nodered.org/
141. Node-Red 로그인
Node-Red: an open source logic engine that allows programmers of any level to easily write code
that can connect to APIs, hardware, IoT devices or online services
141
156. 위키 QnA 챗봇 (한국어)
156
서울의 면적이 얼마야?
605.2 km
나폴레옹이 누구야?
나폴레옹 3세 또는 샤를 루이
나폴레옹 보나파르트(프랑스
어: Charles …
157. 위키 QnA 챗봇 개발하기 전에..
• 앞서 이전 슬라이드에서 소개한 대로 공공 인공지능 오픈 API DATA 서비스 포털에서 신청한 API Key
가 본인 메일로 전달되었는지 확인
• 공공 인공지능 오픈 API DATA 서비스 포털에서 API 사용 관련 파이선 소스코드 확인 후 이해 (대화처
리 API를 사용할 예정임)
• Google Colab(구글 코랩)으로 접속한 후 주피터 노트북 파일 생성 후 상기 포털에 나온 파이선 소스코
드를 붙여넣고 수정 후 해당 API의 사용법 및 동작 원리와 실행 결과가 무엇인지 확인 (Gmail 계정이
필요하며, 소스코드를 보면서 JSON 형식으로 된 문자열에서 원하는 결과값과 관련된 Key에 접근하여
Value를 추출 후 챗봇이 사용자에게 전달할 답변을 생성하는 프로세스를 이해할 수 있어야 함)
• Cloud(클라우드)가 무엇인지 왜 쓰는 것인지에 대한 간단한 이해 (글로벌 IT 기업들이 내세우는 자사
클라우드의 핵심 기능 중 하나인 Auto Scailing 이 무엇인지 간략히 이해할 필요가 있음)
• Web Hook 및 Serverless Function 개념에 대한 이해 (챗봇이 사용자의 질문에 답변을 할 때 Watson
Assistant에 설정한 답변 외에 외부 데이터를 가져와서 답변을 하기 위해서는, IBM 클라우드 안에서
Serverless Function에 속하는 Action을 생성 후 해당 Action안에 해당 데이터를 가져오는 소스코드
작성 후 해당 Action의 URL을 Watson Assistant 내에 있는 해당 Skill 에 Web Hook으로 설정해주는
작업이 필수적으로 요구됨)
157
168. Cloud 의 정의
168
Cloud는 하드웨어, 개발 플랫폼 혹은 서비스와 같은 가상화된 리소스를 쉽게 사용하고 접근할 수 있도록 설계된
거대한 리소스 풀을 의미하며, 기존 물리 서버와 달리 인터넷 트래픽 증감에 따라 리소스의 규모를 줄이거나 늘릴 수
있도록 하는 기능이 포함된다.
Cloud 서비스 제공 기업은 고객에게 전기처럼 IT 인프라, 플랫폼 및 소프트웨어를 제한된 기간과 시간 내에 사용할 수
있고 그에 맞게 요금을 낼 수 있도록 하는 구독형 서비스를 제공한다.
Cloud를 사용하면서 고객이 지불하는 요금에는 Cloud 서비스 제공 기업이 따로 전 세계의 소프트웨어 벤더,
하드웨어 벤더들과 별도로 소프트웨어 라이선스 계약을 맺은 비용이 함께 포함되어 있어서 사용자가 라이선스에 대해
신경쓰지 않고 서버, OS, Software들을 사용할 수 있다.
출처: http://ccr.sigcomm.org/online/files/p50-v39n1l-vaqueroA.pdf
169. Cloud 의 종류
169
출처: https://www.journaldev.com/25061/cloud-computing
170. Cloud 의 핵심 기능
(Auto Scaling)
170
Cloud에서 Scaling의 의미는 Cloud 내의 가용한 리소스의 성능을 늘렸다가 줄였다가 하는 것을 의미한다.
Cloud와 달리 일반적인 물리 서버에서는 이러한 동작을 사람이 직접 물리적으로 설정을 해서 성능을 높였다면,
글로벌 IT 기업이 운영하는 Cloud 에서는 자체 개발한 내부 소프트웨어로 리소스를 모니터링해서 자동으로
리소스의 성능을 줄였다가 높였다가 할 수 있는 서비스를 제공한다.
이 자동화된 서비스를 Auto Scaling이라고 한다.
Cloud 내부의 소프트웨어
가 내/외부 트래픽의 증감을
모니터링하여 자동으로
Scaling을 해줌
(Auto Scaling)
출처: https://www.nitrix-reloaded.com/2016/10/01/scalability-scale-outin-vs-scale-updown-horizontal-scaling-vs-vertical-scaling/
171. Web Hook & Serverless
Function in Chatbot
171
Webhook은 서버에서 어떠한 작업이 수행 되었을 때 해당 작업이 수행되었음을 HTTP POST로 알리는 개념이며,
Webhook을 구현한 웹 애플리케이션은, 특정 작업이 수행될 때 URL에 대해 POST방식으로 요청을 생성한다.
챗봇 개발시에 대화 중간에 챗봇이 외부에서 데이터를 부르기 위해서는 Webhook을 구현한 어플리케이션을 URL로
호출할 수 있어야 하며 현재 IBM Cloud 에는 Skill 에서 Webhook URL을 정의할 수 있고 Node 별로 Webhook을
활성화시켜 Webhook을 통해 외부 데이터를 호출해서 대화창에 보여줄 수 있도록 하고 있다.
Serverless Function 은 쉽게 설명하자면 서버를 거치지 않고 Function을 호출할 수 있는 아키텍쳐 내에서 설계된
Function을 말하며 이 서비스를 사용하는 개발자는 서버를 소유하지 않고 Function만 호출할 수 있으므로 비용이 절
약되고 복잡한 로직을 처리하는 기능이 아니라 주기적으로 호출하거나 특정 이벤트 시에만 호출하는 기능을 쉽게
구현할 수 있어서 많이 애용되고 있다.
IBM Cloud 에서는 IBM Cloud Function 이라는 서비스가 Serverless Function을 지원하는 서비스인데 챗봇 실행
중에 챗봇이 외부 데이터를 가져오려면 개발자가 파이썬 코드로 외부 서버의 API를 통해 데이터를 가져오는 코드를 작
성할 수 있어야 하는데 이를 지원하는 서비스가 바로 IBM Cloud Function이다.
IBM Cloud Function 내에서 실제 기능을 수행하는 함수를 Action이라고 하며 이 Action 안에서 파이썬으로 코딩을
해서 외부 데이터 호출 로직을 넣을 수 있고 이 Action 자체가 URL을 가지고 있는데 이를 IBM Watson Assistant
의 Skill 내의 Webhook 에 이 URL을 넣어서 대화 중간에 특정 상황에 대해 해당 Action을 실행시킬 수 있다.
198. 트위터 챗봇 개발하기 전에..
• 먼저 트위터 (https://twitter.com/ )에 접속해서 로그온을 해야 함 (계정이
없으면 회원가입을 해서 생성해야 함)
• 트위터 API를 사용하기 위해 트위터 개발자 사이트(https://
developer.twitter.com/en/apply-for-access.html )에 접속해서 약관에
동의하고 사용해야 될 이유와 목적 등을 영어로 기술하여 신청을 함
• 트위터 측에서 확인을 거쳐 신청할 때 사용한 메일로 인증 키 정보를 받아
야 하며 Consumer key (API key), Consumer Secret (API Secret),
Access Token, and Access Token Secret 총 4개를 받게 됨
• 인증 키 정보를 확인 후 구글 코랩에서 트위터의 트윗 정보를 가져오는 코
드를 작성하고 키 정보를 문자열 형태로 기입한 후 실행하여 제대로 정보
를 가져오는지 확인
198
205. 트위터 API 신청
205
<예문>
Through Twitter API or Twitter data, I'd like to create a chatbot for showing
users recent tweets and the relevant information to enable them to utilize those things.
Since I'm a beginner as a chatbot developer, I just want to use a function of showing
last tweets on my chatbot. That's it.
212. 트위터 API 신청
212
예문: This app is about showing users last tweets posted from twitter members.
213. 트위터 API 신청
213
예문: This app is just to retrieve last tweets posted from twitter member.
I'd like to create a chatbot for showing users a couple of recent tweets. That's it .
232. Skill에서 Intent 생성 - #twitter
232
User examples
@blackmirror
any news from twitter
hey give me the last 3 tweets
news on the event from twitter
show me some news from twitter
show me the last 3 tweets
show me what social media is saying about the event
233. Skill에서 Intent 생성 - #twitter
233
User examples
some tweets
twitter @account
twitter messages
twitts please
what people is saying about the show
what people is saying on twitter
what the social media is telling about the event ?
252. “Account Specified” Node에
Web Hook 실행결과 세팅
252
1. Web Hook 호출이 성공적으로 끝났을 경우
Last Tweets for $account:<br> - <? $webhook_result_1.response.result.message[0] ?> <br> - <?
$webhook_result_1.response.result.message[1] ?><br> - <? $webhook_result_1.response.result.message[2] ?>
2. Web Hook 호출이 실패했을 경우
I couldn't find the account - please try again with e.g. @blackmirror @stranger_things