KR20210078038A - Control method, device and program of chatbot system - Google Patents

Control method, device and program of chatbot system Download PDF

Info

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
Application number
KR1020190169687A
Other languages
Korean (ko)
Other versions
KR102383926B1 (en
Inventor
백기락
Original Assignee
강원오픈마켓 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 강원오픈마켓 주식회사 filed Critical 강원오픈마켓 주식회사
Priority to KR1020190169687A priority Critical patent/KR102383926B1/en
Publication of KR20210078038A publication Critical patent/KR20210078038A/en
Application granted granted Critical
Publication of KR102383926B1 publication Critical patent/KR102383926B1/en

Links

Images

Classifications

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

Abstract

Provided is a control method of a chatbot system. The control method of the chatbot system comprises: a step of receiving, by a server, a query from a second user terminal through a first chat room wherein a first user terminal and a second user terminal participate; a step of transmitting, by the server, the query to the first user terminal; a step of obtaining, by the server, a first preliminary response message by analyzing the query; and a step of transmitting, by the server, the first preliminary response message to at least one user terminal among the first user terminal and the second user terminal in which the first preliminary response message is in accordance with a preset condition. Therefore, the present invention is capable of having an effect of improving a user convenience.

Description

챗봇 시스템의 제어 방법, 장치 및 프로그램{CONTROL METHOD, DEVICE AND PROGRAM OF CHATBOT SYSTEM}Control method, device and program of chatbot system {CONTROL METHOD, DEVICE AND PROGRAM OF CHATBOT SYSTEM}

본 발명은 챗봇 시스템의 제어 방법, 장치 및 프로그램에 관한 것이다. 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.

등록특허공보 제10-1756261호 (2017.07.04 등록)Registered Patent Publication No. 10-1756261 (Registered on 2017.07.04)

본 발명이 해결하고자 하는 과제는 챗봇 시스템의 제어 방법, 장치 및 프로그램을 제공하는 것이다.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 server 10 , a first user terminal 20 , and a second user terminal 30 .

서버(10)는 제1 사용자 단말(20) 및 제2 사용자 단말(30)로 챗봇 서비스를 제공하기 위한 구성이다. 일 실시예로, 챗봇 서비스는 어플리케이션의 형태로 제1 사용자 단말(20) 및 제2 사용자 단말(30)로 제공될 수 있다.The server 10 is configured to provide a chatbot service to the first user terminal 20 and the second user terminal 30 . As an embodiment, the chatbot service may be provided to the first user terminal 20 and the second user terminal 30 in the form of an application.

서버(10)는 제1 사용자 단말(20) 및 제2 사용자 단말(30) 중 적어도 하나의 사용자 단말로부터 받은 질의를 분석하여 예비응답 메시지 및 연관 데이터를 획득하기 위하여 인공지능 모델을 이용할 수 있다.The server 10 may use an artificial intelligence model to obtain a preliminary response message and related data by analyzing a query received from at least one of the first user terminal 20 and the second user terminal 30 .

일 실시예로, 서버는 학습을 위한 질의 메시지, 질의 메시지에 대한 예비응답 메시지 및 질의 메시지에 대한 연관 데이터를 학습 데이터로 획득하여 인공지능 모델을 학습 시킬 수 있다. 구체적으로, 서버(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 server 10 may train the AI model to output a preliminary response message and related data by inputting a query message into the AI model.

나아가, 서버(10)는 챗봇을 사용하는 사용자로부터 수신한 질의 메시지 및 이에 대한 예비응답 메시지 및 연관 데이터 메시지를 추가로 획득하여 학습 데이터로 획득할 수 있다. 이 경우, 서버(10)는 범용성 있는 제1 인공지능 모델을 통해 모든 챗봇 사용자에 대한 답변을 생성할 수 있으며, 나아가, 개인화된 제2 인공지능 모델을 통해 특정 사용자에 대한 답변을 생성할 수 있다.Furthermore, the server 10 may additionally acquire a query message received from a user using the chatbot, a preliminary response message thereto, and a related data message as learning data. In this case, the server 10 may generate answers to all chatbot users through the first general purpose artificial intelligence model, and further, may generate answers to specific users through the personalized second artificial intelligence model. .

즉, 서버(10)는, 초기 설정된 임의의 학습 데이터, 각각의 사용자로부터 획득한 학습데이터는 제1 인공지능 모델의 학습 데이터로 활’D하되, 특정 사용자로부터 학습된 학습 데이터는 제2 인공지능 모델의 학습 데이터로 활용할 수 있다.That is, the server 10 acts as the training data of the first artificial intelligence model in which the initially set arbitrary learning data and the learning data obtained from each user'D, but the learning data learned from a specific user is the second artificial intelligence It can be used as training data for the model.

일 실시예로, 서버(10)는 특정 사용자에 대한 질의를 수신한 경우, 해당 질의를 입력값으로 제1 인공지능 모델 및 제2 인공지능 모델에 독립적으로 입력하여 출력값(즉, 예비응답 메시지 및 연관 데이터)을 획득하고, 제1 인공지능 모델을 통해 출력된 출력값 및 제2 인공지능 모델을 통해 출력된 출력값 중 적어도 하나의 출력값을 최종 출력값으로 획득할 수 있다. 예를 들어, 서버(10)는 제2 인공지능 모델을 통해 출력된 출력값의 정확도가 기 설정된 값 이하인 경우, 제1 인공지능 모델을 통해 출력된 출력값을 최종 출력값으로 획득하고, 제2 인공지능 모델을 통해 출력된 출력값의 정확도가 기 설정된 값 초과인 경우, 제2 인공지능 모델을 통해 출력된 출력값을 최종 출력값으로 획득할 수 있다. 상술한 방법을 통해, 서버(10)는 제2 인공지능 모델을 이용하여 개인화된 응답을 제공하되, 상대적으로 학습 데이터량이 부족하여 정확한 결과 출력이 보장되지 않는 제2 인공지능 모델을 제1 인공지능 모델을 통해 보완할 수 있다.In one embodiment, when the server 10 receives a query for a specific user, the server 10 independently inputs the query as an input value to the first AI model and the second AI model to output values (ie, preliminary response message and related data), and at least one of an output value output through the first artificial intelligence model and an output value output through the second artificial intelligence model may be obtained as a final output value. For example, when the accuracy of the output value output through the second artificial intelligence model is less than or equal to a preset value, the server 10 acquires the output value output through the first artificial intelligence model as a final output value, and the second artificial intelligence model When the accuracy of the output value output through the ? is greater than the preset value, the output value output through the second artificial intelligence model may be obtained as the final output value. Through the above-described method, the server 10 provides a personalized response using the second artificial intelligence model, but uses a second artificial intelligence model that does not guarantee accurate result output due to a relatively insufficient amount of learning data. This can be supplemented by the model.

한편, 본 발명에 따른 서버(10)는 제1 사용자 단말(20) 및 제2 사용자 단말(30) 중 적어도 하나의 사용자 단말로부터 수신한 질의를 분석하기 위하여, 자연어 이해부(Natural Language Understanding, NLU), 질의 관리 매니지먼트 모듈, 자연어 생성부(Natural Language Generator, NLG), 및 데이터 베이스를 포함할 수 있다.On the other hand, the server 10 according to the present invention analyzes a query received from at least one user terminal among the first user terminal 20 and the second user terminal 30, a natural language understanding unit (NLU) ), a query management management module, a natural language generator (NLG), and a database.

자연어 이해부는 수신한 질의를 바탕으로 엔티티(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 first user terminal 20 and the second user terminal 30, the type of related data transmitted according to the past conversation contents, the second It may be data received from the user terminal 30 . However, of course, in addition to the above data, the server 10 may store various data for determining data to be transmitted to the first user terminal 20 and the second user terminal 30 .

이때, 본 발명에 따른 인공지능 모델 학습데이터를 입력하여 학습된 합성곱 신경망(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 first user terminal 20 may be a terminal of a service provider for providing a service. Of course, according to an embodiment, the server 10 and the first user terminal 20 may be implemented as one device.

제2 사용자 단말(30)은 서버(10)로 질의를 하기 위한 사용자의 단말일 수 있다. 제2 사용자 단말(30)은 서버(10)로부터 제공된 챗봇 어플리케이션을 바탕으로 서버(10) 및 제1 사용자 단말(20)과 통신할 수 있으며, 구체적으로는, 서버(10)로부터 제공된 채팅방을 통해 서버(10) 및 제1 사용자 단말(20)과 통신할 수 있다. The second user terminal 30 may be a user terminal for making a query to the server 10 . The second user terminal 30 may communicate with the server 10 and the first user terminal 20 based on the chatbot application provided from the server 10 , and specifically, through a chat room provided from the server 10 . It can communicate with the server 10 and the first user terminal 20 .

일 실시예로, 제1 사용자 단말(20) 및 제2 사용자 단말(30)은 스마트폰(smartphone), 태블릿 PC(tablet personal computer), 이동 전화기(mobile phone), 영상 전화기, 전자책 리더기(e-book reader), 데스크탑 PC (desktop PC), 랩탑 PC(laptop PC), 넷북 컴퓨터(netbook computer), 워크스테이션(workstation), 서버, PDA(personal digital assistant), PMP(portable multimedia player)중 적어도 하나를 포함할 수 있다.In one embodiment, the first user terminal 20 and the second user terminal 30 are a smartphone, a tablet personal computer (PC), a mobile phone, a video phone, an e-book reader (e) -book reader), desktop PC (desktop PC), laptop PC (laptop PC), netbook computer (netbook computer), workstation (workstation), server, PDA (personal digital assistant), at least one of PMP (portable multimedia player) may include.

이하에서는 도 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 server 10 may receive a query from the second user terminal 30 through the first chat room in which the first user terminal 20 and the second user terminal 30 participate.

일 실시예로, 제2 사용자 단말(30)은, 챗봇 어플리케이션을 실행하여 생성된 제1 채팅방에 질의를 입력하고, 서버(10)는 제1 채팅방에 등록된 질의를 수신할 수 있다. In an embodiment, the second user terminal 30 may input a query into the first chat room created by executing the chatbot application, and the server 10 may receive the query registered in the first chat room.

단계 S120에서, 서버(10)는, 질의를 제1 사용자 단말(20)로 전송할 수 있다. 구체적으로, 서버(10)는 제2 사용자 단말(30)에 의해 생성된 질의를 제1 사용자 단말(20)의 챗봇 어플리케이션에 의해 생성된 제1 채팅방으로 전송할 수 있다.In step S120 , the server 10 may transmit a query to the first user terminal 20 . Specifically, the server 10 may transmit the query generated by the second user terminal 30 to the first chat room created by the chatbot application of the first user terminal 20 .

단계 S130에서, 서버(10)는, 질의를 분석하여 제1 예비응답 메시지를 획득할 수 있다.In step S130, the server 10 may obtain a first preliminary response message by analyzing the query.

이때, 예비응답 메시지는, 서버(10)에 의해 분석된 질의를 바탕으로 제2 사용자 단말(30)에게 제공하기 위한 메시지일 수 있다.In this case, the preliminary response message may be a message to be provided to the second user terminal 30 based on the query analyzed by the server 10 .

일 실시예로, 질의가 "디자인 의뢰 하고 싶어"인 경우, 서버(10)는 도 9에 도시된 바와 같이, "웹, 앱, 아이콘, UI/UX 디자인 중에 어느 것이요?"라는 메시지를 예비응답 메시지로 획득할 수 있다.In one embodiment, when the query is "I want to request a design", the server 10 pre-responds to the message "Which one is web, app, icon, or UI/UX design?" as shown in FIG. 9 . It can be obtained by message.

단계 S140에서, 서버(10)는, 제1 예비응답 메시지가 기 설정된 조건에 따라, 제1 예비응답 메시지를 제1 사용자 단말(20) 및 제2 사용자 단말(30) 중 적어도 하나의 사용자 단말로 전송할 수 있다.In step S140 , the server 10 transmits the first preliminary response message to at least one of the first user terminal 20 and the second user terminal 30 according to a condition that the first preliminary response message is preset. can be transmitted

후술하는 바와 같이, 기 설정된 조건은 제1 사용자 단말(20)이 서버(10)와 접속되어 있는지 여부일 수 있다. 일 실시예로, 제1 사용자 단말(20)이 서버(10)와 접속된 경우, 서버(10)는 예비응답 메시지를 제1 사용자 단말(20)로 전송하고, 그렇지 않은 경우, 서버(10)는 예비응답 메시지를 제2 사용자 단말(30)로 전송할 수 있다.As will be described later, the preset condition may be whether the first user terminal 20 is connected to the server 10 . In one embodiment, when the first user terminal 20 is connected to the server 10, the server 10 transmits a preliminary response message to the first user terminal 20, otherwise, the server 10 may transmit the preliminary response message to the second user terminal 30 .

도 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 server 10 may obtain related data by analyzing the query.

일 실시예로, 연관 데이터는, 제2 사용자 단말(30)의 질의와 관련된 데이터를 의미할 수 있다. 예를 들어, 연관 데이터는 도9의 제1 영역(910)에 도시된 바와 같이, 디자인 시안에 대한 파일을 의미할 수 있다.As an embodiment, the related data may mean data related to the query of the second user terminal 30 . For example, as shown in the first area 910 of FIG. 9 , the related data may mean a file for a design proposal.

단계 S220에서, 서버(10)는, 제1 사용자 단말(20) 및 제2 사용자 단말(30) 중 적어도 하나의 사용자 단말로 연관 데이터를 전송할 수 있다.In step S220 , the server 10 may transmit the related data to at least one of the first user terminal 20 and the second user terminal 30 .

후술하는 바와 같이, 서버(10)는 제1 사용자 단말(20)이 서버(10)와 접속되어 있지 않은 경우, 연관 데이터의 보안 등급에 따라, 연관 데이터를 제2 사용자 단말(30)로 전송할지 여부를 판단할 수 있다.As will be described later, when the first user terminal 20 is not connected to the server 10 , the server 10 transmits the related data to the second user terminal 30 according to the security level of the related data. can determine whether

한편, 본 발명의 다양한 실시예에 따라, 예비응답 메시지 및 연관 데이터는 사용자 질의에 대한 챗봇의 응답의 종류를 기준으로 분류될 수 있다.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 server 10 may acquire the additional query as preliminary response data. Also, when the chatbot's response to the user's query is an answer response, the server 10 may acquire the response response as related data.

이 경우, 서버(10)는 연관 데이터가 전송된 후 기 설정된 시간동안 제2 사용자 단말(30)의 추가 문의가 없는 경우, 대화가 종료된 것으로 판단하고, 최초 사용자 질의부터 마지막 연관데이터 전송까지의 사용자 질의, 예비응답 데이터 및 연관 데이터를 하나의 데이터 세트로 저장하여 관리할 수 있다.In this case, if there is no additional inquiry from the second user terminal 30 for a preset time after the related data is transmitted, the server 10 determines that the conversation has ended, and from the first user inquiry to the last related data transmission User queries, preliminary response data, and related data can be stored and managed as one data set.

도 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 server 10 may extract a keyword based on the query.

일 실시예로, 서버(10)는 사용자 질의를 형태소 분석하여 키워드를 추출할 수 있다. In one embodiment, the server 10 may extract a keyword by morphological analysis of the user's query.

또 다른 실시예로, 서버(10)는 사용자 질의를 자연어 이해부에 입력하여 질의에 대한 엔티티(entity) 및 질의의 의도(intent)와 관련된 태스크(task)를 획득하고, 획득된 태스크를 키워드로 판단할 수 있다. 이때, 질의의 의도(intent)와 관련된 태스크(task)란, 사용자 질의에 대한 응답을 위해 필요한 정보일 수 있다. 예컨대, 사용자 질의가 디자인을 문의하는 질의인 경우, 태스크는 디자인 조회일 수 있다. 또는, 사용자 질의가 견적서를 요청하기 위한 질의인 경우, 태스크는 견적서 생성 대상 및 해당 대상에 대한 견적 비용 조회일 수 있다.In another embodiment, the server 10 inputs a user query to the natural language understanding unit to obtain a task related to the entity for the query and the intent of the query, and uses the obtained task as a keyword. can judge In this case, the task related to the intent of the query may be information necessary for responding to the user's query. For example, if the user query is a query to inquire about a design, the task may be a design query. Alternatively, when the user query is a query for requesting an estimate, the task may be an estimate creation target and an estimate cost inquiry for the target.

단계 S320에서, 서버(10)는, 키워드에 대응되는 제1 연관 데이터를 서버(10)의 내부 DB에서 검색할 수 있다.In step S320 , the server 10 may search for the first related data corresponding to the keyword in the internal DB of the server 10 .

단계 S330에서, 서버(10)는, 키워드에 대응되는 제2 연관 데이터를 외부 서버(10)에서 검색할 수 있다.In step S330 , the server 10 may search the external server 10 for second related data corresponding to the keyword.

즉, 서버(10)는 획득된 키워드를 서버(10)에 저장된 내부 DB 뿐만 아니라 외부 서버에서 검색하여 더욱 정확하고 풍부한 결과를 사용자에게 전달할 수 있다. 이때, 외부 서버는 포털 사이트, SNS 사이트, 웹사이트 등 다양한 사이트를 포함할 수 있다.That is, the server 10 may search for the acquired keywords not only in the internal DB stored in the server 10 but also in the external server to deliver more accurate and rich results to the user. In this case, the external server may include various sites such as a portal site, an SNS site, and a website.

단계 S340에서, 서버(10)는, 제1 연관 데이터 및 제2 연관 데이터 중 적어도 하나의 데이터를, 제1 사용자 단말(20) 및 제2 사용자 단말(30) 중 적어도 하나의 사용자 단말로 전송할 수 있다.In step S340 , the server 10 may transmit at least one of the first related data and the second related data to at least one of the first user terminal 20 and the second user terminal 30 . have.

단계 S350에서, 제2 사용자 단말(30)은, 서버(10)로부터 제1 연관 데이터 및 제2 연관 데이터 중 적어도 하나의 연관 데이터를 수신할 수 있다.In step S350 , the second user terminal 30 may receive at least one of the first related data and the second related data from the server 10 .

단계 S360에서, 제2 사용자 단말(30)은, 적어도 하나의 연관 데이터를 제1 채팅방의 제1 영역(910)에 표시할 수 있다.In step S360, the second user terminal 30 may display at least one piece of related data in the first area 910 of the first chat room.

이때, 제1 영역(910)에 표시되는 연관 데이터는, 제2 사용자 단말(30)이 다운로드 가능한 데이터 및 사용자 단말이 접속 가능한 url 정보일 수 있다.In this case, the related data displayed in the first area 910 may be data downloadable by the second user terminal 30 and url information accessible by the user terminal.

일 실시예로, 도 9에 도시된 바와 같이, 제2 사용자 단말(30)은 "강원오픈마켓_디자인 시안.pdf"를 연관 데이터로 획득한 경우, 해당 연관데이터를 제1 채팅방의 상단 영역인 제1 영역(910)에 표시할 수 있다. In one embodiment, as shown in FIG. 9 , when the second user terminal 30 acquires "Gangwon Open Market_Design Proposal.pdf" as related data, the related data is transferred to the upper area of the first chat room. It may be displayed in the first area 910 .

또 다른 실시예로, 연관 데이터가 사용자 단말이 접속 가능한 url 정보인 경우, 제2 사용자 단말(30)은, 서버(10)로부터 url 정보를 수신하여 제1 영역(910)에 표시할 수 있다.As another embodiment, when the related data is url information accessible to the user terminal, the second user terminal 30 may receive the url information from the server 10 and display it in the first area 910 .

또 다른 실시예로, 연관 데이터가 상술한 바와 같이, 챗봇의 추가 질의 응답이 아닌, 답변 응답에 대한 데이터인 경우, 제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 second user terminal 30 receives the response response from the server 10 and receives the first It may be displayed in the area 910 . For example, in the embodiment of Fig. 9, if the response is not an additional query to the user's query (which one is web, app, icon, or UI/UX design?), such as "design request is a service not supported", chatbot may be displayed in the first area 910 instead of the second area 920 .

도 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 server 10 may obtain a security level of the first related data.

구체적으로, 서버(10)의 내부 DB에서 획득된 제1 연관 데이터는, 외부 서버에서 획득된 제2 연관 데이터와 달리 보안의 필요성이 존재할 수 있다. 따라서, 서버(10)는 제1 연관 데이터의 보안 등급을 판단하고, 제1 연관 데이터를 제2 사용자 단말(30)로 전송할 지 여부를 판단할 수 있다. Specifically, the first related data obtained from the internal DB of the server 10 may need security unlike the second related data obtained from the external server. Accordingly, the server 10 may determine the security level of the first related data and determine whether to transmit the first related data to the second user terminal 30 .

단계 S420에서, 서버(10)는, 제2 사용자 단말(30)의 사용자 등급을 획득할 수 있다.In step S420 , the server 10 may acquire a user rating of the second user terminal 30 .

이때, 보안 등급이란, 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 second user terminal 30 in the past, the server 10 transmits the first related data to the second user regardless of the security level displayed as an absolute numerical value. It may be transmitted to the terminal 30 .

사용자 등급 또한 보안 등급에 대응되는 개념으로서, 절대적인 수치에 대한 사용자 등급일 수 있으나, 챗봇을 이용하는 사용자에 따라 상이하게 설정되는 상대적인 사용자 등급일 수 있음은 물론이다.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 server 10 may store and manage data for use as the first related data in a separate database. For example, the server 10 may include a first database, and data stored in the first database may be used to obtain the first associated data.

이때, 서버(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 server 10 may include acquiring data to be stored in the first database and adding an index indicating the source of the acquired data. For example, when the data is data obtained from an external server, the server 10 adds an external server index to the data, and when the data is data obtained from the second user terminal 30, the server 10 adds a second user terminal index to the corresponding data, and when the data is data obtained from the third user terminal, the server 10 adds a third user terminal index to the corresponding data, and the data is sent to the server 10 In the case of data obtained from the corresponding user terminal, the server 10 may add a manager index to the corresponding data. The above-described external server index, the second user terminal index, the third user terminal index, and the manager index are indexes that are distinct from each other and do not depend on their names. For example, the server 10 may set the external server index to 0000, the second user terminal index to 0001, the third user terminal index to 0010, and the administrator index to 0011.

단계 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 second user terminal 30 , the server 10 may transmit the first related data to the first user terminal 20 .

즉, 서버(10)는 아무런 검증 없이 제1 연관 데이터가 제2 사용자 단말(30)로 전송하는 것이 위험도가 높다고 판단되는 경우, 제1 연관 데이터를 제1 사용자 단말(20)로 전송할 수 있다.That is, when it is determined that the risk of transmitting the first related data to the second user terminal 30 without any verification is high, the server 10 may transmit the first related data to the first user terminal 20 .

단계 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 second user terminal 30 , the server 10 may transmit the first related data to the second user terminal 30 .

제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 second user terminal 30 may be interpreted literally when the security level and the user level are related to absolute values. For example, when the security level is level 2 and the user level is level 1 , the server 10 may transmit the first related data to the second user terminal 30 .

다만, 보안 등급 및 사용자 등급이 상대적으로 결정되는 경우, 제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 second user terminal 30 means that the second user terminal 30 is the first related data It may mean that you are entitled to receive For example, when the first related data is data received by the second user terminal 30 , the server 10 determines that the security level of the first related data is lower than the user level of the second user terminal 30 . and the server 10 may transmit the first related data to the second user terminal 30 . Of course, the above-described example is equally applied to the above-described step S430.

단계 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 second user terminal 30 is input from the first user terminal 20, the server 10 transmits the first related data to the second user terminal (30) can be transmitted.

즉, 상술한 단계 S430에서 제1 사용자 단말(20)이 제1 연관 데이터를 수신하고, 수신한 제1 연관 데이터를 제2 사용자 단말(30)로 전송함으로써, 서버(10)에 의해 동작할 수 없는 동작을 제1 사용자 단말(20)을 통해 수행할 수 있는 효과가 존재한다.That is, in the above-described step S430, the first user terminal 20 receives the first related data, and transmits the received first related data to the second user terminal 30, so that it can be operated by the server 10 There is an effect that an operation that is not there can be performed through the first user terminal 20 .

한편, 본 발명의 다양한 실시예에 따라, 제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 second user terminal 30 and the manager index is added to the first related data, the server 10 transmits the first related data to the first user terminal (20) can be transmitted.

예를 들어, 제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 server 10 and the first user terminal 20 determine whether to transmit the first related data to the second user terminal 30 . It may not be desirable to do Accordingly, the server 10 may perform the operation of step S430 only when the first related data is related data to which the manager index is added.

도 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 server 10 may determine whether the first user terminal 20 is connected to the server 10 .

제1 사용자 단말(20)이 서버(10)와 접속된 경우(S510-Y), 단계 S520에서, 서버(10)는, 제1 예비응답 메시지를 제1 사용자 단말(20)로 전송할 수 있다.When the first user terminal 20 is connected to the server 10 (S510-Y), in step S520 , the server 10 may transmit a first preliminary response message to the first user terminal 20 .

단계 S530에서, 제1 사용자 단말(20)은, 제1 예비응답 메시지를 바탕으로 제1 응답 메시지를 획득하여 서버(10)로 전송할 수 있다.In step S530 , the first user terminal 20 may obtain a first response message based on the first preliminary response message and transmit it to the server 10 .

즉, 서버(10)는 제1 사용자 단말(20)이 서버(20)와 접속된 경우에는, 제2 사용자 단말(30)에 대한 응답을 제1 사용자 단말(20)을 통해 진행할 수 있다. 이는, 채팅 및 고객 응대의 특성 상, 사용자가 직접 대화에 참여하는 것이 바람직한 경우가 있기 때문이다.That is, when the first user terminal 20 is connected to the server 20 , the server 10 may respond to the second user terminal 30 through the first user terminal 20 . This is because in some cases, it is desirable for the user to directly participate in the conversation due to the nature of chatting and customer service.

단계 S540에서, 서버(10)는, 제1 응답 메시지를 제2 사용자 단말(30)로 전송할 수 있다.In step S540 , the server 10 may transmit the first response message to the second user terminal 30 .

단계 S550에서, 제2 사용자 단말(30)은, 제1 응답 메시지를 제1 채팅방의 제2 영역(920)에 표시할 수 있다.In step S550 , the second user terminal 30 may display the first response message in the second area 920 of the first chat room.

제1 사용자 단말(20)이 서버(10)와 접속되지 않은 경우(S510-N), 단계 S560에서, 서버(10)는, 제1 예비응답 메시지를 제1 사용자 단말(20) 및 제2 사용자 단말(30)로 전송할 수 있다.If the first user terminal 20 is not connected to the server 10 (S510-N), in step S560, the server 10 sends a first preliminary response message to the first user terminal 20 and the second user It can be transmitted to the terminal 30 .

즉, 제1 사용자 단말(20)이 서버(10)와 접속되지 않은 경우(S510-N), 서버(10)는 실시간으로 수신되는 제2 사용자 단말(30)의 질의를 처리하기 위해 제1 사용자 단말(20)의 참여 없이 질의에 대한 응답을 제공할 수 있다.That is, when the first user terminal 20 is not connected to the server 10 (S510-N), the server 10 processes the query of the second user terminal 30 received in real time by the first user It is possible to provide an answer to a query without the participation of the terminal 20 .

단계 S570에서, 제1 사용자 단말(20) 및 제2 사용자 단말(30)은, 제1 예비응답 메시지를 제1 채팅방의 제2 영역(920)에 표시할 수 있다.In step S570 , the first user terminal 20 and the second user terminal 30 may display the first preliminary response message in the second area 920 of the first chat room.

한편, 본 발명의 다양한 실시예에 따라, 서버(10)는 제1 사용자 단말(20)이 서버(10)로 전송한 응답 메시지를 바탕으로 사용자 질의에 대한 응답을 획득하기 위한 인공지능 모델을 학습시킬 수 있다.Meanwhile, according to various embodiments of the present disclosure, the server 10 learns an artificial intelligence model for obtaining a response to a user query based on a response message transmitted by the first user terminal 20 to the server 10 . can do it

일 실시예로, 서버(10)는, 서버(10)가 제1 사용자 단말(20)로 전송한 질의에 대한 예비응답 메시지와, 제1 사용자 단말(20)로부터 수신한 응답 메시지를 비교하고, 비교 결과 예비응답 메시지와 응답 메시지가 상이한 경우, 제1 사용자 단말(20)이 전송한 응답 메시지를 학습 데이터로 인공지능 모델을 학습시킬 수 있다. 구체적으로, 서버(10)는 사용자 질의 및 제1 사용자 단말(20)이 전송한 응답 메시지를 학습 데이터로 수신하여 인공지능 모델을 학습시킬 수 있으며, 필요에 따라 연관 데이터가 학습 데이터로 추가될 수 있음은 물론이다.In one embodiment, the server 10 compares the preliminary response message to the query sent by the server 10 to the first user terminal 20 with the response message received from the first user terminal 20, As a result of the comparison, when the preliminary response message and the response message are different, the AI model may be trained using the response message transmitted by the first user terminal 20 as training data. Specifically, the server 10 may learn the artificial intelligence model by receiving the user query and the response message transmitted by the first user terminal 20 as training data, and related data may be added as training data as necessary. of course there is

즉, 제1 사용자 단말(20)은 제2 사용자 단말(30)에 대한 응답생성의 목적을 달성함과 함께 서버(10)의 인공지능 모델을 업데이트하기 위한 학습 데이터를 획득함으로써, 서버(10)의 응답 생성을 향상시킬 수 있는 새로운 효과가 존재한다.That is, the first user terminal 20 achieves the purpose of generating a response to the second user terminal 30 and obtains learning data for updating the artificial intelligence model of the server 10, so that the server 10 There is a new effect that can improve the response generation of

도 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 server 10 may acquire personal information and past conversation history corresponding to the second user terminal 30 .

단계 S620에서, 서버(10)는, 획득된 개인 정보, 과거 대화 히스토리 및 키워드를 바탕으로 제1 연관 데이터를 획득할 수 있다.In step S620 , the server 10 may acquire first related data based on the acquired personal information, past conversation history, and keywords.

일 실시예로, 서버(10)는 제2 사용자 단말(30)의 과거 대화 내용을 바탕으로 제1 연관 데이터를 획득할 수 있다. 예를 들어, 제2 사용자 단말(30)의 질의가 과거 수행한 질의와 유사한 경우, 서버(10)는 과거 질의 내용 및 답변 내용을 바탕으로 제1 연관 데이터를 획득할 수 있다.In an embodiment, the server 10 may acquire the first related data based on the past conversation contents of the second user terminal 30 . For example, when the query of the second user terminal 30 is similar to a query performed in the past, the server 10 may obtain the first related data based on the contents of the past query and the contents of the answer.

단계 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 server 10, including the first user terminal 20, the second user terminal 30 and the third user terminal You can invite them to the second chat room.

일 실시예로, 서버(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 server 10 determines the corresponding data as data of the third user terminal, and selects the third user terminal as the data of the third user terminal. 2 You can invite to chat room. Unlike the first chat room including the server 10 , the first user terminal 20 and the second user terminal 30 , the second chat room includes the server 10 , the first user terminal 20 , and the second user terminal (30) and a third user terminal may be included.

단계 S640에서, 서버(10)는, 제2 채팅방을 통해 수집된 제2 사용자 단말(30) 및 제3 사용자 단말의 대화 내용을 획득할 수 있다.In step S640, the server 10 may obtain the conversation contents of the second user terminal 30 and the third user terminal collected through the second chat room.

도 8에서 후술하는 바와 같이, 서버(10)는 제2 사용자 단말(30) 및 제3 사용자 단말의 대화 내용을 바탕으로 제2 사용자 단말(30) 및 제3 사용자 단말 중 적어도 하나의 단말에 대화에 대한 응답을 제공할 수 있다.As will be described later in FIG. 8 , the server 10 communicates with at least one of the second user terminal 30 and the third user terminal based on the conversation contents of the second user terminal 30 and the third user terminal. can provide a response.

구체적으로, 서버(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 second user terminal 30 participate, there may be a plurality of recipients of the conversation contents obtained in the second chat room.

일 실시예로, 서버(10)는 제2 사용자 단말(30) 및 제3 사용자 단말 중 적어도 하나의 단말로부터 수신한 대화의 수신자가 챗봇인 경우, 상술한 도 2 내지 도6의 방법을 통해 응답할 수 있다. In one embodiment, the server 10 responds through the method of FIGS. 2 to 6 when the receiver of the conversation received from at least one of the second user terminal 30 and the third user terminal is a chatbot. can do.

또 다른 실시예로, 제2 사용자 단말(30)로부터 수신한 대화의 수신자가 제3 사용자 단말인 경우 또는 그 반대의 경우, 서버(10)는 챗봇을 통해 대화의 발신자 또는 수신자를 보조하기 위한 응답을 생성할 수 있다. In another embodiment, when the receiver of the conversation received from the second user terminal 30 is the third user terminal or vice versa, the server 10 responds to assisting the sender or receiver of the conversation through the chatbot can create

예를 들어, 서버(10)는 초대된 제3 사용자 단말을 위해 서버(10)와 제2 사용자 단말(30)이 제1 채팅방에서 수행한 대화 내용의 일부를 요약하여 제3 사용자 단말로 제공할 수 있다. 또 다른 예로, 서버(10)는 제2 사용자 단말(30)과 제3 사용자 단말의 대화 내용을 분석하고, 필요한 연관 데이터를 제2 채팅방의 제1 영역에 제공할 수 있다. 즉, 제2 사용자 단말(30)과 제3 사용자 단말의 대화중 인 경우, 서버(10)는 예비응답 데이터 제공 없이 연관 데이터만을 제2 채팅방의 제1 영역에 제공할 수 있다.For example, the server 10 summarizes a part of the conversation performed by the server 10 and the second user terminal 30 in the first chat room for the invited third user terminal and provides it to the third user terminal. can As another example, the server 10 may analyze the conversation content between the second user terminal 30 and the third user terminal, and provide necessary related data to the first area of the second chat room. That is, when the second user terminal 30 and the third user terminal are having a conversation, the server 10 may provide only related data to the first area of the second chat room without providing preliminary response data.

도 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 server 10 may obtain query information of the second user terminal 30 through the second chat room.

본 발명의 다양한 실시예에 따라 서버(10)는, 제2 채팅방을 통해, 제2 사용자 단말(30) 및 제3 사용자 단말 중 적어도 하나의 질의 정보를 획득할 수 있다.According to various embodiments of the present disclosure, the server 10 may obtain query information of at least one of the second user terminal 30 and the third user terminal through the second chat room.

단계 S720에서, 서버(10)는, 질의를 분석하여 제2 예비응답 메시지를 획득할 수 있다.In step S720, the server 10 may obtain a second preliminary response message by analyzing the query.

일 실시예로, 제2 예비응답 메시지는 제2 사용자 단말(30)이 제3 사용자 단말로 제공할 수 있는 메시지일 수 있다.As an embodiment, the second preliminary response message may be a message that the second user terminal 30 may provide to the third user terminal.

단계 S730에서, 서버(10)는, 제2 예비응답 메시지의 보안 등급을 획득할 수 있다.In step S730, the server 10 may acquire the security level of the second preliminary response message.

단계 S740에서, 제2 예비응답 메시지의 보안 등급이 기 설정된 등급 초과인 경우, 서버(10)는, 제2 예비응답 메시지를 제1 채팅방에 출력할 수 있다.In step S740, when the security level of the second preliminary response message exceeds the preset level, the server 10 may output the second preliminary response message to the first chat room.

단계 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 server 10 may output the second preliminary response message to the second chat room.

일 실시예로, 서버(10)는 제2 예비응답 메시지가 제2 사용자 단말(30)의 개인 정보 또는 보안 정보 등을 포함하고 있는 경우, 제2 예비응답 메시지를 제2 채팅방에 출력하는 것이 부적절한 경우가 있다. 따라서, 서버(10)는 제2 예비응답 메시지의 보안 등급이 기 설정된 등급 초과인 경우, 서버(10)는, 제2 예비응답 메시지를 제1 채팅방에 출력하고, 2 예비응답 메시지의 보안 등급이 기 설정된 등급 이하인 경우, 서버(10)는, 제2 예비응답 메시지를 제2 채팅방에 출력할 수 있다.In one embodiment, the server 10, when the second preliminary response message includes personal information or security information of the second user terminal 30, it is inappropriate to output the second preliminary response message to the second chat room. There are cases. Therefore, the server 10, when the security level of the second preliminary response message exceeds the preset level, the server 10 outputs the second preliminary response message to the first chat room, and the security level of the second preliminary response message is If the level is lower than the preset level, the server 10 may output a second preliminary response message to the second chat room.

이때, 보안 등급은, 제2 사용자 단말(30)에 의해 설정될 수 있다. 일 실시예로, 제2 사용자 단말(30)은 보안의 필요성이 있는 키워드를 미리 설정할 수 있으며, 제2 예비응답 메시지에 해당 키워드가 존재하면, 서버(10)는 제2 예비응답 메시지를 제1 채팅방으로 출력할 수 있다.In this case, the security level may be set by the second user terminal 30 . As an embodiment, the second user terminal 30 may preset a keyword that requires security, and if the keyword exists in the second preliminary response message, the server 10 transmits the second preliminary response message to the first You can print it out in the chat room.

도 10은 본 발명의 일 실시예에 따른 장치의 구성도이다.10 is a block diagram of an apparatus according to an embodiment of the present invention.

프로세서(102)는 하나 이상의 코어(core, 미도시) 및 그래픽 처리부(미도시) 및/또는 다른 구성 요소와 신호를 송수신하는 연결 통로(예를 들어, 버스(bus) 등)를 포함할 수 있다.The processor 102 may include one or more cores (not shown) and a graphic processing unit (not shown) and/or a connection path (eg, a bus, etc.) for transmitting and receiving signals with and/or other components. .

일 실시예에 따른 프로세서(102)는 메모리(104)에 저장된 하나 이상의 인스트럭션을 실행함으로써, 도 2 내지 도 8과 관련하여 설명된 방법을 수행한다.The processor 102 according to an embodiment performs the method described with reference to FIGS. 2 to 8 by executing one or more instructions stored in the memory 104 .

예를 들어, 프로세서(102)는 메모리에 저장된 하나 이상의 인스트럭션을 실행함으로써 신규 학습용 데이터를 획득하고, 학습된 모델을 이용하여, 상기 획득된 신규 학습용 데이터에 대한 테스트를 수행하고, 상기 테스트 결과, 라벨링된 정보가 소정의 제1 기준값 이상의 정확도로 획득되는 제1 학습용 데이터를 추출하고, 상기 추출된 제1 학습용 데이터를 상기 신규 학습용 데이터로부터 삭제하고, 상기 추출된 학습용 데이터가 삭제된 상기 신규 학습용 데이터를 이용하여 상기 학습된 모델을 다시 학습시킬 수 있다. For example, the processor 102 obtains new training data by executing one or more instructions stored in the memory, performs a test on the acquired new training data by using the learned model, and performs the test result, labeling Extracting the first learning data in which the obtained information is obtained with an accuracy greater than or equal to a predetermined first reference value, deleting the extracted first learning data from the new learning data, and removing the new learning data from which the extracted learning data is deleted It is possible to retrain the learned model using

한편, 프로세서(102)는 프로세서(102) 내부에서 처리되는 신호(또는, 데이터)를 일시적 및/또는 영구적으로 저장하는 램(RAM: Random Access Memory, 미도시) 및 롬(ROM: Read-Only Memory, 미도시)을 더 포함할 수 있다. 또한, 프로세서(102)는 그래픽 처리부, 램 및 롬 중 적어도 하나를 포함하는 시스템온칩(SoC: system on chip) 형태로 구현될 수 있다. On the other hand, the processor 102 is a RAM (Random Access Memory, not shown) and ROM (Read-Only Memory: ROM) for temporarily and / or permanently storing a signal (or data) processed inside the processor 102. , not shown) may be further included. In addition, the processor 102 may be implemented in the form of a system on chip (SoC) including at least one of a graphic processing unit, a RAM, and a ROM.

메모리(104)에는 프로세서(102)의 처리 및 제어를 위한 프로그램들(하나 이상의 인스트럭션들)을 저장할 수 있다. 메모리(104)에 저장된 프로그램들은 기능에 따라 복수 개의 모듈들로 구분될 수 있다.The memory 104 may store programs (one or more instructions) for processing and controlling the processor 102 . Programs stored in the memory 104 may be divided into a plurality of modules according to functions.

본 발명의 실시예와 관련하여 설명된 방법 또는 알고리즘의 단계들은 하드웨어로 직접 구현되거나, 하드웨어에 의해 실행되는 소프트웨어 모듈로 구현되거나, 또는 이들의 결합에 의해 구현될 수 있다. 소프트웨어 모듈은 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항에 있어서,
상기 제어 방법은,
상기 서버가, 상기 질의를 분석하여 연관 데이터를 획득하는 단계; 및
상기 서버가, 상기 제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.
제2항에 있어서,
상기 연관 데이터를 획득하는 단계는,
상기 질의를 바탕으로 키워드를 추출하는 단계;
상기 키워드에 대응되는 제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.
제3항에 있어서,
상기 제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 예비응답 메시지를 상기 제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.
제3항에 있어서,
상기 제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.
제6항에 있어서,
상기 제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.
KR1020190169687A 2019-12-18 2019-12-18 Control method, device and program of chatbot system KR102383926B1 (en)

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)

* Cited by examiner, † Cited by third party
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
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