# 마인드웨어웤스 CogInsight
- 일자: 2020.08.12
## 교육목차
- 시스템 개요
- 서비스 개요
## 시스템 개요
- 개방형 메신저를 붙일 수 있음 (카카오톡, 라인 등)
- CTI 혹은 IP/PBX가 수신해주고 뒤단으로 넘겨야함. (CTI, IVR은 회산 내부에 존재 가능)
- Outbound의 경우 캠페인 기능을 통해 챗봇 링크를 보내서 아웃바운드 콜 처리를 진행함.
- 딜러버리 방식: on-promise 구축 or AWS 클라우드 SaaS
## 서비스 개요
- 개방형 메신저를 붙일 수 있음 (카카오톡, 라인 등)
- 카카오는 B2B 과금 서비스로 이용
- 붙은 voice agent 장치 (Nugu, 아마존 에코 등)
- 개인정보(금융보안원 9개 개인정보) 데이터는 secure-gw를 타고 거기서 마스킹 처리됨. (의도 판별에 필요한 정보만 전달)
- 상담사 요청이 오면 내부적으로 cti를 거쳐 Call transfer하여 중개함.
- 클라이언트 / 네트워크 / SOE / 서비스
- 과거 대화 이력을 저장, 마지막 상태 저장해두어야함. 그래서 캐시서버를 이용
- 로그 분서을 통한 추천 등은 엘라스틱서치 사용
- API 메니저를 통해 기간계 시스템 연동
- 크롤러를 통해 공식 홈페이지를 20분에 1번 수집하고, 키워드 등을 분석/분류하여 해당 질문 답변에 대한 지식을 빨리 만들 수 있도록 함. (Copy Modeler)
- 챗봇 패턴을 분석하는 분석서버/배치서버를 통해 통계/차트를 제공함. / 시스템 평균 사용량 / CS부서는 질답 처리 통계 / 개인화, 통합 통계 제공
- 접속 시간, 접속 채널 등 분성을 위해 배치로 데이터웨어하우스에 보내서 분석
- 날씨 정보 조회 등 부가서비스도 제공
- 시스템 자원 상태, 응답 상태도 대시보드를 통해 제공
## CogInsight 소개
- 앞단
- 계정 설정 (구글 OTP 설정하여 로그인 설정 가능)
- 챗봇 채널 설정 (챗봇 제작 시 token, cofig 정보를 입력해주어야함.)
- 개인정보가 포함되어 Secure GW를 태우는 경우 정규식 패턴 매칭으로 마스킹한다음 뒷단으로 넘김.
- 모든 구간 암호화도 가능 / SecureGw설정에서 encoding 키 등록
- 특정 시간이 지나면 배치로 문자열 자체를 마스킹
- NLP (구글, Watson, 마인드웨어웤스 등 엔진)
- NLP 워크 스페이스 설정 (내가 만든 클라우드 설정을 입력)
- STT/TTS 설정에서 어떤 엔진을 사용한 것지 선택
- 엔터프라이즈 데이터는 ESD(Enterprise Service Data)에 넣고 사용
- 스키마 생성
- 데이터는 엑셀 임포트, 배치로 가져오기 셍팅 / export 기능도 제공
- API 매니저에서 시스템이 제대로 동작하는지 테스트 가능
- API 매니저에서 API 전체 설정
- 파일 매니저를 통해 미디어 리소스 등록 (이미지, 사전 안내 멘트 wav 파일 등)
- topic을 어떻게 구성할지 분석 기능 제공 (lda를 사용하여 clustering, topic 개수가 어떤 게 좋은 지 추천해줌)
- 기존 데이터를 통해 topic 모델링, 인텐트 생성에 도와줌
- 크롤러는 특정 사이트 방문, 어떤 조건의 문장을 긁은 건지 스크립트 설정
- Dialog
- 챗봇 생성
- 처음에 세션을 들고 오고, condition을 체크하고 관련 정보를 뒷단으로 넘길 수 있음.
- 변수 중 secure.으로 시작하는 정보는 암호화 처리 or 휘발성으로 사용하고 버림.
- 변수 설정에서 마지막으로 발화한 말을 가져올 수 있도록 set할 수 있음.
- 챗봇 기준 시간을 나라마다 다르게 할수 있음.
- 챗봇 세션 유지 시간 설정
- 이전 버튼 추가 설정
- ES 추천 질의 설정 등
- ES에 밀어넣어진 걸 추천
- 챗봇 응답 UI CSS 적용 제공
- 공지사항 재공 설정
- live chat (상담사와 직접 연결) / spectra로 연결하여 채팅상담 제공도 가능
- 상담원 명칭도 설정 가능
- 시나리오 테스트
- 녹화를 시작하고 채팅 UI를 사용하고 녹화를 중지함. 그러면 녹화를 하면 자동으로 테스트 케이스가 저장됨. 다음 실행 땐, 기존 저장된 로그와 비교하여 테스트를 통과했는지 확인할 수 있음.
- 챗봇 사용 통계
- 의도별로 호출 횟수
- 어느 구간을 통해 진입, 이탈 (안내까지만 받고 나가더라, 안내까지 받고 어느 인텐트로 가더라 등)
- 엔티티 통계
- 조건에 따라 통계도 제공 (사용자 정의 통계 기능)
- dialog에 태그를 달고, 해당 태그가 얼마나 호출되었는지 체크해서 통계로 보여줌.
- 피드백 모니터링 (로그 모니터링)
- 대화록, 전체 녹취록 듣기, 부분 녹취록 듣기
- 아웃바운드 캠패인
- 시간, ESD 데이터 조회 등 설정 제공
- 사용자 설정
- 블랙리스트 등록 (무조건 휴먼 상담사로 전환)
- 화이트리스트 등록 (무조건 기계로 전환)
## CogInsight 실습
- 접속 계정: https://mail.google.com/mail/u/0/#inbox/FMfcgxwJXLldFcxGtdwfFxrXxcHZWwJC
- id: jack.ohjoonoh@gmail.com
- pwd: aicc123!
- Dialog 과정
1. 챗봇 생성
2. Predialog -> Maindialog > PostDialog (마지막 응답 값 정재)
- Node는 트리형태로 구성
- 메인다이얼로그는 매번 첫 노드를 타는 게 아니라 세션 기준으로 마지막 노드 기준으로 대화를 이어나감.
- Predialog는 매번 실행됨.
- Main dialog 아웃풋은 메시지가 만들어져도 Postdialog를 타서 답변이 나감.
- Postdialog와 Main Dialog 결과가 머지 되서 나감.
- 노드
- Welcome
- 처음으로 진입하는 대화는 welcome노드를 탐.
- Output
- 발화를 내보내는 것
- 노드안에 컨트롤(TEXT, Carousel 등)이 있음
- 컨트롤도 '라벨'과 '조건'이 있고, 컨트롤 '조건'으로 노드안에서 분기를 탈 수 있음.
- 데이터는 가공을 해서 쓸 수 있게 해주는 필드임.
- AnythingElse
- 어떠한 비즈니스도 매칭을 못하면 실행
- Number Pad
- 암호화하여 번호 정보 전송
- Key Pad
- 암호화하여 정보 전송
- FeedBack
- 사용자 평가를 받음.
- 평가가 끝나면 완료 메시지가 표시됨.
- Set
- 변수 설정
- Subdialog
- dialog 캡슐화 (예시: 반복을 원하는 구간이 있으면 subdialog로 만들고 계속 돌게 만듦)
- 최대 반복 횟수는 무조건 지정해야함.
- Stack
- 노드를 지나면서 쌓였던 stack을 제어
- clear => stack 삭제
- save => 커서 저장
- restore => 뒤로 돌아감.
- Mail
- SMS
- Agent
- 실제 상담사와 채팅
- 검은 화면은 자바스크립트 코드가 들어가는 영역
- 현재 노드를 기준으로 오른쪽으로만 노드 탐색 (오른쪽으로는 못감)
- 오른쪽으로 나가는 것이 더이상 갈 수 없으면 비즈니스 완료라고 판단 / 모든 노드 상태를 초기화하고 루트 대화부터 시작함.
- 비즈니스가 꼬이지 않도록 가두는 역할을 함.
- 노드가 지나온 history를 전부 쌓고 있음. (진입 노드, 마지막 노드)
- output에 아무 조건을 안두면 anything else 처럼 동작함.
- 컨트롤
- Postback
- 버튼을 눌러서 봇에게 버튼을 통해 메시지를 전달함.
- Postbacj이 전달하는 값은 ${_postback}에 들어있음.
- 컴포넌트
-
- 참고
- 프로젝트 = 챗봇
## 참고
- 현대카드, 비씨카드는 Spectra 상담 툴 사용
- 노드
- 키패드, 바코드, dtmf, telephone(call transfer), recore(추가 녹취 설정), reask(방금한 말 확인)
- 자주 쓰는 대화는 component로 만들어서 drag & drop 하여 재활용
- 해당 시스템에 노드 수정 등 내역을 history와 상태를 저장 (이전 상태로 복귀도 가능)
- 모니터링
- CPU 메모리 상태, API health 상태, NLP 응답 속도
- force노드로 barge-in 수행
## Q&A
- 개발시 사용한 언어 / 미들웨어 / 프레임워크?
- 사람이 구축해주는 것말고, BERT같은 딥러닝 QA 같은 거는 붙었나?
- 기간계 캐시서버가 붙은 거냐?
- 답변: ㄴㄴ직접 API로 호출
- STT 성능에 대한 요구사항이 있나?
- @닷컴은 @.com으로 바꿔달라 등, 공일공xxxx이라 말하면 010xxxx으로 바꿔줘라 등
- 이건 엔진 선택 시 고려
- 대시보드에서 에러 난 자원을 되살릴 수 있나?
- 답변:
- 서비스 간의 인증(access token 등 사용)은 어떻게?
- slot-filling 기능 제공 여부
- ESD 배치 주기 (실시간 가능)
- 제고 같은 거는 실시간으로 변경함
- 답변: ESD는 캐시서버 처럼 쓰는 것이 아니라 DB가 없느 서비스를 DB
- CogInsight 웹 브라우저 어디까지 지원?
- 사용자 설정은 어느 서비스 단에서 처리되는지?
- 발화 유사도 검사 설정 할 수 있냐?
- 먼저 말하기 안되나?
- 매뉴얼 어디 있냐?
- url: https://docs.coginsight.net
- id: cogedu@mindwareworks.com
- pwd: cogedu12#$
- 추가질문은 coginsight의 문의하기를 통해 질문
- 의도는 어디서 태우나?
- coginsight 사이트: https://v2.aiware.io/dashboard/#