KR20220088276A - Cashe-based competition induction method and device for multi-chatbot system - Google Patents

Cashe-based competition induction method and device for multi-chatbot system Download PDF

Info

Publication number
KR20220088276A
KR20220088276A KR1020210071670A KR20210071670A KR20220088276A KR 20220088276 A KR20220088276 A KR 20220088276A KR 1020210071670 A KR1020210071670 A KR 1020210071670A KR 20210071670 A KR20210071670 A KR 20210071670A KR 20220088276 A KR20220088276 A KR 20220088276A
Authority
KR
South Korea
Prior art keywords
question
user
chatbot
cache memory
response
Prior art date
Application number
KR1020210071670A
Other languages
Korean (ko)
Inventor
김두현
지르갈체첵 바타르조릭
오조다 마흐카모바
Original Assignee
건국대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 건국대학교 산학협력단 filed Critical 건국대학교 산학협력단
Publication of KR20220088276A publication Critical patent/KR20220088276A/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/332Query formulation
    • G06F16/3325Reformulation based on results of preceding query
    • G06F16/3326Reformulation based on results of preceding query using relevance feedback from the user, e.g. relevance feedback on documents, documents sets, document terms or passages

Abstract

멀티 챗봇 시스템의 만족도 개선을 위한 캐시 기반의 경쟁 유도 방법 및 장치가 개시된다. 다양한 실시예들에 따른, 멀티 챗봇 서비스를 중개하는 중개 장치의 동작 방법은, 사용자 단말로부터 사용자의 질문을 수신하는 동작; 캐시 메모리에 저장된 Q&A 세트들에 상기 사용자의 질문과 일치하는 질문이 있는지 확인하는 동작; 상기 캐시 메모리에 대한 확인 결과에 기초하여 상기 사용자의 질문에 대한 정보가 컴페티션 보드에 있는지 확인하는 동작; 및 상기 캐시 메모리에 대한 확인 결과 및 상기 컴페티션 보드에 대한 대한 확인 결과 중에서 하나 이상에 기초하여 상기 Q&A 세트들 중 하나의 Q&A 세트의 응답 또는 챗봇으로부터 전달받은 응답을 상기 사용자 단말로 전송하는 동작을 포함할 수 있다.Disclosed are a method and apparatus for inducing competition based on a cache for improving satisfaction of a multi-chatbot system. According to various embodiments of the present disclosure, a method of operating an intermediary device for mediating a multi-chatbot service includes: receiving a user's question from a user terminal; checking whether a question matching the user's question exists in the Q&A sets stored in the cache memory; checking whether information on the user's question is in a competition board based on a result of checking the cache memory; and transmitting a response from one of the Q&A sets or a response received from the chatbot to the user terminal based on at least one of the check result for the cache memory and the check result for the competition board may include

Figure P1020210071670
Figure P1020210071670

Description

캐시 기반의 챗봇 간 경쟁 유도 방법 및 장치{CASHE-BASED COMPETITION INDUCTION METHOD AND DEVICE FOR MULTI-CHATBOT SYSTEM}CASHE-BASED COMPETITION INDUCTION METHOD AND DEVICE FOR MULTI-CHATBOT SYSTEM

아래 개시는 멀티 챗봇 시스템의 만족도 개선을 위한 캐시 기반의 챗봇 간 경쟁 유도 방법 및 장치가 개시된다.The following disclosure discloses a method and apparatus for inducing competition between cache-based chatbots for improving satisfaction of a multi-chatbot system.

인공지능(AI) 및 SNS(social network service)의 발달로 기존 메신저를 통해 대화하듯이 정보를 획득할 수 있는 챗봇 서비스가 활발히 도입되고 있다.With the development of artificial intelligence (AI) and social network service (SNS), chatbot services that can acquire information as if talking through an existing messenger are being actively introduced.

챗봇은 사용자가 기존에 사용하던 메신저를 통해 채팅하듯이 질문을 입력하면, 인공지능이 질문 내용을 분석하여 적절한 해답을 주는 대화형 메신저이다. 최근 국내외 유수 기업들은 고객지원 서비스에 챗봇을 도입해 고객 응대에 필요한 인력을 줄임과 동시에 24시간 빠르게 응답을 처리하여 고객지원 서비스의 품질 향상을 도모하고 있다. 이러한 챗봇 서비스는 공공 정보 제공, 음식 주문, 지도 정보 등 다양한 영역에 사용될 수 있다.A chatbot is a conversational messenger that provides an appropriate answer by analyzing the content of a question when a user inputs a question as if they were chatting through an existing messenger. Recently, leading domestic and foreign companies have introduced chatbots to customer support services to reduce the number of manpower required to respond to customers and to process responses 24 hours a day to improve the quality of customer support services. These chatbot services can be used in various fields, such as providing public information, ordering food, and providing map information.

한편, 챗봇은 각각의 제공되는 서비스에 따라 구별되어 생성되고, 각각의 챗봇은 해당 서비스와 관련된 질의에 대한 응답만을 제공할 수 있다. 챗봇의 보다 효율적은 활용을 위해 통합적으로 복수의 서비스에 대하여 응답을 제공하는 챗봇을 구현하는 것이 요구될 수 있다. 이러한 챗봇의 구현은 대용량의 저장 공간 및 네트워크 리소스가 요구되는 바, 실제적인 구현은 어려움이 뒤따를 수 있다.On the other hand, chatbots are separately created according to each provided service, and each chatbot can provide only a response to a query related to the corresponding service. In order to use the chatbot more efficiently, it may be required to implement a chatbot that integrally provides responses to a plurality of services. Implementation of such a chatbot requires a large amount of storage space and network resources, and practical implementation may be difficult.

위에서 설명한 배경기술은 발명자가 본원의 개시 내용을 도출하는 과정에서 보유하거나 습득한 것으로서, 반드시 본 출원 전에 일반 공중에 공개된 공지기술이라고 할 수는 없다.The background art described above is possessed or acquired by the inventor in the process of deriving the disclosure of the present application, and cannot necessarily be said to be a known technology disclosed to the general public prior to the present application.

다양한 실시예들은 멀티 챗봇 시스템의 만족도 개선을 위한 캐시 기반의 경쟁 유도 기술을 제공할 수 있다.Various embodiments may provide a cache-based competition induction technology for improving satisfaction of a multi-chatbot system.

다만, 기술적 과제는 상술한 기술적 과제들로 한정되는 것은 아니며, 또 다른 기술적 과제들이 존재할 수 있다.However, the technical tasks are not limited to the above-described technical tasks, and other technical tasks may exist.

다양한 실시예들에 따른, 멀티 챗봇 서비스를 중개하는 중개 장치의 동작 방법은, 사용자 단말로부터 사용자의 질문을 수신하는 동작; 캐시 메모리에 저장된 Q&A 세트들에 상기 사용자의 질문과 일치하는 질문이 있는지 확인하는 동작; 상기 캐시 메모리에 대한 확인 결과에 기초하여 상기 사용자의 질문에 대한 정보가 컴페티션 보드에 있는지 확인하는 동작; 및 상기 캐시 메모리에 대한 확인 결과 및 상기 컴페티션 보드에 대한 확인 결과 중에서 하나 이상에 기초하여 상기 Q&A 세트들 중 하나의 Q&A 세트의 응답 또는 챗봇으로부터 전달받은 응답을 상기 사용자 단말로 전송하는 동작을 포함할 수 있다.According to various embodiments of the present disclosure, a method of operating an intermediary device for mediating a multi-chatbot service includes: receiving a user's question from a user terminal; checking whether a question matching the user's question exists in the Q&A sets stored in the cache memory; checking whether information on the user's question is in a competition board based on a result of checking the cache memory; and transmitting a response from one of the Q&A sets or a response received from the chatbot to the user terminal based on at least one of the check result of the cache memory and the check result of the competition board can do.

상기 전송하는 동작은, 상기 사용자의 질문과 일치하는 질문이 상기 캐시 메모리에 있는 경우, 상기 Q&A 세트들 중에서 상기 일치하는 질문의 Q&A 세트의 응답을 상기 사용자 단말로 전송하는 동작; 및 상기 사용자의 질문과 일치하는 질문이 상기 캐시 메모리에 없는 경우, 복수의 챗봇들 중에서 어느 챗봇으로부터 전달받은 응답을 전송하는 동작을 포함할 수 있다.The transmitting may include: when a question matching the user's question is in the cache memory, transmitting a response of a Q&A set of the matching question from among the Q&A sets to the user terminal; and transmitting a response received from one of a plurality of chatbots when a question matching the user's question is not in the cache memory.

상기 복수의 챗봇들 중에서 어느 챗봇으로부터 전달받은 응답을 전송하는 동작은, 상기 사용자의 질문에 대한 정보가 상기 컴페티션 보드에 있는 경우, 상기 상기 컴페티션 보드에 기록된 상기 사용자의 질문에 대해 응답했던 챗봇에 상기 사용자의 질문에 대한 응답을 요청하는 동작; 및 상기 사용자의 질문에 대한 정보가 상기 컴페티션 보드에 없는 경우, 상기 사용자의 질문에 대한 응답을 임의의 챗봇에 요청하는 동작을 포함할 수 있다.The operation of transmitting the response received from any chatbot among the plurality of chatbots may include, when information on the user's question is in the competition board, responding to the user's question recorded on the competition board. requesting a response to the user's question from the chatbot; and when the information on the user's question is not in the competition board, requesting an arbitrary chatbot for a response to the user's question.

상기 컴페티션 보드에 기록된 상기 사용자의 질문에 대해 응답했던 챗봇은, 상기 컴페티션 보드에 기록된 상기 사용자의 질문에 대해 응답했던 하나 이상의 챗봇들 중에서 상기 사용자의 질문에 대해 획득한 호감 표시 누적치가 가장 높은 챗봇일 수 있다.The chatbot that responded to the user's question recorded on the competition board has the accumulated likeness display obtained for the user's question among one or more chatbots that responded to the user's question recorded on the competition board It may be the tallest chatbot.

상기 임의의 챗봇에 요청하는 동작은, 복수 회의 상기 사용자의 질문에 대해서 상기 복수의 챗봇들 모두에게 라운드로빈식으로 디스패치하여 응답을 요청하는 동작을 포함할 수 있다.The operation of requesting the arbitrary chatbot may include an operation of requesting a response by dispatching the plurality of chatbots to all of the plurality of chatbots in a round-robin manner to the user's question a plurality of times.

상기 방법은, 복수의 챗봇들 중에서 어느 챗봇으로부터 상기 사용자의 질문에 관련된 Q&A 세트들을 획득하는 동작; 및 캐싱 규칙에 기초하여 상기 사용자의 질문에 관련된 Q&A 세트들을 이용함으로써 상기 캐시 메모리를 업데이트하는 동작을 더 포함할 수 있다.The method includes: acquiring Q&A sets related to the user's question from any of a plurality of chatbots; and updating the cache memory by using Q&A sets related to the user's query based on a caching rule.

상기 어느 챗봇은, 상기 사용자의 질문에 대해 획득한 호감 표시 누적치가 가장 높은 챗봇일 수 있다.The certain chatbot may be the chatbot with the highest accumulated crush display obtained for the user's question.

