# 마인드웨어웤스 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/#