KR102016678B1 - 챗봇과 사용자 단말 간의 컨텍스트 정보를 저장하는 서버 및 방법 - Google Patents

챗봇과 사용자 단말 간의 컨텍스트 정보를 저장하는 서버 및 방법 Download PDF

Info

Publication number
KR102016678B1
KR102016678B1 KR1020170183866A KR20170183866A KR102016678B1 KR 102016678 B1 KR102016678 B1 KR 102016678B1 KR 1020170183866 A KR1020170183866 A KR 1020170183866A KR 20170183866 A KR20170183866 A KR 20170183866A KR 102016678 B1 KR102016678 B1 KR 102016678B1
Authority
KR
South Korea
Prior art keywords
context information
chatbot
user terminal
server
information
Prior art date
Application number
KR1020170183866A
Other languages
English (en)
Other versions
KR20190081374A (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 KR1020170183866A priority Critical patent/KR102016678B1/ko
Priority to US16/233,312 priority patent/US10972410B2/en
Publication of KR20190081374A publication Critical patent/KR20190081374A/ko
Application granted granted Critical
Publication of KR102016678B1 publication Critical patent/KR102016678B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/50Business processes related to the communications industry
    • G06Q50/30
    • 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
    • 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/31Indexing; Data structures therefor; Storage structures
    • G06F16/316Indexing structures
    • 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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/01Social networking
    • 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/21Monitoring or handling of messages
    • H04L51/216Handling conversation history, e.g. grouping of messages in sessions or threads

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Business, Economics & Management (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Signal Processing (AREA)
  • Tourism & Hospitality (AREA)
  • Computational Linguistics (AREA)
  • Human Computer Interaction (AREA)
  • Artificial Intelligence (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Strategic Management (AREA)
  • Health & Medical Sciences (AREA)
  • Economics (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • General Business, Economics & Management (AREA)
  • Computing Systems (AREA)
  • Information Transfer Between Computers (AREA)
  • Operations Research (AREA)

Abstract

본 발명의 일 실시예에 따르는 챗봇과 사용자 단말 간의 컨텍스트 정보를 저장하는 챗봇 서버는 복수의 서비스 중 사용자 단말이 선택한 서비스에 대해 입력받은 질의 메시지 및 선택한 서비스에 대응하는 서비스 계정 정보를 메신저 서버부터 수신하는 수신부, 서비스 계정 정보에 대응하는 챗봇을 이용하여 질의 메시지에 대한 응답을 도출하는 도출부 및 질의 메시지 또는 응답에 기초하여 사용자 단말과 챗봇 간의 대화에 대한 컨텍스트 정보를 생성하여 관리하는 컨텍스트 정보 관리부를 포함한다.

Description

챗봇과 사용자 단말 간의 컨텍스트 정보를 저장하는 서버 및 방법 {SERVER AND METHOD FOR STORING CONTEXT INFORMATION BETWEEN CHATBOT AND USER DEVICE}
본 발명은 챗봇과 사용자 단말 간의 컨텍스트 정보를 저장하는 서버 및 방법에 관한 것으로서, 보다 상세하게는 복수의 자료 구조 형태에서 선택된 자료 구조 형태에 기초하여 챗봇과 사용자 단말 간의 컨텍스트 정보를 저장하는 서버 및 방법에 관한 것이다.
챗봇(Chatbot)이란 채팅로봇, 즉 인공지능을 기반으로 사람과의 문자 대화를 통해 질문에 알맞은 답이나 각종 연관 정보를 제공하는 인공지능 커뮤니케이션 프로그램을 말한다. 이러한, 챗봇은 메신저 어플리케이션을 통해 상호작용하는 서비스로 기설정된 규칙 또는 인공지능 기술을 통해 제공된다.
종래의 챗봇을 이용한 컨텍스트 정보 관리 방법은 컨텍스트 정보를 갱신하기 위해서 기존의 전체 컨텍스트 정보를 DB로부터 모두 불러와 해당 전체 컨텍스트 정보에 새로운 컨텐스트 정보를 추가하거나 기존의 컨텍스트 정보를 삭제한 후, 업데이트된 전체 컨텍스트 정보를 DB에 저장된 기존의 전체 컨텍스트 정보에 덮어 씌우는 형태로 관리해왔다.
이러한 종래의 컨텍스트 정보 관리 방법은 컨텍스트 정보를 저장하는 프로세서가 복잡하므로 봇빌더 운영자 입장에서는 종래의 방법을 이용할 경우, 컨텍스트 정보를 관리하는데 불편이 발생한다.
한국등록특허공보 제10-1605430호 (2015.08.24. 공개)
본 발명은 전술한 종래 기술의 문제점을 해결하기 위한 것으로서, 복수의 자료 구조 형태 중 적어도 하나의 자료 구조 형태를 이용하여 사용자 단말과 챗봇 간의 대화에 대한 컨텍스트 정보를 관리하는 서버 및 방법을 제공하고자 한다.
또한, 본 발명은 복수의 자료 구조 형태 각각에 복수의 키값을 매핑시키고, 컨텍스트 정보에 대응하는 키값이 매핑된 자료 구조 형태에 따라 사용자 단말과 챗봇 간의 대화에 대한 컨텍스트 정보를 관리하는 서버 및 방법을 제공하고자 한다.
또한, 본 발명은 복수의 자료 구조 형태 각각에 기설정된 상세 기능 중 컨텍스트 정보에 대응하는 키값과 관련된 상세 기능에 따라 사용자 단말과 챗봇 간의 대화에 대한 컨텍스트 정보를 관리하는 서버 및 방법을 제공하고자 한다.
또한, 본 발명은 관리 중인 컨텍스트 정보에 대해 일부분의 갱신, 일부분의 삭제, 새로운 정보의 추가가 용이한 복수의 자료 구조 형태를 이용하여 사용자 단말과 챗봇 간의 대화에 대한 컨텍스트 정보를 관리하는 서버 및 방법을 제공하고자 한다.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본 발명의 일 실시예에 따르는 챗봇과 사용자 단말 간의 컨텍스트 정보를 저장하는 챗봇 서버는 복수의 서비스 중 사용자 단말이 선택한 서비스에 대해 입력받은 질의 메시지 및 상기 선택한 서비스에 대응하는 서비스 계정 정보를 메신저 서버부터 수신하는 수신부; 상기 서비스 계정 정보에 대응하는 챗봇을 이용하여 상기 질의 메시지에 대한 응답을 도출하는 도출부; 및 상기 질의 메시지 또는 상기 응답에 기초하여 상기 사용자 단말과 상기 챗봇 간의 대화에 대한 컨텍스트 정보를 생성하여 관리하는 컨텍스트 정보 관리부를 포함한다.
본 발명의 다른 실시예에 따르는 챗봇과 사용자 단말 간의 컨텍스트 정보를 관리하는 방법은 복수의 서비스 중 사용자 단말이 선택한 서비스에 대해 입력받은 질의 메시지 및 상기 선택한 서비스에 대응하는 서비스 계정 정보를 메신저 서버부터 수신하는 단계; 상기 서비스 계정 정보에 대응하는 챗봇을 이용하여 상기 질의 메시지에 대한 응답을 도출하는 단계; 및 상기 질의 메시지 또는 상기 응답에 기초하여 상기 사용자 단말과 상기 챗봇 간의 대화에 대한 컨텍스트 정보를 생성하여 관리하는 단계를 포함한다.
본 발명은 전술한 종래 기술의 문제점을 해결하기 위한 것으로서, 복수의 자료 구조 형태 중 적어도 하나의 자료 구조 형태를 이용하여 사용자 단말과 챗봇 간의 대화에 대한 컨텍스트 정보를 관리하는 서버 및 방법을 제공할 수 있다.
또한, 본 발명은 복수의 자료 구조 형태 각각에 복수의 키값을 매핑시키고, 컨텍스트 정보에 대응하는 키값이 매핑된 자료 구조 형태에 따라 사용자 단말과 챗봇 간의 대화에 대한 컨텍스트 정보를 관리 하는 서버 및 방법을 제공할 수 있다. 구체적으로, 본 발명은 복수의 자료 구조 형태에 기매핑된 키값을 통해서 사용자 단말과 챗봇 간의 대화에 대한 컨텍스트 정보를 접근/관리함으로써, 관리 중인 모든 데이터를 로드하여 처리한 후 원하는 값을 찾아내는 방식을 활용하지 않더라도 원하는 값을 쉽게 로드할 수 있다는 점에서, 봇빌더 관리자에 의해 정의되어 구조화된 데이터에 대한 접근이 더욱 용이해질 수 있도록 하는 서버 및 방법을 제공할 수 있다.
또한, 본 발명은 복수의 자료 구조 형태 각각에 기설정된 상세 기능 중 컨텍스트 정보에 대응하는 키값과 관련된 상세 기능에 따라 사용자 단말과 챗봇 간의 대화에 대한 컨텍스트 정보를 관리하는 서버 및 방법을 제공할 수 있다. 구체적으로, 본 발명은 각 자료 구조 형태에 설정된 상세 기능(예를 들어 추가, 삭제, 앞단 추가, 뒷단 추가 등)에 대응하는 동작에 따라 컨텍스트 정보의 추가/갱신/삭제 작업 등을 순서를 보장하며 처리함으로써, 봇빌더 관리자가 기설정된 복수의 자료 구조 형태의 상세 기능을 이용해서 누적시키고자 하는 데이터를 손쉽게 추가/갱신/삭제 작업 등을 할 수 있도록 하는 서버 및 방법을 제공할 수 있다.
도 1은 본 발명의 일 실시예에 따른 컨텍스트 정보 저장 시스템을 개괄적으로 나타낸 도면이다.
도 2는 본 발명의 일 실시예에 따른 챗봇 서버의 구성도이다.
도 3a내지 3c는 본 발명의 일 실시예에 따른 챗봇과 사용자 단말 간의 컨텍스트 정보를 저장하는 방법을 설명하기 위한 도면이다.
도 4는 본 발명의 일 실시예에 따른 챗봇 서버를 통해 챗봇과 사용자 단말 간의 컨텍스트 정보를 저장하는 방법의 흐름도이다.
아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
본 명세서에 있어서 '부(部)'란, 하드웨어에 의해 실현되는 유닛(unit), 소프트웨어에 의해 실현되는 유닛, 양방을 이용하여 실현되는 유닛을 포함한다. 또한, 1 개의 유닛이 2 개 이상의 하드웨어를 이용하여 실현되어도 되고, 2 개 이상의 유닛이 1 개의 하드웨어에 의해 실현되어도 된다. 한편, '~부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니며, '~부'는 어드레싱 할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '~부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함한다. 구성요소들과 '~부'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '~부'들로 결합되거나 추가적인 구성요소들과 '~부'들로 더 분리될 수 있다. 뿐만 아니라, 구성요소들 및 '~부'들은 디바이스 또는 보안 멀티미디어카드 내의 하나 또는 그 이상의 CPU들을 재생시키도록 구현될 수도 있다.
이하에서 언급되는 "사용자 단말"은 네트워크를 통해 서버나 타 단말에 접속할 수 있는 컴퓨터나 휴대용 단말기로 구현될 수 있다.
도 1은 본 발명의 일 실시예에 따른 컨텍스트 정보 저장 시스템을 개괄적으로 나타낸 도면이다.
도 1을 참조하면, 컨텍스트 정보 저장 시스템은 사용자 단말(100), 메신저 서버(110), 챗봇 서버(120) 및 관리자 단말(130)을 포함할 수 있다. 이러한 도 1의 컨텍스트 정보 저장 시스템은 본 발명의 일 실시예에 불과하므로 도 1을 통해 본 발명이 한정 해석되는 것은 아니다. 즉, 본 발명의 다양한 실시예들에 따르면 컨텍스트 정보 저장 시스템은 도 1과 다르게 구성될 수도 있다.
사용자 단말(100)에 설치된 메신저 앱을 통해 등록될 수 있는 친구는 실제 친구 및 가상 친구를 포함할 수 있다.
사용자 단말(100)의 사용자는 메신저 앱을 통해 영리적인 목적이 없는 타 사용자(예를 들어, 가족, 지인, 직장 동료 등)를 실제 친구로서 등록할 수 있다.
사용자 단말 (100)은 사용자 단말(100)에 설치된 메신저 앱을 통해 사용자 단말 (100)의 사용자와 실제 친구로 등록된 타 사용자와 채팅방을 통해 대화를 주고 받음으로써 사용자에게 인스턴스 메시징 서비스를 제공할 수 있다.
사용자 단말(100)의 사용자는 메신저 앱을 통해 특정 서비스에 대응하는 공식 계정을 가상 친구로서 등록할 수 있다. 공식 계정이란 특정 기업체 및 단체에서 특정 서비스를 제공하기 위하여 운영하는 계정을 의미할 수 있다. 예를 들어, 공식 계정과 사용자 단말(100)의 사용자 사이에 개설된 채팅방을 통해 사용자 단말(100)로 특정 서비스에 대한 정보를 제공할 수 있다. 사용자 단말(100)의 사용자는 해당 공식 계정을 가상 친구로 등록하여 공식 계정으로부터 특정 서비스에 대한 정보를 제공받을 수 있다. 한편, 해당 공식 계정을 가상 친구로 등록하지 않더라도 특정 서비스에 대한 정보를 제공받을 수도 있다.
공식 계정은 특정 기업체 및 단체에서 제공하는 특정 서비스에 대한 정보를 사용자 단말(100)로 제공하기 위하여 챗봇을 이용할 수 있다. 공식 계정의 관리자는 챗봇 서버(120)에서 제공되는 봇빌더에 관한 사용자 인터페이스를 통해 챗봇을 생성하고, 생성된 챗봇을 공식 계정과 연결하여 연동하게 함으로써 특정 서비스에 대한 정보(예를 들어, 특정 서비스에 관련된 질의 메시지에 대한 응답)를 제공하도록 할 수 있다. 또한, 공식 계정의 관리자는 봇빌더에 관한 사용자 인터페이스를 통해 공식 계정과 챗봇을 일대일 매칭하여 관리할 수 있으며, 복수의 챗봇을 공식 계정과 연결하여 연동하게 하도록 확장할 수도 있다. 본원 발명은 사용자 단말(100)과 가상 친구로서 등록된 공식 계정 간의 대화에 대한 컨텍스트 정보를 생성하여 관리할 수 있다.
또한, 사용자 단말(100)의 사용자는 메신저 앱을 통해 특정 서비스에 대응하는 챗봇을 가상 친구로서 등록할 수 있고, 사용자 단말(100)은 챗봇을 통해 질의 메시지에 대한 응답을 제공받을 수 있다. 본원 발명은 사용자 단말(100)과 가상 친구로서 등록된 챗봇 간의 대화에 대한 컨텍스트 정보를 생성하여 관리할 수 있다.
따라서, 사용자 단말(100)은 공식 계정을 가상 친구로서 등록하고 해당 공식 계정과 챗봇이 매핑된 경우, 해당 공식 계정과 연동하는 챗봇을 통해 질의 메시지에 대한 응답을 제공받을 수 있으며 챗봇 자체를 가상 친구로서 등록할 경우, 해당 챗봇을 통해 질의 메시지에 대한 응답을 제공받을 수 있다.
사용자 단말(100)은 메신저 앱에 가상 친구로 등록된 예를 들어, 챗봇 또는 공식 계정과 채팅방을 통해 대화를 주고 받음으로써 사용자에게 인스턴스 메시징 서비스를 제공할 수 있다. 또한, 사용자 단말(100)은 사용자 단말(100)과 실제 친구 사이에 개설된 채팅방에 가상 친구로서 등록된 챗봇을 초대할 수 있다. 이 경우 컨텍스트 정보는 사용자 단말(100), 실제 친구 및 초대된 챗봇 사이에서 주고받은 대화와 관련하여 생성될 수 있다.
사용자 단말(100)은 사용자 단말(100)에 설치된 메신저 앱을 통해 제공되는 복수의 서비스 중 하나의 서비스를 사용자로부터 선택받을 수 있다. 예를 들어, 복수의 서비스는 공식 계정이 제공하는 서비스 및 챗봇이 제공하는 서비스를 포함할 수 있다. 사용자는 가상 친구인 공식 계정 또는 챗봇을 선택함으로 공식 계정이 제공하는 서비스 또는 챗봇이 제공하는 서비스를 채팅방을 통해 제공 받을 수 있다.
사용자 단말(100)은 사용자 단말(100)에 설치된 메신저 앱을 통해 제공되는 복수의 서비스 중 하나의 서비스를 사용자로부터 선택받으면, 선택된 서비스에 대응하는 서비스 계정 정보를 메신저 서버(110)에게 전송할 수 있다. 예를 들어, 서비스 계정 정보는 선택된 서비스에 대응하는 챗봇 아이디 또는 선택된 서비스에 대응하는 공식 계정의 서비스 계정 정보를 포함할 수 있다.
또한, 사용자 단말(100)은 사용자에 의해 선택된 서비스와 관련된 질의 메시지를 채팅방을 통해 사용자로부터 입력받으면, 해당 질의 메시지를 메신저 서버(110)로 전송할 수 있다. 서비스 계정 정보 및 질의 메시지는 메신저 서버(110)를 통해 챗봇 서버(120)로 전달될 수 있다.
메신저 서버(110)는 사용자 단말(100)의 사용자와 실제 친구로 등록된 타 사용자가 채팅방에서 대화를 주고 받을 수 있게 하는 인스턴스 메시징 서비스를 제공할 수 있다. 또한, 메신저 서버(110)는 사용자 단말(100)은 메신저 앱에 가상 친구로 등록된 챗봇 또는 공식 계정과 대화를 주고 받을 수 있게 하는 인스턴스 메시징 서비스를 제공할 수 있다.
예를 들어, 메신저 서버(110)는 사용자 단말(100)로부터 선택된 서비스에 관한 챗봇 아이디 및 질의 메시지를 수신한 경우, 수신한 챗봇 아이디 및 질의 메시지를 챗봇 서버(120)로 전달할 수 있다. 다른 예를 들어, 메신저 서버(110)는 사용자 단말(100)로부터 선택된 서비스에 관한 서비스 계정 정보 및 질의 메시지를 수신한 경우, 수신한 서비스 계정 정보(또는 수신한 서비스 계정 정보와 매핑된 챗봇 아이디) 및 수신한 질의 메시지를 챗봇 서버(120)로 전달할 수 있다.
메신저 서버(110)는 챗봇 서버(120)로부터 챗봇에 의하여 도출된 질의 메시지에 대한 응답을 수신할 수 있다. 메신저 서버(110)는 수신한 응답을 사용자 단말(100)의 사용자와 챗봇 간에 개설된 채팅방 또는 사용자 단말(100)의 사용자와 공식 계정 간에 개설된 채팅방에 전송할 수 있다.
챗봇 서버(120)는 챗봇을 이용하여 인스턴트 메시징 서비스를 제공하는 서버로서, 메신저 서버(110)로부터 서비스 계정 정보 및 질의 메시지를 수신하고, 서비스 계정 정보에 대응하는 챗봇을 이용하여 질의 메시지에 대한 응답을 도출할 수 있다. 챗봇 서버(120)는 도출된 응답을 메신저 서버(110)로 전송할 수 있다. 메신저 서버(110)로 전송된 응답은 사용자 단말(100)로 전송될 수 있다.
챗봇 서버(120)는 챗봇 제작/관리을 위한 봇빌더 UI(User Interface)를 봇빌더 관리자의 관리자 단말(130)로 제공할 수 있다. 이를 통해 관라자 단말(130) 상에서 봇빌더 UI가 구동될 수 있다. 본원 발명은 관리자 단말(130)이 사용자 단말(100)과 챗봇 간의 대화에 대한 컨텍스트 정보를 관리하기 위하여 봇빌더 UI를 이용하도록 할 수 있다.
챗봇 서버(120)는 채팅방에서의 질의 메시지 또는 응답에 기초하여 사용자 단말(100)과 챗봇 간의 대화에 대한 컨텍스트 정보를 생성하여 관리할 수 있다.
컨텍스트 정보는 사용자 단말(100)과 챗봇 간의 대화를 통해 파악될 수 있는 맥락/흐름에 관한 데이터로서, 적어도 하나의 시퀀스(예를 들어, 사용자 단말로부터 생성된 하나의 질의 메시지 및 이에 대한 챗봇의 응답을 하나의 시퀀스로 볼 수 있다)를 기본 단위로 구성될 수 있다.
본원 발명의 챗봇 서버(120)는 컨텍스트 정보를 효율적으로 관리하기 위하여 복수의 자료 구조 형태를 이용하여 저장 또는 관리할 수 있다. 챗봇 서버(120)는 사용자 단말(100)의 사용자와 챗봇 간의 채팅방이 개설되고, 개설된 채팅방을 통해 사용자 단말(100)과 챗봇 간의 대화가 진행되는 경우, 해당 대화에 대한 컨텍스트 정보를 챗봇 서버(120)에서 제공하는 봇빌더 UI를 통해 봇빌더 관리자의 관리자 단말(130)에 의해 선택받은 자료 구조 형태에 따라 생성하여 관리할 수 있다.
사용자 단말(100)의 사용자와 챗봇 간의 다음 대화가 진행될 경우에 관라 중인 컨텍스트 정보를 이용하여 질의 메시지에 대한 인텐트(intent)를 파악하고, 파악된 인텐트에 따라 질의 메시지에 해당하는 액션을 수행할 수 있다.
챗봇 서버(120)는 복수의 자료 구조 형태 중 적어도 하나의 자료 구조 형태에 기초하여 컨텍스트 정보를 관리할 수 있다. 여기서, 복수의 자료 구조 형태는 예를 들면, 기본 구조(Variable), 세트 구조(Set) 또는 리스트 구조(List) 중 적어도 2이상을 포함할 수 있다.
관리자 단말(130)은 봇빌더 관리자가 사용하는 단말로서, 챗봇 제작 및 관리를 위해 챗봇 서버(120)에 접속하는 단말들이다. 봇빌더 관리자는 챗봇 서버(120)에 사전에 등록된 사용자일 수 있다. 예를 들어, 봇빌더 관리자는 관리자 단말(130)을 통해 챗봇 서버(120)를 접속하여, 챗봇 서버(120)에서 제공하는 봇빌더 UI를 통해 챗봇을 제작 및 관리할 수 있으며, 각 챗봇에 대응하는 컨텍스트 정보를 관리할 수 있다.
본원 발명은 사용자 단말과 챗봇 간의 대화에 대한 컨텍스트 정보를 관리하는 발명에 관한 것으로, 자료 구조 형태를 이용하여 사용자 단말과 챗봇 간의 대화에 기반한 맥락/흐름을 관리하고자 한다.
사용자 단말과 챗봇 간의 대화는 사용자 단말로부터 생성된 질의 메시지와 챗봇에 의해 도출된 질의 메시지에 대한 응답에 기초로 구성되는 시퀀스를 기준으로, 적어도 하나의 시퀀스로 구성될 수 있다. 본원 발명에서는 적어도 하나의 시퀀스로부터 사용자 단말과 챗봇 간의 대화에 대한 문맥/맥락에 해당하는 컨텍스트 정보를 생성할 수 있다.
따라서, 컨텍스트 정보는 사용자 단말의 사용자 및 사용자 단말의 사용자와 직접 대화한 챗봇 사이에서 생성되는 것이고, 사용자 단말의 사용자는 해당 챗봇과 대화 중에 다른 챗봇과의 컨텍스트 정보에 접근하지 못할 수 있다. 다시 말해 사용자 단말과 챗봇 간의 대화에 대한 컨텍스트 정보는 타 챗봇과의 대화에 대해 독립적으로 생성될 수 있다.
이와 같은 도 1의 컨텍스트 정보 저장 시스템에 포함된 각각의 구성요소의 동작에 대해서는 이하의 도면들을 통해 보다 구체적으로 설명하도록 한다.
도 2는 본 발명의 일 실시예에 따른 챗봇 서버(120)의 구성도이다. 도 2를 참조하면, 본 발명의 일 실시예에 따른 챗봇 서버(120)는 수신부(200), 도출부(210) 및 컨텍스트 정보 관리부(220)를 포함할 수 있다. 다만, 본 발명의 일 실시예에 따른 챗봇 서버(120)의 구성은 도 2와 다르게 이루어질 수도 있다.
수신부(200)는 인스턴트(instant) 메시징 서비스를 제공하는 메신저 앱에 등록된 복수의 서비스 중 하나의 서비스를 사용자 단말(100)의 사용자로부터 선택받은 경우, 선택된 서비스에 대응하는 서비스 계정 정보를 메신저 서버(110)로부터 수신할 수 있다. 예를 들어, 복수의 서비스 중 특정 공식 계정이 제공하는 서비스가 사용자 단말(100)의 사용자에 의해 선택된 경우, 수신부(200)는 선택된 서비스에 대응하는 서비스 계정 정보를 메신저 서버(110)로부터 수신할 수 있다. 다른 예를 들어, 복수의 서비스 중 특정 챗봇이 제공하는 서비스를 사용자 단말(100)의 사용자로부터 선택받은 경우, 수신부(200)는 선택된 서비스에 대응하는 챗봇 아이디를 메신저 서버(110)로부터 수신할 수 있다.
수신부(200)는 사용자 단말(100)이 선택한 서비스에 대해 입력받은 질의 메시지를 메신저 서버(110)로부터 수신할 수 있다. 예를 들면, 수신부(200)는 사용자가 음악 서비스를 선택한 경우, 음악 서비스와 관련된 질의 메시지를 메신저 서버(110)로부터 수신할 수 있다.
도출부(210)는 서비스 계정 정보에 대응하는 챗봇을 이용하여 질의 메시지에 대한 응답을 도출할 수 있다. 예를 들어, 도출부(210)는 질의 메시지를 처리할 챗봇의 챗봇 아이디가 메신저 서버(110)로부터 수신되면, 해당 챗봇 아이디를 봇 DB(미도시)로 전달하고, 봇 DB는 기저장된 봇 관련 메타데이터로부터 전달받은 챗봇 아이디에 해당하는 봇 메타데이터를 검출할 수 있다. 이후, 도출부(310)는 봇 DB로부터 챗봇 아이디에 해당하는 챗봇의 봇 메타데이터를 전달받고, 전달받은 챗봇의 봇 메타데이터에 기초하여 질의 메시지에 대한 응답을 도출할 수 있다.
컨텍스트 정보 관리부(220)는 질의 메시지 또는 도출부(210)에서 도출된 응답에 기초하여 사용자 단말(100)과 챗봇 간의 대화에 대한 컨텍스트 정보를 생성하고, 관리할 수 있다.
컨텍스트 정보 관리부(220)는 사용자 단말(100)과 챗봇 간의 대화 마다 컨텍스트 정보의 생성을 위한 영역을 설정하고, 사용자 단말(100)이 입력한 질의 메시지에 대한 인텐트(intent, 예를 들어, 사용자 의도의 기본 단위)를 파악하여 질의 메시지로부터 컨텍스트 정보를 생성하기 위한 키워드를 추출할 수 있다. 컨텍스트 정보는 사용자 단말에 의해 생성된 질의 메시지 및 챗봇에 의해 도출된 응답으로 구성된 시퀀스를 기본 단위로 하여 생성될 수 있다.
컨텍스트 정보는 사용자 단말(100)과 챗봇 간의 대화 흐름 또는 대화 맥락을 결정하는 요소로서 이전 대화에 따라 다음 대화가 어떤 방식으로 진행되는가를 결정하는데 사용될 수 있다. 다시 말해, 이전 대화의 맥락에 기초하여 다음 대화를 진행하기 위해 이전 대화에 대한 컨텍스트 정보가 저장될 수 있다.
컨텍스트 정보는 사용자가 질의 메시지를 입력하고, 챗봇이 해당 질의 메시지에 대한 응답을 수행할 때마다 생성되며, 컨텍스트 정보마다 설정된 소멸 정보에 의해 DB에 저장된 컨텍스트 정보의 생명 주기가 결정될 수 있다. 예를 들면, 사용자 단말(100)의 사용자로부터 제 1 질의 메시지(예컨대, "아이유 노래 틀어줘)가 입력되고, 챗봇에서 제 1 질의 메시지에 대한 응답(예컨대, 아이유의 인기곡 플레이어리스트를 재생합니다)을 하게 되면, 컨텍스트 정보 관리부(220)는 제 1 질의 메시지 및 제 1 질의 메시지에 대한 응답 간의 대화 맥락을 저장하기 위해 제 1 컨텍스트 정보를 생성할 수 있다.
컨텍스트 정보 관리부(220)는 복수의 자료 구조 형태 중 적어도 하나의 자료 구조 형태에 기초하여 컨텍스트 정보를 관리할 수 있다. 도 3a를 참조하면, 복수의 자료 구조 형태는 컨텍스트 정보를 효율적으로 저장 및 관리하는 구조의 형태로서 예를 들면, 기본 구조(301), 세트 구조(303) 또는 리스트 구조(305) 중 적어도 2이상을 포함할 수 있다.
기본 구조(301)의 경우, 기본 구조(301)로 관리되는 컨텍스트 정보들의 일부에 대한 갱신(추가, 삭제)이 불가능하다. 다시 말해, 기본 구조(310)를 통해 컨텍스트 정보를 관리하는 경우, 관리 중인 컨텍스트 정보 전체에 대한 갱신만이 가능하다. 기본 구조(301)로 저장되는 컨텍스트 정보의 경우, 컨텍스트 정보에 대한 소멸 정보를 설정할 수 있다.
세트 구조(303)에서는 추가 기능 및 삭제 기능이 수행될 수 있다. 구체적으로, 세트 구조(303)에는 세트 구조(303)로 관리 중인 컨텍스트 정보에 다른 컨텍스트 정보를 추가하거나 관리 중인 컨텍스트 정보로부터 제거하는 기능이 기설정되어 있다.
리스트 구조(305)에서는 앞단 추가 기능, 뒷단 추가 기능 및 삭제 기능이 수행될 수 있다. 구체적으로, 리스트 구조(305)에는 리스트 구조(305)로 관리 중인 컨텍스트 정보의 앞단에 다른 컨텍스트 정보를 추가하거나 관리 중인 컨텍스트 정보의 뒷단에 추가하거나 관리 중인 컨텍스트 정보로부터 제거하는 기능이 설정되어 있으므로 컨텍스트 정보에 대한 업데이트가 가능하다.
예를 들면, 각 자료 구조 형태에 컨텍스트 정보로서 음원 리스트에 제 1 음원 내지 제 5 음원이 저장되어 있고, 해당 음원 리스트에 제 6 음원을 추가한다고 가정하자. 기본 구조(301)의 경우, 음원 리스트에 포함된 제 1 음원 내지 제 5 음원을 불러와 제 6 음원을 음원 리스트에 추가하고, 이를 기존의 음원 리스트로 다시 저장하기 때문에 음원 리스트를 갱신하는 과정이 상당히 복잡하다.
반면에, 세트 구조(303)의 경우, DB로부터 음원 리스트를 불러올 필요 없이 관리 중인 컨텍스트 정보에 해당하는 음원 리스트에 제 6 음원을 추가하여 음원 리스트를 갱신할 수 있다.
세트 구조(303) 또는 리스트 구조(305)로 관리되는 컨텍스트 정보의 경우, 컨텍스트 정보의 소멸 정보 및 관리 크기 정보를 설정할 수 있다. 여기서, 소멸 주기는 컨텍스트 정보에 따라 상이하게 결정될 수 있다. 컨텍스트 정보의 소멸 정보에는 라이프스팬(Lifespan) 정보 및 티티엘(Time to live, TTL) 정보가 포함된다.
라이프스팬 정보는 생성된 또는 누적된 컨텍스트 정보에 대한 소멸 주기를 의미하며, 컨텍스트 정보가 유지되는 기간 또는 횟수로서 설정될 수 있다. 예를 들면, 사용자 단말(100)과 챗봇 간의 쌍방 대화가 진행될 때마다 라이프스팬 값에서 기설정된 값만큼 차감되며, 슬롯 필링(Slot filling) 상태의 대화가 진행되는 경우, 슬롯 필링 상태가 완료될 때까지 라이프스팬 값에 대한 차감 없이 라이프스팬 값이 유지될 수 있다.
티티엘 정보는 컨텍스트 정보가 최초 생성된 시간으로부터 컨텍스트 정보가 유지되는 최대 시간을 의미한다. 예를 들면, 컨텍스트 정보가 저장되는 시간 단위는 초 단위이며 컨텍스트 정보가 생성된 시간으로부터 봇빌더 관리자에 의해 설정된 티티엘 정보까지 콘텍스트 정보는 유지된다.
예를 들면, 사용자 단말(100)과 챗봇 간의 제 1 대화(제 1 질의메시지, 제 1 응답)에 기초하여 제 1 컨텍스트 정보가 생성되고, 생성된 제 1 컨텍스트 정보에는 제 1 소멸 정보가 설정될 수 있다. 이 때, 제 1 소멸 정보에 포함된 라이프스팬 정보 또는 티티엘 정보에 따라 제 1 컨텍스트 정보가 유지 및 관리되며, 라이프스팬 정보 또는 티티엘 정보가 초과하거나 소진하게 되면 제 1 컨텍스트 정보가 DB에서 삭제된다.
컨텍스트 정보의 관리 크기 정보는 저장할 수 있는 컨텍스트 정보의 최대 개수를 의미한다. 예를 들어, 세트 구조(303)로 관리되는 컨텍스트 정보의 경우, 관리 크기 정보가 최대 50개로 설정된 경우, 50개의 값에 해당하는 컨텍스트 정보가 세트 구조로 관리될 수 있다.
컨텍스트 정보 관리부(220)는 복수의 자료 구조 형태 마다 복수의 키값을 매핑시킬 수 있다. 여기서, 복수의 키값은 예를 들면, 특정 텍스트 또는 특정 상세 기능이 동작하도록 하는 파라미터 네임을 포함할 수 있다. 예를 들면, 컨텍스트 정보 관리부(220)는 삭제해줘, 빼줘 등과 같이 삭제와 관련된 텍스트를 세트 구조(303)에 매핑시키고, 리스트와 같은 파라미터 네임을 리스트 구조(305)에 매핑시킬 수 있다.
컨텍스트 정보 관리부(220)는 세트 구조(303) 또는 리스트 구조(305) 각각에 설정된 상세 기능 마다 복수의 키값을 매핑시킬 수 있다. 예를 들면, 컨텍스트 정보 관리부(220)는 추가해줘, 넣어줘 등과 같이 추가와 관련된 텍스트를 세트 구조(303)의 추가 기능에 매핑시킬 수 있고, 삭제해줘, 빼줘 등과 같이 추가와 관련된 텍스트를 세트 구조(303)의 삭제 기능에 매핑시킬 수 있다.
도 3b내지 3c를 참조하면, 컨텍스트 정보 관리부(220)는 사용자 단말(100)이 입력한 질의 메시지 또는 챗봇을 통해 도출된 응답에 기초하여 생성될 컨텍스트 정보에 대한 명칭(307)을 봇빌더 관리자로부터 입력받기 위한 봇빌더 UI를 봇빌더 관리자의 관리자 단말(130)에게 제공할 수 있다.
봇빌더 관리자는 관리자 단말(130)을 이용하여 챗봇 서버(120)를 접속하고, 챗봇 서버(120)로부터 제공받은 봇빌더 UI를 통해 챗봇을 생성할 수 있으며, 생성된 챗봇과 사용자 단말에 대해 특정 컨텍스트 정보가 생성 및 관리되도록 자료 구조 형태를 설정할 수 있다.
컨텍스트 정보 관리부(220)는 복수의 자료 구조 형태(309) 중 적어도 하나의 자료 구조 형태를 선택하는 인터페이스를 관리자 단말(130)로 제공하고, 복수의 자료 구조 형태(309) 중 관리자 단말(130)을 통해 봇빌더 관리자로부터 선택받은 자료 구조 형태(311)에 기초하여 컨텍스트 정보를 관리할 수 있다. 도 3b 및 도 3c의 실시예를 참조하면, 사용자 인터페이스는 복수의 자료 구조 형태(309)로서 기본 구조, 세트 구조 및 리스트 구조를 관리자 단말(130)을 통해 표시될 수 있고, 봇빌더 관리자는 관리자 단말(130)을 통해 표시된 자료 구조 형태 중에 리스트 구조(311)를 선택할 수 있다.
컨텍스트 정보 관리부(220)는 선택된 자료 구조 형태(311)에서 관리될 컨텍스트 정보에 대한 소멸 정보(313) 및 관리 크기 정보(315) 중 적어도 하나를 설정하는 인터페이스를 관리자 단말(130)로 제공할 수 있다. 봇빌더 관리자에 의해 설정된 컨텍스트 정보에 대한 소멸 정보(313) 및 관리 크기 정보(315)에 기초하여 콘텍스트 정보가 관리된다.
컨텍스트 정보 관리부(220)는 선택된 자료 구조 형태(311)에 기설정된 적어도 하나의 상세 기능(317)를 선택하는 인터페이스를 봇빌더 관리자의 관리자 단말(130)로 제공하고, 봇빌더 관리자에 의해 설정된 상세 기능에 따라 컨텍스트 정보를 관리할 수 있다. 예를 들어, 선택된 자료 구조 형태가 리스트 구조(311)인 경우, 상세 기능(317)으로서 앞단 추가 기능, 뒷단 추가 기능 및 제거 기능 중 어느 하나를 선택할 수 있도록 하는 인터페이스를 관리자 단말(130)로 제공할 수 있다.
다시 도 2로 돌아오면, 컨텍스트 정보 관리부(220)는 질의 메시지 또는 응답에 기초하여 생성된 컨텍스트 정보가 관리자 단말(130)을 통해 봇빌더 관리자로부터 선택받은 자료 구조 형태에 기매핑된 복수의 키값 중 적어도 하나의 키값에 대응하는지 여부를 판단할 수 있다.
컨텍스트 정보 관리부(220)는 컨텍스트 정보가 선택받은 자료 구조 형태에 매핑된 복수의 키 값 중 적어도 하나의 키값에 대응하는 경우, 선택받은 자료 구조 형태에 따라 컨텍스트 정보를 관리할 수 있다. 예를 들면, 제 2 컨텍스트 정보에 포함된 특정 키워드(예컨대, 추가)가 복수의 자료 구조 형태 중 세트 구조에 매핑된 키값에 대응되는 경우, 컨텍스트 정보 관리부(220)는 세트 구조에 기누적된 컨텍스트 정보 다음에 제 2 컨텍스트 정보를 추가할 수 있다. 예를 들면, 제 2 컨텍스트 정보에 포함된 특정 키워드(예컨대, 추가)에 복수의 자료 구조 형태 중 세트 구조에 매핑된 키값에 대응되고, 세트 구조에 누적된 복수의 컨텍스트 정보 중 제 1 컨텍스트 정보의 소멸 정보에 포함된 소멸 시간이 소진되면, 해당 제 1 컨텍스트 정보를 세트 구조에서 삭제하고, 제 1 컨텍스트 정보 대신에 제 2 컨텍스트 정보로 변경할 수 있다.
예를 들면, 제 3 컨텍스트 정보에 포함된 특정 키워드(예컨대, 리스트 추가)가 복수의 자료 구조 형태 중 리스트 구조에 매핑된 키값에 대응되는 경우, 컨텍스트 정보 관리부(220)는 리스트 구조에 기누적된 컨텍스트 정보 다음에 제 3 컨텍스트 정보를 추가할 수 있다.
컨텍스트 정보 관리부(220)는 선택받은 자료 구조 형태에 기설정된 적어도 하나의 상세 기능 중 컨텍스트 정보에 대응하는 키값에 해당하는 상세 기능에 따라 컨텍스트 정보를 관리할 수 있다. 예를 들면, 제 4 컨텍스트 정보에 포함된 특정 키워드(예컨대, 맨 위에 추가)에 해당하는 기능이 리스트 구조에 기설정된 제 1 상세 기능(관리 중인 컨텍스트 정보의 앞단에 추가하는 기능)에 해당하는 경우, 컨텍스트 정보 관리부(220)는 리스트 구조에 기누적된 컨텍스트 정보의 앞단에 제 4 컨텍스트 정보를 추가할 수 있다. 예를 들면, 제 4 컨텍스트 정보에 포함된 특정 키워드(예컨대, 삭제)에 해당하는 기능이 리스트 구조에 기설정된 제 3 상세 기능(관리 중인 컨텍스트 정보로부터 삭제하는 기능)에 해당하는 경우, 컨텍스트 정보 관리부(220)는 리스트 구조에 기누적된 컨텍스트 정보 중 제 4 컨텍스트 정보를 제거할 수 있다.
컨텍스트 정보 관리부(220)는 세트 구조에 따라 컨텍스트 정보를 관리하는 경우, 컨텍스트 정보의 저장 순서에 관계 없이 관리하고, 중복되지 않도록 관리할 수 있다. 다시 말해, 세트 구조는 컨텍스트 정보의 순서와 상관 없이 저장/관리 여부에 대해 판단을 요구하는 경우에 주로 사용될 수 있다.
세트 구조에 기설정된 적어도 하나의 상세 기능은 컨텍스트 정보를 관리 중인 컨텍스트 정보에 추가하는 기능(Add) 및 컨텍스트 정보를 관리 중인 컨텍스트 정보로부터 제거하는 기능(Delete) 중 적어도 하나를 포함할 수 있다. 예를 들어, 세트 구조에서 특정 컨텍스트 정보에 대해 추가하는 기능이 발현되는 경우에는 세트 구조를 통해 관리 중이었던 기존의 컨텍스트 정보에 대해 순서에 관계 없이 특정 컨텍스트가 추가될 수 있다. 다만 기존의 컨텍스트 정보에 특정 컨텍스트 정보와 동일한 정보가 이미 관리 중이었던 경우에는 특정 컨텍스트 정보에 대해 추가하는 기능이 발현되지 않을 수 있다. 다른 예를 들어, 세트 구조에서 특정 컨텍스트 정보에 대해 제거하는 기능이 발현되는 경우에는 세트 구조를 통해 관리 중이었던 기존의 컨텍스트 정보로부터 특정 컨텍스트 정보에 해당하는 정보가 제거될 수 있다.
컨텍스트 정보 관리부(220)는 리스트 구조에 따라 컨텍스트 정보를 관리하는 경우, 컨텍스트 정보의 저장 순서에 따라 관리하고, 중복될 수 있도록 관리할 수 있다. 다시 말해, 리스트 구조는 예를 들어, 음악 플레이 리스트와 같이 컨텍스트 정보의 순서가 주요한 관리 대상일 경우에 주로 사용될 수 있다.
리스트 구조에 기설정된 적어도 하나의 상세 기능은 컨텍스트 정보를 관리 중인 컨텍스트 정보의 앞단에 추가하는 기능(Prepend), 컨텍스트 정보를 관리 중인 컨텍스트 정보의 뒷단에 추가하는 기능(Append) 및 컨텍스트 정보를 관리 중인 컨텍스트 정보로부터 제거하는 기능(Delete) 중 적어도 하나를 포함할 수 있다. 예를 들어, 리스트 구조에서 특정 컨텍스트 정보에 대해 앞단에 추가하는 기능이 발현되는 경우에는 세트 구조를 통해 관리 중이었던 기존의 컨텍스트 정보의 앞단에 특정 컨텍스트가 추가될 수 있다. 이 경우, 기존의 컨텍스트 정보에 특정 컨텍스트 정보와 동일한 정보가 이미 관리 중인 경우라도 특정 컨텍스트 정보에 대해 앞단에 추가하는 기능이 발현될 수 있다. 다른 예를 들어, 리스트 구조에서 특정 컨텍스트 정보에 대해 뒷단에 추가하는 기능이 발현되는 경우에는 세트 구조를 통해 관리 중이었던 기존의 컨텍스트 정보의 뒷단에 특정 컨텍스트가 추가될 수 있다. 이 경우, 기존의 컨텍스트 정보에 특정 컨텍스트 정보와 동일한 정보가 이미 관리 중인 경우라도 특정 컨텍스트 정보에 대해 뒷단에 추가하는 기능이 발현될 수 있다. 또 다른 예를 들어, 리스트 구조에서 특정 컨텍스트 정보에 대해 제거하는 기능이 발현되는 경우에는 리스트 구조를 통해 관리 중이었던 기존의 컨텍스트 정보로부터 특정 컨텍스트 정보에 해당하는 정보가 제거될 수 있다.
컨텍스트 정보 관리부(220)는 컨텍스트 정보가 선택받은 자료 구조 형태에 기매핑된 복수의 키값 중 적어도 하나의 키값에 대응되지 않는 경우, 선택받은 자료 구조 형태에 컨텍스트 정보에 대응하는 추가적인 키값을 생성할지 여부를 판단할 수 있다.
컨텍스트 정보 관리부(220)는 현재 진행 중인 대화 이후에 진행될 대화에서 컨텍스트 정보의 관리를 위해 추가적인 키값을 가지고 접근할 필요가 있는 경우에 해당하는 추가적인 키값의 생성이 필요하다고 판단할 수 있다.
예를 들어, 세트 구조에 "백두산, 한라산"이라는 키값이 매핑되어 있는 경우를 가정하자. 컨텍스트 정보 관리부(220)는 추가 대화에서 "설악산"이라는 키워드가 발생한 경우, 추가 대화에 대한 컨텍스트 정보를 관리에 있어서 "설악산"이라는 키값을 가지고 접근할 필요가 있으면 "설악산"이라는 키워드를 추가적인 키값으로 추가할 수 있다.
다시 말해, 봇빌더 관리자는 챗봇 서버(120)가 제공하는 봇빌더 UI를 이용하여 각 자료 구조 형태에 대해 원하는 컨텍스트 정보 관리 정책을 설계하기 위하여 특정 키값을 매핑시켜 놓을 수 있지만, 상술한 내용과 같이 사후적으로 추가되는 키값에 의해 컨텍스트 정보에 대한 관리를 보완할 수 있다.
따라서, 컨텍스트 정보 관리부(220)는 각 자료 구조 형태에 기매핑된 복수의 키값 외에도 동적으로 추가적인 키값을 생성할 수 있다.
도출부(210)는 선택한 서비스에 대해 입력받은 추가 질의 메시지를 메신저 서버(110)로부터 수신하는 경우, 챗봇을 통해 관리 중인 컨텍스트 정보를 이용하여 추가 질의 메시지에 대한 응답을 도출할 수 있다. 도출된 응답은 메신저 서버(110)를 거쳐 사용자 단말(100)로 전송될 수 있다.
예를 들면, 사용자 단말(100)이 제 1 챗봇로부터 서비스를 제공받는 경우, 도출부(210)는 사용자 단말(100)과 제 1 챗봇 간 복수의 대화에서 생성된 복수의 컨텍스트 정보를 관리하는 제 1 챗봇을 통해 해당 컨텍스트 정보를 이용하여 응답을 도출할 수 있다.
예를 들면, 사용자 단말(100)의 사용자로부터 제 1 질의 메시지(예컨대, "아이유 노래 틀어줘")가 입력되고, 챗봇에서 제 1 질의 메시지에 대한 응답(예컨대, "아이유의 인기곡 플레이어리스트를 재생합니다")을 하게 되면, 컨텍스트 정보 관리부(220)는 제 1 질의 메시지 및 제 1 질의 메시지에 대한 응답 간의 대화 맥락을 저장하기 위해 제 1 컨텍스트 정보(예컨대, "아이유 음원 플레이 리스트 정보")를 생성하고, 이후에 사용자로부터 제 2 질의 메시지(예컨대, "다음곡")가 입력되면, 도출부(210)는 제 1 컨텍스트 정보를 이용하여 제 2 질의 메시지에 해당하는 응답(예컨대, 아이유 음원 플레이 리스트 정보에서 현재 재생 중인 음원에서 다음 순서에 해당하는 음원을 선택)을 도출할 수 있다.
한편, 사용자 단말(100)과 제 1 챗봇 간에 대화가 이루어지고 있는 경우, 도출부(210)는 사용자 단말(100)과 제 1 챗봇 간에 대화와 관련하여 제 1 챗봇 외의 다른 챗봇을 통해 관리 중인 컨텍스트 정보에는 접근이 불가능하고, 이에 따라 다른 챗봇을 통해 관리 중인 컨텍스트 정보를 이용할 수 없다.
전송부(230)는 질의 메시지 또는 추가 질의 메시지와 관련하여 도출된 응답을 메신저 서버(110)에게 전송할 수 있고, 응답은 메신저 서버(110)로부터 사용자 단말(100)로 전송될 수 있다.
도 4는 본 발명의 일 실시예에 따른 챗봇 서버(120)를 통해 챗봇과 사용자 단말 간의 컨텍스트 정보를 저장하는 방법의 흐름도이다. 도 4를 참조하면, 단계 S401에서 챗봇 서버(120)는 복수의 서비스 중 사용자 단말(100)이 선택한 서비스에 대해 입력받은 질의 메시지 및 선택한 서비스에 대응하는 서비스 계정 정보를 메신저 서버(110)부터 수신할 수 있다. 단계 S403에서 챗봇 서버(120)는 서비스 계정 정보에 대응하는 챗봇을 이용하여 질의 메시지에 대한 응답을 도출할 수 있다. 단계 S405에서 챗봇 서버(120)는 질의 메시지 또는 응답에 기초하여 사용자 단말(100)과 챗봇 간의 대화에 대한 컨텍스트 정보를 생성하여 관리할 수 있다. 단계 S407에서 챗봇 서버(120)는 선택한 서비스에 대해 사용자 단말(100)로부터 입력받은 추가 질의 메시지를 메신저 서버(110)로부터 수신할 수 있다. 단계 S409에서 챗봇 서버(120)는 챗봇을 통해 관리 중인 컨텍스트 정보를 이용하여 추가 질의 메시지에 대한 응답을 도출할 수 있다.
본 발명의 일 실시예는 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체를 모두 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다.
본 발명의 방법 및 시스템은 특정 실시예와 관련하여 설명되었지만, 그것들의 구성 요소 또는 동작의 일부 또는 전부는 범용 하드웨어 아키텍쳐를 갖는 컴퓨터 시스템을 사용하여 구현될 수 있다.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
100: 사용자 단말 110: 메신저 서버
120: 챗봇 서버 130: 관리자 단말

Claims (15)

  1. 챗봇과 사용자 단말 간의 컨텍스트 정보를 저장하는 챗봇 서버에 있어서,
    복수의 서비스 중 사용자 단말이 선택한 서비스에 대해 입력받은 질의 메시지 및 상기 선택한 서비스에 대응하는 서비스 계정 정보를 메신저 서버부터 수신하는 수신부;
    상기 서비스 계정 정보에 대응하는 챗봇을 이용하여 상기 질의 메시지에 대한 응답을 도출하는 도출부; 및
    상기 질의 메시지 또는 상기 응답에 기초하여 상기 사용자 단말과 상기 챗봇 간의 대화에 대한 컨텍스트 정보를 생성하여 관리하는 컨텍스트 정보 관리부
    를 포함하되,
    상기 컨텍스트 정보 관리부는 세트 구조 및 리스트 구조를 포함하는 복수의 자료 구조 형태 중 적어도 하나를 선택받고, 상기 선택받은 자료 구조 형태에 기초하여 상기 관리되는 컨텍스트 정보를 추가하거나 삭제하는 기능을 상이하게 적용하는 것인, 챗봇 서버.
  2. 삭제
  3. 제 1 항에 있어서,
    상기 컨텍스트 정보 관리부는 상기 컨텍스트 정보가 상기 선택받은 자료 구조 형태에 기매핑된 복수의 키값 중 적어도 하나의 키값에 대응하는지 여부를 판단하는 것인, 챗봇 서버.
  4. 제 3 항에 있어서,
    상기 컨텍스트 정보 관리부는 상기 컨텍스트 정보가 상기 선택받은 자료 구조 형태에 매핑된 복수의 키값 중 적어도 하나의 키값에 대응하는 경우, 상기 선택받은 자료 구조 형태에 따라 상기 컨텍스트 정보를 관리하는 것인, 챗봇 서버.
  5. 제 4 항에 있어서,
    상기 컨텍스트 정보 관리부는 상기 선택받은 자료 구조 형태에 기설정된 적어도 하나의 상세 기능 중 상기 대응하는 키값에 해당하는 상세 기능에 따라 상기 컨텍스트 정보를 관리하는 것인, 챗봇 서버.
  6. 삭제
  7. 제 5 항에 있어서,
    상기 세트 구조에 기설정된 적어도 하나의 상세 기능은 상기 컨텍스트 정보를 상기 관리 중인 컨텍스트 정보에 추가하는 기능 및 상기 컨텍스트 정보를 상기 관리 중인 컨텍스트 정보로부터 제거하는 기능 중 적어도 하나를 포함하는 것인, 챗봇 서버.
  8. 제 7 항에 있어서,
    상기 컨텍스트 정보 관리부는 상기 세트 구조에 따라 상기 컨텍스트 정보를 관리하는 경우, 상기 컨텍스트 정보의 저장 순서에 관계 없이 관리하고, 중복되지 않도록 관리하는 것인, 챗봇 서버.
  9. 제 5 항에 있어서,
    상기 리스트 구조에 기설정된 적어도 하나의 상세 기능은 상기 컨텍스트 정보를 상기 관리 중인 컨텍스트 정보의 앞단에 추가하는 기능, 상기 컨텍스트 정보를 상기 관리 중인 컨텍스트 정보의 뒷단에 추가하는 기능 및 상기 컨텍스트 정보를 상기 관리 중인 컨텍스트 정보로부터 제거하는 기능 중 적어도 하나를 포함하는 것인, 챗봇 서버.
  10. 제 9 항에 있어서,
    상기 컨텍스트 정보 관리부는 상기 리스트 구조에 따라 상기 컨텍스트 정보를 관리하는 경우, 상기 컨텍스트 정보의 저장 순서에 따라 관리하고, 중복될 수 있도록 관리하는 것인, 챗봇 서버.
  11. 제 1 항에 있어서,
    상기 컨텍스트 정보 관리부는 상기 복수의 자료 구조 형태 마다 상기 컨텍스트 정보에 대한 소멸 정보 및 관리 크기 정보 중 적어도 하나를 설정하는 것인, 챗봇 서버.
  12. 제 1 항에 있어서,
    상기 도출부는 상기 선택한 서비스에 대해 입력받은 추가 질의 메시지를 상기 메신저 서버로부터 수신하는 경우, 상기 챗봇을 통해 상기 관리 중인 컨텍스트 정보를 이용하여 상기 추가 질의 메시지에 대한 응답을 도출하는 것인, 챗봇 서버.
  13. 제 3 항에 있어서,
    상기 컨텍스트 정보 관리부는 상기 컨텍스트 정보가 상기 선택받은 자료 구조 형태에 기매핑된 복수의 키값 중 적어도 하나의 키값에 대응되지 않는 경우, 상기 선택받은 자료 구조 형태에 상기 컨텍스트 정보에 대응하는 추가적인 키값을 생성할지 여부를 판단하는 것인, 챗봇 서버.
  14. 챗봇 서버에 의해 챗봇과 사용자 단말 간의 컨텍스트 정보를 관리하는 방법에 있어서,
    복수의 서비스 중 사용자 단말이 선택한 서비스에 대해 입력받은 질의 메시지 및 상기 선택한 서비스에 대응하는 서비스 계정 정보를 메신저 서버부터 수신하는 단계;
    상기 서비스 계정 정보에 대응하는 챗봇을 이용하여 상기 질의 메시지에 대한 응답을 도출하는 단계; 및
    상기 질의 메시지 또는 상기 응답에 기초하여 상기 사용자 단말과 상기 챗봇 간의 대화에 대한 컨텍스트 정보를 생성하여 관리하는 단계
    를 포함하되,
    세트 구조 및 리스트 구조를 포함하는 복수의 자료 구조 형태 중 적어도 하나를 선택받는 단계; 및
    상기 선택받은 자료 구조 형태에 기초하여 상기 관리되는 컨텍스트 정보를 추가하거나 삭제하는 기능을 상이하게 적용하는 단계를 더 포함하는 것인, 컨텍스트 정보 관리 방법.
  15. 제 14 항에 있어서,
    상기 선택한 서비스에 대해 입력받은 추가 질의 메시지를 상기 메신저 서버로부터 수신하는 단계; 및
    상기 챗봇을 통해 상기 관리 중인 컨텍스트 정보를 이용하여 상기 추가 질의 메시지에 대한 응답을 도출하는 단계
    를 더 포함하는 것인, 컨텍스트 정보 관리 방법.
KR1020170183866A 2017-12-29 2017-12-29 챗봇과 사용자 단말 간의 컨텍스트 정보를 저장하는 서버 및 방법 KR102016678B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020170183866A KR102016678B1 (ko) 2017-12-29 2017-12-29 챗봇과 사용자 단말 간의 컨텍스트 정보를 저장하는 서버 및 방법
US16/233,312 US10972410B2 (en) 2017-12-29 2018-12-27 Managing context information between chatbot and user device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170183866A KR102016678B1 (ko) 2017-12-29 2017-12-29 챗봇과 사용자 단말 간의 컨텍스트 정보를 저장하는 서버 및 방법

Publications (2)

Publication Number Publication Date
KR20190081374A KR20190081374A (ko) 2019-07-09
KR102016678B1 true KR102016678B1 (ko) 2019-08-30

Family

ID=67059109

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170183866A KR102016678B1 (ko) 2017-12-29 2017-12-29 챗봇과 사용자 단말 간의 컨텍스트 정보를 저장하는 서버 및 방법

Country Status (2)

Country Link
US (1) US10972410B2 (ko)
KR (1) KR102016678B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102603806B1 (ko) 2022-10-26 2023-11-17 주식회사 타이렐 인공지능을 이용한 대화 서비스 시스템 및 그 방법

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11070495B2 (en) * 2018-12-28 2021-07-20 Dish Network L.L.C. Systems and methods for a chatbot communication framework
KR102498544B1 (ko) * 2021-07-22 2023-02-13 주식회사 천재교과서 학습 챗봇을 활용한 학습 유도 방법 및 이를 기록한 기록매체
KR20230159919A (ko) * 2022-05-16 2023-11-23 주식회사 마인드웨어웍스 챗봇 서비스 및 컨택센터 서비스 연계 제공 시스템

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100979516B1 (ko) * 2007-09-19 2010-09-01 한국전자통신연구원 네트워크 기반 로봇을 위한 서비스 추천 방법 및 서비스추천 장치

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9836177B2 (en) * 2011-12-30 2017-12-05 Next IT Innovation Labs, LLC Providing variable responses in a virtual-assistant environment
KR20130104569A (ko) * 2012-03-14 2013-09-25 (주)네오위즈게임즈 온라인 게임의 고객 지원 방법 및 장치
KR102029167B1 (ko) * 2012-08-28 2019-10-08 주식회사 그루버스 사용자 상황에 따른 음악감상 서비스 시스템 및 방법
KR20150096294A (ko) 2014-02-14 2015-08-24 주식회사 플런티코리아 질문 및 답변 분류 방법, 그리고 이 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록매체
US10418032B1 (en) * 2015-04-10 2019-09-17 Soundhound, Inc. System and methods for a virtual assistant to manage and use context in a natural language dialog
US20180052824A1 (en) * 2016-08-19 2018-02-22 Microsoft Technology Licensing, Llc Task identification and completion based on natural language query
US20180131643A1 (en) * 2016-11-04 2018-05-10 Microsoft Technology Licensing, Llc Application context aware chatbots
US11580350B2 (en) * 2016-12-21 2023-02-14 Microsoft Technology Licensing, Llc Systems and methods for an emotionally intelligent chat bot
US10740373B2 (en) * 2017-02-08 2020-08-11 International Business Machines Corporation Dialog mechanism responsive to query context
US10902533B2 (en) * 2017-06-12 2021-01-26 Microsoft Technology Licensing, Llc Dynamic event processing
US20190019077A1 (en) * 2017-07-17 2019-01-17 Cisco Technology, Inc. Automatic configuration of cognitive assistant
US11487986B2 (en) * 2017-10-13 2022-11-01 Microsoft Technology Licensing, Llc Providing a response in a session

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100979516B1 (ko) * 2007-09-19 2010-09-01 한국전자통신연구원 네트워크 기반 로봇을 위한 서비스 추천 방법 및 서비스추천 장치

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102603806B1 (ko) 2022-10-26 2023-11-17 주식회사 타이렐 인공지능을 이용한 대화 서비스 시스템 및 그 방법

Also Published As

Publication number Publication date
US10972410B2 (en) 2021-04-06
US20190207878A1 (en) 2019-07-04
KR20190081374A (ko) 2019-07-09

Similar Documents

Publication Publication Date Title
KR102016678B1 (ko) 챗봇과 사용자 단말 간의 컨텍스트 정보를 저장하는 서버 및 방법
US7836073B2 (en) Method and system for transmitting pre-formulated query to database
CN108664650B (zh) 一种区块链网络的事务处理方法、装置、设备及存储介质
CN106998297B (zh) 一种虚拟机迁移方法和装置
JP2017530448A (ja) サービス処理方法、装置、及びサーバ
CN106101982B (zh) 一种应用程序下载方法及系统
US20120317213A1 (en) Transmitting instant messages
CN110263015A (zh) 基于区块链的数据溯源方法、装置、设备及可读存储介质
CN105453058B (zh) 目录服务发现和/或学习
US9830333B1 (en) Deterministic data replication with conflict resolution
CN110191428A (zh) 一种基于智能云平台的数据分配方法
CN104245069A (zh) 管理装置、控制方法和计算机可读记录介质
JP2023521528A (ja) グループベースコミュニケーションシステムにおける動的チャンネル変換
CN108228628A (zh) 一种结构化查询语言数据库中的宽表生成方法及其装置
CN103546380A (zh) 一种基于策略路由的报文转发方法和装置
CN103634444A (zh) 提供号码信息的方法及系统
CN112150030A (zh) 基于多单位多身份的账号管理方法、终端设备及存储介质
CN105224541B (zh) 数据的唯一性控制方法、信息存储方法及装置
US20170154299A1 (en) Task management method, terminal, and non-transitory computer-readable information recording medium
CN108111598B (zh) 云盘数据的下发方法、装置及存储介质
CN106682945A (zh) 免费礼物管理方法和装置
CN111478953A (zh) 服务器集群的自构建方法、装置、系统、设备及存储介质
WO2016058385A1 (zh) 信息存储方法、装置及终端
US10872121B2 (en) Systems and methods for matching users
JP2017152032A (ja) 情報処理装置の制御方法、情報処理装置および制御プログラム並びに端末の制御方法および端末制御プログラム

Legal Events

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