Information providing device, information providing method, and information providing program

The information providing device addresses limitations in no-code data analysis tools by integrating natural language input and LLMs to generate and display program code, facilitating intuitive and sophisticated data analysis for users without programming skills.

JP2026011069AActive Publication Date: 2026-01-23NTT DOCOMO BUSINESS INC
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
JP2024111343
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-07-10
Publication Date
2026-01-23
Estimated Expiration
2044-07-10

AI Technical Summary

Technical Problem

Traditional no-code data analysis tools face limitations in expressiveness and scalability, particularly in visual programming, making it difficult for users without programming skills to achieve desired results with large language models (LLMs).

Method used

An information providing device that includes a receiving unit for natural language input, a creating unit to generate prompts for program code, and a display control unit to execute and display the generated code, leveraging LLMs to enhance data visualization capabilities.

Benefits of technology

Improves the functionality of no-code data analysis tools by enabling users to obtain desired outputs without specialized knowledge in prompt engineering or programming, enhancing learning effectiveness and flexibility.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026011069000001_ABST
    Figure 2026011069000001_ABST
Patent Text Reader

Abstract

To improve the function of a no-code data analysis tool.SOLUTION: The information providing device 10 includes a receiving unit 131, a display control unit 134, a creating unit 135, and a generating unit 136. The receiving unit 131 receives an input of text in a natural language. Based on the text, the creation unit 135 creates a prompt for generating a code of a program for visualizing data to be analyzed in the data analysis tool. The generation unit 136 generates a code using the prompt. The display control unit 134 displays an image obtained by executing the code generated by the generation unit 136.SELECTED DRAWING: Figure 2
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present invention relates to an information providing device, an information providing method, and an information providing program. [Background technology]

[0002] In recent years, so-called no-code data analysis tools have been provided (see, for example, Patent Document 1 or Non-Patent Document 1). No-code data analysis tools are characterized by the fact that they do not require programming skills and can be used intuitively even by beginners.

[0003] Furthermore, large language models (LLMs) are known as a technology for solving a wide range of tasks in natural language processing (NLP). [Prior art documents] [Patent documents]

[0004] [Patent Document 1] Japanese Patent Application Publication No. 2023-27964 [Non-patent literature]

[0005] [Non-Patent Document 1] “No-code AI development tool Node-AI,” [online], [Retrieved July 3, 2024], Internet<https: / / sdpf.ntt.com / services / nodeai / > Summary of the Invention [Problem to be solved by the invention]

[0006] However, traditional no-code data analysis tools fall short.

[0007] No-code data analysis tools enable visual programming, which allows intuitive construction or editing of programs using a graphical user interface (GUI). However, visual programming has limitations in expressiveness and scalability. It is difficult to overcome these limitations in expressiveness and scalability with the functions of conventional no-code data analysis tools. [Means for solving the problem]

[0008] In order to solve the above-mentioned problems and achieve the object, the information providing device of the present invention is characterized by having a receiving unit that receives input of text in a natural language, a creating unit that creates a prompt based on the text to generate program code for visualizing data to be analyzed in the data analysis tool, a generating unit that generates code using the prompt, and a display control unit that executes the code generated by the generating unit and displays an image obtained. [Effects of the Invention]

[0009] The present invention can improve the functionality of no-code data analysis tools. [Brief explanation of the drawings]

[0010] [Figure 1] FIG. 1 is a diagram illustrating an example of a system according to the first embodiment. [Figure 2] FIG. 2 is a functional block diagram showing the configuration of the information providing device. [Figure 3] FIG. 3 is a diagram illustrating an example of canvas data. [Figure 4] FIG. 4 is a diagram illustrating data visualization. [Figure 5] FIG. 5 is a diagram illustrating data visualization. [Figure 6] FIG. 6 is a flowchart showing a processing procedure of the information providing device according to the first embodiment. [Figure 7]FIG. 7 is a diagram illustrating an example of a computer that executes an information providing program. DETAILED DESCRIPTION OF THE INVENTION

[0011] Hereinafter, embodiments of an information providing device, an information providing method, and an information providing program disclosed in the present application will be described in detail with reference to the accompanying drawings. However, the present invention is not limited to these embodiments.

[0012] Here, LLMs understand the meaning of prompts entered as natural language text, enabling natural language generation. However, LLMs are difficult to control and prone to unexpected results. This uncertainty is related to the large amount of data the model must learn from, and the need to create appropriate prompts to achieve specific results, which takes time and effort.

[0013] Prompt engineering is an existing skill that allows for control of LLMs, but it is an iterative process that requires time and effort to master.