다양한 실시예들에 따른, 멀티 챗봇 서비스를 중개하는 중개 장치는, Q&A 세트들을 저장하는 캐시 메모리; 및 사용자 단말로부터 사용자의 질문을 수신하고, 상기 캐시 메모리에 저장된 Q&A 세트들에 상기 사용자의 질문과 일치하는 질문이 있는지 확인하고, 상기 캐시 메모리에 대한 확인 결과에 기초하여 상기 사용자의 질문에 대한 정보가 컴페티션 보드에 있는지 확인하고, 상기 캐시 메모리에 대한 확인 결과 및 상기 컴페티션 보드에 대한 대한 확인 결과 중에서 하나 이상에 기초하여 상기 Q&A 세트들 중 하나의 Q&A 세트의 응답 또는 챗봇으로부터 전달받은 응답을 상기 사용자 단말로 전송하는 프로세서를 포함할 수 있다.According to various embodiments, an intermediary device for mediating a multi-chatbot service includes: a cache memory for storing Q&A sets; and receiving the user's question from the user terminal, checking whether there is a question matching the user's question in the Q&A sets stored in the cache memory, and information on the user's question based on the check result of the cache memory is in the competition board, and based on at least one of the check result for the cache memory and the check result for the competition board, the response of one of the Q&A sets or the response received from the chatbot It may include a processor for transmitting to the user terminal.

상기 프로세서는, 상기 사용자의 질문과 일치하는 질문이 상기 캐시 메모리에 있는 경우, 상기 Q&A 세트들 중에서 상기 일치하는 질문의 Q&A 세트의 응답을 상기 사용자 단말로 전송하고, 상기 사용자의 질문과 일치하는 질문이 상기 캐시 메모리에 없는 경우, 복수의 챗봇들 중에서 어느 챗봇으로부터 전달받은 응답을 전송할 수 있다.the processor, when the question matching the user's question is in the cache memory, sends a response of the Q&A set of the matching question from among the Q&A sets to the user terminal, the question matching the user's question If this cache is not in the cache memory, a response received from any chatbot among a plurality of chatbots may be transmitted.

상기 프로세서는, 상기 사용자의 질문에 대한 정보가 상기 컴페티션 보드에 있는 경우, 상기 상기 컴페티션 보드에 기록된 상기 사용자의 질문에 대해 응답했던 챗봇에 상기 사용자의 질문에 대한 응답을 요청하고, 상기 사용자의 질문에 대한 정보가 상기 컴페티션 보드에 없는 경우, 상기 사용자의 질문에 대한 응답을 임의의 챗봇에 요청할 수 있다.the processor, when the information on the user's question is in the competition board, requests a chatbot that has responded to the user's question recorded on the competition board for a response to the user's question; When the information on the user's question is not in the competition board, a response to the user's question may be requested from an arbitrary chatbot.

상기 컴페티션 보드에 기록된 상기 사용자의 질문에 대해 응답했던 챗봇은, 상기 컴페티션 보드에 기록된 상기 사용자의 질문에 대해 응답했던 하나 이상의 챗봇들 중에서 상기 사용자의 질문에 대해 획득한 호감 표시 누적치가 가장 높은 챗봇일 수 있다.The chatbot that responded to the user's question recorded on the competition board has the accumulated likeness display obtained for the user's question among one or more chatbots that responded to the user's question recorded on the competition board It may be the tallest chatbot.

상기 프로세서는, 복수 회의 상기 사용자의 질문에 대해서 상기 복수의 챗봇들 모두에게 라운드로빈식으로 디스패치하여 응답을 요청할 수 있다.The processor may request a response by dispatching the plurality of chatbots to all of the plurality of chatbots in a round-robin manner to the user's question a plurality of times.

상기 프로세서는, 복수의 챗봇들 중에서 어느 챗봇으로부터 상기 사용자의 질문에 관련된 Q&A 세트들을 획득하고, 캐싱 규칙에 기초하여 상기 사용자의 질문에 관련된 Q&A 세트들을 이용함으로써 상기 캐시 메모리를 업데이트할 수 있다.The processor may obtain Q&A sets related to the user's question from any of a plurality of chatbots, and update the cache memory by using the Q&A sets related to the user's question based on a caching rule.

상기 어느 챗봇은, 상기 사용자의 질문에 대해 획득한 호감 표시 누적치가 가장 높은 챗봇일 수 있다.The certain chatbot may be the chatbot with the highest accumulated crush display obtained for the user's question.

도 1은 다양한 실시예들에 따른 멀티 챗봇 시스템의 일 예를 나타낸다.
도 2는 중개 장치에서 이용하는 캐시 메모리 및 컴페티션 보드의 일 예를 나타낸다.
도 3은 중개 장치의 동작을 설명하기 위한 순서도의 일 예를 나타낸다.
도 4는 표 1의 케이스 1을 설명하기 위한 도면이다.
도 5는 표 1의 케이스 2를 설명하기 위한 도면이다.
도 6은 표 1의 케이스 3을 설명하기 위한 도면이다.
도 7은 디스패칭 규칙을 설명하기 위한 도면이다.
도 8은 캐싱 규칙 규칙을 설명하기 위한 도면이다.
도 9는 중개 장치의 일 예를 나타내는 개략적인 블록도이다.
1 illustrates an example of a multi-chatbot system according to various embodiments.
2 shows an example of a cache memory and a competition board used in the intermediary device.
3 shows an example of a flowchart for explaining the operation of the mediation device.
4 is a diagram for explaining Case 1 of Table 1. Referring to FIG.
5 is a diagram for explaining Case 2 of Table 1. Referring to FIG.
6 is a view for explaining Case 3 of Table 1. Referring to FIG.
7 is a diagram for explaining a dispatching rule.
8 is a diagram for explaining a caching rule rule.
9 is a schematic block diagram illustrating an example of an intermediary device.

실시예들에 대한 특정한 구조적 또는 기능적 설명들은 단지 예시를 위한 목적으로 개시된 것으로서, 다양한 형태로 변경되어 구현될 수 있다. 따라서, 실제 구현되는 형태는 개시된 특정 실시예로만 한정되는 것이 아니며, 본 명세서의 범위는 실시예들로 설명한 기술적 사상에 포함되는 변경, 균등물, 또는 대체물을 포함한다.Specific structural or functional descriptions of the embodiments are disclosed for purposes of illustration only, and may be changed and implemented in various forms. Accordingly, the actual implementation form is not limited to the specific embodiments disclosed, and the scope of the present specification includes changes, equivalents, or substitutes included in the technical spirit described in the embodiments.

제1 또는 제2 등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 이런 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 해석되어야 한다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.Although terms such as first or second may be used to describe various elements, these terms should be interpreted only for the purpose of distinguishing one element from another. For example, a first component may be termed a second component, and similarly, a second component may also be termed a first component.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다.When a component is referred to as being “connected to” another component, it may be directly connected or connected to the other component, but it should be understood that another component may exist in between.

단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설명된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함으로 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The singular expression includes the plural expression unless the context clearly dictates otherwise. In this specification, terms such as "comprise" or "have" are intended to designate that the described feature, number, step, operation, component, part, or combination thereof exists, and includes one or more other features or numbers, It should be understood that the possibility of the presence or addition of steps, operations, components, parts or combinations thereof is not precluded in advance.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 해당 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art. Terms such as those defined in commonly used dictionaries should be interpreted as having a meaning consistent with the meaning in the context of the related art, and should not be interpreted in an ideal or excessively formal meaning unless explicitly defined in the present specification. does not

이하, 실시예들을 첨부된 도면들을 참조하여 상세하게 설명한다. 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조 부호를 부여하고, 이에 대한 중복되는 설명은 생략하기로 한다.Hereinafter, embodiments will be described in detail with reference to the accompanying drawings. In the description with reference to the accompanying drawings, the same components are assigned the same reference numerals regardless of the reference numerals, and overlapping descriptions thereof will be omitted.

도 1은 다양한 실시예들에 따른 멀티 챗봇 시스템의 일 예를 나타내고, 도 2는 중개 장치에서 이용하는 캐시 메모리 및 컴페티션 보드의 일 예를 나타낸다.1 shows an example of a multi-chatbot system according to various embodiments, and FIG. 2 shows an example of a cache memory and a competition board used in an intermediary device.

다양한 실시예들에 따르면, 멀티 챗봇 시스템(10)은 시스템의 만족도 개선을 위한 캐시 기반의 경쟁 유도 방법을 수행할 수 있다. 멀티 챗봇 시스템(100)의 만족도는 사용자들이 챗봇이 제공하는 응답(예: 답변)에 대해 부여하는 호감 표시(예: '좋아요', Like it, Like 등)의 누적치를 의미할 수 있다. 멀티 챗봇 시스템(10)에 챗봇들의 호감 표시 랭킹을 운영하고 각 챗봇들로 하여금 호감 표시를 많이 받기 위하여 경쟁하는 체계를 만듦으로써 멀티 챗봇 시스템(10)에서 호감 표시 누적치의 상승을 유도하고자 할 수 있다.According to various embodiments, the multi-chatbot system 10 may perform a cache-based competition induction method for improving system satisfaction. The satisfaction level of the multi-chatbot system 100 may mean the cumulative value of the likeness (eg, 'Like', Like it, Like, etc.) that users give to the response (eg, answer) provided by the chatbot. In the multi-chatbot system 10, it is possible to induce an increase in the accumulation of favorable impressions in the multi-chatbot system 10 by operating a ranking of the chatbots and creating a system in which each chatbot competes to receive a lot of likes. .

다양한 실시예들에 따르면, 멀티 챗봇 시스템(10)에서는 챗봇들이 사용자들로부터 호감 표시를 많이 받기 위하여 경쟁하는 수단으로 캐시(예: 캐시 메모리)를 활용할 수 있다. 캐시 메모리에는 호감 표시 수치가 높은 응답이 보관될 수 있다. 일단, 캐시 메모리에 응답이 보관되게 되면 그 시점부터 들어오는 사용자의 질문에 대한 답변으로 활용되기 때문에 호감 표시를 더 많이 받아 랭킹을 올릴 수 있는 기회가 될 수 있다. 챗봇 개발자들 입장에서는 자신이 만든 챗봇의 호감 표시 랭킹을 끌어 올리기 위하여 우선적으로 자신의 답변이 캐시 메모리에 들어가도록 더 좋은 답변을 구비하고자 경쟁적으로 서로 노력하게 될 것이다. 이는 멀티 챗봇 시스템(10) 전체의 호감 표시 누적치를 상승시켜 만족도의 개선 유도를 만들어 낼 수 있다.According to various embodiments, in the multi-chatbot system 10, the chatbots may utilize a cache (eg, a cache memory) as a means of competing to receive a lot of likes from users. The cache memory may store a response with a high crush mark value. Once the response is stored in the cache memory, it can be used as an answer to the user's question coming from that point, so it can be an opportunity to increase the ranking by receiving more likes. From the point of view of chatbot developers, in order to raise the favorable ranking of their chatbot, they will compete with each other to provide better answers so that their answers are put into cache memory. This may increase the cumulative value of the display of liking of the multi-chatbot system 10 as a whole to induce improvement in satisfaction.

