다중채팅솔루션 With 챗봇 개발 계획

    다중채팅 솔루션은 우리가 흔히 아는 채팅방을 만들고 여러명이 대화를 하는 구조를 말한다. 이러한 기술은 사실 크게 어려운 방법이 아니다. 인터넷을 조금만 뒤져봐도 HTML 5.0 기술의 웹소켓(Web Socket)을 이용하여 구현한 사례는 얼마든지 있으며, 필자 역시 개인적으로 웹소켓을 구현해서 다중채팅을 만든적이 있다.


    그러나 이 채팅 시스템이 상담사와 사용자가 대화를 한다고 가정을 해보자, 그러면 한가지 문제가 되는 것이 웹소켓의 세션 처리 방식이다. 웹소켓은 서로간에 대화를 쉽게 하게 만들지만 상담 시스템은 상담사 한명당 여러명의 사용자와 대화를 해야 한다. 



    여기에 한가지를 더 포함해서 챗봇과 공유하는 시스템은 어떻게 만들면 될 것인가? 즉 카카오톡처럼 한명당 여러개의 채팅방이 존재할 수 있고, 방마다 챗봇이 숨겨져 있는 것이다. 그리고, 챗봇은 여러개의 인격이 존재하여  여성의 인격과 남성의 인격을 가진 챗봇이 한 방에서 정신없이 대화를 하는 시스템을 만들어보고 싶다.


    정신없이 챗봇이 껴있으면서 대화를 챗봇의 사례로 나는 코인원(Coinone)이라는 암호화폐 사이트의 채팅방에 존재하는 아담(Adam)을 말해보고 싶다.



    여기에 Adam이라는 존재는 담당자가 상주해서 대화를 하는 것이 아니라 인공지능으로 만들어진 챗봇 서비스이다. 물론 저 대화를 위해서 엄청나게 많은 대화셋을 만들어야 되었겠지만, 해당 서비스를 보면서 챗봇과 공존하는 채팅방의 가능성을 보게 된다.


    저 대화에서도 상당히 많은 사람들이 아담에게 말을 거는 것을 볼 수 있는데 퀄리티가 있는 대답을 하기 때문이다. 물론 무슨 말인지 모르겠다라는 말도 많이 하지만 Adam은 계속 성장하니 다음에는 올바른 대답을 하게 될 것이다.


    필자는 이 솔루션을 구현하기 위해서 기본적으로 다음과 같은 기술로 만들어볼 예정이다.


    웹베이스 : Java, Spring Framework, Web Socket, Jquery, JSTL

    DB : MongoDB

    인공지능 : Seq2Seq, 형태소분석, 유사도계산, 개체명추출기, LSA(이건 고민)

    서버 : Tomcat 8.5


    기본적으로 자바+스프링으로 구현되는 웹솔루션 형태로 만들며, 다양한 채팅 모듈을 호출하여 가장 정답에 근접한 대화를 리턴하여 정확도 높은 서비스를 구현하고자 한다.


    댓글

    Designed by JB FACTORY