나는 챗봇 리뉴얼 프로젝트를 담당하고 있었고
해당 고객사는 챗봇을 고객 상담에 활용하고 있었다.
그런데 리뉴얼을 하면서 열린 몇번의 미팅에서
콜센터 상담사분이 챗봇의 상담기록을 관리할 때
욕설이 은근 많아서 상처도 받고 스트레스도 받는다는 말을 지나가듯이 하셨다.
사실 누가 일하면서 욕설을 눈으로 보고 귀로 듣고 싶겠는가..!
그래서 이 부분을 상담기록 내에서도 금지어와 관련해서 개선해야겠다고 생각했고,
아이디어를 냈다.
사실 상담을 목적으로 하는 챗봇의 금지어 기능은 굉장히 흔하다.
챗봇에게 19금이나 음란한 말들을하여 챗봇이 학습되는 경우도 있고,
챗봇 상담이 잘 이루어지지 않으면 쉽게 욕설을 채팅에 치곤 한다.
출처: 한경
그래서 챗봇에도 금지어 기능은 있었고, 해당 금지어 기능은 적용만 해주면 되었다.
그런데 문제는 상담 기록에도 금지어가 그대로 남아
상담원이 상담기록을 조회할 때 스트레스를 받기도 하고,
자주 사용하는 욕설을 조회하고 싶을 때가 있기 때문에
상담기록내에서 금지어 관련 기능을 개선하려고 한 것이다.
첫번째로 고민한 방법은
금지어가 아예 상담기록에 남지 않게끔 하는 것이다.
사용자의 채팅 메세지를 받아오고
이를 상담기록에서 나타내는데, 이 때 어차피 사용자의 채팅 메세지에는
금지어인지 아닌지 type이 구분되어 있다.
이 type값을 받아오기 때문에
type값을 판별해서 금지어이다? 그럼 상담기록 창에 안 나타나게끔 하면 된다.
이렇게 두가지 방법이 있다.
.
.
.
상담사분들께서는 상담기록에서 금지어를 히든하지 않고
보고싶다고 하셨다.
누군가는 욕설을 보면 스트레스를 받으니 아예 안 보고 싶다고 하시고,
누군가는 자주 사용하는 욕설이 무엇인지 알고 싶다고 하시고 ..
그럼 결국 어쨌든 아예 백엔드에서 배열에 담지 않는 건 취소취소..
누군가는 보고 싶고 누군가는 안 보고 싶다면..?
그래서 두번째로 고민한 개선 방법은 상담기록 창 내에 메세지 중
type 값으로 금지어를 구분해내고
금지어인 메세지에는 눈 아이콘을 삽입해서 보고 싶을 때 보도록 해야겠다고 생각했다.
일단 욕설을 보는 것 자체가 스트레스이니..
처음엔 안 보이게끔 하고, 비밀번호 타입 처럼
눈 아이콘을 클릭하면 욕설을 볼 수 있게끔 하면
두가지 조건을 만족할 수 있지 않을까?
이렇게 "금지어입니다." 로 나타내고
눈 아이콘을 추가하여, 클릭하면 원본 메세지를 볼 수 있게끔 구현했다.
if (chat.type === "prohibited") {
rightContent += "<div id='" + messageId + "'>금지어입니다.</div>";
if(counselProhibitFlag == "1"){
rightContent += "<div id='" + messageId +"'>"+chat.message+"</div>";
}else{
rightContent += "<div id='" + messageId + "'>금지어입니다.</div>"}
*참고로 코드는 눈물나는 angular이다 ..ㅎ
여기까진 아주 좋은 개선 방안이라고 좋아하셨다.
그러나,
이렇게 또 두개의 의견으로 나뉘었다 ..^^
그래서 마지막으로 생각한 방법은
위와 같이 그대로 가면서, 원하는 기본 설정값이 다를 수 있으니
setting 메뉴에 해당 기본 설정값을 보이게끔 / 안 보이게끔 나눠서
관리자가 설정할 수 있게끔 하자!
였다.
이렇게 하면 기본값도 취향에 맞게 선택할 수 있고..
금지어 표기도 취향에 맞게 봤다가 안 봤다가 할 수 있으니
은근 모든 조건을 만족했달까..
그래서 setting 메뉴에 해당값을 설정할 수 있는 간단한 모듈을 만들고
거기서 제어한 값으로 금지어 기본 설정값이 제어되도록 했다.
이번건은 로직에 대한 고민보다
고객의 불편함을 해소시켜주기 위한 고민이 더 컸고
생각보다 최선의 결과를 낳았다고 생각했다.
중간중간
"....앗..엉..?" 과 같은 생각이 들었지만 ..^^
그래도 뿌듯했고, 성장했다!