다양한 실시예들에 따르면, 멀티 챗봇 시스템(10)은 사용자 단말(100), 중개 장치(200)(예: 메타 챗봇), 및 복수의 챗봇들을 포함할 수 있다. 멀티 챗봇 시스템(10)은 사용자 단말(100)의 단말(예: 제1 레이어), 중개 장치(200)의 에지(또는 캐시)(예: 제2 레이어), 및 복수의 챗봇들의 챗봇(예: 제3 레이어)의 세 계층으로 나뉠 수 있다.According to various embodiments, the multi-chatbot system 10 may include a user terminal 100 , an intermediary device 200 (eg, a meta-chatbot), and a plurality of chatbots. The multi-chatbot system 10 includes a terminal (eg, a first layer) of the user terminal 100, an edge (or cache) (eg, a second layer) of the intermediary device 200, and a chatbot of a plurality of chatbots (eg: The third layer) can be divided into three layers.

제1 레이어에서, 사용자 단말(100)은 클라이언트 프로그램(client program)인 챗봇 인터페이스(예: 무카차)를 포함할 수 있다. 챗봇 인터페이스는 사용자 단말(100)과 멀티 챗봇 시스템(10)의 다른 구성(예: 중개 장치(200)) 간의 미들웨어 역할을 수행하며, 사용자와의 대화(예: 사용자 단말(100)과 챗봇 간의 주고받는 대화)를 관리할 수 있다. 사용자 단말(100)은 사용자 단말(100)에 설치된 챗봇 인터페이스를 통해 중개 장치(200)에 접속할 수 있다. 사용자는 사용자 단말(100)의 챗봇 인터페이스를 통해 질문(예: 질의, 쿼리)을 전송할 수 있다.In the first layer, the user terminal 100 may include a chatbot interface (eg, mukacha) that is a client program. The chatbot interface serves as a middleware between the user terminal 100 and other components (eg, the intermediary device 200) of the multi-chatbot system 10, and communicates with the user (eg, between the user terminal 100 and the chatbot). incoming conversations). The user terminal 100 may access the intermediary device 200 through a chatbot interface installed in the user terminal 100 . The user may transmit a question (eg, query, query) through the chatbot interface of the user terminal 100 .

사용자 단말(100)은 PC(Personal Computer), 데이터 서버, 또는 휴대용 장치로 구현될 수 있다. 휴대용 전자 장치는 랩탑(laptop) 컴퓨터, 이동 전화기, 스마트 폰(smart phone), 태블릿(tablet) PC, 모바일 인터넷 디바이스(mobile internet device(MID)), PDA(personal digital assistant), EDA(enterprise digital assistant), 디지털 스틸 카메라(digital still camera), 디지털 비디오 카메라(digital video camera), PMP(portable multimedia player), PND(personal navigation device 또는 portable navigation device), 휴대용 게임 콘솔(handheld game console), e-북(e-book), 스마트 디바이스(smart device)으로 구현될 수 있다. 이때, 스마트 디바이스는 스마트 워치(smart watch) 또는 스마트 밴드(smart band)로 구현될 수 있다.The user terminal 100 may be implemented as a personal computer (PC), a data server, or a portable device. Portable electronic devices include laptop computers, mobile phones, smart phones, tablet PCs, mobile internet devices (MIDs), personal digital assistants (PDAs), and enterprise digital assistants (EDAs). ), digital still camera, digital video camera, PMP (portable multimedia player), PND (personal navigation device or portable navigation device), handheld game console, e-book (e-book), may be implemented as a smart device. In this case, the smart device may be implemented as a smart watch or a smart band.

멀티 챗봇 시스템(10)(예: 중개 장치(200), 챗봇)이 질의에 대한 응답을 리턴하면, 사용자는 해당 응답에 대한 호감 표시를 사용자 단말(100)을 통해 중개 장치(220)로 전송할 수 있다. 이는 멀티 챗봇 시스템(10)(예: 중개 장치(200), 챗봇)의 만족도 개선을 위한 작업일 수 있다When the multi-chatbot system 10 (eg, the intermediary device 200, the chatbot) returns a response to the query, the user can transmit a liking for the response to the intermediary device 220 through the user terminal 100. have. This may be a task for improving the satisfaction of the multi-chatbot system 10 (eg, the intermediary device 200, the chatbot).

제2 레이어에서, 중개 장치(200)는 사용자 단말(100)와 복수의 챗봇들 사이의 중개 역할을 수행할 수 있다. 중개 장치(200)는 사용자 단말(100)의 사용자 질문의 내용에 따라 복수의 챗봇들 중 하나 이상의 챗봇(예: 질문에 가장 적절한 챗봇)을 선택하고, 선택된 챗봇에 질문을 제공할 수 있다. 중개 장치(200)는 선택된 챗봇으로부터 질문에 대한 응답을 수신하고 수신된 응답을 사용자에게 제공할 수 있다.In the second layer, the intermediary device 200 may perform an intermediary role between the user terminal 100 and a plurality of chatbots. The intermediary device 200 may select one or more chatbots (eg, a chatbot most appropriate to a question) from among a plurality of chatbots according to the content of the user's question of the user terminal 100 , and may provide a question to the selected chatbot. The intermediary device 200 may receive a response to the question from the selected chatbot and provide the received response to the user.

중개 장치(200)는 캐시 메모리 및 컴페티션 보드를 포함할 수 있다. 중개 장치(200)는 캐시 메모리 및 컴페티션 보드를 이용하여 사용자 질문에 대응하는 응답을 제공할 수 있다. 캐시 메모리에는 사용자의 질문과 관련된 Q&A 세트들(예: 챗봇에 자주 묻는 Q&A 세트들, 질문이 입력될 확률이 높은 Q&A 세트들)가 저장되어 있을 수 있고, 컴페티션 보드에는 사용자의 질문에 대한 정보가 기록될 수 있다. 도 2에 도시된 바와 같이, 사용자 질문(예: 도 2의 Q1~Qm)에 대한 정보는 사용자 질문에 대한 각 챗봇(예: 도 2의 C1~Cm)의 호감 표시 누적치(예: 도 2의 L1~L3) 및 사용자의 질문에 대한 각 챗봇의 응답 빈도 정보(예: 도 2의 Fq1~Fq3)를 포함할 수 있다.The mediation device 200 may include a cache memory and a competition board. The intermediary device 200 may provide a response corresponding to the user's question by using the cache memory and the competition board. The cache memory may store Q&A sets related to the user's question (eg, Q&A sets frequently asked by a chatbot, Q&A sets with a high probability of being asked a question), and information about the user's question in the competition board can be recorded. As shown in FIG. 2 , information on a user question (eg, Q1 to Qm in FIG. 2 ) is the accumulated value of display of liking for each chatbot (eg, C1 to Cm in FIG. 2 ) for the user question (eg, in FIG. 2 ) L1 to L3) and information on the response frequency of each chatbot to the user's question (eg, Fq1 to Fq3 in FIG. 2 ).

중개 장치(200)는 중개 장치(200)는 사용자 단말(100)로부터 수신한 사용자의 질문이 캐시 메모리에 있는지 확인할 수 있다. 중개 장치(200)는 사용자의 질문과 관련된 Q&A 세트들(예: 챗봇에 자주 묻는 Q&A 세트들)을 미리 캐싱(예: 프리페칭)하고 있을 수 있다. 중개 장치(200)는 사용자의 질문을 수신하는 경우, 사용자의 질문을 복수의 챗봇들 중 하나 이상의 챗봇에게 전달하기 전에, 캐시 메모리에 캐싱된 관련된 Q&A 세트들에 기초하여 사용자의 질문에 대한 응답을 사용자 단말(100)에게 제공할 수 있다.The intermediary device 200 may check whether the user's question received from the user terminal 100 is in the cache memory. The intermediary device 200 may be caching (eg, prefetching) Q&A sets (eg, Q&A sets frequently asked by the chatbot) related to the user's question in advance. When receiving the user's question, the intermediary device 200 responds to the user's question based on the related Q&A sets cached in the cache memory before forwarding the user's question to one or more of the plurality of chatbots. It may be provided to the user terminal 100 .

또한, 중개 장치(200)는 캐시 메모리에 캐싱된 관련된 Q&A 세트들로부터 사용자의 질문에 대한 응답을 제공할 수 없을 때(예: 사용자의 질의가 캐시 메모리에 없는 경우) 컴페티션 보드에서 사용자의 질문에 대해 복수의 챗봇들이 획득하고 있는 호감 표시 수(예: 누적치)를 확인할 수 있다. 중개 장치(200)는 복수의 챗봇들(310) 중에서 누적치가 가장 높은 챗봇에게 질문에 대한 응답을 요청하고, 해당 챗봇으로부터 수신된 응답을 사용자 단말(100)에게 제공할 수 있다.Also, when the intermediary device 200 is unable to provide an answer to the user's question from the relevant Q&A sets cached in the cache memory (eg, the user's query is not in the cache memory), the intermediary 200 may display the user's question in the competition board. You can check the number of favorable impressions (eg, cumulative value) that multiple chatbots are acquiring. The intermediary device 200 may request a response to a question from the chatbot with the highest accumulated value among the plurality of chatbots 310 , and provide the response received from the chatbot to the user terminal 100 .

캐시 메모리 및 컴페티션 보드의 역할을 고려할 때, 중개 장치(200)에 수신된 사용자의 질문에 대하여 캐시 메모리 및 컴페티션 보드의 정보 간에는 [표 1]과 같이 세 가지 케이스가 존재할 수 있다. 표 1의 세 가지 케이스에 대한 설명은 도 4 내지 도 6을 참조하여 상세하게 설명하도록 한다.When considering the roles of the cache memory and the competition board, there may be three cases as shown in [Table 1] between the information of the cache memory and the competition board with respect to the user's question received by the intermediary device 200 . The description of the three cases in Table 1 will be described in detail with reference to FIGS. 4 to 6 .

[표 1][Table 1]

Figure pat00001
Figure pat00001

제3 레이어에서, 챗봇은 사용자의 질문(예: 질의, 쿼리)에 대한 질문 데이터를 분석하여 질문에 적합한 응답을 제공할 수 있다. 챗봇은 질문과 질문에 대응하는 응답 쌍인 Q&A 세트를 데이터베이스에 저장하고, 사용자(예: 사용자 단말(100))로부터 질문을 수신하는 경우마다 데이터베이스에서 질문에 대응되는 Q&A 세트를 검색하여 검색된 Q&A 세트로부터 응답을 사용자 단말(100)에게 제공하는 것이다. 각 챗봇은 모든 주제에 대해 응답을 제공할 수도 있지만, 대응되는 주제에 대한 질의에만 응답을 제공할 수 있도록 주제별로 존재할 수 있다. 복수의 챗봇들은 하나의 서버에 존재할 수 있지만, 이에 한정되는 것은 아니며, 복수의 서버에 산재해 존재할 수 있다.In the third layer, the chatbot can analyze the question data for the user's question (eg, query, query) to provide an appropriate response to the question. The chatbot stores a question and a Q&A set, which is a pair of responses corresponding to a question, in the database, and whenever a question is received from a user (eg, the user terminal 100), the chatbot searches the database for a Q&A set corresponding to the question, and from the searched Q&A set To provide a response to the user terminal (100). Each chatbot may provide responses for all topics, but may exist by topic to provide responses only to queries on the corresponding topic. A plurality of chatbots may exist in one server, but is not limited thereto, and may exist interspersed in a plurality of servers.

