Apparatus for providing data service and method therefor
The device and method address the challenges of existing question-answering systems by using environmental change detection and adaptive execution plan reconstruction to enhance stability and efficiency, while also improving security and reducing database load.
Patent Information
- Application Number
- PCT/KR2024/018376
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-11-07
- Filing Date
- 2024-11-20
- Publication Date
- 2025-05-30
AI Technical Summary
Existing question-answering systems face challenges in providing identical responses to similar natural language queries, struggling with access rights management, query correction, and database load optimization, while also dealing with security issues due to external network exposure.
A device and method that include an environment change detection module, an analysis module, an execution plan reconstruction module, and a code update module to monitor and adapt to environmental changes, optimize query execution plans, and update codes to improve system stability and efficiency.
The solution enhances system stability, increases work efficiency, and allows for responsive performance across varying environments, while also enabling continuous learning and automatic code updates without downtime, reducing database load, and improving security.
Smart Images

Figure KR2024018376_30052025_PF_FP_ABST
Abstract
Description
Device for providing data services and method therefor
[0001] The present invention relates to a technology for providing a data service, and more particularly, to a device and method for providing a data service using a similar query and updating code according to environmental changes.
[0002] Typical question-answering systems analyze users' natural language queries using natural language processing algorithms and, based on the analysis results, generate responses from a database and provide them to users. Question-answering systems support queries that generate responses from a database using natural language processing algorithms. The quality of responses provided by these question-answering systems depends on the queries generated based on the natural language queries. Queries are determined by the natural language query. In other words, natural language queries posed by users are essentially the same, but take various forms. However, question-answering systems are unable to produce consistent responses to these essentially identical, yet diverse, natural language queries. Therefore, allowing users to manually create queries is a viable option. However, while query creation may be feasible for experts, it is not practical for general users. While the reliability of queries generated by question-answering systems may be higher than that of general users, they are less reliable than queries generated by experts. Consequently, existing question-answering systems can produce inconsistent responses to essentially identical, yet diverse, natural language queries. Question-answering systems currently fail to reflect user-specific database access rights when generating queries based on natural language queries. This means that individual database access rights need to be set. Because the question-answering system is solely responsible for query generation, it's difficult to adjust queries after they've been generated. While identical or similar queries can be repeatedly performed through the question-answering system, this also places a burden on the database, leading to excessive costs associated with natural language queries for users.Additionally, security issues may arise from using external networks for natural language processing. Specifically, the database's exposure to external networks during query generation may pose security risks.
[0003] [Prior Art Literature]
[0004] [Patent Document]
[0005] Korean Patent Publication No. 2009-0067825 (published on June 25, 2009)
[0006] An object of the present invention is to provide a device and method for updating code according to environmental changes.
[0007] Another object of the present invention is to provide a device and method for providing a data service using a similar query.
[0008] A method for updating the code of the present invention includes a step of allowing an environment change detection module to access a database through a network and monitor changes in the environment of a system that executes a query, a step of allowing an environment change analysis module to evaluate changes in the performance of the system according to changes in the environment of the system based on the monitoring, a step of allowing an execution plan reconstruction module to reconstruct an execution plan so that the change in performance is restored to within a preset range when the evaluation result indicates that the change in performance exceeds a preset range, and a step of allowing a code update module to update a code for searching for the data through a query according to the reconstructed execution plan.
[0009] The above execution plan includes a plurality of processing steps required for query execution, commands used in each of the plurality of processing steps, the amount of data processed in each of the plurality of processing steps, and the amount of time and resources consumed in each of the plurality of processing steps.
[0010] The step of reconstructing the execution plan includes a step in which the execution plan reconstructing module modifies one or more processing steps among a plurality of processing steps required for query execution, a step in which the execution plan reconstructing module performs a simulation on the query according to the modified processing steps to derive the amount of data processed in each of the plurality of processing steps, the time required for each of the plurality of processing steps, and the amount of resources, a step in which the execution plan reconstructing module determines whether a numerical value of a change in performance is restored within a preset range through the derived amount of data processed in each of the plurality of processing steps, the time required for each of the plurality of processing steps, and the amount of resources, and a step in which, if the numerical value of the change in performance is restored within the preset range as a result of the determination, the execution plan reconstructing module reconstructs the existing execution plan into an execution plan according to the modified processing steps.
[0011] The step of modifying the above processing step is characterized in that the execution plan reconstruction module modifies at least one of the processing order and branching of the plurality of processing steps required for executing the query.
[0012] The step of reconstructing the above execution plan is characterized in that, if there is a change in either the database structure or the network settings, the execution plan reconstructing module reconstructs the execution plan by changing a plurality of processing steps required for executing the query and a command used in each of the plurality of processing steps according to either the changed database structure or the changed network settings.
[0013] The method further includes a step of the optimization module monitoring a data processing speed and a network response time, and a step of the optimization module performing optimization on the code when the data processing speed decreases below a preset threshold speed or the network response time increases above a preset threshold time based on the monitoring.
[0014] A device for updating the code of the present invention includes an environment change detection module that monitors changes in the environment of a system that accesses a database through a network and executes a query, an environment change analysis module that evaluates changes in the performance of the system according to changes in the environment of the system based on the monitoring, an execution plan reconstruction module that reconstructs an execution plan so that the performance change is restored to within a preset range when the evaluation result indicates that the numerical value of the change in the performance of the system is changed beyond a preset range, and a code update module that updates a code for searching the data through a query according to the reconstructed execution plan.
[0015] The above execution plan includes a plurality of processing steps required for query execution, commands used in each of the plurality of processing steps, the amount of data processed in each of the plurality of processing steps, and the amount of time and resources consumed in each of the plurality of processing steps.
[0016] The above execution plan reconstruction module modifies one or more of the processing steps required for query execution, performs a simulation on the query according to the modified processing steps, derives the amount of data processed in each of the plurality of processing steps, the time required for each of the plurality of processing steps, and the amount of resources, and determines whether the numerical value of the change in performance is restored within a preset range through the derived amount of data processed in each of the plurality of processing steps, the time required for each of the plurality of processing steps, and the amount of resources, and if the numerical value of the change in performance is restored within the preset range as a result of the determination, the existing execution plan is reconstructed into an execution plan according to the modified processing steps.
[0017] The above execution plan reconstruction module is characterized by modifying at least one of the processing order and branching of a plurality of processing steps required for executing the query.
[0018] The above execution plan reconstruction module is characterized in that, when there is a change in either the database structure or the network settings, it reconstructs the execution plan by changing a plurality of processing steps required for the query execution and a command used in each of the plurality of processing steps according to either the changed database structure or the changed network settings.
[0019] The method further includes an optimization module that monitors a data processing speed and a network response time, and performs optimization on the code when the data processing speed decreases below a preset threshold speed or the network response time increases above a preset threshold time.
[0020] A method for providing a data service to achieve the above purpose includes a step in which an interface unit receives a user query written in natural language from a user device, a step in which a query processing unit searches for a similar query having a similarity level of a predetermined value or higher with the user query among a plurality of queries stored in a database, a step in which, when a similar query having a similarity level of a predetermined value or higher is searched as a result of the search, the query processing unit generates an answer corresponding to the user query using the searched similar query, and a step in which the query processing unit transmits the generated answer to the user device through the interface unit.
[0021] The step of searching the above query includes a step in which the query processing unit generates an embedding vector by mapping the user query to a predetermined vector space, and a step in which the query processing unit detects, as the similar query, a query among a plurality of queries stored in the database, the distance between the user query and the embedding vector of each of the plurality of queries stored in the database in the vector space being less than a predetermined value.
[0022] The step of searching the above query includes a step in which the query processing unit extracts keywords corresponding to column names of a database included in the user query, a step in which the query processing unit performs key-value mapping based on the keywords to generate key-value data corresponding to the user query, and a step in which the query processing unit compares key-value data of a plurality of queries stored in the database with key-value data of the user query to detect a query having key-value data having a similarity with the key-value data of the user query of a predetermined value or higher as the similar query.
[0023] The method further includes, before the step of searching for the similar query, a step of the query processing unit searching a word dictionary storing words to be replaced with words used in the database, and a step of the query processing unit replacing, if a word to be replaced with a word used in the database exists among the words included in the user query according to the search, the word with a word used in the database.
[0024] The step of generating the above answer includes a step in which the query processing unit generates a query using the query of the similar query, a step in which the query processing unit executes a query using the execution plan of the similar query on the database to receive an answer corresponding to the user query from the database, and a step in which the query processing unit transmits the answer to the user device through the interface unit.
[0025] The method further includes a step in which, if a similar query having a similarity level higher than a predetermined value is not found as a result of the search, the query processing unit converts the user query into a meta query by adding an annotation to the user query, a step in which the query processing unit derives an adaptive meta query from the meta query through a natural language processing model, a step in which the query processing unit adds a template to the adaptive meta query to generate a meta command, a step in which the query processing unit generates a query based on the meta command, a step in which the query processing unit generates an execution plan corresponding to the query generated for the database, and executes the query according to the generated execution plan to receive an answer corresponding to the user query from the database, a step in which the query processing unit maps and stores the user query, the query corresponding to the user query, and the execution plan corresponding to the query, and a step in which the query processing unit transmits the answer to the user device through the interface unit.
[0026] A device for providing a data service to achieve the above purpose includes an interface unit for receiving a user query in natural language from a user device, a query processing unit for searching for a similar query having a similarity level of a predetermined value or higher with the user query among a plurality of queries stored in a database, and a query processing unit for generating an answer corresponding to the user query using the searched similar query when a similar query having a similarity level of a predetermined value or higher is found as a result of the search, and transmitting the generated answer to the user device through the interface unit.
[0027] According to the present invention, by detecting environmental changes in real time and automatically updating execution plans and code accordingly, system stability is enhanced, work efficiency is increased, and adaptability to diverse environments is enabled. Furthermore, the present invention enables continuous system learning and improvement, and automatic code updates without downtime.
[0028] In addition, according to the present invention, by generating a query using an existing query and providing an answer through the generated query, the process load can be reduced and the time required to provide an answer can be shortened.
[0029] FIG. 1 is a diagram illustrating the configuration of a system for updating code according to environmental changes according to an embodiment of the present invention.
[0030] FIG. 2 is a drawing for explaining the configuration of a device for updating code according to environmental changes according to an embodiment of the present invention.
[0031] FIG. 3 is a drawing for explaining the detailed configuration of a device for providing a data service according to an embodiment of the present invention.
[0032] FIG. 4 is a flowchart illustrating a method for updating code according to environmental changes according to an embodiment of the present invention.
[0033] FIG. 5 is a flowchart illustrating a method for reconstructing an execution plan according to one embodiment of the present invention.
[0034] FIG. 6 is an exemplary diagram of a hardware system for implementing a device for updating code according to environmental changes according to one embodiment of the present invention.
[0035] FIG. 7 is a diagram for explaining the configuration of a system for providing data services according to an embodiment of the present invention.
[0036] FIG. 8 is a drawing for explaining the configuration of a device for providing a data service according to an embodiment of the present invention.
[0037] FIG. 9 is a flowchart illustrating a method for providing a data service using a similar query according to an embodiment of the present invention.
[0038] FIG. 10 is a flowchart illustrating a method for searching for similar queries according to one embodiment of the present invention.
[0039] FIG. 11 is a flowchart illustrating a method for searching similar queries according to another embodiment of the present invention.
[0040] Figure 12 is a flowchart illustrating a method for providing an answer according to one embodiment of the present invention.
[0041] Figure 13 is a flowchart illustrating a method for providing an answer according to another embodiment of the present invention.
[0042] FIG. 14 is an exemplary diagram of a hardware system for implementing a device for providing a data service using a similar query according to one embodiment of the present invention.
[0043] It should be noted that in the following description, only the parts necessary for understanding the embodiments of the present invention are described, and the description of other parts will be omitted to the extent that it does not deviate from the gist of the present invention.
[0044] The terms and words used in this specification and claims described below should not be interpreted as limited to their conventional or dictionary meanings, but should be interpreted with meanings and concepts that conform to the technical idea of the present invention based on the principle that the inventor can appropriately define the concept of the term to best describe his or her own invention. Therefore, the embodiments described in this specification and the configurations illustrated in the drawings are merely preferred embodiments of the present invention and do not represent all of the technical idea of the present invention. Therefore, it should be understood that there may be various equivalents and modified examples that can replace them at the time of this application.
[0045] Hereinafter, embodiments of the present invention will be described in more detail with reference to the attached drawings.
[0046] [Device and method for updating code according to environmental changes]
[0047] First, a system and device for updating code according to environmental changes according to an embodiment of the present invention will be described. FIG. 1 is a diagram illustrating the configuration of a system for updating code according to environmental changes according to an embodiment of the present invention. FIG. 2 is a diagram illustrating the configuration of a device for updating code according to environmental changes according to an embodiment of the present invention. FIG. 3 is a diagram illustrating the detailed configuration of a device for providing data services according to an embodiment of the present invention.
[0048] Referring to FIG. 1, the data service system (10) according to the present embodiment is a system that performs a data service that generates a query through a natural language processing algorithm for a natural language query, and provides an answer produced by executing the generated query.
[0049] The data service system (10) includes a user device (100), a service server (200), and a model server (300).
[0050] The model server (300) is a server on which a natural language processing (NLP) model is executed. In the embodiment of the present invention, the model server (300) is depicted as a device separate from the service server (200). However, the natural language processing (NLP) model may operate on the service server (200). In this case, the model server (300) may operate as a component of the service server (200).
[0051] The user device (100), service server (200), and model server (300) can transmit and receive data via a communication network.
[0052] The user device (100) inputs a natural language query to the service server (200) and receives a response to the natural language query from the service server (200). The natural language query can be input in the form of voice or text through an input unit provided by the user device (100). Here, the input unit may include a keypad, a touch screen, a microphone, etc. The user device (100) is a communication terminal capable of communicating with the service server (200), and may be, for example, a personal computing system such as a smartphone, laptop, desktop, handheld PC, or tablet PC.
[0053] A user using the user device (100) may be a general user, but in the present embodiment, the user may belong to a specific group. Here, the specific group is related to access rights to the database (DB). That is, access rights to the database (DB) may be set differently depending on the specific group to which the user belongs. As a result, a response to a natural language query may or may not be received depending on the specific group to which the user belongs. For example, a specific group may be classified by company, department, or position. Information about the specific group to which the user belongs may be included in the user attribute information. Here, the user attribute information includes the user's personal information, information about the user device (100), and information about the specific group to which the user belongs.
[0054] A natural language processing model (NLP) processes natural language queries input from a service server (200) and returns the information necessary for query generation to the service server (200). This natural language processing model (NLP) may include a large language model (LLM) capable of inferring relationships between words within a large amount of text data. The natural language processing model (NLP) analyzes and extracts meaningful information from text and returns the information necessary for query generation. Here, LLM refers to an artificial intelligence model that can process a large amount of natural language data and generate answers that are often indistinguishable from human-generated text. LLM is built using deep learning technology and is trained on a large amount of text data such as books, articles, and online content, and returns output corresponding to the input. Examples of such LLMs include OpenAI's Generative Pre-trained Transformer (GPT) series and Google's BERT (Bidirectional Encoder Representations from Transformers) model.
[0055] A natural language processing model (NLP) according to an embodiment of the present invention returns an adaptive meta-query so that a query can be generated through natural language processing of a meta-query input from a service server (200). Here, the adaptive meta-query may include programmable code capable of generating a query in response to the meta-query. The natural language processing model (NLP) may generate a meta-answer by referencing a prompt for a database (DB) provided by the service server (200).
[0056] The service server (200) is a server that processes data by communicating with the user device (100) and a natural language processing model (NLP), and may include, for example, an application server, a computing server, a database server, a file server, a proxy server, and a web server. The service server (200) may be composed of one or more servers. The service server (200) is basically intended to provide answers to user queries in natural language received from the user device (100). This will be described in more detail as follows.
[0057] When the service server (200) receives a user query in natural language, it converts the natural language query into a meta query that clarifies the natural language query by adding annotations to the natural language query so that the natural language processing model (NLP) can interpret it. Then, the service server (200) transmits the meta query to the natural language processing model (NLP). The service server (200) receives an adaptive meta query from the natural language processing model (NLP) in response to the meta query. The service server (200) generates a meta command from the adaptive meta query and generates a query based on the generated meta command. Then, the service server (200) can execute the query to query a database (DB) and obtain an answer from the database (DB). Then, the service server (200) can provide the obtained answer to the user device (100). Since similar or identical queries can be input from the user device (100), the service server (200) stores previous user queries, meta queries, meta answers, and answers as cache data. If there is a query corresponding to the current natural language query or meta query in the cache data, the service server (200) can provide the user device (100) with an answer to the corresponding query stored in the cache data. In other words, the service server (200) can perform an answer to a query without a natural language processing process through a natural language processing model (NLP).
[0058] The service server (200) can verify whether a user is eligible to receive the services of the present invention, i.e., whether the user is eligible to receive a response corresponding to the user's query. The service server (200) can verify the user's access rights based on user attribute information and provide a response to a user with access rights.
[0059] The service server (200) can specify a template for a response to be provided to the user device (100). For example, the template may include text, tables, charts, graphs, etc. Charts include, but are not limited to, pie, bar, broken line, scatter, statistical, and hierarchical charts.
[0060] Referring to FIG. 2, the service server (200) includes a database (DB), an interface unit (210), and a control unit (220).
[0061] A database (DB) stores data that can answer user queries. The database (DB) includes a vector DB that includes index terms for the stored data. The vector DB is provided as a natural language processing model (NLP) under the control of a control unit (25) as a prompt. The index terms may include table names and column names of the data. The database (DB) may store previously received user queries, queries corresponding to the user queries, and execution plans corresponding to the queries. The database (DB) may store embedding vectors generated by mapping previously received user queries to a predetermined vector space. In addition, the database (DB) may store key-value data of previously received user queries.
[0062] The interface unit (210) provides an environment in which the user device (100) can connect to the service server (200). The user device (100) can input a natural language query through the interface unit (210) and receive a response to the input natural language query. In other words, the interface unit (210) is for receiving a natural language query from the user device (100) and returning a response to the natural language query to the user device (100). The interface unit (210) can perform the function of the platform of the service server (200).
[0063] Basically, when the control unit (220) receives a user query in natural language through the interface unit (210), it converts the natural language query into a meta-query that clarifies the natural language query by adding annotations to the natural language query so that the natural language processing model (NLP) can interpret it. Then, the control unit (220) transmits the meta-query to the natural language processing model (NLP). Accordingly, the control unit (220) can receive an adaptive meta-query from the natural language processing model (NLP) for the meta-query. Then, the control unit (220) generates a meta-command from the adaptive meta-query.
[0064] Meanwhile, the control unit (220) can search for similar queries among multiple queries stored in a database (DB) that have a similarity level higher than a predetermined level with the user query, and check whether a similar query having a similarity level higher than a predetermined level exists.
[0065] The control unit (220) is basically intended to receive a meta command from the control unit (220), generate a query based on the meta command, execute the query on a database (DB), receive a response corresponding to the query, and transmit the received response to the user device (100) through the interface unit (210).
[0066] Meanwhile, when the control unit (220) detects a similar query, the control unit (220) can execute a query on a database (DB) using the similar query without using a meta command, receive an answer corresponding to the query, and transmit the received answer to the user device (100) through the interface unit (210).
[0067] Referring to FIG. 3, the control unit (220) includes an environmental change detection module (221), an environmental change analysis module (222), an execution plan reconstruction module (223), a code update module (224), and an optimization module (225).
[0068] The environmental change detection module (221) monitors changes in the system's environment. Here, the system is a data service system (10) that accesses a database (DB) via a network and provides services for retrieving data through queries. Furthermore, the system's environment includes input and output patterns for the network, database (DB), and data service system (10).
[0069] The environmental change analysis module (222) is intended to evaluate changes in the performance of the system according to changes in the system's environment, based on monitoring by the environmental change detection module (221).
[0070] The environmental change analysis module (222) can determine whether the numerical value of the system's performance change exceeds a preset range. If the determination result indicates that the numerical value of the system's performance change exceeds a preset range, this can be notified to the execution plan reconstruction module (223).
[0071] The execution plan reconstruction module (223) reconstructs the execution plan so that the numerical value of the change in the system performance is restored to within the preset range when the numerical value of the change in the system performance changes beyond the preset range based on the evaluation of the environmental change analysis module (222). Here, the execution plan includes a plurality of processing steps (STEPs) required for query execution, commands used in each of the plurality of processing steps, the amount of data processed in each of the plurality of processing steps, and the amount of time and resources consumed in each of the plurality of processing steps.
[0072] According to one embodiment, the execution plan reconstruction module (223) can reconstruct the execution plan by modifying one or more processing steps among the plurality of processing steps required for query execution.
[0073] Hereinafter, a more detailed description of one embodiment is provided. First, the execution plan reconstruction module (223) modifies one or more of the multiple processing steps required for query execution. At this time, the execution plan reconstruction module (223) may modify at least one of the processing order and branching of the multiple processing steps required for query execution. In addition, the execution plan reconstruction module (223) performs a simulation on the query according to the modified processing steps, and derives the amount of data processed in each of the multiple processing steps, the time required for each of the multiple processing steps, and the amount of resources required for each of the multiple processing steps based on the simulation of the query according to the modified processing steps. Accordingly, the execution plan reconstruction module (223) determines whether the numerical value of the performance change is restored within a preset range based on the amount of data processed in each of the derived multiple processing steps, and the time required for each of the multiple processing steps and the amount of resources required for each of the multiple processing steps. If the numerical value of the performance change is restored within the preset range, the execution plan reconstruction module (223) may reconstruct the existing execution plan into an execution plan according to the modified processing steps. On the other hand, if the numerical value of the change in performance is not restored within the preset range, the execution plan reconstruction module (223) repeats the aforementioned procedure after modifying at least one of the processing sequences and branches other than the previously modified processing sequences and branches.
[0074] Meanwhile, according to another embodiment, when there is a change in either the database structure or the network settings, the execution plan reconstruction module (223) can reconstruct the execution plan by changing the plurality of processing steps required for query execution and the commands used in each of the plurality of processing steps according to either the changed database structure or the changed network settings.
[0075] The code update module (224) updates the code for executing the query according to the changed execution plan as described above.
[0076] The optimization module (225) is intended to optimize the code for accessing a database through a network and executing a query. To this end, the optimization module (225) can monitor the data processing speed and network response time. Based on this monitoring, the optimization module (225) can determine whether the data processing speed decreases below a preset threshold speed or the network response time increases beyond a preset threshold time. If the determination result shows that the data processing speed decreases below a preset threshold speed or the network response time increases beyond a preset threshold time, the optimization module (225) performs optimization on the code for accessing a database through a network and executing a query.
[0077] Next, a method for updating code according to environmental changes according to an embodiment of the present invention will be described. Figure 4 is a flowchart illustrating a method for updating code according to environmental changes according to an embodiment of the present invention.
[0078] The environmental change detection module (221) monitors changes in the system's environment at step S110. Here, the system is a data service system (10) that accesses a database (DB) via a network and provides services for retrieving data through queries. The system's environment includes input and output patterns for the network, database (DB), and data service system (10).
[0079] According to the monitoring of the environmental change detection module (221), the environmental change analysis module (222) evaluates the change in the performance of the system according to the change in the system's environment at step S120.
[0080] The environmental change analysis module (222) determines whether the numerical value of the change in the system's performance changes beyond a preset range in step S130.
[0081] If, as a result of the above determination, it is evaluated that the numerical value of the change in the performance of the system changes beyond the preset range, the process proceeds to step S140, and if, as a result of the above determination, the numerical value of the change in the performance of the system changes within the preset range, the steps S110 to S130 described above are repeated.
[0082] Based on the evaluation, if the numerical value of the change in the system's performance changes beyond a preset range, the execution plan reconstruction module (223) reconstructs the execution plan so that the numerical value of the change in the system's performance is restored to within the preset range in step S140.
[0083] Here, the execution plan includes multiple processing steps (STEPs) required to execute the query, commands used in each of the multiple processing steps, the amount of data processed in each of the multiple processing steps, and the amount of time and resources consumed in each of the multiple processing steps.
[0084] According to one embodiment of step S140, the execution plan reconstruction module (223) can reconstruct the execution plan by modifying one or more processing steps among the plurality of processing steps required for query execution.
[0085] According to another embodiment of step S140, when there is a change in either the database structure or the network settings, the execution plan reconstruction module (223) can reconstruct the execution plan by changing the plurality of processing steps required for query execution and the commands used in each of the plurality of processing steps according to either the changed database structure or the changed network settings.
[0086] Next, the code update module (224) updates the code for processing data in the database (DB) through a query according to the execution plan changed in step S150.
[0087] The optimization module (225) can monitor the data processing speed and network response time at step S160.
[0088] And the optimization module (225) determines in step S170 whether the data processing speed decreases below a preset threshold speed or whether the network response time increases above a preset threshold time.
[0089] As a result of the above judgment, if the data processing speed decreases below the preset threshold speed or the network response time increases above the preset threshold time, the optimization module (225) proceeds to step S180, and if not, returns to step S110.
[0090] The optimization module (225) performs optimization on the code for accessing the database through a network and executing a query in step S180.
[0091] Next, one embodiment of the aforementioned step S140 will be described in more detail. FIG. 5 is a flowchart illustrating a method for reconstructing an execution plan according to one embodiment of the present invention.
[0092] Referring to FIG. 4, the execution plan reconstruction module (223) modifies one or more of the multiple processing steps required for query execution in step S210. At this time, the execution plan reconstruction module (223) may modify at least one of the processing order and branching of the multiple processing steps required for query execution.
[0093] And the execution plan reconstruction module (223) performs a simulation for the query according to the processing step modified in step S220.
[0094] Next, the execution plan reconstruction module (223) derives the amount of data processed in each of the multiple processing steps, the time consumed in each of the multiple processing steps, and the amount of resources according to the simulation of the query according to the processing steps modified in step S230.
[0095] Then, the execution plan reconstruction module (223) determines whether the numerical value of the change in performance is restored within a preset range through the amount of data processed in each of the multiple processing steps derived in step S240, the time consumed in each of the multiple processing steps, and the amount of resources.
[0096] As a result of the judgment in step S240, if the numerical value of the change in performance is restored within the preset range, the execution plan reconstruction module (223) reconstructs the existing execution plan into an execution plan according to the processing step modified in step S250.
[0097] As a result of the judgment at step S240, if the numerical value of the change in performance is not restored within the preset range, the execution plan reconstruction module (223) repeats steps S210 to S240 described above.
[0098] FIG. 6 is an exemplary diagram of a hardware system for implementing a device for updating code according to environmental changes according to one embodiment of the present invention.
[0099] As illustrated in FIG. 6, a hardware system (2000) according to one embodiment of the present invention may have a configuration including a processor unit (2100), a memory interface unit (2200), and a peripheral device interface unit (2300).
[0100] Each component within the hardware system (2000) may be an individual component or integrated into one or more integrated circuits, and each of these components may be connected by a bus system (not shown).
[0101] Here, for a bus system, it is an abstraction representing any one or more individual physical buses, communication lines / interfaces, and / or multi-drop or point-to-point connections connected by appropriate bridges, adapters, and / or controllers.
[0102] The processor unit (2100) communicates with the memory unit (2210) through the memory interface unit (2200) to perform various functions in the hardware system, thereby executing various software modules stored in the memory unit (2210).
[0103] Here, in the memory unit (2210), each of the configurations including the environmental change detection module (221), the environmental change analysis module (222), the execution plan reconstruction module (223), the code update module (224), and the optimization module (225) described above with reference to FIG. 2 can be stored in the form of a software module, and an operating system (OS) can be additionally stored. The configuration including the environmental change detection module (221), the environmental change analysis module (222), the execution plan reconstruction module (223), the code update module (224), and the optimization module (225) can be loaded onto the processor unit (2100) and executed.
[0104] Each configuration including the environmental change detection module (221), environmental change analysis module (222), execution plan reconstruction module (223), code update module (224), and optimization module (225) described above may be implemented in the form of a software module or hardware module executed by a processor, or may also be implemented in the form of a combination of software modules and hardware modules.
[0105] In this way, a software module, a hardware module, or a combination of software modules and hardware modules executed by a processor may be implemented as an actual hardware system (e.g., a computer system).
[0106] For an operating system (e.g., I-OS, Android, Darwin, RTXC, LINUX, UNIX, OS X, WINDOWS, or an embedded operating system such as VxWorks), it contains various procedures, instruction sets, software components and / or drivers that control and manage general system tasks (e.g., memory management, storage device control, power management, etc.) and facilitates communication between various hardware modules and software modules.
[0107] For reference, the memory unit (2210) may include a memory hierarchy including, but not limited to, cache, main memory, and secondary memory, which may be implemented through any combination of, for example, RAM (e.g., SRAM, DRAM, DDRAM), ROM, FLASH, magnetic and / or optical storage devices (e.g., disk drives, magnetic tape, compact disks (CDs), and digital video discs (DVDs)).
[0108] The peripheral device interface unit (2300) performs the role of enabling communication between the processor unit (2100) and the peripheral device.
[0109] In the case of a peripheral device here, as for providing different functions to the hardware system (2000), in one embodiment of the present invention, for example, a communication unit (2310) may be included.
[0110] Here, the communication unit (2310) performs a role of providing a communication function with other devices, and for this purpose, includes, but is not limited to, an antenna system, an RF transceiver, one or more amplifiers, a tuner, one or more oscillators, a digital signal processor, a CODEC chipset, and a memory, and may include a known circuit that performs this function.
[0111] The communication protocols supported by the communication unit (2310) include, for example, Wireless LAN (WLAN), Digital Living Network Alliance (DLNA), Wireless Broadband (Wibro), World Interoperability for Microwave Access (Wimax), Global System for Mobile communication (GSM), Code Division Multi Access (CDMA), Code Division Multi Access 2000 (CDMA2000), Enhanced Voice-Data Optimized or Enhanced Voice-Data Only (EV-DO), Wideband CDMA (WCDMA), High Speed Downlink Packet Access (HSDPA), High Speed Uplink Packet Access (HSUPA), IEEE 802.16, Long Term Evolution (LTE), Long Term Evolution-Advanced (LTE-A), 5G communication system, Wireless Mobile Broadband Service (WMBS), Bluetooth, and Radio Frequency Identification (RFID). This may include Identification, Infrared Data Association (IrDA), Ultra-Wideband (UWB), ZigBee, Near Field Communication (NFC), Ultra Sound Communication (USC), Visible Light Communication (VLC), Wi-Fi, and Wi-Fi Direct.Additionally, wired communication networks may include wired Local Area Networks (LANs), wired Wide Area Networks (WANs), Power Line Communications (PLCs), USB communications, Ethernet, serial communications, optical / coaxial cables, etc., and any protocol that can provide a communication environment with other devices may be included, rather than being limited to them.
[0112] In a hardware system (2000) according to one embodiment of the present invention, each component stored in the form of a software module in the memory unit (2210) performs an interface with the communication unit (2310) through the memory interface unit (2200) and the peripheral device interface unit (2300) in the form of a command executed by the processor unit (2100).
[0113] While this specification contains details of a number of specific implementations, as described above, these should not be construed as limitations on the scope of any invention or what may be claimed, but rather as descriptions of features that may be unique to particular embodiments of particular inventions. Certain features described herein in the context of individual embodiments may also be implemented in combination in a single embodiment. Conversely, various features described in the context of a single embodiment may also be implemented in multiple embodiments, either individually or in any suitable subcombination. Furthermore, although features may operate in a particular combination and may initially be described as being claimed as such, one or more features from a claimed combination may in some cases be excluded from that combination, and the claimed combination may be modified into a subcombination or variation of a subcombination.
[0114] Likewise, while operations are depicted in the drawings in a particular order, this should not be construed as requiring that those operations be performed in the particular or sequential order depicted to achieve desired results, or that all depicted operations be performed. In certain instances, multitasking and parallel processing may be advantageous. Furthermore, the separation of the various system components of the embodiments described above should not be construed as requiring such separation in all embodiments, and it should be understood that the program components and systems described may generally be integrated together in a single software product or packaged into multiple software products.
[0115] Specific embodiments of the subject matter described herein have been described. Other embodiments are within the scope of the following claims. For example, the operations recited in the claims may be performed in a different order and still achieve desirable results. For example, the processes depicted in the accompanying drawings do not necessarily require the specific illustrated order or sequential order to achieve desirable results. In certain implementations, multitasking and parallel processing may be advantageous.
[0116] This detailed description presents the best mode of the present invention and provides examples to illustrate the invention and enable those skilled in the art to make and use the invention. This written specification is not intended to limit the invention to the specific terms presented. Therefore, while the invention has been described in detail with reference to the examples described above, those skilled in the art will appreciate that modifications, variations, and variations can be made to these examples without departing from the scope of the invention.
[0117] Therefore, the scope of the present invention should not be determined by the described embodiments but by the claims.
[0118]
[0119] [Device for providing data services using similar queries and method therefor]
[0120] A system and device for providing data services according to an embodiment of the present invention will be described. FIG. 7 is a diagram illustrating the configuration of a system for providing data services according to an embodiment of the present invention. FIG. 8 is a diagram illustrating the configuration of a device for providing data services according to an embodiment of the present invention.
[0121] Referring to FIG. 7, the data service system (10) according to the present embodiment is a system that performs a data service by generating a query through a natural language processing algorithm for a natural language query, executing the generated query, and providing an answer produced.
[0122] The data service system (10) includes a user device (100), a service server (200), and a model server (300).
[0123] The model server (300) is a server on which a natural language processing (NLP) model is executed. In the embodiment of the present invention, the model server (300) is depicted as a device separate from the service server (200). However, the natural language processing (NLP) model may operate on the service server (200). In this case, the model server (300) may operate as a component of the service server (200).
[0124] The user device (100), service server (200), and model server (300) can transmit and receive data via a communication network.
[0125] The user device (100) inputs a natural language query to the service server (200) and receives a response to the natural language query from the service server (200). The natural language query can be input in the form of voice or text through an input unit provided by the user device (100). Here, the input unit may include a keypad, a touch screen, a microphone, etc. The user device (100) is a communication terminal capable of communicating with the service server (200), and may be, for example, a personal computing system such as a smartphone, laptop, desktop, handheld PC, or tablet PC.
[0126] A user using the user device (100) may be a general user, but in the present embodiment, the user may belong to a specific group. Here, the specific group is related to access rights to the database (DB). That is, access rights to the database (DB) may be set differently depending on the specific group to which the user belongs. As a result, a response to a natural language query may or may not be received depending on the specific group to which the user belongs. For example, a specific group may be classified by company, department, or position. Information about the specific group to which the user belongs may be included in the user attribute information. Here, the user attribute information includes the user's personal information, information about the user device (100), and information about the specific group to which the user belongs.
[0127] A natural language processing model (NLP) processes natural language queries input from a service server (200) and returns the information necessary for query generation to the service server (200). This natural language processing model (NLP) may include a large language model (LLM) capable of inferring relationships between words within a large amount of text data. The natural language processing model (NLP) analyzes and extracts meaningful information from text and returns the information necessary for query generation. Here, LLM refers to an artificial intelligence model that can process a large amount of natural language data and generate answers that are often indistinguishable from human-generated text. LLM is built using deep learning technology and is trained on a large amount of text data such as books, articles, and online content, and returns output corresponding to the input. Examples of such LLMs include OpenAI's Generative Pre-trained Transformer (GPT) series and Google's BERT (Bidirectional Encoder Representations from Transformers) model.
[0128] A natural language processing model (NLP) according to an embodiment of the present invention returns an adaptive meta-query so that a query can be generated through natural language processing of a meta-query input from a service server (200). Here, the adaptive meta-query may include programmable code capable of generating a query in response to the meta-query. The natural language processing model (NLP) may generate a meta-answer by referencing a prompt for a database (DB) provided by the service server (200).
[0129] The service server (200) is a server that processes data by communicating with the user device (100) and a natural language processing model (NLP), and may include, for example, an application server, a computing server, a database server, a file server, a proxy server, and a web server. The service server (200) may be composed of one or more servers. The service server (200) is basically intended to provide answers to user queries in natural language received from the user device (100). This will be described in more detail as follows.
[0130] When the service server (200) receives a user query in natural language, it converts the natural language query into a meta query that clarifies the natural language query by adding annotations to the natural language query so that the natural language processing model (NLP) can interpret it. Then, the service server (200) transmits the meta query to the natural language processing model (NLP). The service server (200) receives an adaptive meta query from the natural language processing model (NLP) in response to the meta query. The service server (200) generates a meta command from the adaptive meta query and generates a query based on the generated meta command. Then, the service server (200) can execute the query to query a database (DB) and obtain an answer from the database (DB). Then, the service server (200) can provide the obtained answer to the user device (100). Since similar or identical queries can be input from the user device (100), the service server (200) stores previous user queries, meta queries, meta answers, and answers as cache data. If there is a query corresponding to the current natural language query or meta query in the cache data, the service server (200) can provide the user device (100) with an answer to the corresponding query stored in the cache data. In other words, the service server (200) can perform an answer to a query without a natural language processing process through a natural language processing model (NLP).
[0131] The service server (200) can verify whether a user is eligible to receive the services of the present invention, i.e., whether the user is eligible to receive a response corresponding to the user's query. The service server (200) can verify the user's access rights based on user attribute information and provide a response to a user with access rights.
[0132] The service server (200) can specify a template for a response to be provided to the user device (100). For example, the template may include text, tables, charts, graphs, etc. Charts include, but are not limited to, pie, bar, broken line, scatter, statistical, and hierarchical charts.
[0133] Referring to FIG. 8, the service server (200) includes a database (DB), an interface unit (210), a query processing unit (220), and a query processing unit (230).
[0134] A database (DB) stores data that can answer user queries. The database (DB) includes a vector DB that includes index terms for the stored data. The vector DB is provided as a natural language processing model (NLP) under the control of a control unit (25) as a prompt. The index terms may include table names and column names of the data. The database (DB) may store previously received user queries, queries corresponding to the user queries, and execution plans corresponding to the queries. The database (DB) may store embedding vectors generated by mapping previously received user queries to a predetermined vector space. In addition, the database (DB) may store key-value data of previously received user queries.
[0135] The interface unit (210) provides an environment in which the user device (100) can connect to the service server (200). The user device (100) can input a natural language query through the interface unit (210) and receive a response to the input natural language query. In other words, the interface unit (210) is for receiving a natural language query from the user device (100) and returning a response to the natural language query to the user device (100). The interface unit (210) can perform the function of the platform of the service server (200).
[0136] Basically, when the query processing unit (220) receives a user query in natural language through the interface unit (210), it converts the natural language query into a meta query that clarifies the natural language query by adding annotations to the natural language query so that the natural language processing model (NLP) can interpret it. Then, the query processing unit (220) transmits the meta query to the natural language processing model (NLP). Accordingly, the query processing unit (220) can receive an adaptive meta query from the natural language processing model (NLP) for the meta query. Then, the query processing unit (220) generates a meta command from the adaptive meta query.
[0137] Meanwhile, the query processing unit (220) can search for similar queries among multiple queries stored in a database (DB) that have a similarity level higher than a predetermined level with the user query, and check whether there is a similar query that has a similarity level higher than a predetermined level.
[0138] The query processing unit (230) basically receives a meta command from the query processing unit (220), generates a query based on the meta command, executes the query on a database (DB), receives a response corresponding to the query, and transmits the received response to the user device (100) through the interface unit (210).
[0139] Meanwhile, when the query processing unit (220) detects a similar query, the query processing unit (230) can execute a query on a database (DB) using the similar query without using a meta command, receive an answer corresponding to the query, and transmit the received answer to the user device (100) through the interface unit (210).
[0140] Next, a method for providing a data service using similar queries according to an embodiment of the present invention will be described. Figure 9 is a flowchart illustrating a method for providing a data service using similar queries according to an embodiment of the present invention.
[0141] Referring to FIG. 9, the interface unit (210) may receive a user query in natural language from the user device (100) at step S110. For example, the user may be "Company S, Electricity Business Division, Business Manager," and the user query may be "Please tell me how much you sold this year."
[0142] A database (DB) may store previously received user queries, queries corresponding to those user queries, and execution plans corresponding to those queries. The database (DB) may also store embedding vectors generated by mapping previously received user queries to a predetermined vector space. Additionally, the database (DB) may store key-value data for previously received user queries.
[0143] Accordingly, the query processing unit (220) searches for a similar query having a similarity level greater than or equal to a predetermined value with respect to the user query among a plurality of queries stored in the database (DB) in step S120. At this time, according to one embodiment, the query processing unit (220) may perform at least one of a first procedure for deriving a similar query using an embedding vector and a second procedure for deriving a similar query using key-value data. According to another embodiment, the query processing unit (220) may sequentially perform the first procedure for deriving a similar query using an embedding vector and the second procedure for deriving a similar query using key-value data. Alternatively, the query processing unit (220) may perform the first procedure for deriving a similar query using an embedding vector and the second procedure for deriving a similar query using key-value data in parallel to derive a similar query. Each of the first procedure and the second procedure will be described in more detail below.
[0144] Next, the query processing unit (220) checks in step S130 whether there is a similar query with a similarity level higher than a predetermined value in the search results.
[0145] As a result of the verification in step S130, if there is a similar query with a similarity level higher than a predetermined value, the query processing unit (230) uses the similar query to generate an answer corresponding to the user query in step S140, and transmits the generated answer to the user device (100) through the interface unit (210).
[0146] On the other hand, if, as a result of the verification in step S130, there is no similar query with a similarity level higher than a predetermined value, the query processing unit (230) generates a query using a natural language processing model (NLP) in step S150, executes the generated query to generate an answer corresponding to the user query, and transmits the generated answer to the user device (100) through the interface unit (210).
[0147] Next, a method for searching for similar queries according to one embodiment of the present invention will be described. Figure 10 is a flowchart illustrating a method for searching for similar queries according to one embodiment of the present invention. Figure 10 provides a detailed description of the first procedure of step S120.
[0148] Referring to FIG. 10, the query processing unit (220) may reference a word dictionary. The word dictionary stores words that can be substituted with words used in a database (DB). In step S210, the query processing unit (220) searches the word dictionary and, if a word included in the user query is substituted with a word used in the database (DB), the query processing unit (220) may replace the word with a word used in the database (DB).
[0149] Next, the query processing unit (220) maps the user query to a predetermined vector space in step S220 to create an embedding vector.
[0150] Next, in step S230, the query processing unit (220) can detect, as a similar query, a query in which the distance between the embedding vector of each of the plurality of queries stored in the database (DB) and the query in the vector space is less than a predetermined value among the plurality of queries stored in the database.
[0151] Meanwhile, regardless of whether a similar query is detected, the query processing unit (220) can map the user query and the embedding vector corresponding to the user query generated previously (S220) and store them in a database (DB).
[0152] Next, a method for searching for similar queries according to another embodiment of the present invention will be described. Figure 11 is a flowchart illustrating a method for searching for similar queries according to another embodiment of the present invention. Figure 11 provides a detailed description of the second procedure of step S120.
[0153] Referring to FIG. 11, the query processing unit (220) may reference a word dictionary. The word dictionary stores words that can be substituted with words used in a database (DB). In step S210, the query processing unit (220) searches the word dictionary and, if a word included in the user query is substituted with a word used in the database (DB), the word may be substituted with a word used in the database (DB).
[0154] Next, the query processing unit (220) extracts keywords corresponding to column names of the database (DB) included in the user query in step S320.
[0155] First, the query processing unit (220) performs key-value mapping based on keywords in step S330 to generate key-value data corresponding to the user query. Here, the key is mapped to meta information, and the value represents a word corresponding to the key in the user query.
[0156] Next, in step S340, the query processing unit (220) compares the key-value data of multiple queries stored in the database (DB) with the key-value data of the user query, and detects a query having key-value data whose similarity with the key-value data of the user query is greater than a predetermined value as a similar query.
[0157] Meanwhile, regardless of whether a similar query is detected, the query processing unit (220) can map the user query and the key-value data of the user query generated previously (S330) and store them in a database (DB).
[0158] Next, a method for providing an answer according to one embodiment of the present invention will be described. Figure 12 is a flowchart illustrating a method for providing an answer according to one embodiment of the present invention. Figure 12 provides a detailed description of step S140, which illustrates the case where a similar query is detected.
[0159] Referring to FIG. 12, the query processing unit (230) generates a query using a query of a similar query previously stored in a database (DB) in step S410.
[0160] Then, the query processing unit (230) can receive an answer corresponding to the user query from the database (DB) by executing the query using the execution plan of a similar query on the database (DB) at step S420.
[0161] Then, the query processing unit (230) transmits a response corresponding to the user query to the user device (100) through the interface unit (210) at step S430.
[0162] Next, a method for providing answers according to another embodiment of the present invention will be described. Figure 13 is a flowchart illustrating a method for providing answers according to another embodiment of the present invention. Figure 13 provides a detailed description of step S150, which illustrates the case where no similar query is detected.
[0163] The query processing unit (220) adds annotations to the user query in step S510 and converts it into a meta-query. Annotations are hints that clarify the natural language query, and include, for example, at least one of sentences, phrases, words, and scopes of investigation. The annotations can be generated based on natural language processing of the natural language query itself, reflecting index terms for data stored in a database (DB) and user attribute information. Here, the user attribute information may include the user's personal information, information about the user device (100), and information about a specific group to which the user belongs.
[0164] For example, the user attribute information may be "Company S, Electricity Business Division, Business Division Manager," and the user query may be "Please tell me how much was sold this year." Then, the query processing unit (220) may change "Please tell me how much was sold this year" to a meta-query such as "What were the sales of the Electricity Business Division in 2023?"
[0165] For example, if a user query is entered as "Show me this year's sales status," the user who entered the natural language query is assumed to be an employee of the sales department. In this case, if the user query is directly input into a natural language processing model (NLP), "this year" can be interpreted as "2023 (the relevant year)", but since the sales referred to by "sales" is unclear, it will return an inaccurate answer. On the other hand, according to this example, by adding an annotation for "sales" with the "sales department" to which the user belongs and changing "sales" to "sales amount" by referencing the index term, the natural language query can be converted into a meta-query such as "The user is an employee of the sales department. The following is the query. Show me the sales status of the sales department in 2023."
[0166] Then, the query processing unit (220) derives an adaptive meta-query from the meta-query through a natural language processing model (NLP) at step S520. In other words, when the query processing unit (220) transmits a meta-query to the natural language processing model (NLP), the natural language processing model (NLP) performs an operation on the meta-query according to what has been learned and outputs an adaptive meta-query, and the query processing unit (220) can receive the adaptive meta-query output by the natural language processing model (NLP).
[0167] For example, when the meta-query is "What were the sales of the electric power division in 2023?", a natural language processing model (NLP) can derive an adaptive meta-query such as "From January 1, 2023 to today, what were the sales of the electric power division of Company S?"
[0168] The query processing unit (220) can generate meta commands by adding a command specifying a template to the adaptive meta query at step S530. Here, the template is a template capable of outputting an answer corresponding to the meta query. Such templates can include text, tables, charts, graphs, and the like.
[0169] For example, from an adaptive meta query such as "From 2023.1.1. to today, what is the sales of S Company, Electricity Division?", a query such as "Using Table A, create a template B for the sales of S Company, Electricity Division from 2023.1.1 to today." can be generated.
[0170] Next, the query processing unit (230) generates a query based on the meta command in step S540.
[0171] Then, the query processing unit (230) can generate an execution plan corresponding to the query generated for the database (DB) in step S550, and execute the query according to the generated execution plan to receive an answer corresponding to the user query from the database (DB).
[0172] Next, in step S560, the query processing unit (230) maps the user query, the query corresponding to the user query, and the execution plan corresponding to the query and stores them in a database (DB).
[0173] Then, the query processing unit (230) transmits the answer to the user device (100) through the interface unit (230) at step S570.
[0174]
[0175] FIG. 14 is an exemplary diagram of a hardware system for implementing a device for providing a data service using a similar query according to one embodiment of the present invention.
[0176] As shown in FIG. 14, a hardware system (2000) according to one embodiment of the present invention may have a configuration including a processor unit (2100), a memory interface unit (2200), and a peripheral device interface unit (2300).
[0177] Each component within the hardware system (2000) may be an individual component or integrated into one or more integrated circuits, and each of these components may be connected by a bus system (not shown).
[0178] Here, for a bus system, it is an abstraction representing any one or more individual physical buses, communication lines / interfaces, and / or multi-drop or point-to-point connections connected by appropriate bridges, adapters, and / or controllers.
[0179] The processor unit (2100) communicates with the memory unit (2210) through the memory interface unit (2200) to perform various functions in the hardware system, thereby executing various software modules stored in the memory unit (2210).
[0180] Here, in the memory unit (2210), each of the configurations including the interface unit (210), the query processing unit (220), and the query processing unit (230) can be stored in the form of a software module, and an operating system (OS) can be additionally stored. The configuration including the interface unit (210), the query processing unit (220), and the query processing unit (230) can be loaded onto the processor unit (2100) and executed.
[0181] Each component including the interface unit (210), query processing unit (220), and query processing unit (230) described above may be implemented in the form of a software module or hardware module executed by a processor, or may also be implemented in the form of a combination of a software module and a hardware module.
[0182] In this way, a software module, a hardware module, or a combination of software modules and hardware modules executed by a processor may be implemented as an actual hardware system (e.g., a computer system).
[0183] For an operating system (e.g., I-OS, Android, Darwin, RTXC, LINUX, UNIX, OS X, WINDOWS, or an embedded operating system such as VxWorks), it contains various procedures, instruction sets, software components and / or drivers that control and manage general system tasks (e.g., memory management, storage device control, power management, etc.) and facilitates communication between various hardware modules and software modules.
[0184] For reference, the memory unit (2210) may include a memory hierarchy including, but not limited to, cache, main memory, and secondary memory, which may be implemented through any combination of, for example, RAM (e.g., SRAM, DRAM, DDRAM), ROM, FLASH, magnetic and / or optical storage devices (e.g., disk drives, magnetic tape, compact disks (CDs), and digital video discs (DVDs)).
[0185] The peripheral device interface unit (2300) performs the role of enabling communication between the processor unit (2100) and the peripheral device.
[0186] In the case of a peripheral device here, as for providing different functions to the hardware system (2000), in one embodiment of the present invention, for example, a communication unit (2310) may be included.
[0187] Here, the communication unit (2310) performs a role of providing a communication function with other devices, and for this purpose, includes, but is not limited to, an antenna system, an RF transceiver, one or more amplifiers, a tuner, one or more oscillators, a digital signal processor, a CODEC chipset, and a memory, and may include a known circuit that performs this function.
[0188] The communication protocols supported by the communication unit (2310) include, for example, Wireless LAN (WLAN), Digital Living Network Alliance (DLNA), Wireless Broadband (Wibro), World Interoperability for Microwave Access (Wimax), Global System for Mobile communication (GSM), Code Division Multi Access (CDMA), Code Division Multi Access 2000 (CDMA2000), Enhanced Voice-Data Optimized or Enhanced Voice-Data Only (EV-DO), Wideband CDMA (WCDMA), High Speed Downlink Packet Access (HSDPA), High Speed Uplink Packet Access (HSUPA), IEEE 802.16, Long Term Evolution (LTE), Long Term Evolution-Advanced (LTE-A), 5G communication system, Wireless Mobile Broadband Service (WMBS), Bluetooth, and Radio Frequency Identification (RFID). This may include Identification, Infrared Data Association (IrDA), Ultra-Wideband (UWB), ZigBee, Near Field Communication (NFC), Ultra Sound Communication (USC), Visible Light Communication (VLC), Wi-Fi, and Wi-Fi Direct.Additionally, wired communication networks may include wired Local Area Networks (LANs), wired Wide Area Networks (WANs), Power Line Communications (PLCs), USB communications, Ethernet, serial communications, optical / coaxial cables, etc., and any protocol that can provide a communication environment with other devices may be included, rather than being limited to them.
[0189] In a hardware system (2000) according to one embodiment of the present invention, each component stored in the form of a software module in the memory unit (2210) performs an interface with the communication unit (2310) through the memory interface unit (2200) and the peripheral device interface unit (2300) in the form of a command executed by the processor unit (2100).
[0190] While this specification contains details of a number of specific implementations, as described above, these should not be construed as limitations on the scope of any invention or what may be claimed, but rather as descriptions of features that may be unique to particular embodiments of particular inventions. Certain features described herein in the context of individual embodiments may also be implemented in combination in a single embodiment. Conversely, various features described in the context of a single embodiment may also be implemented in multiple embodiments, either individually or in any suitable subcombination. Furthermore, although features may operate in a particular combination and may initially be described as being claimed as such, one or more features from a claimed combination may in some cases be excluded from that combination, and the claimed combination may be modified into a subcombination or variation of a subcombination.
[0191] Likewise, while operations are depicted in the drawings in a particular order, this should not be construed as requiring that those operations be performed in the particular or sequential order depicted to achieve desired results, or that all depicted operations be performed. In certain instances, multitasking and parallel processing may be advantageous. Furthermore, the separation of the various system components of the embodiments described above should not be construed as requiring such separation in all embodiments, and it should be understood that the program components and systems described may generally be integrated together in a single software product or packaged into multiple software products.
[0192] Specific embodiments of the subject matter described herein have been described. Other embodiments are within the scope of the following claims. For example, the operations recited in the claims may be performed in a different order and still achieve desirable results. For example, the processes depicted in the accompanying drawings do not necessarily require the specific illustrated order or sequential order to achieve desirable results. In certain implementations, multitasking and parallel processing may be advantageous.
[0193] This detailed description presents the best mode of the present invention and provides examples to illustrate the invention and enable those skilled in the art to make and use the invention. This written specification is not intended to limit the invention to the specific terms presented. Therefore, while the invention has been described in detail with reference to the examples described above, those skilled in the art will appreciate that modifications, variations, and variations can be made to these examples without departing from the scope of the invention.
[0194] Therefore, the scope of the present invention should not be determined by the described embodiments but by the scope of the claims.
[0195] [Explanation of symbols]
[0196] 10: Data Service System
[0197] 100: User device
[0198] 200: Service Server
[0199] 210: Interface section
[0200] 220: Control unit, query processing unit
[0201] 221: Environmental change detection module
[0202] 222: Environmental Change Analysis Module
[0203] 223: Execution Plan Reconstruction Module
[0204] 224: Code Update Module
[0205] 225: Optimization Module
[0206] 230: Query processing unit
[0207] 300: Model Server
Claims
1. In a method for providing data services, A step in which the interface unit receives a user query in natural language from a user device; A step in which a query processing unit searches for a similar query among multiple queries stored in a database whose similarity to the user query is greater than a predetermined value; If a similar query with a similarity level higher than a certain value is found in the above search results, A step in which the query processing unit generates an answer corresponding to the user query using the searched similar query; and A step in which the above query processing unit transmits the generated answer to the user device through the interface unit; characterized by including A method for providing data services.
2. In paragraph 1, The steps to search the above query are A step in which the above query processing unit maps the user query to a predetermined vector space to generate an embedding vector; A step in which the query processing unit detects, as the similar query, a query among a plurality of queries stored in the database, the distance between each embedding vector of the plurality of queries stored in the database and the query in the vector space being less than a predetermined value; characterized by including A method for providing data services.
3. In paragraph 1, The steps to search the above query are A step in which the above query processing unit extracts keywords corresponding to column names of a database included in the user query; A step in which the above query processing unit performs key-value mapping based on the above keyword to generate key-value data corresponding to the user query; A step in which the query processing unit compares key-value data of multiple queries stored in the database with key-value data of the user query to detect a query having key-value data having a similarity level with the key-value data of the user query that is greater than a predetermined value as the similar query; characterized by including A method for providing data services.
4. In paragraph 1, Before the step of searching for the above similar queries, The above query processing unit searches a word dictionary storing words that are substituted with words used in the database; and A step in which the query processing unit, if a word included in the user query according to the search is replaced with a word used in the database, replaces the word with a word used in the database; characterized by further including A method for providing data services.
5. In paragraph 1, The steps to generate the above answer are: A step in which the above query processing unit generates a query using the query of the similar query; and A step in which the query processing unit executes a query using the execution plan of the similar query for the database and receives an answer corresponding to the user query from the database; and A step in which the above query processing unit transmits the answer to the user device through the interface unit; characterized by including A method for providing data services.
6. In paragraph 1, If no similar queries with a similarity level higher than a certain value are found in the above search results, A step in which the above query processing unit adds annotations to a user query and converts it into a meta query; A step in which the above query processing unit derives an adaptive meta query from a meta query through a natural language processing model; A step in which the above query processing unit adds a template to the adaptive meta query to generate a meta command; A step in which the above query processing unit generates a query based on a meta command; A step for the above query processing unit to generate an execution plan corresponding to a query generated for the database, execute the query according to the generated execution plan, and receive an answer corresponding to a user query from the database; A step in which the query processing unit maps and stores the user query, a query corresponding to the user query, and an execution plan corresponding to the query; and A step in which the above query processing unit transmits the answer to the user device through the interface unit; characterized by further including A method for providing data services.
7. In a device for providing data services, An interface unit for receiving a user query in natural language from a user device; A query processing unit that searches for similar queries among multiple queries stored in a database that have a similarity level with the user query that is greater than a predetermined value; If a similar query with a similarity level higher than a certain value is found in the above search results, Generate an answer corresponding to the user query using the similar queries searched above, A query processing unit that transmits the generated answer to the user device through the interface unit; characterized by including A device for providing data services.
Citation Information
Patent Citations
Stirring apparatus having descending guiding function of material
KR1020200095942A
A microneedle and the manufacturing method of the same
KR1020210019971A
Charging terminal for detached battery
KR1020230139403A
KR20230038996A
KR20230155854A