( PDF 파일을 다운로드를 하셔야 깨끗하게 보실 수 있습니다. )
구글의 챗봇 프레임워크인 Dialogflow로 카카오톡 챗봇을 만드는 방법을 설명한 발표 자료입니다. 궁금한 점이 있으시면 페이스북 챗봇 개발자 모임을 방문해 주시기 바랍니다.
< 챗봇 개발자 모임 >
- https://www.facebook.com/groups/ChatbotDevKR/
< PDF 파일 >
- https://goo.gl/cDfY41
< 소스 코드 >
- https://github.com/deepseasw/dialogflow_kakaotalk_chatbot
파이썬으로 코딩 기초를 배우고 플라스크로 웹서비스 개발을 배우는 과정을 다루고 있습니다.
- 입문용 자료입니다.
ABCD : http://www.abcds.kr/
Facebook Group : https://www.facebook.com/groups/562787713823026/
한성일 : https://www.facebook.com/jamie.han.16
iheart79@gmail.com
커빙의 Django, Celery, Azure Cloud, SNS 연동, 컨텐츠 수집 기술을 한눈에 볼 수 있도록 소개한 자료 입니다.
커빙을 처음 개발하면서 많은 어려움이 있었고,
또 많은 분들의 도움으로 좋은 결과를 얻을 수 있었습니다.
조금 더 깊은 내용을 다뤘으면 하는 아쉬움이 있지만,
다른 분들에게 조금이나마 도움이 되었으면 좋겠네요!
빅데이터, 데이터마이닝, 공공데이터, 오픈데이터 - 그 어느때보다 데이터 분석 및 활용이 중요해진 이 시기에 웹 상의 수많은 공개된 자료를 직접 수집할 수 있는 웹 스크래핑/크롤링 기술은 데이터 수집 및 활용 능력에 큰 도움이 됩니다.
이 강의에서는 크롤링 프레임웍을 사용하지 않고 HTTP, DOM, concurrency를 담당하는 기본적인 라이브러리만을 사용해 직접 웹 스크래퍼를 처음부터(from scratch) 작성해 봄으로써, 언제든 자유도 높은 동시성 크롤러를 직접 구현할 수 있도록 작동 원리를 이해할 수 있도록 합니다.
시연에서 작성된 전체 소스코드는 아래 링크에서 보실 수 있습니다.
https://gist.github.com/cornchz/0ec0c3f5ca69bac2b625
Light Tutorial Django
Studybee 3주차 - 가볍게 배우는 장고!!
Django를 이용해 블로그를 만들기 전에 가볍게 Django에 대해 알아보고 익숙해져 봅시다.
**http://www.studybee.kr 에서 운영하는 '초심자를 위한 웹개발' 클래스에서 만드는 교재이며,
장고를 이용해 간단하게 블로그를 만드는 것을 목표로 하고 있습니다.
( PDF 파일을 다운로드를 하셔야 깨끗하게 보실 수 있습니다. )
구글의 챗봇 프레임워크인 Dialogflow로 카카오톡 챗봇을 만드는 방법을 설명한 발표 자료입니다. 궁금한 점이 있으시면 페이스북 챗봇 개발자 모임을 방문해 주시기 바랍니다.
< 챗봇 개발자 모임 >
- https://www.facebook.com/groups/ChatbotDevKR/
< PDF 파일 >
- https://goo.gl/cDfY41
< 소스 코드 >
- https://github.com/deepseasw/dialogflow_kakaotalk_chatbot
파이썬으로 코딩 기초를 배우고 플라스크로 웹서비스 개발을 배우는 과정을 다루고 있습니다.
- 입문용 자료입니다.
ABCD : http://www.abcds.kr/
Facebook Group : https://www.facebook.com/groups/562787713823026/
한성일 : https://www.facebook.com/jamie.han.16
iheart79@gmail.com
커빙의 Django, Celery, Azure Cloud, SNS 연동, 컨텐츠 수집 기술을 한눈에 볼 수 있도록 소개한 자료 입니다.
커빙을 처음 개발하면서 많은 어려움이 있었고,
또 많은 분들의 도움으로 좋은 결과를 얻을 수 있었습니다.
조금 더 깊은 내용을 다뤘으면 하는 아쉬움이 있지만,
다른 분들에게 조금이나마 도움이 되었으면 좋겠네요!
빅데이터, 데이터마이닝, 공공데이터, 오픈데이터 - 그 어느때보다 데이터 분석 및 활용이 중요해진 이 시기에 웹 상의 수많은 공개된 자료를 직접 수집할 수 있는 웹 스크래핑/크롤링 기술은 데이터 수집 및 활용 능력에 큰 도움이 됩니다.
이 강의에서는 크롤링 프레임웍을 사용하지 않고 HTTP, DOM, concurrency를 담당하는 기본적인 라이브러리만을 사용해 직접 웹 스크래퍼를 처음부터(from scratch) 작성해 봄으로써, 언제든 자유도 높은 동시성 크롤러를 직접 구현할 수 있도록 작동 원리를 이해할 수 있도록 합니다.
시연에서 작성된 전체 소스코드는 아래 링크에서 보실 수 있습니다.
https://gist.github.com/cornchz/0ec0c3f5ca69bac2b625
Light Tutorial Django
Studybee 3주차 - 가볍게 배우는 장고!!
Django를 이용해 블로그를 만들기 전에 가볍게 Django에 대해 알아보고 익숙해져 봅시다.
**http://www.studybee.kr 에서 운영하는 '초심자를 위한 웹개발' 클래스에서 만드는 교재이며,
장고를 이용해 간단하게 블로그를 만드는 것을 목표로 하고 있습니다.
Chat bot making process using Python 3 & TensorFlowJeongkyu Shin
Recently, chat bot has become the center of public attention as a new mobile user interface since 2015. Chat bots are widely used to reduce human-to-human interaction, from consultation to online shopping and negotiation, and still expanding the application coverage. Also, chat bot is the basic of conversational interface and non-physical input interface with combination of voice recognition.
Traditional chat bots were developed based on the natural language processing (NLP) and bayesian statistics for user intention recognition and template-based response. However, since 2012, accelerated advance in deep-learning technology and NLPs using deep-learning opened the possibilities to create chat bots with machine learning. Machine learning (ML)-based chat bot development has advantages, for instance, ML-based bots can generate (somewhat non-sense but acceptable) responses to random asks that has no connection with the context once the model is constructed with appropriate learning level.
In this talk, I will introduce the garage chat bot creation process step-by-step. I share the idea and implementations of multi-modal machine learning model with context engine and conversion engine. Also, how to implement Korean natural language processing, continuous conversion and tone manipulation is also discussed.
Chat bot (챗 봇)은 2015년부터 모바일을 중심으로 새로운 사용자 UI로 주목받고 있다. 챗 봇은 상담시 인간-인간 인터랙션을 줄이는 용도부터 온라인 쇼핑 구매에 이르기까지 다양한 분야에 활용되고 있으며 그 범위를 넓혀 나가고 있다. 챗 봇은 대화형 인터페이스의 기초이면서 동시에 (음성 인식과 결합을 통한) 무입력 방식 인터페이스의 기반 기술이기도 하다.
기존의 챗 봇들은 자연어 분석과 베이지안 통계에 기반한 사용자 의도 패턴 인식과 그에 따른 템플릿 응답을 기본 원리로 하여 개발되었다. 그러나 2012년 이후 급속도로 발전한 딥러닝 및 그에 기초한 자연어 인식 기술은 기계 학습을 이용해 챗 봇을 만들 수 있는 가능성을 열었다. 기계학습을 통해 챗 봇을 개발할 경우, 충분한 학습도의 모델을 구축한 후에는 학습 데이터에 따라 컨텍스트에서 벗어난 임의의 문장 입력에 대해서도 적당한 답을 생성할 수 있다는 장점이 있다.
이 발표에서는 Python 3 및 TensorFlow를 이용하여 딥러닝 기반의 챗 봇을 만들 경우에 경험하게 되는 문제점들 및 해결 방법을 다룬다. 봇의 컨텍스트 엔진과 대화 엔진간의 다형성 모델을 구현하고 연결하는 아이디어와 함께 자연어 처리 및 연속 대화 구현, 어법 처리 등을 어떻게 모델링할 수 있는 지에 대한 아이디어 및 구현과 팁을 공유하고자 한다.
2016년 8월 13일(토)~2016년 8월 15일(월)까지 대한민국 서울에서 열리는
PyCon APAC 2016에서
첫날, 라이트닝토크(Lightning Talk)에서 발표한 내용입니다.
2016년 8월 13일(토) Lightning Talk 4번째에서 Python을 이용한 한자(漢字)검색 텔레그램 봇 개발 후기입니다.
제가 Heroku Free Dyno에서 Python3를 이용한 텔레그램 봇을 2개(영어 및 한국어) 만들고 올렸습니다. .
영어(English): https://telegram.me/cjkvBot
한국어:https://telegram.me/CJKV_korean_bot
한자 낱말에 대하여 한국어,일본어, 중국어, 베트남어 사전 링크를 알려주는 봇입니다. 단순하지만 어학,사학,동양철학등의 한자관련으로 한자 검색이 필요한 사람에게 유용할것으로 봅니다.
결론: 생산성 빠른 파이썬 언어를 가지고 텔레그램봇을 손쉽고 빠르게 만들게 되었습니다.
황지수(mario.h) / kakao corp.
---
카카오 봇 플랫폼을 소개합니다. 카카오톡 플러스 친구에서 새롭게 등장하고 있는 챗봇, 그리고 카카오의 음성비서인 카카오미니. 이들의 공통점은 봇 플랫폼 기반으로 동작하고 있다는 것입니다. 이런 봇 플랫폼이 어떤 구조로 만들어져 있고, 어떤 과정으로 문제를 해결하면서 개발을 진행했는지 공유합니다. 또한, 카카오의 AI기술을 이용하여 쉽게 봇을 만들 수 있는 Kakao I Open Builder의 기능과 특징을 이야기합니다.
[111015/아꿈사] HTML5를 여행하는 비(非) 웹 개발자를 위한 안내서 - 1부 웹소켓.sung ki choi
ajax 등장 이전부터, ajax, comet, 그리고 html5의 웹소켓까지 기술의 흐름을 간략하게 정리해 보았습니다.
웹 어플리케이션의 개발을 다뤄보지 않은 개발자들을 대상으로 처음부터 웹소켓을 다루기 전에,
1. 이전 세대의 통신 기법은 어떤 모양이었는지
2. 웹소켓이 왜 환영받을 만한 기술인지
... 등을 공감할 수 있기 위한 목적으로 PT를 작성 하였습니다.
2. Table of contents
- Introduce Go
- Slack Bot Example : Echobot Go
- Slack Bot : More Functions Go
3. Introduce Myself
평범한 자바 웹 개발자로 1년 조금 넘게 일했습니다.
우연히 파이썬의 매력을 알게 되어 공부하고 있습니다.
아직 파이썬을 접한 지는 얼마 되지 않았습니다.
E-mail : karis0222@gmail.com
Github : https://github.com/karis0222
5. What is Bot?
“봇(bot)은 인간이 하는 행동을 흉내내도록 만들어진 프로그램을 의미한다.”
- 출처 : 위키피디아 ‘인터넷 봇’ 문서 중
https://ko.wikipedia.org/wiki/%EC%9D%B8%ED%84%B0%EB%84%B7_%EB%B4%
87
웹 크롤러, 챗봇 등이 봇의 범주에 해당됩니다.
6. Why Slack?
슬랙(Slack)은 개발자들이 상당히 많이 사용하는 메신저 플랫폼입니다.
요즘에는 개발자가 아닌 사용자(기획자, 디자이너 등...)도 많습니다.
다양한 Integration이 지원됩니다.
API가 훌륭합니다.
7. Slack API
https://api.slack.com/ : 슬랙 API 페이지.
Web API, Events API, RTM(Real Time Messaging) API...
저는 RTM API를 사용하여 슬랙 봇을 만들어 보겠습니다.
RTM API는 웹 소켓 기반으로, 실시간 메시지 송수신 API입니다.
8. Websocket
“WebSocket은 ws 프로토콜을 기반으
로 클라이언트와 서버 사이에 지속적
인 완전 양방향 연결 스트림을 만들어
주는 기술입니다.”
- 출처 : MDN 번역 문서
https://developer.mozilla.org/ko/docs/WebSockets/Writ
ing_WebSocket_client_applications
- 이미지 출처 : http://java.sys-con.com/node/1315473
10. Flow
1. 개발환경 구성 및 슬랙 봇 API 토큰 발급.
2. https://slack.com/api/rtm.start : RTM 세션을 시작하기 위해 토큰 정보를 보내
고 웹소켓 URL을 응답 받음.
3. 위에서 응답 받은 웹소켓 URL을 통해 RTM 세션 시작하여 메시지 수신.
4. 봇이 자신에게 온 메시지인지 판단 후 응답 메시지 송신.
11. Development Environment
저의 개발환경은 다음과 같습니다.
운영체제 : 윈도우10
파이썬 : 3.4 버전
통합개발환경 : Pycharm Community Edition
가상환경을 구성하고자 virtualenv를 사용했습니다.
API 테스트를 위해 구글 크롬의 앱 중 하나인 Postman도 사용했습니다.
12. Using Libraries
requests : 인간친화적인 http 클라이언트 라이브러리.
websockets : 웹 소켓 라이브러리.
asyncio : 비동기 IO 및 코루틴 지원 라이브러리.
json : JSON 포맷 데이터 핸들링 라이브러리(기본 내장).
pip install requests websockets asyncio
16. Slack Bot Echo Example
1. https://slack.com/api/rtm.start : RTM 세션을 시작하기 위해 토큰 정보를 보내
고 웹소켓 URL을 응답 받음.
https://github.com/karis0222/python-slackbot/blob/master/src/echobot.py
17. Slack Bot Echo Example
@asyncio.coroutine(async)…?
yield from(await)…?
run_until_complete…?
시간 관계상 자세한 설명은 생략하
겠습니다.
18. Slack Bot Echo Example
1. 수신 데이터를 JSON
으로 변환
2. 봇 자신에게 온 메시
지인지 판단
3. 메시지 내용 추출
4. 응답 메시지 송신
20. So, What do you want do?
슬랙 봇이 무엇을 해주길 원하세요?
I want...
이 곳의 날씨를 알려주세요.
이 곳의 위치를 알려주세요.
이 문장을 번역해주세요.
[@봇이름 명령어 “파라미터”]의 형태로 만들어보고자 합니다.
21. 상황을 가정해봅시다
한참 장고 개발 중이던 개발자 K모씨는 개발자 동료로부터 강남구청에서 만나자
는 메시지를 받았습니다. 강남구청의 위치를 알고 싶어요. 마침 슬랙이 켜져있네
요?
1. 웹 브라우저를 켜고 -> 네이버에 접속해서 -> 네이버 지도 서비스로 들어간 후
-> “강남구청”을 검색한다.
2. 슬랙봇에게 지도 “강남구청”이라고 명령 -> 슬랙봇이 보내준 링크를 클릭한다.
여러분은 어떤 방법이 더 맘에 드시나요?
22. I want to know the location of a place
국내 지도 검색은 네이버 지도 서비스를 사용하겠습니다.
요청 URL은 “http://map.naver.com/?query=검색어&type=SITE_1” 의 형태입니다.
@봇이름 /지도 “인자”
사실은 지역 검색 API를 사용하려고 했으나, 지역 검색 API로는 장소를 화면으로
보여줄 수가 없었습니다… 그래서 지도 API를 사용하려고 했으나, 지도 API는 장
소를 검색할 수 있는 기능이 없고요… 두 가지를 함께 사용하려고 했으나, 지도
API로 화면을 보여주려면 별도의 페이지를 제공해야 하더군요…
23. I want to know the weather of a place
공공데이터포털에서 기상청이 제공하는 오픈 API 중 “동네예보조회” API 사용.
일단 특별시, 광역시와 도에 대해서만 구현해보겠습니다.
@봇이름 /날씨 “서울”
분명 API 인증키를 발급 받았으나 하루가 지나야 인증이 제대로 됩니다…
왜 그런건지는 저도 잘 모르겠어요...
24. I want a translation of this sentence
구글 번역 서비스 사용.
일단 영->한 번역만 해보겠습니다.
@봇이름 /번역 “hello, world!”
왜? Google Translate API를 사용하지 않죠?
Google Translate API는 무료가 아닙니다…
28. My mistake...
슬랙 봇 API 토큰을 Github
에 올리면 슬랙에서 귀신같
이 알아내고 해당 토큰을 폐
기합니다. 제가 그런 실수를
저질렀네요…
결론은…
슬랙, 대단합니다!
29. And more...
장고 웹 애플리케이션과 연동해보는 것도 좋습니다.
AWS의 Lambda, Azure의 Function에 코드만 올려두고 서버리스(Serverless)로 구
성해도 되겠죠?
자연어 처리가 가능하시면, 챗봇(Chatbot)을 만들어보실 수도 있습니다.