챗봇이 현재의 질문에 대한 응답을 제공할 때, 현재의 질문에 대한 응답과 현재 질문과 관련성이 있는 Q&A 세트들을 같이 제공할 수 있다. 이렇게 제공된 Q&A 세트들은 현재의 질문이 중개 장치(200)의 캐시 메모리에 저장될 때 함께 저장됨으로써, 추후 캐시 메모리의 hit율이 높아질 수 있다.When the chatbot provides an answer to the current question, it can provide both the answer to the current question and Q&A sets related to the current question. The Q&A sets provided in this way are stored together when the current question is stored in the cache memory of the intermediary device 200, so that the hit rate of the cache memory can be increased later.

도 3은 중개 장치의 동작을 설명하기 위한 순서도의 일 예를 나타낸다.3 shows an example of a flowchart for explaining the operation of the mediation device.

중개 장치(200)는 사용자 단말(100)로부터 사용자의 질문 Q를 수신할 수 있다.The intermediary device 200 may receive the user's question Q from the user terminal 100 .

중개 장치(200)는 사용자의 질문 Q이 캐시 메모리에 저장되어 있는지 확인하고, 사용자의 질문 Q에 대한 정보가 컴페티션 보드에 기록되어 있는지 확인할 수 있다.The intermediary device 200 may check whether the user's question Q is stored in the cache memory, and check whether information about the user's question Q is recorded on the competition board.

사용자의 질문이 캐시 메모리에 저장되어 있는 경우, 중개 장치(200)는 캐시 메모리에 캐싱된 관련된 Q&A 세트들에 기초하여 사용자의 질문 Q에 대한 응답을 사용자 단말(100)에게 바로 제공할 수 있다. 사용자의 질문 Q이 캐시 메모리에 저장되어 있지 않지만 사용자의 질문 Q에 대한 정보가 컴페티션 보드에 기록되어 있는 경우, 중개 장치(200)는 사용자의 질문 Q에 대해 호감 표시의 누적치가 가장 높은 챗봇에게 질문 Q에 대한 응답을 요청하고, 해당 챗봇으로부터 수신된 응답을 사용자 단말(100)에게 제공할 수 있다. 사용자의 질문 Q이 캐시 메모리에 저장되어 있지 않고 사용자의 질문 Q에 대한 정보도 컴페티션 보드에 기록되어 있지 않은 경우, 중개 장치(200)는 복수의 챗봇들 중 랜덤하게 챗봇에 질문 Q에 대한 응답을 요청하고, 해당 챗봇으로부터 수신된 응답을 사용자 단말(100)에게 제공할 수 있다.When the user's question is stored in the cache memory, the intermediary device 200 may directly provide a response to the user's question Q to the user terminal 100 based on the related Q&A sets cached in the cache memory. If the user's question Q is not stored in the cache memory, but information about the user's question Q is recorded in the competition board, the intermediary device 200 sends the user's question Q to the chatbot with the highest accumulated favoritism. A response to the question Q may be requested, and the response received from the corresponding chatbot may be provided to the user terminal 100 . If the user's question Q is not stored in the cache memory and information on the user's question Q is not recorded in the competition board, the intermediary device 200 randomly sends a response to the question Q among the plurality of chatbots. may be requested, and the response received from the corresponding chatbot may be provided to the user terminal 100 .

중개 장치(200)는 사용자 단말(100)에게 응답을 송신하면서 사용자에게 이에 대한 호감 표시 입력을 요청하고, 사용자가 입력한 호감 표시에 대한 정보를 수신할 수 있다.The intermediary device 200 may request the user to input a good feeling for this while transmitting a response to the user terminal 100 , and may receive information about the good feeling inputted by the user.

중개 장치(200)는 사용자가 입력한 호감 표시를 확인하고 컴페티션 보드에 사용자 질문 Q을 기록하고 사용자 질문 Q에 대한 정보를 기록 또는 업데이트할 수 있다. 사용자 질문 Q에 대한 정보는 응답에 대해 사용자로부터 전달받은 호감 표시와 사용자 질문 Q에 대한 응답 빈도(예: 응답 빈도 정보)를 포함할 수 있다.The intermediary device 200 may check the display of liking input by the user, record the user question Q on the competition board, and record or update information about the user question Q. The information on the user question Q may include an indication of a liking received from the user for the response and a response frequency (eg, response frequency information) for the user question Q.

도 4는 표 1의 케이스 1을 설명하기 위한 도면이다.4 is a diagram for explaining Case 1 of Table 1. Referring to FIG.

케이스 1은 현재 중개 장치(200)에 수신된 사용자의 질문 Q이 캐시 메모리에 저장(예: 등록)되어 있지 않고, 사용자의 질문 Q에 대한 정보가 컴페티션보드에 기록되어 있지 않는 것일 수 있다.Case 1 may be that the user's question Q currently received by the intermediary device 200 is not stored (eg, registered) in the cache memory, and information about the user's question Q is not recorded on the competition board.

사용자 단말(100)은 사용자의 질문 Q를 챗봇 인터페이스(예: 사용자 인터페이스)를 통해서 중개 장치(200)로 전송할 수 있다(410).The user terminal 100 may transmit the user's question Q to the intermediary device 200 through a chatbot interface (eg, a user interface) ( 410 ).

중개 장치(200)는 사용자의 질문 Q이 캐시 메모리에 저장되어 있는지 확인하고(420), 사용자의 질문 Q에 대한 정보가 컴페티션 보드에 기록되어 있는지 확인할 수 있다(430). 캐시 메모리에 사용자의 질문 Q이 저장되어 있지 않고 컴페티션보드에도 사용자의 질문 Q에 대한 정보가 기록되어 있지 않아서, 중개 장치(200)는 복수의 챗봇들 중 한 챗봇을 램덤하게 선정하여 사용자의 질문 Q을 전송할 수 있다(440).The intermediary device 200 may check whether the user's question Q is stored in the cache memory ( 420 ), and check whether information about the user's question Q is recorded in the competition board ( 430 ). Since the user's question Q is not stored in the cache memory and the information about the user's question Q is not recorded on the competition board, the intermediary device 200 randomly selects one chatbot from among the plurality of chatbots and asks the user's question. Q may be transmitted (440).

사용자의 질문 Q을 전달받은 챗봇은 해당 질문에 대한 응답 A을 중개 장치(200)로 리턴할 수 있다(450).The chatbot receiving the user's question Q may return a response A to the corresponding question to the intermediary device 200 ( 450 ).

중개 장치(200)는 전달받은 응답 A를 사용자 단말(100)로 전송할 수 있다(460).The intermediary device 200 may transmit the received response A to the user terminal 100 ( 460 ).

중개 장치(200)가 하나의 챗봇을 랜덤하게 선정하면 최초에 응답한 하나의 챗봇에 대한 호감 표시 값이 유효한 값이 되게 되어 계속해서 해당 챗봇에게만 기회가 제공될 수도 있다. 중개 장치(200)는 처음 N(예: N은 1이상의 자연수)회의 질문에 대해서 모든 챗봇에게 라운드로빈식으로 디스패치하여 공정하게 기회를 부여함으로써 이러한 불합리성을 개선할 수 있다. 이러한 동작을 부트업(Boot-up) 동작이라 할 수 있다. 부트업 동작에서는 어떤 챗봇의 응답이 품질이 좋은 지를 판단할 근거가 부족하므로 캐싱이 일어나지 않을 수 있다.When the intermediary device 200 randomly selects one chatbot, the likeness display value for one chatbot that initially responded becomes a valid value, so that an opportunity may be continuously provided only to the corresponding chatbot. The intermediary device 200 can improve this irrationality by giving a fair chance by dispatching all chatbots in a round-robin manner for the first N (eg, N is a natural number greater than or equal to 1) questions for the first N times. This operation may be referred to as a boot-up operation. In bootup behavior, caching may not occur because there is insufficient evidence to determine which chatbot's response is of good quality.

부트업 동작이 종료되면, 중개 장치(200)는 캐시 기능이 적용되기 시작하는 캐시온(Cache-on) 동작을 수행할 수 있다. 캐시온 동작 진입시에는 그 때까지 가장 높은 호감 표시 누적치를 획득한 챗봇에게 해당 질문과 관련성이 있는 n(예: n은 1이상의 자연수)개의 Q&A 세트를 전송해줄 것을 요청할 수 있다. 중개 장치(200)는 해당 요청에 따라 해당 챗봇이 보내온 n개를 포함한 총 n+1개의 Q&A 세트가 캐시 메모리에 남게 될지 여부를 결정할 수 있다. 중개 장치(200)는 이러한 결정을 캐싱 규칙(Caching Rule)에 기초하여 수행하며, 캐시의 크기 또는 캐시가 질문에 대해 캐싱할 수 있는 최대 개수를 K라 할 때 캐싱 규칙(Caching Rule)에 부합되는 정도가 높은 순으로 K(예: K는 1이상의 자연수)개의 Q&A 세트만 캐시 메모리에 저장할 수 있다.When the boot-up operation is finished, the intermediary device 200 may perform a cache-on operation in which the cache function starts to be applied. When entering the cash-on operation, it is possible to request the chatbot that has obtained the highest accumulation of favorable impressions up to that point to transmit n sets of Q&A (eg, n is a natural number greater than or equal to 1) related to the question. The intermediary device 200 may determine whether a total of n+1 Q&A sets, including n, sent by the corresponding chatbot, will remain in the cache memory according to the corresponding request. The intermediary device 200 performs this determination based on a caching rule, and when K is the size of the cache or the maximum number that the cache can cache for a query, it meets the caching rule. Only K Q&A sets (eg, K is a natural number greater than or equal to 1) can be stored in the cache memory in order of highest degree of precision.

사용자는 사용자 단말(100)을 통해 응답 A를 수신하면 이에 대한 호감 표시에 대해 On/Off또는 yes/no를 입력할 수 있다(470). 중개 장치(200)는 사용자가 입력한 호감 표시 정보에 기초하여 컴페티션 보드에 해당 질문 Q을 기록하고 응답 A에 대해 돌려받은 호감 표시와 빈도 정보를 기록 또는 업데이트할 수 있다(480). When the user receives the response A through the user terminal 100, the user may input On/Off or yes/no for displaying a good feeling for the response A (470). The intermediary device 200 may record the question Q on the competition board based on the crush information input by the user, and record or update the crush indication and frequency information returned for the response A ( 480 ).

이렇게 사용자는 질문 Q에 대한 응답 A을 얻고, 중개 장치(200)가 이와 관련성이 높은 Q&A 세트를 캐싱할지 여부를 결정하여 캐시 메모리를 업데이트하며, 컴페티션 보드에 대해 기록을 업데이트 함으로써 케이스1이 종료될 수 있다. In this way, the user gets the answer A to the question Q, the intermediary 200 decides whether to cache a set of Q&A that is highly relevant to it, updates the cache memory, and the case 1 ends by updating the record to the competition board. can be

도 5는 표 1의 케이스 2를 설명하기 위한 도면이다.5 is a diagram for explaining Case 2 of Table 1. Referring to FIG.

