KR102383926B1 - 챗봇 시스템의 제어 방법, 장치 및 프로그램 - Google Patents

챗봇 시스템의 제어 방법, 장치 및 프로그램 Download PDF

Info

Publication number
KR102383926B1
KR102383926B1 KR1020190169687A KR20190169687A KR102383926B1 KR 102383926 B1 KR102383926 B1 KR 102383926B1 KR 1020190169687 A KR1020190169687 A KR 1020190169687A KR 20190169687 A KR20190169687 A KR 20190169687A KR 102383926 B1 KR102383926 B1 KR 102383926B1
Authority
KR
South Korea
Prior art keywords
user terminal
server
related data
response message
query
Prior art date
Application number
KR1020190169687A
Other languages
English (en)
Other versions
KR20210078038A (ko
Inventor
백기락
Original Assignee
강원오픈마켓 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 강원오픈마켓 주식회사 filed Critical 강원오픈마켓 주식회사
Priority to KR1020190169687A priority Critical patent/KR102383926B1/ko
Publication of KR20210078038A publication Critical patent/KR20210078038A/ko
Application granted granted Critical
Publication of KR102383926B1 publication Critical patent/KR102383926B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • G06F16/3329Natural language query formulation or dialogue systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/3349Reuse of stored results of previous queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/9032Query formulation
    • G06F16/90332Natural language query formulation or dialogue systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/9035Filtering based on additional data, e.g. user or group profiles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/02User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail using automatic reactions or user delegation, e.g. automatic replies or chatbot-generated messages

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Computer Security & Cryptography (AREA)
  • Artificial Intelligence (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

챗봇 시스템의 제어 방법이 제공된다. 상기 챗봇 시스템의 제어 방법은, 서버가, 제1 사용자 단말 및 제2 사용자 단말이 참여하는 제1 채팅방을 통해 상기 제2 사용자 단말로부터 질의를 수신하는 단계, 상기 서버가, 상기 질의를 제1 사용자 단말로 전송하는 단계, 상기 서버가, 상기 질의를 분석하여 제1 예비응답 메시지를 획득하는 단계, 상기 서버가, 상기 제1 예비응답 메시지가 기 설정된 조건에 따라, 상기 제1 예비응답 메시지를 상기 제1 사용자 단말 및 상기 제2 사용자 단말 중 적어도 하나의 사용자 단말로 전송하는 단계를 포함한다.

Description

챗봇 시스템의 제어 방법, 장치 및 프로그램{CONTROL METHOD, DEVICE AND PROGRAM OF CHATBOT SYSTEM}
본 발명은 챗봇 시스템의 제어 방법, 장치 및 프로그램에 관한 것이다.
인공 지능(Artificial Intelligence, AI) 시스템은 인간 수준의 지능을 구현하는 컴퓨터 시스템이며, 기존 규칙 기반 스마트 시스템과 달리 기계가 스스로 학습하고 판단하며 똑똑해지는 시스템이다. 인공 지능 시스템은 사용할수록 인식률이 향상되고 사용자 취향을 보다 정확하게 이해할 수 있게 되어, 기존 규칙 기반 스마트 시스템은 점차 딥러닝 기반 인공 지능 시스템으로 대체되고 있다.
음성인식 분야와 이미지 분석 분야는 인공지능 시스템이 적용된 대표적인 분야이다. 특히 음성인식 분야는, 사용자 대화를 분석하여 사용자의 의도를 파악하기 위한 자연어 처리 기술과, 사용자의 의도를 바탕으로 자연스러운 답변을 생성하기 위한 자연어 처리 기술이 요구된다.
그러나 정확한 음성 인식을 위해서는 기술 발전은 별론으로, 수많은 학습 데이터와 고성능의 GPU가 요구되어, 비용 투입 대비 얻는 효과가 크지 않은 문제점이 존재한다.
따라서, 음성 인식 분야의 일 기술 요소가 사용되는 챗봇 시스템에 있어서, 사용자와 대화하기 위한 인공지능 모델을 구축하는 방법에 대한 논의가 필요한 실정이다.
등록특허공보 제10-1756261호 (2017.07.04 등록)
본 발명이 해결하고자 하는 과제는 챗봇 시스템의 제어 방법, 장치 및 프로그램을 제공하는 것이다.
본 발명이 해결하고자 하는 과제들은 이상에서 언급된 과제로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
상술한 과제를 해결하기 위한 본 발명의 일 면에 따른 챗봇 시스템의 제어 방법은, 서버가, 제1 사용자 단말 및 제2 사용자 단말이 참여하는 제1 채팅방을 통해 상기 제2 사용자 단말로부터 질의를 수신하는 단계; 상기 서버가, 상기 질의를 제1 사용자 단말로 전송하는 단계; 상기 서버가, 상기 질의를 분석하여 제1 예비응답 메시지를 획득하는 단계; 상기 서버가, 상기 제1 예비응답 메시지가 기 설정된 조건에 따라, 상기 제1 예비응답 메시지를 상기 제1 사용자 단말 및 상기 제2 사용자 단말 중 적어도 하나의 사용자 단말로 전송하는 단계; 를 포함한다.
이때, 상기 제어 방법은, 상기 서버가, 상기 질의를 분석하여 연관 데이터를 획득하는 단계; 및 상기 서버가, 상기 제1 사용자 단말 및 상기 제2 사용자 단말 중 적어도 하나의 사용자 단말로 상기 연관 데이터를 전송하는 단계;를 포함할 수 있다.
이때, 상기 연관 데이터를 획득하는 단계는, 상기 질의를 바탕으로 키워드를 추출하는 단계; 상기 키워드에 대응되는 제1 연관 데이터를 상기 서버의 내부 DB에서 검색하는 단계; 상기 키워드에 대응되는 제2 연관 데이터를 외부 서버에서 검색하는 단계; 및 상기 제1 연관 데이터 및 상기 제2 연관 데이터 중 적어도 하나의 데이터를, 상기 제1 사용자 단말 및 상기 제2 사용자 단말 중 적어도 하나의 사용자 단말로 전송하는 단계; 를 포함하고, 상기 제어 방법은, 상기 제2 사용자 단말이, 상기 서버로부터 상기 제1 연관 데이터 및 상기 제2 연관 데이터 중 적어도 하나의 연관 데이터를 수신하는 단계; 및 상기 제2 사용자 단말이, 상기 적어도 하나의 연관 데이터를 상기 제1 채팅방의 제1 영역에 표시하는 단계; 를 포함하고, 상기 제1 영역에 표시되는 연관 데이터는, 상기 제2 사용자 단말이 다운로드 가능한 데이터 및 상기 사용자 단말이 접속 가능한 url 정보일 수 있다.
이때, 상기 제1 사용자 단말 및 상기 제2 사용자 단말 중 적어도 하나의 사용자 단말로 전송하는 단계는, 상기 제1 연관 데이터의 보안 등급을 획득하는 단계; 상기 제2 사용자 단말의 사용자 등급을 획득하는 단계; 상기 제1 연관 데이터의 보안 등급이 상기 제2 사용자 단말의 사용자 등급 보다 높은 경우, 상기 제1 연관 데이터를 상기 제1 사용자 단말로 전송하는 단계; 및 상기 제1 연관 데이터의 보안 등급이 상기 제2 사용자 단말의 사용자 등급 보다 낮은 경우, 상기 제1 연관 데이터를 상기 제2 사용자 단말로 전송하는 단계;를 포함하고, 상기 제1 연관 데이터를 상기 제1 사용자 단말로 전송하는 단계는, 상기 제1 사용자 단말로부터, 상기 제1 연관 데이터를 상기 제2 사용자 단말로 전송하기 위한 사용자 명령이 입력되면, 상기 서버가, 상기 제1 연관 데이터를 상기 제2 사용자 단말로 전송하는 단계; 를 포함할 수 있다.
이때, 상기 기 설정된 조건은, 상기 제1 사용자 단말이 상기 서버와 접속되어 있는지에 대한 조건이며, 상기 제1 예비응답 메시지를 상기 제1 사용자 단말 및 상기 제2 사용자 단말 중 적어도 하나의 사용자 단말로 전송하는 단계는, 상기 제1 사용자 단말이 상기 서버와 접속된 경우, 상기 서버는, 상기 제1 예비응답 메시지를 상기 제1 사용자 단말로 전송하는 단계; 상기 제1 사용자 단말이, 상기 제1 예비응답 메시지를 바탕으로 제1 응답 메시지를 획득하여 상기 서버로 전송하는 단계; 상기 서버가, 상기 제1 응답 메시지를 상기 제2 사용자 단말로 전송하는 단계; 및 상기 제2 사용자 단말이, 상기 제1 응답 메시지를 상기 제1 채팅방의 제2 영역에 표시하는 단계;를 포함하고, 상기 제1 사용자 단말이 상기 서버와 접속되지 않은 경우, 상기 서버가, 상기 제1 예비응답 메시지를 상기 제1 사용자 단말 및 상기 제2 사용자 단말로 전송하는 단계; 및 상기 제1 사용자 단말 및 상기 제2 사용자 단말이, 상기 제1 예비응답 메시지를 상기 제1 채팅방의 제2 영역에 표시하는 단계;를 포함할 수 있다.
이때, 상기 제1 연관 데이터를 획득하는 단계는, 상기 제2 사용자 단말에 대응되는 개인 정보 및 과거 대화 히스토리를 획득하는 단계; 상기 획득된 개인 정보, 과거 대화 히스토리 및 상기 키워드를 바탕으로 상기 제1 연관 데이터를 획득하는 단계; 상기 제1 연관 데이터가, 제3 사용자 단말로부터 수신한 연관 데이터인 경우, 상기 서버가, 상기 제1 사용자 단말, 상기 제2 사용자 단말 및 상기 제3 사용자 단말을 포함하는 제2 채팅방으로 초대하는 단계; 및 상기 서버가, 상기 제2 채팅방을 통해 수집된 상기 제2 사용자 단말 및 상기 제3 사용자 단말의 대화 내용을 획득하는 단계;를 포함할 수 있다.
이때, 상기 제2 사용자 단말 및 상기 제3 사용자 단말의 대화 내용을 획득하는 단계는, 상기 서버가, 상기 제2 채팅방을 통해, 상기 제2 사용자 단말의 질의 정보를 획득하는 단계; 상기 서버가, 상기 질의를 분석하여 제2 예비응답 메시지를 획득하는 단계; 상기 서버가, 상기 제2 예비응답 메시지의 보안 등급을 획득하는 단계; 및 상기 제2 예비응답 메시지의 보안 등급이 기 설정된 등급 초과인 경우, 상기 서버가, 상기 제2 예비응답 메시지를 상기 제1 채팅방에 출력하는 단계; 및 상기 제2 예비응답 메시지의 보안 등급이 기 설정된 등급 이하인 경우, 상기 서버가, 상기 제2 예비응답 메시지를 상기 제2 채팅방에 출력하는 단계;를 포함할 수 있다.
본 발명의 기타 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
상술한 본 발명의 다양한 실시예에 따라, 상담자와 인공지능이 결합된 챗봇 시스템이 제공되어 사용자 편의성이 향상되는 효과가 존재한다.
본 발명의 효과들은 이상에서 언급된 효과로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 발명의 일 실시예에 따른 시스템을 도시한 시스템도이다.
도 2는 본 발명의 일 실시예에 따른 챗봇 시스템을 설명하기 위한 흐름도이다.
도 3은 본 발명의 일 실시예에 따른 연관 데이터를 제공하는 방법을 설명하기 위한 흐름도이다.
도 4는 본 발명의 일 실시예에 따른 연관 데이터의 종류를 획득하는 방법을 설명하기 위한 흐름도이다.
도 5는 본 발명의 일 실시예에 따른 연관 데이터의 종류에 따라 연관 데이터를 제공하는 방법을 설명하기 위한 흐름도이다.
도 6은 본 발명의 일 실시예에 따른 제1 사용자 단말의 접속 여부에 따라 제2 사용자 단말에 제공되는 메시지를 설명하기 위한 흐름도이다.
도 7은 본 발명의 일 실시예에 따른 제1 사용자 단말의 과거 히스토리를 바탕으로 관련 사용자를 판단하는 방법을 설명하기 위한 흐름도이다.
도 8은 본 발명의 일 실시예에 따른 복수의 채팅방을 활용하는 방법을 설명하기 위한 흐름도이다.
도 9는 본 발명의 일 실시예에 따른 채팅방을 설명하기 위한 예시도이다.
도 10은 본 발명의 일 실시예에 따른 장치의 구성도이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 발명은 이하에서 개시되는 실시예들에 제한되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술 분야의 통상의 기술자에게 본 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소 외에 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다. 명세서 전체에 걸쳐 동일한 도면 부호는 동일한 구성 요소를 지칭하며, "및/또는"은 언급된 구성요소들의 각각 및 하나 이상의 모든 조합을 포함한다. 비록 "제1", "제2" 등이 다양한 구성요소들을 서술하기 위해서 사용되나, 이들 구성요소들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 구성요소는 본 발명의 기술적 사상 내에서 제2 구성요소일 수도 있음은 물론이다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야의 통상의 기술자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또한, 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
명세서에서 사용되는 "부" 또는 “모듈”이라는 용어는 소프트웨어, FPGA 또는 ASIC과 같은 하드웨어 구성요소를 의미하며, "부" 또는 “모듈”은 어떤 역할들을 수행한다. 그렇지만 "부" 또는 “모듈”은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. "부" 또는 “모듈”은 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 "부" 또는 “모듈”은 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함한다. 구성요소들과 "부" 또는 “모듈”들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 "부" 또는 “모듈”들로 결합되거나 추가적인 구성요소들과 "부" 또는 “모듈”들로 더 분리될 수 있다.
공간적으로 상대적인 용어인 "아래(below)", "아래(beneath)", "하부(lower)", "위(above)", "상부(upper)" 등은 도면에 도시되어 있는 바와 같이 하나의 구성요소와 다른 구성요소들과의 상관관계를 용이하게 기술하기 위해 사용될 수 있다. 공간적으로 상대적인 용어는 도면에 도시되어 있는 방향에 더하여 사용시 또는 동작시 구성요소들의 서로 다른 방향을 포함하는 용어로 이해되어야 한다. 예를 들어, 도면에 도시되어 있는 구성요소를 뒤집을 경우, 다른 구성요소의 "아래(below)"또는 "아래(beneath)"로 기술된 구성요소는 다른 구성요소의 "위(above)"에 놓여질 수 있다. 따라서, 예시적인 용어인 "아래"는 아래와 위의 방향을 모두 포함할 수 있다. 구성요소는 다른 방향으로도 배향될 수 있으며, 이에 따라 공간적으로 상대적인 용어들은 배향에 따라 해석될 수 있다.
본 명세서에서, 컴퓨터는 적어도 하나의 프로세서를 포함하는 모든 종류의 하드웨어 장치를 의미하는 것이고, 실시 예에 따라 해당 하드웨어 장치에서 동작하는 소프트웨어적 구성도 포괄하는 의미로서 이해될 수 있다. 예를 들어, 컴퓨터는 스마트폰, 태블릿 PC, 데스크톱, 노트북 및 각 장치에서 구동되는 사용자 클라이언트 및 애플리케이션을 모두 포함하는 의미로서 이해될 수 있으며, 또한 이에 제한되는 것은 아니다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예를 상세하게 설명한다.
본 명세서에서 설명되는 각 단계들은 컴퓨터에 의하여 수행되는 것으로 설명되나, 각 단계의 주체는 이에 제한되는 것은 아니며, 실시 예에 따라 각 단계들의 적어도 일부가 서로 다른 장치에서 수행될 수도 있다.
도 1은 본 발명의 일 실시예에 따른 시스템을 도시한 시스템도이다.
본 발명에 따른 시스템은, 서버(10), 제1 사용자 단말(20) 및 제2 사용자 단말(30)을 포함할 수 있다.
서버(10)는 제1 사용자 단말(20) 및 제2 사용자 단말(30)로 챗봇 서비스를 제공하기 위한 구성이다. 일 실시예로, 챗봇 서비스는 어플리케이션의 형태로 제1 사용자 단말(20) 및 제2 사용자 단말(30)로 제공될 수 있다.
서버(10)는 제1 사용자 단말(20) 및 제2 사용자 단말(30) 중 적어도 하나의 사용자 단말로부터 받은 질의를 분석하여 예비응답 메시지 및 연관 데이터를 획득하기 위하여 인공지능 모델을 이용할 수 있다.
일 실시예로, 서버는 학습을 위한 질의 메시지, 질의 메시지에 대한 예비응답 메시지 및 질의 메시지에 대한 연관 데이터를 학습 데이터로 획득하여 인공지능 모델을 학습 시킬 수 있다. 구체적으로, 서버(10)는 질의 메시지를 인공지능 모델에 입력하여 예비응답 메시지 및 연관 데이터를 출력하도록 인공지능 모델을 학습시킬 수 있다.
나아가, 서버(10)는 챗봇을 사용하는 사용자로부터 수신한 질의 메시지 및 이에 대한 예비응답 메시지 및 연관 데이터 메시지를 추가로 획득하여 학습 데이터로 획득할 수 있다. 이 경우, 서버(10)는 범용성 있는 제1 인공지능 모델을 통해 모든 챗봇 사용자에 대한 답변을 생성할 수 있으며, 나아가, 개인화된 제2 인공지능 모델을 통해 특정 사용자에 대한 답변을 생성할 수 있다.
즉, 서버(10)는, 초기 설정된 임의의 학습 데이터, 각각의 사용자로부터 획득한 학습데이터는 제1 인공지능 모델의 학습 데이터로 활’D하되, 특정 사용자로부터 학습된 학습 데이터는 제2 인공지능 모델의 학습 데이터로 활용할 수 있다.
일 실시예로, 서버(10)는 특정 사용자에 대한 질의를 수신한 경우, 해당 질의를 입력값으로 제1 인공지능 모델 및 제2 인공지능 모델에 독립적으로 입력하여 출력값(즉, 예비응답 메시지 및 연관 데이터)을 획득하고, 제1 인공지능 모델을 통해 출력된 출력값 및 제2 인공지능 모델을 통해 출력된 출력값 중 적어도 하나의 출력값을 최종 출력값으로 획득할 수 있다. 예를 들어, 서버(10)는 제2 인공지능 모델을 통해 출력된 출력값의 정확도가 기 설정된 값 이하인 경우, 제1 인공지능 모델을 통해 출력된 출력값을 최종 출력값으로 획득하고, 제2 인공지능 모델을 통해 출력된 출력값의 정확도가 기 설정된 값 초과인 경우, 제2 인공지능 모델을 통해 출력된 출력값을 최종 출력값으로 획득할 수 있다. 상술한 방법을 통해, 서버(10)는 제2 인공지능 모델을 이용하여 개인화된 응답을 제공하되, 상대적으로 학습 데이터량이 부족하여 정확한 결과 출력이 보장되지 않는 제2 인공지능 모델을 제1 인공지능 모델을 통해 보완할 수 있다.
한편, 본 발명에 따른 서버(10)는 제1 사용자 단말(20) 및 제2 사용자 단말(30) 중 적어도 하나의 사용자 단말로부터 수신한 질의를 분석하기 위하여, 자연어 이해부(Natural Language Understanding, NLU), 질의 관리 매니지먼트 모듈, 자연어 생성부(Natural Language Generator, NLG), 및 데이터 베이스를 포함할 수 있다.
자연어 이해부는 수신한 질의를 바탕으로 엔티티(entity) 및 질의의 의도(intent)와 관련된 태스크(task)를 파악하기 위한 구성이다. 구체적으로, 자연어 이해부는 문장의 구조 및 주요 성분 분석을 통해 문장을 해석하고 통계/분석 등을 이용하여 문장 분석을 수행할 수 있다.
질의 관리 매니지먼트 모듈은 자연어 이해 결과 및 데이터 베이스에 저장된 데이터를 바탕으로 질의에 대한 응답에 대한 정보를 획득하기 위한 구성이다. 질의 관리 매니지먼트 모듈은 Frame기반, Agent기반 등으로 구현될 수 있으며, MDP(Markov Decision Process), 강화 학습(Reinforcement Learning)기반 모델링을 통해 구현될 수도 있음은 물론이다. 이때, 질의 관리 매니지먼트 모듈은 응답(예비응답 메시지 또는 연관 데이터)을 생성하기 위한 정보를 획득할 수 있으며, 상술한 바와 같이, 획득된 정보는 자연어 이해부를 통해 파악된 태스크와 데이터 베이스에 저장된 데이터를 바탕으로 결정될 수 있다. 자연어 생성부는 질의 관리 매니지먼트 모듈을 통해 획득된 정보를 바탕으로 질의에 대한 응답으로서, 자연어를 획득할 수 있다.
데이터 베이스는 질의 관리 매니지먼트 모듈에서 응답을 생성하는데 필요한 정보를 저장하기 위한 구성이다. 이때, 데이터 베이스에 저장되는 데이터는 다양할 수 있다. 일 실시예로, 데이터 베이스에 저장되는 데이터는, 제1 사용자 단말(20)과 제2 사용자 단말(30)의 과거 대화 내용에 대한 히스토리, 과거 대화 내용에 따라 전송된 연관 데이터의 종류, 제2 사용자 단말(30)로부터 수신한 데이터일 수 있다. 다만, 상술한 데이터 뿐만 아니라, 서버(10)는 제1 사용자 단말(20) 및 제2 사용자 단말(30)로 전송하기 위한 데이터를 판단하기 위한 다양한 데이터를 저장할 수 있음은 물론이다.
이때, 본 발명에 따른 인공지능 모델 학습데이터를 입력하여 학습된 합성곱 신경망(Convolutional deep Neural Networks, CNN) 기반의 인공지능 모델일 수 있다. 다만, 이에 한정되는 것은 아니며, 다양한 인공지능 모델이 본 발명에 적용될 수 있음은 물론이다. 예컨대, DNN(Deep Neural Network), RNN(Recurrent Neural Network), BRDNN(Bidirectional Recurrent Deep Neural Network)과 같은 모델이 인공지능 모델로서 사용될 수 있으나, 이에 한정되지 않는다.
이때, 합성곱 신경망(Convolutional deep Neural Networks, CNN)은 최소한의 전처리(preprocess)를 사용하도록 설계된 다계층 퍼셉트론(multilayer perceptrons)의 한 종류이다. 합성곱 신경망은 하나 또는 여러개의 합성곱 계층(convolutional layer)과 그 위에 올려진 일반적인 인공신경망 계층들로 이루어져 있으며, 가중치와 통합 계층(pooling layer)들을 추가로 활용한다. 이러한 구조 덕분에 합성곱 신경망은 2차원 구조의 입력 데이터를 충분히 활용할 수 있다. 또한, 합성곱 신경망은 표준 역전달을 통해 훈련될 수 있다. 합성곱 신경망은 다른 피드포워드 인공신경망 기법들보다 쉽게 훈련되는 편이고 적은 수의 매개변수를 사용한다는 이점이 있다.
또한, 심층 신경망(Deep Neural Networks, DNN)은 입력 계층(input layer)과 출력 계층(output layer) 사이에 복수개의 은닉 계층(hidden layer)들로 이뤄진 인공신경망(Artificial Neural Network, ANN)이다.
이때, 심층 신경망의 구조는 퍼셉트론(perceptron)으로 구성될 수 있다. 퍼셉트론은 여러 개의 입력 값(input)과 하나의 프로세서(prosessor), 하나의 출력 값으로 구성된다. 프로세서는 여러 개의 입력 값에 각각 가중치를 곱한 후, 가중치가 곱해진 입력 값들을 모두 합한다. 그 다음 프로세서는 합해진 값을 활성화함수에 대입하여 하나의 출력 값을 출력한다. 만약 활성화함수의 출력 값으로 특정한 값이 나오기를 원하는 경우, 각 입력 값에 곱해지는 가중치를 수정하고, 수정된 가중치를 이용하여 출력 값을 다시 계산할 수 있다. 이때, 각각의 퍼셉트론은 서로 다른 활성화함수를 사용할 수 있다. 또한 각각의 퍼셉트론은 이전 계층에서 전달된 출력들을 입력으로 받아들인 다음, 활성화 함수를 이용해서 출력을 구한다. 구해진 출력은 다음 계층의 입력으로 전달된다. 상술한 바와 같은 과정을 거치면 최종적으로 몇 개의 출력 값을 얻을 수 있다.
또한, 딥 러닝 기법에 대한 설명으로 다시 돌아가면, 순환 신경망(Reccurent Neural Network, RNN)은 인공신경망을 구성하는 유닛 사이의 연결이 Directed cycle을 구성하는 신경망을 말한다. 순환 신경망은 앞먹임 신경망과 달리, 임의의 입력을 처리하기 위해 신경망 내부의 메모리를 활용할 수 있다.
심층 신뢰 신경망(Deep Belief Networks, DBN)이란 기계학습에서 사용되는 그래프 생성 모형(generative graphical model)으로, 딥 러닝에서는 잠재변수(latent variable)의 다중계층으로 이루어진 심층 신경망을 의미한다. 계층 간에는 연결이 있지만 계층 내의 유닛 간에는 연결이 없다는 특징이 있다.
심층 신뢰 신경망은 생성 모형이라는 특성상 선행학습에 사용될 수 있고, 선행학습을 통해 초기 가중치를 학습한 후 역전파 혹은 다른 판별 알고리즘을 통해 가중치의 미조정을 할 수 있다. 이러한 특성은 훈련용 데이터가 적을 때 굉장히 유용한데, 이는 훈련용 데이터가 적을수록 가중치의 초기값이 결과적인 모델에 끼치는 영향이 세지기 때문이다. 선행학습된 가중치 초기값은 임의로 설정된 가중치 초기값에 비해 최적의 가중치에 가깝게 되고 이는 미조정 단계의 성능과 속도향상을 가능케 한다.
상술한 인공지능 및 그 학습방법에 관한 내용은 예시를 위하여 서술된 것이며, 이하에서 설명되는 실시 예들에서 이용되는 인공지능 및 그 학습방법은 제한되지 않는다. 예를 들어, 당 업계의 통상의 기술자가 동일한 과제해결을 위하여 적용할 수 있는 모든 종류의 인공지능 기술 및 그 학습방법이 개시된 실시 예에 따른 시스템을 구현하는 데 활용될 수 있다.
제1 사용자 단말(20)은 서비스를 제공하기 위한 서비스 제공자의 단말일 수 있다. 일 실시예에 따라, 서버(10) 및 제1 사용자 단말(20)은 하나의 장치로 구현될 수 있음은 물론이다.
제2 사용자 단말(30)은 서버(10)로 질의를 하기 위한 사용자의 단말일 수 있다. 제2 사용자 단말(30)은 서버(10)로부터 제공된 챗봇 어플리케이션을 바탕으로 서버(10) 및 제1 사용자 단말(20)과 통신할 수 있으며, 구체적으로는, 서버(10)로부터 제공된 채팅방을 통해 서버(10) 및 제1 사용자 단말(20)과 통신할 수 있다.
일 실시예로, 제1 사용자 단말(20) 및 제2 사용자 단말(30)은 스마트폰(smartphone), 태블릿 PC(tablet personal computer), 이동 전화기(mobile phone), 영상 전화기, 전자책 리더기(e-book reader), 데스크탑 PC (desktop PC), 랩탑 PC(laptop PC), 넷북 컴퓨터(netbook computer), 워크스테이션(workstation), 서버, PDA(personal digital assistant), PMP(portable multimedia player)중 적어도 하나를 포함할 수 있다.
이하에서는 도 2 내지 도 9를 이용하여 본 발명의 다양한 실시예를 설명한다.
도 2는 본 발명의 일 실시예에 따른 챗봇 시스템을 설명하기 위한 흐름도이다.
단계 S110에서, 서버(10)는, 제1 사용자 단말(20) 및 제2 사용자 단말(30)은 참여하는 제1 채팅방을 통해 제2 사용자 단말(30)로부터 질의를 수신할 수 있다.
일 실시예로, 제2 사용자 단말(30)은, 챗봇 어플리케이션을 실행하여 생성된 제1 채팅방에 질의를 입력하고, 서버(10)는 제1 채팅방에 등록된 질의를 수신할 수 있다.
단계 S120에서, 서버(10)는, 질의를 제1 사용자 단말(20)로 전송할 수 있다. 구체적으로, 서버(10)는 제2 사용자 단말(30)에 의해 생성된 질의를 제1 사용자 단말(20)의 챗봇 어플리케이션에 의해 생성된 제1 채팅방으로 전송할 수 있다.
단계 S130에서, 서버(10)는, 질의를 분석하여 제1 예비응답 메시지를 획득할 수 있다.
이때, 예비응답 메시지는, 서버(10)에 의해 분석된 질의를 바탕으로 제2 사용자 단말(30)에게 제공하기 위한 메시지일 수 있다.
일 실시예로, 질의가 "디자인 의뢰 하고 싶어"인 경우, 서버(10)는 도 9에 도시된 바와 같이, "웹, 앱, 아이콘, UI/UX 디자인 중에 어느 것이요?"라는 메시지를 예비응답 메시지로 획득할 수 있다.
단계 S140에서, 서버(10)는, 제1 예비응답 메시지가 기 설정된 조건에 따라, 제1 예비응답 메시지를 제1 사용자 단말(20) 및 제2 사용자 단말(30) 중 적어도 하나의 사용자 단말로 전송할 수 있다.
후술하는 바와 같이, 기 설정된 조건은 제1 사용자 단말(20)이 서버(10)와 접속되어 있는지 여부일 수 있다. 일 실시예로, 제1 사용자 단말(20)이 서버(10)와 접속된 경우, 서버(10)는 예비응답 메시지를 제1 사용자 단말(20)로 전송하고, 그렇지 않은 경우, 서버(10)는 예비응답 메시지를 제2 사용자 단말(30)로 전송할 수 있다.
도 3은 본 발명의 일 실시예에 따른 연관 데이터를 제공하는 방법을 설명하기 위한 흐름도이다.
단계 S210에서, 서버(10)는, 질의를 분석하여 연관 데이터를 획득할 수 있다.
일 실시예로, 연관 데이터는, 제2 사용자 단말(30)의 질의와 관련된 데이터를 의미할 수 있다. 예를 들어, 연관 데이터는 도9의 제1 영역(910)에 도시된 바와 같이, 디자인 시안에 대한 파일을 의미할 수 있다.
단계 S220에서, 서버(10)는, 제1 사용자 단말(20) 및 제2 사용자 단말(30) 중 적어도 하나의 사용자 단말로 연관 데이터를 전송할 수 있다.
후술하는 바와 같이, 서버(10)는 제1 사용자 단말(20)이 서버(10)와 접속되어 있지 않은 경우, 연관 데이터의 보안 등급에 따라, 연관 데이터를 제2 사용자 단말(30)로 전송할지 여부를 판단할 수 있다.
한편, 본 발명의 다양한 실시예에 따라, 예비응답 메시지 및 연관 데이터는 사용자 질의에 대한 챗봇의 응답의 종류를 기준으로 분류될 수 있다.
예를 들어, 사용자 질의에 대한 챗봇의 응답이 추가 질의인 경우, 서버(10)는 추가 질의를 예비응답 데이터로 획득할 수 있다. 또한, 사용자 질의에 대한 챗봇의 응답이 답변 응답인 경우, 서버(10)는 답변 응답을 연관 데이터로 획득할 수 있다.
이 경우, 서버(10)는 연관 데이터가 전송된 후 기 설정된 시간동안 제2 사용자 단말(30)의 추가 문의가 없는 경우, 대화가 종료된 것으로 판단하고, 최초 사용자 질의부터 마지막 연관데이터 전송까지의 사용자 질의, 예비응답 데이터 및 연관 데이터를 하나의 데이터 세트로 저장하여 관리할 수 있다.
도 4는 본 발명의 일 실시예에 따른 연관 데이터의 종류를 획득하는 방법을 설명하기 위한 흐름도이다.
단계 S310에서, 서버(10)는, 질의를 바탕으로 키워드를 추출할 수 있다.
일 실시예로, 서버(10)는 사용자 질의를 형태소 분석하여 키워드를 추출할 수 있다.
또 다른 실시예로, 서버(10)는 사용자 질의를 자연어 이해부에 입력하여 질의에 대한 엔티티(entity) 및 질의의 의도(intent)와 관련된 태스크(task)를 획득하고, 획득된 태스크를 키워드로 판단할 수 있다. 이때, 질의의 의도(intent)와 관련된 태스크(task)란, 사용자 질의에 대한 응답을 위해 필요한 정보일 수 있다. 예컨대, 사용자 질의가 디자인을 문의하는 질의인 경우, 태스크는 디자인 조회일 수 있다. 또는, 사용자 질의가 견적서를 요청하기 위한 질의인 경우, 태스크는 견적서 생성 대상 및 해당 대상에 대한 견적 비용 조회일 수 있다.
단계 S320에서, 서버(10)는, 키워드에 대응되는 제1 연관 데이터를 서버(10)의 내부 DB에서 검색할 수 있다.
단계 S330에서, 서버(10)는, 키워드에 대응되는 제2 연관 데이터를 외부 서버(10)에서 검색할 수 있다.
즉, 서버(10)는 획득된 키워드를 서버(10)에 저장된 내부 DB 뿐만 아니라 외부 서버에서 검색하여 더욱 정확하고 풍부한 결과를 사용자에게 전달할 수 있다. 이때, 외부 서버는 포털 사이트, SNS 사이트, 웹사이트 등 다양한 사이트를 포함할 수 있다.
단계 S340에서, 서버(10)는, 제1 연관 데이터 및 제2 연관 데이터 중 적어도 하나의 데이터를, 제1 사용자 단말(20) 및 제2 사용자 단말(30) 중 적어도 하나의 사용자 단말로 전송할 수 있다.
단계 S350에서, 제2 사용자 단말(30)은, 서버(10)로부터 제1 연관 데이터 및 제2 연관 데이터 중 적어도 하나의 연관 데이터를 수신할 수 있다.
단계 S360에서, 제2 사용자 단말(30)은, 적어도 하나의 연관 데이터를 제1 채팅방의 제1 영역(910)에 표시할 수 있다.
이때, 제1 영역(910)에 표시되는 연관 데이터는, 제2 사용자 단말(30)이 다운로드 가능한 데이터 및 사용자 단말이 접속 가능한 url 정보일 수 있다.
일 실시예로, 도 9에 도시된 바와 같이, 제2 사용자 단말(30)은 "강원오픈마켓_디자인 시안.pdf"를 연관 데이터로 획득한 경우, 해당 연관데이터를 제1 채팅방의 상단 영역인 제1 영역(910)에 표시할 수 있다.
또 다른 실시예로, 연관 데이터가 사용자 단말이 접속 가능한 url 정보인 경우, 제2 사용자 단말(30)은, 서버(10)로부터 url 정보를 수신하여 제1 영역(910)에 표시할 수 있다.
또 다른 실시예로, 연관 데이터가 상술한 바와 같이, 챗봇의 추가 질의 응답이 아닌, 답변 응답에 대한 데이터인 경우, 제2 사용자 단말(30)은, 서버(10)로부터 답변 응답 수신하여 제1 영역(910)에 표시할 수 있다. 예컨대, 도 9의 실시예에서 답변 응답이 "디자인 의뢰는 지원하지 않는 서비스 입니다"와 같이 사용자 질의에 대한 추가 질의(웹, 앱, 아이콘, UI/UX 디자인 중에 어느 것이요?)가 아닌 경우, 챗봇의 응답을 제2 영역(920)이 아닌 제1 영역(910)에 표시할 수 있다.
도 5는 본 발명의 일 실시예에 따른 연관 데이터의 종류에 따라 연관 데이터를 제공하는 방법을 설명하기 위한 흐름도이다.
단계 S410에서, 서버(10)는, 제1 연관 데이터의 보안 등급을 획득할 수 있다.
구체적으로, 서버(10)의 내부 DB에서 획득된 제1 연관 데이터는, 외부 서버에서 획득된 제2 연관 데이터와 달리 보안의 필요성이 존재할 수 있다. 따라서, 서버(10)는 제1 연관 데이터의 보안 등급을 판단하고, 제1 연관 데이터를 제2 사용자 단말(30)로 전송할 지 여부를 판단할 수 있다.
단계 S420에서, 서버(10)는, 제2 사용자 단말(30)의 사용자 등급을 획득할 수 있다.
이때, 보안 등급이란, 1급 보안 등급, 2급 보안 등급과 같이, 절대적인 수치로 표시되는 값을 의미할 수 있으나, 챗봇을 이용하는 사용자에 따라 상이하게 설정되는 상대적인 보안 등급을 의미할 수 있다.
예를 들어, 제1 연관 데이터가, 과거 제2 사용자 단말(30)로부터 수신한 데이터인 경우에는, 서버(10)는 절대적인 수치로 표시되는 보안 등급과는 관계 없이 제1 연관 데이터를 제2 사용자 단말(30)로 전송할 수 있을 것이다.
사용자 등급 또한 보안 등급에 대응되는 개념으로서, 절대적인 수치에 대한 사용자 등급일 수 있으나, 챗봇을 이용하는 사용자에 따라 상이하게 설정되는 상대적인 사용자 등급일 수 있음은 물론이다.
한편, 서버(10)는 제1 연관 데이터로 사용하기 위한 데이터를 별도의 데이터 베이스에 저장하여 관리 할 수 있다. 예를 들어, 서버(10)는 제1 데이터 베이스를 포함할 수 있으며, 제1 데이터 베이스에 저장된 데이터는 제1 연관 데이터 획득을 위해 사용될 수 있다.
이때, 서버(10)는 제1 데이터 베이스에 저장하기 위한 데이터를 획득하는 단계, 획득된 데이터의 출처를 나타내는 인덱스를 부가하는 단계를 포함할 수 있다. 예를 들어, 데이터가 외부 서버로부터 획득된 데이터인 경우, 서버(10)는 해당 데이터에 외부 서버 인덱스를 부가하고, 데이터가 제2 사용자 단말(30)로부터 획득된 데이터인 경우, 서버(10)는 해당 데이터에 제2 사용자 단말 인덱스를 부가하고, 데이터가 제3 사용자 단말로부터 획득된 데이터인 경우, 서버(10)는 해당 데이터에 제3 사용자 단말 인덱스를 부가하고, 데이터가 서버(10)에 대응되는 사용자 단말로부터 획득된 데이터인 경우, 서버(10)는 해당 데이터에 관리자 인덱스를 부가할 수 있다. 상술한 외부 서버 인덱스, 제2 사용자 단말 인덱스, 제3 사용자 단말 인덱스 및 관리자 인덱스는, 서로 구별되는 인덱스일 뿐, 그 명칭에 종속되지 않는다. 예컨대 서버(10)는 외부 서버 인덱스를 0000으로, 제2 사용자 단말 인덱스를 0001로, 제3 사용자 단말 인덱스를 0010으로, 관리자 인덱스를 0011로설정할 수 있다.
단계 S430에서, 제1 연관 데이터의 보안 등급이 제2 사용자 단말(30)의 사용자 등급 보다 높은 경우, 서버(10)는, 제1 연관 데이터를 제1 사용자 단말(20)로 전송할 수 있다.
즉, 서버(10)는 아무런 검증 없이 제1 연관 데이터가 제2 사용자 단말(30)로 전송하는 것이 위험도가 높다고 판단되는 경우, 제1 연관 데이터를 제1 사용자 단말(20)로 전송할 수 있다.
단계 S440에서, 제1 연관 데이터의 보안 등급이 제2 사용자 단말(30)의 사용자 등급 보다 낮은 경우, 서버(10)는, 제1 연관 데이터를 제2 사용자 단말(30)로 전송할 수 있다.
제1 연관 데이터의 보안 등급이 제2 사용자 단말(30)의 사용자 등급 보다 낮은 경우의 의미는, 보안 등급 및 사용자 등급이 절대적인 수치와 관련된 경우, 문언 그대로 해석될 수 있다. 예를 들어, 보안 등급이 2등급이고, 사용자 등급이 1등급인 경우, 서버(10)는 제1 연관 데이터를 제2 사용자 단말(30)로 전송할 수 있다.
다만, 보안 등급 및 사용자 등급이 상대적으로 결정되는 경우, 제1 연관 데이터의 보안 등급이 제2 사용자 단말(30)의 사용자 등급 보다 낮은 경우의 의미는 제2 사용자 단말(30)이 제1 연관 데이터를 수신할 수 있는지에 대한 자격이 있음을 의미할 수 있다. 예를 들어, 제1 연관 데이터가 제2 사용자 단말(30)에 의해 수신한 데이터인 경우, 서버(10)는 제1 연관 데이터의 보안 등급이 제2 사용자 단말(30)의 사용자 등급 보다 낮다고 판단하고, 서버(10)는 제1 연관 데이터를 제2 사용자 단말(30)로 전송할 수 있다. 상술한 예시는 상술한 단계 S430에서 동일하게 적용됨은 물론이다.
단계 S450에서, 제1 사용자 단말(20)로부터, 제1 연관 데이터를 제2 사용자 단말(30)로 전송하기 위한 사용자 명령이 입력되면, 서버(10)는, 제1 연관 데이터를 제2 사용자 단말(30)로 전송할 수 있다.
즉, 상술한 단계 S430에서 제1 사용자 단말(20)이 제1 연관 데이터를 수신하고, 수신한 제1 연관 데이터를 제2 사용자 단말(30)로 전송함으로써, 서버(10)에 의해 동작할 수 없는 동작을 제1 사용자 단말(20)을 통해 수행할 수 있는 효과가 존재한다.
한편, 본 발명의 다양한 실시예에 따라, 제1 연관 데이터가 관리자 인덱스가 부가된 연관 데이터인 경우에만 단계 S430의 동작을 수행할 수 있음은 물론이다. 즉, 제1 연관 데이터의 보안 등급이 제2 사용자 단말(30)의 사용자 등급 보다 높고, 제1 연관 데이터에 관리자 인덱스가 부가된 경우, 서버(10)는, 제1 연관 데이터를 제1 사용자 단말(20)로 전송할 수 있다.
예를 들어, 제1 연관 데이터에 제3 사용자 단말 인덱스가 부가된 경우, 서버(10) 및 제1 사용자 단말(20)이 제1 연관 데이터를 제2 사용자 단말(30)로 전송할 지 여부를 결정하는 것이 바람직하지 않을 수 있다. 따라서, 서버(10)는, 제1 연관 데이터가 관리자 인덱스가 부가된 연관 데이터인 경우에만 단계 S430의 동작을 수행할 수 있다.
도 6은 본 발명의 일 실시예에 따른 제1 사용자 단말의 접속 여부에 따라 제2 사용자 단말에 제공되는 메시지를 설명하기 위한 흐름도이다.
단계 S510에서, 서버(10)는, 제1 사용자 단말(20)이 서버(10)와 접속되어 있는지 여부를 판단할 수 있다.
제1 사용자 단말(20)이 서버(10)와 접속된 경우(S510-Y), 단계 S520에서, 서버(10)는, 제1 예비응답 메시지를 제1 사용자 단말(20)로 전송할 수 있다.
단계 S530에서, 제1 사용자 단말(20)은, 제1 예비응답 메시지를 바탕으로 제1 응답 메시지를 획득하여 서버(10)로 전송할 수 있다.
즉, 서버(10)는 제1 사용자 단말(20)이 서버(20)와 접속된 경우에는, 제2 사용자 단말(30)에 대한 응답을 제1 사용자 단말(20)을 통해 진행할 수 있다. 이는, 채팅 및 고객 응대의 특성 상, 사용자가 직접 대화에 참여하는 것이 바람직한 경우가 있기 때문이다.
단계 S540에서, 서버(10)는, 제1 응답 메시지를 제2 사용자 단말(30)로 전송할 수 있다.
단계 S550에서, 제2 사용자 단말(30)은, 제1 응답 메시지를 제1 채팅방의 제2 영역(920)에 표시할 수 있다.
제1 사용자 단말(20)이 서버(10)와 접속되지 않은 경우(S510-N), 단계 S560에서, 서버(10)는, 제1 예비응답 메시지를 제1 사용자 단말(20) 및 제2 사용자 단말(30)로 전송할 수 있다.
즉, 제1 사용자 단말(20)이 서버(10)와 접속되지 않은 경우(S510-N), 서버(10)는 실시간으로 수신되는 제2 사용자 단말(30)의 질의를 처리하기 위해 제1 사용자 단말(20)의 참여 없이 질의에 대한 응답을 제공할 수 있다.
단계 S570에서, 제1 사용자 단말(20) 및 제2 사용자 단말(30)은, 제1 예비응답 메시지를 제1 채팅방의 제2 영역(920)에 표시할 수 있다.
한편, 본 발명의 다양한 실시예에 따라, 서버(10)는 제1 사용자 단말(20)이 서버(10)로 전송한 응답 메시지를 바탕으로 사용자 질의에 대한 응답을 획득하기 위한 인공지능 모델을 학습시킬 수 있다.
일 실시예로, 서버(10)는, 서버(10)가 제1 사용자 단말(20)로 전송한 질의에 대한 예비응답 메시지와, 제1 사용자 단말(20)로부터 수신한 응답 메시지를 비교하고, 비교 결과 예비응답 메시지와 응답 메시지가 상이한 경우, 제1 사용자 단말(20)이 전송한 응답 메시지를 학습 데이터로 인공지능 모델을 학습시킬 수 있다. 구체적으로, 서버(10)는 사용자 질의 및 제1 사용자 단말(20)이 전송한 응답 메시지를 학습 데이터로 수신하여 인공지능 모델을 학습시킬 수 있으며, 필요에 따라 연관 데이터가 학습 데이터로 추가될 수 있음은 물론이다.
즉, 제1 사용자 단말(20)은 제2 사용자 단말(30)에 대한 응답생성의 목적을 달성함과 함께 서버(10)의 인공지능 모델을 업데이트하기 위한 학습 데이터를 획득함으로써, 서버(10)의 응답 생성을 향상시킬 수 있는 새로운 효과가 존재한다.
도 7은 본 발명의 일 실시예에 따른 제1 사용자 단말의 과거 히스토리를 바탕으로 관련 사용자를 판단하는 방법을 설명하기 위한 흐름도이다.
단계 S610에서, 서버(10)는, 제2 사용자 단말(30)에 대응되는 개인 정보 및 과거 대화 히스토리를 획득할 수 있다.
단계 S620에서, 서버(10)는, 획득된 개인 정보, 과거 대화 히스토리 및 키워드를 바탕으로 제1 연관 데이터를 획득할 수 있다.
일 실시예로, 서버(10)는 제2 사용자 단말(30)의 과거 대화 내용을 바탕으로 제1 연관 데이터를 획득할 수 있다. 예를 들어, 제2 사용자 단말(30)의 질의가 과거 수행한 질의와 유사한 경우, 서버(10)는 과거 질의 내용 및 답변 내용을 바탕으로 제1 연관 데이터를 획득할 수 있다.
단계 S630에서, 제1 연관 데이터가 제3 사용자 단말로부터 수신한 연관 데이터인 경우, 서버(10)는, 제1 사용자 단말(20), 제2 사용자 단말(30) 및 제3 사용자 단말을 포함하는 제2 채팅방으로 초대할 수 있다.
일 실시예로, 서버(10)는 상술한 바와 같이, 제1 연관 데이터에 제3 사용자 단말 인덱스가 부가되어 있는 경우, 해당 데이터를 제3 사용자 단말의 데이터로 판단하고, 제3 사용자 단말을 제2 채팅방으로 초대할 수 있다. 서버(10), 제1 사용자 단말(20) 및 제2 사용자 단말(30)이 포함된 제1 채팅방과 달리, 제2 채팅방은 서버(10), 제1 사용자 단말(20), 제2 사용자 단말(30) 및 제3 사용자 단말이 포함될 수 있다.
단계 S640에서, 서버(10)는, 제2 채팅방을 통해 수집된 제2 사용자 단말(30) 및 제3 사용자 단말의 대화 내용을 획득할 수 있다.
도 8에서 후술하는 바와 같이, 서버(10)는 제2 사용자 단말(30) 및 제3 사용자 단말의 대화 내용을 바탕으로 제2 사용자 단말(30) 및 제3 사용자 단말 중 적어도 하나의 단말에 대화에 대한 응답을 제공할 수 있다.
구체적으로, 서버(10)(및 제1 사용자 단말(20))와 제2 사용자 단말(30)이 참여하는 제1 채팅방과 달리, 제2 채팅방에서 획득되는 대화 내용의 수신자는 복수일 수 있다.
일 실시예로, 서버(10)는 제2 사용자 단말(30) 및 제3 사용자 단말 중 적어도 하나의 단말로부터 수신한 대화의 수신자가 챗봇인 경우, 상술한 도 2 내지 도6의 방법을 통해 응답할 수 있다.
또 다른 실시예로, 제2 사용자 단말(30)로부터 수신한 대화의 수신자가 제3 사용자 단말인 경우 또는 그 반대의 경우, 서버(10)는 챗봇을 통해 대화의 발신자 또는 수신자를 보조하기 위한 응답을 생성할 수 있다.
예를 들어, 서버(10)는 초대된 제3 사용자 단말을 위해 서버(10)와 제2 사용자 단말(30)이 제1 채팅방에서 수행한 대화 내용의 일부를 요약하여 제3 사용자 단말로 제공할 수 있다. 또 다른 예로, 서버(10)는 제2 사용자 단말(30)과 제3 사용자 단말의 대화 내용을 분석하고, 필요한 연관 데이터를 제2 채팅방의 제1 영역에 제공할 수 있다. 즉, 제2 사용자 단말(30)과 제3 사용자 단말의 대화중 인 경우, 서버(10)는 예비응답 데이터 제공 없이 연관 데이터만을 제2 채팅방의 제1 영역에 제공할 수 있다.
도 8은 본 발명의 일 실시예에 따른 복수의 채팅방을 활용하는 방법을 설명하기 위한 흐름도이다.
단계 S710에서, 서버(10)는, 제2 채팅방을 통해, 제2 사용자 단말(30)의 질의 정보를 획득할 수 있다.
본 발명의 다양한 실시예에 따라 서버(10)는, 제2 채팅방을 통해, 제2 사용자 단말(30) 및 제3 사용자 단말 중 적어도 하나의 질의 정보를 획득할 수 있다.
단계 S720에서, 서버(10)는, 질의를 분석하여 제2 예비응답 메시지를 획득할 수 있다.
일 실시예로, 제2 예비응답 메시지는 제2 사용자 단말(30)이 제3 사용자 단말로 제공할 수 있는 메시지일 수 있다.
단계 S730에서, 서버(10)는, 제2 예비응답 메시지의 보안 등급을 획득할 수 있다.
단계 S740에서, 제2 예비응답 메시지의 보안 등급이 기 설정된 등급 초과인 경우, 서버(10)는, 제2 예비응답 메시지를 제1 채팅방에 출력할 수 있다.
단계 S750에서, 제2 예비응답 메시지의 보안 등급이 기 설정된 등급 이하인 경우, 서버(10)는, 제2 예비응답 메시지를 제2 채팅방에 출력할 수 있다.
일 실시예로, 서버(10)는 제2 예비응답 메시지가 제2 사용자 단말(30)의 개인 정보 또는 보안 정보 등을 포함하고 있는 경우, 제2 예비응답 메시지를 제2 채팅방에 출력하는 것이 부적절한 경우가 있다. 따라서, 서버(10)는 제2 예비응답 메시지의 보안 등급이 기 설정된 등급 초과인 경우, 서버(10)는, 제2 예비응답 메시지를 제1 채팅방에 출력하고, 2 예비응답 메시지의 보안 등급이 기 설정된 등급 이하인 경우, 서버(10)는, 제2 예비응답 메시지를 제2 채팅방에 출력할 수 있다.
이때, 보안 등급은, 제2 사용자 단말(30)에 의해 설정될 수 있다. 일 실시예로, 제2 사용자 단말(30)은 보안의 필요성이 있는 키워드를 미리 설정할 수 있으며, 제2 예비응답 메시지에 해당 키워드가 존재하면, 서버(10)는 제2 예비응답 메시지를 제1 채팅방으로 출력할 수 있다.
도 10은 본 발명의 일 실시예에 따른 장치의 구성도이다.
프로세서(102)는 하나 이상의 코어(core, 미도시) 및 그래픽 처리부(미도시) 및/또는 다른 구성 요소와 신호를 송수신하는 연결 통로(예를 들어, 버스(bus) 등)를 포함할 수 있다.
일 실시예에 따른 프로세서(102)는 메모리(104)에 저장된 하나 이상의 인스트럭션을 실행함으로써, 도 2 내지 도 8과 관련하여 설명된 방법을 수행한다.
예를 들어, 프로세서(102)는 메모리에 저장된 하나 이상의 인스트럭션을 실행함으로써 신규 학습용 데이터를 획득하고, 학습된 모델을 이용하여, 상기 획득된 신규 학습용 데이터에 대한 테스트를 수행하고, 상기 테스트 결과, 라벨링된 정보가 소정의 제1 기준값 이상의 정확도로 획득되는 제1 학습용 데이터를 추출하고, 상기 추출된 제1 학습용 데이터를 상기 신규 학습용 데이터로부터 삭제하고, 상기 추출된 학습용 데이터가 삭제된 상기 신규 학습용 데이터를 이용하여 상기 학습된 모델을 다시 학습시킬 수 있다.
한편, 프로세서(102)는 프로세서(102) 내부에서 처리되는 신호(또는, 데이터)를 일시적 및/또는 영구적으로 저장하는 램(RAM: Random Access Memory, 미도시) 및 롬(ROM: Read-Only Memory, 미도시)을 더 포함할 수 있다. 또한, 프로세서(102)는 그래픽 처리부, 램 및 롬 중 적어도 하나를 포함하는 시스템온칩(SoC: system on chip) 형태로 구현될 수 있다.
메모리(104)에는 프로세서(102)의 처리 및 제어를 위한 프로그램들(하나 이상의 인스트럭션들)을 저장할 수 있다. 메모리(104)에 저장된 프로그램들은 기능에 따라 복수 개의 모듈들로 구분될 수 있다.
본 발명의 실시예와 관련하여 설명된 방법 또는 알고리즘의 단계들은 하드웨어로 직접 구현되거나, 하드웨어에 의해 실행되는 소프트웨어 모듈로 구현되거나, 또는 이들의 결합에 의해 구현될 수 있다. 소프트웨어 모듈은 RAM(Random Access Memory), ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리(Flash Memory), 하드 디스크, 착탈형 디스크, CD-ROM, 또는 본 발명이 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터 판독가능 기록매체에 상주할 수도 있다.
본 발명의 구성 요소들은 하드웨어인 컴퓨터와 결합되어 실행되기 위해 프로그램(또는 애플리케이션)으로 구현되어 매체에 저장될 수 있다. 본 발명의 구성 요소들은 소프트웨어 프로그래밍 또는 소프트웨어 요소들로 실행될 수 있으며, 이와 유사하게, 실시 예는 데이터 구조, 프로세스들, 루틴들 또는 다른 프로그래밍 구성들의 조합으로 구현되는 다양한 알고리즘을 포함하여, C, C++, 자바(Java), 어셈블러(assembler) 등과 같은 프로그래밍 또는 스크립팅 언어로 구현될 수 있다. 기능적인 측면들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다.
이상, 첨부된 도면을 참조로 하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야의 통상의 기술자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며, 제한적이 아닌 것으로 이해해야만 한다.
10 : 서버
20 : 제1 사용자 단말
30 : 제2 사용자 단말

Claims (7)

  1. 챗봇 시스템의 제어 방법에 있어서,
    서버가, 제1 사용자 단말 및 제2 사용자 단말이 참여하는 제1 채팅방을 통해 상기 제2 사용자 단말로부터 질의를 수신하는 단계;
    상기 서버가, 상기 질의를 제1 사용자 단말로 전송하는 단계;
    상기 서버가, 상기 질의를 분석하여 제1 예비응답 메시지 및 연관 데이터를 획득하는 단계;
    상기 서버가, 상기 제1 예비응답 메시지가 기 설정된 조건에 따라, 상기 제1 예비응답 메시지를 상기 제1 사용자 단말 및 상기 제2 사용자 단말 중 적어도 하나의 사용자 단말로 전송하는 단계; 를 포함하고,
    상기 질의를 분석하여 제1 예비응답 메시지 및 연관 데이터를 획득하는 단계는,
    상기 질의를 바탕으로 키워드를 추출하는 단계;
    상기 키워드에 대응되는 제1 연관 데이터를 상기 서버의 내부 DB에서 검색하는 단계;
    상기 키워드에 대응되는 제2 연관 데이터를 외부 서버에서 검색하는 단계; 및
    상기 제1 연관 데이터 및 상기 제2 연관 데이터 중 적어도 하나의 연관 데이터를, 상기 제1 사용자 단말 및 상기 제2 사용자 단말 중 적어도 하나의 사용자 단말로 전송하는 단계; 를 포함하고,
    상기 제어 방법은,
    상기 제2 사용자 단말이 상기 서버로부터 상기 제1 연관 데이터 및 상기 제2 연관 데이터 중 적어도 하나의 연관 데이터를 수신한 경우,
    상기 제2 사용자 단말이, 상기 적어도 하나의 연관 데이터를 상기 제1 채팅방의 제1 영역에 표시하는 단계; 를 포함하고,
    상기 제1 연관 데이터 및 상기 제2 연관 데이터 중 적어도 하나의 연관 데이터를, 상기 제1 사용자 단말 및 상기 제2 사용자 단말 중 적어도 하나의 사용자 단말로 전송하는 단계는,
    상기 제1 연관 데이터의 보안 등급을 획득하는 단계;
    상기 제2 사용자 단말의 사용자 등급을 획득하는 단계;
    상기 제1 연관 데이터의 보안 등급이 상기 제2 사용자 단말의 사용자 등급 보다 높은 경우, 상기 제1 연관 데이터를 상기 제1 사용자 단말로 전송하는 단계; 및
    상기 제1 연관 데이터의 보안 등급이 상기 제2 사용자 단말의 사용자 등급 보다 낮은 경우, 상기 제1 연관 데이터를 상기 제2 사용자 단말로 전송하는 단계;를 포함하고,
    상기 제어 방법은,
    상기 제1 연관 데이터의 보안 등급이 상기 제2 사용자 단말의 사용자 등급 보다 높은 경우, 상기 제1 사용자 단말로부터, 상기 제1 연관 데이터를 상기 제2 사용자 단말로 전송하기 위한 사용자 명령이 입력되면, 상기 서버가, 상기 제1 연관 데이터를 상기 제2 사용자 단말로 전송하는 단계; 를 포함하고,
    상기 제1 영역에 표시되는 연관 데이터는, 상기 제2 사용자 단말이 다운로드 가능한 데이터 및 상기 적어도 하나의 사용자 단말이 접속 가능한 url 정보인 제어 방법.
  2. 삭제
  3. 삭제
  4. 삭제
  5. 제1항에 있어서,
    상기 기 설정된 조건은, 상기 제1 사용자 단말이 상기 서버와 접속되어 있는지에 대한 조건이며,
    상기 제1 예비응답 메시지를 상기 제1 사용자 단말 및 상기 제2 사용자 단말 중 적어도 하나의 사용자 단말로 전송하는 단계는,
    상기 제1 사용자 단말이 상기 서버와 접속된 경우, 상기 서버는, 상기 제1 예비응답 메시지를 상기 제1 사용자 단말로 전송하는 단계;
    상기 제1 사용자 단말이, 상기 제1 예비응답 메시지를 바탕으로 제1 응답 메시지를 획득하여 상기 서버로 전송하는 단계;
    상기 서버가, 상기 제1 응답 메시지를 상기 제2 사용자 단말로 전송하는 단계; 및
    상기 제2 사용자 단말이, 상기 제1 응답 메시지를 상기 제1 채팅방의 제2 영역에 표시하는 단계;를 포함하고,
    상기 제1 사용자 단말이 상기 서버와 접속되지 않은 경우,
    상기 서버가, 상기 제1 예비응답 메시지를 상기 제1 사용자 단말 및 상기 제2 사용자 단말로 전송하는 단계; 및
    상기 제1 사용자 단말 및 상기 제2 사용자 단말이, 상기 제1 예비응답 메시지를 상기 제1 채팅방의 제2 영역에 표시하는 단계;를 포함하는 제어 방법.
  6. 제1항에 있어서,
    상기 질의를 분석하여 제1 예비응답 메시지 및 연관 데이터를 획득하는 단계는,
    상기 제2 사용자 단말에 대응되는 개인 정보 및 과거 대화 히스토리를 획득하는 단계;
    상기 획득된 개인 정보, 과거 대화 히스토리 및 상기 키워드를 바탕으로 상기 제1 연관 데이터를 획득하는 단계;
    상기 제1 연관 데이터가, 제3 사용자 단말로부터 수신한 연관 데이터인 경우, 상기 서버가, 상기 제1 사용자 단말, 상기 제2 사용자 단말 및 상기 제3 사용자 단말을 포함하는 제2 채팅방으로 초대하는 단계; 및
    상기 서버가, 상기 제2 채팅방을 통해 수집된 상기 제2 사용자 단말 및 상기 제3 사용자 단말의 대화 내용을 획득하는 단계;를 포함하는 제어 방법.
  7. 제6항에 있어서,
    상기 제2 사용자 단말 및 상기 제3 사용자 단말의 대화 내용을 획득하는 단계는,
    상기 서버가, 상기 제2 채팅방을 통해, 상기 제2 사용자 단말의 질의 정보를 획득하는 단계;
    상기 서버가, 상기 질의를 분석하여 제2 예비응답 메시지를 획득하는 단계;
    상기 서버가, 상기 제2 예비응답 메시지의 보안 등급을 획득하는 단계; 및
    상기 제2 예비응답 메시지의 보안 등급이 기 설정된 등급 초과인 경우, 상기 서버가, 상기 제2 예비응답 메시지를 상기 제1 채팅방에 출력하는 단계; 및
    상기 제2 예비응답 메시지의 보안 등급이 기 설정된 등급 이하인 경우, 상기 서버가, 상기 제2 예비응답 메시지를 상기 제2 채팅방에 출력하는 단계;를 포함하는 제어 방법.
KR1020190169687A 2019-12-18 2019-12-18 챗봇 시스템의 제어 방법, 장치 및 프로그램 KR102383926B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190169687A KR102383926B1 (ko) 2019-12-18 2019-12-18 챗봇 시스템의 제어 방법, 장치 및 프로그램

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190169687A KR102383926B1 (ko) 2019-12-18 2019-12-18 챗봇 시스템의 제어 방법, 장치 및 프로그램

Publications (2)

Publication Number Publication Date
KR20210078038A KR20210078038A (ko) 2021-06-28
KR102383926B1 true KR102383926B1 (ko) 2022-04-07

Family

ID=76608122

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190169687A KR102383926B1 (ko) 2019-12-18 2019-12-18 챗봇 시스템의 제어 방법, 장치 및 프로그램

Country Status (1)

Country Link
KR (1) KR102383926B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101998833B1 (ko) * 2018-12-10 2019-07-10 강원오픈마켓 주식회사 멘토링 시스템

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101756261B1 (ko) 2016-04-06 2017-07-10 주식회사 에버건설 실버타운 회원을 위한 스마트 멘토링 중개 서비스 방법
KR102104503B1 (ko) * 2019-10-24 2020-04-24 주식회사 카카오 중계 챗봇을 이용하여 인스턴트 메시징 서비스를 제공하는 서버, 단말 및 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101998833B1 (ko) * 2018-12-10 2019-07-10 강원오픈마켓 주식회사 멘토링 시스템

Also Published As

Publication number Publication date
KR20210078038A (ko) 2021-06-28

Similar Documents

Publication Publication Date Title
KR101925440B1 (ko) 가상현실 기반 대화형 인공지능을 이용한 화상 대화 서비스 제공 방법
US11397888B2 (en) Virtual agent with a dialogue management system and method of training a dialogue management system
CN110046221B (zh) 一种机器对话方法、装置、计算机设备及存储介质
WO2020147428A1 (zh) 交互内容生成方法、装置、计算机设备及存储介质
CN110083693B (zh) 机器人对话回复方法及装置
RU2708941C1 (ru) Способ и устройство распознавания сегментированных предложений для человеко-машинной интеллектуальной вопросно-ответной системы
CN112328849B (zh) 用户画像的构建方法、基于用户画像的对话方法及装置
WO2017206661A1 (zh) 语音识别的方法及系统
US11776269B2 (en) Action classification in video clips using attention-based neural networks
KR20180108400A (ko) 전자 장치, 그의 제어 방법 및 비일시적 컴퓨터 판독가능 기록매체
US10902209B2 (en) Method for content search and electronic device therefor
CN111783903B (zh) 文本处理方法、文本模型的处理方法及装置、计算机设备
CN114036398B (zh) 内容推荐和排序模型训练方法、装置、设备以及存储介质
CN116049360A (zh) 基于客户画像的智能语音对话场景话术干预方法及系统
KR102120751B1 (ko) 대화 이해 ai 시스템에 의하여, 머신러닝을 대화 관리 기술에 적용한 하이브리드 계층적 대화 흐름 모델을 기초로 답변을 제공하는 방법 및 컴퓨터 판독가능 기록 매체
US11501086B2 (en) Systems and methods for zero-shot, fast-generation and implementation of an intelligent virtual dialogue agent using one or more pre-trained machine learning-based language models and a response corpus
CN113590798A (zh) 对话意图识别、用于识别对话意图的模型的训练方法
GB2600817A (en) Systems and methods for generating dynamic interface options using machine learning models
CN113420136A (zh) 一种对话方法、系统、电子设备、存储介质和程序产品
CN117271745A (zh) 一种信息处理方法、装置及计算设备、存储介质
CN117312982A (zh) 一种基于大模型进行人机对话过程中真人检测的方法
KR102506429B1 (ko) 상담 업무 분석 및 전달 시스템의 제어 방법
KR102383926B1 (ko) 챗봇 시스템의 제어 방법, 장치 및 프로그램
CN109002498B (zh) 人机对话方法、装置、设备及存储介质
CN113392640B (zh) 一种标题确定方法、装置、设备及存储介质

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant