제니퍼, AI 기반 도움말 챗봇 서비스 개발기_제니퍼 사만다 프로젝트

제니퍼, AI 기반 도움말 챗봇 서비스 개발기
ChatGPT의 출현 이후, 다양한 AI 챗봇 서비스가 우리 주변에 등장하고 있습니다. 이러한 챗봇들은 많은 사용자들에게 편리함을 제공하고 있지만, 때때로 인간 상담사만큼 효과적이지 않다는 불만도 제기됩니다. 실제로 AI 챗봇은 고객이 직접 인간 상담사와 연결되기 전에 사용자의 질문에 대한 초기 대응을 제공하며, 회사 측에서는 이를 통해 비용 절감 효과를 기대할 수 있습니다.
최근 제니퍼소프트에서 AI기반 도움말 챗봇 서비스를 개발했습니다. 제니퍼소프트에서 챗봇은 비용 절감을 위한 도구가 아니라, 고객에게 편의를 제공하고 고객을 더 잘 이해하기 위한 수단으로 활용되길 희망합니다.
우연처럼, 운명처럼

제니퍼소프트 R&D 팀은 매주 (현재는 격주) 한 사람씩 돌아가면서 기술 스터디 발표를 진행합니다. 이는 개발자로서 끊임없이 기술을 연마하자는 취지입니다. 제가 ChatGPT가 부상하고 있을 때 프롬프트 엔지니어링을 주제로 발표했으며, 예제로 “제니퍼 프론트 Q&A봇”을 다루었습니다. 그런데 개발팀의 반응이 매우 좋았습니다. 실제 만들어보면 좋겠다는 의견이 있었고, 운명처럼(!) 챗봇 프로젝트가 시작되었습니다.
개발팀의 큰 호응을 얻으면서 챗봇 프로젝트가 시작되게 되었다.
PoC 제작
우선 사용자가 적고 매뉴얼이 비교적 짧은 제니퍼 프론트보다는 사용자가 많고 매뉴얼이 긴 제니퍼 APM에 초점을 맞추어, AI가 만족할 만한 답변을 제공할 수 있는지 확인하는 PoC를 제작하게 되었습니다. 제니퍼 챗봇 PoC는 두 가지 중요한 의의가 있습니다. 첫째, 현재 기술로 가능한 수준을 파악하고, 서비스를 개발할지 여부와 개발 방향을 결정하는 근거가 되었고 둘째, 이 때 설정한 기술적 구조가 현재까지도 대부분 유지되고 있습니다. ^^
내부 인력풀 활용
제니퍼 챗봇을 성공적으로 만들기 위해서는 그 목표를 달성할 능력이 필요했습니다. 제니퍼소프트는 이미 AI 관련 연구를 진행하고 있었고, LLM을 활용한 RAG 시스템을 구축할 수 있는 기술적 역량을 갖추고 있었습니다. (노하우를 더한다는 것은 제가 부족한 노하우를 가진 상태에서 경험이 풍부한 동료들에게 도움을 요청하고 다닌다는 의미입니다.^^) 질문의 의도나 챗봇의 답변이 옳은지 여쭤보는 한편, RAG가 ChatGPT와 제니퍼 챗봇을 어떻게 차별화하는지를 주제로 모니터링 스터디를 진행하며, 필요할 때마다 시맨틱 검색과 키워드 검색의 동작 방식을 설명했습니다. PoC 때부터 챗봇을 직접 사용해 보면서 팀 전체가 챗봇 서비스에 대한 이해가 쌓였고, 덕분에 서비스 개선에 필요한 도움을 충분히 받을 수 있었습니다.
개발 기법
제니퍼 챗봇은 RAG(Retrieval-Augmented Generation) 기법으로 만들었습니다. RAG는 1) 사용자가 질문을 입력하면 2) 입력과 관련된 정보를 검색하여 3) 검색된 정보를 언어 생성 모델에 질문과 함께 입력하고 4) 언어 생성 모델이 검색 결과를 바탕으로 답변을 생성하는 시스템입니다. 검색의 기초가 되는 좋은 데이터를 갖추고, 질문에 맞는 데이터를 잘 찾으며, 질문과 데이터를 이해하여 올바른 답변을 제공할 수 있는 모델을 사용하면 만족스러운 결과를 얻을 수 있습니다. 제니퍼 챗봇을 만들 때는 OpenAI가 제공하는 가장 우수한 모델을 사용한다는 가정 하에, 올바른 도움말 문서를 잘 찾고 유용한 도움말 문서를 잘 작성하는 데에 집중했습니다.
하이브리드 검색 구현
짧은 키워드부터 복잡한 질문까지 다양한 질문 방식에 효과적으로 대응하기 위해 시맨틱 검색과 키워드 검색을 결합한 하이브리드 검색을 구현했습니다. 시맨틱 검색은 질문의 의미를 파악하는 방식으로, “애플리케이션이 장애가 나거나 이상할 때 봐야되는 사항”과 같은 질문과 연관된 문서를 잘 찾는 반면, 키워드 검색은 “오픈텔레메트리”처럼 특정한 키워드를 염두에 둔 입력에 잘 맞았습니다. 또한, 최신 버전을 물어보는 질문처럼 검색으로 해결하기 어려운 질문인 경우에는 올바르게 답변하기 위해 function call 기능을 몇 가지 추가했습니다. 이러한 검색 시스템을 데이터에 맞춰 설계함으로써, OpenAI의 GPTs 기능을 이용한 챗봇과 비교해 더 우수한 성능을 달성할 수 있었습니다.
매뉴얼 보강
검색 알고리즘 개선과 보조 작업을 맞춰 매뉴얼도 꾸준히 보완하고 있습니다. 딱 잘라 구분할 수는 없지만, 저는 매뉴얼 수정이 검색 알고리즘 개선보다 더 효과적이었다고 생각합니다. 챗봇을 사용하다 보면 쉽게 찾을 수 있을 거라 생각했던 문서를 못 찾는 문제가 종종 발생합니다. 검색 알고리즘을 수정하여 이 문제를 해결할 수도 있지만, 그러면 다른 문제가 발생할 가능성도 있습니다. 그래서 우리는 챗봇으로 들어오는 질문들을 모니터링하여 잘못된 답변을 하는 사례를 수집하고, 이를 바탕으로 매뉴얼을 보강하는 작업을 진행하고 있습니다. 부족한 설명이나 결정적인 키워드를 추가하거나, 매뉴얼 곳곳에 흩어져 있는 정보를 한 군데로 모으는 등의 작업을 통해 매뉴얼을 개선하고 있습니다. 매뉴얼이 치밀해질수록 챗봇도 더 똑똑해지고 있습니다.
모바일 지원
모바일에 최적화된 화면은 제니퍼 챗봇의 자랑거리입니다. 제니퍼 고객은 보안을 위해 격리된 인터넷 환경에서 업무를 수행하는 경우가 많습니다. 이 때문에 현장 지원을 나간 엔지니어들은 공개된 인터넷에서 서비스하는 제니퍼 챗봇에 접근하기 위해 모바일 기기를 사용해야 합니다. 제니퍼 챗봇은 이러한 요구를 반영하여 Flutter를 이용해 모바일에 최적화된 화면을 제공합니다. 이 Flutter 앱은 R&D 스터디 발표에서 Flutter를 주제로 발표하신 Alvin님이 개발해 주셨습니다. 모바일 페이지는 제니퍼 챗봇이 공개된 지 한 달 만에 추가되었으며, 모바일 환경 지원을 먼저 제안해 주신 Alvin님이 아니었다면 모바일 지원이 훨씬 늦어졌을 것입니다.
타임라인
- 2023.06.26 R&D 모니터링 스터디 ‘프롬프트 엔지니어링 맛보기’
- 2023.10.10 R&D 모니터링 스터디 ‘크로스플랫폼 앱 개발을 위한 플러터 소개’
- 2023.11.02 PoC 완료, 디자인 개선 킥오프
- 2023.12.01 엔지니어 대상 공개
- 2024.01.11 모바일 챗봇 v1.0.1 릴리즈
- 2024.02.16 챗봇 엔지니어 설문
- 2024.07 대고객 릴리즈
제니퍼 챗봇 활용
엔지니어의 활용 증가
제니퍼 챗봇은 2023년 12월 1일 엔지니어를 대상으로 공개된 이후 일상적인 업무를 지원하고 있습니다. 현재까지 누적 사용자는 98명이며, 총 7천 개의 질문에 답변을 완료하였습니다. 공개 초기 첫 한 달 동안에는 1,018개의 질문이 들어와 제니퍼 챗봇에 대한 높은 관심을 확인할 수 있었습니다.
현재, 매일 10명 내외의 사용자가 일 평균 27개의 질문을 하고 있으며, 챗봇을 꾸준히 사용하면서 질문하는 노하우도 쌓이고 있습니다. 이전에 했던 질문을 바탕으로 더 깊은 개념을 묻는 사용자도 있으며, 원하는 답을 더 빨리 찾기 위해 문장을 다듬어 나가는 경우도 있습니다. 이러한 사용자들의 활용 덕분에 R&D 팀으로 들어오는 문의가 눈에 띄게 줄어들었습니다. 특히 올해 상반기에는 신기능 개발에 진전이 빨랐습니다. 제니퍼 챗봇이 제니퍼 APM 개발을 더 빠르게 했다고 단언할 수는 없지만, 개발자들은 확실히 그 영향을 체감하고 있습니다.
챗봇, 고객 피드백의 통로 역할을 하다.
제니퍼 챗봇은 고객 피드백을 받는 중요한 통로 역할도 하고 있습니다. 제니퍼는 주로 폐쇄망에 설치되기 때문에, 사용자들이 제품을 어떻게 사용하는지 알기 위해서는 고객사를 직접 방문해야 했습니다. 그러나 제니퍼 챗봇이 공개된 이후에는 엔지니어들이 일상적으로 어떤 이슈를 처리하는지를 알 수 있게 되어, 고객 사용성을 파악할 수 있는 추가 자료가 생겼습니다.
특정 기능에 대한 질의가 많으면 해당 기능에 대한 고객사의 관심을 유추할 수 있어, 고객사에서 직접 피드백을 받는 것보다는 제한적이지만, 제품 개발의 우선순위를 정하는 데 유용한 참고 자료가 되고 있습니다. 예를 들어, 올해 초 제니퍼 설정 화면 리뉴얼 이후 설정의 위치가 변경되어 원하는 설정을 찾기 어려워하는 경우가 예상보다 많이 발생하는 것을 제니퍼 챗봇을 통해 알 수 있었습니다. 덕분에 이 문제를 해결하기 위한 옵션 검색 기능의 개발 우선순위를 높여 진행할 수 있었습니다.
그리고 앞으로의 제니퍼 챗봇은…
챗봇의 PoC가 시작된 지 1년이 넘었고, 그동안 다양한 사용자의 질문을 경험해왔습니다. 챗봇이 완벽해질 수는 없겠지만, 그 유용성을 점점 넓혀갈 수 있었습니다. 이제 우리는 제니퍼 챗봇이 사용자에게 유용한 도구가 될 수 있다고 믿습니다. 고객들이 제니퍼 챗봇을 통해 제니퍼를 배우는 동안, 우리는 고객을 배우고 제품을 더욱 정교하게 다듬어 나갈 것입니다.
제니퍼소프트에서 챗봇은 비용 절감을 위한 도구가 아니라, 고객에게 편의를 제공하고 고객을 더 잘 이해하기 위한 수단이 될 수 있습니다.
제니퍼는 누구나 쉽게 모니터링할 수 있는 제품을 지향하며, 사용하기 쉬운 제품이 되기 위해 항상 노력해왔습니다. 이러한 신념을 바탕으로, 제니퍼 챗봇이 어렵고 복잡한 기술 문서를 더 쉽게 활용할 수 있도록. 고객이 우리 제품을 더 잘 사용할 수 있도록 활용되길 희망합니다.
그래서 제니퍼 챗봇을 더 잘 만들어야 한다고 믿으며, 더 즐겁게 개발하겠습니다.
고맙습니다.