케이스2는 현재 중개 중치(200)에 수신된 사용자의 질문 Q이 캐시 메모리에 저장(예: 등록)되어 있고, 사용자의 질문 Q에 대한 정보가 컴페티션 보드에 기록되어 있는 것일 수 있다.Case 2 may be that the user's question Q currently received by the mediation center 200 is stored (eg, registered) in the cache memory, and information about the user's question Q is recorded on the competition board.

사용자 단말(100)은 사용자의 질문 Q를 챗봇 인터페이스(예: 사용자 인터페이스)를 통해서 중개 장치(200)로 전송할 수 있다(510). The user terminal 100 may transmit the user's question Q to the intermediary device 200 through a chatbot interface (eg, a user interface) ( 510 ).

중개 장치(200)는 사용자의 질문 Q이 캐시 메모리에 저장되어 있는지 확인하는데, 사용자의 질문 Q이 캐시 메모리에 저장되어 있어 사용자의 질문 Q에 대한 응답 A를 바로 회신할 수 있다(520).The intermediary device 200 checks whether the user's question Q is stored in the cache memory, and the user's question Q is stored in the cache memory, so that the answer A to the user's question Q may be immediately returned ( 520 ).

사용자는 사용자 단말(100)을 통해 응답 A를 수신하면 이에 대한 호감 표시(예: '좋아요')에 대해 On/Off 또는 yes/no를 입력할 수 있다(530). 중개 장치(200)는 사용자가 입력한 정보에 기초하여 컴페티션 보드에 해당 질문(예: 이번 질문)의 호감 표시에 대한 정보를 업데이트할 수 있다(540). When the user receives the response A through the user terminal 100, the user may input On/Off or yes/no for the display of liking for it (eg, 'Like') ( 530 ). The intermediary device 200 may update information on the display of liking for the corresponding question (eg, this question) on the competition board based on the information input by the user ( 540 ).

이렇게 사용자는 질문 Q에 대한 응답 A을 얻고, 해당 질문이 이미 중개 장치(200)의 캐시 메모리에 저장되어 있는 질문이므로 컴페티션 보드에서 호감 표시에 대한 정보(예: 호감 표시 누적치, 빈도 정보)만 업데이트되고 케이스2가 종료될 수 있다. In this way, the user gets the answer A to the question Q, and since the question is already stored in the cache memory of the intermediary device 200, only information about the crush mark in the competition board (eg, crush accumulation value, frequency information) It can be updated and case 2 can be closed.

중개 장치(200)가 이처럼 캐시 메모리에 있는 내용(예: 저장된 Q&A 세트들을)만으로 응답을 리턴한다면, 다른 챗봇에게는 기회가 돌아가지 않을 수도 있다. 중개 장치(200)는 캐시 메모리에 저장된 Q&A 세트들을 사용하지 않고 다른 챗봇에게도 일정량의 확률(예: e)만큼의 작은 확률로 기회가 돌아갈 수 있도록하여 순위가 역전될 수 있는 기회를 열어 주는 콜업 동작을 수행할 수 있다. 여기서, e는 epsilon의 약자로 이러한 정책을 epsilon-greedy policy라고도 부를 수 있다.If the intermediary device 200 returns a response only with the contents in the cache memory (eg, stored Q&A sets), the opportunity may not return to other chatbots. The intermediary device 200 does not use the Q&A sets stored in the cache memory, but allows the opportunity to return to other chatbots with a probability as small as a certain amount (eg, e), which opens an opportunity for the ranking to be reversed. can be performed. Here, e is an abbreviation of epsilon, and this policy may also be called an epsilon-greedy policy.

중개 장치(200)가 다른 챗봇에게도 기회를 부여하는 동작을 콜업(Call-up) 동작이라 부를 수 있다. 단, 콜업된 챗봇의 응답은 중개 장치(200)의 캐시 메모리에 저장되지 않을 수 있다. 캐시 메모리에는 항상 호감 표시(like)의 누적치가 가장 높은 챗봇의 내용만 기록될 수 있다. 콜업 동작은 현재 캐시되지 않은 다른 챗봇에게도 호감 표시(like)를 잘 받아 역전하여 캐시 메모리에 들어가는 기회를 부여하기 위한 동작이라고 볼 수 있다.An operation in which the intermediary device 200 grants an opportunity to another chatbot may be referred to as a call-up operation. However, the call-up response of the chatbot may not be stored in the cache memory of the intermediary device 200 . In the cache memory, only the content of the chatbot with the highest accumulated likes can always be recorded. The call-up action can be seen as an action to give other chatbots that are not currently cached a chance to receive a like and to enter the cache memory.

중개 장치(200)는 사용자 단말(100)로부터 사용자의 질문 Q이 수신되면 곧바로 사용자의 질문 Q에 대한 응답 A를 바로 리턴한 후, 즉시 컴페티션 보드의 호감 표시(like) 누적치를 검토하여 가장 높은 수치에 역전이 발생했는지 확인하고, 만약 역전이 일어났다면 캐시 메모리를 업데이트할 수 있다.When the user's question Q is received from the user terminal 100, the intermediary device 200 immediately returns a response A to the user's question Q, and then immediately reviews the like accumulation value of the competition board to obtain the highest You can check to see if a reversal has occurred in the number, and if so, you can update the cache memory.

업데이트를 위하여, 중개 장치(200)는 호감 표시(like) 누적치가 가장 높게 역전한 챗봇에게 현재 입력된 사용자 질문 Q의 응답 A 뿐만아니라 해당 질문과 관련성이 있는 n개의 Q&A 세트들을 전송해 줄 것을 요청할 수 있다. 즉, 중개 장치(200)는 사용자 질문 Q를 포함한 총 n+1개의 Q&A 세트들을 전송해 줄 것을 요청하는 것일 수 있다. 중개 장치(200)는 해당 요청에 따라 해당 챗봇이 보내오는 n+1개의 Q&A 세트들에 대하여 캐시 메모리에 남게 될지 여부를 결정할 수 있다. 중개 장치(200)는 이러한 결정을 캐싱 규칙(Caching Rule)에 기초하여 수행하며, 캐시의 크기 또는 캐시가 질문에 대해 캐싱할 수 있는 최대 개수를 K라 할 때 캐싱 규칙(Caching Rule)에 부합되는 정도가 높은 순으로 K개의 Q&A 세트만 캐시 메모리에 저장할 수 있다.For the update, the intermediary device 200 requests the chatbot with the highest inverted like accumulation value to transmit not only the response A of the currently input user question Q, but also n sets of Q&A related to the question. can That is, the mediation device 200 may request to transmit a total of n+1 Q&A sets including the user question Q. The intermediary device 200 may determine whether to remain in the cache memory for n+1 Q&A sets sent by the chatbot according to the corresponding request. The intermediary device 200 performs this determination based on a caching rule, and when K is the size of the cache or the maximum number that the cache can cache for a query, it meets the caching rule. Only K Q&A sets in the order of severity can be stored in the cache memory.

도 6은 표 1의 케이스 3을 설명하기 위한 도면이다.6 is a view for explaining Case 3 of Table 1. Referring to FIG.

케이스3은 현재 중개 장치(200)에 수신된 사용자의 질문 Q이 캐시 메모리에 저장(예: 등록)되어 있지 않고, 사용자의 질문 Q에 대한 정보가 컴페티션보드에 기록되어 있는 것일 수 있다.Case 3 may be that the user's question Q received by the intermediary device 200 is not stored (eg, registered) in the cache memory, and information about the user's question Q is recorded on the competition board.

중개 장치(200)가 캐시온 동작에 진입하였다 하더라도 해당 질문에 대한 응답 및 관련 Q&A 세트가 캐시 메모리에 저장되게 된다는 보장은 없을 수 있다. 캐시 메모리에 저장되는 것은 캐싱 규칙에 의하여 결정되는 것일 수 있다. 케이스 3은 캐시온 동작에 진입하였더라도 입력된 질문이 캐시 메모리에 없는 경우에 대한 대응 방법에 해당할 수 있다.Even if the intermediary device 200 enters the cache-on operation, there may be no guarantee that the answer to the corresponding question and the set of related Q&A will be stored in the cache memory. What is stored in the cache memory may be determined by a caching rule. Case 3 may correspond to a response method for a case in which the entered question is not in the cache memory even though the cache-on operation has been entered.

케이스 2에서도 설명된 바와 같이, 현재 캐싱된 내용이 호감 표시 누적치가 가장 높은 챗봇의 응답이 아닐 경우가 발생할 수 있다. 즉, 누적치 랭킹에 역전이 일어나는 경우가 발생할 수 있다. 이 경우에는 마치 캐시 메모리에 내용이 없는 것이나 다름없이 처리되게 되므로 케이스 3에 해당되는 것으로 간주할 수 있다.As described in Case 2, there may be a case where the currently cached content is not the response of the chatbot with the highest accumulated crush display. That is, a case in which a reversal occurs in the cumulative value ranking may occur. In this case, since it is processed as if there is no content in the cache memory, it can be regarded as case 3.

사용자 단말(100)은 사용자의 질문 Q를 챗봇 인터페이스(예: 사용자 인터페이스)를 통해서 중개 장치(200)로 전송할 수 있다(610). The user terminal 100 may transmit the user's question Q to the intermediary device 200 through a chatbot interface (eg, a user interface) ( 610 ).

중개 장치(200)는 캐시 메모리에 사용자의 질문 Q이 저장되어 있지 않지만 사용자의 질문 Q에 대한 정보를 컴페티션보드에서 확인할 수 있다(620). 중개 장치(200)는 호감 표시(like)의 누적치가 가장 큰 챗봇에게 응답 A를 요청하고(630), 응답 A을 전달받아(640) 사용자 단말(100)에 전송할 수 있다(650).The intermediary device 200 does not store the user's question Q in the cache memory, but may check information about the user's question Q on the competition board ( 620 ). The intermediary device 200 may request a response A from the chatbot having the largest accumulated likes ( 630 ), and receive the response A ( 640 ) and transmit it to the user terminal 100 ( 650 ).

사용자는 사용자 단말(100)을 통해 응답 A를 수신하면 이에 대한 호감 표시에 대해 On/Off 또는 yes/no를 입력할 수 있다(660). 중개 장치(200)는 사용자가 입력한 호감 표시 정보에 기초하여 컴페티션 보드에 해당 질문 Q에 대한 정보를 업데이트할 수 있다(670).When the user receives the response A through the user terminal 100, the user may input On/Off or yes/no for displaying a good feeling for the response A (660). The intermediary device 200 may update the information on the corresponding question Q on the competition board based on the good impression information input by the user ( 670 ).

상술한 과정을 마치면, 중개 장치(200)는 방금전 응답을 보내온 챗봇에게 관련성이 있는 n개의 Q&A 세트들을 전송해 줄 것을 요청할 수 있다. 중개 장치(200)는 해당 요청에 따라 해당 챗봇이 보내오는 n개의 Q&A 세트를 포함한 총 n+1개의 Q&A 세트들에 대하여 캐시 메모리에 남게 될지 여부를 결정할 수 있다. 중개 장치(200)는 이러한 결정을 캐싱 규칙(Caching Rule)에 기초하여 수행하며, 캐시의 크기 또는 캐시가 질문에 대해 캐싱할 수 있는 최대 개수가 K라 할 때 캐싱 규칙(Caching Rule)에 부합되는 정도가 높은 순으로 K개의 Q&A 세트만 캐시 메모리에 저장할 수 있다.After completing the above-described process, the intermediary device 200 may request the chatbot that has just sent a response to transmit n relevant Q&A sets. The intermediary device 200 may determine whether to remain in the cache memory for a total of n+1 Q&A sets including n Q&A sets sent by the chatbot according to the corresponding request. The intermediary device 200 performs this determination based on a caching rule, and when the size of the cache or the maximum number that the cache can cache for a query is K, the caching rule that meets the Only K Q&A sets in the order of severity can be stored in the cache memory.

