Azure Bot 만들기

안녕하세요!

MSP 1, 2차 Evangelism 세미나로 진행했던 챗봇에 대한 포스팅입니다
Azure bot service와 Luis(Language Understanding Intelligent Service)를 이용한
챗봇 만들기를 주제로 1차 세미나는 소개 강연, 2차 세미나는 실습으로 진행했었는데요

1차 세미나의 경우 홍보 글을 생활코딩에 올렸었는데 올린지 몇시간도 안돼서 마감이 되고, 애당초 계획했던 인원수보다 몇 배나 많은 300명 넘는 분들이 지원해 주셨어요. 
챗봇의 인기가 이렇게나 높구나 라는 것을 새삼 느끼고,
기대에 조금이라도 부응하기 위해 밤 새서 발표자료를 준비했던 기억이 있네요
4번째' Bot service와 Bot framework, 쉽게 만드는 Bot'이 제가 진행한 세션이었어요
4번째 세션 ppt 링크
(용량이 커서 로딩이 좀 길어요)





Luis를 이용한 Bot은
Javascript에 대한 짧은 이해와(짧게만 아셔도 충분합니다), Azure 계정만 있다면
누구나 만들 수 있습니다!




먼저, Azure portal (portal.azure.com)에서 web app bot을 생성합니다
(좌측 탭의 '새로 만들기'에서 'web app bot'을 검색하시면 됩니다)



템플릿은 Node.js Basic으로 하시면 되고, 앱 서비스 계획은 가장 가까운 곳으로 하시면 됩니다.
Application insight는 무슨 분석 해 주는 거라고는 하는데... 굳이 안 하셔도 되요!




github과 연동시켜서 자동 배포를 하고 싶으시면
만들어진 앱의 app service로 들어가서 배포 옵션을 설정 해 주세요
기존에 이 azure계정으로 연결했던 github계정이 있다면, 프로젝트 설정만 해 주시면 됩니다


탭에 대해 설명을 드리자면
빌드 탭은 코드 작업 방식을 선택하고 온라인 코드 편집기를 열 수 있는 탭이고요,
test in the web chat은 만들어진 bot을 채팅 창을 통해 테스트할 수 있는 탭 입니다.
채널은 챗봇의 배포 경로를 추가하거나 관리할 수 있는 탭 입니다.
채널 탭은 뒤에서 설명하기로 하고, 온라인 코드 편집기를 열어 보도록 합시다



왼쪽이 디렉토리 목록입니다. 우리가 건드릴 부분은 app.js라는 파일로,
봇의 로직을 담당하고 있는 파일이에요.
따로 npm install로 셋팅 해 줄 필요 없이 node module들은 다 설치되어 있습니다
코드는 오른쪽 위에 SAVED라고 써 있듯이 자동 저장 됩니다
(crtl+z로 실행 취소 가능하니 걱정마세요ㅎㅎ)

왼쪽의 까만 탭에 있는 네모 안에 >표시 있는 아이콘은 콘솔이고요,
그 위에 있는 아이콘을 누르면 로그를 볼 수 있습니다.

app service editor의 가장 큰 장점은 코드 수정 뿐만 아니라
콘솔, 로그까지 하나의 창에서 가능하다는 점이라고 생각해요.
SAVED 오른 쪽에 있는 버튼을 누르시면 화면을 분할해서
한쪽은 코드, 한쪽은 log로도 사용할 수 있고요.
javascript가 script언어인 만큼 따로 컴파일 과정이 없어
실수를 찾아내기가 어렵고 디버깅에서 애먹는 경우가 많은데,
그런 부분을 잘 보완 한 것 같아요
app service editor는 visual studio code기반으로 만들어 졌다고 하더라고요

document는 여기 있으니(한글은 없네요ㅠ) 분석 해 보시면서 만들어 보세요!
node.js를 이용한 bot builder SDK 문서

참고 해 보시라고 기능은 별로 없지만 제가 만든 피자 치킨 주문 봇의 링크도 올려드릴게요
https://github.com/eastskim48/pizzachicken



pizzachicken 챗봇을 사용해 보세요!
(git에 있는 코드로 구현했습니다)


사용 예시



PizzaChicken 챗봇을 Facebook messenger로 만나보세요!

동섭봇 페이스북 페이지

우측 상단에 있는 '메시지 보내기'를 통해 말을 걸면 됩니다





채널에 대한 이야기를 깜빡했는데,
Azure bot은 다음과 같은 다양한 배포 채널을 지원합니다
많이 쓰일 만한 것은 페이스북 메신저와 이메일, web chat정도고
아쉽게도 카카오톡 플러스친구는 지원하지 않습니다
(MS는 미국 회사이기도 하고,
카카오톡 플러스친구 자체가 개발자에게 그닥 열려있지 않다고 해요)
web chat이 생각보다 유용한데,
저기서 연필 버튼을 눌러 보시면 bot을 띄울 수 있는 iframe태그를 얻어올 수 있습니다
이 태그를 운영하던 사이트의 코드에 추가하시면
챗봇을 사이트 내에서 이용하실 수 있습니다
처음 bot을 만드시면, web chat 채널은 기본으로 생성되어 있습니다.

LUIS를 이용하는 것 까지 포스트에 넣으려고 했는데,
내용이 길어져서 다음 포스트에 넣어야 할 것 같네요
다들 똑똑한 챗봇 만드세요!






댓글

가장 많이 본 글