[0014] One objective of the present invention is to provide users with a more intuitive and sophisticated data analysis experience by extending the functionality of a no-code data analysis tool and combining it with LLM. According to this embodiment, even users who are not familiar with prompt engineering can use LLM to obtain desired output.

[0015] [First embodiment] 1 is a diagram illustrating an example of an information providing system according to the first embodiment. As illustrated in FIG. 1, the information providing system 1 includes an information providing device 10, a terminal 20, and an LLM server 30.

[0016] The terminal 20 is a PC (Personal Computer), a notebook PC, a tablet terminal, a smartphone, etc. The terminal 20 is used by a user U.

[0017] The information providing device 10 has the function of a data analysis tool such as Node-AI (registered trademark) described in Non-Patent Document 1. A user U operates the terminal 20 to execute the data analysis tool of the information providing device 10 and generate canvas data.

[0018] Node-AI uses flow-based programming, which allows you to design data processing pipelines without coding (no code). With Node-AI, you can intuitively write data processing pipelines by connecting the data you want to process with the functions that can execute each process.

[0019] The configuration of the information providing device 10 will be described with reference to Fig. 2. Fig. 2 is a functional block diagram showing the configuration of the information providing device 10. As shown in Fig. 2, the information providing device 10 has a communication unit 11, a storage unit 12, and a control unit 13.

[0020] The communication unit 11 is realized by a NIC (Network Interface Card) or the like, and controls communication between the control unit 13 and an external terminal 20 via a telecommunication line such as a LAN (Local Area Network) or the Internet. The communication unit 11 may also communicate with other external devices.

[0021] The storage unit 12 has analysis target data 121 and canvas data 122. The storage unit 12 is realized by a semiconductor memory element such as a RAM (Random Access Memory) or a flash memory, or a storage device such as a hard disk or an optical disk.

[0022] The analysis target data 121 is data to be analyzed by a data analysis tool. For example, the analysis target data 121 is a file in CSV (Comma Separated Values) format.

[0023] The canvas data 122 is data generated by a data analysis tool. The canvas data will be explained with reference to Fig. 3. Fig. 3 is a diagram showing an example of the canvas data.

[0024] The canvas data 122 is data representing a pipeline. A pipeline is information describing the flow of processing for data in data analysis. Here, the data analysis may use, for example, a statistical method. The data analysis also includes a learning process of a machine learning model and an inference process using the machine learning model.

[0025] 3, the canvas data 122 is represented by cards connected by lines. The canvas data 122 can be considered a graph with cards as nodes and lines as edges.

[0026] A card is an example of an object corresponding to a function related to data analysis. Lines between cards represent processes or data flows between functions and connect cards.

[0027] Each card is set with a function program and function parameters for executing data processing. A comment that can be viewed by each user may also be attached to the card. For example, the card parameters and comments are set in response to user operations.

[0028] 3 represents a pipeline describing a series of processes related to a machine learning model, including data input, preprocessing, learning, evaluation, and inference.

[0029] Card 1221 corresponds to a function for inputting data. Card 1221 indicates that a file called "01_Quick data for predicting total number of shared bicycles used.csv" is to be input. Card 1222 corresponds to a function for normalizing the values ​​of the input data.

[0030] The card 1223 corresponds to a function for visualizing input data. The function for visualizing data will be described in detail later.

[0031] The control unit 13 controls the entire information providing device 10. The control unit 13 is, for example, an electronic circuit such as a CPU (Central Processing Unit), MPU (Micro Processing Unit), or GPU (Graphics Processing Unit), or an integrated circuit such as an ASIC (Application Specific Integrated Circuit) or FPGA (Field Programmable Gate Array). The control unit 13 also has an internal memory for storing programs defining various processing procedures and control data, and executes each process using the internal memory. The control unit 13 also functions as various processing units by running various programs. For example, the control unit 13 has a receiving unit 131, an editing unit 132, a calculation unit 133, a display control unit 134, a creation unit 135, and a generation unit 136.

[0032] The reception unit 131 receives, from multiple terminals, operations for placing cards (an example of an object) corresponding to functions related to data analysis and operations for connecting cards with lines representing processes or data flows between functions. The reception unit 131 also receives operations for inputting parameters for each process and comments to be added to cards. The reception unit 131 receives operations for adding, moving, and deleting cards, lines, and comments. In this way, the reception unit 131 receives operations for designing models for data analysis and visualizing the models.

[0033] The editing unit 132 edits the canvas data 122 in accordance with the operations received by the receiving unit 131. For example, the editing unit 132 edits the positions of cards and lines in accordance with an operation to arrange cards and an operation to connect cards with lines representing processing or data flow between functions.