이렇게 사용자는 질문 Q에 응답을 얻고, 중개 장치(200)는 이와 관련성이 높은 Q&A 세트를 캐싱할지 여부를 결정하여 캐시 메모리를 업데이트하며, 컴페티션 보드에 기록을 업데이트 함으로써 케이스 3가 종료될 수 있다.In this way, the user gets an answer to the question Q, the intermediary device 200 decides whether to cache a set of highly relevant Q&A, and updates the cache memory, and by updating the record on the competition board, case 3 can be closed. .

도 7은 디스패칭 규칙을 설명하기 위한 도면이다.7 is a diagram for explaining a dispatching rule.

컴페티션 보드에는 도 3가 같이 현재까지 입력되었던 사용자의 질문들에 대하여 응답의 기회를 한번이라도 얻었던 챗봇들이 각 응답 내용에 대하여 응답 기회를 얻은 횟수(예: 응답 빈도 정보)와 사용자들로부터 얻은 호감 표시 누적치가 기록되어 있을 수 있다.In the competition board, as shown in Fig. 3, the number of times (eg, response frequency information) that chatbots that have had a chance to respond to the user's questions that have been input so far got a chance to respond to each response content (eg, response frequency information) and the favorable feelings obtained from users A cumulative display value may be recorded.

여기서, 응답 횟수(예: 응답 빈도 정보) 대비 호감 표시 누적치 비율을 LRF(Like Frequency Ratio)라 하고 다음 수학식 1 과 같이 정의될 수 있다.Here, the ratio of the cumulative value of the likeness display to the number of responses (eg, response frequency information) is referred to as LRF (Like Frequency Ratio) and may be defined as in Equation 1 below.

[수학식 1] [Equation 1]

Figure pat00002
Figure pat00002

여기서, Accumulated_Like는 호감 표시 누적치를 의미하고, Answer_Frequency는 응답 횟수(예: 응답 빈도 정보)를 의미할 수 있다.Here, Accumulated_Like may mean an accumulated value of display of liking, and Answer_Frequency may mean the number of responses (eg, response frequency information).

중개 장치(200)에 사용자의 질문 Q이 입력되었다 가정한다. 만약, 해당 질문이 처음 입력된 경우라면 컴페티션 보드에 정보가 없어 LFR 값이 유효하지 않으므로, 중개 장치(200)는 복수의 챗봇들 중에서 한 챗봇을 램덤하게 선정하여 응답기회를 줄 수 있다(예: 케이스 1). 이렇게 할 경우 랜덤하게 선정되어 최초에 응답한 챗봇의 LFR만 유효한 값이 되게 되어 계속해서 해당 챗봇에게만 기회가 제공될 수 있다. 이에, 중개 장치(200)는 처음 N회의 질문에 대해서 모든 챗봇에게 라운드로빈식으로 디스패치하여 공정하게 기회를 부여하는 부트업(Boot-up) 동작을 수행함으로써 이러한 불합리성을 개선할 수 있다. 부트업 동작에서는 어떤 챗봇의 응답이 품질이 좋은 지를 판단할 근거가 부족하므로 캐시가 일어나지 않을 수 있다It is assumed that the user's question Q is input to the intermediary device 200 . If the corresponding question is entered for the first time, the LFR value is not valid because there is no information on the competition board. : Case 1). In this case, only the LFR of the chatbot that is randomly selected and responded initially becomes a valid value, so that only the chatbot can continue to be provided with an opportunity. Accordingly, the intermediary device 200 can improve this irrationality by performing a boot-up operation in which the first N questions are dispatched to all chatbots in a round-robin manner to give a fair opportunity. Cache may not occur in boot-up behavior because there is insufficient evidence to determine which chatbot response is of good quality.

부트업 동작이 종료된 이후에는 그때까지 LFR 값이 가장 높은 챗봇에게만 기회를 많이 주게 된다. 이에, 중개 장치(200)는 다른 챗봇에게도 일정량의 확률(예: e)만큼의 작은 화률로 기회가 돌아갈 수 있도록하여 순위가 역전될 수 있는 기회를 열어 주는 콜업 동작을 수행할 수 있다. After the bootup operation is finished, only the chatbot with the highest LFR value until then is given many opportunities. Accordingly, the intermediary device 200 may perform a call-up operation that opens an opportunity for the ranking to be reversed by allowing the other chatbot to return an opportunity with a small talk rate as much as a certain amount of probability (eg, e).

한편, 확률값 e는 상수로 고정될 수도 있겠지만, 경우에 따라서는 변수로 두어 챗봇 간에 호감 표시 값의 편차가 적으면 e 값을 크게하여 경쟁 상황을 도모해주고, 만약 가장 큰 호감 표시(like) 누적수와 그렇지 않는 호감 표시(like) 누적수들 간의 편차가 크면 역전될 경우가 적을 것으로 간주하여 e 값을 줄여나가는 가변적 방식을 채택할 수도 있을 것이다.On the other hand, the probability value e may be fixed as a constant, but in some cases, it is set as a variable and if there is little deviation in the liking display value between chatbots, the e value is increased to promote competition. If there is a large deviation between the accumulated number of likes and the like, a variable method of reducing the e value may be adopted, considering that the case of reversal is small.

부트업 동작 이후부터, 중개 장치(200)는 캐시 기능이 적용되기 시작하는 캐시온(Cache-on) 동작을 수행할 수 있다. 캐시온 동작은 가장 높은 호감 표시 누적치의 응답 및 관련 Q&A 세트들을 캐시 대상으로 삼는 것일 수 있다. 하지만 언제나 캐시 메모리에 저장되는 것은 아니며, 캐시 메모리에 캐싱 여부는 캐싱 규칙(caching rule)에 따를 수 있다.After the boot-up operation, the intermediary device 200 may perform a cache-on operation in which the cache function starts to be applied. The cache-on operation may be to cache the responses and associated Q&A sets with the highest crush marks accumulation. However, it is not always stored in the cache memory, and whether or not to be cached in the cache memory may follow a caching rule.

입력된 질문에 대한 응답이 캐시 메모리에 저장되어 있지 않을 경우, 중개 장치(200)는 해당 질문에 대하여 LFR이 가장 높은 챗봇에게 응답할 수 있는 기회를 줄 수 있다(예: 케이스 3). 응답을 마치면 중개 장치(200)는 방금전 응답을 보내온 챗봇에게 관련성이 있는 n개의 Q&A 세트들를 보내 줄 것을 요청할 수 있다. 중개 장치(200)는 이 요청에 따라 해당 챗봇이 보내오는 n개의 Q&A 세트들을 포함한 총 n+1개의 Q&A 세트들에 대하여 캐시에 남게 될지 여부를 결정할 수 있다. 중개 장치(200)는 이러한 결정을 캐싱 규칙(Caching Rule)에 기초하여 수행하며, 캐싱 규칙(Caching Rule)에 부합되는 정도가 높은 순으로 k(예: 해당 질의에 허용되는 캐시의 크기)개의 Q&A 세트만 캐시 메모리에 저장할 수 있다.If the response to the entered question is not stored in the cache memory, the intermediary device 200 may give the chatbot having the highest LFR for the question an opportunity to respond (eg, case 3). Upon completion of the response, the intermediary device 200 may request the chatbot that has just sent a response to send relevant n Q&A sets. The intermediary device 200 may determine whether to remain in the cache for a total of n+1 Q&A sets including n Q&A sets sent by the corresponding chatbot according to this request. The intermediary device 200 performs this determination based on a caching rule, and k (eg, the size of the cache allowed for the corresponding query) Q&A in the order of the highest degree of conformance to the caching rule. Only sets can be stored in cache memory.

입력된 질문에 대한 응답이 캐시 메모리에 들어 있을 경우, 중개 장치(200)는 그 응답을 단순히 리턴할 수 있다(예: 케이스 2). 중개 장치(200)는 그 후 즉시 컴페티션 보드의 호감 표시(like) 누적치를 검토하여 가장 높은 수치에 역전이 발생했는지 확인하여 만약 역전이 일어났다면 캐시 메모리를 업데이트할 수 있다. 이를 위하여, 중개 장치(200)는 호감 표시(like) 누적치가 가장 높게 역전한 챗봇에게 현재 입력된 질문의 응답 뿐만아니라 그 질문과 관련성이 있는 n개의 Q&A 세트, 즉, 총 n+1개의 Q&A 세트를 보내 줄 것을 요청할 수 있다. 중개 장치(200)는 이 요청에 따라 해당 챗봇이 보내오는 n+1개의 Q&A 세트들에 대하여 캐시 메모리에 남게 될지 여부를 결정할 수 있다. 중개 장치(200)는 이러한 결정을 캐싱 규칙(Caching Rule)에 기초하여 수행하며, 캐싱 규칙(Caching Rule)에 부합되는 정도가 높은 순으로 k개의 Q&A 세트만 캐시 메모리에 저장할 수 있다.When the response to the input question is in the cache memory, the intermediary device 200 may simply return the response (eg, case 2). Thereafter, the intermediary device 200 may immediately review the accumulated likes of the competition board to determine whether a reversal has occurred at the highest number, and if the reversal has occurred, the cache memory may be updated. To this end, the intermediary device 200 provides n Q&A sets that are related to the question as well as the response of the question currently input to the chatbot whose accumulated like accumulation is the highest, that is, a total of n+1 Q&A sets. You can request to send The intermediary device 200 may determine whether to remain in the cache memory for n+1 Q&A sets sent by the chatbot according to this request. The intermediary device 200 performs this determination based on a caching rule, and may store only k Q&A sets in the cache memory in the order of the degree of conformance to the caching rule (Caching Rule).

도 8은 캐싱 규칙 규칙을 설명하기 위한 도면이다.8 is a diagram for explaining a caching rule rule.

중개 장치(200)의 입장에서 볼 때 캐시 메모리에는 현재까지 입력된 질문들에 대하여 이에 대한 응답에 대한 사용자의 호감 표시 누적치가 가장 높은 챗봇의 응답을 캐시 메모리에 보관하고 있는 것이 가장 이상적일 수 있다. 이는 두가지 측면에서 문제가 있을 수 있다. 첫째는 그 질문과 연관성이 있는 Q&A 세트들도 적절한 개수가 캐싱되어야 한다는 것이고, 둘째는 캐시 메모리의 크기가 한정되어 있을 경우 그와 같이 연관성있는 Q&A 세트를 모두 캐싱할 수는 없다는 것이다. 이러한 문제를 감안하여 선택적 캐싱을 실시하는 방법이 필요하다.From the standpoint of the intermediary device 200, it may be ideal to store the response of the chatbot with the highest accumulated user's liking for the answers to the questions entered so far in the cache memory in the cache memory. . This can be problematic in two ways. First, the appropriate number of Q&A sets related to the question must also be cached. Second, if the size of the cache memory is limited, it is impossible to cache all such related Q&A sets. In consideration of this problem, a method for implementing selective caching is required.

