스티밋 보팅 챗봇 만들기 - (1) 개요
최근에 6개월 가량 작업한 ‘누구나 쉽게 배우는 챗봇 서비스' ( https://book.naver.com/bookdb/book_detail.nhn?bid=13733578 )
도서를 출간했습니다. 이는 구글의 Dialogflow 도구와 모던 웹 기술인 ES6, Polymer, Firebase 등을 가지고 여러 종류의 챗봇을 만드는 과정을 설명하는 컴퓨터 기술 서적입니다.
3개월 안에 완료하려고 계획되었으나, 처음 컴퓨터 서적을 내놓다보니 시행착오를 많이 겪었네요 ㅎㅎ;
나름, 열심히 작업하였으니 관심있는 분들을 가까운 도서관이나 서점에서 찾아봐주시면 감사하겠습니다. 사실, 과거에 출품작으로 책에 수록된 적은 있으나, 단행본으로 나온 경험이 없다 보니 책을 홍보하는 과정에 자연스레 관심이 생겼니다. 이것을 블록체인 상에서 활용할 수 있는 방법이 있지 않을까 라는 아이디어도 이번 기회에 구체화해보려고 합니다.
어찌되었든, 이 책과 유사한 주제로 ‘스티밋을 활용한 자동보팅 챗봇'을 만들어보고자 합니다. 몇 개로 나누어 포스트를 할 예정인데요.
구체적인 내용은 다음과 같습니다.
- Dialogflow를 활용하여 명령에 대한 의도 분석과 성분 분석을 통해, 해당 발화에 대한 의도를 연계시킵니다.
- 이를 Steem API와 연동하여, 특정 태그에 대한 최신, 핫 트렌드의 포스트를 확인할 수 있고 자동 보팅을 수행합니다.
- 이는 슬랙 등의 커뮤니케이션 툴과 통합되어서 해당 메신저의 봇으로서 기능할 수 있습니다.
현재, 많은 사람들이 메신저를 활용하고 있고 이에 친숙하기에, 간단한 명령과 질문을 사람이 아닌 봇과 할 수 있는 챗봇이 많은 각광을 받고 있지요. 그리고, 이 챗봇을 만들기 위한 다양한 도구들이 나와있습니다.
구글이 개발한 Dialogflow도 있고 국내에서는 네이버의 Clova, KT Genie 등이 있는데, 사용 방식은 대부분 비슷합니다.
이 중에서, Dialogflow ( https://dialogflow.com/ )를 선택한 것은 자체 학습한 대용량 데이터 세트가 있고, 다양한 언어를 지원하며, 편리한 인터페이스와 통합도구를 제공하기에, 개발자 누구나 챗봇을 쉽게 만들 수 있습니다.
이 Dialogflow를 사용하는 법에 대해 간단하게 살펴보겠습니다.
- 인텐트(Intents)와 엔티티(Entities)
인텐트는 어떤 문장이 어떤 의도를 가지고 있는지 분류합니다.
예를 들면,
‘willpark 계정 포스트 가져와'
라는 문장을 입력 받으면, 포스트를 가져오라는 의도를 추출하구요.
그에 대한 개별 엔티티로서, ‘willpark’을 스티밋 계정명, ‘포스트’를 가져오는 정보의 타입, ‘가져와'는 그 액션이 될 수 있겠지요.
즉, 이 인텐트를 생성하고, Training phrases에 유저가 물어볼만한 질문을 정의, 추출할만한 엔티티 또한 생성하여 이를 training phrases에 입력한 문장에 매핑하여 학습시키면 됩니다. 엔티티에는 다양한 동의어를 기입할 수 있겠지요.
학습 시킨 봇의 테스트는 try it now 탭에서 다음과 같이 이루어집니다.
이 봇을 배포하기 위한 통합 툴의 쓰임새도 유용한데, 라인, 슬랙, 트위터, 페이스북 메신저 등 다양한 메신저의 통합이 쉽게 이루어질 수 있습니다.
해당 명령에 대하여 웹훅(Webhook) 을 통해 구축한 서버 혹은 파이어베이스와 연동하여 특정한 액션을 수행할 수도 있습니다.
이번에 만들게 될 스티밋 봇은 Dialogflow로 구축한 봇을 웹훅을 통해 node.js로 자체 구축한 서버와 연동하고 Steem API를 호출하여 자동 업보팅과 같은 특정 액션을 수행하는 것입니다.
실제 코드와 함께 만들어가는 과정은 다음과 같이 연재하려고 합니다.
2 - 스티밋 보팅 챗봇 만들기 - DialogFlow 로 학습하기
3 - 스티밋 보팅 챗봇 만들기 - 서버에서 Steem API 구성하기
4 - 스티밋 보팅 챗봇 만들기 - 서버에서 DialogFlow 연동하기
5 - 스티밋 보챗봇 만들기 - 슬랙으로 통합하기
이에 대한 자세한 설명은 앞서 공개한 책에 수록되어있습니다.
관련 질문들 환영합니다~!
멋진 책을 출간하셨군요.
감사합니다~!
우와 대단하시네요..
아닙니다 ㅎㅎ ㅎ
와.. 정말 대단하십니다. 프로그래밍을 잘 몰라서 설명을 봐도 모를 것 같아요 ㅠㅠ. 스팀잇 챗봇은 사용해보고 싶긴 합니다.
되도록 쉽게 연재해보도록 하겠습니다~
멋지시네요. 팔로합니다. 다음 연재도 잘 부탁드려요.
감사합니다. 빠른 시일 내에 후속 연재해볼게용~
오 기대됩니다!
최근에 구글 보이스키트를 사고
보이스키트에 구글어시스턴트를 동작시켜봤거든요.
여기에 데가 추가적으로 저만의 명령어들을 추가하고자하는데 관련해서 좋은글을 본것같습니다.
기대할게요! ㅎㅎ
dialogflow를 활용하면 assistant도 간편하게 연동할 수 있습니다. 감사합니다 ㅎㅎ
축하드립니다. 흥이 넘치는 표지 ㅋㅋ. 대박나세요. 스팀친구 추가해요.
표지가 특이하죠~ 감사합니다