인공지능 챗봇 개발 후기[우울한 코끼리]
안녕하세요. 문범우입니다.
지난 2017년 8월에 개발을 시작한
서울시립대학교 인공지능 챗봇, 우울한 코끼리가 곧 Beta service를 시작합니다.
저희 우울한 코끼리는 서울시립대학교 교수학습개발센터에서 진행되는 '2017 UOS 학습공동체' 라는 프로그램의 지원을 받으며 진행되었습니다.
위의 사진은 2017년 UOS 학습공동체의 공고문입니다.
우울한 코끼리팀은 서울시립대학교 컴퓨터과학부 2명, 수학과 1명, 그리고 전자전기컴퓨터공학부인 저를 포함하여 총 4명의 개발자로 이루어져 있습니다.
저희는 서울시립대학교의 학생들이 학생 식당의 메뉴를 알고싶거나 학교 근처 맛집 또는 학교 중앙 동아리 정보등을 보다 쉽게 얻을 수 있도록 인공지능 챗봇 개발을 기획하였습니다.
이에 따라 사람들이 많이 이용하는 카카오톡 플러스친구라는 채팅 앱을 기반으로 Django라는 프레임워크를 이용하였습니다.
여기서 인공지능 챗봇이라 함은, 그 동안의 '심심이'와 같은 일반 챗봇과는 답변 처리 방식에 있어서 다른점을 나타냅니다.
단순히, 'A'라는 텍스트를 받았을 때 'B'를 답변해! 라고 설정되는 것이 아니라, 'A'라는 텍스트의 의도를 분석하여 그에 맞는 답변을 해! 라고 설정되는 것입니다.
이러한 인공지능을 이용하면 다음과 같은 것이 가능합니다.
'오늘 학식 메뉴가 뭐야?', '오늘 학식은?', '오늘 메뉴 알려줘', '오늘 학식 메뉴 알려줘' 와 같은 다양한 말들에 대해서 우울한 코끼리는 동일하게 오늘 학생식당에 대한 메뉴를 답변합니다.
서로 다른 말들이지만 질문의 의도는 오늘의 학생식당의 메뉴를 묻는 것이기에, 인공지능을 이용하면 하나의 질문에 하나의 답변을 처리하는 것이 아니라 질문에 대한 의도를 분석하여 해당 의도에 대한 답변을 처리할 수 있습니다.
(출처: SKTechx 토크ON세미나)
인공지능 챗봇을 개발하는데는 위의 사진과 같이, 생각보다 많은 것들을 공부해야 했습니다.
우울한 코끼리 또한 아직 부족한 점이 많지만 하나씩 해결해 가면서 서비스를 보완하고 있습니다.
현재 가능한 기능 중 하나인 학식 메뉴에 대한 답변은, 먼저 사용자가 질문을 하면 사용자의 질문을 형태소 단위로 분석하여 각각의 의미를 캐치합니다. 그리고 각각의 의미를 통해 사용자의 질문 의도를 분석하고 그것이 학식 메뉴를 궁금해 하는 의도라면 실시간으로 서울시립대학교 홈페이지(uos.ac.kr) 에서 그날의 식당 메뉴를 크롤링하여 응답하도록 설정되었습니다.
추가적으로 저희는 학교 주변의 맛집을 추천할 수 있는 기능을 생각하고 있습니다.
학식 메뉴를 물어볼때 답변의 하단에 학교 주변 맛집 하나를 랜덤하게 선정하여 추천해주고, 사용자가 학교 주변 맛집에 대해 궁금해하는 질문을 추가적으로 한다면 정문이 편한지, 후문이 편한지 또는 어떤 음식종류를 선호하는지 등에 대한 질문을 통해 학교 주변 식당을 추천합니다. 해당 기능은 학교 주변 식당을 우울한 코끼리의 데이터베이스에 저장하며 다양한 해시태그(#)를 함께 저장하고, 사용자가 선호하는 것에 대해 많은 해시태그가 포함되는 식당을 랜덤하게 추천하도록 구현될 예정입니다.
또한 학교 중앙동아리에 대한 소개 서비스를 구현할 예정입니다.
사용자가 취미를 추천받고 싶어하거나 직접적으로 학교의 동아리에 대한 궁금증을 가진 질문을 하였을때 우울한 코끼리의 데이터 베이스에 입력된 동아리들을 바탕으로 학교 주변 맛집 추천과 비슷한 과정을 통해 동아리를 소개할 예정입니다.
그리고 사진인식을 통한 추가적인 서비스도 고려하고 있습니다.
예를 들어 특정 건물의 사진을 찍어서 우울한 코끼리에게 전송하였을 때, 이미지 인식 기능을 통해 어떤 건물인지 인식하고 해당 건물에 대한 정보를 응답하는 기능입니다. 현재 우울한 코끼리에게 사진을 전송하였을 때, 아직 사진을 인식하는 기능이 없다고 답변이 되고 있습니다. 카카오톡 플러스친구 API를 통해 사용자가 보낸 메세지가 사진인지, 텍스트인지는 쉽게 구별할 수 있었습니다. 추가적으로 현재 학습중인 딥러닝 기반 이미지 인식에 대한 구현이 성공되면 위에서 말씀드린 건물에 대한 인식등을 비롯하여 이미지 인식 기능을 통해 더 많은 서비스가 제공될 예정입니다.
마지막으로, 현재 우울한 코끼리에서 진행되는 대화는 자체 데이터베이스상에 모두 기록됩니다.
즉, 누가 어떤말을 언제 하였는지 데이터베이스에 기록됩니다. 이렇게 설정한 이유는 차후에 이러한 데이터들을 통해서 더 많은 서비스를 제공할 수 있을 것이기 때문입니다. 예를 들어, 기록된 시간들을 바탕으로 현재 사용자가 연속된 대화를 진행중인 건지, 아니면 어느정도 시간이 지난 뒤에 대화를 새롭게 시작하는 건지 등의 판별이 가능해집니다.
우리 우울한 코끼리는 위와 같은 내용을 바탕으로, 현재 카카오톡 플러스친구에 검색하여 친구를 등록하면 서울시립대 학식 질문에 대한 답변이 가능합니다.
하지만 초기 개발시에 테스트를 위해 Cloud9 서비스를 이용하여 평상시에는 서버가 off 되어있고 수동적으로 서버를 켜줘야지 정상적인 답변이 가능해집니다.
24시간 동안 사용자들이 이용할 수 있도록 현재 네이버 클라우드 플랫폼을 이용한 서버이전을 진행중에 있습니다.
이러한 내용을 통해 우울한 코끼리는 2017 UOS 학습공동체팀 중에서 최우수팀에 선정되었고 1월 24일 총장님에게 상장을 수여받게 되었습니다.
마지막으로 우울한 코끼리 시연영상을 보여드리고 마치겠습니다.
- 우울한 코끼리 시연영상(1)
- 우울한 코끼리 시연영상(1)
이상 모든 사항에 대해 추가적으로 궁금한 점은 언제든지 댓글 및 개인 이메일(doorbw@outlook.com)을 이용해주시면 빠른 답변 드릴 수 있도록 하겠습니다.