( PDF 파일을 다운로드를 하셔야 깨끗하게 보실 수 있습니다. )
구글의 챗봇 프레임워크인 Dialogflow로 카카오톡 챗봇을 만드는 방법을 설명한 발표 자료입니다. 궁금한 점이 있으시면 페이스북 챗봇 개발자 모임을 방문해 주시기 바랍니다.
< 챗봇 개발자 모임 >
- https://www.facebook.com/groups/ChatbotDevKR/
< PDF 파일 >
- https://goo.gl/cDfY41
< 소스 코드 >
- https://github.com/deepseasw/dialogflow_kakaotalk_chatbot
( PDF 파일을 다운로드를 하셔야 깨끗하게 보실 수 있습니다. )
구글의 챗봇 프레임워크인 Dialogflow로 카카오톡 챗봇을 만드는 방법을 설명한 발표 자료입니다. 궁금한 점이 있으시면 페이스북 챗봇 개발자 모임을 방문해 주시기 바랍니다.
< 챗봇 개발자 모임 >
- https://www.facebook.com/groups/ChatbotDevKR/
< PDF 파일 >
- https://goo.gl/cDfY41
< 소스 코드 >
- https://github.com/deepseasw/dialogflow_kakaotalk_chatbot
consumer_driven_contract with spring cloud contract at spring camp 2018minseok kim
스프링캠프에서 발표한 세션내용입니다. http://www.springcamp.io/2018/
마이크로서비스가 본격적으로 확산이되면 API 제공자와 사용자간의 dependency가 생겨서 마이크로서비스 API의 개선과정이 매우 복잡해지고 느려지게됩니다. 이 문제를 해결하기 위해 Consumer Driven Contract기법을 적용한 Spring cloud contract 프로젝트의 활용방법에 대해 소개하고 샘플 애플리케이션을 통해 개발자들이 API를 개발하고 테스트하며 개선하는 방식에 대해 알아봅니다
[MSP] 카카오 채널 챗봇 개발과 Azure App Service로 배포하기Aron Roh
Microsoft Student Partner 세미나
"카카오 채널 챗봇 개발과 Azure App service로 배포하기"
(Kakao channel chat-bot development & Deploy with azure app service)
-MSP 노아론(Aron Roh)-
consumer_driven_contract with spring cloud contract at spring camp 2018minseok kim
스프링캠프에서 발표한 세션내용입니다. http://www.springcamp.io/2018/
마이크로서비스가 본격적으로 확산이되면 API 제공자와 사용자간의 dependency가 생겨서 마이크로서비스 API의 개선과정이 매우 복잡해지고 느려지게됩니다. 이 문제를 해결하기 위해 Consumer Driven Contract기법을 적용한 Spring cloud contract 프로젝트의 활용방법에 대해 소개하고 샘플 애플리케이션을 통해 개발자들이 API를 개발하고 테스트하며 개선하는 방식에 대해 알아봅니다
[MSP] 카카오 채널 챗봇 개발과 Azure App Service로 배포하기Aron Roh
Microsoft Student Partner 세미나
"카카오 채널 챗봇 개발과 Azure App service로 배포하기"
(Kakao channel chat-bot development & Deploy with azure app service)
-MSP 노아론(Aron Roh)-
3. / 323
P P T 완 성 하
기
Dialogflow.com 접속
GO TO CONSLOE 클릭
새로운 프로젝트 생성
4. / 324
P P T 완 성 하
기
Intents
문장의 의도 및 대답 처리
Entities
문장안에들어있는개체정보
Knowledge Bases
웹페이지나 문서에서
정보를 찾아 대답
5. / 325
P P T 완 성 하
기
Fulfillment
외부 서버와 Restful API로
정보를 주고받음
Integrations
메신저나웹,음성비서와연동.
카카오톡 지원 안함
6. / 326
P P T 완 성 하
기
엔터티란문장에서추출하는핵심단어
같은 항목에 여러 개의 동의어 입력가능
치킨 정보 엔터티 생성
7. / 327
P P T 완 성 하
기
기본 인텐트 두개
Fallback은 일치하는 의도가 없을때 실행.
Welcome은 인사말.
치킨 정보 인텐트 추가
8. / 328
P P T 완 성 하
기
피자 정보 인텐트 추가
Training phrases에
사용자가 입력할 예시 문장들을 입력
치킨 정보 인텐트 추가
Action and parameters
이름에 ‘Ck_info’ 입력.
예문에서 자동으로 엔터티 인식
9. / 329
P P T 완 성 하
기
치킨 정보 인텐트 추가
PROMPTS
필요한 엔터티를 입력하도록 질문
REQUIRED 체크
슬롯 채우기. 문장에 엔터티가 없다면
PROMPTS 내용을 질문
10. / 3210
P P T 완 성 하
기
치킨 정보 인텐트 추가
결과
Responses 설정
파라미터에서 정의된 엔터티 변수
$Ck_type 사용
11. / 3211
P P T 완 성 하
기
Fulfillment로 기능 확장
Ck_info 인텐트에서 Fulfillment 체
크
파라미터에 따라 다른 대답
양념치킨 -> 양념치킨 소개, 파닭 -> 파닭 소개
12. / 3212
P P T 완 성 하
기
P P T 완 성 하 기
Fulfillment
Webhook과 Inline Editor 중 하나만 선택 가능
Fulfillment로 기능 확장
Inline Editor 사용
파이어베이스의 클라우드 함수. 자바스크립트로
홈페이지에서 직접 코드 작성
13. / 3213
P P T 완 성 하
기
P P T 완 성 하 기
함수 구조
Agent로 웹훅 메시지 처리. Parameter로 엔터티 정보 얻음.
Fulfillment로 기능 확장
Action and parameters
액션과 파라미터의 정보를 Inline editor에 보냄
14. / 3214
P P T 완 성 하
기
P P T 완 성 하 기
Ck_info 인텐트 추가
intentMap에 함수 이름 설정.
Parameter의 Ck_type에 따라 대답 설정.
Fulfillment로 기능 확장
DEPLOY로 파이어베이스 서버에 전송
View execution logs in the Firebase console에서 디버그 가능
15. / 3215
P P T 완 성 하
기
P P T 완 성 하 기
Inline editor사용
Fulfillment로 기능 확장
Inline Editor의 한계
확장성 떨어짐. Index파일 하나로 작업
16. / 3216
P P T 완 성 하
기
P P T 완 성 하 기
WebHook의 원리
WebHook
Heroku, Git
Heroku서버와, Heroku의 코드를 업로드하는 Git을 사용하여 서버 구축
Client Server
API Call
WebHook
17. / 3217
P P T 완 성 하
기
P P T 완 성 하 기WebHook
치킨 정보 웹훅 처리
Action 이름으로 구분. Ck_type에 따라 대답 처리
Action and parameters
액션과 파라미터의 정보를 WebHook에 보냄
18. / 3218
P P T 완 성 하
기
P P T 완 성 하 기WebHook
Fulfillment 설정
URL에 https://앱이름.herokuapp.com 입력
치킨 이름에 맞게 대답 설정
<Photo></Photo>는 사진 url
19. / 3219
P P T 완 성 하
기
P P T 완 성 하 기WebHook
WebHook 설정의 결과
20. / 3220
P P T 완 성 하
기
P P T 완 성 하 기KaKaoTalk 연동
키보드 처리
카카오톡 처음 접속시 요청. 메뉴 표시.
메시지 처리
카카오톡에서 user_key와 content 받음.
Dialogflow에서 대답을 구해 전송.
21. / 3221
P P T 완 성 하
기
P P T 완 성 하 기KaKaoTalk 연동
Dialogflow에 API 요청
Authorization에 설정 메뉴의 Client access token 입력
22. / 3222
P P T 완 성 하
기
P P T 완 성 하 기KaKaoTalk 연동
키보드 메뉴 처리Dialogflow에서 결과 받음
23. / 3223
P P T 완 성 하
기
P P T 완 성 하 기KaKaoTalk 연동
24. / 3224
P P T 완 성 하
기
P P T 완 성 하 기KaKaoTalk 연동
사진 처리
25. / 3225
P P T 완 성 하
기
주문 인텐트 설정
치킨 주문 인텐트 추가
Training phrases에 예시 문장 입력
Action and parameters
예문에서 자동으로 엔터티 인식
26. / 3226
P P T 완 성 하
기
REQUIRED 체크
슬롯 채우기. 문장에 엔터티가 없다면
PROMPTS 내용을 질문
PROMPTS
필요한 엔터티를 입력하도록 질문
주문 인텐트 설정
27. / 3227
P P T 완 성 하
기
Responses 설정
문장에 Ck_type 엔터티가 있으면
다음으로 주소를 물어봄
주문 인텐트 설정
28. / 3228
P P T 완 성 하
기
연속된 대화
follow-up 인텐트 추가
치킨 주문 후 이어서 주소 입력을 하도
록 연결된 대화 흐름 작성
Custom 형식 선택
29. / 3229
P P T 완 성 하
기
연속된 대화
Ck_order 인텐트에 output context 생성
자동으로 생성되는 output context로
현재 인텐트의 정보를 숫자만큼의 턴을 유지함
Ck_order와 연결된 새로운 인텐트
30. / 3230
P P T 완 성 하
기
연속된 대화
새로운 인텐트에 input context 생성
자동으로 생성되는 input context로
Ck_order-followup context가 존재해야 현재 인텐트 실행
주소 글자 입력후 드래그
@sys.any 선택 – 입력된 문장을 그대로 사용
31. / 3231
P P T 완 성 하
기
연속된 대화
PARAMETER NAME에 address 입력
Ck_type 파라미터 추가
Input context에서 받은 이전 인텐트 정보 사용
Ck_order 액션 이름 입력
32. / 3232
P P T 완 성 하
기
연속된 대화
Fulfillment 체크 WebHook에 치킨 주문 추가
34. / 3234
P P T 완 성 하
기
느낀점
새로운 언어와 새로운 플랫폼 환경
이전에 사용하지 않았던 언어와 접해보지 못한 툴을 사용하여 처음에는 많은 장벽에 부딫혔지만,
익숙해 지기 위해 계속해서 실습했습니다.
Dialogflow의 기능
간편하게 웹상에서 챗봇기능을 구현하며, 다른 프로그램들과의 연동성 또한 느낄 수 있었습니다.그
리고 높은 수준의 자연어 처리기능을 경험할 수 있었습니다.
WebHook의 중요성
처음에 다른 플랫폼과 비교하여 단순하게 Dialogflow만을 사용하여 실습을 하였을때는 여러가지
기능을 구현하는데 제약이 있었지만, Fulfillment와 WebHook을 사용하여 파이썬/자바스크립트
와 같이 사용할때 진정한 Dialogflow의 모든 기능을 사용할 수 있다는 걸 느꼈습니다.
챗봇의 전망
짧은 시간에 간단한 기본 지식만 가지고도 챗봇을 만들 수 있었습니다. 더욱 복잡한 연산을 가능케
하는 기술을 가지고 구현하는 상상만으로도 앞으로 챗봇의 미래가 무궁무진 하다는 것을 다시한번
알게되었습니다.
참고 페이지
• https://chatbotsmagazine.com/the-ultimate-guide-to-designing-a-chatbot-tech-stack-333eceb431da -chatbot magazine
• https://dialogflow.com/docs/ -dialogflow 홈페이지
• http://evey.hol.es/?p=90 - 개인 블로그
• https://medium.com/@jwlee98/gcp-dialogflow-%EB%A5%BC-%EC%9D%B4%EC%9A%A9%ED%95%9C-%EA%B0%84%EB%8B%A8-
%EC%B1%97%EB%B4%87-%EB%A7%8C%EB%93%A4%EA%B8%B0-514ea25e4961 - 개인 블로그
• http://aidev.co.kr/chatbotdev/5645 -AI Dev 인공지능 개발자 모임