현재 입력된 질문에 대한 Q&A 세트가 캐시 메모리에 캐시되어 있지 않았었다면(예: 케이스 3), 중개 장치(200)는 현재 응답을 제공하게 된 챗봇에게 해당 질문과 관련성이 높은 질의응답 쌍 n개를 전송해 줄 것을 요청할 수 있다. 그런 후, 중개 장치(200)는 이렇게 얻어진 n+1개의 Q&A 세트가 캐시 메모리에 저장할 수 있는지를 결정할 수 있다.If the Q&A set for the currently entered question has not been cached in the cache memory (eg, case 3), the intermediary device 200 sends n pairs of Q&A highly relevant to the question to the chatbot that is currently providing the answer. You can request it to be sent. Then, the intermediary device 200 may determine whether the thus obtained n+1 Q&A sets can be stored in the cache memory.

입력된 질문에 대한 Q&A 세트가 캐시 메모리에 들어 있을 경우(예: 케이스 2), 중개 장치(200)는 그 응답을 단순히 리턴할 수 있다. 그 후, 중개 장치(200)는 즉시 컴페티션 보드의 호감 표시 누적치를 검토하여 가장 높은 수치에 역전이 발생했는지 확인하여 만약 역전이 일어났다면 캐시 메모리를 업데이트할 수 있다. 이를 위하여 중개 장치(200)는 호감 표시(like) 누적치가 가장 높게 역전한 챗봇에게 현재 입력된 질문의 응답뿐만아니라 그 질문과 관련성이 있는 n개의 Q&A 세트, 즉, 총 n+1개의 Q&A 세트를 전송해줄 것을 요청할 수 있다. 중개 장치(200)는 이 요청에 따라 해당 챗봇이 보내오는 n+1개의 Q&A 세트에 대하여 캐시 메모리에 남게 될지 여부를 결정할 수 있다. When the Q&A set for the entered question is in the cache memory (eg, case 2), the intermediary device 200 may simply return the answer. Thereafter, the intermediary device 200 may immediately review the accumulated value of the display of liking of the competition board to determine whether a reversal has occurred at the highest value, and if the reversal has occurred, the cache memory may be updated. To this end, the intermediary device 200 sends n Q&A sets related to the question as well as the response of the currently input question to the chatbot whose accumulated like value is the highest, that is, a total of n+1 Q&A sets. You can ask for it to be sent. The intermediary device 200 may determine whether to remain in the cache memory for n+1 Q&A sets sent by the chatbot according to this request.

중개 장치(200)는 이상의 과정을 통해 얻어진 캐싱 대상의 Q&A 세트에 대하여 캐싱 여부를 결정할 수 있다. 이를 위하여 중개 장치(200)가 사용하는 가장 대표적인 캐싱 룰은 질문의 빈도수를 기반으로 하는 것일 수 있다. 질문의 빈도수란 도 2를 참고할 때 해당 질문에 대하여 각 챗봇이 응답한 횟수(예: 응답 빈도 정보)의 합으로 정의될 수 있다. 이를 QOF(Question Occurrence Frequency)라 부르며 질문의 QOF는 컴페티션 보드의 해당 질문 행에서 챗봇이 응답했던 횟수를 합산한 것과 동일할 수 있다.The mediation device 200 may determine whether to cache the Q&A set of the caching target obtained through the above process. For this, the most representative caching rule used by the intermediary device 200 may be based on the frequency of queries. The frequency of questions may be defined as the sum of the number of responses (eg, response frequency information) of each chatbot to the corresponding question when referring to FIG. 2 . This is called QOF (Question Occurrence Frequency), and the QOF of a question may be equal to the sum of the number of times the chatbot responded in the corresponding question row on the competition board.

중개 장치(200)는 방금전 얻어진 n+1개의 질문과 이미 캐시에 들어 있는 질문들을 통틀어 각 질문의 QOF를 산출하여 이를 기준으로 정렬할 수 있다. 캐시의 사이즈가 K라 하면 빈도수가 높은 순서로 K개의 Q&A 세트가 캐시 메모리에 남기게 될 수 있다.The mediation device 200 may calculate the QOF of each question from the n+1 questions just obtained and the questions already in the cache, and sort them based on this. If the size of the cache is K, K Q&A sets may be left in the cache memory in the order of the highest frequency.

도 9는 중개 장치의 일 예를 나타내는 개략적인 블록도이다.9 is a schematic block diagram illustrating an example of an intermediary device.

중개 장치(200)는 메모리(210), 프로세서(230), 및 캐시 메모리를 포함할 수 있다. 캐시 메모리는 프로세서(230) 내에 구현될 수도 있다.The intermediary device 200 may include a memory 210 , a processor 230 , and a cache memory. The cache memory may be implemented in the processor 230 .

메모리(210)는 프로세서(230)에 의해 실행가능한 인스트럭션들(예: 프로그램)을 저장할 수 있다. 예를 들어, 인스트럭션들은 프로세서(230)의 동작 및/또는 프로세서(230)의 각 구성의 동작을 실행하기 위한 인스트럭션들을 포함할 수 있다.The memory 210 may store instructions (eg, a program) executable by the processor 230 . For example, the instructions may include instructions for executing an operation of the processor 230 and/or an operation of each component of the processor 230 .

캐시 메모리는 도 1 내지 도 8을 참조하여 설명된 Q&A 세트들을 저장할 수 있다. Q&A 세트들이 프리페칭되어 캐시 메모리에 저장될 수 있다.The cache memory may store the Q&A sets described with reference to FIGS. 1 to 8 . Q&A sets may be prefetched and stored in cache memory.

프로세서(230)는 메모리(210)에 저장된 데이터를 처리할 수 있다. 프로세서(230)는 메모리(210)에 저장된 컴퓨터로 읽을 수 있는 코드(예를 들어, 소프트웨어) 및 프로세서(230)에 의해 유발된 인스트럭션(instruction)들을 실행할 수 있다.The processor 230 may process data stored in the memory 210 . The processor 230 may execute computer readable code (eg, software) stored in the memory 210 and instructions induced by the processor 230 .

프로세서(230)는 목적하는 동작들(desired operations)을 실행시키기 위한 물리적인 구조를 갖는 회로를 가지는 하드웨어로 구현된 데이터 처리 장치일 수 있다. 예를 들어, 목적하는 동작들은 프로그램에 포함된 코드(code) 또는 인스트럭션들(instructions)을 포함할 수 있다.The processor 230 may be a hardware-implemented data processing device having a circuit having a physical structure for executing desired operations. For example, desired operations may include code or instructions included in a program.

예를 들어, 하드웨어로 구현된 데이터 처리 장치는 마이크로프로세서(microprocessor), 중앙 처리 장치(central processing unit), 프로세서 코어(processor core), 멀티-코어 프로세서(multi-core processor), 멀티프로세서(multiprocessor), ASIC(Application-Specific Integrated Circuit), FPGA(Field Programmable Gate Array)를 포함할 수 있다.For example, a data processing device implemented as hardware includes a microprocessor, a central processing unit, a processor core, a multi-core processor, and a multiprocessor. , an Application-Specific Integrated Circuit (ASIC), and a Field Programmable Gate Array (FPGA).

프로세서(230)에 의해 수행되는 동작은 도 1 내지 도 8을 참조하여 설명한 중개 장치(200)의 동작과 실질적으로 동일할 수 있다. 이에, 상세한 설명은 생략하도록 한다.The operation performed by the processor 230 may be substantially the same as the operation of the intermediary apparatus 200 described with reference to FIGS. 1 to 8 . Accordingly, detailed description will be omitted.

이상에서 설명된 실시예들은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치, 방법 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 컨트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The embodiments described above may be implemented by a hardware component, a software component, and/or a combination of a hardware component and a software component. For example, the apparatus, methods, and components described in the embodiments may include, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate (FPGA) array), a programmable logic unit (PLU), a microprocessor, or any other device capable of executing and responding to instructions, may be implemented using a general purpose computer or special purpose computer. The processing device may execute an operating system (OS) and a software application running on the operating system. A processing device may also access, store, manipulate, process, and generate data in response to execution of the software. For convenience of understanding, although one processing device is sometimes described as being used, one of ordinary skill in the art will recognize that the processing device includes a plurality of processing elements and/or a plurality of types of processing elements. It can be seen that can include For example, the processing device may include a plurality of processors or one processor and one controller. Other processing configurations are also possible, such as parallel processors.

소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.Software may comprise a computer program, code, instructions, or a combination of one or more thereof, which configures a processing device to operate as desired or is independently or collectively processed You can command the device. The software and/or data may be any kind of machine, component, physical device, virtual equipment, computer storage medium or apparatus, to be interpreted by or to provide instructions or data to the processing device. , or may be permanently or temporarily embody in a transmitted signal wave. The software may be distributed over networked computer systems and stored or executed in a distributed manner. Software and data may be stored in a computer-readable recording medium.

실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 저장할 수 있으며 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. The method according to the embodiment may be implemented in the form of program instructions that can be executed through various computer means and recorded in a computer-readable medium. The computer readable medium may store program instructions, data files, data structures, etc. alone or in combination, and the program instructions recorded on the medium may be specially designed and configured for the embodiment, or may be known and available to those skilled in the art of computer software. have. Examples of the computer-readable recording medium include magnetic media such as hard disks, floppy disks and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic such as floppy disks. - includes magneto-optical media, and hardware devices specially configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine language codes such as those generated by a compiler, but also high-level language codes that can be executed by a computer using an interpreter or the like.

위에서 설명한 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 또는 복수의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The hardware devices described above may be configured to operate as one or a plurality of software modules to perform the operations of the embodiments, and vice versa.

이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 이를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.As described above, although the embodiments have been described with reference to the limited drawings, those of ordinary skill in the art may apply various technical modifications and variations based thereon. For example, the described techniques are performed in an order different from the described method, and/or the described components of the system, structure, apparatus, circuit, etc. are combined or combined in a different form than the described method, or other components Or substituted or substituted by equivalents may achieve an appropriate result.

그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents to the claims are also within the scope of the following claims.

Claims (15)

