Information processing device, program generation system, program, program generation method
The information processing device facilitates program code generation using a generative AI system, addressing limitations in conventional methods by enabling low-code or no-code customization of application functions through user-friendly interaction and confirmation mechanisms.
Patent Information
- Application Number
- JP2024203050
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-03-18
- Filing Date
- 2024-11-21
- Publication Date
- 2025-10-01
AI Technical Summary
Conventional programming methods using AI do not consider the generation of program code by a server device connected to a terminal device, limiting the customization of application functions through low-code or no-code methods.
An information processing device that communicates with a terminal device and a generation AI system, utilizing a program generation unit to generate program code based on user inputs and chat messages, with a chat control unit managing interactions and confirming user intent before generating code.
Enables the generation of program code through a generative AI system, allowing users to customize application functions with low-code or no-code by simplifying the process of inputting program code and ensuring correct execution.
Smart Images

Figure 2025143179000001_ABST
Abstract
Description
[Technical Field]
[0001] The present invention relates to an information processing device, a program generation system, a program, and a program generation method. [Background technology]
[0002] A programming method using artificial intelligence (AI) has been devised (see, for example, Patent Document 1). Patent Document 1 discloses a technology that acquires text data from conversational text, and generates one or more programs according to the extracted context by referring to a program code database in which one or more program codes are stored in association with the extracted context, a program grammar analysis database, and an automatic program generation knowledge database in which programs that have been made more efficient are associated with the processing operations to be realized. Summary of the Invention [Problem to be solved by the invention]
[0003] However, conventional techniques have not taken into consideration the possibility that an information processing device, such as a server device, connected to a terminal device may generate program code using a generation AI system.
[0004] In view of the above-mentioned problems, the present invention provides a technology for supporting the generation of program code using a generation AI system. [Means for solving the problem]
[0005] In view of the above-mentioned problems, the present invention provides an information processing device capable of communicating with a terminal device and a generation AI (Artificial Intelligence) system via a network, the information processing device comprising: a program generation unit that functions by executing a predefined function and generates program code related to the request based on parameters included in the request; and a chat control unit that, when receiving a chat message sent from the terminal device, sends the received chat message to the generation AI system, wherein the chat control unit sends setting information related to the generation of the program code and information for calling the function to the generation AI system at least once, and when the chat control unit receives the request sent by the generation AI system based on the chat message sent to the generation AI system, the setting information sent to the generation AI system, and the information for calling the function sent to the generation AI system, the chat control unit sends a confirmation message to the terminal device asking the terminal device to confirm whether it is OK to generate the program code related to the request, and if the response from the terminal device to the confirmation message is a response indicating that it is OK to generate the program code related to the request, the program generation unit generates the program code related to the request based on the parameters included in the received request. [Effects of the Invention]
[0006] The present invention can utilize a generative AI system to assist in the generation of program code. [Brief explanation of the drawings]
[0007] [Figure 1] This diagram explains the process from when the generation AI system requests the information processing system to execute a function in response to a chat message entered by a user, to when the information processing system generates program code. [Figure 2] FIG. 1 illustrates a system configuration of an example of a program generation system. [Figure 3]FIG. 2 is a diagram illustrating an example of a hardware configuration of an information processing system, a user terminal, and a developer terminal. [Figure 4] FIG. 2 is a diagram illustrating an example functional configuration of an information processing system, a user terminal, and a developer terminal. [Figure 5] FIG. 10 is a diagram illustrating an example of a customer management application screen displayed on a user terminal. [Figure 6] FIG. 10 is a diagram showing an example of a function selection screen displayed when a user presses an AI collaboration function button. [Figure 7] FIG. 10 is a diagram showing an example of a chat screen displayed when a user presses a customize button of an application. [Figure 8] FIG. 10 is a diagram showing an example of a chat screen on which generated program code is displayed. [Figure 9] 10A and 10B are diagrams illustrating an example of a customer management app screen and a chat screen that are displayed when a user presses an OK button. [Figure 10] FIG. 10 is a diagram illustrating an example of a response message that the information processing system acquires from the application service. [Figure 11] A figure showing an example of a request message for calling the first API published by the generation AI system. [Figure 12] 12 is an example of a response message that the generation AI system sends to the information processing system in response to the request message in FIG. 11. [Figure 13] This is an example of a response message (function call request) that the generation AI system sends to the information processing system in response to the request message in Figure 11. [Figure 14] 14 is a diagram showing an example of program code generated by a program generation unit based on the function call request of FIG. 13. FIG. [Figure 15] This is an example of a response message that the generation AI system sends to the information processing system in response to the request message in Figure 11. [Figure 16]FIG. 16 is a diagram showing an example of program code generated by a program generation unit based on the rules of FIG. 15. [Figure 17] A figure showing an example of a request message that calls the first API made public by the generation AI system after adding program code. [Figure 18] FIG. 18 is a diagram showing an example of a response message returned by the generation AI system in response to the request message of FIG. 17. [Figure 19] 10 is an example of a sequence diagram illustrating a process in which the information processing system supports the addition of program code. [Figure 20] FIG. 2 is a diagram illustrating an example of a functional configuration of an information processing system and a user terminal. [Figure 21] This is an example of a sequence diagram (part 1) showing how an information processing system adds program code to an application service by utilizing the collaboration between two web browsers in a user device. [Figure 22] This is an example of a sequence diagram (part 2) showing how an information processing system adds program code to an application service by utilizing the collaboration between two web browsers in a user's device. [Figure 23] FIG. 10 is a diagram illustrating a process in which an information processing system generates program code in response to a chat message input by a user. [Figure 24] FIG. 10 is a diagram illustrating an example of functional configurations of an information processing system, a user terminal, and a developer terminal in a case where an application service and the information processing system are integrated. DETAILED DESCRIPTION OF THE INVENTION
[0008] An information processing system and a program generation method performed by the information processing system will be described below with reference to the drawings as an example of an embodiment of the present invention. In this embodiment, a user can customize application functions using a low-code or no-code system by using a generation AI system.
[0009] [First embodiment] <Support for adding program code using a generative AI system> Generative AI systems such as ChatGPT (registered trademark) are known. Generative AI systems can perform various natural language processing tasks, such as text generation, question answering, text classification, sentiment analysis, information extraction, and text summarization. Generative AI systems such as Copilot (registered trademark) are also known, which suggest the next line of code to write while a program is being coded. Generative AI systems can also generate applications with low code or no code.
[0010] In this embodiment, a technology will be described in which a user customizes the functions of an application through conversation (also called chat) with a generative AI system. Note that the generative AI system or its functions may be simply referred to as AI (Artificial Intelligence).
[0011] Here, the generation AI system may be provided as a system separate from the system that provides the service related to the application, and the service related to the application and the generation AI system may be provided by the same provider.
[0012] There are services that allow users to create applications such as web apps with the simple operation of placing pre-defined components such as icons on the screen. Using these services, users can develop applications with no-code or low-code. However, there are limitations to what can be achieved by simply placing icons on the screen, and many services support customizing application functions by entering program code.
[0013] However, since users use the service to develop applications using low-code or no-code methods, it is difficult to customize application functions by inputting program code. Even if users can input program code, they cannot determine whether the application will run correctly.
[0014] Therefore, in this embodiment, a function that calls a function (called a function calling, function call, etc.) provided by the generative AI system is used, and an information processing system is interposed between the user and the generative AI system, making it possible to customize the application functions with low code or no code. This will be explained with reference to Figure 1. Note that in this embodiment, it is assumed that some application has already been created.
[0015] FIG. 1 is a diagram illustrating the process from when the generation AI system 50 requests the information processing system 20 to execute a function in response to a chat message entered by a user to when the information processing system 20 generates an application. The information processing system 20, which will be described later, provides a user interface for users to use the generation AI system 50 to develop applications. The information processing system 20 also converts chat messages sent from the user terminal 10 into request messages that call APIs (Application Programming Interfaces) published by the generation AI system 50 and application service 40, and sends the request messages to the generation AI system 50 and application service 40.
[0016] (1) The user terminal 10 transmits a chat message input by the user to the information processing system 20. The chat message in this embodiment is considered to include content for customizing the application, such as "Please specify only one person in charge." In addition, the user terminal 10 transmits identification information for identifying the application (hereinafter referred to as an application ID) to the information processing system 20.
[0017] (2) The information processing system 20 receives a request for customizing an application from the user terminal 10 by specifying an application ID. Customizing an application requires information such as items that the application has. Therefore, in this embodiment, the information processing system 20 calls the API of the application service 40 to obtain, from the application service 40, application information such as items that the application identified by the application ID has.
[0018] (3) The information processing system 20 includes application items in a request message and sends it to the generation AI system 50 via an API for receiving request messages provided by the generation AI system 50. Here, the information processing system 20 also sends the request message together with function specification settings. A function is a program interface that performs a specific process based on specified arguments and returns a return value as a result. This function enables the generation AI system 50 to request application customization from the information processing system 20. By including this function specification setting in a request message and sending it to the generation AI system 50, the information processing system 20 can customize the application with low code or no code in response to a function call request from the generation AI system 50. Note that the request from the generation AI system 50 to the information processing system 20 to call this function is called a function call (equivalent to a function call request). In addition, as supplemental information, the information processing system 20 can include system settings in the request message that notify the generation AI system 50 of notes regarding the program code, etc. Details of system settings and function specification settings will be described later, but while system settings are general policies regarding the application you want to generate, function specification settings are information that the information processing system 20 specifies to the generation AI system 50 as the specifications of the functions that the generation AI system 50 will call.
[0019] Note that the information processing system 20 does not have to include the system settings and function specification settings in the same request message as the application items. For example, the information processing system 20 may include the system settings and function specification settings in a request message separate from the request message including the application items and send it to the generation AI system 50. The information processing system 20 may also include the system settings and function specification settings in separate request messages and send them to the generation AI system 50.
[0020] Furthermore, the information processing system 20 may transmit the system settings and function specification settings each time an application item is included in a request message and transmitted, or may transmit them only once at the beginning.
[0021] (4) The generating AI system 50 sends a response message including a function call request to the information processing system 20 based on the application items, function specification settings, and system settings included in the sent request message. Note that the generating AI system 50 only requests the information processing system 20 to call the function, and it is the information processing system 20 that actually executes the function.
[0022] Note that the generation AI system 50 does not necessarily send a response message including a function call request to the information processing system 20 based on the conversation history, function specification settings, and system settings. For example, the generation AI system 50 may send a response message including a question or a response message indicating that it could not understand the content of an application item to the information processing system 20.
[0023] (5) The information processing system 20 generates program code for customization in response to a function call request (function call) included in the response message sent from the generation AI system 50, and requests the application service 40 to add the program code. Here, the response message includes program information rather than the program code itself. The program information is information such as JSON for generating the program code, and since it is in a fixed JSON format, it is easy for the information processing system 20 to generate the program code. However, the response message may also include the program code itself.
[0024] The information processing system 20 generates a request message for calling the API of the application service 40 from the contents of the function call request, and transmits the generated request message to the application service 40. In this embodiment, the process of generating such a request message may be expressed as "executing a function" or "running a function." In this embodiment, the information processing system 20 adds program code to the application service 40 in response to the function call request.
[0025] In this way, the user simply inputs the application customization details in natural language on the user terminal 10, and the information processing system 20 generates program code using the program information received from the generation AI system 50, and adds the program code to the application service 40.
[0026] <Terminology> An application is an abbreviation for an application program, and is a program generated by a computer for any task. While an OS (Operating System) is general-purpose software that provides basic functions and systems (file system, communication, display control, etc.) for computer operation, an application provides specific functions on the OS. Applications include web apps and native apps. In this embodiment, either may be developed.
[0027] An API is an interface for applications (software), and is therefore a point of contact for connecting systems and sharing functions and mechanisms. APIs define the specifications for the interface used by applications to exchange information with each other. An API between computers is a specification in which one website communicates with another website via HTTP (HTTPS) communication. This communication allows one website to use the functions of the other website. An API between computers is sometimes called a Web-API.
[0028] When an API sends a specific request (for example, retrieving, updating, deleting, or processing data), it returns the corresponding results (for example, data, update results, deletion results, or processing results). The request is sometimes called a request message, and the results are sometimes called a response message. Calling an API means sending a request according to the API specifications and obtaining the results. Calling an API can also be referred to as executing, operating, hitting, or using.
[0029] The information for calling a function is information that enables a function provided by the information processing system 20 to be called from outside the information processing system, for example, from the generation AI system 50. The information for calling a function includes information about the Web-API for calling the function.
[0030] Information about the Web-API for calling a function is information that enables the generation AI system 50 to call (use) the Web-API. In this embodiment, the information about the Web-API is described in terms of function specification settings (hereinafter referred to as function specification settings). Function specification settings are information that the information processing system 20 specifies to the generation AI system 50 the specifications of the function call that the generation AI system 50 will call. The generation AI system 50 calls the function to the information processing system 20 based on the function specification settings, so the information processing system 20 can analyze the function.
[0031] A function is a program interface that performs a specific process based on specified arguments and returns a return value as a result. While the specifications and functions of a function can be designed by the developer, APIs are pre-prepared for functions that are publicly available for use by the generative AI system 50 and application service 40. A function is one of the API specifications, and can be set by calling the API if the API defines how to specify the function. Furthermore, a function call or a function call request refers to a request to execute a function.
[0032] A chat service is a service that allows multiple users to send and receive messages in real time. A generative AI system is a service that allows users to send and receive messages with AI in real time.
[0033] The setting information is the general policy for generating an application, and may be, for example, a description of the application, hints, or information that the user should not be asked. The setting information is information that, when communicated to the generation AI system 50, makes it easier to generate the desired application.
[0034] System settings are information in which all or part of this setting information has been converted into a request message that calls an API. In other words, system settings are information in which all or part of the setting information has been converted into API format.
[0035] A user is an end user who uses an application provided by the application service 40. A user can also develop an application. A developer is a person who makes the settings required for application development using no-code or low-code programming in the information processing system 20. The developer sets the setting information described below in the information processing system 20.
[0036] Customization is the process of changing, adding, or removing features of a product or service to suit individual needs and preferences. One way to customize an application is to add program code.
[0037] The parameters included in the request are information used to generate the program code. The parameters may be parameters included in the application to be generated, or may not be parameters included in the application to be generated. The parameters may be parameters used to generate the application. The content of the parameters varies depending on the program code the user wants to generate. For example, in the case of an application that handles table formats or databases, the parameters are parameters used to determine whether required data has been set, whether the data format is correct, etc. In this embodiment, the parameters are written in JsonLogic. Furthermore, the parameters may include the names of items in the application to which the program code is to be added, and logic using the item names may be written.
[0038] Program code is data that provides instructions to a computer. Program code includes descriptions in programming languages, data compiled and converted to be easily processed by a computer (machine language, object data, etc.), and assembly language. Examples of program code include descriptions (data) based on JsonLogic, HTML, JavaScript, PHP, Ruby, Visual Basic, Python, Go, C#, and C++. <System configuration example> The system configuration of the program generation system 100 according to this embodiment will be described with reference to FIG. 2. FIG. 2 is a diagram showing the system configuration of an example of the program generation system 100. The program generation system 100 shown in FIG. 2 includes an information processing system 20, a user terminal 10, and a developer terminal 60. The information processing system 20 and the user terminal 10, and the information processing system 20 and the developer terminal 60 are communicatively connected via networks N1 and N2. The information processing system 20 can also communicate with the generation AI system 50 and an external system, an application service 40, via the network N1. The user terminal 10 and the developer terminal 60 can also communicate with the generation AI system 50 and an external system, an application service 40, via the networks N1 and N2.
[0039] The user terminal 10 and the developer terminal 60 are located in facilities such as a company or a home, and are connected to a network N2. The network N2 may be a LAN, Wi-Fi (registered trademark), Wide Area Ethernet (registered trademark), a mobile phone network such as 4G, 5G, or 6G, etc. The network N1 is a wide-area network such as the Internet or a WAN. The user terminal 10 and the developer terminal 60 do not need to be connected to the network N2 at all times; they only need to be connected when using the information processing system 20, the generation AI system 50, or the application service 40.
[0040] A generative AI system 50 provides a service that allows users to converse with artificial intelligence (AI). A known example of such a generative AI system 50 is a system that uses large-scale language models (LLMs). A large-scale language model is a natural language processing model trained using a large amount of text data. The generative AI system 50 first imports a huge amount of text and learns knowledge from it using deep learning, reinforcement learning, and the like. Using this knowledge, the generative AI system 50 provides a response message to data based on a chat message. The generative AI system 50 has an interface that receives chat messages, files, and the like input by the user. The chat messages, files, and the like received through this interface are called prompts. Prompts may include not only chat messages (natural language) such as instructions and questions, but also files and the like. Chat messages may be conversational sentences or words composed of natural language spoken by humans. Images may also be used as chat messages. A generative AI system 50 that generates sentences in response to chat messages is sometimes called a generative AI. In this embodiment, the information processing system 20 generates an application that runs on the application service 40 using a response message that the generation AI system 50 sends in response to a chat message entered by a user. The application that runs on the application service 40 includes a web application that runs on the application service 40 and a native application that is installed on the user terminal 10. When the native application installed on the user terminal 10 is executed on the user terminal 10, it connects to the application service 40 and executes the functions of the application service 40.
[0041] The generative AI system 50 has the following features: 1. The generative AI system 50 advances the conversation in a natural flow. 2. The generative AI system 50 can expand on and propose ideas even in areas where the user has no knowledge. 3. The generative AI system 50 can output accurate program code. Therefore, the information processing system 20 can naturally advance conversations with the user via the generative AI system 50. Furthermore, the user can receive the ideas necessary for the app simply by specifying the app they want to create. Furthermore, because the functions called by the generative AI system 50 are accurate (highly reproducible), the information processing system 20 can easily generate the program code the user desires.
[0042] Systems using LLMs such as GPT-3, GPT-4, Transformer, and BERT (all of which are registered trademarks) are known as the generation AI system 50. As an example, ChatGPT using GPT-3 or GPT-4 can be used in the program generation system 100 of this embodiment, but systems using other LLMs may also be used.
[0043] The application service 40 is one or more information processing devices that provide applications executed by users. The applications provided by the application service 40 are, for example, database-type web applications that manage data in a table format. Users can arbitrarily set fields in the application and customize it so that they can save, read, or process data related to their own business. Setting desired fields and the like in a pre-prepared database in this way is application development. Furthermore, controlling the detailed functions of the database is application customization.
[0044] In this embodiment, the information processing system 20 includes a chat message from a user in a request message and sends the request message to the generation AI system 50. The information processing system 20 uses the response message from the generation AI system 50 to add program code to the application service 40. In other words, the user can customize the application provided by the application service 40 without writing any code.
[0045] If the domains of the application service 40 and the information processing system 20 are different (for example, if the service origins are different), the accounts of the application service 40 and the information processing system 20 are different even for the same user.
[0046] On the other hand, the application service 40 and the information processing system 20 may be integrated. That is, the application service 40 may include the functions of the information processing system 20, or the information processing system 20 may include the functions of the application service 40. The application service 40 and the generation AI system 50 may also be integrated. The generation AI system 50 and the information processing system 20 may also be integrated. The information processing system 20, the application service 40, and the generation AI system 50 may also be integrated.
[0047] Examples of application services 40 include cloud services, ASPs (Application Service Providers), SaaS, etc., and may include various services provided over a network. For example, examples of services include providing databases and storage services. Application services 40 may exist on the Internet or on-premise. The information processing system 20 transmits chat messages sent from the user terminal 10 to the generation AI system 50. The information processing system 20 is configured as one or more information processing devices. From the perspective of the user terminal 10, the information processing system 20 acts as a server device that accepts requests. A server is a computer or software that performs the function of providing information and processing results in response to requests from clients. The information processing system 20 provides a user interface to the user terminal 10, generates a request message from the received chat message, and sends the generated request message to the generation AI system 50. When the information processing system 20 receives a request (function_call) to add program code from the generation AI system 50, it requests the application service 40 to add the program code. The user does not have to go through the trouble of switching between connecting the user terminal 10 to the generation AI system 50 and connecting it to the application service 40.
[0048] As will be described later, a user may use the application service 40 as a portal to add program code. The information processing system 20 receives a connection request to the generation AI system 50 from a user terminal 10 connected to the application service 40, and communicates with the generation AI system 50. Details of such communication are explained in Figures 21 and 22.
[0049] The information processing system 20 also accepts setting of configuration information from the developer terminal 60. Setting of configuration information means setting knowledge (configuration information) necessary for generating applications of the application service 40 and generating program code in the information processing system 20. Therefore, the configuration information is information that the generation AI system 50 uses to add program code. The configuration information may include, for example, notes regarding the program code. By having the developer set the configuration information in the information processing system 20, user support becomes easier. The information processing system 20 can create appropriate system settings for the application based on the configuration information and notify the generation AI system 50 of the created system settings. The system settings are generated from the configuration information, and the system settings are part or all of the configuration information.
[0050] The setting information is set in the information processing system 20 before the user starts developing an application or adding program code. However, the information processing system 20 can also customize the setting information for each customer. For example, if the setting information is "You will now be talking to a customer in the $$ industry" depending on the customer's industry, the information processing system 20 changes the industry name of $$ according to the customer's industry and notifies the generation AI system 50.
[0051] The information processing system 20 uses this setting information to create a request message to be sent to the generation AI system 50. However, in this embodiment, setting information is not necessary. This is because the information processing system 20 can obtain the application items from the application service 40, and the generation AI system 50 has already learned the grammar of the programming language. In the request message, the setting information is reflected in the system settings, which will be described in detail later.
[0052] The information processing system 20 may be realized by cloud computing or by a single information processing device. Cloud computing refers to a form in which resources on a network are used without being aware of specific hardware resources. The information processing system 20 may exist on the Internet or on-premise.
[0053] Furthermore, the functions of the information processing system 20 may be distributed across multiple information processing devices, or there may be multiple information processing systems 20 with the same functions, and the number of information processing systems that deliver videos may be increased or decreased depending on the processing load.
[0054] The user terminal 10 or the developer terminal 60 is, for example, a terminal device such as a PC (Personal Computer), smartphone, or tablet terminal used by a user or developer. A web browser or native application runs on the user terminal 10 or the developer terminal 60. The developer operates the developer terminal 60 to create setting information for the application. The user operates the user terminal 10 to input chat messages. The administrator or user operates the developer terminal 60 and the user terminal 10 to use various services provided by the information processing system 20, the generation AI system 50, or the application service 40.
[0055] The user terminal 10 or the developer terminal 60 may be any information processing device. Examples of such information processing devices include output devices such as electronic whiteboards and digital signage, HUD (Head Up Display) devices, industrial machinery, imaging devices, sound collection devices, medical equipment, network appliances, mobile phones, smartphones, tablet terminals, car navigation systems, game consoles, PDAs (Personal Digital Assistants), digital cameras, and wearable PCs.
[0056] <Hardware configuration example> 3, the hardware configurations of the information processing system 20, user terminal 10, and developer terminal 60 included in the program generation system 100 will be described. The generation AI system 50 and application service 40 are assumed to have the same hardware configuration as that shown in FIG. 3 or to have the hardware configuration of an information processing device compatible with cloud computing.
[0057] <<Information processing system, user terminal, and developer terminal>> Fig. 3 is a diagram showing an example of the hardware configuration of the information processing system 20, user terminal 10, and developer terminal 60 according to this embodiment. As shown in Fig. 3, the information processing system 20, user terminal 10, and developer terminal 60 are constructed by a computer 500, and include a CPU 501, a ROM 502, a RAM 503, a HD (Hard Disk) 504, an HDD (Hard Disk Drive) controller 505, a display 506, an external device connection I / F (Interface) 508, a network I / F 509, a bus line 510, a keyboard 511, a pointing device 512, a DVD-RW (Digital Versatile Disk Rewritable) drive 514, and a media I / F 516.
[0058] Of these, the CPU 501 controls the overall operation of the computer 500. The ROM 502 stores programs, such as an IPL, used to drive the CPU 501. The RAM 503 is used as a work area for the CPU 501. The HD 504 stores various data, such as programs. The HDD controller 505 controls the reading and writing of various data from and to the HD 504 under the control of the CPU 501. The display 506 displays various information, such as a cursor, menus, windows, characters, or images. The external device connection I / F 508 is an interface for connecting various external devices. In this case, external devices include, for example, USB (Universal Serial Bus) memories and printers. The network I / F 509 is an interface for data communication using the network N2. The bus line 510 is an address bus, a data bus, or the like, for electrically connecting the components, such as the CPU 501, shown in FIG. 3.
[0059] The keyboard 511 is a type of input means having multiple keys used to input characters, numbers, various instructions, etc. The pointing device 512 is a type of input means for selecting and executing various instructions, selecting a processing target, moving a cursor, etc. The optical drive 514 controls reading and writing of various data from a DVD-RW 513, which is an example of a removable recording medium. Note that the removable recording medium is not limited to the DVD-RW 513, and may be a DVD-R or the like. The media I / F 516 controls reading and writing (storing) of data from a recording medium 515, such as a flash memory.
[0060] <About the function> Next, the functional configuration of the program generation system 100 will be described with reference to Fig. 4. Fig. 4 is a diagram showing an example of the functional configuration of the information processing system 20, the user terminal 10, and the developer terminal 60.
[0061] <<User device>> The user terminal 10 has a communication unit 11, a display control unit 12, and an operation reception unit 13. Each of these functional units is a function or means realized by the CPU 501 shown in FIG. 3 executing instructions contained in one or more programs installed in the user terminal 10. For example, the communication unit 11, the display control unit 12, and the operation reception unit 13 may be realized by at least one of a web browser and JavaScript (registered trademark, omitted below). When the user terminal 10 executes a native app, these may be realized by the native app.
[0062] The communication unit 11 transmits and receives various types of information to and from the information processing system 20. In this embodiment, the communication unit 11 receives screen information of the customer management app screen from the application service 40, and receives screen information such as a chat screen on which chat messages are entered from the information processing system 20. The communication unit 11 transmits chat messages, operation information for the user terminal 10, and the like to the information processing system 20. Note that the communication unit 11 can also communicate directly with the generation AI system 50.
[0063] The display control unit 12 interprets screen information of various screens and displays it on the display 506. The operation accepting unit 13 accepts various operations on the various screens displayed on the display 506 by the user.
[0064] <<Developer device>> The developer terminal 60 has a communication unit 61, a display control unit 62, and an operation reception unit 63. Each of these functional units is a function or means realized by the CPU 501 shown in FIG. 3 executing instructions contained in one or more programs installed on the developer terminal 60. For example, the communication unit 61, the display control unit 62, and the operation reception unit 63 may be realized by at least one of a web browser and JavaScript. When the developer terminal 60 executes a native app, these may be realized by the native app.
[0065] The communication unit 61 transmits and receives various information to and from the information processing system 20. In this embodiment, the communication unit 61 receives screen information related to input of setting information from the information processing system 20. The communication unit 61 transmits setting information, operation information for the developer terminal 60, etc. to the information processing system 20. The communication unit 21 can also communicate with the generation AI system 50 and the application service 40.
[0066] The display control unit 62 interprets screen information of various screens and displays it on the display 506. The operation receiving unit 63 receives various operations on the various screens displayed on the display 506 by the user.
[0067] <<Information Processing System>> The information processing system 20 has a communication unit 21, a screen generation unit 22, a chat control unit 23, a setting information storage unit 24, a customization unit 25, a program generation unit 26, and a processing control unit 28. Each functional unit of the information processing system 20 is a function or means realized by the CPU 501 shown in FIG. 3 executing instructions included in one or more programs installed in the information processing system 20. The setting information storage unit 24 is constructed in the HD 504, RAM 503, or the like shown in FIG. 3. The setting information storage unit 24 does not have to be included in the information processing system 20, and may be located on a network accessible by the information processing system 20.
[0068] The communication unit 21 transmits and receives various types of information to and from the user terminal 10. The communication unit 21 transmits screen information of the customer management app and the chat screen to the user terminal 10. The communication unit 21 receives chat messages entered by the user from the user terminal 10. The communication unit 21 also transmits and receives various types of information to and from the developer terminal 60. The communication unit 11 transmits screen information of the setting information input screen to the developer terminal 60. The communication unit 11 receives setting information entered by the developer from the developer terminal 60 and stores it in the setting information storage unit 24.
[0069] The screen generation unit 22 generates screen information for screens (web pages) displayed by the user terminal 10 and the developer terminal 60. Web pages are provided as part of a web application. The screen information is a program written in HTML, JSON, XML, a scripting language, CSS (Cascading Style Sheet), etc. The structure of the web page is mainly specified by HTML, the behavior of the web page is defined by the scripting language, and the style of the web page is specified by CSS. The user terminal 10 may also execute a native application. A native application is an application that cannot be executed unless it is installed on the user terminal 10. In the case of a native application, the screen information is held by the user terminal 10, and the information to be displayed is transmitted in JSON, XML, etc.
[0070] The chat control unit 23 sends a request message to the generation AI system 50 by calling the first API 31. The request message includes the application item name, function specification settings, etc. When the chat control unit 23 receives a chat message sent from the user terminal 10, it includes the received chat message in a request message and sends it to the generation AI system 50. The chat control unit 23 can also send a request message to the generation AI system 50 that includes a history of past conversations before and after sending the chat message or together with the chat message. The first API 31 is one or more APIs published by the generation AI system 50. As a result of calling the first API 31, the chat control unit 23 receives a response message to the request message from the generation AI system 50. The response message includes a reply message to the chat message, or a function call request to the information processing system 20 and program information, etc.
[0071] The program generation unit 26 analyzes the program information included in the response message from the generation AI system 50 and generates program code. As an example, the program information is expressed in JSON format based on JsonLogic. JsonLogic is a simple grammar for handling data. By using JsonLogic, the information processing system 20 can express tasks such as simple conditional branching, mathematical calculations, or data filtering.
[0072] The customization unit 25 calls the second API 32 to send a request message to the application service 40. The customization unit 25 functions by executing a predefined function. The request message includes program code to be added to the application. The program code may include logic using the item name and item data of the application.
[0073] The second API 32 is one or more APIs published by the application service 40. As a result of calling the second API 32, the customization unit 25 receives a response message to the request message from the application service 40. The response message includes the result (success or failure) of the request to add the program code. If successful, it indicates that the program code has been registered in the application.
[0074] The customization unit 25 may customize an application by adding program code to the application within the information processing system 20 without making a request to the application service 40. The customization unit 25 may add the program code as a macro that is valid in spreadsheet software, for example.
[0075] Here, "adding program code" does not only mean that the customization unit 25 actually adds the program code, but also includes the customization unit 25 requesting the application service 40, etc. to add the program code, and the application service 40, etc. actually adding the program code.
[0076] The process control unit 28 determines the next process to be performed based on the chat message sent from the user terminal 10 and the button pressed by the user (operation content). By determining the process, the process control unit 28 requests the chat control unit 23 or the customization unit 25 to perform the process.
[0077] <Additional information on the operation of the generative AI system> In this embodiment, the information processing system 20 uses the generating AI system 50 by calling the first API 31 made public by the generating AI system 50. When the information processing system 20 calls the first API 31, it becomes possible to converse with the AI, which is one of the functions of the generating AI system 50. The generating AI system 50 has distinctive operations or processes, which will be described in more detail below.
[0078] The information processing system 20 communicates with the generation AI system 50 by sending a request message for calling an API to the generation AI system 50. The request message enables the information processing system 20 to obtain a response message from the generation AI system 50.
[0079] The generation AI system 50 returns a response message to the request message to the information processing system 20. The response message included in the response message of the generation AI system 50 often differs each time, even for the same chat message. However, if the information processing system 20 sets a parameter called temperature to 0, the generation AI system 50 will return the same response message for the same chat message.
[0080] If the information processing system 20 wants to continue a conversation with the generative AI system 50, it must include all past conversation history in the request message. This is because conversations with the generative AI system 50 are stateless. This is a specification of one generative AI system 50, and another generative AI system 50 may not require the inclusion of past conversation history.
[0081] In this way, the first API 31 does not have a state related to past communications (it is stateless). For this reason, the history of past conversations is held by the user of the first API 31 (in this embodiment, the information processing system 20), and must be specified each time the first API 31 is called. The history of past conversations may also be held by the user terminal 10. Furthermore, since the first API 31 returns an error if the conversation history becomes too long, it is preferable that the information processing system 20 take appropriate measures, such as including only the most recent exchanges in a request message if the conversation has continued for a long time.
[0082] <<Function call returned by the generation AI system>> The functions provided by the generative AI system 50 include a function called a function call. A function call is when the generative AI system 50 requests the information processing system 20 to call a function. Therefore, if the information processing system 20 allows the generative AI system 50 to use this function, the generative AI system 50 can call a "function."
[0083] The request message includes a function specification setting set by the information processing system 20 so that the generating AI system 50 can call a "function." The function specification setting enables the generating AI system 50 to make a function call (function call request). In this way, the function specification setting is information that enables the generating AI system 50 to call the customization unit 25. In other words, the function specification setting notifies the generating AI system 50 that the generating AI system 50 can request the information processing system 20 to call a function.
[0084] In this way, the information processing system 20 causes the generation AI system 50 to use function call, which allows the generation AI system 50 to call a function provided by the information processing system 20 and the information processing system 20 to execute the function. Furthermore, the information processing system 20 can use the execution results of the function to converse with the user.
[0085] However, since the response message of the generation AI system 50 is different each time, the generation AI system 50 does not necessarily request a function call. Even if the information processing system 20 includes a function specification setting in the request message, the generation AI system 50 may return the same response message as when no function specification setting is set.
[0086] The continuity of the conversation between the user and the generation AI system 50 will now be described. However, in this embodiment, there is no phase in which conversation continuity is desirable. If a process is adopted in which the entire history of past conversations is included in the request message, the information processing system 20 must also include the execution result of the function in the request message and transmit it to the generation AI system 50. However, it is not necessary for the information processing system 20 to include the execution result of the function in the request message along with the history of past conversations and transmit it to the generation AI system 50. In other words, the information processing system 20 may transmit the execution result of the function directly to the user terminal 10. However, by transmitting the execution result of the function to the generation AI system 50, the generation AI system 50 can continue the conversation using the history of past conversations, thereby creating continuity in the conversation. For example, consistency in writing style and wording will be achieved, making it less likely for the user to feel uncomfortable. For example, even if the user's native language is English and the conversation is in English, the information processing system 20 does not need to translate the response message into English.
[0087] Furthermore, the information processing system 20 cannot predict whether the generating AI system 50 will request a function call. However, if the information processing system 20 explicitly specifies the "function_call option" in the request message, it can force the generating AI system 50 to make a function call.
[0088] <Example of screen displayed on user device> For convenience of explanation, examples of screens displayed by the user terminal 10 when the user customizes an application will be described with reference to Figures 5 to 9. In this embodiment, examples of screens when the user customizes a customer management application will be described.
[0089] FIG. 5 shows an example of a customer management app screen 610 displayed on the user terminal 10. The customer management app is a web app executed by the application service 40. This customer management app has the following fields: company name 611, department name 612, person in charge name 613, and email address 614. Five records 615 have already been entered. The five records 615 may be dummy data generated by the generation AI system 50, or may be data manually entered by the user.
[0090] The generative AI system 50 provides various types of support to users regarding applications using no-code or low-code. The AI collaboration function button 616 is a button for displaying such various support contents. The filtering button 618 is a button for filtering each record according to predetermined conditions, and the calculation button 617 is a button for calculating and graphing statistical information for each record.
[0091] FIG. 6 shows a function selection screen 620 that is displayed when the user presses the AI collaboration function button 616. Note that the application ID of the customer management application is identified by pressing the AI collaboration function button 616 on the customer management application screen 610. The function selection screen 620 is displayed as a pop-up overlapping the customer management application screen 610, but this is for convenience of drawing. The function selection screen 620 may be displayed after a screen transition from the customer management application screen 610. The function selection screen 620 has an automatic record generation button 621, an add field button 622, and an application customization button 623.
[0092] The Automatic Record Generation button 621 is a button for automatically generating and registering dummy data. Dummy data is data generated to check the operation and functionality of an application, etc. The operation and functionality of an application can be checked without the user having to register data. The Add Field button 622 is a button for the user to add an item (field) to the customer management app with the support of the generation AI system 50, and the Customize Application button 623 is a button for customizing the application with the support of the generation AI system 50.
[0093] FIG. 7 shows a chat screen 630 that is displayed when the user presses the customize application button 623. The chat screen 630 is displayed as a pop-up overlapping the customer management app screen 610, but this is for convenience of illustration. The chat screen 630 may also be displayed after a screen transition from the customer management app screen 610. The chat screen 630 has a message 631 that reads "Customize the application." The user sees this message 631 and enters a chat message 632 that reads, "Please be sure to set one person in charge."
[0094] When the user terminal 10 sends this chat message 632 to the information processing system 20, the information processing system 20 obtains information about the customer management app (such as item names) from the application service 40. The information processing system 20 also specifies the information about the customer management app and requests the generation AI system 50 to generate program information, and obtains the program information from the generation AI system 50. At this stage, the information processing system 20 can also register the program code itself with the application service 40. However, if the generation AI system 50 generates program code, there is a possibility that the generated program code contains a problem. It is undesirable for the generated program code to delete user data. Therefore, in this embodiment, the information processing system 20 does not have the generation AI system 50 generate program code, but rather has the information processing system 20 generate program information in JSON format. The information processing system 20 then generates program code from the program information and adds it to the application service 40.
[0095] Figure 8 shows a chat screen 630 displaying the generated program code. The chat screen 630 in Figure 8 displays a message 633 saying, "The following program code will be registered." The message 633 corresponds to a confirmation message that asks the user whether or not to add the program code to the application service 40. The chat screen 630 also displays an explanatory text 634b. The explanatory text 634b is the content of the program code. The explanatory text 634b may be generated by the generation AI system 50 or may be generated by the information processing system 20. When the explanatory text 634b is generated by the generation AI system 50, the explanatory text 634b is transmitted from the generation AI system 50 together with the program information.
[0096] The chat screen 630 also has an OK button 635 and a cancel button 636. When the user presses the OK button 635, the information processing system 20 registers the program code 634a in the customer management app of the application service 40. Pressing the OK button 635 corresponds to the user confirming a request to register the program code generated from the program information included in the request (function_call) from the generation AI system 50.
[0097] 9 shows a customer management app screen 610 and a chat screen 630 that are displayed when the user presses an OK button 635. Chat screen 630 in FIG. 9 displays a chat message 637 saying "OK," which was entered when the user pressed the OK button 635, and a response message 638 saying "Addition completed. You can check the settings here." Furthermore, although there are no changes to the customer management app screen, program code 634a has been added, so that an error message can be displayed if the user does not set a person in charge in a record in the customer management app.
[0098] <Request message and response message> Next, a request message sent from the information processing system 20 to the application service 40 or the generation AI system 50, and a response message received by the information processing system 20 from the application service 40 or the generation AI system 50 will be described.
[0099] 10 is an example of a response message that the information processing system 20 acquires from the application service 40. When a user inputs a chat message 632 saying "Please make sure to set one person in charge" on the chat screen 630, the customization unit 25 includes a request for the application ID and application information (item name, data format, etc.) in a request message for calling the second API 32 and transmits the request message to the application service 40. As a result, the customization unit 25 acquires the response message shown in FIG.
[0100] 10, label 641 indicates the item name, and type 642 indicates the data format. Therefore, similar to Fig. 5, the company name, department name, person in charge name, and email address are associated with label 641. In this way, the customization unit 25 can acquire application information (item names, data formats, etc.) that the application has from the application service 40.
[0101] Then, the chat control unit 23 uses the response message of Figure 10 to generate a request message to request the generation AI system 50 to generate program information. By notifying the generation AI system 50 of the application information (item names, data formats, etc.), the generation AI system 50 can generate program information using the application information (item names, data formats, etc.).
[0102] FIG. 11 shows an example of a request message in which the information processing system 20 calls the first API 31 published by the generation AI system 50. The request message includes roles 651 and 653 and content 652 and 654. Roles 651 and 653 indicate the speaker, and include user (user), assistant (AI of the generation AI system 50), and system (instruction to set up the AI assistant). Contents 652 and 654 are the content of the conversation and may be written in natural language. Content 652 of system is "Please help me add JavaScript (registered trademark) to the following app." Content 652 may also include notes regarding more detailed program code. Content 652 also includes the item name obtained from the application service 40 shown in FIG. 10.
[0103] This content 652 is generated by the chat control unit 23 in response to pressing the customize button 623 of the application in Fig. 6. However, if the user inputs a chat message to the user terminal 10 requesting that program code be generated, the content 652 may not be necessary.
[0104] The content 654 of the user is "Please set one person in charge." This content 654 is the chat message 632 that the user input on the chat screen 630 of FIG.
[0105] 11 includes a function specification setting 655. "function" is the function specification setting 655, and the function specification setting 655 has a name 656. The name 656 is the name of the function (add_actions). The generation AI system 50 specifies this name to make a function call.
[0106] By this function specification setting 655, the information processing system 20 has instructed the generating AI system 50 that the generating AI system 50 can request the information processing system 20 to call the function defined as shown in FIG.
[0107] Figure 12 is an example of a response message that the generation AI system sends to the information processing system 20 in response to the request message of Figure 11. The response message of Figure 12 does not include a function call request, and is not the response message expected by the chat control unit 23. In such a case, the information processing system 20 sends the response message included in the response message to the user terminal 10. Since the response message 671 is "Please tell me more details," the user inputs more specific information for customizing the application into the user terminal 10 and sends it to the information processing system 20. By the chat control unit 23 sending a request message including specific information to the generation AI system 50, the chat control unit 23 can obtain a response message including a function call request.
[0108] FIG. 13 is an example of a response message that the generation AI system 50 sends to the information processing system 20 in response to the request message of FIG. 11. The response message of FIG. 13 includes a function call request 681. In this embodiment, when the function call of FIG. 13 is included in the response message, the chat control unit 23 detects it, and the program generation unit 26 generates program code. The customization unit 25 requests the application service 40 to add program code. The application service 40 is a low-code or no-code platform. In this embodiment, the second API 32 published by the application service 40 and the first API 31 published by the generation AI system 50 are called, enabling the information processing system 20 to add program code to the application of the application service 40 while the user is conversing with the generation AI system 50 in natural language.
[0109] The function call request 681 in the response message corresponds to a request to add program code. The function call request 681 includes a name 682 and arguments 683. The name 682 is the name of the function defined in the function specification setting 655. The generation AI system 50 is requesting the information processing system 20 to call the function with this name. The arguments 683 are the return value, and are defined in the function specification setting 655. In Figure 13, the return value is from rule 684 onwards. Rule 684 corresponds to program information.
[0110] Rule 684 includes condition 685 and actions 686. Condition 685 describes the condition part of the program code in JsonLogic. Actions 686 are processes that are executed when the condition part is true. Because it is described in JsonLogic, the information processing system 20 can analyze rule 684 using an existing library. Condition 685 sets the condition when there is more than one person in charge, and actions 686 indicates that an error message saying "Please specify only one person in charge" should be displayed in association with the person in charge name field. Therefore, the program generation unit 26 can analyze rule 684 and generate program code. At least one of condition 685 and actions 686 included in rule 684 is an example of a parameter requested by the generation AI system 50. Note that rule 684 does not need to be written in JSON format according to JsonLogic. JsonLogic always takes the form of {"operator": ["values" ... ]}. For example, the program generation unit 26 converts {"+": [1, 2, 3]} into JavaScript such as 1 + 2 + 3. If the operator is not an operator, for example, {"f": [1, 2, 3]}, it converts it into JavaScript such as f(1, 2, 3). It is assumed that the values of existing records registered in the application service 40 can be referenced using var, with {"var": "item name"}.
[0111] Fig. 14 is an example of program code generated by the program generation unit 26 based on the function call request 681 in Fig. 13. The program code in Fig. 14 is written in JavaScript (registered trademark). This program code indicates that if the number of data entries for the person in charge name is not 1, an error message stating "Please specify only one person in charge" is to be displayed in the person in charge name field of the corresponding record.
[0112] In this way, the generation AI system 50 can generate program code by a function call request 681 (function call) and request the information processing system 20 to call a function that adds the generated program code.
[0113] The chat control unit 23 of the information processing system 20 analyzes the function call request 681 included in the response message of Fig. 13, generates program code, and further determines to add the program code to the application service 40 (executes the function). The chat control unit 23 notifies the program generation unit 26 that it has received the function call request 681. The program generation unit 26 analyzes the rules 684, generates program code, and notifies the customization unit 25. The customization unit 25 calls the second API 32 made public by the application service 40, and requests the application service 40 to add the generated program code.
[0114] Specifically, an example is considered in which the information processing system 20 uses the following API of the application service 40 as follows. ·API to add program code published by application service 40 Based on the above request message and response message, program code has been added to the customer management application of application service 40.
[0115] <<Somewhat complex program information and program code example>> An example of generating slightly more complicated program information and program code will be described below in relation to the program information in FIG. 13 and the program code in FIG.
[0116] Fig. 15 is an example of a response message that the generation AI system 50 sends to the information processing system 20 in response to the request message of Fig. 11. Fig. 15 shows rule 691 and subsequent parts of the function_call. Condition 692a describes the condition part of the program code in JsonLogic. This condition part is not actually a condition in the sense that it is determined if the user enters information. Actions 692b is a process that is executed if the condition part is true, and indicates that the number of characters in the "impression" field is set to the "number of characters (impression)" field. The user's chat message that is the basis for the generation AI system 50 to generate condition 692a and actions 692b could be something like "Set the number of characters in the impression field to the number of characters (impression) field." At least one of condition 692a and actions 692b is an example of a parameter requested by the generation AI system 50. Condition 693a is the condition part of the program code written in JsonLogic. This condition part indicates that the "Zip Code" field must match the regular expression "^\d{7}$". Actions 693b is the process that is executed if the condition part is true, and indicates that an error is set (displaying "Please enter a 7-digit number"). The user's chat message that is the basis for the generation AI system 50 to generate condition 693a and actions 693b can be something like "If the zip code is not a 7-digit regular expression, set an error." Condition 694a is the condition part of the program code written in JsonLogic. This condition part is not actually a condition in the sense that it is determined if the user enters information. Actions 694b is the process that is executed if the condition part is true, and indicates that a string combining the "date" and "responsible person" is set in the "title." The user's chat message that will be the basis for the generation AI system 50 to generate condition 694a and actions 694b can be something like "Include the date and responsible person in the title." Condition 695a is the condition part of the program code written in JsonLogic. This condition part indicates the condition if "reason" is "other". Actions 695b is the process that is executed if the condition part is true, and indicates that a field called "reason (other)" is to be displayed. The user's chat message from which the generation AI system 50 generates condition 695a and actions 695b can be something like "If the reason is other, create a field called reason (other)".
[0117] Fig. 16 is an example of program code generated by the program generation unit 26 based on rule 691 in Fig. 15. The program code in Fig. 16 is written in JavaScript (registered trademark). Description 696 is generated based on condition 692a and actions 692b. Description 697 is generated based on condition 693a and actions 693b. Description 698 is generated based on condition 694a and actions 694b. Description 699 is generated based on condition 695a and actions 695b.
[0118] <<After adding the program code>> 17 is an example of a request message that the information processing system 20 uses to call the first API 31 published by the generation AI system 50 after adding the program code. When the information processing system 20 adds the program code to the application service 40, it adds "settings completed" to the conversation history and calls the first API 31.
[0119] The past conversation history 701 is the roles 651, 653 and content 652, 654 shown in Figure 11. The past conversation history 702 is the chat message shown in content 654. The past conversation history 703 is that the generation AI system 50 has already requested a function call (the content of Figure 13). The description 704 is a description by which the information processing system 20 conveys the result of the function execution to the generation AI system 50. The chat control unit 23 sets the executed function and the success or failure of the function execution (succeeded in the figure) in the description 704.
[0120] Figure 18 shows the response message returned by the generation AI system 50 in response to the request message in Figure 17. The generation AI system 50 is expected to return a result like that shown in Figure 18. The message "JavaScript settings have been completed" is sent by the information processing system 20 to the user terminal 10 as a response message.
[0121] 17 and 18, the chat control unit 23 can add program code to the application service 40 through interaction with the generation AI system 50 by repeatedly generating a request message including a history of past conversations, calling the first API 31 of the generation AI system 50, and receiving a response message. A user can add program code to any application simply by entering a chat message.
[0122] <Action or Processing> 19 is an example of a sequence diagram illustrating a process of supporting the addition of program code by the information processing system 20. As a general flow, steps S9 to S18 are repeatedly executed, and the process branches to step S12 or S13.
[0123] S1: The communication unit 11 of the user terminal 10 connects to the URL of the information processing system 20. This URL may be specified by the user directly entering it on the user terminal 10 or by executing a shortcut that specifies the URL. The communication unit 11 of the user terminal 10 generates an HTTP request that includes the URL of the customer management app and sends the generated HTTP request to the information processing system 20.
[0124] S2: When the communication unit 21 of the information processing system 20 receives the above HTTP request from the user terminal 10, the screen generation unit 22 creates screen information for the customer management app screen. In response to the above HTTP request, the communication unit 21 transmits an HTTP response including the screen information for the customer management app screen to the user terminal 10 (see FIG. 5).
[0125] S3: The user operates the user terminal 10 to press the AI collaborative function button 616. The operation reception unit 13 receives the press. This identifies the app ID. The communication unit 11 of the user terminal 10 transmits to the information processing system 20 a message that the AI collaborative function button 616 has been pressed, along with the app ID.
[0126] S4: In response to receiving the notification that the AI collaborative function button 616 has been pressed and the application ID, the communication unit 21 of the information processing system 20 causes the screen generation unit 22 to generate a function selection screen. The communication unit 21 transmits screen information of the function selection screen to the user terminal 10.
[0127] S5: When communication unit 11 of user terminal 10 receives screen information of the function selection screen, display control unit 12 displays function selection screen 620 (see FIG. 6). The user operates user terminal 10 to press application customize button 623. Operation reception unit 13 receives the press. Communication unit 11 of user terminal 10 transmits to information processing system 20 a message that application customize button 623 has been pressed.
[0128] S6: The communication unit 21 of the information processing system 20 receives the notification that the customize button 623 of the application has been pressed, and in response to the pressing of the customize button 623 of the application, the process control unit 28 causes the customization unit 25 to acquire application information. The customization unit 25 calls the second API 32. The customization unit 25 calls the second API 32 using a request message that requests acquisition of the application information together with the application ID.
[0129] S7: The application service 40 returns the application information (item name, data format, etc.) of the application identified by the application ID to the information processing system 20 via the second API 32 (see FIG. 10 ). The customization unit 25 acquires the application information (item name, data format, etc.) from the application service 40.
[0130] S8: The screen generation unit 22 of the information processing system 20 has acquired the application information, and therefore transmits screen information of the chat screen to the user terminal 10. The user can instruct the generation of program code on the chat screen.
[0131] S9: When the communication unit 11 of the user terminal 10 receives the screen information of the chat screen, the display control unit 12 displays the chat screen (see FIG. 7). The user operates the user terminal 10 to input a chat message. An example of the chat message 632 is "Please be sure to set one person in charge." The operation reception unit 13 receives the input. The communication unit 11 of the user terminal 10 generates a request message including the chat message and transmits the generated request message to the information processing system 20. The communication unit 11 of the user terminal 10 transmits the generated request message as, for example, an HTTP request. Note that the communication unit 11 of the user terminal 10 may generate a request message including a history of past conversations. Furthermore, the history of past conversations may be stored in the information processing system 20. If the information processing system 20 stores the history of past conversations, the communication unit 11 of the user terminal 10 does not need to include the history of past conversations in the request message.
[0132] S10: The communication unit 21 of the information processing system 20 receives the request message. The processing control unit 28 of the information processing system 20 determines to add program code based on whether the customize button 623 of the application has been pressed or by analyzing the chat message 632. The generation AI system 50 may be used to analyze the chat message 632. In this case, the chat control unit 23 sends the chat message 632 to the generation AI system 50 and acquires the user's request or intention to add program code.
[0133] The processing control unit 28 passes the chat message to the chat control unit 23. The chat control unit 23 generates a request message including the system settings (setting information), the chat message, and the function specification settings, and transmits the generated request message to the generation AI system 50 by calling the first API 31 (see FIG. 11).
[0134] S11: The generation AI system 50 returns a response message (normal message) or a response message including a function call request to the information processing system 20 (see Figures 12 and 13). The chat control unit 23 receives the response message from the generation AI system 50. This response message may be a response message (Figure 12) or a function call request (Figure 13). If it is a response message, processing proceeds to step S12, and if it is a function call request, processing proceeds to step S13.
[0135] S12: When the chat control unit 23 receives a normal response message, the communication unit 21 of the information processing system 20 transmits the response message to the user terminal 10. For example, the response message may be "Please tell me more details."
[0136] S13: When the chat control unit 23 receives a function call request, it analyzes the function and determines that a request has been made to add program code to the application service 40 (customization of the application). Because the function for adding program code was specified in the function specification setting in step S10, the chat control unit 23 can easily determine that the request is for adding program code based on the function name (name 682) included in the function call request. The chat control unit 23 also acquires program information (arguments 683) included in the function call request. The chat control unit 23 passes arguments 683 to the program generation unit 26, allowing the program generation unit 26 to analyze the program information and generate program code (see FIG. 14).
[0137] As described above, the generation AI system 50 can also generate program code. Since the generation AI system 50 can create program information using JsonLogic, it can also generate program code. Therefore, the generation AI system 50 may generate program code as long as the program code does not pose a risk of destroying customer data of the application service 40. On the other hand, by having the information processing system 20 generate program code, it is possible to generate program code that is guaranteed to be free of defects.
[0138] S14: To receive confirmation from the user, the chat control unit 23 causes the screen generation unit 22 to create a confirmation message (the following program code is added). The communication unit 21 sends the confirmation message to the user terminal 10.
[0139] S15: When the communication unit 11 of the user terminal 10 receives the confirmation message, the display control unit 12 displays the chat screen 630 (FIG. 8). The chat screen 630 displays a message 633 saying "The following program code will be added," program code 634a, an explanation 634b, an OK button 635, and a cancel button 636. The user operates the user terminal 10 to press the OK button 635 or the cancel button 636. Here, it is assumed that the OK button 635 has been pressed. The operation acceptance unit 13 accepts the press. The communication unit 11 of the user terminal 10 transmits to the information processing system 20 that the OK button 635 has been pressed.
[0140] S16: The communication unit 21 of the information processing system 20 receives a notification that the OK button 635 has been pressed. The processing control unit 28 of the information processing system 20 determines that the OK button 635 has been pressed and therefore that the program code should be registered in the customization unit 25. The customization unit 25 calls the second API 32 to send a request message to the application service 40 to add the program code. That is, the customization unit 25 realizes the functionality of the function requested to be called by the generation AI system 50 by sending the request message. In this embodiment, the customization unit 25 adds the program code. The customization unit 25 calls one or more of the APIs described above. ·API to add program code published by application service 40 The customization unit 25 requests the addition of the program code by including the program code and the application ID in the request message. The request message may differ depending on the application service 40.
[0141] In this way, the customization unit 25 causes the chat control unit 23 to receive a request (function_call) sent by the generation AI system 50 based on the chat message, item names, etc., and function specification settings sent to the generation AI system 50. The request includes program information generated by the generation AI system 50 based on the chat message and item names, etc. The chat control unit 23 can generate program code from the program information included in the received request and add it to the target application.
[0142] S17: The customization unit 25 receives a response message from the application service 40. The result included in this response message is, for example, addition completion. If the addition of the program code fails, a message indicating the failure is sent to the user terminal 10. After this, in order to improve the continuity of the conversation, the chat control unit 23 sends a request message including the execution result of the function requested in the function call request (addition of the program code completion) to the generation AI system 50, and the processing proceeds to step S10 (see Figure 17). As a result, the chat control unit 23 receives a response message from the generation AI system 50 indicating that the addition of the program code has been completed (see Figure 18).
[0143] S18: If the program code has been successfully added, the communication unit 21 of the information processing system 20 transmits a message such as "Addition completed" to the user terminal 10 (see FIG. 9).
[0144] 19 ends, and if the user wants to add more program code, the process returns to step S9 as needed. In this case, the user can enter a chat message to add another program code. If the user registers customer information in the customer management app but does not set a contact person or sets two or more contact people, the customer management app can display an error message.
[0145] <Major Effects> In the information processing system 20 of this embodiment, the user simply inputs the details of application customization in natural language on the user terminal 10, and the information processing system 20 uses the generation AI system 50 to generate program code to be used in the application and add the program code to the application service 40.
[0146] [Second embodiment] In this embodiment, an embodiment will be described in which inconveniences regarding authentication when an information processing system uses a second API made public by an application service are avoided.
[0147] In order for the information processing system 20 to call the second API 32, the information processing system 20 needs to be authenticated by the application service 40. When the information processing system 20 in the sequence diagram of FIG. 19 operates in the same domain as the application service 40, authentication information for the application service 40 is sent to the information processing system 20 from a web browser running on the user terminal 10. The authentication information is pre-stored in a cookie, for example. This allows the information processing system 20 to call the second API 32 published by the application service 40. When the low-code or no-code platform (application service 40) and the information processing system 20 are developed by the same organization, it is considered easy to make them in the same domain, and in this case, there is considered to be no problem.
[0148] However, authentication issues may arise when the information processing system 20 and the application service 40 operate in different domains. This will be explained with reference to Figure 6. A customer management application screen 610 allows a user to use or develop applications.
[0149] For example, consider the following configuration of a customer management application screen 610 provided by the application service 40. First, the customer management application screen 610 (original Web application) is executed in a Web browser. When a user presses the AI linkage function button 616 on the customer management application screen 610, a function selection screen 620 for communicating with the information processing system 20 is popped up. Assume that this function selection screen 620 is opened by another Web browser. In this case, because the application service 40 and the information processing system 20 are in different domains, the user terminal 10 cannot send authentication information for the application service 40 to the information processing system 20. Therefore, the information processing system 20 cannot call the second API 32 published by the application service 40. This is because the popped-up function selection screen 620 is in a different domain from the customer management application screen 610, and therefore the popped-up function selection screen 620 (another Web application) cannot access the cookies of the application service 40.
[0150] Therefore, a configuration is conceivable in which the pop-up displayed function selection screen 620 (another Web application) requests the original customer management application screen 610 to call the second API 32 made public by the application service 40.
[0151] <About the function> 20 is a diagram showing an example of the functional configuration of the information processing system 20 and the user terminal 10 of this embodiment. The functions of the developer terminal 60 may be the same as those in the first embodiment. The explanation of FIG. 20 may mainly focus on the differences from FIG. 4.
[0152] <<User device>> A first web browser 240 and a second web browser 250 are executed on the user terminal 10. The first web browser 240 and the second web browser 250 may be separate applications, or may be separate tabs (separate web applications) displayed by a tab browser.
[0153] The first Web browser 240 includes a first communication unit 11a, a first display control unit 12a, a first operation receiving unit 13a, a customization unit 25, a launch unit 15, and a first browser-to-browser linkage unit 14a. Each of these functional units is a function or means realized by the CPU 501 shown in Fig. 3 executing a script included in a Web application acquired by the user terminal 10 from the application service 40. The customization unit 25 may be the same as that shown in Fig. 4.
[0154] The first communication unit 11a transmits and receives various types of information to and from the application service 40. In this embodiment, the first communication unit 11a receives from the application service 40 screen information such as a customer management application screen.
[0155] The first display control unit 12a interprets screen information such as a Web application displayed by the first Web browser 240 and displays it on the display 506. The first operation accepting unit 13a accepts various operations by the user on the Web application displayed on the display 506.
[0156] The launching unit 15 launches the second web browser 250 in response to a user operation on the web application displayed by the first web browser 240. The web application displayed by the first web browser 240 includes a URL of the information processing system 20, and the second web browser 250 connects to this URL.
[0157] The first browser-to-browser linkage unit 14a transmits and receives information to and from the second browser-to-browser linkage unit 14b of the second web browser 250. A single user terminal 10 can simultaneously run multiple web browsers. The first browser-to-browser linkage unit 14a can notify information to the second browser-to-browser linkage unit 14b (and vice versa). If only the first web browser 240 holds authentication information for a specific website (e.g., application service 40), the second web browser 250 can communicate with the specific website in cooperation with the first browser-to-browser linkage unit 14a and the second browser-to-browser linkage unit 14b. The first web browser 240 communicates with the application service 40, and the second web browser 250 is a web browser that communicates with the generation AI system 50 via the information processing system 20. The second web browser 250 can transmit a response message from the generation AI system 50 to the first web browser 240 using the second browser-to-browser linkage unit 14b. The functions of the first inter-browser linking unit 14a and the second inter-browser linking unit 14b are implemented by codes written in scripts transmitted from the application service 40 and the information processing system 20, respectively.
[0158] The second Web browser 250 has a second communication unit 11b, a second display control unit 12b, a second operation receiving unit 13b, a second browser-to-browser cooperation unit 14b, and a program generation unit 26. Each of these functional units is a function or means realized by the CPU 501 shown in FIG. 3 executing a script included in a Web application acquired by the user terminal 10 from the information processing system 20. The program generation unit 26 may be the same as in FIG. 4. In this embodiment, the program generation unit 26 may also be included in the information processing system 20.
[0159] The second communication unit 11b transmits and receives various types of information to and from the information processing system 20. In this embodiment, the first communication unit 11a receives screen information of the function selection screen 620 and the chat screen 630 from the information processing system 20. In addition, the second communication unit 11b transmits chat messages to the information processing system 20 and receives function call requests from the information processing system 20.
[0160] The second display control unit 12b interprets screen information such as a Web application displayed by the second Web browser 250 and displays it on the display 506. The second operation accepting unit 13b accepts various operations by the user for the Web application displayed on the display 506.
[0161] The second inter-browser cooperation unit 14b has the same function as the first inter-browser cooperation unit 14a. When the second inter-browser cooperation unit 14b receives a function call request (a program code addition request) from the information processing system 20, the second inter-browser cooperation unit 14b transmits the function call request to the first inter-browser cooperation unit 14a.
[0162] <<Information Processing System>> The information processing system 20 has a communication unit 21, a screen generation unit 22, a chat control unit 23, a setting information storage unit 24, and a processing control unit 28. These functions may be the same as those in FIG.
[0163] <Action or Processing> 21 and 22 are examples of sequence diagrams in which the information processing system 20 adds program code to the application service 40 by utilizing cooperation between two web browsers in the user terminal 10. Note that the explanation of FIGS. 21 and 22 may mainly focus on the differences from FIG. 19.
[0164] S21: The user specifies the URL of the application service 40 to the user terminal 10. The web browser that connects to the application service 40 is assumed to be the first web browser 240.
[0165] S22: The first communication unit 11a of the first Web browser 240 connects to the URL of the application service 40. The user instructs the user terminal 10 on the URL of the customer management application screen 610, so the first communication unit 11a of the first Web browser 240 sends an HTTP request including the URL of the customer management application screen 610 to the application service 40.
[0166] S23: When the application service 40 receives the above HTTP request from the user terminal 10, the communication unit 21 transmits screen information of the customer management application screen 610 (an example of the first Web application) to the user terminal 10. This screen information (HTML, JavaScript, CSS, etc.) includes a script for launching the second Web browser 250, a script for adding program code, and the URL of the function selection screen 620.
[0167] S24: The first communication unit 11a of the first Web browser 240 receives the screen information of the customer management application screen 610, and the first display control unit 12a displays the customer management application screen 610 (see FIG. 5).
[0168] S25: The user presses the AI collaboration function button 616 on the customer management application screen 610. The first operation acceptance unit 13a accepts the press.
[0169] S26: This causes the launching unit 15 to launch the second Web browser 250. The first inter-browser linking unit 14a notifies the second Web browser 250 of the application ID included in the customer management application screen 610 and the URL (an example of address information) of the function selection screen 620. The second Web browser 250 is displayed in a pop-up. More specifically, the launching of the second Web browser 250 is performed by a script included in the screen information of the customer management application screen 610.
[0170] S27: The second communication unit 11b of the second Web browser 250 uses the URL of the function selection screen 620 notified by the first Web browser 240 to request the function selection screen 620 from the information processing system 20.
[0171] S28: In response to this request, the screen generation unit 22 of the information processing system 20 generates the function selection screen 620, and the communication unit 21 transmits screen information of the function selection screen 620 (an example of the second Web application) to the second Web browser 250.
[0172] S29: The second communication unit 11b of the user terminal 10 receives the screen information of the function selection screen 620. The second display control unit 12b displays the function selection screen 620 based on the screen information (see FIG. 6).
[0173] S30: The user operates the user terminal 10 to press the customize application button 623 on the function selection screen 620. The second operation accepting unit 13b accepts the pressing of the customize application button 623.
[0174] S31: Since the customize button 623 for the application is pressed, the second inter-browser cooperation unit 14b of the second Web browser 250 specifies the application ID and requests the first Web browser 240 to acquire application information of the application service 40. Such cooperation (message communication) between browsers is as follows: https: / / developer.mozilla.org / ja / docs / web-API / Window / postMessage is known.
[0175] S32: The customization unit 25 of the first Web browser 240 generates a request message to call the second API 32 of the application service 40. This request message specifies the application ID to the application service 40 and requests acquisition of application information.
[0176] S33: The application service 40 includes the application information (item name, data format, etc.) of the application identified by the application ID in a response message and sends the response message to the first Web browser 240. The customization unit 25 receives the response message (see FIG. 10).
[0177] S34: The first inter-browser link unit 14a of the first Web browser 240 transmits the application information to the second Web browser 250.
[0178] S35: When the second inter-browser cooperation unit 14b of the second Web browser 250 receives the application information, the second display control unit 12b switches the display from the function selection screen 620 to the chat screen 630. The chat screen 630 has been transmitted from the information processing system 20 in step S28 or the like. The second display control unit 12b displays the chat screen 630 (see FIG. 7).
[0179] S36: Next, the user inputs a chat message 632 such as "Make sure to assign one person in charge" on the chat screen 630.
[0180] The subsequent processes of steps S37 to S39 are the same as steps S9 to S11 in Fig. 19. The chat control unit 23 transmits the request message of Fig. 11 and receives the response message of Fig. 12 or Fig. 13. In step S37, the second communication unit 11b transmits the application information to the information processing system 20.
[0181] S40: The communication unit 21 of the information processing system 20 receives a response message (normal message) or a response message including a function call request from the generation AI system 50. If it is a response message, the process proceeds to step S41, and if it is a function call request, the process proceeds to step S42.
[0182] S41: In step S40, when the second Web browser 250 receives a response message (in this case, a response message) from the generation AI system 50, the second display control unit 12b of the second Web browser 250 displays the response message (e.g., please tell me more details).
[0183] S42: When the second Web browser 250 receives a response message (here, a function call request) from the generation AI system 50 in step S40, the program generation unit 26 of the second Web browser 250 analyzes the program information and generates program code. Note that the program code may be generated by the information processing system 20.
[0184] The subsequent processing in steps S43 and S44 may be similar to that in steps S14 and S15 in Fig. 19. The user terminal 10 displays the chat screen 630 in Fig. 8.
[0185] 8, the second inter-browser cooperation unit 14b of the second Web browser 250 requests the first Web browser 240 to specify the application ID and add the program code to the application service 40. The method of cooperation between the browsers may be the same as that in step S31.
[0186] S46: The customization unit 25 of the first Web browser 240 calls the second API 32 to specify the application ID and add the program code to the application service 40.
[0187] S47: The application service 40 sends the result of the program code addition to the first Web browser 240. This result may be, for example, that the addition is complete. If the addition fails, a message indicating this is not successful is sent to the first Web browser 240.
[0188] S48: The first browser-to-browser collaboration unit 14a of the first Web browser 240 sends the result regarding the addition of the program code to the second Web browser 250. After this, in order to improve the continuity of the conversation, the second Web browser 250 sends the function execution result (completion of program code addition) to the information processing system 20. The chat control unit 23 sends a request message including the execution result of the function requested in the function call request (completion of program code addition) to the generation AI system 50, so the processing proceeds to step S38 (see Figure 17). As a result, the chat control unit 23 receives a response message from the generation AI system 50 indicating that the program code addition has been completed (see Figure 18).
[0189] S49: When the addition is complete, the second display control unit 12b of the second Web browser 250 displays a message such as "Addition is complete" on the chat screen 630 (see FIG. 9).
[0190] <Major Effects> In addition to the effects of the first embodiment, the information processing system 20 of this embodiment allows the information processing system 20 to add program code to an application even if the application service 40 and the information processing system 20 provide services from websites in different domains.
[0191] <Other application examples> The best mode for carrying out the present invention has been described above using examples, but the present invention is not limited to these examples in any way, and various modifications and substitutions can be made within the scope that does not deviate from the gist of the present invention.
[0192] For example, in this embodiment, the generation AI system 50 generates the program information, but the AI system 50 may also generate the program code directly.
[0193] Furthermore, in this embodiment, the information processing system 20 adds the program code to the application service 40, but the program code may be program code for a native application. For example, if the application is a spreadsheet software, the information processing system 20 generates program code in VISUAL BASIC (registered trademark) that controls the spreadsheet software, and adds the program code to the spreadsheet software.
[0194] In addition, in this embodiment, JavaScript is used as an example of the programming language of the program code, but the programming language may be any language, such as HTML (CSS), PHP (registered trademark), Ruby, Python (registered trademark), Go, Swift (registered trademark), C#, Kotlin (registered trademark), Java (registered trademark), R, C, Objective-C (registered trademark), Julia (registered trademark), etc.
[0195] Furthermore, the application itself may execute the functions of the information processing system 20 described in this embodiment. In this case, the application receives the application ID from the user terminal 10, so the information processing system 20 does not need to transmit the application ID to the application service 40.
[0196] Furthermore, in this embodiment, an example has been described in which the information processing system 20 receives a request to call a function from the generation AI system 50, but the information processing system 20 may also receive a request to call the Web-API itself from the generation AI system 50. In other words, functions and APIs do not need to be strictly distinguished.
[0197] Additionally, the devices described in the examples are merely illustrative of one of several computing environments for implementing the embodiments disclosed herein. In one embodiment, information processing system 20 includes multiple computing devices, such as a server cluster, configured to communicate with each other via any type of communication link, including a network, shared memory, etc., and to perform the processes disclosed herein.
[0198] Furthermore, the information processing system 20 can be configured to share the processing steps disclosed in this embodiment, such as those shown in FIG. 19, in various combinations. For example, a process executed by a predetermined unit can be executed by multiple information processing devices included in the information processing system 20. Furthermore, the information processing system 20 may be integrated into a single server device, or may be divided into multiple devices.
[0199] Furthermore, the configuration examples shown in Fig. 4 and the like are divided according to main functions to facilitate understanding of the processing by the information processing system 20. The present invention is not limited by the manner in which the processing units are divided or the names of the processing units. The processing of the information processing system 20 can also be divided into more processing units depending on the processing content. Furthermore, it can also be divided so that one processing unit includes more processes.
[0200] A configuration example will be described in which the application service 40 and the information processing system 20 are integrated. In the following, an example will be described in which the information processing system 20 includes the functions of the application service 40, but the application service 40 may also include the functions of the information processing system 20.
[0201] FIG. 23 is a diagram illustrating the process in which the information processing system 20 generates program code in response to a chat message entered by a user.
[0202] The process of (1) can be the same as that explained in FIG.
[0203] (2) The information processing system 20 receives a request for customizing an application from the user terminal 10 by specifying an application ID. Customizing an application requires information such as items that the application has. Therefore, the information processing system 20 acquires application information, such as items that the application identified by the application ID has, from its own device.
[0204] The processes in (3) and (4) can be the same as those in FIG.
[0205] (5) The information processing system 20 generates program code for customization in response to a function call request (function call) included in the response message sent from the generation AI system 50. The information processing system 20 adds the program code to the application provided by its own device in response to the function call request (function call).
[0206] 24 is a diagram showing an example of the functional configuration of the information processing system 20, the user terminal 10, and the developer terminal 60 when the application service 40 and the information processing system 20 are integrated. Note that the explanation of FIG. 24 will mainly focus on the differences from FIG. 5. Because the information processing system 20 and the application service 40 are integrated, the customization unit 25 does not call the second API 32. Furthermore, the functions of the communication unit 21, the screen generation unit 22, the chat control unit 23, the setting information storage unit 24, the program generation unit 26, and the processing control unit 28 may be the same as those in FIG. 5.
[0207] 24 functions by executing predefined functions. The customization unit 25 customizes the application by adding program code to the application within the information processing system 20 in response to a function call request from the generation AI system 50.
[0208] Furthermore, each function of the above-described embodiments can be realized by one or more processing circuits. Here, the term "processing circuit" in this specification includes a processor programmed to perform each function by software, such as a processor implemented by an electronic circuit, as well as devices such as an ASIC (Application Specific Integrated Circuit), a DSP (Digital Signal Processor), an FPGA (Field Programmable Gate Array), and conventional circuit modules designed to perform each of the above-described functions.
[0209] <Technical issues> The generation AI system 50 typically responds with a response message in response to a chat or other message entered by a user. Here, the response from the generation AI system 50 depends on the generation AI system 50 itself. In other words, if the same message is sent at a different time, the content or format of the response may change. For example, the first time a request is made to the generation AI system 50 to create parameters for generating program code, the response may be in the form of a sentence with the parameters written in it, whereas the second time the request is made, the response may be in the form of a list of the parameters.
[0210] Therefore, the information processing system 20 must be able to accurately interpret the response of the generative AI system 50 and extract parameters, regardless of the format in which the response comes, but it was technically impossible to create a mechanism that could interpret all response formats.
[0211] <Problem solving> The above technical problem is solved by using a function that calls a function (a function also known as function calling or function call). That is, the information processing system 20 sends information for calling a function to the generation AI system 50, and the generation AI system 50 generates a response based on the information for calling the function, so that the generation AI system 50 can generate a response in the format requested by the information processing system 20. This eliminates the need for the information processing system 20 to create a mechanism that can interpret all response formats.
[0212] Embodiments of the present invention provide significant improvements in computer power and functionality. These improvements allow users to utilize computers that provide more efficient and robust interaction with tables, which are ways of storing and presenting information in information processing devices. Furthermore, embodiments of the present invention provide a better user experience through the use of more efficient, powerful, and robust user interfaces. Such user interfaces provide better interaction between humans and machines.
[0213] <Additional Notes> [Appendix 1] An information processing device capable of communicating with a terminal device and a generation AI (Artificial Intelligence) system via a network, a program generator that functions by executing a predefined function and generates program code for a request based on parameters included in the request; a chat control unit that, when receiving a chat message from the terminal device, transmits the received chat message to the generation AI system; and the chat control unit transmits setting information related to the generation of the program code and information for calling the function to the generation AI system at least once; When the chat control unit receives the request sent by the generation AI system based on the chat message sent to the generation AI system, the setting information sent to the generation AI system, and the information for calling the function sent to the generation AI system, the chat control unit sends a confirmation message to the terminal device to confirm whether or not it is okay to generate the program code related to the request; When a response from the terminal device to the confirmation message indicates that the program code related to the request may be generated, the program generation unit generates the program code related to the request based on the parameters included in the received request. Information processing device. [Appendix 2] An information processing device capable of communicating with a terminal device and a generation AI (Artificial Intelligence) system via a network, a program generator that functions by executing a predefined function and generates program code for a request based on parameters included in the request; a chat control unit that, when receiving a chat message from the terminal device, transmits the received chat message to the generation AI system; and the chat control unit transmits setting information related to the generation of the program code and information for calling the function to the generation AI system at least once; When the chat control unit receives the request sent by the generation AI system based on the chat message sent to the generation AI system, the setting information sent to the generation AI system, and the information for calling the function sent to the generation AI system, the program generation unit generates the program code related to the request based on the parameters included in the received request. Information processing device. [Appendix 3] The parameters are written in JSON format, 3. The information processing device according to claim 1, wherein the program generation unit generates the program code based on the parameters described in a JSON format. [Appendix 4] When the chat control unit receives a response message from the generation AI system in response to the chat message, the setting information, and the information for calling the function that were sent to the generation AI system, 4. The information processing device according to claim 1, wherein the chat control unit transmits the response message to the terminal device. [Appendix 5] When the chat control unit receives a request for adding the program code from the generation AI system, the program generation unit generates the program code based on the parameters included in the received request; The information processing device described in claim 4, wherein when the chat control unit receives a response message to the chat message, the setting information, and information for calling the function from the generation AI system, rather than a request for adding the program code, the chat control unit transmits the response message to the terminal device. [Appendix 6] The information for calling the function includes a setting of the specifications of the function to be called by the generation AI system, a function call request for calling the function, which the generation AI system sends to the information processing device based on the setting of the function specification, includes a request for adding the program code; 6. The information processing device according to claim 1, wherein the chat control unit receives a request for adding the program code from the generation AI system. [Appendix 7] the program code is added to an application; a customization unit that customizes the application by adding the program code to the application; the customization unit acquires data item names from the application; The chat control unit transmits the acquired item name to the generation AI system as information about the application to which the program code is to be added, and receives the parameters related to the item name from the generation AI system; the program generation unit generates the program code using the item name based on the parameter related to the item name; the customization unit adds the program code generated by the program generation unit to the application. The information processing device according to claim 3. [Appendix 8] the information processing device can communicate with an application service that executes the application via a network; the customization unit adds the program code generated by the program generation unit by calling an API published by the application service. The information processing device according to claim 7. [Appendix 9] When the chat control unit receives a request for adding the program code from the generation AI system, the chat control unit transmits the program code to the terminal device before the customization unit adds the program code to the application; 9. The information processing apparatus according to claim 7, wherein, when a user has requested that the program code be added, the customization unit adds the program code to an application in which the program code is to be registered. [Appendix 10] When the chat control unit receives a request for adding the program code from the generation AI system, the chat control unit acquires an explanation of the program code together with the parameters from the generation AI system; transmitting the explanatory text to the terminal device before the customization unit adds the program code to the application; 9. The information processing apparatus according to claim 7, wherein, when a user has requested that the program code be added, the customization unit adds the program code to an application in which the program code is to be registered. [Appendix 11] the application is an application in which data is registered in a field of a table, If the chat message sent by the terminal device requires that only one piece of data be set in one field, 10. The information processing device according to claim 8, wherein the program code is program code that determines whether only one piece of data is registered in a field, and displays an error if there is not only one piece of data. [Appendix 12] the application is an application in which data is registered in a field of a table, When the chat message transmitted by the terminal device indicates that the number of characters of data set in one field is to be set in the other field, 10. The information processing device according to claim 8, wherein the program code is program code for setting the number of characters of data set in the one field in the other field. [Appendix 13] the application is an application in which data is registered in a field of a table, If the chat message sent by the terminal device indicates a data format to be set in a field, 10. The information processing device according to claim 8, wherein the program code is program code for displaying, when data set in the field is not in the data format, a message indicating that the data should be set in the data format. [Explanation of symbols]
[0214] 10 User Devices 20 Information Processing Systems 40 Application Services 50 Generative AI System 100 Program Generation System [Prior art documents] [Patent documents]
[0215] [Patent Document 1] Japanese Patent Application Publication No. 2023-018851
Claims
1. An information processing device capable of communicating with a terminal device and a generation AI (Artificial Intelligence) system via a network, a program generator that functions by executing a predefined function and generates program code for a request based on parameters included in the request; a chat control unit that, when receiving a chat message from the terminal device, transmits the received chat message to the generation AI system; and The chat control unit transmits setting information related to the generation of the program code and information for calling the function to the generation AI system at least once, When the chat control unit receives the request sent by the generation AI system based on the chat message sent to the generation AI system, the setting information sent to the generation AI system, and the information for calling the function sent to the generation AI system, the chat control unit sends a confirmation message to the terminal device to confirm whether or not it is okay to generate the program code related to the request, When a response from the terminal device to the confirmation message indicates that the program code related to the request may be generated, the program generation unit generates the program code related to the request based on the parameters included in the received request. Information processing device.
2. An information processing device capable of communicating with a terminal device and a generation AI (Artificial Intelligence) system via a network, a program generator that functions by executing a predefined function and generates program code for a request based on parameters included in the request; a chat control unit that, when receiving a chat message from the terminal device, transmits the received chat message to the generation AI system; and The chat control unit transmits setting information related to the generation of the program code and information for calling the function to the generation AI system at least once, When the chat control unit receives the request sent by the generation AI system based on the chat message sent to the generation AI system, the setting information sent to the generation AI system, and the information for calling the function sent to the generation AI system, the program generation unit generates the program code related to the request based on the parameters included in the received request. Information processing device.
3. The parameters are written in JSON format, The information processing device according to claim 1 , wherein the program generation unit generates the program code based on the parameters described in JSON format.
4. When the chat control unit receives a response message from the generation AI system in response to the chat message, the setting information, and the information for calling the function that were sent to the generation AI system, The information processing device according to claim 1 , wherein the chat control unit transmits the response message to the terminal device.
5. When the chat control unit receives a request for adding the program code from the generation AI system, the program generation unit generates the program code based on the parameters included in the received request; The information processing device described in claim 4, wherein when the chat control unit receives a response message to the chat message, the setting information, and information for calling the function from the generation AI system, rather than a request for adding the program code, the chat control unit sends the response message to the terminal device.
6. The information for calling the function includes a setting of the specifications of the function to be called by the generating AI system, a function call request for calling the function, which is sent by the generating AI system to the information processing device based on the setting of the function specification, includes a request for adding the program code; The information processing device according to claim 1 , wherein the chat control unit receives a request for adding the program code from the generation AI system.
7. the program code is added to an application; a customization unit that customizes the application by adding the program code to the application; the customization unit acquires data item names from the application; The chat control unit transmits the acquired item name to the generation AI system as information regarding the application to which the program code is to be added, and receives the parameters regarding the item name from the generation AI system; the program generation unit generates the program code using the item name based on the parameter related to the item name; the customization unit adds the program code generated by the program generation unit to the application. The information processing device according to claim 3 .
8. the information processing device can communicate with an application service that executes the application via a network; the customization unit adds the program code generated by the program generation unit by calling an API published by the application service. The information processing device according to claim 7 .
9. When the chat control unit receives a request for adding the program code from the generation AI system, the chat control unit transmits the program code to the terminal device before the customization unit adds the program code to the application; The information processing apparatus according to claim 7 , wherein, when a user has requested that the program code be added, the customization unit adds the program code to an application in which the program code is to be registered.
10. When the chat control unit receives a request for adding the program code from the generation AI system, the chat control unit acquires an explanation of the program code together with the parameters from the generation AI system, transmitting the explanatory text to the terminal device before the customization unit adds the program code to the application; The information processing apparatus according to claim 7 , wherein, when a user has requested that the program code be added, the customization unit adds the program code to an application in which the program code is to be registered.
11. the application is an application in which data is registered in a field of a table, If the chat message sent by the terminal device requires that only one piece of data be set in one field, 9. The information processing apparatus according to claim 8, wherein the program code is program code for determining whether or not only one piece of data has been registered in a field, and displaying an error if there is not only one piece of data.
12. the application is an application in which data is registered in a field of a table, When the chat message transmitted by the terminal device indicates that the number of characters of data set in one field is to be set in the other field, The information processing apparatus according to claim 8 , wherein the program code is program code for setting the number of characters of data set in the one field in the other field.
13. the application is an application in which data is registered in a field of a table, If the chat message sent by the terminal device indicates a data format to be set in a field, 9. The information processing apparatus according to claim 8, wherein the program code is program code for displaying a message indicating that data set in the field should be set in the data format if the data is not in the data format.
14. A program generation system in which a terminal device, a generation AI (Artificial Intelligence) system, and an information processing device can communicate with each other via a network, The terminal device sending a chat message to the information processing device to register data to be used by the application; The information processing device includes: a program generator that functions by executing a predefined function and generates program code for a request based on parameters included in the request; a chat control unit that, when receiving a chat message from the terminal device, transmits the received chat message to the generation AI system; and The chat control unit transmits setting information related to the generation of the program code and information for calling the function to the generation AI system at least once, When the chat control unit receives the request sent by the generation AI system based on the chat message sent to the generation AI system, the setting information sent to the generation AI system, and the information for calling the function sent to the generation AI system, the chat control unit sends a confirmation message to the terminal device to confirm whether or not it is okay to generate the program code related to the request, When a response from the terminal device to the confirmation message indicates that the program code related to the request may be generated, the program generation unit generates the program code related to the request based on the parameters included in the received request. Program generation system.
15. An information processing device capable of communicating with a terminal device and a generating AI (Artificial Intelligence) system via a network, a program generator that functions by executing a predefined function and generates program code for a request based on parameters included in the request; a chat control unit that, when receiving a chat message transmitted from the terminal device, transmits the received chat message to the generation AI system; It functions as The chat control unit transmits setting information related to the generation of the program code and information for calling the function to the generation AI system at least once, When the chat control unit receives the request sent by the generation AI system based on the chat message sent to the generation AI system, the setting information sent to the generation AI system, and the information for calling the function sent to the generation AI system, the chat control unit sends a confirmation message to the terminal device to confirm whether or not it is okay to generate the program code related to the request, When a response from the terminal device to the confirmation message indicates that the program code related to the request may be generated, the program generation unit generates the program code related to the request based on the parameters included in the received request. program.
16. A program generation method performed by an information processing device that can communicate with a terminal device and a generation AI (Artificial Intelligence) system via a network, comprising: The information processing device includes: a program generator that functions by executing a predefined function and generates program code for a request based on parameters included in the request; a chat control unit that, when receiving a chat message from the terminal device, transmits the received chat message to the generation AI system; and The chat control unit transmits setting information related to the generation of the program code and information for calling the function to the generation AI system at least once, When the chat control unit receives the request sent by the generation AI system based on the chat message sent to the generation AI system, the setting information sent to the generation AI system, and the information for calling the function sent to the generation AI system, the chat control unit sends a confirmation message to the terminal device to confirm whether or not it is okay to generate the program code related to the request, When a response from the terminal device to the confirmation message indicates that the program code related to the request may be generated, the program generation unit generates the program code related to the request based on the parameters included in the received request. How to generate a program.
17. A program generation system in which a terminal device, a generation AI (Artificial Intelligence) system, and an information processing device can communicate with each other via a network, the terminal device executes a first web browser; a first communication unit that receives a first Web application from an application service that executes an application; a first display control unit that displays a screen of the first Web application; a launching unit that launches a second web browser by a script included in the first web application in response to an operation on the first web application; the terminal device executes the second web browser; a second communication unit that communicates with the information processing device based on address information acquired from the first Web application; a second display control unit that displays a screen of the second Web application received by the second communication unit from the information processing device, the second communication unit transmits a chat message for customizing the application, which is input to the second Web application, to the information processing device; The information processing device includes: a chat control unit that, when receiving a chat message from the terminal device, transmits the received chat message to the generation AI system; a communication unit that communicates with the terminal device; and The chat control unit transmits, at least once, setting information related to the generation of program code and information for calling a predefined function to the generation AI system; When the chat control unit receives a request sent by the generation AI system based on the chat message sent to the generation AI system, the setting information sent to the generation AI system, and information for calling the function sent to the generation AI system, the communication unit sends the request to the second web browser, The terminal device a program generation unit that functions by executing the function, and that generates program code related to the request based on parameters included in the request; a second inter-browser linking unit that transmits the program code to the first web browser; a customization unit that functions by executing predefined functions and customizes an application for the application service by adding the program code to the application; A program generation system having:
Citation Information
Patent Citations
Automatic program code generation system
JP2023018851A