[0034] The calculation unit 133 executes processing using functions corresponding to one or more cards. A card is associated with a function for performing preprocessing on data, a function for calculating statistical values ​​based on the data, etc. The calculation unit 133 executes preprocessing on the data or processing for calculating statistical values ​​based on the data according to the specified card.

[0035] The display control unit 134 causes the terminal 20 to display a screen on which cards and lines are arranged in accordance with the operation accepted by the accepting unit 131.

[0036] Here, the user places cards and lines by performing operations such as drag and drop while looking at the screen displayed on the terminal 20. This allows the user to edit canvas data by operating on the UI without having to input code.

[0037] A user operation is accepted by the accepting unit 131 and reflected in the canvas data 122 by the editing unit 132. Therefore, the display control unit 134 can reflect the operation result on the screen in real time by referring to the canvas data 122.

[0038] For example, consider a case where the accepting unit 131 accepts an operation to move a card by the user U via the terminal 20. The editing unit 132 stores the position of the card after the movement in the canvas data 122.

[0039] The display control unit 134 refers to the canvas data 122 and arranges the moved card on the screen.

[0040] When a specific operation is performed, the creation unit 135 and the generation unit 136 perform processing to visualize data. For example, the specific operation is an operation of placing a card 1223 labeled "AI visualization." The card 1223 corresponds to a function of visualizing input data. The specific operation may also be pressing a button, entering a command in a predetermined field, or the like.

[0041] The process of visualizing data will be described below with reference to Figures 4 and 5. Figures 4 and 5 are diagrams for explaining the visualization of data.

[0042] When a specific operation is performed, the display control unit 134 displays the screen 50 shown in Fig. 4. An area 510 on the screen 50 is an area (for example, a text box) where text can be input. The receiving unit 131 receives input of text in a natural language via the area 510.

[0043] The user inputs text instructing data visualization into area 510. In the example of FIG. 4, the text "Display a time series graph for each column in an easy-to-read manner" is input into area 510.

[0044] The creation unit 135 creates, based on the text, a prompt for generating a code for a program for visualizing data to be analyzed in a data analysis tool.

[0045] However, there are cases where the user is not familiar with prompt engineering, meaning that even if the text entered by the user is simply input into the LLM, the result desired by the user may not necessarily be obtained.

[0046] Therefore, the creation unit 135 creates an appropriate prompt based on the text entered by the user. Specifically, the creation unit 135 creates a prompt for generating code in a programming language such as Python. By executing the generated code, an image that visualizes the data can be obtained.

[0047] The flow of processing for visualizing data will be described below with reference to the flowchart in Fig. 6. Fig. 6 is a flowchart showing the processing procedure of the information providing device according to the first embodiment.

[0048] 6, first, the receiving unit 131 receives an instruction to visualize data (step S101). For example, the receiving unit 131 reads the text input in the area 510 in FIG.

[0049] Next, the creation unit 135 identifies the data to be analyzed (step S102). The creation unit 135 follows the lines connected to the canvas data 122 shown in FIG. 3 to arrive at the card 1221 corresponding to the function for inputting data. As a result, the creation unit 135 identifies that "01_shared bicycle usage total number prediction quick data.csv" written on the card 1221 is the data to be analyzed.

[0050] The creation unit 135 creates a second prompt (step S103). The second prompt is used to create the first prompt. The first prompt is generated by inputting the second prompt into the LLM.

[0051] The creation unit 135 adds to the second prompt the specified data to be analyzed, a designation of the programming language to be used, initial code (e.g., a template), a designation of a library to be used (e.g., Pandas, numpy, sklearn), a designation of the output format (e.g., whether to color code, whether to overlay graphs), etc. A library is a collection of code having a specific function.

[0052] Furthermore, the creation unit 135 can obtain output that is more suitable for the user and has a high expected value by using information that can be obtained from a data analysis tool (for example, Node-AI). Information that can be obtained from the data analysis tool is, for example, a log history based on user operations, such as a user operation history, an analysis flow history, and an analysis execution log. The creation unit 135 can add such a log history and an instruction to perform output taking the log history into consideration to the second prompt.

[0053] The initial code is a variable part of the code that specifies column names and creates a graph. For example, the generation unit 136 generates code in which the variable part of the initial code is replaced with the actual column name of the data to be analyzed.

[0054] The generation unit 136 sends the second prompt to the LLM server 30 and obtains a first prompt (step S104). The first prompt is a prompt generated by the LLM and instructs the LLM to generate code based on the content of the second prompt. Furthermore, the generation unit 136 sends the first prompt to the LLM server 30 and obtains the code (step S105).