멀티 챗봇 서비스를 중개하는 중개 장치의 동작 방법에 있어서,
사용자 단말로부터 사용자의 질문을 수신하는 동작;
캐시 메모리에 저장된 Q&A 세트들에 상기 사용자의 질문과 일치하는 질문이 있는지 확인하는 동작;
상기 캐시 메모리에 대한 확인 결과에 기초하여 상기 사용자의 질문에 대한 정보가 컴페티션 보드에 있는지 확인하는 동작; 및
상기 캐시 메모리에 대한 확인 결과 및 상기 컴페티션 보드에 대한 대한 확인 결과 중에서 하나 이상에 기초하여 상기 Q&A 세트들 중 하나의 Q&A 세트의 응답 또는 챗봇으로부터 전달받은 응답을 상기 사용자 단말로 전송하는 동작
을 포함하는, 방법.
In the operating method of an intermediary device that mediates a multi-chatbot service,
receiving a user's question from the user terminal;
checking whether a question matching the user's question exists in the Q&A sets stored in the cache memory;
checking whether information on the user's question is in a competition board based on a result of checking the cache memory; and
Transmitting a response of one of the Q&A sets or a response received from the chatbot to the user terminal based on at least one of the verification result of the cache memory and the verification result of the competition board
A method comprising
제1항에 있어서,
상기 전송하는 동작은,
상기 사용자의 질문과 일치하는 질문이 상기 캐시 메모리에 있는 경우, 상기 Q&A 세트들 중에서 상기 일치하는 질문의 Q&A 세트의 응답을 상기 사용자 단말로 전송하는 동작; 및
상기 사용자의 질문과 일치하는 질문이 상기 캐시 메모리에 없는 경우, 복수의 챗봇들 중에서 어느 챗봇으로부터 전달받은 응답을 전송하는 동작
을 포함하는, 방법.
According to claim 1,
The transmitting operation is
transmitting, to the user terminal, a response of a Q&A set of the matching question from among the Q&A sets when a question matching the user's question is in the cache memory; and
Transmitting a response received from a chatbot among a plurality of chatbots when a question matching the user's question is not in the cache memory
A method comprising
제2항에 있어서,
상기 복수의 챗봇들 중에서 어느 챗봇으로부터 전달받은 응답을 전송하는 동작은,
상기 사용자의 질문에 대한 정보가 상기 컴페티션 보드에 있는 경우, 상기 상기 컴페티션 보드에 기록된 상기 사용자의 질문에 대해 응답했던 챗봇에 상기 사용자의 질문에 대한 응답을 요청하는 동작; 및
상기 사용자의 질문에 대한 정보가 상기 컴페티션 보드에 없는 경우, 상기 사용자의 질문에 대한 응답을 임의의 챗봇에 요청하는 동작
을 포함하는, 방법.
3. The method of claim 2,
The operation of transmitting a response received from one of the plurality of chatbots includes:
requesting a response to the user's question from a chatbot that responded to the user's question recorded on the competition board when the information about the user's question is in the competition board; and
When the information on the user's question is not in the competition board, requesting a response to the user's question to an arbitrary chatbot
A method comprising
제3항에 있어서,
상기 컴페티션 보드에 기록된 상기 사용자의 질문에 대해 응답했던 챗봇은,
상기 컴페티션 보드에 기록된 상기 사용자의 질문에 대해 응답했던 하나 이상의 챗봇들 중에서 상기 사용자의 질문에 대해 획득한 호감 표시 누적치가 가장 높은 챗봇인, 방법.
4. The method of claim 3,
The chatbot that responded to the user's question recorded on the competition board,
The method of claim 1, wherein the chatbot has the highest accumulated crush display obtained for the user's question among one or more chatbots that responded to the user's question recorded on the competition board.
제3항에 있어서,
상기 임의의 챗봇에 요청하는 동작은,
복수 회의 상기 사용자의 질문에 대해서 상기 복수의 챗봇들 모두에게 라운드로빈식으로 디스패치하여 응답을 요청하는 동작
을 포함하는, 방법.
4. The method of claim 3,
The operation of requesting the arbitrary chatbot is,
An operation of requesting a response by dispatching to all of the plurality of chatbots in a round-robin manner to the user's question a plurality of times
A method comprising
제1항에 있어서,
복수의 챗봇들 중에서 어느 챗봇으로부터 상기 사용자의 질문에 관련된 Q&A 세트들을 획득하는 동작; 및
캐싱 규칙에 기초하여 상기 사용자의 질문에 관련된 Q&A 세트들을 이용함으로써 상기 캐시 메모리를 업데이트하는 동작
을 더 포함하는, 방법.
According to claim 1,
acquiring Q&A sets related to the user's question from one of a plurality of chatbots; and
updating the cache memory by using Q&A sets related to the user's query based on caching rules
A method further comprising:
제6항에 있어서,
상기 어느 챗봇은,
상기 사용자의 질문에 대해 획득한 호감 표시 누적치가 가장 높은 챗봇인, 방법.
7. The method of claim 6,
Any of the above chatbots,
The method of claim 1, wherein the chatbot has the highest accumulated liking for the user's question.
하드웨어와 결합되어 제1항 내지 제7항 중 어느 하나의 항의 방법을 실행시키기 위하여 컴퓨터 판독 가능한 기록매체에 저장된 컴퓨터 프로그램.
A computer program stored in a computer-readable recording medium in combination with hardware to execute the method of any one of claims 1 to 7.
멀티 챗봇 서비스를 중개하는 중개 장치에 있어서,
Q&A 세트들을 저장하는 캐시 메모리; 및
사용자 단말로부터 사용자의 질문을 수신하고, 상기 캐시 메모리에 저장된 Q&A 세트들에 상기 사용자의 질문과 일치하는 질문이 있는지 확인하고, 상기 캐시 메모리에 대한 확인 결과에 기초하여 상기 사용자의 질문에 대한 정보가 컴페티션 보드에 있는지 확인하고, 상기 캐시 메모리에 대한 확인 결과 및 상기 컴페티션 보드에 대한 대한 확인 결과 중에서 하나 이상에 기초하여 상기 Q&A 세트들 중 하나의 Q&A 세트의 응답 또는 챗봇으로부터 전달받은 응답을 상기 사용자 단말로 전송하는 프로세서
를 포함하는, 중개 장치.
In the intermediary device for mediating multi-chatbot service,
a cache memory for storing Q&A sets; and
Receives a user's question from the user terminal, checks whether there is a question matching the user's question in the Q&A sets stored in the cache memory, and provides information on the user's question based on the result of checking the cache memory check whether it is in the competition board, and display the response of one of the Q&A sets or the response received from the chatbot based on at least one of the verification result of the cache memory and the verification result of the competition board A processor that transmits to a user terminal
Including, intermediary device.
제9항에 있어서,
상기 프로세서는,
상기 사용자의 질문과 일치하는 질문이 상기 캐시 메모리에 있는 경우, 상기 Q&A 세트들 중에서 상기 일치하는 질문의 Q&A 세트의 응답을 상기 사용자 단말로 전송하고,
상기 사용자의 질문과 일치하는 질문이 상기 캐시 메모리에 없는 경우, 복수의 챗봇들 중에서 어느 챗봇으로부터 전달받은 응답을 전송하는, 중개 장치.
10. The method of claim 9,
The processor is
when a question matching the user's question is in the cache memory, sending a response of a Q&A set of the matching question among the Q&A sets to the user terminal;
and, when a question matching the user's question is not in the cache memory, transmitting a response received from any chatbot among a plurality of chatbots.
제10항에 있어서,
상기 프로세서는,
상기 사용자의 질문에 대한 정보가 상기 컴페티션 보드에 있는 경우, 상기 상기 컴페티션 보드에 기록된 상기 사용자의 질문에 대해 응답했던 챗봇에 상기 사용자의 질문에 대한 응답을 요청하고,
상기 사용자의 질문에 대한 정보가 상기 컴페티션 보드에 없는 경우, 상기 사용자의 질문에 대한 응답을 임의의 챗봇에 요청하는, 중개 장치.
11. The method of claim 10,
The processor is
when the information about the user's question is in the competition board, requesting a response to the user's question from the chatbot that responded to the user's question recorded on the competition board;
When the information on the user's question is not in the competition board, the intermediary device for requesting a response to the user's question to an arbitrary chatbot.
제11항에 있어서,
상기 컴페티션 보드에 기록된 상기 사용자의 질문에 대해 응답했던 챗봇은,
상기 컴페티션 보드에 기록된 상기 사용자의 질문에 대해 응답했던 하나 이상의 챗봇들 중에서 상기 사용자의 질문에 대해 획득한 호감 표시 누적치가 가장 높은 챗봇인, 방법.
12. The method of claim 11,
The chatbot that responded to the user's question recorded on the competition board,
The method of claim 1, wherein the chatbot has the highest accumulated crush display obtained for the user's question among one or more chatbots that responded to the user's question recorded on the competition board.
제11항에 있어서,
상기 프로세서는,
복수 회의 상기 사용자의 질문에 대해서 상기 복수의 챗봇들 모두에게 라운드로빈식으로 디스패치하여 응답을 요청하는, 중개 장치.
12. The method of claim 11,
The processor is
Dispatch to all of the plurality of chatbots in a round robin manner to request a response to the user's query multiple times.
제9항에 있어서,
상기 프로세서는,
복수의 챗봇들 중에서 어느 챗봇으로부터 상기 사용자의 질문에 관련된 Q&A 세트들을 획득하고,
캐싱 규칙에 기초하여 상기 사용자의 질문에 관련된 Q&A 세트들을 이용함으로써 상기 캐시 메모리를 업데이트하는, 중개 장치.
10. The method of claim 9,
The processor is
obtaining Q&A sets related to the user's question from any one of a plurality of chatbots;
and updating the cache memory by using Q&A sets related to the user's query based on caching rules.
제14항에 있어서,
상기 어느 챗봇은,
상기 사용자의 질문에 대해 획득한 호감 표시 누적치가 가장 높은 챗봇인, 중개 장치.
15. The method of claim 14,
Any of the above chatbots,
An intermediary device, wherein the chatbot has the highest accumulated liking for the user's question.
KR1020210071670A 2020-12-18 2021-06-02 Cashe-based competition induction method and device for multi-chatbot system KR20220088276A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020200178130 2020-12-18
KR20200178130 2020-12-18

Publications (1)

Publication Number Publication Date
KR20220088276A true KR20220088276A (en) 2022-06-27

Family

ID=82246962

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210071670A KR20220088276A (en) 2020-12-18 2021-06-02 Cashe-based competition induction method and device for multi-chatbot system

Country Status (1)

Country Link
KR (1) KR20220088276A (en)

Similar Documents

Publication Publication Date Title
US11977568B2 (en) Building dialogue structure by using communicative discourse trees
US10839798B2 (en) Intent interpreter for a visual bot builder
US9880714B2 (en) Dynamic loading of contextual ontologies for predictive touch screen typing
US11693863B1 (en) Query completions
US9704175B2 (en) Conversation management systems
US10937060B2 (en) Intelligent location based notification
JP6595116B2 (en) Latency reduction
US8756178B1 (en) Automatic event categorization for event ticket network systems
US20150379074A1 (en) Identification of intents from query reformulations in search
US8639679B1 (en) Generating query suggestions
US20170039483A1 (en) Factorized models
US10846743B2 (en) Displaying content items based on user's level of interest in obtaining content
US10380124B2 (en) Searching data sets
US11341199B2 (en) System and method for delivery of content based on matching of user profiles with content metadata
US20150058136A1 (en) Attribute based coupon provisioning
US20160125080A1 (en) Accessing Special Purpose Search Systems
US10169711B1 (en) Generalized engine for predicting actions
JP6022651B2 (en) Method and system for providing search function to messenger and arranging search results, and recording medium
US9826092B2 (en) Method and system for call queue messaging
CN109075987A (en) Optimize digital assembly analysis system
KR20220088276A (en) Cashe-based competition induction method and device for multi-chatbot system
KR102440893B1 (en) Method and apparatus for improving response time in multi-layered chatbot services
CN113781084A (en) Questionnaire display method and device
US20160253763A1 (en) Triggered targeting
US10576381B2 (en) Method for performing game by using activity count

Legal Events

Date Code Title Description
E902 Notification of reason for refusal