[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

KR102681147B1 - Method and apparatus for generating appropriate responses based on the user intent in an ai chatbot through retrieval-augmented generation - Google Patents

Method and apparatus for generating appropriate responses based on the user intent in an ai chatbot through retrieval-augmented generation Download PDF

Info

Publication number
KR102681147B1
KR102681147B1 KR1020230148322A KR20230148322A KR102681147B1 KR 102681147 B1 KR102681147 B1 KR 102681147B1 KR 1020230148322 A KR1020230148322 A KR 1020230148322A KR 20230148322 A KR20230148322 A KR 20230148322A KR 102681147 B1 KR102681147 B1 KR 102681147B1
Authority
KR
South Korea
Prior art keywords
flow
example sentence
server
query
sentence
Prior art date
Application number
KR1020230148322A
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 (주)유비커스
Priority to KR1020230148322A priority Critical patent/KR102681147B1/en
Application granted granted Critical
Publication of KR102681147B1 publication Critical patent/KR102681147B1/en

Links

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/334Query execution
    • G06F16/3347Query execution using vector based model
    • 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/338Presentation of query results
    • 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/36Creation of semantic tools, e.g. ontology or thesauri
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04817Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance using icons
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/289Phrasal analysis, e.g. finite state techniques or chunking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/02User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail using automatic reactions or user delegation, e.g. automatic replies or chatbot-generated messages

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Molecular Biology (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biophysics (AREA)
  • Signal Processing (AREA)
  • Medical Informatics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 명세서는 서버가 챗봇 사용자의 질의에 대한 답변 생성을 구현하기 위한 방법에 있어서, 상기 답변을 생성하기 위한 플로우를 생성하는 단계; 로서, 상기 플로우는 상기 질의와 관련된 대표 예문을 포함함; 거대 언어 모델(Large Language Model, LLM)에 상기 대표 예문에 근거하여, 예문 생성을 위한 프롬프트를 입력하는 단계; 상기 거대 언어 모델로부터, 상기 예문를 획득하는 단계; 및 상기 예문을 상기 플로우에 추가하는 단계;를 포함할 수 있다.This specification provides a method for a server to generate an answer to a chatbot user's inquiry, comprising: creating a flow for generating the answer; As, the flow includes representative example sentences related to the query; Entering a prompt for generating an example sentence based on the representative example sentence into a Large Language Model (LLM); Obtaining the example sentence from the large language model; and adding the example sentence to the flow.

Description

검색 증강 생성을 통한 인공지능 챗봇 사용자 의도에 적합한 답변 생성을 구현하기 위한 방법 및 장치 { METHOD AND APPARATUS FOR GENERATING APPROPRIATE RESPONSES BASED ON THE USER INTENT IN AN AI CHATBOT THROUGH RETRIEVAL-AUGMENTED GENERATION }Method and device for implementing answer generation appropriate for artificial intelligence chatbot user intent through search augmented generation { METHOD AND APPARATUS FOR GENERATING APPROPRIATE RESPONSES BASED ON THE USER INTENT IN AN AI CHATBOT THROUGH RETRIEVAL-AUGMENTED GENERATION }

본 명세서는 관리자가 업로드한 지식 문서로부터 챗봇 질의에 적합한 답변을 추출하여 문맥에 맞게 생성하는 방법 및 이를 위한 장치에 관한 것이다.This specification relates to a method and device for extracting answers suitable for chatbot queries from knowledge documents uploaded by an administrator and generating them according to the context.

현재, OpenAI가 개발한 생성형 AI 챗GPT가 전 세계적으로 큰 화두가 되고 있다. 그러나 이러한 모델의 주요 문제 중 하나는 질문의 맥락과 무관한 내용이나 사실과 다른 정보를 생성하는 "환각" 현상이다. 이로 인해 챗GPT와 같은 모델은 단순한 대화 봇으로서는 한계가 있을 수 있다.Currently, the generative AI chat GPT developed by OpenAI is becoming a hot topic around the world. However, one of the main problems with these models is the phenomenon of “hallucinations,” which generate information that is irrelevant or factual, out of context of the question. Because of this, models such as ChatGPT may have limitations as simple conversation bots.

따라서, 모든 산업에서 가치를 창출하기 위한 목적 중심 대화(Task Oriented Dialog)를 위한 챗봇이 요구된다. 목적 중심 대화란 "오늘 날씨 어때?"와 같은 간단한 질문이 아니라, 식당 예약, 주문 등과 같이 산업 및 비즈니스 관련 질문에 대한 것을 말한다. 이러한 대화는 각 산업과 기업이 가지고 있는 독특한 데이터, 업무 매뉴얼, 업무 지식에 따라 다양하게 변하기 때문에, 생성형 챗봇이 직접적으로 응답하는 것은 어려울 수 있다. 따라서, 각 산업과 기업에 맞게 챗봇을 제작하고 사용자 질문을 이해하며 해당 업무를 자동화할 수 있는 능력이 필수적이다.Therefore, chatbots for task-oriented dialogue to create value are required in all industries. Purpose-driven conversations are about industry and business-related questions, such as making restaurant reservations and placing orders, rather than simple questions like “How’s the weather today?” Because these conversations vary depending on the unique data, work manuals, and work knowledge that each industry and company has, it may be difficult for a generative chatbot to respond directly. Therefore, the ability to create chatbots tailored to each industry and company, understand user questions, and automate the relevant tasks is essential.

이러한 요구를 충족시키기 위해 현재 제공되는 챗봇 빌더는 개별 기업의 챗봇 관리자가 사전에 정의한 플로우에 따라 업무를 자동화하는 도구로, 자연어를 이해하고 어떤 플로우를 사용해야 하는지 자동으로 결정할 수 있다. 하지만 플로우를 자동으로 분류하기 위해 지도학습(Supervised Learning)과 같은 머신러닝 기술이 사용될 수 있는데, 이를 위해 학습 예문 데이터가 필요하다. 예를 들어, "식당 예약하고 싶어요"나 "식당 예약 가능할까요?"와 같은 질문 예문 데이터를 사용하여 머신러닝 모델을 학습시켜야 한다.To meet these needs, the chatbot builder currently available is a tool that automates tasks according to flows defined in advance by chatbot managers of individual companies. It can understand natural language and automatically determine which flow should be used. However, machine learning techniques such as supervised learning can be used to automatically classify flows, and for this, training example data is required. For example, you need to train a machine learning model using sample question data such as “I want to make a reservation at a restaurant” or “Can I make a reservation at a restaurant?”

이러한 머신러닝 기반의 챗봇 서비스는 몇 가지 문제점을 가지고 있다. 첫째로, 질의 예문 데이터 구축 비용과 시간 투자가 요구된다. 예를 들어, 챗봇 관리자가 질의 예문 데이터를 직접 구축해야 하며, 이를 위해서는 상당한 시간과 노력이 필요하다. 대규모의 질의 예문 후보 데이터를 생성하는 작업은 비용과 시간을 많이 요구한다.These machine learning-based chatbot services have several problems. First, it requires cost and time investment to build query example data. For example, chatbot managers must build sample query data themselves, which requires considerable time and effort. Generating large-scale query example candidate data requires a lot of cost and time.

둘째로는, 사전 플로우 및 대화 의도 구축의 어려움이 있다. 질의 예문과 함께 대화 흐름이 사전에 정의되어야 하는데, 이렇게 정의된 플로우가 실제 사용자 질의와 일치하는지 예측하기 어려울 수 있다. 이로 인해 챗봇 관리자는 불필요한 플로우를 사전에 제작하거나 중복된 작업을 수행하여야 할 수 있다.Second, there are difficulties in establishing pre-flow and conversation intent. The conversation flow must be defined in advance along with a sample query, but it may be difficult to predict whether the defined flow matches the actual user query. As a result, chatbot managers may have to create unnecessary flows in advance or perform duplicate tasks.

또한, 운영 및 모니터링 비용이 소모된다. 챗봇 서비스의 품질을 유지하기 위해 별도의 모니터링 인력이 필요하다. 이로 인해 추가적인 운영 비용이 발생하며, 모니터링 인력은 사용자 질의의 새로운 내용을 확인하고 새로운 플로우 및 질의 예문/답변을 생성하는 작업을 수행해야 한다. 이는 챗봇 관리자의 업무 부담을 증가시키고 비용을 높이는 요인이 된.Additionally, operation and monitoring costs are incurred. Separate monitoring personnel are required to maintain the quality of chatbot services. This results in additional operating costs, and monitoring personnel must check new content of user queries and create new flows and query examples/answers. This is a factor that increases the workload of chatbot managers and increases costs.

이처럼, 챗봇 서비스를 효율적으로 관리하고 운영하는 것은 복잡한 작업이며, 이러한 문제점을 극복하기 위해 자동화된 방법이 요구된다.As such, efficiently managing and operating chatbot services is a complex task, and automated methods are required to overcome these problems.

본 명세서의 목적은 관리자가 업로드한 지식 문서로부터 챗봇 질의에 적합한 답변을 자동으로 추출하여 문맥에 맞게 생성하기 위한 방법 및 이를 위한 장치를 제공하는 것이다.The purpose of this specification is to provide a method and device for automatically extracting answers suitable for chatbot queries from knowledge documents uploaded by an administrator and generating them according to the context.

본 명세서가 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 이하의 명세서의 상세한 설명으로부터 본 명세서가 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.The technical problems to be achieved by this specification are not limited to the technical problems mentioned above, and other technical problems not mentioned will be clear to those skilled in the art from the detailed description of the specification below. It will be understandable.

본 명세서의 일 양상은, 서버가 챗봇 사용자의 질의에 대한 답변 생성을 구현하기 위한 방법에 있어서, 상기 답변을 생성하기 위한 플로우를 생성하는 단계; 로서, 상기 플로우는 상기 질의와 관련된 대표 예문을 포함함; 거대 언어 모델(Large Language Model, LLM)에 상기 대표 예문에 근거하여, 예문 생성을 위한 프롬프트를 입력하는 단계; 상기 거대 언어 모델로부터, 상기 예문를 획득하는 단계; 및 상기 예문을 상기 플로우에 추가하는 단계;를 포함할 수 있다.One aspect of the present specification is a method for a server to implement the generation of an answer to a chatbot user's inquiry, comprising: generating a flow for generating the answer; As, the flow includes representative example sentences related to the query; Entering a prompt for generating an example sentence based on the representative example sentence into a Large Language Model (LLM); Obtaining the example sentence from the large language model; and adding the example sentence to the flow.

또한, 상기 예문을 상기 플로우에 추가하는 단계는 상기 예문을 머신러닝 모델로 전달하여, 벡터화 시키는 단계; 상기 예문과 관련된 기본키를 반환하는 단계; 및 상기 기본키를 이용하여, 상기 예문을 상기 플로우에 추가하는 단계; 를 포함할 수 있다.Additionally, adding the example sentence to the flow includes transferring the example sentence to a machine learning model and vectorizing it; Returning a primary key related to the example sentence; and adding the example sentence to the flow using the primary key. may include.

또한, 상기 질의와 매칭되는 상기 플로우가 없는 경우, 상기 답변을 추출하기 위한 지식 파일을 업로드 받는 단계; 상기 지식 파일로부터, 텍스트를 추출하는 단계; 및 상기 텍스트를 벡터화하는 단계; 를 더 포함할 수 있다.Additionally, if there is no flow matching the query, uploading a knowledge file for extracting the answer; extracting text from the knowledge file; and vectorizing the text; It may further include.

또한, 상기 추출된 텍스트를 청크(chunk)로 분할하는 단계; 로서, 상기 청크는 유사한 의미를 갖는 텍스트들의 집합임; 을 더 포함하고, 상기 텍스트를 벡터화하는 단계는 상기 청크를 벡터화하는 단계; 및 상기 청크의 벡터를 저장하는 단계; 를 더 포함할 수 있다.Additionally, dividing the extracted text into chunks; As, the chunk is a set of texts with similar meaning; Further comprising: vectorizing the text; vectorizing the chunk; and storing vectors of the chunks; It may further include.

또한, 상기 저장된 청크의 벡터에 근거하여, 상기 지식 파일을 로딩하는 단계; 를 더 포함할 수 있다.Additionally, loading the knowledge file based on the vector of the stored chunk; It may further include.

또한, 사용자 단말로부터, 상기 질의를 입력받는 단계; 상기 입력받은 질의를 벡터화하는 단계; 상기 질의와 상기 대표 예문, 또는 상기 예문의 유사도를 판단하는 단계; 및 상기 유사도에 근거하여, 상기 플로우를 반환하는 단계; 를 더 포함할 수 있다.Additionally, receiving the query from a user terminal; Vectorizing the input query; determining the degree of similarity between the query and the representative example sentence or the example sentence; and returning the flow based on the similarity. It may further include.

본 명세서의 또 다른 일 양상은, 챗봇 사용자의 질의에 대한 답변 생성을 구현하기 위한 서버에 있어서, 머신러닝 모델이 포함된 메모리; 외부 전자기기와 통신하기 위한 통신부; 및 상기 메모리 및 상기 통신부를 기능적으로 제어하기 위한 프로세서; 를 포함하고, 상기 프로세서는 상기 답변을 생성하기 위한 플로우를 생성하고, 상기 플로우는 상기 질의와 관련된 대표 예문을 포함하며, 거대 언어 모델(Large Language Model, LLM)에 상기 대표 예문에 근거하여, 예문 생성을 위한 프롬프트를 입력하고, 상기 거대 언어 모델로부터, 상기 예문를 획득하며, 상기 예문을 상기 플로우에 추가할 수 있다.Another aspect of the present specification is a server for implementing response generation to a chatbot user's inquiry, comprising: a memory containing a machine learning model; A communication unit for communicating with external electronic devices; and a processor for functionally controlling the memory and the communication unit. It includes, the processor generates a flow for generating the answer, the flow includes a representative example sentence related to the query, and based on the representative example sentence in a Large Language Model (LLM), an example sentence You can enter a prompt for creation, obtain the example sentence from the large language model, and add the example sentence to the flow.

본 명세서의 또 다른 일 양상은, 관리자 단말이 챗봇 사용자의 질의에 대한 답변 생성을 구현하기 위한 방법에 있어서, 관리자로부터, 상기 답변을 생성하기 위한 플로우 생성 버튼을 입력받는 단계; 상기 생성 버튼의 입력에 대한 응답으로서, 서버로 상기 플로우의 생성 명령을 전달하는 단계; 로서, 상기 플로우의 생성 명령은 상기 플로우의 이름 및 상기 질의와 관련된 대표 예문을 포함함; 상기 플로우의 생성 명령에 대한 응답으로서, 상기 플로우가 생성되었음을 나타내는 메시지를 수신하는 단계; 상기 서버로, 상기 대표 예문과 관련된 예문 생성을 위한 명령을 전달하는 단계; 거대 언어 모델(Large Language Model, LLM)로부터, 획득된 상기 예문의 후보를 수신하는 단계; 상기 관리자에게 상기 예문의 후보를 표시하는 단계; 상기 관리자로부터, 상기 예문의 후보에 근거하여, 최종 예문을 선택받는 단계; 상기 최종 예문을 상기 서버에 전달하는 단계; 를 포함할 수 있다.Another aspect of the present specification is a method for an administrator terminal to generate an answer to a chatbot user's inquiry, comprising: receiving, from an administrator, a flow creation button for generating the answer; In response to an input of the create button, transmitting a command to create the flow to a server; As, the flow creation command includes the name of the flow and a representative example sentence related to the query; In response to the flow creation command, receiving a message indicating that the flow has been created; transmitting, to the server, a command for generating example sentences related to the representative example sentences; Receiving candidates of the example sentences obtained from a Large Language Model (LLM); displaying candidates for the example sentences to the manager; selecting a final example sentence from the manager based on the candidate examples; delivering the final example sentence to the server; may include.

본 명세서의 실시예에 따르면, 관리자가 업로드한 지식 문서로부터 챗봇 질의에 적합한 답변을 자동으로 추출하여 문맥에 맞게 생성할 수 있다.According to an embodiment of the present specification, an answer suitable for a chatbot query can be automatically extracted from a knowledge document uploaded by an administrator and generated according to the context.

본 명세서에서 얻을 수 있는 효과는 이상에서 언급한 효과로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 명세서가 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다. The effects that can be obtained in this specification are not limited to the effects mentioned above, and other effects not mentioned can be clearly understood by those skilled in the art from the description below. .

도 1은 본 명세서와 관련된 전자 기기를 설명하기 위한 블록도이다.
도 2는 본 명세서의 일 실시예에 따른 AI 장치의 블록도이다.
도 3은 본 명세서에 적용될 수 있는 플로우 생성을 위한 파이프라인의 예시이다.
도 4 내지 도 6은 본 명세서에 적용될 수 있는 플로우 생성을 위한 관리자 단말의 예시이다.
도 7은 본 명세서가 적용될 수 있는 대표 예문 데이터를 예시한다.
도 8은 본 명세서에 적용될 수 있는 플로우 예문 생성의 파이프라인의 예시이다.
도 9는 본 명세서가 적용될 수 있는 지식 파일의 활성화 절차의 예시이다.
도 10은 본 명세서가 적용될 수 있는 지식 화면을 예시한다.
도 11은 본 명세서가 적용될 수 있는 지식 파일의 활성화 표시를 예시한다.
도 12는 본 명세서가 적용될 수 있는 지식 데이터를 예시한다.
도 13은 본 명세서가 적용될 수 있는 챗봇 사용자의 질의를 플로우로 분류하는 절차를 예시한다.
도 14는 본 명세서가 적용될 수 있는 지식 파일에 근거한 답변 제공을 예시한다.
도 15는 본 명세서가 적용될 수 있는 답변 생성을 위한 프롬프트를 예시한다.
도 16은 본 명세서가 적용될 수 있는 서버의 일 실시예이다.
도 17 및 도 18은 본 명세서가 적용될 수 있는 관리자 단말의 일 실시예이다.
본 명세서에 관한 이해를 돕기 위해 상세한 설명의 일부로 포함되는, 첨부 도면은 본 명세서에 대한 실시예를 제공하고, 상세한 설명과 함께 본 명세서의 기술적 특징을 설명한다.
1 is a block diagram for explaining an electronic device related to this specification.
Figure 2 is a block diagram of an AI device according to an embodiment of the present specification.
Figure 3 is an example of a pipeline for flow creation applicable to this specification.
4 to 6 are examples of manager terminals for flow creation that can be applied to this specification.
Figure 7 illustrates representative example sentence data to which this specification can be applied.
Figure 8 is an example of a pipeline for generating flow examples that can be applied to this specification.
Figure 9 is an example of the activation procedure of a knowledge file to which this specification can be applied.
Figure 10 illustrates a knowledge screen to which this specification can be applied.
11 illustrates an activation indication of a knowledge file to which this specification can be applied.
Figure 12 illustrates knowledge data to which this specification can be applied.
Figure 13 illustrates a procedure for classifying a chatbot user's inquiry into a flow to which this specification can be applied.
Figure 14 illustrates providing an answer based on a knowledge file to which this specification can be applied.
15 illustrates a prompt for generating an answer to which this disclosure may be applied.
Figure 16 is an embodiment of a server to which this specification can be applied.
17 and 18 are examples of a manager terminal to which this specification can be applied.
The accompanying drawings, which are included as part of the detailed description to aid understanding of the present specification, provide embodiments of the present specification and explain technical features of the present specification together with the detailed description.

이하, 첨부된 도면을 참조하여 본 명세서에 개시된 실시예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 "부"는 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다. 또한, 본 명세서에 개시된 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 명세서에 개시된 실시예의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 명세서에 개시된 실시예를 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 명세서에 개시된 기술적 사상이 제한되지 않으며, 본 명세서의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. Hereinafter, embodiments disclosed in the present specification will be described in detail with reference to the attached drawings. However, identical or similar components will be assigned the same reference numerals regardless of reference numerals, and duplicate descriptions thereof will be omitted. The suffixes “module” and “part” for components used in the following description are given or used interchangeably only for the ease of preparing the specification, and do not have distinct meanings or roles in themselves. Additionally, in describing the embodiments disclosed in this specification, if it is determined that detailed descriptions of related known technologies may obscure the gist of the embodiments disclosed in this specification, the detailed descriptions will be omitted. In addition, the attached drawings are only for easy understanding of the embodiments disclosed in this specification, and the technical idea disclosed in this specification is not limited by the attached drawings, and all changes included in the spirit and technical scope of this specification are not limited. , should be understood to include equivalents or substitutes.

제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되지는 않는다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.Terms containing ordinal numbers, such as first, second, etc., may be used to describe various components, but the components are not limited by the terms. The above terms are used only for the purpose of distinguishing one component from another.

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

단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.Singular expressions include plural expressions unless the context clearly dictates otherwise.

본 출원에서, "포함한다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.In this application, terms such as “comprise” or “have” are intended to designate the presence of features, numbers, steps, operations, components, parts, or combinations thereof described in the specification, but are not intended to indicate the presence of one or more other features. It should be understood that this does not exclude in advance the possibility of the existence or addition of elements, numbers, steps, operations, components, parts, or combinations thereof.

도 1은 본 명세서와 관련된 전자 기기를 설명하기 위한 블록도이다.1 is a block diagram for explaining an electronic device related to this specification.

상기 전자 기기(100)는 무선 통신부(110), 입력부(120), 센싱부(140), 출력부(150), 인터페이스부(160), 메모리(170), 제어부(180) 및 전원 공급부(190) 등을 포함할 수 있다. 도 1에 도시된 구성요소들은 전자 기기를 구현하는데 있어서 필수적인 것은 아니어서, 본 명세서 상에서 설명되는 전자 기기는 위에서 열거된 구성요소들 보다 많거나, 또는 적은 구성요소들을 가질 수 있다. The electronic device 100 includes a wireless communication unit 110, an input unit 120, a sensing unit 140, an output unit 150, an interface unit 160, a memory 170, a control unit 180, and a power supply unit 190. ), etc. may be included. The components shown in FIG. 1 are not essential for implementing an electronic device, so the electronic device described in this specification may have more or fewer components than the components listed above.

보다 구체적으로, 상기 구성요소들 중 무선 통신부(110)는, 전자 기기(100)와 무선 통신 시스템 사이, 전자 기기(100)와 다른 전자 기기(100) 사이, 또는 전자 기기(100)와 외부서버 사이의 무선 통신을 가능하게 하는 하나 이상의 모듈을 포함할 수 있다. 또한, 상기 무선 통신부(110)는, 전자 기기(100)를 하나 이상의 네트워크에 연결하는 하나 이상의 모듈을 포함할 수 있다.More specifically, among the above components, the wireless communication unit 110 is used between the electronic device 100 and the wireless communication system, between the electronic device 100 and another electronic device 100, or between the electronic device 100 and an external server. It may include one or more modules that enable wireless communication between the devices. Additionally, the wireless communication unit 110 may include one or more modules that connect the electronic device 100 to one or more networks.

이러한 무선 통신부(110)는, 방송 수신 모듈(111), 이동통신 모듈(112), 무선 인터넷 모듈(113), 근거리 통신 모듈(114), 위치정보 모듈(115) 중 적어도 하나를 포함할 수 있다.This wireless communication unit 110 may include at least one of a broadcast reception module 111, a mobile communication module 112, a wireless Internet module 113, a short-range communication module 114, and a location information module 115. .

입력부(120)는, 영상 신호 입력을 위한 카메라(121) 또는 영상 입력부, 오디오 신호 입력을 위한 마이크로폰(microphone, 122), 또는 오디오 입력부, 사용자로부터 정보를 입력받기 위한 사용자 입력부(123, 예를 들어, 터치키(touch key), 푸시키(mechanical key) 등)를 포함할 수 있다. 입력부(120)에서 수집한 음성 데이터나 이미지 데이터는 분석되어 사용자의 제어명령으로 처리될 수 있다.The input unit 120 includes a camera 121 or an image input unit for inputting an image signal, a microphone 122 or an audio input unit for inputting an audio signal, and a user input unit 123 for receiving information from a user, for example. , touch keys, push keys (mechanical keys, etc.). Voice data or image data collected by the input unit 120 may be analyzed and processed as a user's control command.

센싱부(140)는 전자 기기 내 정보, 전자 기기를 둘러싼 주변 환경 정보 및 사용자 정보 중 적어도 하나를 센싱하기 위한 하나 이상의 센서를 포함할 수 있다. 예를 들어, 센싱부(140)는 근접센서(141, proximity sensor), 조도 센서(142, illumination sensor), 터치 센서(touch sensor), 가속도 센서(acceleration sensor), 자기 센서(magnetic sensor), 중력 센서(G-sensor), 자이로스코프 센서(gyroscope sensor), 모션 센서(motion sensor), RGB 센서, 적외선 센서(IR 센서: infrared sensor), 지문인식 센서(finger scan sensor), 초음파 센서(ultrasonic sensor), 광 센서(optical sensor, 예를 들어, 카메라(121 참조)), 마이크로폰(microphone, 122 참조), 배터리 게이지(battery gauge), 환경 센서(예를 들어, 기압계, 습도계, 온도계, 방사능 감지 센서, 열 감지 센서, 가스 감지 센서 등), 화학 센서(예를 들어, 전자 코, 헬스케어 센서, 생체 인식 센서 등) 중 적어도 하나를 포함할 수 있다. 한편, 본 명세서에 개시된 전자 기기는, 이러한 센서들 중 적어도 둘 이상의 센서에서 센싱되는 정보들을 조합하여 활용할 수 있다.The sensing unit 140 may include one or more sensors for sensing at least one of information within the electronic device, information on the surrounding environment surrounding the electronic device, and user information. For example, the sensing unit 140 includes a proximity sensor (141), an illumination sensor (142), a touch sensor, an acceleration sensor, a magnetic sensor, and a gravity sensor. Sensor (G-sensor), gyroscope sensor, motion sensor, RGB sensor, IR sensor (infrared sensor), fingerprint scan sensor, ultrasonic sensor , optical sensors (e.g., cameras (see 121)), microphones (see 122), battery gauges, environmental sensors (e.g., barometers, hygrometers, thermometers, radiation detection sensors, It may include at least one of a heat detection sensor, a gas detection sensor, etc.) and a chemical sensor (e.g., an electronic nose, a healthcare sensor, a biometric sensor, etc.). Meanwhile, the electronic device disclosed in this specification can utilize information sensed by at least two of these sensors by combining them.

출력부(150)는 시각, 청각 또는 촉각 등과 관련된 출력을 발생시키기 위한 것으로, 디스플레이부(151), 음향 출력부(152), 햅팁 모듈(153), 광 출력부(154) 중 적어도 하나를 포함할 수 있다. 디스플레이부(151)는 터치 센서와 상호 레이어 구조를 이루거나 일체형으로 형성됨으로써, 터치 스크린을 구현할 수 있다. 이러한 터치 스크린은, 전자 기기(100)와 사용자 사이의 입력 인터페이스를 제공하는 사용자 입력부(123)로써 기능함과 동시에, 전자 기기(100)와 사용자 사이의 출력 인터페이스를 제공할 수 있다.The output unit 150 is for generating output related to vision, hearing, or tactile sense, and includes at least one of a display unit 151, an audio output unit 152, a haptip module 153, and an optical output unit 154. can do. The display unit 151 can implement a touch screen by forming a layered structure or being integrated with the touch sensor. This touch screen functions as a user input unit 123 that provides an input interface between the electronic device 100 and the user, and can simultaneously provide an output interface between the electronic device 100 and the user.

인터페이스부(160)는 전자 기기(100)에 연결되는 다양한 종류의 외부 기기와의 통로 역할을 수행한다. 이러한 인터페이스부(160)는, 유/무선 헤드셋 포트(port), 외부 충전기 포트(port), 유/무선 데이터 포트(port), 메모리 카드(memory card) 포트, 식별 모듈이 구비된 장치를 연결하는 포트(port), 오디오 I/O(Input/Output) 포트(port), 비디오 I/O(Input/Output) 포트(port), 이어폰 포트(port) 중 적어도 하나를 포함할 수 있다. 전자 기기(100)에서는, 상기 인터페이스부(160)에 외부 기기가 연결되는 것에 대응하여, 연결된 외부 기기와 관련된 적절할 제어를 수행할 수 있다.The interface unit 160 serves as a passageway for various types of external devices connected to the electronic device 100. This interface unit 160 connects devices equipped with a wired/wireless headset port, an external charger port, a wired/wireless data port, a memory card port, and an identification module. It may include at least one of a port, an audio input/output (I/O) port, a video input/output (I/O) port, and an earphone port. In response to the external device being connected to the interface unit 160, the electronic device 100 may perform appropriate control related to the connected external device.

또한, 메모리(170)는 전자 기기(100)의 다양한 기능을 지원하는 데이터를 저장한다. 메모리(170)는 전자 기기(100)에서 구동되는 다수의 응용 프로그램(application program 또는 애플리케이션(application)), 전자 기기(100)의 동작을 위한 데이터들, 명령어들을 저장할 수 있다. 이러한 응용 프로그램 중 적어도 일부는, 무선 통신을 통해 외부 서버로부터 다운로드 될 수 있다. 또한 이러한 응용 프로그램 중 적어도 일부는, 전자 기기(100)의 기본적인 기능(예를 들어, 전화 착신, 발신 기능, 메시지 수신, 발신 기능)을 위하여 출고 당시부터 전자 기기(100)상에 존재할 수 있다. 한편, 응용 프로그램은, 메모리(170)에 저장되고, 전자 기기(100) 상에 설치되어, 제어부(180)에 의하여 상기 전자 기기의 동작(또는 기능)을 수행하도록 구동될 수 있다.Additionally, the memory 170 stores data supporting various functions of the electronic device 100. The memory 170 may store a plurality of application programs (application programs or applications) running on the electronic device 100, data for operating the electronic device 100, and commands. At least some of these applications may be downloaded from an external server via wireless communication. Additionally, at least some of these applications may be present on the electronic device 100 from the time of shipment for basic functions of the electronic device 100 (e.g., incoming and outgoing calls, receiving and sending functions). Meanwhile, the application program may be stored in the memory 170, installed on the electronic device 100, and driven by the control unit 180 to perform an operation (or function) of the electronic device.

제어부(180)는 상기 응용 프로그램과 관련된 동작 외에도, 통상적으로 전자 기기(100)의 전반적인 동작을 제어한다. 제어부(180)는 위에서 살펴본 구성요소들을 통해 입력 또는 출력되는 신호, 데이터, 정보 등을 처리하거나 메모리(170)에 저장된 응용 프로그램을 구동함으로써, 사용자에게 적절한 정보 또는 기능을 제공 또는 처리할 수 있다.In addition to operations related to the application program, the control unit 180 typically controls the overall operation of the electronic device 100. The control unit 180 can provide or process appropriate information or functions to the user by processing signals, data, information, etc. input or output through the components discussed above, or by running an application program stored in the memory 170.

또한, 제어부(180)는 메모리(170)에 저장된 응용 프로그램을 구동하기 위하여, 도 1과 함께 살펴본 구성요소들 중 적어도 일부를 제어할 수 있다. 나아가, 제어부(180)는 상기 응용 프로그램의 구동을 위하여, 전자 기기(100)에 포함된 구성요소들 중 적어도 둘 이상을 서로 조합하여 동작시킬 수 있다.Additionally, the control unit 180 may control at least some of the components examined with FIG. 1 in order to run an application program stored in the memory 170. Furthermore, the control unit 180 may operate at least two of the components included in the electronic device 100 in combination with each other in order to run the application program.

전원공급부(190)는 제어부(180)의 제어 하에서, 외부의 전원, 내부의 전원을 인가받아 전자 기기(100)에 포함된 각 구성요소들에 전원을 공급한다. 이러한 전원공급부(190)는 배터리를 포함하며, 상기 배터리는 내장형 배터리 또는 교체가능한 형태의 배터리가 될 수 있다.The power supply unit 190 receives external power and internal power under the control of the control unit 180 and supplies power to each component included in the electronic device 100. This power supply unit 190 includes a battery, and the battery may be a built-in battery or a replaceable battery.

상기 각 구성요소들 중 적어도 일부는, 이하에서 설명되는 다양한 실시 예들에 따른 전자 기기의 동작, 제어, 또는 제어방법을 구현하기 위하여 서로 협력하여 동작할 수 있다. 또한, 상기 전자 기기의 동작, 제어, 또는 제어방법은 상기 메모리(170)에 저장된 적어도 하나의 응용 프로그램의 구동에 의하여 전자 기기 상에서 구현될 수 있다. At least some of the components may cooperate with each other to implement operation, control, or a control method of an electronic device according to various embodiments described below. Additionally, the operation, control, or control method of the electronic device may be implemented on the electronic device by running at least one application program stored in the memory 170.

본 명세서에서 서버 및 단말은 전자기기(100)를 포함할 수 있다.In this specification, servers and terminals may include electronic devices 100.

도 2는 본 명세서의 일 실시예에 따른 AI 장치의 블록도이다.Figure 2 is a block diagram of an AI device according to an embodiment of the present specification.

상기 AI 장치(20)는 AI 프로세싱을 수행할 수 있는 AI 모듈을 포함하는 전자 기기 또는 상기 AI 모듈을 포함하는 서버 등을 포함할 수 있다. 또한, 상기 AI 장치(20)는 도 1에 도시된 전자기기(100)의 적어도 일부의 구성으로 포함되어 AI 프로세싱 중 적어도 일부를 함께 수행하도록 구비될 수도 있다.The AI device 20 may include an electronic device including an AI module capable of performing AI processing or a server including the AI module. Additionally, the AI device 20 may be included in at least a portion of the electronic device 100 shown in FIG. 1 and may be equipped to perform at least a portion of AI processing.

상기 AI 장치(20)는 AI 프로세서(21), 메모리(25) 및/또는 통신부(27)를 포함할 수 있다.The AI device 20 may include an AI processor 21, memory 25, and/or a communication unit 27.

상기 AI 장치(20)는 신경망을 학습할 수 있는 컴퓨팅 장치로서, 서버, 데스크탑 PC, 노트북 PC, 태블릿 PC 등과 같은 다양한 전자 장치로 구현될 수 있다.The AI device 20 is a computing device capable of learning a neural network, and may be implemented in various electronic devices such as servers, desktop PCs, laptop PCs, tablet PCs, etc.

AI 프로세서(21)는 메모리(25)에 저장된 프로그램을 이용하여 신경망을 학습할 수 있다. 특히, AI 프로세서(21)는 자연어처리를 위한 인공지능 모델(및/또는, Large Language Model(LLM))을 메모리(25) 상에 생성할 수 있고, 관리자가 업로드한 지식 문서, 및/또는 단말을 통해 수집될 수 있는 데이터를 이용하여, 이러한 인공지능 모델을 학습시킬 수 있다.The AI processor 21 can learn a neural network using a program stored in the memory 25. In particular, the AI processor 21 can generate an artificial intelligence model (and/or Large Language Model (LLM)) for natural language processing on the memory 25, knowledge documents uploaded by the administrator, and/or the terminal. These artificial intelligence models can be trained using data that can be collected through .

AI 프로세서(21)는 범용 프로세서(예를 들어, CPU)일 수 있으나, 인공지능 학습을 위한 AI 전용 프로세서(예를 들어, GPU, graphics processing unit)일 수 있다.The AI processor 21 may be a general-purpose processor (e.g., CPU), or may be an AI-specific processor (e.g., GPU, graphics processing unit) for artificial intelligence learning.

메모리(25)는 AI 장치(20)의 동작에 필요한 각종 프로그램 및 데이터를 저장할 수 있다. 메모리(25)는 비 휘발성 메모리, 휘발성 메모리, 플래시 메모리(flash-memory), 하드디스크 드라이브(HDD) 또는 솔리드 스테이트 드라이브(SDD) 등으로 구현할 수 있다. 메모리(25)는 AI 프로세서(21)에 의해 액세스되며, AI 프로세서(21)에 의한 데이터의 독취/기록/수정/삭제/갱신 등이 수행될 수 있다. 또한, 메모리(25)는 본 명세서의 일 실시예에 따른 데이터 분류/인식을 위한 학습 알고리즘을 통해 생성된 신경망 모델(예를 들어, 딥 러닝 모델)을 저장할 수 있다.The memory 25 can store various programs and data necessary for the operation of the AI device 20. The memory 25 can be implemented as non-volatile memory, volatile memory, flash-memory, hard disk drive (HDD), or solid state drive (SDD). The memory 25 is accessed by the AI processor 21, and reading/writing/modifying/deleting/updating data by the AI processor 21 can be performed. Additionally, the memory 25 may store a neural network model (eg, deep learning model) generated through a learning algorithm for data classification/recognition according to an embodiment of the present specification.

한편, AI 프로세서(21)는 데이터 분류/인식을 위한 신경망을 학습하는 데이터 학습부를 포함할 수 있다. 예를 들어, 데이터 학습부는 학습에 이용될 학습 데이터를 획득하고, 획득된 학습데이터를 딥러닝 모델에 적용함으로써, 딥러닝 모델을 학습할 수 있다. Meanwhile, the AI processor 21 may include a data learning unit that learns a neural network for data classification/recognition. For example, the data learning unit may learn a deep learning model by acquiring training data to be used for learning and applying the acquired training data to the deep learning model.

통신부(27)는 AI 프로세서(21)에 의한 AI 프로세싱 결과를 외부 전자 기기로 전송할 수 있다.The communication unit 27 can transmit the results of AI processing by the AI processor 21 to an external electronic device.

여기서 외부 전자 기기는 다른 단말, 서버를 포함할 수 있다.Here, external electronic devices may include other terminals and servers.

한편, 도 2에 도시된 AI 장치(20)는 AI 프로세서(21)와 메모리(25), 통신부(27) 등으로 기능적으로 구분하여 설명하였지만, 전술한 구성요소들이 하나의 모듈로 통합되어 AI 모듈 또는 인공지능(AI) 모델로 호칭될 수도 있다.Meanwhile, the AI device 20 shown in FIG. 2 has been described as functionally divided into an AI processor 21, a memory 25, a communication unit 27, etc., but the above-described components are integrated into one module to form an AI module. Alternatively, it may be referred to as an artificial intelligence (AI) model.

도 3은 본 명세서에 적용될 수 있는 플로우 생성을 위한 파이프라인의 예시이다.Figure 3 is an example of a pipeline for flow creation applicable to this specification.

도 3을 참조하면, Task Oriented Dialog 위한 챗봇 빌더의 플로우를 자동으로 생성하기 위한 파이프라인을 예시한다. 플로우는 서버(310)가 사용자의 질의에 대한 답을 제공하기 위해, 사용자와 상호작용하는 일련의 단계와 프로세스를 나타낼 수 있다.Referring to Figure 3, a pipeline for automatically creating the flow of a chatbot builder for a Task Oriented Dialog is illustrated. A flow may represent a series of steps and processes through which the server 310 interacts with a user to provide answers to the user's queries.

예를 들어, 서버(310)는 챗봇 관리자가 지식 문서를 업로드하면 이를 바탕으로, 챗봇 사용자의 질의에 맞는 답변을 찾아서 문맥에 맞게 생성할 수 있다. 또한, 서버(310)는 챗봇 사용자로부터 기존에 정의되지 않은 새로운 질의를 받으면, 자동으로 새로운 플로우를 생성하여, 추후 유사한 질의 의도를 분류하는데 활용할 수 있다. For example, when the chatbot manager uploads a knowledge document, the server 310 can find an answer that matches the chatbot user's inquiry based on this and create it according to the context. Additionally, when the server 310 receives a new, undefined query from a chatbot user, it automatically creates a new flow and can be used to classify the intent of similar queries in the future.

보다 자세하게, 서버(310)는 사용자 질의로부터 플로우를 생성하기 위한 플로우 생성 모듈을 포함할 수 있다. 관리자는 관리자 단말(320)을 통해, 플로우 생성 모듈을 관리할 수 있다.More specifically, the server 310 may include a flow creation module for creating a flow from a user query. The administrator can manage the flow creation module through the administrator terminal 320.

1. 관리자 단말(320)은 서버(310)로 플로우 생성 명령을 전달한다. 예를 들어, 관리자 단말(320)은 플로우 이름과 대표 예문을 쌍으로 하여, 서버(310)로 전송한다. 플로우 이름과 대표 예문에 대한 정보는 관리자로부터 입력받거나, 기설정된 데이터일 수 있다. 1. The manager terminal 320 transmits a flow creation command to the server 310. For example, the manager terminal 320 pairs a flow name and a representative example sentence and transmits them to the server 310. Information about the flow name and representative example sentences may be input from the administrator or may be preset data.

도 4 내지 도 6은 본 명세서에 적용될 수 있는 플로우 생성을 위한 관리자 단말의 예시이다.4 to 6 are examples of manager terminals for flow creation that can be applied to this specification.

도 4를 참조하면, 관리자는 관리자 단말(320)을 통해, 플로우 생성 버튼(420)을 입력하여, 플로우를 생성할 수 있다. 플로우 이름(400)은 고객의 질의가 분류될 수 있는 플로우를 나타내기 위한 ID 일 수 있고, 대표 예문(410)은 당해 플로우를 대표하는 질의의 예시일 수 있다. 예를 들어, 플로우 이름(400)이 "고객센터 운영시간" 인 경우, 대표 예문(410)은 "현재 고객센터는 몇시까지 운영되나요?" 로 설정될 수 있다. 이렇게 생성된 플로우는 노드가 연결된 형태인 플로우 차트로 표현되어, 관리자는 관리자 단말(320)을 통해 확인(430)할 수 있다.Referring to FIG. 4, the manager can create a flow by inputting the flow creation button 420 through the manager terminal 320. The flow name 400 may be an ID indicating a flow into which a customer's inquiry can be classified, and the representative example sentence 410 may be an example of a query representing the flow. For example, if the flow name (400) is “Customer Center Operating Hours,” the representative example sentence (410) is “What time is the customer center currently open?” It can be set to . The flow created in this way is expressed as a flow chart in which nodes are connected, and the manager can check it (430) through the manager terminal (320).

도 5를 참조하면, 플로우는 시작 노드와 메시지 노드를 포함할 수 있다. 예를 들어, 시작 노드는 대표 예문(질의)을 나타내며, 후술되는 예문 후보들이 추가되는 경우, 예문 후보들은 시작 노드에 종속되어 관리될 수 있다. 관리자는 관리자 단말(320)을 통해, 시작 노드를 클릭하고, 설정화면(500)을 통해, 예문 후보를 직접 입력(510) 할 수 있다. 메시지 노드는 사용자 질의에 대응되는 답변으로서, 관리자는 플로우에 질의에 대응되는 답변을 설정할 수 있다.Referring to Figure 5, a flow may include a start node and a message node. For example, the start node represents a representative example sentence (query), and when example sentence candidates described later are added, the example sentence candidates may be managed in dependence on the start node. The administrator can click the start node through the administrator terminal 320 and directly input example sentence candidates (510) through the settings screen 500. A message node is an answer corresponding to a user query, and the administrator can set an answer corresponding to the query in the flow.

도 6을 참조하면, 관리자 단말(320)은 플로우 생성 버튼(420)을 입력받으면, 새로운 플로우 생성을 위한 패널을 관리자에게 표시할 수 있다. 관리자는 이를 통해, 플로우 이름 및 대표 예문을 입력함으로써, 새로운 플로우를 생성할 수 있다.Referring to FIG. 6, when the manager terminal 320 receives the flow creation button 420, it can display a panel for creating a new flow to the manager. Through this, the administrator can create a new flow by entering the flow name and representative example sentences.

2. 다시, 도 3을 참조하면, 서버(310)는 대표 예문을 머신러닝 모델에 전달할 수 있다. 머신러닝 모델은 대표 예문을 다차원 벡터로 변환하여, 서버(310)로 전달할 수 있다. 예를 들어, 머신러닝 모델은 대표 예문을 768차원의 벡터로 변환할 수 있다. 머신러닝 모델이 어떤 Tokenizer 혹은 Vectorizer를 사용하느냐에 따라 아웃풋의 차원은 상이할 수 있다.2. Referring again to FIG. 3, the server 310 may transmit a representative example sentence to the machine learning model. The machine learning model can convert representative example sentences into multidimensional vectors and transmit them to the server 310. For example, a machine learning model can convert a representative example sentence into a 768-dimensional vector. The dimension of the output may be different depending on which Tokenizer or Vectorizer the machine learning model uses.

3. 서버(310)는 플로우의 생성일자, 및 생성한 사람 등의 메타 데이터를 생성하고, 데이터 베이스에 추가한다. 이를 통해, 관리자는 플로우를 업데이트하고, 관리할 수 있다.3. The server 310 creates metadata, such as the flow creation date and the person who created it, and adds it to the database. Through this, administrators can update and manage flows.

4-1. 예를 들어, 서버(310)는 플로우에 대한 메타 데이터를 Relational Database(RDB)에 저장할 수 있다.4-1. For example, the server 310 may store metadata about flows in a relational database (RDB).

4-2. 예를 들어, 서버(310)는 머신러닝 모델을 통해, 변환된 벡터 및 관련된 메타 데이터를 Vector Database에 저장할 수 있다.4-2. For example, the server 310 may store the converted vector and related metadata in a vector database through a machine learning model.

도 7은 본 명세서가 적용될 수 있는 대표 예문 데이터를 예시한다.Figure 7 illustrates representative example sentence data to which this specification can be applied.

도 7을 참조하면, 대표 예문이 "주문 하려구요"인 경우, 대표 예문에 대응되는 메타데이터, ID, 및 변환된 벡터를 예시한다. 이러한 데이터는 대표 예문 별로 생성되어, 관리될 수 있고, 관리자는 관리자 단말(320)을 통해, 이를 확인할 수 있다.Referring to FIG. 7, when the representative example sentence is “I want to order,” the metadata, ID, and converted vector corresponding to the representative example sentence are illustrated. Such data can be generated and managed for each representative example sentence, and the manager can check it through the manager terminal 320.

5. 다시, 도 3을 참조하면, 서버(310)는 전술한 절차들의 성공/실패 여부를 관리자 단말(320)에게 리턴할 수 있다. 관리자는 관리자 단말(320)을 통해, 플로우가 성공적으로 생성되었는 지 확인할 수 있다.5. Referring again to FIG. 3, the server 310 may return the success/failure of the above-described procedures to the manager terminal 320. The administrator can check whether the flow was successfully created through the administrator terminal 320.

도 8은 본 명세서에 적용될 수 있는 플로우 예문 생성의 파이프라인의 예시이다.Figure 8 is an example of a pipeline for generating flow examples that can be applied to this specification.

도 8을 참조하면, 서버(310)는 LLM을 통해, 플로우의 예문을 자동으로 생성할 수 있다. 예를 들어, 대규모 언어 모델(Large Language Model)은 인공 지능(AI) 시스템의 한 유형으로, 대량의 텍스트 데이터를 학습하여 인간과 유사한 언어를 이해하고 생성할 수 있는 능력을 갖고 있는 모델이다. 이러한 모델은 텍스트 생성, 텍스트 완성, 언어 번역, 텍스트 요약 및 기타 다양한 자연어 처리 작업을 수행할 수 있다. 대규모 언어 모델의 잘 알려진 예로는 OpenAI에서 개발한 GPT-3가 있다. 서버(310)는 필요할 경우, 외부 서버에서 제공하는 LLM과 연결될 수 있다.Referring to FIG. 8, the server 310 can automatically generate flow example sentences through LLM. For example, a Large Language Model is a type of artificial intelligence (AI) system that has the ability to understand and generate human-like language by learning large amounts of text data. These models can perform text generation, text completion, language translation, text summarization, and a variety of other natural language processing tasks. A well-known example of a large-scale language model is GPT-3 developed by OpenAI. If necessary, the server 310 can be connected to an LLM provided by an external server.

다만, 이러한 LLM 사용은 과도한 비용을 발생시킬 수 있다. 예를 들어, 모델을 학습시키기 위해 필요한 하드웨어 및 클라우드 서비스 비용, 학습된 모델을 운영 환경에서 사용하는 데 필요한 비용, 및 모델 학습 및 인퍼런스에 사용되는 데이터의 전처리 및 관리 비용이 과도하게 발생할 수 있다.However, such use of LLM may incur excessive costs. For example, the cost of hardware and cloud services required to train a model, the cost of using the learned model in an operational environment, and the cost of preprocessing and management of data used for model training and inference may be excessive. there is.

따라서, 본 명세서에서 서버(310)는 LLM을 최소한으로 이용하여, 플로우의 예문 후보를 효율적으로 생성하는 방법을 예시한다.Accordingly, in this specification, the server 310 exemplifies a method of efficiently generating example sentence candidates for a flow by minimally using LLM.

플로우의 예문은 사용자의 질의를 찾기 위한 문장으로서, 서버(310)에 많은 예문이 설정될 수록, 서버(310)가 제공하는 챗봇은 좋은 성능을 발휘할 수 있다.Flow example sentences are sentences for finding a user's inquiry. The more example sentences are set in the server 310, the better the chatbot provided by the server 310 can perform.

예를 들어, 플로우 이름이 "고객센터 운영시간" 이고, 대표 예문이 "현재 고객센터는 몇시까지 운영되나요?"인 경우, 대표 예문과 유사한 질의와 관련된 하나 이상의 예문들이 "고객센터 운영시간"이라는 플로우에 설정될 수 있다.For example, if the flow name is "Customer Center Operating Hours" and the representative example sentence is "What hours is the Customer Center currently open?", one or more example sentences related to queries similar to the representative example sentence will be "Customer Center Operating Hours". Can be set in flow.

1. 관리자 단말(320)은 서버(310)로 플로우 예문 자동생성을 위한 명령을 전달한다. 예를 들어, 관리자는 관리자 단말(320)을 통해, 플로우 예문 자동생성 버튼을 입력하여, 플로우 예문 자동생성을 위한 명령을 서버(310)로 전달할 수 있다.1. The administrator terminal 320 transmits a command to automatically generate a flow example sentence to the server 310. For example, the administrator may input a button for automatically generating flow examples through the administrator terminal 320 and transmit a command for automatically generating flow examples to the server 310.

2. 서버(310)는 Vector Database를 통해, 해당 플로우의 대표 예문을 쿼리(Query)한다. 예를 들어, 관리자가 "고객센터 운영시간" 플로우의 예문 자동생성을 요청한 경우, 서버(310)는 대표 예문인 "현재 고객센터는 몇시까지 운영되나요?"를 쿼리하여 획득할 수 있다.2. The server 310 queries representative examples of the flow through the Vector Database. For example, if the administrator requests automatic generation of an example sentence for the “Customer Center Operating Hours” flow, the server 310 can obtain the representative example sentence by querying “What time is the customer center currently open?”

3. 서버(310)는 LLM으로, 대표 예문과 문맥적으로 유사한 예문 생성을 위한 프롬프트를 입력한다. LLM은 프롬프트에 대한 응답으로서, 예문 후보들을 생성하여, 서버(310)로 전달할 수 있다. 예를 들어, LLM은 프롬프트에 대한 응답으로서, 파이썬 리스트 형식을 갖는 5개의 예문 후보를 생성할 수 있다.3. The server 310 is the LLM and inputs a prompt for generating an example sentence that is contextually similar to the representative example sentence. The LLM can generate candidate example sentences as a response to the prompt and transmit them to the server 310. For example, LLM can generate five example sentence candidates in Python list format as responses to a prompt.

4. 서버(310)는 생성된 예문 후보들을 관리자 단말(320)로 전달한다. 관리자 단말(320)은 예문 후보들을 테이블 형태로 관리자에게 표시할 수 있다. 관리자는 예문 후보들을 통해, 생성된 대표 예문과 유사한 예문을 확인할 수 있다.4. The server 310 delivers the generated example sentence candidates to the manager terminal 320. The manager terminal 320 may display example sentence candidates in a table form to the manager. The administrator can check example sentences similar to the generated representative example sentences through the example sentence candidates.

5. 관리자 단말(320)은 생성된 예문 후보들에 근거하여, 최종 예문을 서버(310)로 전달한다. 예를 들어, 관리자는 관리자 단말(320)을 통해, 최종 예문을 다중선택할 수 있다. 관리자 단말(320)이 관리자로부터, "예문으로 적용"이라는 버튼을 입력받으면, 선택된 예문들은 서버(310)로 전송할 수 있다.5. The manager terminal 320 delivers the final example sentence to the server 310 based on the generated example sentence candidates. For example, the administrator can multiple select the final example sentence through the administrator terminal 320. When the administrator terminal 320 receives a button “Apply as an example sentence” from the administrator, the selected example sentences can be transmitted to the server 310.

6. 서버(310)는 최종 예문들을 머신러닝 모델로 전달하여, 자연어처리 vectorizer를 통해 벡터화 시킬 수 있다.6. The server 310 can transmit the final example sentences to the machine learning model and vectorize them through a natural language processing vectorizer.

7. 서버(310)는 최종 예문들의 메타데이터(예를 들어, 어느 플로우에 귀속된 예문인지, 언제 생성되었는지 등)를 생성하고, 데이터베이스의 스키마에 맞게 데이터를 정렬하여, 데이터베이스에 추가할 수 있다.7. The server 310 may generate metadata of the final example sentences (e.g., which flow the example sentence belongs to, when it was created, etc.), sort the data according to the schema of the database, and add it to the database. .

7-1. 서버(310)는 최종 예문들의 변환된 벡터와 원본 텍스트, 메타 데이터를 Vector DB에 저장하고 추가된 예문에 대응하여, 자동 생성된 primary key(기본키)를 반환할 수 있다. 예를 들어, primary key는 고유한 식별자로 생성될 수 있다. 이 식별자는 예문을 나타내는 유일한 키로 사용될 수 있다.7-1. The server 310 stores the converted vector, original text, and metadata of the final example sentences in Vector DB and returns an automatically generated primary key in response to the added example sentences. For example, a primary key can be created as a unique identifier. This identifier can be used as a unique key to represent an example sentence.

7-2. 서버(310)는 반환된 primary key를 RDB의 해당 플로우에 추가할 수 있다. primary key는 서로 다른 데이터베이스 (Vector DB와 RDB) 사이에서 연결을 설정하는 역할을 할 수 있다. 서버(310)는 이러한 관계를 설정하기 위해 반환된 primary key를 RDB의 해당 플로우 내에서 사용하여, 예문을 플로우와 연결할 수 있다. 이것은 일종의 참조 역할을 하며, 예문이 어떤 플로우에 속하는지 식별하는 데 사용될 수 있다. 이것은 RDB의 Foreign Key와 비슷한 역할을 할 수 있다.7-2. The server 310 may add the returned primary key to the corresponding flow in the RDB. The primary key can serve to establish a connection between different databases (Vector DB and RDB). To establish this relationship, the server 310 can use the returned primary key within the corresponding flow of the RDB to connect the example sentence with the flow. This serves as a kind of reference and can be used to identify which flow the example belongs to. This can play a similar role to RDB's Foreign Key.

8. 서버(310)는 전술한 절차들의 성공/실패 여부를 관리자 단말(320)에게 리턴할 수 있다. 관리자는 관리자 단말(320)을 통해, 플로우의 예문들이 성공적으로 생성되었는 지 확인할 수 있다.8. The server 310 may return the success/failure of the above-described procedures to the manager terminal 320. The administrator can check whether the example sentences of the flow have been successfully created through the administrator terminal 320.

전술한 도 3 내지 도 8까지의 절차들을 통해, 서버(310)는 사용자로부터 질의를 받기 위한 플로우를 구축할 수 있다.Through the above-described procedures of FIGS. 3 to 8, the server 310 can build a flow to receive inquiries from users.

이를 통해, 본 명세서에서 서버(310)는 거대 언어 모델(Large Language Model:LLM)를 통해, 질의와 문맥적으로 유사한 예문을 자동 생성하기 때문에 챗봇 이용자의 질의 예문 데이터를 구축하기 위한 시간과 투입 인력에 대한 비용을 절감할 수 있다.Through this, in this specification, the server 310 automatically generates example sentences that are contextually similar to the query through a large language model (LLM), so it saves time and input manpower to build example sentence data for chatbot users' queries. Costs can be reduced.

도 9는 본 명세서가 적용될 수 있는 지식 파일의 활성화 절차의 예시이다.Figure 9 is an example of the activation procedure of a knowledge file to which this specification can be applied.

본 명세서에서, 지식이란, 제조, 유통, 금융, 통신, 의료. 교육. 법률 서비스, 공공기관 등 모든 산업의 업무규정 및 지침서 또는 교육 내용 등을 담고 있는 문서 파일을 의미할 수 있다.In this specification, knowledge refers to manufacturing, distribution, finance, communication, and medicine. education. It can refer to a document file containing business regulations, guidelines, or educational content for all industries, including legal services and public institutions.

서버(310)는 지식 파일을 이용하여, 사용자의 질의에 대한 답변을 생성하고 제공할 수 있다.The server 310 can generate and provide answers to user inquiries using knowledge files.

1. 서버(310)는 지식 파일을 획득한다. 예를 들어, 관리자는 관리자 단말(320)을 통해, 챗봇 서비스에서 활용하기 위한, 지식이 담긴 파일을 서버에 업로드할 수 있다. 관리자는 관리자 단말(320)을 통해, 표시되는'지식'화면에서 지식 파일을 직접 선택하거나 드래그앤 드롭하여 서버(310)에 업로드를 할 수 있다. 1. The server 310 acquires a knowledge file. For example, the administrator can upload a file containing knowledge for use in the chatbot service to the server through the administrator terminal 320. The administrator can directly select a knowledge file from the 'knowledge' screen displayed through the administrator terminal 320 or upload it to the server 310 by dragging and dropping it.

도 10은 본 명세서가 적용될 수 있는 지식 화면을 예시한다.Figure 10 illustrates a knowledge screen to which this specification can be applied.

도 10을 참조하면, 관리자는 지식 화면의 지식 파일 업로드 필드(1010)에 지식 파일들을 드래그앤 드롭 방식으로 업로드 할 수 있다. 관리자는 필요한 지식 파일을 활성화(1000)할 수 있다. 예를 들어, 관리자가 업로드한 지식 파일들은 클라우드 서버를 통해, 저장되고 관리될 수 있다.Referring to FIG. 10, the administrator can upload knowledge files to the knowledge file upload field 1010 of the knowledge screen by dragging and dropping. The administrator can activate (1000) the necessary knowledge files. For example, knowledge files uploaded by an administrator can be stored and managed through a cloud server.

2. 다시, 도 9를 참조하면, 서버(310)는 관리자의 authentication(인증)을 확인하고, 업로드 된 파일을 관리자가 속한 그룹의 스토리지에 저장할 수 있다.2. Referring again to FIG. 9, the server 310 may confirm the administrator's authentication and store the uploaded file in the storage of the group to which the administrator belongs.

3. 서버(310)는 지식 활성화를 명령받는다. 예를 들어, 지식 파일을 로딩하기 위해, 관리자는 관리자 단말(320)을 통해, 지식 화면에서 로딩하고자 하는 지식 파일에 대응하는 지식 활성화 버튼(1000)을 입력할 수 있다.3. The server 310 is commanded to activate knowledge. For example, to load a knowledge file, the administrator may input the knowledge activation button 1000 corresponding to the knowledge file to be loaded on the knowledge screen through the administrator terminal 320.

도 11은 본 명세서가 적용될 수 있는 지식 파일의 활성화 표시를 예시한다.11 illustrates an activation indication of a knowledge file to which this specification can be applied.

도 11을 참조하면, 관리자가 활성화 버튼(1000)을 입력하여, 대응되는 지식 파일의 변환/활성화 과정이 완료되면, 관리자 단말(320)은 활성화 상태를 관리자에게 표시할 수 있다.Referring to FIG. 11, when the administrator inputs the activation button 1000 and the conversion/activation process of the corresponding knowledge file is completed, the administrator terminal 320 may display the activation status to the administrator.

4. 다시, 도 9를 참조하면, 서버(310)는 지식 파일을 스토리지로부터 로딩할 수 있다. 서버(310)는 로딩된 지식 파일에 대응되는 지식 테이블의 지식 활성화 컬럼을 "활성화 됨" 으로 전환할 수 있다.4. Again, referring to FIG. 9, the server 310 may load the knowledge file from storage. The server 310 may switch the knowledge activation column of the knowledge table corresponding to the loaded knowledge file to “activated.”

5. 서버(310)는 지식 파일에서 텍스트를 추출하고, 파싱한다.5. The server 310 extracts text from the knowledge file and parses it.

6. 서버(310)는 추출된 텍스트에 대해, 파일 형식별(예를 들어, Word, HWP, PDF 등)로 전처리를 수행할 수 있다. 이러한 전처리 과정은 유의미한 chunk를 분할하기 위해 수행될 수 있다. 예를 들어, 서버(310)는 PDF 형식의 텍스트 파일에 대한 전처리를 수행할 수 있다. 보다 자세하게, 서버(310)는 정규표현식을 사용하여, 3개 이상의 줄바꿈은 2개의 줄바꿈으로 교체하고, 2개 이상의 띄어쓰기는 1개의 띄어쓰기로 교체할 수 있다.6. The server 310 may perform preprocessing on the extracted text by file format (eg, Word, HWP, PDF, etc.). This preprocessing process can be performed to split meaningful chunks. For example, the server 310 may perform preprocessing on a text file in PDF format. More specifically, the server 310 can use regular expressions to replace three or more line breaks with two line breaks and two or more spaces with one space.

7. 서버(310)는 텍스트를 chunk로 분할할 수 있다. 본 명세서에서 chunk란 유사한 문맥을 가진 텍스트들의 유의미한 집합일 수 있다. 예를 들어, 서버(310)는 1개의 chunk를 1개의 문단으로 규정할 수 있다. 이러한 문단의 기준은 한번 이상의 줄바꿈일 수 있으며, 같은 문단일지라도 다음 페이지로 넘어가면, 페이지를 기준으로 문단을 2개로 분할할 수 있다. 다만, 다음 페이지에서 잘린 문장은 이전 문단으로 편입될 수 있다. 7. The server 310 may split the text into chunks. In this specification, a chunk may be a meaningful set of texts with similar context. For example, the server 310 may define one chunk as one paragraph. The standard for such a paragraph may be one or more line breaks, and even if it is the same paragraph, when moving to the next page, the paragraph can be divided into two based on the page. However, sentences cut from the next page may be incorporated into the previous paragraph.

8. 서버(310)는 머신러닝 모델을 통해, chunk를 벡터화할 수 있다.8. The server 310 can vectorize chunks through a machine learning model.

9. 서버(310)는 변환된 벡터와 변환 전 텍스트, 및/또는 메타데이터(예를 들어, 어느 파일 몇 페이지에서 추출된 chunk 인지, 파일 생성 일자 등)를 Vector DB에 저장할 수 있다.9. The server 310 may store the converted vector, text before conversion, and/or metadata (e.g., chunk extracted from which file page, file creation date, etc.) in Vector DB.

도 12는 본 명세서가 적용될 수 있는 지식 데이터를 예시한다.Figure 12 illustrates knowledge data to which this specification can be applied.

도 12를 참조하면, 지식이 "도입을 한 곳들도 품질 강화를 위해 서비스 고도화에 속도를 내는 모습이다"인 경우, 지식에 대응되는 메타데이터, ID, 및 변환된 벡터를 예시한다. 이러한 데이터는 지식 별로 생성되어, 관리될 수 있고, 관리자는 관리자 단말(320)을 통해, 이를 확인할 수 있다.Referring to FIG. 12, when the knowledge is "Places that have introduced it also appear to be speeding up service advancement to enhance quality," the metadata, ID, and converted vector corresponding to the knowledge are exemplified. Such data can be created and managed for each knowledge, and the manager can check it through the manager terminal 320.

10. 다시, 도 9를 참조하면, 서버(310)는 전술한 절차들의 성공/실패 여부를 관리자 단말(320)에게 리턴할 수 있다. 관리자는 관리자 단말(320)을 통해, 지식 활성화가 성공적으로 수행되었는 지 확인할 수 있다.10. Referring again to FIG. 9, the server 310 may return the success/failure of the above-described procedures to the manager terminal 320. The administrator can check whether knowledge activation has been successfully performed through the administrator terminal 320.

도 13은 본 명세서가 적용될 수 있는 챗봇 사용자의 질의를 플로우로 분류하는 절차를 예시한다.Figure 13 illustrates a procedure for classifying a chatbot user's inquiry into a flow to which this specification can be applied.

도 13을 참조하면, 서버는 전술한 절차를 통해, 플로우가 설정되고, 지식 데이터를 포함할 수 있다. 예를 들어, 서버는 전술한 도 3의 동작을 수행하여, 플로우를 생성할 수 있고, 전술한 도 8의 동작에 따라, 플로우에 하나 이상의 예문을 생성할 수 있다. 또한, 전술한 도 9의 동작에 따라, 지식 파일이 활성화된 상태를 갖을 수 있다.Referring to FIG. 13, the server may set a flow and include knowledge data through the above-described procedure. For example, the server may generate a flow by performing the operation of FIG. 3 described above, and may generate one or more example sentences in the flow according to the operation of FIG. 8 described above. Additionally, according to the operation of FIG. 9 described above, the knowledge file may be in an activated state.

서버는 사용자 단말로부터, 질의를 입력받는다(S1310). 예를 들어, 사용자는 사용자 단말을 통해, 서버가 제공하는 챗봇 서비스를 이용할 수 있다. 예를 들어, 이러한 챗봇 서비스는 웹/어플 형태로 제공될 수 있으며, 사용자는 챗봇 서비스가 제공하는 채팅방을 통해, 질의를 텍스트 형태로 입력할 수 있다.The server receives a query from the user terminal (S1310). For example, a user can use a chatbot service provided by the server through the user terminal. For example, these chatbot services may be provided in web/app format, and users can enter queries in text form through a chat room provided by the chatbot service.

서버는 입력받은 질의를 벡터화한다(S1320). 서버는 질의를 자연어처리 vectorizer를 통해 벡터화 시킬 수 있다. 예를 들어, 서버는 질의 텍스트를 768차원의 벡터로 변환시킬 수 있으며, 전술한 vectorizer와 같은 vectorizer를 사용할 수 있다.The server vectorizes the input query (S1320). The server can vectorize queries through a natural language processing vectorizer. For example, the server can convert the query text into a 768-dimensional vector and use a vectorizer such as the vectorizer described above.

서버는 질의와 예문들의 유사도를 판단한다(S1330). 예를 들어, 서버는 Vector DB에 포함된 예문들의 벡터들과 질의의 벡터를 비교하여, 벡터간의 유사도를 판단할 수 있다. 보다 자세하게, 서버는 대표 예문 및/또는 도 7의 동작을 수행하여 추가한 예문들의 벡터들과 질의를 벡터화한 벡터간의 유사도를 비교할 수 있다.The server determines the similarity between the query and the example sentences (S1330). For example, the server can compare the vectors of example sentences included in the Vector DB with the vector of the query to determine the degree of similarity between the vectors. In more detail, the server can compare the similarity between vectors of representative example sentences and/or example sentences added by performing the operation of FIG. 7 and vectors that vectorize the query.

서버는 유사도에 근거하여, 플로우를 반환한다(S1340).The server returns a flow based on similarity (S1340).

예를 들어, 서버는 유사도가 가장 높은 3개의 벡터를 구한 뒤, 플로우를 voting 할 수 있다. 예를 들어, Voting 이란 앙상블(Ensemble) 학습의 한 형태를 의미할 수 있다. 앙상블 학습은 여러 다른 기계 학습 모델을 결합하여 단일 모델보다 더 강력한 예측 능력을 제공하려는 목적으로 사용된다. Voting은 앙상블의 한 방법으로, 다수의 모델의 예측을 조합하여 최종 예측을 수행하는 방식을 나타낼 수 있다. 예를 들어, 3개 벡터들의 플로우가 [flow A, flow B, flow A]로 voting 되었다면, 질의는 flow A로 분류될 수 있다.For example, the server can obtain the three vectors with the highest similarity and then vote on the flow. For example, voting may refer to a form of ensemble learning. Ensemble learning is used to combine several different machine learning models to provide stronger predictive power than a single model. Voting is a method of ensemble and can refer to a method of performing the final prediction by combining predictions from multiple models. For example, if the flows of three vectors were voted as [flow A, flow B, flow A], the query can be classified as flow A.

서버는 반환된 플로우에 근거하여, 사용자 단말로 답변을 전달한다(S1350). 예를 들어, 서버는 반환된 플로우에 따라 쿼리된 답변을 사용자 단말로 전달할 수 있고, 사용자 단말은 챗봇이 제공하는 답변으로서, 사용자에게 답변을 표시할 수 있다.The server delivers a response to the user terminal based on the returned flow (S1350). For example, the server can deliver the queried answer to the user terminal according to the returned flow, and the user terminal can display the answer to the user as the answer provided by the chatbot.

도 14는 본 명세서가 적용될 수 있는 지식 파일에 근거한 답변 제공을 예시한다.Figure 14 illustrates providing an answer based on a knowledge file to which this specification can be applied.

도 14를 참조하면, 서버는 S1340에서 적합한 플로우를 반환하지 못한 경우, 지식 파일에 근거하여, 답변을 사용자에게 제공할 수 있다. 예를 들어, 서버가 예문들의 벡터들과 질의의 벡터를 비교하여, 벡터간의 유사도를 판단하였는데, 그 유사도가 임계치에 미치지 못하거나, voting 결과가 동점인 경우에, 서버는 적합한 플로우가 발견되지 않은 것으로 판단하여, 지식 파일에 근거하여, 사용자에게 답변을 제공할 수 있다.Referring to FIG. 14, if the server fails to return an appropriate flow in S1340, it may provide an answer to the user based on the knowledge file. For example, the server compares the vectors of example sentences and the vector of the query to determine the similarity between the vectors, but if the similarity does not reach the threshold or the voting result is a tie, the server determines the similarity between the vectors and the vector of the query. Based on the knowledge file, an answer can be provided to the user.

서버는 질의에 근거하여, 지식을 검색한다(S1410). 예를 들어, 서버는 지식 파일이 벡터화되어 저장된 Vector DB에서 질의 벡터와 유사한 지식 벡터를 검색할 수 있다. 지식 파일은 chunk 단위로 벡터화되어, 지식은 chunk에 대응될 수 있다.The server searches for knowledge based on the query (S1410). For example, the server can search for a knowledge vector similar to the query vector from Vector DB, where knowledge files are vectorized and stored. Knowledge files are vectorized in chunks, so knowledge can correspond to chunks.

서버는 질의와 지식의 유사도를 판단한다(S1420). 예를 들어, 서버는 가장 유사도가 높은 지식, 또는 임계치를 넘는 유사도를 갖는 지식을 판단할 수 있다.The server determines the similarity between the query and knowledge (S1420). For example, the server may determine knowledge with the highest similarity, or knowledge with a similarity exceeding a threshold.

서버는 유사도에 근거하여, 지식을 반환한다(S1430). 예를 들어, 서버는 가장 유사도가 높은 chunk(관리자 설정에 따라 복수개가 될 수 있음)를 추출하여, LLM에 입력되는 프롬프트를 생성할 수 있다.The server returns knowledge based on similarity (S1430). For example, the server can extract the chunks with the highest similarity (which can be multiple depending on administrator settings) and create a prompt that is input into the LLM.

서버는 반환된 지식에 근거하여, 사용자 단말로 답변을 전달한다(S1440). 서버는 반환된 chunk에 근거하여, 답변 생성을 위한 프롬프트를 생성할 수 있다. 서버는 생성된 프롬프트를 LLM에 입력하여, 답변을 생성하고, 관리자 단말로 전달할 수 있다.The server delivers an answer to the user terminal based on the returned knowledge (S1440). The server can generate a prompt to generate an answer based on the returned chunk. The server can input the generated prompt into the LLM, generate an answer, and deliver it to the administrator terminal.

도 15는 본 명세서가 적용될 수 있는 답변 생성을 위한 프롬프트를 예시한다.15 illustrates a prompt for generating an answer to which this disclosure may be applied.

도 15를 참조하면, 서버는 LLM에 반환된 2개의 chunk(paragraph)를 제공할 수 있다. 예를 들어, 서버는 LLM에 질의를 질문(user_input)으로 등록할 수 있다. LLM은 질의를 두 개의 chunk로부터 찾을 수 있다면, 답변을 찾아 문맥에 맞게 생성하여 파이썬의 dictionary 형태로 반환할 수 있다{'answer': ____ }. 만약, LLM이 답변을 찾을 수 없다면 {'answer': 'No answer'}를 반환할 수 있다.Referring to FIG. 15, the server may provide two chunks (paragraphs) returned to the LLM. For example, the server can register a query in LLM as a question (user_input). If LLM can find a query from two chunks, it can find the answer, create it according to the context, and return it in Python dictionary format {'answer': ____ }. If LLM cannot find an answer, it may return {'answer': 'No answer'}.

도 16은 본 명세서가 적용될 수 있는 서버의 일 실시예이다.Figure 16 is an embodiment of a server to which this specification can be applied.

도 16을 참조하면, 서버는 챗봇 사용자의 질의에 대한 답변 생성을 구현하기 위해, 전술한 동작들을 수행할 수 있다. 서버는 플로우 분류 예측 정확도 개선을 위해, LLM을 이용하여, 플로우에 예문을 추가할 수 있다.Referring to FIG. 16, the server may perform the above-described operations to implement answer generation to the chatbot user's inquiry. The server can use LLM to add example sentences to the flow to improve flow classification prediction accuracy.

서버는 답변을 생성하기 위한 플로우를 생성한다(S1610). 예를 들어, 플로우는 사용자의 질의와 관련된 대표 예문, 및/또는 질의에 대한 답변을 포함할 수 있다.The server creates a flow to generate an answer (S1610). For example, the flow may include representative example sentences related to the user's query, and/or answers to the query.

서버는 LLM에 예문 생성을 위한 프롬프트를 입력한다(S1620). 예를 들어, 서버는 대표 예문과 유사한 예문 생성을 위한 프롬프트를 생성하고, LLM에 입력할 수 있다.The server inputs a prompt for generating an example sentence into the LLM (S1620). For example, the server can generate a prompt for generating example sentences similar to representative example sentences and input them into the LLM.

서버는 LLM으로부터, 예문을 획득한다(S1630). 예를 들어, 서버는 프롬프트에 따라, LLM에서 생성된 예문을 획득할 수 있다.The server obtains an example sentence from the LLM (S1630). For example, the server can obtain example sentences generated by LLM according to the prompt.

서버는 예문을 플로우에 추가한다(S1640). 예를 들어, 서버는 예문을 머신러닝 모델을 통해, 벡터화 시키고, 저장할 수 있다. 이후, 서버는 예문과 관련된 기본키를 반환하고, 기본키를 이용하여, 예문을 플로우에 추가할 수 있다.The server adds an example sentence to the flow (S1640). For example, the server can vectorize and store example sentences through a machine learning model. Afterwards, the server returns the primary key related to the example sentence, and using the primary key, the example sentence can be added to the flow.

서버는 사용자 단말로부터, 질의를 입력받고, 이를 벡터화하여 플로우 상의 대표 예문, 또는 예문들과 유사도를 판단할 수 있다. 서버는 판단된 유사도에 따라 플로우를 반환하고, 플로우에 따라 사용자에게 답변을 제공할 수 있다.The server can receive a query from a user terminal, vectorize it, and determine the degree of similarity to a representative example sentence or example sentences in the flow. The server returns a flow according to the determined similarity and can provide an answer to the user according to the flow.

만일, 질의와 매칭될 수 있는 플로우가 없는 경우, 답변을 추출하기 위해, 서버는 지식 파일을 업로드 받을 수 있다. 서버는 지식 파일로부터 텍스트를 추출하고, 벡터화하여 저장할 수 있다. 보다 자세하게, 서버는 추출된 텍스트를 청크로 분할하고, 벡터화하여 저장할 수 있다.If there is no flow that can match the query, the server can upload a knowledge file to extract the answer. The server can extract text from knowledge files, vectorize it, and store it. More specifically, the server can split the extracted text into chunks, vectorize them, and store them.

서버는 저장된 청크의 벡터를 통해, 지식 파일을 로딩할 수 있다. 이렇게 로딩된 청크의 벡터는 벡터화된 질의와 비교하여, 답변 생성에 사용될 수 있다.The server can load knowledge files through vectors of stored chunks. Vectors of these loaded chunks can be used to generate answers by comparing them to vectorized queries.

도 17 및 도 18은 본 명세서가 적용될 수 있는 관리자 단말의 일 실시예이다.17 and 18 are examples of a manager terminal to which this specification can be applied.

도 17을 참조하면, 관리자는 관리자 단말을 통해, LLM으로부터, 예문을 획득하고, 플로우에 예문을 추가할 수 있다. 예를 들어, 관리자는 관리자 단말을 통해, 예문을 추가하고자 하는 플로우를 확인할 수 있다. 관리자가 시작 노드를 클릭하면, 관리자 단말은 설정화면(500)을 표시하고, 관리자로부터, 예문 생성 버튼(1700)을 입력받으면, 서버로 플로우 예문 자동생성을 위한 명령을 전달할 수 있다. 서버는 S1620 및 S1630의 절차를 통해, 예문을 획득하고, 획득된 예문들을 관리자 단말로 전달할 수 있다. 관리자 단말은 자동생성된 예문들의 리스트를 관리자에게 표시할 수 있다. 관리자는 예문들의 리스트에 근거하여, 적용하고자 하는 하나 이상의 예문을 선택(1720)할 수 있다.Referring to FIG. 17, the administrator can obtain an example sentence from LLM through the administrator terminal and add the example sentence to the flow. For example, the administrator can check the flow for which an example sentence is to be added through the administrator terminal. When the administrator clicks the start node, the administrator terminal displays the settings screen 500, and when the example sentence generation button 1700 is input from the administrator, a command for automatically generating a flow example sentence can be transmitted to the server. The server may obtain example sentences through the procedures of S1620 and S1630 and transmit the obtained example sentences to the administrator terminal. The administrator terminal can display a list of automatically generated example sentences to the administrator. Based on the list of example sentences, the administrator may select (1720) one or more example sentences to be applied.

도 18을 참조하면, 관리자 단말은 관리자로부터 선택받은 예문을 당해 플로우의 예문 목록(1810)에 추가할 수 있다. 예를 들어, 관리자가 체크박스 입력을 통해, 예문을 선택(1720)하고, "예문으로 적용"(1730) 버튼을 입력하면, 관리자 단말은 선택받은 예문을 예문 목록(1810)에 추가하여, 관리자에게 표시할 수 있다. 관리자는 예문 목록(1810)을 확인하고, "적용"(1800) 버튼을 입력할 수 있고, 관리자 단말은 서버로 최종 예문을 전달하고, 서버는 S1640 동작을 통해, 최종 예문을 플로우에 추가할 수 있다.Referring to FIG. 18, the manager terminal can add the example sentence selected by the manager to the example sentence list 1810 of the flow. For example, when the administrator selects an example sentence by inputting a checkbox (1720) and inputs the “Apply as example sentence” (1730) button, the administrator terminal adds the selected example sentence to the example sentence list (1810), can be displayed. The administrator can check the example sentence list (1810) and enter the “Apply” (1800) button, the administrator terminal transmits the final example sentence to the server, and the server can add the final example sentence to the flow through operation S1640. there is.

전술한 본 명세서는, 프로그램이 기록된 매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 매체는, 컴퓨터 시스템에 의하여 읽혀 질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 매체의 예로는, HDD(Hard Disk Drive), SSD(Solid State Disk), SDD(Silicon Disk Drive), ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있으며, 또한 캐리어 웨이브(예를 들어, 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 따라서, 상기의 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니되고 예시적인 것으로 고려되어야 한다. 본 명세서의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 명세서의 등가적 범위 내에서의 모든 변경은 본 명세서의 범위에 포함된다.The above-mentioned specification can be implemented as computer-readable code on a program-recorded medium. Computer-readable media includes all types of recording devices that store data that can be read by a computer system. Examples of computer-readable media include HDD (Hard Disk Drive), SSD (Solid State Disk), SDD (Silicon Disk Drive), ROM, RAM, CD-ROM, magnetic tape, floppy disk, optical data storage device, etc. This also includes those implemented in the form of carrier waves (e.g., transmission via the Internet). Accordingly, the above detailed description should not be construed as restrictive in all respects and should be considered illustrative. The scope of this specification should be determined by reasonable interpretation of the appended claims, and all changes within the equivalent scope of this specification are included in the scope of this specification.

또한, 이상에서 서비스 및 실시 예들을 중심으로 설명하였으나 이는 단지 예시일 뿐 본 명세서를 한정하는 것이 아니며, 본 명세서가 속하는 분야의 통상의 지식을 가진 자라면 본 서비스 및 실시 예의 본질적인 특성을 벗어나지 않는 범위에서 이상에 예시되지 않은 여러 가지의 변형과 응용이 가능함을 알 수 있을 것이다. 예를 들어, 실시 예들에 구체적으로 나타난 각 구성 요소는 변형하여 실시할 수 있는 것이다. 그리고 이러한 변형과 응용에 관계된 차이점들은 첨부한 청구 범위에서 규정하는 본 명세서의 범위에 포함되는 것으로 해석되어야 할 것이다.In addition, although the above description focuses on the services and embodiments, this is only an example and does not limit the present specification, and those of ordinary skill in the field to which this specification pertains will understand that it does not deviate from the essential characteristics of the services and embodiments. It can be seen that various modifications and applications not exemplified above are possible. For example, each component specifically shown in the embodiments can be modified and implemented. And the differences related to these modifications and applications should be construed as being included in the scope of the present specification as defined in the attached claims.

Claims (8)

서버가 챗봇 사용자의 질의에 대한 답변 생성을 구현하기 위한 방법에 있어서,
상기 답변을 생성하기 위한 플로우를 생성하는 단계; 로서, 상기 플로우는 상기 질의와 관련된 대표 예문을 포함함;
거대 언어 모델(Large Language Model, LLM)에 상기 대표 예문에 근거하여, 상기 대표 예문과 유사한 예문을 생성하기 위한 프롬프트를 입력하는 단계;
상기 거대 언어 모델로부터, 상기 예문를 획득하는 단계; 및
상기 예문을 상기 플로우에 추가하는 단계;
를 포함하며,
상기 예문은 상기 플로우에 종속하고, 상기 질의와 매칭될 수 있는 문장인,
구현 방법.
In a method for a server to generate an answer to a chatbot user's inquiry,
creating a flow for generating the answer; As, the flow includes representative example sentences related to the query;
Entering a prompt for generating an example sentence similar to the representative example sentence in a Large Language Model (LLM) based on the representative example sentence;
Obtaining the example sentence from the large language model; and
adding the example sentence to the flow;
Includes,
The example sentence is a sentence that is dependent on the flow and can match the query,
How to implement it.
제1항에 있어서,
상기 예문을 상기 플로우에 추가하는 단계는
상기 예문을 머신러닝 모델로 전달하여, 벡터화 시키는 단계;
상기 예문과 관련된 기본키를 반환하는 단계; 및
상기 기본키를 이용하여, 상기 예문을 상기 플로우에 추가하는 단계;
를 포함하는, 구현방법.
According to paragraph 1,
The step of adding the example sentence to the flow is
Passing the example sentence to a machine learning model and vectorizing it;
Returning a primary key related to the example sentence; and
Adding the example sentence to the flow using the primary key;
Implementation method including.
제1항에 있어서,
상기 질의와 매칭되는 상기 플로우가 없는 경우, 상기 답변을 추출하기 위한 지식 파일을 업로드 받는 단계;
상기 지식 파일로부터, 텍스트를 추출하는 단계; 및
상기 텍스트를 벡터화하는 단계;
를 더 포함하는, 구현방법.
According to paragraph 1,
If there is no flow matching the query, uploading a knowledge file for extracting the answer;
extracting text from the knowledge file; and
vectorizing the text;
Implementation method further comprising:
제3항에 있어서,
상기 추출된 텍스트를 청크(chunk)로 분할하는 단계; 로서,
상기 청크는 유사한 의미를 갖는 텍스트들의 집합임;
을 더 포함하고,
상기 텍스트를 벡터화하는 단계는
상기 청크를 벡터화하는 단계; 및
상기 청크의 벡터를 저장하는 단계;
를 더 포함하는, 구현방법.
According to clause 3,
dividing the extracted text into chunks; as,
The chunk is a set of texts with similar meaning;
It further includes,
The step of vectorizing the text is
vectorizing the chunk; and
storing vectors of the chunks;
Implementation method further comprising:
제4항에 있어서,
상기 저장된 청크의 벡터에 근거하여, 상기 지식 파일을 로딩하는 단계;
를 더 포함하는, 구현방법.
According to clause 4,
loading the knowledge file based on the vector of the stored chunk;
Implementation method further comprising:
제1항에 있어서,
사용자 단말로부터, 상기 질의를 입력받는 단계;
상기 입력받은 질의를 벡터화하는 단계;
상기 질의와 상기 대표 예문, 또는 상기 예문의 유사도를 판단하는 단계; 및
상기 유사도에 근거하여, 상기 플로우를 반환하는 단계;
를 더 포함하는, 구현방법.
According to paragraph 1,
Receiving the query from a user terminal;
Vectorizing the input query;
determining the degree of similarity between the query and the representative example sentence or the example sentence; and
returning the flow based on the similarity;
Implementation method further comprising:
챗봇 사용자의 질의에 대한 답변 생성을 구현하기 위한 서버에 있어서,
머신러닝 모델이 포함된 메모리;
외부 전자기기와 통신하기 위한 통신부; 및
상기 메모리 및 상기 통신부를 기능적으로 제어하기 위한 프로세서;
를 포함하고,
상기 프로세서는
상기 답변을 생성하기 위한 플로우를 생성하고, 상기 플로우는 상기 질의와 관련된 대표 예문을 포함하며,
거대 언어 모델(Large Language Model, LLM)에 상기 대표 예문에 근거하여, 상기 대표 예문과 유사한 예문을 생성하기 위한 프롬프트를 입력하고,
상기 거대 언어 모델로부터, 상기 예문를 획득하며,
상기 예문을 상기 플로우에 추가하며,
상기 예문은 상기 플로우에 종속하고, 상기 질의와 매칭될 수 있는 문장인, 서버.
In the server for implementing answers to chatbot users' inquiries,
Memory with machine learning models;
A communication unit for communicating with external electronic devices; and
a processor for functionally controlling the memory and the communication unit;
Including,
The processor is
Create a flow for generating the answer, and the flow includes representative example sentences related to the query,
Enter a prompt to generate an example sentence similar to the representative example sentence based on the representative example sentence in a Large Language Model (LLM),
Obtaining the example sentences from the large language model,
Add the example sentence to the flow,
The example sentence is a sentence that is dependent on the flow and can match the query.
관리자 단말이 챗봇 사용자의 질의에 대한 답변 생성을 구현하기 위한 방법에 있어서,
관리자로부터, 상기 답변을 생성하기 위한 플로우 생성 버튼을 입력받는 단계;
상기 생성 버튼의 입력에 대한 응답으로서, 서버로 상기 플로우의 생성 명령을 전달하는 단계; 로서, 상기 플로우의 생성 명령은 상기 플로우의 이름 및 상기 질의와 관련된 대표 예문을 포함함;
상기 플로우의 생성 명령에 대한 응답으로서, 상기 플로우가 생성되었음을 나타내는 메시지를 수신하는 단계;
상기 서버로, 상기 대표 예문과 유사한 예문을 생성하기 위한 명령을 전달하는 단계;
거대 언어 모델(Large Language Model, LLM)로부터, 획득된 상기 예문의 후보를 수신하는 단계;
상기 관리자에게 상기 예문의 후보를 표시하는 단계;
상기 관리자로부터, 상기 예문의 후보에 근거하여, 최종 예문을 선택받는 단계;
상기 최종 예문을 상기 서버에 전달하는 단계;
를 포함하며,
상기 최종 예문은
상기 플로우에 종속하고, 상기 질의와 매칭될 수 있는 문장인, 구현 방법.
In a method for an administrator terminal to generate an answer to a chatbot user's inquiry,
Receiving, from an administrator, a flow creation button for generating the answer;
In response to an input of the create button, transmitting a command to create the flow to a server; As, the flow creation command includes the name of the flow and a representative example sentence related to the query;
In response to the flow creation command, receiving a message indicating that the flow has been created;
transmitting, to the server, a command to generate an example sentence similar to the representative example sentence;
Receiving candidates of the example sentences obtained from a Large Language Model (LLM);
displaying candidates for the example sentences to the manager;
selecting a final example sentence from the manager based on the candidate examples;
delivering the final example sentence to the server;
Includes,
The final example above is
An implementation method, which is a sentence that is dependent on the flow and can match the query.
KR1020230148322A 2023-10-31 2023-10-31 Method and apparatus for generating appropriate responses based on the user intent in an ai chatbot through retrieval-augmented generation KR102681147B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020230148322A KR102681147B1 (en) 2023-10-31 2023-10-31 Method and apparatus for generating appropriate responses based on the user intent in an ai chatbot through retrieval-augmented generation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020230148322A KR102681147B1 (en) 2023-10-31 2023-10-31 Method and apparatus for generating appropriate responses based on the user intent in an ai chatbot through retrieval-augmented generation

Publications (1)

Publication Number Publication Date
KR102681147B1 true KR102681147B1 (en) 2024-07-04

Family

ID=91912800

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020230148322A KR102681147B1 (en) 2023-10-31 2023-10-31 Method and apparatus for generating appropriate responses based on the user intent in an ai chatbot through retrieval-augmented generation

Country Status (1)

Country Link
KR (1) KR102681147B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118503393A (en) * 2024-07-17 2024-08-16 山东浪潮科学研究院有限公司 Self-adaptive classification retrieval enhancement generation model system and method

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200071877A (en) * 2018-12-06 2020-06-22 한국과학기술원 Method and System for information extraction using a self-augmented iterative learning
KR20210000624A (en) * 2019-06-25 2021-01-05 (주) 엠투유테크널러지 Apparatus for matching chatbot communication pattern
KR20230071045A (en) * 2021-11-15 2023-05-23 하이퍼커넥트 유한책임회사 Method for generating a response using utterance and apparatus therefor

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200071877A (en) * 2018-12-06 2020-06-22 한국과학기술원 Method and System for information extraction using a self-augmented iterative learning
KR20210000624A (en) * 2019-06-25 2021-01-05 (주) 엠투유테크널러지 Apparatus for matching chatbot communication pattern
KR20230071045A (en) * 2021-11-15 2023-05-23 하이퍼커넥트 유한책임회사 Method for generating a response using utterance and apparatus therefor

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118503393A (en) * 2024-07-17 2024-08-16 山东浪潮科学研究院有限公司 Self-adaptive classification retrieval enhancement generation model system and method

Similar Documents

Publication Publication Date Title
CN111753060B (en) Information retrieval method, apparatus, device and computer readable storage medium
CN108897867B (en) Data processing method, device, server and medium for knowledge question answering
US11157490B2 (en) Conversational virtual assistant
CN116775847B (en) Question answering method and system based on knowledge graph and large language model
EP3320490B1 (en) Transfer learning techniques for disparate label sets
CN110297868A (en) Construct enterprise's specific knowledge figure
Hutchinson Natural language processing and machine learning as practical toolsets for archival processing
US20140059030A1 (en) Translating Natural Language Utterances to Keyword Search Queries
CN107210035A (en) The generation of language understanding system and method
US20220100972A1 (en) Configurable generic language understanding models
CN117454884B (en) Method, system, electronic device and storage medium for correcting historical character information
KR20240012245A (en) Method and apparatus for automatically generating faq using an artificial intelligence model based on natural language processing
CN112632258A (en) Text data processing method and device, computer equipment and storage medium
TW202111688A (en) Artificial intelligence-based business intelligence system and its analysis method
CN118132719A (en) Intelligent dialogue method and system based on natural language processing
KR102682244B1 (en) Method for learning machine-learning model with structured ESG data using ESG auxiliary tool and service server for generating automatically completed ESG documents with the machine-learning model
KR102681147B1 (en) Method and apparatus for generating appropriate responses based on the user intent in an ai chatbot through retrieval-augmented generation
Calderón et al. Distributed supervised sentiment analysis of tweets: Integrating machine learning and streaming analytics for big data challenges in communication and audience research
Tallapragada et al. Improved Resume Parsing based on Contextual Meaning Extraction using BERT
CN113705191A (en) Method, device and equipment for generating sample statement and storage medium
CN114186041A (en) Answer output method
KR102716142B1 (en) Method and apparatus for automating intent classification in dialogue utterances using artificial intelligence
CN113868322B (en) Semantic structure analysis method, device and equipment, virtualization system and medium
WO2023278124A1 (en) Classification and augmentation of unstructured data for autofill
Tian Construction of Computer English Corpus Assisted by Internet of Things Information Perception and Interaction Technology