[0055] In this way, the generator 136 generates the code using the prompt. The generator 136 generating the code may mean that the generator 136 causes the LLM to generate the code.

[0056] The display control unit 134 displays an image obtained by executing the code generated by the generation unit 136 (steps S106 and S107). Area 520 in Fig. 4 is provided with tabs 521 and 522. When tab 521 is selected, the display control unit 134 displays in area 520 an image obtained by executing the code.

[0057] For example, "01_quick data predicting total number of bicycle share usage.csv" is a CSV file with the following columns: "year / month," "total number of bicycles used by cyclists," "number of bicycles used by members," and "number of bicycles used by non-members." In response to this, the generation unit 136 executes the code generated in response to the user's input, "Display a time series graph for each column in an easy-to-read manner," and as a result, an image of three time series graphs such as those shown in area 520 in Figure 4 is obtained.

[0058] 5, when tab 522 is selected, display control unit 134 displays the code generated by generation unit 136 in area 520.

[0059] [Effects of the first embodiment] As described above, the information providing device 10 includes a receiving unit 131, a display control unit 134, a creation unit 135, and a generation unit 136. The receiving unit 131 receives input of text in a natural language. The creation unit 135 creates a prompt based on the text for generating program code for visualizing data to be analyzed in a data analysis tool. The generation unit 136 generates the code using the prompt. The display control unit 134 executes the code generated by the generation unit 136 and displays an image obtained.

[0060] In this way, the information providing device 10 can extend the functionality of the no-code data analysis tool and provide functionality linked to LLM. As a result, the information providing device 10 can provide sufficient functionality, especially for users who are not familiar with data analysis and prompt engineering.

[0061] The display control unit 134 also displays the generated code. This allows the user to check not only the output result but also the code, improving learning effectiveness. Even if the text the user entered is unclear, the user can obtain an appropriate output result and understand what code is required to obtain the desired output.

[0062] However, learning data science requires specialized knowledge and advanced skills, making it difficult to achieve, and traditional teaching methods are not effective enough. Furthermore, when learning data science, it is important to acquire not only theory but also practical skills.

[0063] For example, time-series data analysis is generally performed using programming languages ​​such as Python and R. Users can perform data analysis flexibly by becoming familiar with these programming languages ​​and their associated libraries, such as Pandas, numpy, sklearn, and matplotlib. Therefore, not only must they learn a programming language, but they must also become familiar with the associated libraries required for efficient analysis, which presents a major hurdle for beginners in data analysis.

[0064] In contrast, in this embodiment, regardless of user input, the programming language and library are automatically specified and the LLM generates the code, so that the user can obtain the code even if they are not familiar with the programming language and library.

[0065] Furthermore, if the text entered by the user contains a specific keyword related to visualization, the information providing device 10 creates a prompt based on the keyword. For example, the keywords include "fifth difference," "12-period difference," "autocorrelation of difference," "autocorrelation of 12-period difference," "decompose data into trend, seasonal component, and noise," "box plot," and "periodogram." For example, if the keyword "fifth difference" is included in the text and the data to be analyzed is time series data, the information providing device 10 generates code that outputs a graph of the time differences of the time series data, rather than simply a graph of the time series data.

[0066] [System configuration, etc.] Furthermore, the components of each device shown in the figure are functional concepts and do not necessarily have to be physically configured as shown. In other words, the specific form of distribution and integration of each device is not limited to that shown, and all or part of the devices can be functionally or physically distributed or integrated in any unit depending on various loads, usage conditions, etc. Furthermore, all or any part of the processing functions performed by each device can be realized by a CPU (Central Processing Unit) and a program analyzed and executed by the CPU, or can be realized as hardware using wired logic. Note that the program may be executed not only by the CPU but also by other processors such as a GPU.

[0067] Furthermore, among the processes described in this embodiment, all or part of the processes described as being performed automatically can be performed manually, or all or part of the processes described as being performed manually can be performed automatically using a known method.In addition, the information including the processing procedures, control procedures, specific names, various data and parameters shown in the above documents and drawings can be changed as desired unless otherwise specified.

[0068] [program] In one embodiment, the information providing device 10 can be implemented by installing an information providing program that executes the above-described processes as package software or online software on a desired computer. For example, by executing the above-described information providing program on an information processing device, the information processing device can function as the information providing device 10. The information processing device referred to here includes desktop and notebook personal computers. In addition, the information processing device also includes mobile communication terminals such as smartphones, mobile phones, and PHS (Personal Handyphone Systems), as well as slate terminals such as PDAs (Personal Digital Assistants).

