KR20210078038A - Control method, device and program of chatbot system - Google Patents
Control method, device and program of chatbot system Download PDFInfo
- Publication number
- KR20210078038A KR20210078038A KR1020190169687A KR20190169687A KR20210078038A KR 20210078038 A KR20210078038 A KR 20210078038A KR 1020190169687 A KR1020190169687 A KR 1020190169687A KR 20190169687 A KR20190169687 A KR 20190169687A KR 20210078038 A KR20210078038 A KR 20210078038A
- Authority
- KR
- South Korea
- Prior art keywords
- user terminal
- server
- related data
- response message
- transmitting
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/332—Query formulation
- G06F16/3329—Natural language query formulation or dialogue systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
- G06F16/3349—Reuse of stored results of previous queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/9032—Query formulation
- G06F16/90332—Natural language query formulation or dialogue systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/9035—Filtering based on additional data, e.g. user or group profiles
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/02—User-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
Abstract
Description
본 발명은 챗봇 시스템의 제어 방법, 장치 및 프로그램에 관한 것이다. The present invention relates to a method, apparatus and program for controlling a chatbot system.
인공 지능(Artificial Intelligence, AI) 시스템은 인간 수준의 지능을 구현하는 컴퓨터 시스템이며, 기존 규칙 기반 스마트 시스템과 달리 기계가 스스로 학습하고 판단하며 똑똑해지는 시스템이다. 인공 지능 시스템은 사용할수록 인식률이 향상되고 사용자 취향을 보다 정확하게 이해할 수 있게 되어, 기존 규칙 기반 스마트 시스템은 점차 딥러닝 기반 인공 지능 시스템으로 대체되고 있다.An artificial intelligence (AI) system is a computer system that implements human-level intelligence, and unlike the existing rule-based smart system, the machine learns, judges, and becomes smarter by itself. The more the artificial intelligence system is used, the better the recognition rate and the more accurate understanding of user preferences, and the existing rule-based smart systems are gradually being replaced by deep learning-based artificial intelligence systems.
음성인식 분야와 이미지 분석 분야는 인공지능 시스템이 적용된 대표적인 분야이다. 특히 음성인식 분야는, 사용자 대화를 분석하여 사용자의 의도를 파악하기 위한 자연어 처리 기술과, 사용자의 의도를 바탕으로 자연스러운 답변을 생성하기 위한 자연어 처리 기술이 요구된다.Speech recognition and image analysis are representative fields to which artificial intelligence systems are applied. In particular, in the field of speech recognition, a natural language processing technology for analyzing a user's conversation to understand a user's intention and a natural language processing technology for generating a natural answer based on the user's intention are required.
그러나 정확한 음성 인식을 위해서는 기술 발전은 별론으로, 수많은 학습 데이터와 고성능의 GPU가 요구되어, 비용 투입 대비 얻는 효과가 크지 않은 문제점이 존재한다.However, for accurate speech recognition, there is a problem that, apart from technological development, a lot of learning data and high-performance GPU are required, so the effect is not large compared to the cost input.
따라서, 음성 인식 분야의 일 기술 요소가 사용되는 챗봇 시스템에 있어서, 사용자와 대화하기 위한 인공지능 모델을 구축하는 방법에 대한 논의가 필요한 실정이다.Therefore, in a chatbot system using a technology element in the field of voice recognition, it is necessary to discuss a method for constructing an artificial intelligence model for conversation with a user.
본 발명이 해결하고자 하는 과제는 챗봇 시스템의 제어 방법, 장치 및 프로그램을 제공하는 것이다.An object of the present invention is to provide a control method, an apparatus, and a program for a chatbot system.
본 발명이 해결하고자 하는 과제들은 이상에서 언급된 과제로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.The problems to be solved by the present invention are not limited to the problems mentioned above, and other problems not mentioned will be clearly understood by those skilled in the art from the following description.
상술한 과제를 해결하기 위한 본 발명의 일 면에 따른 챗봇 시스템의 제어 방법은, 서버가, 제1 사용자 단말 및 제2 사용자 단말이 참여하는 제1 채팅방을 통해 상기 제2 사용자 단말로부터 질의를 수신하는 단계; 상기 서버가, 상기 질의를 제1 사용자 단말로 전송하는 단계; 상기 서버가, 상기 질의를 분석하여 제1 예비응답 메시지를 획득하는 단계; 상기 서버가, 상기 제1 예비응답 메시지가 기 설정된 조건에 따라, 상기 제1 예비응답 메시지를 상기 제1 사용자 단말 및 상기 제2 사용자 단말 중 적어도 하나의 사용자 단말로 전송하는 단계; 를 포함한다.In a method for controlling a chatbot system according to an aspect of the present invention for solving the above problems, a server receives a query from a second user terminal through a first chat room in which a first user terminal and a second user terminal participate to do; transmitting, by the server, the query to a first user terminal; obtaining, by the server, a first preliminary response message by analyzing the query; transmitting, by the server, the first preliminary response message to at least one of the first user terminal and the second user terminal according to a condition in which the first preliminary response message is preset; includes
이때, 상기 제어 방법은, 상기 서버가, 상기 질의를 분석하여 연관 데이터를 획득하는 단계; 및 상기 서버가, 상기 제1 사용자 단말 및 상기 제2 사용자 단말 중 적어도 하나의 사용자 단말로 상기 연관 데이터를 전송하는 단계;를 포함할 수 있다.In this case, the control method may include: obtaining, by the server, related data by analyzing the query; and transmitting, by the server, the related data to at least one of the first user terminal and the second user terminal.
이때, 상기 연관 데이터를 획득하는 단계는, 상기 질의를 바탕으로 키워드를 추출하는 단계; 상기 키워드에 대응되는 제1 연관 데이터를 상기 서버의 내부 DB에서 검색하는 단계; 상기 키워드에 대응되는 제2 연관 데이터를 외부 서버에서 검색하는 단계; 및 상기 제1 연관 데이터 및 상기 제2 연관 데이터 중 적어도 하나의 데이터를, 상기 제1 사용자 단말 및 상기 제2 사용자 단말 중 적어도 하나의 사용자 단말로 전송하는 단계; 를 포함하고, 상기 제어 방법은, 상기 제2 사용자 단말이, 상기 서버로부터 상기 제1 연관 데이터 및 상기 제2 연관 데이터 중 적어도 하나의 연관 데이터를 수신하는 단계; 및 상기 제2 사용자 단말이, 상기 적어도 하나의 연관 데이터를 상기 제1 채팅방의 제1 영역에 표시하는 단계; 를 포함하고, 상기 제1 영역에 표시되는 연관 데이터는, 상기 제2 사용자 단말이 다운로드 가능한 데이터 및 상기 사용자 단말이 접속 가능한 url 정보일 수 있다.In this case, the acquiring of the related data may include: extracting a keyword based on the query; searching for first related data corresponding to the keyword in an internal DB of the server; searching an external server for second related data corresponding to the keyword; and transmitting at least one of the first related data and the second related data to at least one of the first user terminal and the second user terminal. The method comprising: receiving, by the second user terminal, at least one of the first related data and the second related data from the server; and displaying, by the second user terminal, the at least one related data in a first area of the first chat room; Including, the related data displayed in the first area may be data downloadable to the second user terminal and url information accessible to the user terminal.
이때, 상기 제1 사용자 단말 및 상기 제2 사용자 단말 중 적어도 하나의 사용자 단말로 전송하는 단계는, 상기 제1 연관 데이터의 보안 등급을 획득하는 단계; 상기 제2 사용자 단말의 사용자 등급을 획득하는 단계; 상기 제1 연관 데이터의 보안 등급이 상기 제2 사용자 단말의 사용자 등급 보다 높은 경우, 상기 제1 연관 데이터를 상기 제1 사용자 단말로 전송하는 단계; 및 상기 제1 연관 데이터의 보안 등급이 상기 제2 사용자 단말의 사용자 등급 보다 낮은 경우, 상기 제1 연관 데이터를 상기 제2 사용자 단말로 전송하는 단계;를 포함하고, 상기 제1 연관 데이터를 상기 제1 사용자 단말로 전송하는 단계는, 상기 제1 사용자 단말로부터, 상기 제1 연관 데이터를 상기 제2 사용자 단말로 전송하기 위한 사용자 명령이 입력되면, 상기 서버가, 상기 제1 연관 데이터를 상기 제2 사용자 단말로 전송하는 단계; 를 포함할 수 있다.In this case, the transmitting to at least one of the first user terminal and the second user terminal may include: obtaining a security level of the first related data; obtaining a user rating of the second user terminal; when the security level of the first related data is higher than the user level of the second user terminal, transmitting the first related data to the first user terminal; and when the security level of the first related data is lower than the user level of the second user terminal, transmitting the first related data to the second user terminal. In the step of transmitting to the first user terminal, when a user command for transmitting the first related data to the second user terminal is input from the first user terminal, the server transmits the first related data to the second transmitting to a user terminal; may include.
이때, 상기 기 설정된 조건은, 상기 제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 영역에 표시하는 단계;를 포함할 수 있다.In this case, the preset condition is a condition for whether the first user terminal is connected to the server, and sends the first preliminary response message to at least one of the first user terminal and the second user terminal. The transmitting may include, when the first user terminal is connected to the server, transmitting, by the server, the first preliminary response message to the first user terminal; obtaining, by the first user terminal, a first response message based on the first preliminary response message and transmitting the first response message to the server; transmitting, by the server, the first response message to the second user terminal; and displaying, by the second user terminal, the first response message in a second area of the first chat room, wherein when the first user terminal is not connected to the server, the server transmitting a first preliminary response message to the first user terminal and the second user terminal; and displaying, by the first user terminal and the second user terminal, the first preliminary response message in a second area of the first chat room.
이때, 상기 제1 연관 데이터를 획득하는 단계는, 상기 제2 사용자 단말에 대응되는 개인 정보 및 과거 대화 히스토리를 획득하는 단계; 상기 획득된 개인 정보, 과거 대화 히스토리 및 상기 키워드를 바탕으로 상기 제1 연관 데이터를 획득하는 단계; 상기 제1 연관 데이터가, 제3 사용자 단말로부터 수신한 연관 데이터인 경우, 상기 서버가, 상기 제1 사용자 단말, 상기 제2 사용자 단말 및 상기 제3 사용자 단말을 포함하는 제2 채팅방으로 초대하는 단계; 및 상기 서버가, 상기 제2 채팅방을 통해 수집된 상기 제2 사용자 단말 및 상기 제3 사용자 단말의 대화 내용을 획득하는 단계;를 포함할 수 있다.In this case, the acquiring of the first related data may include: acquiring personal information and past conversation history corresponding to the second user terminal; acquiring the first related data based on the acquired personal information, past conversation history, and the keyword; Inviting, by the server, to a second chat room including the first user terminal, the second user terminal, and the third user terminal when the first related data is the related data received from the third user terminal ; and obtaining, by the server, the conversation contents of the second user terminal and the third user terminal collected through the second chat room.
이때, 상기 제2 사용자 단말 및 상기 제3 사용자 단말의 대화 내용을 획득하는 단계는, 상기 서버가, 상기 제2 채팅방을 통해, 상기 제2 사용자 단말의 질의 정보를 획득하는 단계; 상기 서버가, 상기 질의를 분석하여 제2 예비응답 메시지를 획득하는 단계; 상기 서버가, 상기 제2 예비응답 메시지의 보안 등급을 획득하는 단계; 및 상기 제2 예비응답 메시지의 보안 등급이 기 설정된 등급 초과인 경우, 상기 서버가, 상기 제2 예비응답 메시지를 상기 제1 채팅방에 출력하는 단계; 및 상기 제2 예비응답 메시지의 보안 등급이 기 설정된 등급 이하인 경우, 상기 서버가, 상기 제2 예비응답 메시지를 상기 제2 채팅방에 출력하는 단계;를 포함할 수 있다. In this case, the step of obtaining the conversation contents of the second user terminal and the third user terminal may include: obtaining, by the server, query information of the second user terminal through the second chat room; obtaining, by the server, a second preliminary response message by analyzing the query; obtaining, by the server, a security level of the second preliminary response message; and outputting, by the server, the second preliminary response message to the first chat room when the security level of the second preliminary response message exceeds a preset grade; and outputting, by the server, the second preliminary response message to the second chat room when the security level of the second preliminary response message is less than or equal to a preset grade.
본 발명의 기타 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.Other specific details of the invention are included in the detailed description and drawings.
상술한 본 발명의 다양한 실시예에 따라, 상담자와 인공지능이 결합된 챗봇 시스템이 제공되어 사용자 편의성이 향상되는 효과가 존재한다.According to various embodiments of the present invention described above, a chatbot system in which a counselor and artificial intelligence are combined is provided, thereby improving user convenience.
본 발명의 효과들은 이상에서 언급된 효과로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.Effects of the present invention are not limited to the effects mentioned above, and other effects not mentioned will be clearly understood by those skilled in the art from the following description.
도 1은 본 발명의 일 실시예에 따른 시스템을 도시한 시스템도이다.
도 2는 본 발명의 일 실시예에 따른 챗봇 시스템을 설명하기 위한 흐름도이다.
도 3은 본 발명의 일 실시예에 따른 연관 데이터를 제공하는 방법을 설명하기 위한 흐름도이다.
도 4는 본 발명의 일 실시예에 따른 연관 데이터의 종류를 획득하는 방법을 설명하기 위한 흐름도이다.
도 5는 본 발명의 일 실시예에 따른 연관 데이터의 종류에 따라 연관 데이터를 제공하는 방법을 설명하기 위한 흐름도이다.
도 6은 본 발명의 일 실시예에 따른 제1 사용자 단말의 접속 여부에 따라 제2 사용자 단말에 제공되는 메시지를 설명하기 위한 흐름도이다.
도 7은 본 발명의 일 실시예에 따른 제1 사용자 단말의 과거 히스토리를 바탕으로 관련 사용자를 판단하는 방법을 설명하기 위한 흐름도이다.
도 8은 본 발명의 일 실시예에 따른 복수의 채팅방을 활용하는 방법을 설명하기 위한 흐름도이다.
도 9는 본 발명의 일 실시예에 따른 채팅방을 설명하기 위한 예시도이다.
도 10은 본 발명의 일 실시예에 따른 장치의 구성도이다.1 is a system diagram illustrating a system according to an embodiment of the present invention.
2 is a flowchart illustrating a chatbot system according to an embodiment of the present invention.
3 is a flowchart illustrating a method of providing related data according to an embodiment of the present invention.
4 is a flowchart illustrating a method of acquiring a type of related data according to an embodiment of the present invention.
5 is a flowchart illustrating a method of providing related data according to a type of related data according to an embodiment of the present invention.
6 is a flowchart illustrating a message provided to a second user terminal according to whether the first user terminal is connected according to an embodiment of the present invention.
7 is a flowchart illustrating a method of determining a related user based on a past history of a first user terminal according to an embodiment of the present invention.
8 is a flowchart illustrating a method of utilizing a plurality of chat rooms according to an embodiment of the present invention.
9 is an exemplary diagram for explaining a chat room according to an embodiment of the present invention.
10 is a block diagram of an apparatus according to an embodiment of the present invention.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 발명은 이하에서 개시되는 실시예들에 제한되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술 분야의 통상의 기술자에게 본 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. Advantages and features of the present invention and methods of achieving them will become apparent with reference to the embodiments described below in detail in conjunction with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below, but may be implemented in various different forms, and only these embodiments allow the disclosure of the present invention to be complete, and those of ordinary skill in the art to which the present invention belongs. It is provided to fully understand the scope of the present invention to those skilled in the art, and the present invention is only defined by the scope of the claims.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소 외에 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다. 명세서 전체에 걸쳐 동일한 도면 부호는 동일한 구성 요소를 지칭하며, "및/또는"은 언급된 구성요소들의 각각 및 하나 이상의 모든 조합을 포함한다. 비록 "제1", "제2" 등이 다양한 구성요소들을 서술하기 위해서 사용되나, 이들 구성요소들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 구성요소는 본 발명의 기술적 사상 내에서 제2 구성요소일 수도 있음은 물론이다.The terminology used herein is for the purpose of describing the embodiments and is not intended to limit the present invention. As used herein, the singular also includes the plural unless specifically stated otherwise in the phrase. As used herein, “comprises” and/or “comprising” does not exclude the presence or addition of one or more other components in addition to the stated components. Like reference numerals refer to like elements throughout, and "and/or" includes each and every combination of one or more of the recited elements. Although "first", "second", etc. are used to describe various elements, these elements are not limited by these terms, of course. These terms are only used to distinguish one component from another. Accordingly, it goes without saying that the first component mentioned below may be the second component within the spirit of the present invention.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야의 통상의 기술자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또한, 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.Unless otherwise defined, all terms (including technical and scientific terms) used herein will have the meaning commonly understood by those of ordinary skill in the art to which this invention belongs. In addition, terms defined in a commonly used dictionary are not to be interpreted ideally or excessively unless specifically defined explicitly.
명세서에서 사용되는 "부" 또는 “모듈”이라는 용어는 소프트웨어, FPGA 또는 ASIC과 같은 하드웨어 구성요소를 의미하며, "부" 또는 “모듈”은 어떤 역할들을 수행한다. 그렇지만 "부" 또는 “모듈”은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. "부" 또는 “모듈”은 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 "부" 또는 “모듈”은 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함한다. 구성요소들과 "부" 또는 “모듈”들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 "부" 또는 “모듈”들로 결합되거나 추가적인 구성요소들과 "부" 또는 “모듈”들로 더 분리될 수 있다.As used herein, the term “unit” or “module” refers to a hardware component such as software, FPGA, or ASIC, and “unit” or “module” performs certain roles. However, “part” or “module” is not meant to be limited to software or hardware. A “unit” or “module” may be configured to reside on an addressable storage medium or to reproduce one or more processors. Thus, by way of example, “part” or “module” refers to components such as software components, object-oriented software components, class components and task components, processes, functions, properties, Includes procedures, subroutines, segments of program code, drivers, firmware, microcode, circuitry, data, databases, data structures, tables, arrays and variables. Components and functionality provided within “parts” or “modules” may be combined into a smaller number of components and “parts” or “modules” or as additional components and “parts” or “modules”. can be further separated.
공간적으로 상대적인 용어인 "아래(below)", "아래(beneath)", "하부(lower)", "위(above)", "상부(upper)" 등은 도면에 도시되어 있는 바와 같이 하나의 구성요소와 다른 구성요소들과의 상관관계를 용이하게 기술하기 위해 사용될 수 있다. 공간적으로 상대적인 용어는 도면에 도시되어 있는 방향에 더하여 사용시 또는 동작시 구성요소들의 서로 다른 방향을 포함하는 용어로 이해되어야 한다. 예를 들어, 도면에 도시되어 있는 구성요소를 뒤집을 경우, 다른 구성요소의 "아래(below)"또는 "아래(beneath)"로 기술된 구성요소는 다른 구성요소의 "위(above)"에 놓여질 수 있다. 따라서, 예시적인 용어인 "아래"는 아래와 위의 방향을 모두 포함할 수 있다. 구성요소는 다른 방향으로도 배향될 수 있으며, 이에 따라 공간적으로 상대적인 용어들은 배향에 따라 해석될 수 있다.Spatially relative terms "below", "beneath", "lower", "above", "upper", etc. It can be used to easily describe the correlation between a component and other components. A spatially relative term should be understood as a term that includes different directions of components during use or operation in addition to the directions shown in the drawings. For example, when a component shown in the drawing is turned over, a component described as “beneath” or “beneath” of another component may be placed “above” of the other component. can Accordingly, the exemplary term “below” may include both directions below and above. Components may also be oriented in other orientations, and thus spatially relative terms may be interpreted according to orientation.
본 명세서에서, 컴퓨터는 적어도 하나의 프로세서를 포함하는 모든 종류의 하드웨어 장치를 의미하는 것이고, 실시 예에 따라 해당 하드웨어 장치에서 동작하는 소프트웨어적 구성도 포괄하는 의미로서 이해될 수 있다. 예를 들어, 컴퓨터는 스마트폰, 태블릿 PC, 데스크톱, 노트북 및 각 장치에서 구동되는 사용자 클라이언트 및 애플리케이션을 모두 포함하는 의미로서 이해될 수 있으며, 또한 이에 제한되는 것은 아니다.In this specification, a computer means all types of hardware devices including at least one processor, and may be understood as encompassing software configurations operating in the corresponding hardware device according to embodiments. For example, a computer may be understood to include a smartphone, a tablet PC, a desktop, a notebook computer, and a user client and an application running on each device, but is not limited thereto.
이하, 첨부된 도면을 참조하여 본 발명의 실시예를 상세하게 설명한다. Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.
본 명세서에서 설명되는 각 단계들은 컴퓨터에 의하여 수행되는 것으로 설명되나, 각 단계의 주체는 이에 제한되는 것은 아니며, 실시 예에 따라 각 단계들의 적어도 일부가 서로 다른 장치에서 수행될 수도 있다.Each step described in this specification is described as being performed by a computer, but the subject of each step is not limited thereto, and at least a portion of each step may be performed in different devices according to embodiments.
도 1은 본 발명의 일 실시예에 따른 시스템을 도시한 시스템도이다.1 is a system diagram illustrating a system according to an embodiment of the present invention.
본 발명에 따른 시스템은, 서버(10), 제1 사용자 단말(20) 및 제2 사용자 단말(30)을 포함할 수 있다.The system according to the present invention may include a
서버(10)는 제1 사용자 단말(20) 및 제2 사용자 단말(30)로 챗봇 서비스를 제공하기 위한 구성이다. 일 실시예로, 챗봇 서비스는 어플리케이션의 형태로 제1 사용자 단말(20) 및 제2 사용자 단말(30)로 제공될 수 있다.The
서버(10)는 제1 사용자 단말(20) 및 제2 사용자 단말(30) 중 적어도 하나의 사용자 단말로부터 받은 질의를 분석하여 예비응답 메시지 및 연관 데이터를 획득하기 위하여 인공지능 모델을 이용할 수 있다.The
일 실시예로, 서버는 학습을 위한 질의 메시지, 질의 메시지에 대한 예비응답 메시지 및 질의 메시지에 대한 연관 데이터를 학습 데이터로 획득하여 인공지능 모델을 학습 시킬 수 있다. 구체적으로, 서버(10)는 질의 메시지를 인공지능 모델에 입력하여 예비응답 메시지 및 연관 데이터를 출력하도록 인공지능 모델을 학습시킬 수 있다.In an embodiment, the server may train the artificial intelligence model by acquiring a query message for learning, a preliminary response message to the query message, and data related to the query message as training data. Specifically, the
나아가, 서버(10)는 챗봇을 사용하는 사용자로부터 수신한 질의 메시지 및 이에 대한 예비응답 메시지 및 연관 데이터 메시지를 추가로 획득하여 학습 데이터로 획득할 수 있다. 이 경우, 서버(10)는 범용성 있는 제1 인공지능 모델을 통해 모든 챗봇 사용자에 대한 답변을 생성할 수 있으며, 나아가, 개인화된 제2 인공지능 모델을 통해 특정 사용자에 대한 답변을 생성할 수 있다.Furthermore, the
즉, 서버(10)는, 초기 설정된 임의의 학습 데이터, 각각의 사용자로부터 획득한 학습데이터는 제1 인공지능 모델의 학습 데이터로 활D하되, 특정 사용자로부터 학습된 학습 데이터는 제2 인공지능 모델의 학습 데이터로 활용할 수 있다.That is, the
일 실시예로, 서버(10)는 특정 사용자에 대한 질의를 수신한 경우, 해당 질의를 입력값으로 제1 인공지능 모델 및 제2 인공지능 모델에 독립적으로 입력하여 출력값(즉, 예비응답 메시지 및 연관 데이터)을 획득하고, 제1 인공지능 모델을 통해 출력된 출력값 및 제2 인공지능 모델을 통해 출력된 출력값 중 적어도 하나의 출력값을 최종 출력값으로 획득할 수 있다. 예를 들어, 서버(10)는 제2 인공지능 모델을 통해 출력된 출력값의 정확도가 기 설정된 값 이하인 경우, 제1 인공지능 모델을 통해 출력된 출력값을 최종 출력값으로 획득하고, 제2 인공지능 모델을 통해 출력된 출력값의 정확도가 기 설정된 값 초과인 경우, 제2 인공지능 모델을 통해 출력된 출력값을 최종 출력값으로 획득할 수 있다. 상술한 방법을 통해, 서버(10)는 제2 인공지능 모델을 이용하여 개인화된 응답을 제공하되, 상대적으로 학습 데이터량이 부족하여 정확한 결과 출력이 보장되지 않는 제2 인공지능 모델을 제1 인공지능 모델을 통해 보완할 수 있다.In one embodiment, when the
한편, 본 발명에 따른 서버(10)는 제1 사용자 단말(20) 및 제2 사용자 단말(30) 중 적어도 하나의 사용자 단말로부터 수신한 질의를 분석하기 위하여, 자연어 이해부(Natural Language Understanding, NLU), 질의 관리 매니지먼트 모듈, 자연어 생성부(Natural Language Generator, NLG), 및 데이터 베이스를 포함할 수 있다.On the other hand, the
자연어 이해부는 수신한 질의를 바탕으로 엔티티(entity) 및 질의의 의도(intent)와 관련된 태스크(task)를 파악하기 위한 구성이다. 구체적으로, 자연어 이해부는 문장의 구조 및 주요 성분 분석을 통해 문장을 해석하고 통계/분석 등을 이용하여 문장 분석을 수행할 수 있다. The natural language understanding unit is configured to identify a task related to an entity and an intent of the query based on the received query. Specifically, the natural language understanding unit may interpret the sentence by analyzing the structure and main components of the sentence, and may perform the sentence analysis using statistics/analysis.
질의 관리 매니지먼트 모듈은 자연어 이해 결과 및 데이터 베이스에 저장된 데이터를 바탕으로 질의에 대한 응답에 대한 정보를 획득하기 위한 구성이다. 질의 관리 매니지먼트 모듈은 Frame기반, Agent기반 등으로 구현될 수 있으며, MDP(Markov Decision Process), 강화 학습(Reinforcement Learning)기반 모델링을 통해 구현될 수도 있음은 물론이다. 이때, 질의 관리 매니지먼트 모듈은 응답(예비응답 메시지 또는 연관 데이터)을 생성하기 위한 정보를 획득할 수 있으며, 상술한 바와 같이, 획득된 정보는 자연어 이해부를 통해 파악된 태스크와 데이터 베이스에 저장된 데이터를 바탕으로 결정될 수 있다. 자연어 생성부는 질의 관리 매니지먼트 모듈을 통해 획득된 정보를 바탕으로 질의에 대한 응답으로서, 자연어를 획득할 수 있다. The query management management module is a configuration for acquiring information on responses to queries based on the natural language understanding results and data stored in the database. It goes without saying that the query management management module can be implemented using Frame-based, Agent-based, etc., and it can also be implemented through MDP (Markov Decision Process) and Reinforcement Learning-based modeling. In this case, the query management management module may acquire information for generating a response (preliminary response message or related data), and as described above, the acquired information includes the task identified through the natural language understanding unit and data stored in the database. can be determined based on The natural language generator may acquire a natural language as a response to a query based on information obtained through the query management management module.
데이터 베이스는 질의 관리 매니지먼트 모듈에서 응답을 생성하는데 필요한 정보를 저장하기 위한 구성이다. 이때, 데이터 베이스에 저장되는 데이터는 다양할 수 있다. 일 실시예로, 데이터 베이스에 저장되는 데이터는, 제1 사용자 단말(20)과 제2 사용자 단말(30)의 과거 대화 내용에 대한 히스토리, 과거 대화 내용에 따라 전송된 연관 데이터의 종류, 제2 사용자 단말(30)로부터 수신한 데이터일 수 있다. 다만, 상술한 데이터 뿐만 아니라, 서버(10)는 제1 사용자 단말(20) 및 제2 사용자 단말(30)로 전송하기 위한 데이터를 판단하기 위한 다양한 데이터를 저장할 수 있음은 물론이다.The database is a configuration for storing information necessary to generate a response in the query management management module. In this case, the data stored in the database may be various. In an embodiment, the data stored in the database includes a history of the past conversation contents of the
이때, 본 발명에 따른 인공지능 모델 학습데이터를 입력하여 학습된 합성곱 신경망(Convolutional deep Neural Networks, CNN) 기반의 인공지능 모델일 수 있다. 다만, 이에 한정되는 것은 아니며, 다양한 인공지능 모델이 본 발명에 적용될 수 있음은 물론이다. 예컨대, DNN(Deep Neural Network), RNN(Recurrent Neural Network), BRDNN(Bidirectional Recurrent Deep Neural Network)과 같은 모델이 인공지능 모델로서 사용될 수 있으나, 이에 한정되지 않는다.In this case, it may be an artificial intelligence model based on a convolutional deep neural network (CNN) that is learned by inputting the artificial intelligence model learning data according to the present invention. However, the present invention is not limited thereto, and it goes without saying that various artificial intelligence models may be applied to the present invention. For example, a model such as a Deep Neural Network (DNN), a Recurrent Neural Network (RNN), or a Bidirectional Recurrent Deep Neural Network (BRDNN) may be used as the AI model, but is not limited thereto.
이때, 합성곱 신경망(Convolutional deep Neural Networks, CNN)은 최소한의 전처리(preprocess)를 사용하도록 설계된 다계층 퍼셉트론(multilayer perceptrons)의 한 종류이다. 합성곱 신경망은 하나 또는 여러개의 합성곱 계층(convolutional layer)과 그 위에 올려진 일반적인 인공신경망 계층들로 이루어져 있으며, 가중치와 통합 계층(pooling layer)들을 추가로 활용한다. 이러한 구조 덕분에 합성곱 신경망은 2차원 구조의 입력 데이터를 충분히 활용할 수 있다. 또한, 합성곱 신경망은 표준 역전달을 통해 훈련될 수 있다. 합성곱 신경망은 다른 피드포워드 인공신경망 기법들보다 쉽게 훈련되는 편이고 적은 수의 매개변수를 사용한다는 이점이 있다. In this case, convolutional deep neural networks (CNNs) are a type of multilayer perceptrons designed to use minimal preprocessing. A convolutional neural network consists of one or several convolutional layers and general artificial neural network layers on top of it, and additionally utilizes weights and pooling layers. Thanks to this structure, the convolutional neural network can fully utilize the input data of the two-dimensional structure. In addition, convolutional neural networks can be trained via standard backpropagation. Convolutional neural networks are easier to train than other feedforward neural network techniques and have the advantage of using fewer parameters.
또한, 심층 신경망(Deep Neural Networks, DNN)은 입력 계층(input layer)과 출력 계층(output layer) 사이에 복수개의 은닉 계층(hidden layer)들로 이뤄진 인공신경망(Artificial Neural Network, ANN)이다.In addition, deep neural networks (DNNs) are artificial neural networks (ANNs) composed of a plurality of hidden layers between an input layer and an output layer.
이때, 심층 신경망의 구조는 퍼셉트론(perceptron)으로 구성될 수 있다. 퍼셉트론은 여러 개의 입력 값(input)과 하나의 프로세서(prosessor), 하나의 출력 값으로 구성된다. 프로세서는 여러 개의 입력 값에 각각 가중치를 곱한 후, 가중치가 곱해진 입력 값들을 모두 합한다. 그 다음 프로세서는 합해진 값을 활성화함수에 대입하여 하나의 출력 값을 출력한다. 만약 활성화함수의 출력 값으로 특정한 값이 나오기를 원하는 경우, 각 입력 값에 곱해지는 가중치를 수정하고, 수정된 가중치를 이용하여 출력 값을 다시 계산할 수 있다. 이때, 각각의 퍼셉트론은 서로 다른 활성화함수를 사용할 수 있다. 또한 각각의 퍼셉트론은 이전 계층에서 전달된 출력들을 입력으로 받아들인 다음, 활성화 함수를 이용해서 출력을 구한다. 구해진 출력은 다음 계층의 입력으로 전달된다. 상술한 바와 같은 과정을 거치면 최종적으로 몇 개의 출력 값을 얻을 수 있다. In this case, the structure of the deep neural network may be composed of a perceptron. A perceptron consists of several inputs, one processor, and one output value. The processor multiplies each input value by a weight, and then sums the input values multiplied by the weight. Then, the processor outputs one output value by substituting the summed value into the activation function. If a specific value is desired as the output value of the activation function, the weight multiplied by each input value may be corrected, and the output value may be recalculated using the modified weight. In this case, each perceptron may use a different activation function. In addition, each perceptron receives the outputs from the previous layer as input, and then uses the activation function to obtain the output. The obtained output is transferred to the input of the next layer. Through the process as described above, some output values can be finally obtained.
또한, 딥 러닝 기법에 대한 설명으로 다시 돌아가면, 순환 신경망(Reccurent Neural Network, RNN)은 인공신경망을 구성하는 유닛 사이의 연결이 Directed cycle을 구성하는 신경망을 말한다. 순환 신경망은 앞먹임 신경망과 달리, 임의의 입력을 처리하기 위해 신경망 내부의 메모리를 활용할 수 있다.In addition, returning to the description of the deep learning technique, a Reccurent Neural Network (RNN) refers to a neural network in which connections between units constituting an artificial neural network constitute a directed cycle. Unlike forward neural networks, recurrent neural networks can utilize the memory inside the neural network to process arbitrary inputs.
심층 신뢰 신경망(Deep Belief Networks, DBN)이란 기계학습에서 사용되는 그래프 생성 모형(generative graphical model)으로, 딥 러닝에서는 잠재변수(latent variable)의 다중계층으로 이루어진 심층 신경망을 의미한다. 계층 간에는 연결이 있지만 계층 내의 유닛 간에는 연결이 없다는 특징이 있다. Deep Belief Networks (DBN) is a generative graphical model used in machine learning, and in deep learning, it means a deep neural network composed of multiple layers of latent variables. There is a connection between layers, but there is no connection between units within a layer.
심층 신뢰 신경망은 생성 모형이라는 특성상 선행학습에 사용될 수 있고, 선행학습을 통해 초기 가중치를 학습한 후 역전파 혹은 다른 판별 알고리즘을 통해 가중치의 미조정을 할 수 있다. 이러한 특성은 훈련용 데이터가 적을 때 굉장히 유용한데, 이는 훈련용 데이터가 적을수록 가중치의 초기값이 결과적인 모델에 끼치는 영향이 세지기 때문이다. 선행학습된 가중치 초기값은 임의로 설정된 가중치 초기값에 비해 최적의 가중치에 가깝게 되고 이는 미조정 단계의 성능과 속도향상을 가능케 한다. The deep trust neural network can be used for prior learning due to the nature of the generative model, and after learning the initial weight through prior learning, the weights can be fine-tuned through backpropagation or other discrimination algorithms. This feature is very useful when the training data is small, because the smaller the training data, the stronger the effect of the initial value of the weight on the resulting model. The pre-learned initial weight value is closer to the optimal weight compared to the arbitrarily set initial weight value, which enables performance and speed improvement in the fine-tuning stage.
상술한 인공지능 및 그 학습방법에 관한 내용은 예시를 위하여 서술된 것이며, 이하에서 설명되는 실시 예들에서 이용되는 인공지능 및 그 학습방법은 제한되지 않는다. 예를 들어, 당 업계의 통상의 기술자가 동일한 과제해결을 위하여 적용할 수 있는 모든 종류의 인공지능 기술 및 그 학습방법이 개시된 실시 예에 따른 시스템을 구현하는 데 활용될 수 있다.The above-described artificial intelligence and its learning method have been described for illustrative purposes, and the artificial intelligence and its learning method used in the embodiments described below are not limited. For example, all kinds of artificial intelligence technology and a learning method thereof that a person skilled in the art can apply to solve the same problem may be utilized to implement the system according to the disclosed embodiment.
제1 사용자 단말(20)은 서비스를 제공하기 위한 서비스 제공자의 단말일 수 있다. 일 실시예에 따라, 서버(10) 및 제1 사용자 단말(20)은 하나의 장치로 구현될 수 있음은 물론이다.The
제2 사용자 단말(30)은 서버(10)로 질의를 하기 위한 사용자의 단말일 수 있다. 제2 사용자 단말(30)은 서버(10)로부터 제공된 챗봇 어플리케이션을 바탕으로 서버(10) 및 제1 사용자 단말(20)과 통신할 수 있으며, 구체적으로는, 서버(10)로부터 제공된 채팅방을 통해 서버(10) 및 제1 사용자 단말(20)과 통신할 수 있다. The
일 실시예로, 제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)중 적어도 하나를 포함할 수 있다.In one embodiment, the
이하에서는 도 2 내지 도 9를 이용하여 본 발명의 다양한 실시예를 설명한다.Hereinafter, various embodiments of the present invention will be described with reference to FIGS. 2 to 9 .
도 2는 본 발명의 일 실시예에 따른 챗봇 시스템을 설명하기 위한 흐름도이다.2 is a flowchart illustrating a chatbot system according to an embodiment of the present invention.
단계 S110에서, 서버(10)는, 제1 사용자 단말(20) 및 제2 사용자 단말(30)은 참여하는 제1 채팅방을 통해 제2 사용자 단말(30)로부터 질의를 수신할 수 있다.In step S110 , the
일 실시예로, 제2 사용자 단말(30)은, 챗봇 어플리케이션을 실행하여 생성된 제1 채팅방에 질의를 입력하고, 서버(10)는 제1 채팅방에 등록된 질의를 수신할 수 있다. In an embodiment, the
단계 S120에서, 서버(10)는, 질의를 제1 사용자 단말(20)로 전송할 수 있다. 구체적으로, 서버(10)는 제2 사용자 단말(30)에 의해 생성된 질의를 제1 사용자 단말(20)의 챗봇 어플리케이션에 의해 생성된 제1 채팅방으로 전송할 수 있다.In step S120 , the
단계 S130에서, 서버(10)는, 질의를 분석하여 제1 예비응답 메시지를 획득할 수 있다.In step S130, the
이때, 예비응답 메시지는, 서버(10)에 의해 분석된 질의를 바탕으로 제2 사용자 단말(30)에게 제공하기 위한 메시지일 수 있다.In this case, the preliminary response message may be a message to be provided to the
일 실시예로, 질의가 "디자인 의뢰 하고 싶어"인 경우, 서버(10)는 도 9에 도시된 바와 같이, "웹, 앱, 아이콘, UI/UX 디자인 중에 어느 것이요?"라는 메시지를 예비응답 메시지로 획득할 수 있다.In one embodiment, when the query is "I want to request a design", the
단계 S140에서, 서버(10)는, 제1 예비응답 메시지가 기 설정된 조건에 따라, 제1 예비응답 메시지를 제1 사용자 단말(20) 및 제2 사용자 단말(30) 중 적어도 하나의 사용자 단말로 전송할 수 있다.In step S140 , the
후술하는 바와 같이, 기 설정된 조건은 제1 사용자 단말(20)이 서버(10)와 접속되어 있는지 여부일 수 있다. 일 실시예로, 제1 사용자 단말(20)이 서버(10)와 접속된 경우, 서버(10)는 예비응답 메시지를 제1 사용자 단말(20)로 전송하고, 그렇지 않은 경우, 서버(10)는 예비응답 메시지를 제2 사용자 단말(30)로 전송할 수 있다.As will be described later, the preset condition may be whether the
도 3은 본 발명의 일 실시예에 따른 연관 데이터를 제공하는 방법을 설명하기 위한 흐름도이다.3 is a flowchart illustrating a method of providing related data according to an embodiment of the present invention.
단계 S210에서, 서버(10)는, 질의를 분석하여 연관 데이터를 획득할 수 있다.In step S210 , the
일 실시예로, 연관 데이터는, 제2 사용자 단말(30)의 질의와 관련된 데이터를 의미할 수 있다. 예를 들어, 연관 데이터는 도9의 제1 영역(910)에 도시된 바와 같이, 디자인 시안에 대한 파일을 의미할 수 있다.As an embodiment, the related data may mean data related to the query of the
단계 S220에서, 서버(10)는, 제1 사용자 단말(20) 및 제2 사용자 단말(30) 중 적어도 하나의 사용자 단말로 연관 데이터를 전송할 수 있다.In step S220 , the
후술하는 바와 같이, 서버(10)는 제1 사용자 단말(20)이 서버(10)와 접속되어 있지 않은 경우, 연관 데이터의 보안 등급에 따라, 연관 데이터를 제2 사용자 단말(30)로 전송할지 여부를 판단할 수 있다.As will be described later, when the
한편, 본 발명의 다양한 실시예에 따라, 예비응답 메시지 및 연관 데이터는 사용자 질의에 대한 챗봇의 응답의 종류를 기준으로 분류될 수 있다.Meanwhile, according to various embodiments of the present invention, the preliminary response message and related data may be classified based on the type of the chatbot's response to the user's query.
예를 들어, 사용자 질의에 대한 챗봇의 응답이 추가 질의인 경우, 서버(10)는 추가 질의를 예비응답 데이터로 획득할 수 있다. 또한, 사용자 질의에 대한 챗봇의 응답이 답변 응답인 경우, 서버(10)는 답변 응답을 연관 데이터로 획득할 수 있다.For example, when the chatbot's response to the user's query is an additional query, the
이 경우, 서버(10)는 연관 데이터가 전송된 후 기 설정된 시간동안 제2 사용자 단말(30)의 추가 문의가 없는 경우, 대화가 종료된 것으로 판단하고, 최초 사용자 질의부터 마지막 연관데이터 전송까지의 사용자 질의, 예비응답 데이터 및 연관 데이터를 하나의 데이터 세트로 저장하여 관리할 수 있다.In this case, if there is no additional inquiry from the
도 4는 본 발명의 일 실시예에 따른 연관 데이터의 종류를 획득하는 방법을 설명하기 위한 흐름도이다.4 is a flowchart illustrating a method of acquiring a type of related data according to an embodiment of the present invention.
단계 S310에서, 서버(10)는, 질의를 바탕으로 키워드를 추출할 수 있다.In step S310, the
일 실시예로, 서버(10)는 사용자 질의를 형태소 분석하여 키워드를 추출할 수 있다. In one embodiment, the
또 다른 실시예로, 서버(10)는 사용자 질의를 자연어 이해부에 입력하여 질의에 대한 엔티티(entity) 및 질의의 의도(intent)와 관련된 태스크(task)를 획득하고, 획득된 태스크를 키워드로 판단할 수 있다. 이때, 질의의 의도(intent)와 관련된 태스크(task)란, 사용자 질의에 대한 응답을 위해 필요한 정보일 수 있다. 예컨대, 사용자 질의가 디자인을 문의하는 질의인 경우, 태스크는 디자인 조회일 수 있다. 또는, 사용자 질의가 견적서를 요청하기 위한 질의인 경우, 태스크는 견적서 생성 대상 및 해당 대상에 대한 견적 비용 조회일 수 있다.In another embodiment, the
단계 S320에서, 서버(10)는, 키워드에 대응되는 제1 연관 데이터를 서버(10)의 내부 DB에서 검색할 수 있다.In step S320 , the
단계 S330에서, 서버(10)는, 키워드에 대응되는 제2 연관 데이터를 외부 서버(10)에서 검색할 수 있다.In step S330 , the
즉, 서버(10)는 획득된 키워드를 서버(10)에 저장된 내부 DB 뿐만 아니라 외부 서버에서 검색하여 더욱 정확하고 풍부한 결과를 사용자에게 전달할 수 있다. 이때, 외부 서버는 포털 사이트, SNS 사이트, 웹사이트 등 다양한 사이트를 포함할 수 있다.That is, the
단계 S340에서, 서버(10)는, 제1 연관 데이터 및 제2 연관 데이터 중 적어도 하나의 데이터를, 제1 사용자 단말(20) 및 제2 사용자 단말(30) 중 적어도 하나의 사용자 단말로 전송할 수 있다.In step S340 , the
단계 S350에서, 제2 사용자 단말(30)은, 서버(10)로부터 제1 연관 데이터 및 제2 연관 데이터 중 적어도 하나의 연관 데이터를 수신할 수 있다.In step S350 , the
단계 S360에서, 제2 사용자 단말(30)은, 적어도 하나의 연관 데이터를 제1 채팅방의 제1 영역(910)에 표시할 수 있다.In step S360, the
이때, 제1 영역(910)에 표시되는 연관 데이터는, 제2 사용자 단말(30)이 다운로드 가능한 데이터 및 사용자 단말이 접속 가능한 url 정보일 수 있다.In this case, the related data displayed in the first area 910 may be data downloadable by the
일 실시예로, 도 9에 도시된 바와 같이, 제2 사용자 단말(30)은 "강원오픈마켓_디자인 시안.pdf"를 연관 데이터로 획득한 경우, 해당 연관데이터를 제1 채팅방의 상단 영역인 제1 영역(910)에 표시할 수 있다. In one embodiment, as shown in FIG. 9 , when the
또 다른 실시예로, 연관 데이터가 사용자 단말이 접속 가능한 url 정보인 경우, 제2 사용자 단말(30)은, 서버(10)로부터 url 정보를 수신하여 제1 영역(910)에 표시할 수 있다.As another embodiment, when the related data is url information accessible to the user terminal, the
또 다른 실시예로, 연관 데이터가 상술한 바와 같이, 챗봇의 추가 질의 응답이 아닌, 답변 응답에 대한 데이터인 경우, 제2 사용자 단말(30)은, 서버(10)로부터 답변 응답 수신하여 제1 영역(910)에 표시할 수 있다. 예컨대, 도 9의 실시예에서 답변 응답이 "디자인 의뢰는 지원하지 않는 서비스 입니다"와 같이 사용자 질의에 대한 추가 질의(웹, 앱, 아이콘, UI/UX 디자인 중에 어느 것이요?)가 아닌 경우, 챗봇의 응답을 제2 영역(920)이 아닌 제1 영역(910)에 표시할 수 있다.In another embodiment, when the related data is data for an answer response rather than an additional question response of the chatbot as described above, the
도 5는 본 발명의 일 실시예에 따른 연관 데이터의 종류에 따라 연관 데이터를 제공하는 방법을 설명하기 위한 흐름도이다.5 is a flowchart illustrating a method of providing related data according to a type of related data according to an embodiment of the present invention.
단계 S410에서, 서버(10)는, 제1 연관 데이터의 보안 등급을 획득할 수 있다.In step S410, the
구체적으로, 서버(10)의 내부 DB에서 획득된 제1 연관 데이터는, 외부 서버에서 획득된 제2 연관 데이터와 달리 보안의 필요성이 존재할 수 있다. 따라서, 서버(10)는 제1 연관 데이터의 보안 등급을 판단하고, 제1 연관 데이터를 제2 사용자 단말(30)로 전송할 지 여부를 판단할 수 있다. Specifically, the first related data obtained from the internal DB of the
단계 S420에서, 서버(10)는, 제2 사용자 단말(30)의 사용자 등급을 획득할 수 있다.In step S420 , the
이때, 보안 등급이란, 1급 보안 등급, 2급 보안 등급과 같이, 절대적인 수치로 표시되는 값을 의미할 수 있으나, 챗봇을 이용하는 사용자에 따라 상이하게 설정되는 상대적인 보안 등급을 의미할 수 있다.In this case, the security level may mean a value expressed as an absolute numerical value, such as a first-class security level or a second-level security level, but may mean a relative security level that is set differently depending on a user using the chatbot.
예를 들어, 제1 연관 데이터가, 과거 제2 사용자 단말(30)로부터 수신한 데이터인 경우에는, 서버(10)는 절대적인 수치로 표시되는 보안 등급과는 관계 없이 제1 연관 데이터를 제2 사용자 단말(30)로 전송할 수 있을 것이다.For example, when the first related data is data received from the
사용자 등급 또한 보안 등급에 대응되는 개념으로서, 절대적인 수치에 대한 사용자 등급일 수 있으나, 챗봇을 이용하는 사용자에 따라 상이하게 설정되는 상대적인 사용자 등급일 수 있음은 물론이다.The user rating is also a concept corresponding to the security level, and may be an absolute numerical user rating, but may be a relative user rating set differently depending on the user using the chatbot.
한편, 서버(10)는 제1 연관 데이터로 사용하기 위한 데이터를 별도의 데이터 베이스에 저장하여 관리 할 수 있다. 예를 들어, 서버(10)는 제1 데이터 베이스를 포함할 수 있으며, 제1 데이터 베이스에 저장된 데이터는 제1 연관 데이터 획득을 위해 사용될 수 있다.Meanwhile, the
이때, 서버(10)는 제1 데이터 베이스에 저장하기 위한 데이터를 획득하는 단계, 획득된 데이터의 출처를 나타내는 인덱스를 부가하는 단계를 포함할 수 있다. 예를 들어, 데이터가 외부 서버로부터 획득된 데이터인 경우, 서버(10)는 해당 데이터에 외부 서버 인덱스를 부가하고, 데이터가 제2 사용자 단말(30)로부터 획득된 데이터인 경우, 서버(10)는 해당 데이터에 제2 사용자 단말 인덱스를 부가하고, 데이터가 제3 사용자 단말로부터 획득된 데이터인 경우, 서버(10)는 해당 데이터에 제3 사용자 단말 인덱스를 부가하고, 데이터가 서버(10)에 대응되는 사용자 단말로부터 획득된 데이터인 경우, 서버(10)는 해당 데이터에 관리자 인덱스를 부가할 수 있다. 상술한 외부 서버 인덱스, 제2 사용자 단말 인덱스, 제3 사용자 단말 인덱스 및 관리자 인덱스는, 서로 구별되는 인덱스일 뿐, 그 명칭에 종속되지 않는다. 예컨대 서버(10)는 외부 서버 인덱스를 0000으로, 제2 사용자 단말 인덱스를 0001로, 제3 사용자 단말 인덱스를 0010으로, 관리자 인덱스를 0011로설정할 수 있다.In this case, the
단계 S430에서, 제1 연관 데이터의 보안 등급이 제2 사용자 단말(30)의 사용자 등급 보다 높은 경우, 서버(10)는, 제1 연관 데이터를 제1 사용자 단말(20)로 전송할 수 있다.In step S430 , when the security level of the first related data is higher than the user level of the
즉, 서버(10)는 아무런 검증 없이 제1 연관 데이터가 제2 사용자 단말(30)로 전송하는 것이 위험도가 높다고 판단되는 경우, 제1 연관 데이터를 제1 사용자 단말(20)로 전송할 수 있다.That is, when it is determined that the risk of transmitting the first related data to the
단계 S440에서, 제1 연관 데이터의 보안 등급이 제2 사용자 단말(30)의 사용자 등급 보다 낮은 경우, 서버(10)는, 제1 연관 데이터를 제2 사용자 단말(30)로 전송할 수 있다.In step S440 , when the security level of the first related data is lower than the user level of the
제1 연관 데이터의 보안 등급이 제2 사용자 단말(30)의 사용자 등급 보다 낮은 경우의 의미는, 보안 등급 및 사용자 등급이 절대적인 수치와 관련된 경우, 문언 그대로 해석될 수 있다. 예를 들어, 보안 등급이 2등급이고, 사용자 등급이 1등급인 경우, 서버(10)는 제1 연관 데이터를 제2 사용자 단말(30)로 전송할 수 있다.The meaning of the case where the security level of the first related data is lower than the user level of the
다만, 보안 등급 및 사용자 등급이 상대적으로 결정되는 경우, 제1 연관 데이터의 보안 등급이 제2 사용자 단말(30)의 사용자 등급 보다 낮은 경우의 의미는 제2 사용자 단말(30)이 제1 연관 데이터를 수신할 수 있는지에 대한 자격이 있음을 의미할 수 있다. 예를 들어, 제1 연관 데이터가 제2 사용자 단말(30)에 의해 수신한 데이터인 경우, 서버(10)는 제1 연관 데이터의 보안 등급이 제2 사용자 단말(30)의 사용자 등급 보다 낮다고 판단하고, 서버(10)는 제1 연관 데이터를 제2 사용자 단말(30)로 전송할 수 있다. 상술한 예시는 상술한 단계 S430에서 동일하게 적용됨은 물론이다.However, when the security level and the user level are relatively determined, the meaning of the case that the security level of the first related data is lower than the user level of the
단계 S450에서, 제1 사용자 단말(20)로부터, 제1 연관 데이터를 제2 사용자 단말(30)로 전송하기 위한 사용자 명령이 입력되면, 서버(10)는, 제1 연관 데이터를 제2 사용자 단말(30)로 전송할 수 있다.In step S450, when a user command for transmitting the first related data to the
즉, 상술한 단계 S430에서 제1 사용자 단말(20)이 제1 연관 데이터를 수신하고, 수신한 제1 연관 데이터를 제2 사용자 단말(30)로 전송함으로써, 서버(10)에 의해 동작할 수 없는 동작을 제1 사용자 단말(20)을 통해 수행할 수 있는 효과가 존재한다.That is, in the above-described step S430, the
한편, 본 발명의 다양한 실시예에 따라, 제1 연관 데이터가 관리자 인덱스가 부가된 연관 데이터인 경우에만 단계 S430의 동작을 수행할 수 있음은 물론이다. 즉, 제1 연관 데이터의 보안 등급이 제2 사용자 단말(30)의 사용자 등급 보다 높고, 제1 연관 데이터에 관리자 인덱스가 부가된 경우, 서버(10)는, 제1 연관 데이터를 제1 사용자 단말(20)로 전송할 수 있다.Meanwhile, according to various embodiments of the present disclosure, it goes without saying that the operation of step S430 may be performed only when the first related data is related data to which the manager index is added. That is, when the security level of the first related data is higher than the user level of the
예를 들어, 제1 연관 데이터에 제3 사용자 단말 인덱스가 부가된 경우, 서버(10) 및 제1 사용자 단말(20)이 제1 연관 데이터를 제2 사용자 단말(30)로 전송할 지 여부를 결정하는 것이 바람직하지 않을 수 있다. 따라서, 서버(10)는, 제1 연관 데이터가 관리자 인덱스가 부가된 연관 데이터인 경우에만 단계 S430의 동작을 수행할 수 있다.For example, when the third user terminal index is added to the first related data, the
도 6은 본 발명의 일 실시예에 따른 제1 사용자 단말의 접속 여부에 따라 제2 사용자 단말에 제공되는 메시지를 설명하기 위한 흐름도이다.6 is a flowchart illustrating a message provided to a second user terminal according to whether the first user terminal is connected according to an embodiment of the present invention.
단계 S510에서, 서버(10)는, 제1 사용자 단말(20)이 서버(10)와 접속되어 있는지 여부를 판단할 수 있다. In step S510 , the
제1 사용자 단말(20)이 서버(10)와 접속된 경우(S510-Y), 단계 S520에서, 서버(10)는, 제1 예비응답 메시지를 제1 사용자 단말(20)로 전송할 수 있다.When the
단계 S530에서, 제1 사용자 단말(20)은, 제1 예비응답 메시지를 바탕으로 제1 응답 메시지를 획득하여 서버(10)로 전송할 수 있다.In step S530 , the
즉, 서버(10)는 제1 사용자 단말(20)이 서버(20)와 접속된 경우에는, 제2 사용자 단말(30)에 대한 응답을 제1 사용자 단말(20)을 통해 진행할 수 있다. 이는, 채팅 및 고객 응대의 특성 상, 사용자가 직접 대화에 참여하는 것이 바람직한 경우가 있기 때문이다.That is, when the
단계 S540에서, 서버(10)는, 제1 응답 메시지를 제2 사용자 단말(30)로 전송할 수 있다.In step S540 , the
단계 S550에서, 제2 사용자 단말(30)은, 제1 응답 메시지를 제1 채팅방의 제2 영역(920)에 표시할 수 있다.In step S550 , the
제1 사용자 단말(20)이 서버(10)와 접속되지 않은 경우(S510-N), 단계 S560에서, 서버(10)는, 제1 예비응답 메시지를 제1 사용자 단말(20) 및 제2 사용자 단말(30)로 전송할 수 있다.If the
즉, 제1 사용자 단말(20)이 서버(10)와 접속되지 않은 경우(S510-N), 서버(10)는 실시간으로 수신되는 제2 사용자 단말(30)의 질의를 처리하기 위해 제1 사용자 단말(20)의 참여 없이 질의에 대한 응답을 제공할 수 있다.That is, when the
단계 S570에서, 제1 사용자 단말(20) 및 제2 사용자 단말(30)은, 제1 예비응답 메시지를 제1 채팅방의 제2 영역(920)에 표시할 수 있다.In step S570 , the
한편, 본 발명의 다양한 실시예에 따라, 서버(10)는 제1 사용자 단말(20)이 서버(10)로 전송한 응답 메시지를 바탕으로 사용자 질의에 대한 응답을 획득하기 위한 인공지능 모델을 학습시킬 수 있다.Meanwhile, according to various embodiments of the present disclosure, the
일 실시예로, 서버(10)는, 서버(10)가 제1 사용자 단말(20)로 전송한 질의에 대한 예비응답 메시지와, 제1 사용자 단말(20)로부터 수신한 응답 메시지를 비교하고, 비교 결과 예비응답 메시지와 응답 메시지가 상이한 경우, 제1 사용자 단말(20)이 전송한 응답 메시지를 학습 데이터로 인공지능 모델을 학습시킬 수 있다. 구체적으로, 서버(10)는 사용자 질의 및 제1 사용자 단말(20)이 전송한 응답 메시지를 학습 데이터로 수신하여 인공지능 모델을 학습시킬 수 있으며, 필요에 따라 연관 데이터가 학습 데이터로 추가될 수 있음은 물론이다.In one embodiment, the
즉, 제1 사용자 단말(20)은 제2 사용자 단말(30)에 대한 응답생성의 목적을 달성함과 함께 서버(10)의 인공지능 모델을 업데이트하기 위한 학습 데이터를 획득함으로써, 서버(10)의 응답 생성을 향상시킬 수 있는 새로운 효과가 존재한다.That is, the
도 7은 본 발명의 일 실시예에 따른 제1 사용자 단말의 과거 히스토리를 바탕으로 관련 사용자를 판단하는 방법을 설명하기 위한 흐름도이다.7 is a flowchart illustrating a method of determining a related user based on a past history of a first user terminal according to an embodiment of the present invention.
단계 S610에서, 서버(10)는, 제2 사용자 단말(30)에 대응되는 개인 정보 및 과거 대화 히스토리를 획득할 수 있다.In step S610 , the
단계 S620에서, 서버(10)는, 획득된 개인 정보, 과거 대화 히스토리 및 키워드를 바탕으로 제1 연관 데이터를 획득할 수 있다.In step S620 , the
일 실시예로, 서버(10)는 제2 사용자 단말(30)의 과거 대화 내용을 바탕으로 제1 연관 데이터를 획득할 수 있다. 예를 들어, 제2 사용자 단말(30)의 질의가 과거 수행한 질의와 유사한 경우, 서버(10)는 과거 질의 내용 및 답변 내용을 바탕으로 제1 연관 데이터를 획득할 수 있다.In an embodiment, the
단계 S630에서, 제1 연관 데이터가 제3 사용자 단말로부터 수신한 연관 데이터인 경우, 서버(10)는, 제1 사용자 단말(20), 제2 사용자 단말(30) 및 제3 사용자 단말을 포함하는 제2 채팅방으로 초대할 수 있다.In step S630, if the first related data is the related data received from the third user terminal, the
일 실시예로, 서버(10)는 상술한 바와 같이, 제1 연관 데이터에 제3 사용자 단말 인덱스가 부가되어 있는 경우, 해당 데이터를 제3 사용자 단말의 데이터로 판단하고, 제3 사용자 단말을 제2 채팅방으로 초대할 수 있다. 서버(10), 제1 사용자 단말(20) 및 제2 사용자 단말(30)이 포함된 제1 채팅방과 달리, 제2 채팅방은 서버(10), 제1 사용자 단말(20), 제2 사용자 단말(30) 및 제3 사용자 단말이 포함될 수 있다.In one embodiment, as described above, when the third user terminal index is added to the first related data, the
단계 S640에서, 서버(10)는, 제2 채팅방을 통해 수집된 제2 사용자 단말(30) 및 제3 사용자 단말의 대화 내용을 획득할 수 있다.In step S640, the
도 8에서 후술하는 바와 같이, 서버(10)는 제2 사용자 단말(30) 및 제3 사용자 단말의 대화 내용을 바탕으로 제2 사용자 단말(30) 및 제3 사용자 단말 중 적어도 하나의 단말에 대화에 대한 응답을 제공할 수 있다.As will be described later in FIG. 8 , the
구체적으로, 서버(10)(및 제1 사용자 단말(20))와 제2 사용자 단말(30)이 참여하는 제1 채팅방과 달리, 제2 채팅방에서 획득되는 대화 내용의 수신자는 복수일 수 있다. Specifically, unlike the first chat room in which the server 10 (and the first user terminal 20) and the
일 실시예로, 서버(10)는 제2 사용자 단말(30) 및 제3 사용자 단말 중 적어도 하나의 단말로부터 수신한 대화의 수신자가 챗봇인 경우, 상술한 도 2 내지 도6의 방법을 통해 응답할 수 있다. In one embodiment, the
또 다른 실시예로, 제2 사용자 단말(30)로부터 수신한 대화의 수신자가 제3 사용자 단말인 경우 또는 그 반대의 경우, 서버(10)는 챗봇을 통해 대화의 발신자 또는 수신자를 보조하기 위한 응답을 생성할 수 있다. In another embodiment, when the receiver of the conversation received from the
예를 들어, 서버(10)는 초대된 제3 사용자 단말을 위해 서버(10)와 제2 사용자 단말(30)이 제1 채팅방에서 수행한 대화 내용의 일부를 요약하여 제3 사용자 단말로 제공할 수 있다. 또 다른 예로, 서버(10)는 제2 사용자 단말(30)과 제3 사용자 단말의 대화 내용을 분석하고, 필요한 연관 데이터를 제2 채팅방의 제1 영역에 제공할 수 있다. 즉, 제2 사용자 단말(30)과 제3 사용자 단말의 대화중 인 경우, 서버(10)는 예비응답 데이터 제공 없이 연관 데이터만을 제2 채팅방의 제1 영역에 제공할 수 있다.For example, the
도 8은 본 발명의 일 실시예에 따른 복수의 채팅방을 활용하는 방법을 설명하기 위한 흐름도이다.8 is a flowchart illustrating a method of utilizing a plurality of chat rooms according to an embodiment of the present invention.
단계 S710에서, 서버(10)는, 제2 채팅방을 통해, 제2 사용자 단말(30)의 질의 정보를 획득할 수 있다.In step S710 , the
본 발명의 다양한 실시예에 따라 서버(10)는, 제2 채팅방을 통해, 제2 사용자 단말(30) 및 제3 사용자 단말 중 적어도 하나의 질의 정보를 획득할 수 있다.According to various embodiments of the present disclosure, the
단계 S720에서, 서버(10)는, 질의를 분석하여 제2 예비응답 메시지를 획득할 수 있다.In step S720, the
일 실시예로, 제2 예비응답 메시지는 제2 사용자 단말(30)이 제3 사용자 단말로 제공할 수 있는 메시지일 수 있다.As an embodiment, the second preliminary response message may be a message that the
단계 S730에서, 서버(10)는, 제2 예비응답 메시지의 보안 등급을 획득할 수 있다.In step S730, the
단계 S740에서, 제2 예비응답 메시지의 보안 등급이 기 설정된 등급 초과인 경우, 서버(10)는, 제2 예비응답 메시지를 제1 채팅방에 출력할 수 있다.In step S740, when the security level of the second preliminary response message exceeds the preset level, the
단계 S750에서, 제2 예비응답 메시지의 보안 등급이 기 설정된 등급 이하인 경우, 서버(10)는, 제2 예비응답 메시지를 제2 채팅방에 출력할 수 있다.In step S750, if the security level of the second preliminary response message is less than or equal to the preset level, the
일 실시예로, 서버(10)는 제2 예비응답 메시지가 제2 사용자 단말(30)의 개인 정보 또는 보안 정보 등을 포함하고 있는 경우, 제2 예비응답 메시지를 제2 채팅방에 출력하는 것이 부적절한 경우가 있다. 따라서, 서버(10)는 제2 예비응답 메시지의 보안 등급이 기 설정된 등급 초과인 경우, 서버(10)는, 제2 예비응답 메시지를 제1 채팅방에 출력하고, 2 예비응답 메시지의 보안 등급이 기 설정된 등급 이하인 경우, 서버(10)는, 제2 예비응답 메시지를 제2 채팅방에 출력할 수 있다.In one embodiment, the
이때, 보안 등급은, 제2 사용자 단말(30)에 의해 설정될 수 있다. 일 실시예로, 제2 사용자 단말(30)은 보안의 필요성이 있는 키워드를 미리 설정할 수 있으며, 제2 예비응답 메시지에 해당 키워드가 존재하면, 서버(10)는 제2 예비응답 메시지를 제1 채팅방으로 출력할 수 있다.In this case, the security level may be set by the
도 10은 본 발명의 일 실시예에 따른 장치의 구성도이다.10 is a block diagram of an apparatus according to an embodiment of the present invention.
프로세서(102)는 하나 이상의 코어(core, 미도시) 및 그래픽 처리부(미도시) 및/또는 다른 구성 요소와 신호를 송수신하는 연결 통로(예를 들어, 버스(bus) 등)를 포함할 수 있다.The
일 실시예에 따른 프로세서(102)는 메모리(104)에 저장된 하나 이상의 인스트럭션을 실행함으로써, 도 2 내지 도 8과 관련하여 설명된 방법을 수행한다.The
예를 들어, 프로세서(102)는 메모리에 저장된 하나 이상의 인스트럭션을 실행함으로써 신규 학습용 데이터를 획득하고, 학습된 모델을 이용하여, 상기 획득된 신규 학습용 데이터에 대한 테스트를 수행하고, 상기 테스트 결과, 라벨링된 정보가 소정의 제1 기준값 이상의 정확도로 획득되는 제1 학습용 데이터를 추출하고, 상기 추출된 제1 학습용 데이터를 상기 신규 학습용 데이터로부터 삭제하고, 상기 추출된 학습용 데이터가 삭제된 상기 신규 학습용 데이터를 이용하여 상기 학습된 모델을 다시 학습시킬 수 있다. For example, the
한편, 프로세서(102)는 프로세서(102) 내부에서 처리되는 신호(또는, 데이터)를 일시적 및/또는 영구적으로 저장하는 램(RAM: Random Access Memory, 미도시) 및 롬(ROM: Read-Only Memory, 미도시)을 더 포함할 수 있다. 또한, 프로세서(102)는 그래픽 처리부, 램 및 롬 중 적어도 하나를 포함하는 시스템온칩(SoC: system on chip) 형태로 구현될 수 있다. On the other hand, the
메모리(104)에는 프로세서(102)의 처리 및 제어를 위한 프로그램들(하나 이상의 인스트럭션들)을 저장할 수 있다. 메모리(104)에 저장된 프로그램들은 기능에 따라 복수 개의 모듈들로 구분될 수 있다.The
본 발명의 실시예와 관련하여 설명된 방법 또는 알고리즘의 단계들은 하드웨어로 직접 구현되거나, 하드웨어에 의해 실행되는 소프트웨어 모듈로 구현되거나, 또는 이들의 결합에 의해 구현될 수 있다. 소프트웨어 모듈은 RAM(Random Access Memory), ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리(Flash Memory), 하드 디스크, 착탈형 디스크, CD-ROM, 또는 본 발명이 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터 판독가능 기록매체에 상주할 수도 있다.The steps of a method or algorithm described in relation to an embodiment of the present invention may be implemented directly in hardware, as a software module executed by hardware, or by a combination thereof. A software module may contain random access memory (RAM), read only memory (ROM), erasable programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), flash memory, hard disk, removable disk, CD-ROM, or It may reside in any type of computer-readable recording medium well known in the art to which the present invention pertains.
본 발명의 구성 요소들은 하드웨어인 컴퓨터와 결합되어 실행되기 위해 프로그램(또는 애플리케이션)으로 구현되어 매체에 저장될 수 있다. 본 발명의 구성 요소들은 소프트웨어 프로그래밍 또는 소프트웨어 요소들로 실행될 수 있으며, 이와 유사하게, 실시 예는 데이터 구조, 프로세스들, 루틴들 또는 다른 프로그래밍 구성들의 조합으로 구현되는 다양한 알고리즘을 포함하여, C, C++, 자바(Java), 어셈블러(assembler) 등과 같은 프로그래밍 또는 스크립팅 언어로 구현될 수 있다. 기능적인 측면들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다.The components of the present invention may be implemented as a program (or application) to be executed in combination with a computer, which is hardware, and stored in a medium. Components of the invention may be implemented as software programming or software components, and similarly, embodiments may include various algorithms implemented as data structures, processes, routines, or combinations of other programming constructs, including C, C++ , Java, assembler, etc. may be implemented in a programming or scripting language. Functional aspects may be implemented in an algorithm running on one or more processors.
이상, 첨부된 도면을 참조로 하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야의 통상의 기술자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며, 제한적이 아닌 것으로 이해해야만 한다. As mentioned above, although embodiments of the present invention have been described with reference to the accompanying drawings, those skilled in the art to which the present invention pertains can realize that the present invention can be embodied in other specific forms without changing its technical spirit or essential features. you will be able to understand Therefore, it should be understood that the embodiments described above are illustrative in all respects and not restrictive.
10 : 서버
20 : 제1 사용자 단말
30 : 제2 사용자 단말10 : Server
20: first user terminal
30: second user terminal
Claims (7)
서버가, 제1 사용자 단말 및 제2 사용자 단말이 참여하는 제1 채팅방을 통해 상기 제2 사용자 단말로부터 질의를 수신하는 단계;
상기 서버가, 상기 질의를 제1 사용자 단말로 전송하는 단계;
상기 서버가, 상기 질의를 분석하여 제1 예비응답 메시지를 획득하는 단계;
상기 서버가, 상기 제1 예비응답 메시지가 기 설정된 조건에 따라, 상기 제1 예비응답 메시지를 상기 제1 사용자 단말 및 상기 제2 사용자 단말 중 적어도 하나의 사용자 단말로 전송하는 단계; 를 포함하는 제어 방법.In the control method of the chatbot system,
receiving, by the server, a query from the second user terminal through the first chat room in which the first user terminal and the second user terminal participate;
transmitting, by the server, the query to a first user terminal;
obtaining, by the server, a first preliminary response message by analyzing the query;
transmitting, by the server, the first preliminary response message to at least one of the first user terminal and the second user terminal according to a condition in which the first preliminary response message is preset; A control method comprising a.
상기 제어 방법은,
상기 서버가, 상기 질의를 분석하여 연관 데이터를 획득하는 단계; 및
상기 서버가, 상기 제1 사용자 단말 및 상기 제2 사용자 단말 중 적어도 하나의 사용자 단말로 상기 연관 데이터를 전송하는 단계;를 포함하는 제어 방법.According to claim 1,
The control method is
obtaining, by the server, related data by analyzing the query; and
and transmitting, by the server, the related data to at least one of the first user terminal and the second user terminal.
상기 연관 데이터를 획득하는 단계는,
상기 질의를 바탕으로 키워드를 추출하는 단계;
상기 키워드에 대응되는 제1 연관 데이터를 상기 서버의 내부 DB에서 검색하는 단계;
상기 키워드에 대응되는 제2 연관 데이터를 외부 서버에서 검색하는 단계; 및
상기 제1 연관 데이터 및 상기 제2 연관 데이터 중 적어도 하나의 데이터를, 상기 제1 사용자 단말 및 상기 제2 사용자 단말 중 적어도 하나의 사용자 단말로 전송하는 단계; 를 포함하고,
상기 제어 방법은,
상기 제2 사용자 단말이, 상기 서버로부터 상기 제1 연관 데이터 및 상기 제2 연관 데이터 중 적어도 하나의 연관 데이터를 수신하는 단계; 및
상기 제2 사용자 단말이, 상기 적어도 하나의 연관 데이터를 상기 제1 채팅방의 제1 영역에 표시하는 단계; 를 포함하고,
상기 제1 영역에 표시되는 연관 데이터는, 상기 제2 사용자 단말이 다운로드 가능한 데이터 및 상기 사용자 단말이 접속 가능한 url 정보인 것을 특징으로 하는 제어 방법.3. The method of claim 2,
The step of obtaining the relevant data includes:
extracting keywords based on the query;
searching for first related data corresponding to the keyword in an internal DB of the server;
searching an external server for second related data corresponding to the keyword; and
transmitting at least one of the first related data and the second related data to at least one of the first user terminal and the second user terminal; including,
The control method is
receiving, by the second user terminal, at least one of the first related data and the second related data from the server; and
displaying, by the second user terminal, the at least one related data in a first area of the first chat room; including,
The related data displayed in the first area is data downloadable by the second user terminal and url information accessible by the user terminal.
상기 제1 사용자 단말 및 상기 제2 사용자 단말 중 적어도 하나의 사용자 단말로 전송하는 단계는,
상기 제1 연관 데이터의 보안 등급을 획득하는 단계;
상기 제2 사용자 단말의 사용자 등급을 획득하는 단계;
상기 제1 연관 데이터의 보안 등급이 상기 제2 사용자 단말의 사용자 등급 보다 높은 경우, 상기 제1 연관 데이터를 상기 제1 사용자 단말로 전송하는 단계; 및
상기 제1 연관 데이터의 보안 등급이 상기 제2 사용자 단말의 사용자 등급 보다 낮은 경우, 상기 제1 연관 데이터를 상기 제2 사용자 단말로 전송하는 단계;를 포함하고,
상기 제1 연관 데이터를 상기 제1 사용자 단말로 전송하는 단계는,
상기 제1 사용자 단말로부터, 상기 제1 연관 데이터를 상기 제2 사용자 단말로 전송하기 위한 사용자 명령이 입력되면, 상기 서버가, 상기 제1 연관 데이터를 상기 제2 사용자 단말로 전송하는 단계; 를 포함하는 제어 방법.4. The method of claim 3,
The step of transmitting to at least one user terminal of the first user terminal and the second user terminal,
obtaining a security level of the first related data;
obtaining a user rating of the second user terminal;
when the security level of the first related data is higher than the user level of the second user terminal, transmitting the first related data to the first user terminal; and
When the security level of the first related data is lower than the user level of the second user terminal, transmitting the first related data to the second user terminal;
Transmitting the first related data to the first user terminal comprises:
transmitting, by the server, the first related data to the second user terminal when a user command for transmitting the first related data to the second user terminal is input from the first user terminal; A control method comprising a.
상기 기 설정된 조건은, 상기 제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 영역에 표시하는 단계;를 포함하는 제어 방법.According to claim 1,
The preset condition is a condition for whether the first user terminal is connected to the server,
Transmitting the first preliminary response message to at least one of the first user terminal and the second user terminal comprises:
transmitting, by the server, the first preliminary response message to the first user terminal when the first user terminal is connected to the server;
obtaining, by the first user terminal, a first response message based on the first preliminary response message and transmitting the first response message to the server;
transmitting, by the server, the first response message to the second user terminal; and
Including, by the second user terminal, displaying the first response message in a second area of the first chat room;
When the first user terminal is not connected to the server,
transmitting, by the server, the first preliminary response message to the first user terminal and the second user terminal; and
and displaying, by the first user terminal and the second user terminal, the first preliminary response message in a second area of the first chat room.
상기 제1 연관 데이터를 획득하는 단계는,
상기 제2 사용자 단말에 대응되는 개인 정보 및 과거 대화 히스토리를 획득하는 단계;
상기 획득된 개인 정보, 과거 대화 히스토리 및 상기 키워드를 바탕으로 상기 제1 연관 데이터를 획득하는 단계;
상기 제1 연관 데이터가, 제3 사용자 단말로부터 수신한 연관 데이터인 경우, 상기 서버가, 상기 제1 사용자 단말, 상기 제2 사용자 단말 및 상기 제3 사용자 단말을 포함하는 제2 채팅방으로 초대하는 단계; 및
상기 서버가, 상기 제2 채팅방을 통해 수집된 상기 제2 사용자 단말 및 상기 제3 사용자 단말의 대화 내용을 획득하는 단계;를 포함하는 제어 방법.4. The method of claim 3,
The step of obtaining the first related data includes:
obtaining personal information and past conversation history corresponding to the second user terminal;
acquiring the first related data based on the acquired personal information, past conversation history, and the keyword;
Inviting, by the server, to a second chat room including the first user terminal, the second user terminal, and the third user terminal when the first related data is the related data received from the third user terminal ; and
Control method comprising a; obtaining, by the server, the conversation contents of the second user terminal and the third user terminal collected through the second chat room.
상기 제2 사용자 단말 및 상기 제3 사용자 단말의 대화 내용을 획득하는 단계는,
상기 서버가, 상기 제2 채팅방을 통해, 상기 제2 사용자 단말의 질의 정보를 획득하는 단계;
상기 서버가, 상기 질의를 분석하여 제2 예비응답 메시지를 획득하는 단계;
상기 서버가, 상기 제2 예비응답 메시지의 보안 등급을 획득하는 단계; 및
상기 제2 예비응답 메시지의 보안 등급이 기 설정된 등급 초과인 경우, 상기 서버가, 상기 제2 예비응답 메시지를 상기 제1 채팅방에 출력하는 단계; 및
상기 제2 예비응답 메시지의 보안 등급이 기 설정된 등급 이하인 경우, 상기 서버가, 상기 제2 예비응답 메시지를 상기 제2 채팅방에 출력하는 단계;를 포함하는 제어 방법.
7. The method of claim 6,
The step of obtaining the conversation contents of the second user terminal and the third user terminal,
obtaining, by the server, query information of the second user terminal through the second chat room;
obtaining, by the server, a second preliminary response message by analyzing the query;
obtaining, by the server, a security level of the second preliminary response message; and
outputting, by the server, the second preliminary response message to the first chat room when the security level of the second preliminary response message exceeds a preset grade; and
and outputting, by the server, the second preliminary response message to the second chat room when the security level of the second preliminary response message is less than or equal to a preset grade.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190169687A KR102383926B1 (en) | 2019-12-18 | 2019-12-18 | Control method, device and program of chatbot system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190169687A KR102383926B1 (en) | 2019-12-18 | 2019-12-18 | Control method, device and program of chatbot system |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20210078038A true KR20210078038A (en) | 2021-06-28 |
KR102383926B1 KR102383926B1 (en) | 2022-04-07 |
Family
ID=76608122
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020190169687A KR102383926B1 (en) | 2019-12-18 | 2019-12-18 | Control method, device and program of chatbot system |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102383926B1 (en) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101756261B1 (en) | 2016-04-06 | 2017-07-10 | 주식회사 에버건설 | Mentoring mediation service method for silvertown membership |
KR101998833B1 (en) * | 2018-12-10 | 2019-07-10 | 강원오픈마켓 주식회사 | Mentoring system |
KR20190123708A (en) * | 2019-10-24 | 2019-11-01 | 주식회사 카카오 | Server, device and method for providing instant messeging service by using relay chatbot |
-
2019
- 2019-12-18 KR KR1020190169687A patent/KR102383926B1/en active IP Right Grant
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101756261B1 (en) | 2016-04-06 | 2017-07-10 | 주식회사 에버건설 | Mentoring mediation service method for silvertown membership |
KR101998833B1 (en) * | 2018-12-10 | 2019-07-10 | 강원오픈마켓 주식회사 | Mentoring system |
KR20190123708A (en) * | 2019-10-24 | 2019-11-01 | 주식회사 카카오 | Server, device and method for providing instant messeging service by using relay chatbot |
Also Published As
Publication number | Publication date |
---|---|
KR102383926B1 (en) | 2022-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11397888B2 (en) | Virtual agent with a dialogue management system and method of training a dialogue management system | |
CN111897941B (en) | Dialogue generation method, network training method, device, storage medium and equipment | |
RU2708941C1 (en) | Method and apparatus for recognizing segmented sentences for a human-machine intelligent question-answer system | |
CN111783902B (en) | Data augmentation, service processing method, device, computer equipment and storage medium | |
US11720759B2 (en) | Electronic apparatus, controlling method of thereof and non-transitory computer readable recording medium | |
US11776269B2 (en) | Action classification in video clips using attention-based neural networks | |
KR20180108400A (en) | Electronic apparatus, controlling method of thereof and non-transitory computer readable recording medium | |
CN111783903B (en) | Text processing method, text model processing method and device and computer equipment | |
US10902209B2 (en) | Method for content search and electronic device therefor | |
Wilks et al. | A prototype for a conversational companion for reminiscing about images | |
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 | |
KR20220154062A (en) | Methods and apparatus for training content recommendation and sequencing model, devices, storage media, and computer programs | |
WO2020154373A1 (en) | Neural network training using the soft nearest neighbor loss | |
GB2600817A (en) | Systems and methods for generating dynamic interface options using machine learning models | |
CN113590798A (en) | Dialog intention recognition, training method for model for recognizing dialog intention | |
CN113420136A (en) | Dialogue method, system, electronic equipment, storage medium and program product | |
CN117271745A (en) | Information processing method and device, computing equipment and storage medium | |
KR102506429B1 (en) | Control method of counseling work anlysing and delivering system | |
KR102383926B1 (en) | Control method, device and program of chatbot system | |
CN109002498B (en) | Man-machine conversation method, device, equipment and storage medium | |
CN113392640B (en) | Title determination method, device, equipment and storage medium | |
US20180114155A1 (en) | System and method for human interaction in cognitive decision making process | |
CN115398446A (en) | Machine learning algorithm search using symbolic programming | |
KR102326745B1 (en) | Control method, device and system for login of platform service | |
CN111897943A (en) | Session record searching method and device, electronic equipment and storage medium |
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 |