[0069] The information providing device 10 may also be implemented as a server device that provides a service related to the information providing process to a client terminal device used by a user. For example, the server device may be implemented as a server device that provides a service in which an operation on canvas data is used as input and a screen of the canvas data is used as output. In this case, the server device may be implemented as a web server or as a cloud that provides a service related to the information providing process by outsourcing.

[0070] 7 is a diagram showing an example of a computer that executes an information provision program. The computer 1000 includes, for example, a memory 1010 and a CPU 1020. The computer 1000 also includes a hard disk drive interface 1030, a disk drive interface 1040, a serial port interface 1050, a video adapter 1060, and a network interface 1070. These components are connected by a bus 1080.

[0071] The memory 1010 includes a ROM (Read Only Memory) 1011 and a RAM (Random Access Memory) 1012. The ROM 1011 stores a boot program such as a BIOS (Basic Input Output System). The hard disk drive interface 1030 is connected to a hard disk drive 1090. The disk drive interface 1040 is connected to a disk drive 1100. A removable storage medium such as a magnetic disk or optical disk is inserted into the disk drive 1100. The serial port interface 1050 is connected to a mouse 1110 and a keyboard 1120, for example. The video adapter 1060 is connected to a display 1130, for example.

[0072] The hard disk drive 1090 stores, for example, an OS 1091, an application program 1092, a program module 1093, and program data 1094. That is, a program that defines each process of the information providing device 10 is implemented as a program module 1093 in which computer-executable code is written. The program module 1093 is stored, for example, in the hard disk drive 1090. For example, a program module 1093 for executing processes similar to those of the functional configuration of the information providing device 10 is stored in the hard disk drive 1090. The hard disk drive 1090 may be replaced with an SSD (Solid State Drive).

[0073] Furthermore, setting data used in the processing of the above-described embodiment is stored as program data 1094, for example, in the memory 1010 or the hard disk drive 1090. Then, the CPU 1020 reads the program module 1093 or the program data 1094 stored in the memory 1010 or the hard disk drive 1090 into the RAM 1012 as necessary, and executes the processing of the above-described embodiment.

[0074] The program module 1093 and program data 1094 are not limited to being stored in the hard disk drive 1090, but may also be stored in, for example, a removable storage medium and read by the CPU 1020 via the disk drive 1100 or the like. Alternatively, the program module 1093 and program data 1094 may be stored in another computer connected via a network (such as a local area network (LAN) or a wide area network (WAN)). The program module 1093 and program data 1094 may then be read by the CPU 1020 from the other computer via the network interface 1070. [Explanation of symbols]

[0075] 1 Information provision system 10 Information provision device 11 Communications Department 12 Storage section 13 Control Unit 20 terminals 30 LLM Servers 50 screens 121 Data to be analyzed 122 Canvas Data 131 Reception 132 Editorial Department 133 Calculation Department 134 Display control unit 135 Creation Department 136 Generation part 1221, 1222, 1223 Cards 510, 520 area Tabs 521 and 522

Claims

1. a reception unit that receives input of text in a natural language; a creation unit that creates, based on the text, a prompt for generating a code for a program for visualizing data to be analyzed in a data analysis tool; a generator for generating code using the prompt; a display control unit that displays an image obtained by executing the code generated by the generation unit; An information providing device comprising:

2. The information providing device according to claim 1 , wherein the display control unit further displays the code.

3. 2. The information providing device according to claim 1, wherein the creating unit creates a prompt including a specification of a programming language used in the code and a specification of a library used in the code.

4. 2. The information providing device according to claim 1, wherein the generating unit generates a prompt including an initial state code.

5. 1. A computer-implemented method for providing information, comprising: a receiving step of receiving input of text in a natural language; a creation step of creating a prompt for generating a program code for visualizing the data to be analyzed in a data analysis tool based on the text; generating a code using the prompt; a display control step of executing the code generated by the generating step to display an image obtained; An information providing method comprising:

6. a receiving step for receiving input of text in a natural language; a creating step of creating a prompt for generating a code of a program for visualizing data to be analyzed in a data analysis tool based on the text; generating code using the prompts; a display control step of executing the code generated in the generating step to display an image obtained; An information providing program that causes a computer to execute the above.

Citation Information

Patent Citations

  • Method, system, and computer program for generating a chatbot from a web API specification

    JP2020532011A

  • Image generation device, prompt creation support device, program, and application program

    JP7398723B1

  • PROGRAM, INFORMATION PROCESSING APPARATUS, METHOD AND SYSTEM

    JP7411137B1

  • Information processing device, information processing method, and computer program

    JP7441366B1

  • Information processing device, information processing method, and information processing program

    JP2023027964A