Device, method and program for providing undo and REDO functions in software operation via generative ai
The device addresses the lack of reproducibility in generative AI by using a stack to store and manage command sequences, enabling effective UNDO and REDO functions in software operations.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- OMRON CORP
- Filing Date
- 2025-11-20
- Publication Date
- 2026-06-11
AI Technical Summary
Existing software operation techniques using generative AI lack reproducibility, making it difficult to implement UNDO and REDO functions effectively.
A device with a stack that stores commands and execution positions, allowing per-prompt UNDO and REDO operations by referring to the stack, and utilizing pattern matching to execute UNDO and REDO requests based on user input.
Enables reliable UNDO and REDO operations in software via generative AI by recording and restoring command sequences, ensuring reproducibility and ease of operation.
Smart Images

Figure JP2025040588_11062026_PF_FP_ABST
Abstract
Description
Apparatus, method, and program for providing UNDO and REDO functions in software operations via generative AI 【0001】 The present disclosure relates to software operation techniques via generative AI, and more particularly, to UNDO and REDO functions. 【0002】 In the design of lines used in factories, simulation techniques may be used. For example, a user such as a line designer can place 3D (Dimensional) shape data of workpieces and machines constituting the line in 3D space and operate a simulator to confirm the operation of the 3D shape data. The user needs to perform various operations on the simulator, such as arranging 3D objects and setting their operations, for the execution of the simulation. Such operations are complex and can impose a significant burden on the user. 【0003】 Regarding simulation techniques, for example, Japanese Patent Application Laid-Open No. 2003-150219 (Patent Document 1) discloses a simulation device. The simulation device "layouts a 3D model of peripheral objects (table, workpiece, etc.) together with a 3D model of a robot or the like on the screen of the simulation device. Specify a point sequence, line segment, plane, etc. to create a work point sequence, generate an operation program, and execute the simulation according to the data. The operation trajectory is displayed in an animation format on the screen. Mount a 3D vision sensor or the like on the robot to detect the actual arrangement situation. If there is a deviation in the layout based on the detection result, correct it. Adjust the work point sequence information of the robot so that the work points of the program of the working machine correspond to the actual peripheral devices and workpieces" (see [Summary]). 【0004】 Japanese Patent Application Laid-Open No. 2003-150219 【0005】Users can configure simulation settings using the technology disclosed in Patent Document 1. However, Patent Document 1 does not disclose the use of artificial intelligence (Generative AI) in operating software such as simulators. In recent years, Generative AI has been developing. However, the data output by Generative AI often lacks reproducibility. For example, suppose there is a Generative AI that outputs commands for operating software. Even if the Generative AI receives the same prompt, it does not necessarily output the same command. Such characteristics of Generative AI make it difficult to perform operations such as UNDO and REDO when operating software via Generative AI. Therefore, there is a need for technology that can implement UNDO and REDO functions when operating software via Generative AI. 【0006】 This disclosure is made in view of the above-mentioned background, and in one aspect, its purpose is to provide a technology that realizes UNDO and REDO functions in the operation of software via generating AI. 【0007】According to one embodiment, a device is provided for operating software via a generating AI. The device includes an input unit for receiving prompt input, and a generating information acquisition unit for inputting prompts to the generating AI and acquiring generated information relating to a group of commands output by the generating AI. The group of commands includes one or more commands for operating the software. The device further includes a stack for storing the group of commands based on the generated information in association with the input prompt, a command execution unit for executing the group of commands stored in the stack, and an output unit for outputting the execution results of a series of commands executed by the command execution unit. The stack includes information on the execution position of the series of commands. The command execution unit is configured to perform an UNDO operation on the software of the last group of commands added to the stack based on the input unit receiving an UNDO prompt, and to perform a REDO operation on the software of the last group of commands that were UNDOed based on the input unit receiving a REDO prompt, and to change the execution position in the stack based on the execution of an UNDO operation or a REDO operation. 【0008】 According to the above disclosure, the device can record the execution of a series of commands on a per-prompt basis by having a stack. Therefore, the device can perform per-prompt UNDO and REDO operations by referring to the stack. As a result, the device can provide the user with the ability to perform UNDO and REDO operations via the generating AI, along with the ability to operate software via the generating AI. 【0009】 The generating AI is trained to output generated information related to UNDO processing based on the reception of an UNDO prompt, and to output generated information related to REDO processing based on the reception of a REDO prompt. The command execution unit is configured to execute UNDO processing based on the reception of a request for UNDO processing based on the generated information, and to execute REDO processing based on the reception of a request for REDO processing based on the generated information. 【0010】According to the above disclosure, the device can determine whether a user's instruction is to execute an UNDO or REDO operation by inputting a prompt into the generating AI. This allows the device to provide the user with the functionality to execute UNDO and REDO operations via prompts. 【0011】 The input unit is configured to refer to a first list containing the keyword UNDO, and based on receiving a prompt containing the keyword UNDO from the first list, output a request for UNDO processing to the command execution unit. It is also configured to refer to a second list containing the keyword REDO, and based on receiving a prompt containing the keyword REDO from the second list, output a request for REDO processing to the command execution unit. The command execution unit is configured to execute UNDO processing based on receiving a request for UNDO processing from the input unit, and to execute REDO processing based on receiving a request for REDO processing from the input unit. 【0012】 According to the above disclosure, the device can determine whether a user's instruction is to execute an UNDO or REDO operation by performing a pattern matching operation on the prompt. The device can execute UNDO and REDO operations without using a generating AI by using the pattern matching function. 【0013】 The output section includes a User Interface (UI) for displaying the output results before and after the execution of command sets on a per-prompt basis in a comparable manner. The UI is configured to accept UNDO or REDO processing requests on a per-prompt basis. 【0014】 According to the above disclosure, the user can compare the output results before and after changes to a series of commands on a per-prompt basis by referring to the provided UI. The user can also input UNDO or REDO requests to the device via the UI. 【0015】The stack stores a first set of commands and a second set of commands executed after the first set of commands. When the command execution unit adds a third set of commands to a sequence of commands and executes them, if the execution position indicates the end of the first set of commands, the stack is configured to overwrite the second set of commands with the third set of commands. 【0016】 According to the above disclosure, the device may overwrite the undoed commands in the stack with a new set of commands based on the execution of normal software operations after the undo process. This allows the stack to retain the most recent execution state of the set of commands even after the undo process and software operations have been performed. 【0017】 The command group is configured to store the command name of one or more commands in association with the argument information associated with each of the one or more commands. The argument information includes the argument values before each of the one or more commands is executed, and the argument values after each of the one or more commands is executed. 【0018】 According to the above disclosure, the device may, in an UNDO operation, restore the state of a series of commands before the most recent software operation was applied by referring to the values of arguments in the stack. Similarly, the device may, in a REDO operation, restore the state of a series of commands before the most recent UNDO operation was applied by referring to the values of arguments in the stack. 【0019】 The device further comprises a command generation unit that generates a set of commands from generated information. The command generation unit is configured to refer to a 3D data library and a command library and generate a set of commands from the text contained in the generated information. According to this disclosure, the device can generate a set of commands from generated information based on a 3D data library and a command library. 【0020】 The output unit is configured to output a series of commands to other devices. According to this disclosure, the device can output a series of commands to other devices. The user can output the completed series of commands to a simulator or a digital twin execution environment and execute them. 【0021】 The stack is configured so that the execution position can be changed on a per-command basis. According to the disclosure, the device can UNDO and REDO only a portion of the software operations via prompts. 【0022】 The output section includes a UI that allows comparison of the output results before and after the execution of individual commands. The UI is configured to accept requests for UNDO or REDO processing on a per-command basis. 【0023】 According to the above disclosure, the user can compare the output results of a series of commands before and after modification on an individual command basis by referring to the provided UI. The user can also input UNDO processing requests or REDO processing requests to the device on an individual command basis via the UI. 【0024】 According to one embodiment, a method is provided that is performed by a device that assists in the operation of software via a generating AI. The method includes receiving a prompt input, inputting a prompt to the generating AI and obtaining generated information relating to a set of commands output by the generating AI. The set of commands includes one or more commands for operating the software. The method further includes storing the set of commands based on the generated information in a stack associated with the input prompt, executing the set of commands stored in the stack, and outputting the execution results of the executed set of commands. The stack includes information about the execution position of the set of commands. The method further includes, based on receiving an UNDO prompt, having the software perform an UNDO operation on the last set of commands added to the stack, based on receiving a REDO prompt, having the software perform a REDO operation on the last set of commands that were UNDOed, and changing the execution position in the stack based on having performed an UNDO operation or a REDO operation. 【0025】According to the above disclosure, the device can record the execution of a series of commands on a per-prompt basis by performing the method. Therefore, the device can perform per-prompt UNDO and REDO operations by referring to the stack. As a result, the device can provide the user with the ability to perform UNDO and REDO operations via the generating AI, along with the ability to operate software via the generating AI. 【0026】 According to one embodiment, a program is provided that causes a computer to perform operations on software via a generating AI. The program causes the device to accept prompt input, input prompts to the generating AI, and obtain generated information relating to a set of commands output by the generating AI. The set of commands includes one or more commands for operating the software. The program further causes the device to store the set of commands based on the generated information in a stack associated with the input prompt, execute the set of commands stored in the stack, and output the execution results of the executed series of commands. The stack includes information on the execution position of the series of commands. The program further causes the device to perform UNDO processing on the software of the last set of commands added to the stack based on the acceptance of an UNDO prompt, to perform REDO processing on the software of the last set of commands processed UNDO based on the acceptance of a REDO prompt, and to change the execution position in the stack based on the execution of UNDO processing or REDO processing. 【0027】 According to the above disclosure, the device can record the execution of a series of commands on a per-prompt basis by executing the program. Therefore, the device can perform per-prompt UNDO and REDO operations by referring to the stack. As a result, the device can provide the user with the ability to perform UNDO and REDO operations via the generating AI, along with the ability to operate the software via the generating AI. 【0028】According to one embodiment, UNDO and REDO functions can be realized in the operation of software via a generating AI. 【0029】 The above and other purposes, features, aspects and advantages of this disclosure will become apparent from the following detailed description of this disclosure, which will be understood in conjunction with the attached drawings. 【0030】 This figure shows an example of the operation overview of the device 100 according to this embodiment. This figure shows an example of the configuration of the functional blocks of the device 100 according to this embodiment. This figure shows an example of the hardware configuration of the device 100 according to this embodiment. This figure shows an example of the data structure 400 of the command group stored in the stack 210. This figure shows an example of the changes in the stack 210 based on the execution of a series of commands. This figure shows an example of the changes in the stack 210 based on the execution of UNDO processing on a per-prompt basis. This figure shows an example of the changes in the stack 210 based on the execution of REDO processing on a per-prompt basis. This figure shows an example of the changes in the stack 210 based on the execution of UNDO processing on an individual command basis. This figure shows an example of the overwrite processing of the stack 210. This figure shows an example of the procedure for generating a group of commands from a prompt. This figure shows a first example of the UI provided by the device 100. This figure shows a second example of the UI provided by the device 100. This figure shows a third example of the UI provided by the device 100. This figure shows a first example of the processing procedure executed by the device 100. This figure shows a second example of the processing procedure executed by the device 100. 【0031】 The embodiments of the technical concept relating to this disclosure will be described below with reference to the drawings. In the following description, the same parts are denoted by the same reference numerals. Their names and functions are also the same. Therefore, detailed descriptions of them will not be repeated. Furthermore, each embodiment, each modification, each software or program configuration, each hardware configuration, each function, and each process may be selectively combined as appropriate. 【0032】<Application Example> Figure 1 shows an example of the operation overview of the device 100 according to this embodiment. The device 100 realizes the operation of software via a generation AI. The device 100 also supports UNDO and REDO in the operation of software via the generation AI. The device 100 acquires a group of commands on a prompt basis via the generation AI and executes the group of commands. The execution of a group of commands here means the operation of the software that is the target of the operation by the group of commands. The device 100 executes the group of commands corresponding to each prompt that is input. Furthermore, the device 100 outputs the execution results of a series of commands. 【0033】 "Software" encompasses any program that runs on any information processing device. For example, software includes simulators, emulators, integrated development environments for programs, programming editors, and the like. Hereafter, in this specification, "software" refers to the software operated by the device 100. 【0034】 A "command" is an input for operation to software. Commands may be entered into software along with one or more arguments. Software is configured to accept commands via a GUI (Graphical User Interface), CUI (Character User Interface), or API (Application Programming Interface), etc. For example, suppose a simulator receives a command to place a rectangular prism in 3D space. In this case, the simulator places the rectangular prism in 3D space based on the received command. In addition, operations on software using commands include any operations such as adding settings to the software, using software functions, and writing programs in an editor, etc. 【0035】A "command group" refers to one or more commands. The user can input the desired operation to the device 100 as a natural language prompt. The device 100 may obtain multiple commands from the prompt. For example, suppose the prompt is "Create a blue rectangular prism at (100,100,0)". In this case, the prompt can be broken down into three commands: "Create a rectangular prism", "Change the color of the rectangular prism", and "Move the rectangular prism to the specified coordinates". Hereafter, one or more commands generated based on a prompt will be referred to as a command group. 【0036】 A "series of commands" includes all commands that the device 100 performs on the software being operated. For example, suppose the device 100 receives three prompts. In this case, the device 100 obtains three sets of commands and executes them in the order they were obtained. That is, the device 100 inputs these commands into the software. In such a case, the series of commands includes three sets of commands. Furthermore, the command sets generated from the prompts are stored in the stack 210, which will be described later. Therefore, a "series of commands" includes the command sets stored in the stack 210. 【0037】 "UNDO" refers to the act of undoing a series of commands that were executed immediately before the previous one. Hereafter, the act of device 100 actually performing UNDO on a series of commands will be referred to as "UNDO processing." For example, suppose device 100 executes command A as the last command in a series of commands based on prompt input. If device 100 receives an UNDO request immediately after this, device 100 will perform UNDO processing to undo the preceding command A. As a result, device 100 inputs a command for UNDO processing to the software. 【0038】"REDO" is the act of restoring a command that has been deleted from a series of commands. Hereafter, the act of device 100 actually performing a REDO on a series of commands will be referred to as "REDO processing." For example, suppose device 100 deletes command B from a series of commands based on prompt input. If device 100 receives a REDO request immediately after this, device 100 will perform REDO processing to restore command B that was deleted from the series of commands. As a result, device 100 inputs a command for REDO processing to the software. 【0039】 In software operation via a generative AI, the user can obtain a set of commands by inputting instructions called prompts to the generative AI. Prompts are often written in natural language. In addition to natural language, prompts may also include arbitrary data such as files, charts, and images. The generative AI outputs generated information based on the input prompts. The generated information may be the set of commands themselves, or it may be text containing information used to generate the set of commands. The information used to generate the set of commands may include some or all of the command names, argument names, and argument values. 【0040】 While operating software via a generation AI offers the advantage of ease of use, it also presents the challenge of lack of reproducibility. The generation AI itself is a black box, and there is no one-to-one relationship between prompts and generated information. Therefore, even if a user inputs the same prompt into the generation AI, the output command set may change. This is often a problem in software operation. In particular, UNDO and REDO are processes for undoing and restoring the previously executed command set, and therefore require high reproducibility. 【0041】 Furthermore, the generating AI may not accurately remember the contents of the commands executed immediately before. Therefore, even if the generating AI executes UNDO or REDO based on the prompt, it may not be able to accurately delete or restore the commands executed immediately before. 【0042】In view of the above issues, the device 100 is equipped with a special stack 210 to realize UNDO and REDO in the operation of software via the generating AI. The stack 210 is configured to store prompts and command groups generated from those prompts in association. For example, suppose the device 100 receives a prompt from a user. Then, suppose the device 100 inputs the prompt to the generating AI and obtains a command group containing one or more commands based on that prompt. In this case, the device 100 stores the prompt and the command group in association with each other in the stack 210. That is, the device 100 can group one or more commands on a prompt basis and store them in the stack 210. Each time the device 100 receives a prompt input and operates the software, it stores the prompt and the command group in association with each other in the stack 210. The stack 210 includes information on the execution position 150 of the command group that was last added to the series of commands. By referring to the stack 210, the device 100 can realize UNDO and REDO in the operation of software that utilizes prompts. 【0043】 When the device 100 performs UNDO or REDO operations, it refers to the stack 210. Below, with reference to Figure 1, an example of the procedure for the device 100 to perform UNDO operations on a series of commands will be described, using the input of settings to the simulator as an example. 【0044】In step 1, device 100 receives an input of prompt 120 from user 110. Device 100 generates a command group 130 including one or more commands based on prompt 120. The command group 130 may include, for example, three commands: creation of a rectangular parallelepiped, change of the color of the rectangular parallelepiped, and movement of the rectangular parallelepiped. Device 100 stores the command group 130 in stack 210. Next, device 100 executes the command group 130 added to stack 210. At this point, a series of commands includes the command group 130. At this time, the execution position 150 indicates the end of the command group 130. The end of the command group 130 means the position after the execution of the last command included in the command group 130. Conversely, the beginning of the command group 130 means the position before the execution of the first command included in the command group 130. The same applies to subsequent command groups. Then, device 100 outputs an output result 140. At this point, one rectangular parallelepiped is created in the 3D space. 【0045】 In step 2, device 100 receives an input of prompt 122 from user 110. Device 100 generates a command group 132 including one or more commands based on prompt 122. Device 100 stores the command group 132 in stack 210 so as to stack it on the command group 130. Next, device 100 executes the command group 132 added to stack 210. At this point, a series of commands includes the command groups 130 and 132. At this time, the execution position 150 indicates the end of the command group 132. Then, device 100 outputs an output result 142. At this point, two rectangular parallelepipeds are created in the 3D space. 【0046】In step 3, the device 100 receives input from user 110 for prompt 124. Prompt 124 is an UNDO request. Therefore, the device 100 performs UNDO processing in accordance with prompt 124. When the device 100 performs UNDO processing, it refers to the stack 210 and removes the most recently executed set of commands from the sequence of commands. Currently, execution position 150 indicates the end of the command set 132 associated with prompt 122. This indicates that command set 132 is the last set of commands executed in the sequence of commands. Therefore, the device 100 removes command set 132 from the sequence of commands. That is, the device 100 inputs a UNDO processing command to the software to cancel the execution of command set 132. Furthermore, the device 100 moves execution position 150 when performing UNDO processing. More specifically, because the command group 132 is left unexecuted due to the UNDO operation, the device 100 moves the execution position 150 to the end of the command group 130. Then, the device 100 outputs the output result 144. At this point, one rectangular prism has been created in 3D space. 【0047】In step 4, the apparatus 100 receives an input of the prompt 126 from the user 110. The prompt 126 is a request for REDO. Therefore, the apparatus 100 executes a REDO process according to the prompt 126. When the apparatus 100 executes a request for a REDO process, it refers to the stack 210 to revive a group of commands that were most recently deleted from a series of commands. Currently, the execution position 150 indicates the end of the command group 130. Further, within the stack 210, there is an unexecuted command group 132 after the command group 130. This indicates that the command group 132 was the last to be deleted from the series of commands. Therefore, the apparatus 100 adds the command group 132 to the series of commands again. That is, the apparatus 100 inputs a REDO process command to the software to revive the execution of the command group 132. Further, the apparatus 100 moves the execution position 150 when executing the REDO process. More specifically, since the command group 132 becomes executed by the REDO process, the apparatus 100 moves the execution position 150 to the end of the command group 132. Then, the apparatus 100 outputs the output result 146. At this point, two rectangular parallelepipeds are created in the 3D space. 【0048】 As described with reference to FIG. 1, the apparatus 100 includes a stack 210 capable of storing a group of commands associated with a prompt. The stack 210 can leave an execution record of a series of commands in units of prompts. Therefore, the apparatus 100 can execute an UNDO process and a REDO process in units of prompts by referring to the stack 210. As a result, the apparatus 100 can provide the user with a function of executing an UNDO process and a REDO process via a generation AI, together with an operation function of software via the generation AI. The user can operate the software in natural language and perform UNDO and REDO of a series of commands by using the apparatus 100. In the example of FIG. 1, the series of commands are commands related to the setting of a simulation, but this is merely an example. The apparatus 100 can provide a similar function for any operation on any software. 【0049】<Device Configuration> Figure 2 shows an example of the configuration of a functional block in the device 100 according to this embodiment. Each functional block shown in Figure 2 may be implemented as a program. In this case, each functional block can be implemented by executing the program on the hardware shown in Figure 3. Alternatively, some or all of each functional block may be implemented as hardware. In this case, in addition to the hardware shown in Figure 3, the device 100 includes hardware for implementing some or all of each functional block. The device 100 can execute programs and use multiple functions in combination, and therefore includes an information processing device and system. 【0050】 The device 100 comprises an input unit 202, a generation information acquisition unit 204, a generation AI 206, a command generation unit 208, a stack 210, a command execution unit 212, and an output unit 214. The device 100 is also configured to read a file 250 containing a series of commands 252. The device 100 is configured to update the series of commands 252 in the read file 250 and output a new file 260 containing the updated series of commands 262. The device 100 may overwrite file 250 with file 260. Alternatively, the device 100 may leave file 250 and output file 260. Files 250 and 260 contain any operation inputs to the software or their results. For example, files 250 and 260 may contain software configuration information, a program project file, etc. The series of commands 252 and 262 may contain configuration information input to the software by the series of commands. Files 250 and 260 may be stored in the storage 303 of the device 100 (see Figure 3), or they may be stored on an external storage medium or other device. The device 100 can input a series of commands to the software any number of times by referring to file 260, which contains a series of commands. 【0051】The input unit 202 accepts prompts for operating the software. The input unit 202 may also include a UI such as a chat screen for accepting prompts. The input unit 202 can also accept input via the screens shown in Figures 11 to 13. The input unit 202 outputs the received prompts to the generation information acquisition unit 204. 【0052】 Furthermore, the input unit 202 may also have a function to output UNDO processing requests and REDO processing requests to the command execution unit 212. More specifically, the input unit 202 refers to a pattern matching list and determines whether the prompt contains the keyword UNDO or REDO. If the input unit 202 determines that the prompt contains the keyword UNDO or REDO, it outputs a UNDO processing request or a REDO processing request to the command execution unit 212. Otherwise, the input unit 202 outputs the prompt to the generation information acquisition unit 204. The device 100 may store a pattern matching list in the storage 303. This list includes a first list containing the keyword UNDO and a second list containing the keyword REDO. The first list and the second list may be a single list or separate lists. 【0053】 The generation information acquisition unit 204 inputs a prompt to the generation AI 206. The generation information acquisition unit 204 also acquires the generation information generated by the generation AI 206 based on the prompt. The generation information acquisition unit 204 outputs the generation information acquired from the generation AI 206 to the command generation unit 208. 【0054】The generation AI 206 receives prompt input from the generation information acquisition unit 204 and outputs generation information generated based on the prompt. The output generation information is information about a set of commands. For example, if the prompt is "Create a blue rectangular prism at (100,100,0)", the generation AI 206 outputs information about a set of commands for creating a blue rectangular prism at (100,100,0). The information about the set of commands includes at least the name of each command included in the set of commands and information about the arguments related to each command. The information about the arguments related to each command includes the values of the arguments before and after the execution of each command. 【0055】 The generated information may be the command group itself. In this case, the generated information acquisition unit 204 outputs the generated information and prompt to the stack 210 or the command execution unit 212. Alternatively, the generated information may be text information including the command name and argument values. In this case, the generated information acquisition unit 204 outputs the generated information and prompt to the command generation unit 208. 【0056】 If the prompt contains information about UNDO, the generating AI 206 outputs generated information containing information about UNDO processing. Similarly, if the prompt contains information about REDO, the generating AI 206 outputs generated information containing information about REDO processing. 【0057】 The generation AI 206 may be customized using technologies such as RAG (Retrieval Augmented Generation) to output information about the command group. The generation AI 206 may reside outside the device 100. In this case, the generation information acquisition unit 204 is configured to send prompts to the generation AI 206 via the network and receive generation information from the generation AI 206. 【0058】 The generating AI 206 may be trained to output generated information related to the UNDO process based on the receipt of an UNDO prompt. Similarly, the generating AI 206 may be trained to output generated information related to the REDO process based on the receipt of a REDO prompt. 【0059】 The command generation unit 208 generates a set of commands based on the generated information. The command generation unit 208 refers to the 3D data library 1050 (see Figure 10) and the command library 1060 (see Figure 10) and generates a set of commands from the generated information. The command generation unit 208 outputs the generated set of commands and prompts to the stack 210 or the command execution unit 212. 【0060】 If the generated information includes information related to UNDO processing, the command generation unit 208 outputs a request for UNDO processing to the command execution unit 212. Similarly, if the generated information includes information related to REDO processing, the command generation unit 208 outputs a request for REDO processing to the command execution unit 212. 【0061】 The stack 210 stores the received command group and prompt in association. The stack 210 may also receive the command group and prompt from the command generation unit 208. In this case, the stack 210 stores the command group and prompt in association and notifies the command execution unit 212 that the command group has been added to the stack 210. Alternatively, the stack 210 may also receive the command group and prompt from the command execution unit 212. In this case, the stack 210 stores the command group and prompt in association. 【0062】 The command execution unit 212 updates the original series of commands 252 to generate a new series of commands 262 and executes the new series of commands 262. The command execution unit 212 may execute only the difference between the series of commands 252 and the series of commands 262. Alternatively, the command execution unit 212 may execute all the commands included in the series of commands 262. Execution here means inputting the series of commands 262 into the software and performing the operation. The command execution unit 212 outputs the execution result of the series of commands 262 to the output unit 214. The command execution unit 212 also outputs a file 260 containing the series of commands 262. Alternatively, the command execution unit 212 may overwrite the file 250 containing the series of commands 252 with the file 260 containing the series of commands 262. 【0063】 When the command execution unit 212 obtains a set of commands and a prompt from the command generation unit 208, it adds the set of commands to a series of commands 252 and stores the set of commands and the prompt in the stack 210. The command execution unit 212 also changes the execution position 150 in the stack 210. The changed execution position 150 indicates the end of the newly added set of commands in the stack 210. 【0064】 When the command execution unit 212 receives a notification from the stack 210, it retrieves the command group from the stack 210 and adds it to the series of commands 252. The command execution unit 212 also changes the execution position 150 of the stack 210. The changed execution position 150 indicates the end of the command group newly added to the stack 210. 【0065】 When the command execution unit 212 receives a request for UNDO processing, it executes UNDO processing to remove the command group that was last added to the series of commands 252 from the series of commands 252, thereby generating a series of commands 262. In addition, the command execution unit 212 changes the execution position 150 of the stack 210 in response to the UNDO processing. The changed execution position 150 indicates the starting position of the deleted command group. 【0066】 When the command execution unit 212 receives a request for REDO processing, it performs REDO processing on a series of commands 252, re-executing the command group that was last deleted from the series of commands 252, thereby generating a series of commands 262. The command execution unit 212 also changes the execution position 150 of the stack 210 in response to the REDO processing. The changed execution position 150 indicates the last position of the command group that was re-executed in the series of commands. 【0067】The output unit 214 outputs the execution results of a series of commands. The output unit 214 may transmit the execution results of a series of commands to another device via a network. The output unit 214 may output the execution results of a series of commands to an output device 316 (see Figure 3) connected to device 100. The output unit 214 may transmit the execution results of a series of commands to another device and also output the execution results of a series of commands to the output device 316. 【0068】 Furthermore, the output unit 214 may output file 260 to another device. File 260 may include a series of commands 262 after editing is complete and 3D shape data, etc. Device 100 may output the series of commands 262, etc. after editing is complete to a simulation device. Also, device 100 may output the executable file of the series of commands 262, etc. to a digital twin device. 【0069】 As explained with reference to Figure 2, the device 100 includes an input unit 202 for receiving prompt input, and a generation information acquisition unit 204 for inputting prompts to the generation AI 206 and acquiring generation information relating to the command group output by the generation AI 206. The command group includes one or more commands for operating software. The device 100 further includes a stack 210 for storing the command group based on the generation information in association with the input prompt, a command execution unit 212 for executing the command group stored in the stack 210, and an output unit 214 for outputting the execution results of a series of commands executed by the command execution unit 212. The stack 210 includes information on the execution position of the series of commands. The command execution unit 212 is configured to, based on the input unit 202 receiving an UNDO prompt, execute UNDO processing on the last group of commands added to the stack 210 for the software, and based on the input unit 202 receiving a REDO prompt, execute REDO processing on the last group of commands that were UNDO processed for the software, and to change the execution position in the stack 210 based on the execution of UNDO processing or REDO processing. 【0070】Furthermore, the generating AI 206 is a generating AI 206 that has learned to output generated information related to UNDO processing based on the receipt of an UNDO prompt, and to output generated information related to REDO processing based on the receipt of a REDO prompt. The command execution unit 212 is configured to execute UNDO processing based on the receipt of a request for UNDO processing based on the generated information, and to execute REDO processing based on the receipt of a request for REDO processing based on the generated information. 【0071】 Furthermore, the input unit 202 is configured to refer to a first list containing the keyword UNDO, and based on receiving a prompt containing the keyword UNDO from the first list, output a request for UNDO processing to the command execution unit 212. It is also configured to refer to a second list containing the keyword REDO, and based on receiving a prompt containing the keyword REDO from the second list, output a request for REDO processing to the command execution unit 212. The command execution unit 212 is configured to execute UNDO processing based on receiving a request for UNDO processing from the input unit 202, and to execute REDO processing based on receiving a request for REDO processing from the input unit 202. Additionally, the output unit 214 is configured to output a series of commands to another device 100. 【0072】 Figure 3 shows an example of the hardware configuration of the device 100 according to this embodiment. The device 100 may include two or more of the configurations shown in Figure 3. The device 100 may also include configurations other than those shown in Figure 3. The device 100 may not include some of the configurations shown in Figure 3. 【0073】 The device 100 includes a processor 301, a memory 302, a storage 303, an external device IF 304, an input IF 305, an output IF 306, and a communication IF 307. The device 100 also includes a bus 308 that connects these components. 【0074】The processor 301 can execute programs to realize various functions of the device 100. The processor 301 is composed of, for example, at least one integrated circuit. According to one embodiment, the integrated circuit may include at least one CPU (Central Processing Unit), at least one GPU (Graphics Processing Unit), at least one FPGA (Field Programmable Gate Array), at least one ASIC (Application Specific Integrated Circuit), at least one AI (Artificial Intelligence) chip, or a combination thereof. 【0075】 Memory 302 functions as a workspace for processor 301. Memory 302 stores programs executed by processor 301 and data referenced by processor 301. Memory 302 can be implemented as DRAM (Dynamic Random Access Memory) or SRAM (Static Random Access Memory), etc. 【0076】 The storage 303 is a non-volatile memory that stores programs executed by the processor 301 and data referenced by the processor 301. The processor 301 executes programs read from the storage 303 to the memory 302 and references data read from the storage 303 to the memory 302. The storage 303 can be implemented as an HDD (Hard Disk Drive), SSD (Solid State Drive), EPROM (Erasable Programmable Read Only Memory), EEPROM (Electrically Erasable Programmable Read Only Memory), or flash memory, etc. 【0077】External device IF304 can be connected to any external device such as a printer, scanner, and external HDD. External device IF304 can be implemented using a USB (Universal Serial Bus) terminal or the like. 【0078】 The input interface 305 can be connected to any input device 315, such as a keyboard, mouse, touchpad, or gamepad. The input interface 305 can be implemented by a USB terminal, PS / 2 terminal, Bluetooth® module, etc. 【0079】 Output IF 306 can be connected to any output device 316 such as a cathode ray tube display, liquid crystal display, or organic EL display. Output IF 306 can be implemented using a USB terminal, D-sub terminal, DVI (Digital Visual Interface) terminal, HDMI (High-Definition Multimedia Interface), etc. 【0080】 The communication IF 307 can be connected to any external device 317, such as a PLC (Programmable Logic Controller), via a wired or wireless network. The external device 317 may be connected to the external device IF 304. The communication IF 307 can be implemented using a wired LAN (Local Area Network) port and a Wi-Fi® (Wireless Fidelity) module, etc. The communication IF 307 can send and receive data using communication protocols such as TCP / IP (Transmission Control Protocol / Internet Protocol) and UDP (User Datagram Protocol). 【0081】 <Example of Command Execution> Figure 4 shows an example of a data structure 400 of a group of commands stored in the stack 210. The data structure 400 of the group of commands includes a prompt 410 input to the generating AI 206 and information 420 of one or more commands generated by the generating AI 206 based on the prompt 410. This information 420 of one or more commands indicates a group of commands associated with the prompt. 【0082】 Each of the pieces of command information 420 includes a command name 432 and From values 434 and To values 436, which are information about the arguments related to the command. The command name 432 is the name of the command. The From value 434 is the value of the argument affected by the execution of the command specified by the command name 432, and indicates the value before the command is executed. The To value 436 is the value of the argument affected by the execution of the command specified by the command name 432, and indicates the value after the command is executed. The data structure 400 can be represented as data in a hierarchical structure, a list structure, or any other arbitrary structure. The command name may indicate a function or setting of the software. The arguments may be used as setting values for functions that the software provides. That is, the arguments may include software settings. The values of the arguments may include values for software settings. 【0083】 The command execution unit 212 may add only some of the data contained in the data structure 400 to a series of commands when operating the software. For example, the command execution unit 212 may add the command name 432 and the To value 436 to a series of commands, but not the From value 434. The From value 434 may be used when executing an UNDO operation to restore the values of the arguments on the series of commands to their values before the previous software operation. Similarly, the To value 436 may be used when executing a REDO operation to restore the values of the arguments on a series of commands to their values when a group of commands that were previously deleted are restored. 【0084】The stack 210 is configured to store a stack of command groups, each having a data structure 400. In the example shown in Figure 4, the stack 210 stores command groups 460 and 470. Both command groups 460 and 470 have a data structure 400. The stack 210 also contains information about the execution position 150. The command execution unit 212 can perform UNDO and REDO operations for multiple commands generated by a single prompt by referring to the command groups stacked in the stack 210. That is, the command execution unit 212 can perform UNDO and REDO operations on a per-prompt basis. 【0085】 The command execution unit 212 can determine which command group should be UNDO or REDO by referring to the execution position 150. In the example in Figure 4, the execution position 150 indicates the end of the command group 470. Therefore, the target of the UNDO process is the command group 470. The command execution unit 212 also updates the execution position 150 each time it performs an UNDO or REDO operation. In the example in Figure 4, when an UNDO operation is performed on the command group 470, the execution position 150 moves to the position indicating the end of the command group 460. In this way, the execution position 150 can always indicate the latest execution state of each command group. 【0086】 As explained with reference to Figure 4, the command group is configured to store the command name of one or more commands in association with the argument information associated with each of the one or more commands. The argument information includes the argument values of each of the one or more commands before execution and the argument values of each of the one or more commands after execution. This allows the device 100 to restore the state of a series of commands before the previous software operation was applied in an UNDO operation by referring to the argument values in the stack 210. Similarly, the device 100 can restore the state of a series of commands before the previous UNDO operation was applied in a REDO operation by referring to the argument values in the stack 210. 【0087】The stack 210 is configured to store a stack of command groups having a data structure 400, and includes information on the execution position 150 indicating the latest execution state of each command group. By referring to the stack 210, the device 100 can perform UNDO and REDO operations on a series of commands implemented via a prompt. 【0088】 A command group is a group of one or more commands generated based on a single prompt. Therefore, UNDO and REDO operations on a command group correspond to software operations performed by a single prompt. The user can delete a command group that was added to the command series by the previous prompt simply by requesting UNDO from the device 100 via a prompt. Similarly, the user can restore a command group that was deleted from the command series by the previous UNDO operation simply by requesting REDO from the device 100 via a prompt. 【0089】 Next, with reference to Figures 5 to 9, examples of changes in the stack 210 based on software operation via prompts, UNDO processing, and REDO processing will be described. The command sets shown in Figures 5 to 9 all include a data structure 400. 【0090】 In the following explanation, when generating a command group from a prompt, the device 100 may directly obtain the command group from the generation AI 206. Alternatively, the device 100 may input the generation information obtained from the generation AI 206 to the command generation unit 208 and obtain the command group from the command generation unit 208. 【0091】 Furthermore, the device 100 may use a pattern matching function when generating an UNDO request or a REDO request from a prompt. In this case, the generation AI 206 is not used to generate the UNDO request or the REDO request. The device 100 may also generate an UNDO request or a REDO request using the same procedure as for generating a group of commands. The device 100 may also update the stack 210 before updating the series of commands. Conversely, the device 100 may update the series of commands before updating the stack 210. 【0092】 Figure 5 shows an example of how the stack 210 changes based on the execution of software operations. In the example in Figure 5, the device 100 receives two prompt inputs from the user. These prompts include commands related to normal software operations. Therefore, the device 100 executes the software operations twice. The stack 210 shows the state after the two prompt-based software operations have been executed. 【0093】 First, device 100 receives a first prompt from the user: "Create a blue rectangular prism at (100,100,0)". Next, device 100 inputs the first prompt to generation AI 206. Then, device 100 obtains a set of commands 500 based on the first prompt. Device 100 stores the set of commands 500 in the stack 210 and moves the execution position 150 to position 504, which indicates the end of the set of commands 500. Then, device 100 adds the set of commands 500 to a series of commands. After that, device 100 executes the series of commands and outputs the execution result 502. 【0094】 Next, the device 100 receives a second prompt from the user: "Create a rectangular prism identical to box at (200, 100, 0)". The device 100 then stores the command group 510 in the stack 210 using a similar procedure and moves the execution position 150 to position 514, which indicates the end of the command group 510. The device 100 then adds the command group 510 based on the second prompt to the series of commands. At this point, the command groups 500 and 510 have been added to the series of commands. After that, the device 100 executes the series of commands and outputs the execution result 512. 【0095】 As explained with reference to Figure 5, each time the device 100 executes a series of commands (i.e., software operations), it stores the command group corresponding to the executed software operation in the stack 210. Then, the device 100 moves the execution position 150. As a result, the execution state of the command group on a per-prompt basis is stored in the stack 210. 【0096】Figure 6 shows an example of how the stack 210 changes based on the execution of UNDO operations on a per-prompt basis. In the example in Figure 6, the device 100 performs UNDO operations after the software operations described with reference to Figure 5. 【0097】 Device 100 receives a prompt from the user requesting UNDO. Based on the UNDO request prompt, Device 100 inputs a UNDO processing request to the command execution unit 212. Device 100 may input the UNDO request prompt to the generation AI 206 and determine that the input prompt is a UNDO request prompt based on the generation information obtained from the generation AI 216. Alternatively, Device 100 may input the generation information to the command generation unit 208 and obtain a UNDO processing request from the command generation unit 208. Alternatively, Device 100 may determine that the input prompt is a UNDO request prompt by referring to a pattern matching list. In any case, Device 100 inputs a UNDO processing request to the command execution unit 212. 【0098】 Device 100 refers to the stack 210 and returns the execution position 150 to the state before the command execution unit 212 executed the previous process. In this case, device 100 returns the execution position 150 to the position before the command group 510 was added to the series of commands. That is, device 100 moves the execution position 150 from position 514, which indicates the end of the command group 510, to position 504, which indicates the end of the command group 500. 【0099】 Then, the device 100 removes the command group 510, which has become unexecuted due to the movement of the execution position 150, from the series of commands. At this point, the series of commands includes the command group 500. Subsequently, the device 100 executes the series of commands after the UNDO process and outputs the execution result 502. In the example of Figure 6, the command group 510 that was removed is a group of commands that was generated based on the second prompt. In other words, the device 100 can undo the software operation with a single prompt by performing the UNDO process. 【0100】As explained with reference to Figure 6, when the device 100 performs an UNDO operation, it moves the execution position 150 to the position before the execution of the previous software operation. Furthermore, the device 100 removes the group of commands 510 that have not been executed from the series of commands. In this way, the device 100 can implement UNDO operations in software operations via the generated AI. 【0101】 Figure 7 shows an example of how the stack 210 changes based on the execution of a REDO process on a per-prompt basis. In the example in Figure 7, the device 100 executes a REDO process after the UNDO process described with reference to Figure 6. 【0102】 Device 100 receives a prompt from the user requesting a REDO. Based on the prompt requesting a REDO, Device 100 inputs a request for REDO processing to the command execution unit 212. Device 100 may input the prompt requesting a REDO to the generation AI 206 and determine that the input prompt is a prompt requesting a REDO based on the generation information obtained from the generation AI 216. Alternatively, Device 100 may input the generation information to the command generation unit 208 and obtain a request for REDO processing from the command generation unit 208. Alternatively, Device 100 may determine that the input prompt is a prompt requesting a REDO by referring to a pattern matching list. In any case, Device 100 inputs a request for REDO processing to the command execution unit 212. 【0103】 Device 100 refers to the stack 210 and returns the execution position 150 to the state before the command execution unit 212 executed the previous process. In this case, device 100 returns the execution position 150 to the position before the UNDO process was executed. That is, device 100 moves the execution position 150 from position 504, which indicates the end of the command group 500, to position 514, which indicates the end of the command group 510. Command groups in the stack 210 are not deleted by the UNDO process. Therefore, device 100 can retrieve the command group that was previously UNDO'd by referring to the stack 210. In this case, device 100 retrieves the command group 510 that was previously UNDO'd. 【0104】 Then, the device 100 restores the command group 510 that has been restored to the execution state by moving the execution position 150. That is, the device 100 adds the command group 510 obtained from the stack 210 back to the series of commands. At this point, the series of commands includes command groups 500 and 510. Subsequently, the device 100 executes the series of commands after the REDO process and outputs the execution result 512. The device 100 can restore the command group that was deleted by the UNDO process by executing the REDO process. If the UNDO process has been executed multiple times in succession, the device 100 can also execute the REDO process as many times as the UNDO process has been executed. 【0105】 As explained with reference to Figure 7, the stack 210 stores the commands that have been removed from the series of commands by the UNDO process. Therefore, the device 100 can refer to the stack 210 and retrieve the commands that have been removed from the series of commands. Thus, the device 100 can implement the REDO process in the operation of the software via the generating AI. 【0106】 Figure 8 shows an example of how the stack 210 changes based on the execution of UNDO operations on an individual command basis. In the example in Figure 8, the device 100 performs UNDO operations on a command basis after the software operation described with reference to Figure 5. 【0107】If device 100 receives a prompt that includes a request to cancel the execution of a command, it may perform command-level UNDO processing. For example, suppose device 100 receives a prompt that includes the instruction "cancel the previous Move operation." In this case, device 100 may input the prompt to the generation AI 206 and obtain a request for command-level UNDO processing from the generation AI 206. Alternatively, device 100 may input the generation information output by the generation AI 206 to the command generation unit 208 and obtain a request for UNDO processing from the command generation unit 208. Based on the request for command-level UNDO processing, device 100 moves the execution position 150 back by the amount of one command. In this case, device 100 moves the execution position 150 from the position 514 after the execution of the Move command to the position 814 before the execution of the Move command. Then, device 100 removes the Move command from the series of commands. At this point, the series of commands has the command groups 500 and 510 added, and only the last Move command has been deleted. Subsequently, the device 100 executes the series of commands after UNDO processing on a command-by-command basis and outputs the execution result 812. The device 100 may also perform REDO processing on a command-by-command basis using a similar procedure. 【0108】 As explained with reference to Figure 8, the stack 210 is configured so that the execution position can be changed on a per-command basis. This allows the device 100 to undo and redo only a portion of the software operations via prompts. 【0109】 Figure 9 shows an example of the overwrite process of the stack 210. In the example in Figure 9, the device 100 performs normal software operations after the UNDO process described with reference to Figure 6. Immediately after the UNDO process, the execution position 150 indicates position 504. 【0110】Device 100 receives a third prompt from the user, "Create a red cylinder at (0,0,100)". Next, Device 100 inputs the third prompt to the generation AI 206. Next, Device 100 obtains a command group 910 based on the third prompt. The command group 910 may be output by the generation AI 206 or the command generation unit 208. Device 100 stores the command group 910 in the stack 210. When the stack 210 stores a new command group, it sets the execution position 150 as the starting position for storing the new command group. In this case, the command group 910 is stored in the stack 210 with position 504 as the starting position. Therefore, the command group 510, which was in an unexecuted state due to the previous UNDO operation, is overwritten by the command group 910. After the overwrite operation, Device 100 moves the execution position 150 to position 914, which indicates the end of the command group 910. Then, the device 100 adds command group 910 to the series of commands. At this point, the series of commands includes command groups 500 and 910. Subsequently, the device 100 executes the series of commands and outputs the execution result 912. 【0111】 As explained with reference to Figure 9, the stack 210 stores a first group of commands and a second group of commands executed after the first group of commands. When the execution position indicates the end of the first group of commands, the command execution unit 212 adds a third group of commands to the sequence and executes them, overwriting the second group of commands with the third group of commands. In other words, the device 100 uses the execution position 150 as the reference position for inserting the sequence of commands. As a result, the data stored in the stack 210 can accurately indicate the state of the latest sequence of commands, even when UNDO and REDO operations are performed in addition to normal software operations. 【0112】Figure 10 shows an example of a procedure for generating a set of commands from a prompt. The device 100 receives a prompt 1000 from the user via the input unit 202. Next, the device 100 inputs the prompt 1000 to the generation AI 206 via the generation information acquisition unit 204. The generation AI 206 is pre-trained using the training data set 1040. The data set 1040 includes a command parameter set, 3D data categories and names, mechanism configuration and parameter set, command templates, etc. Based on the acceptance of the prompt input, the generation AI 206 may be trained to output text 1020 containing the command name, argument names, and argument values as generated information. Alternatively, the generation AI 206 may be trained to output the command set itself as generated information based on the acceptance of the prompt input. In this case, the device 100 does not need to include a command generation unit 208. 【0113】 Next, the device 100 acquires text 1020 as generated information from the generated AI 206 via the generated information acquisition unit 204. Then, the device 100 inputs text 1020 to the command generation unit 208. The command generation unit 208 generates a command group 1030 from text 1020. When generating the command group 1030, the command generation unit 208 refers to the 3D data library 1050 and the command library 1060. The 3D data library 1050 contains information such as 3D shape data or the path to 3D shape data. Based on the 3D data library 1050, the command generation unit 208 may add a command to the command group 1030 to load the desired 3D shape data. The command library 1060 contains specification information such as the arguments of each command. Based on the command library 1060, the command generation unit 208 may convert the information contained in text 1020 into a command format. 【0114】 As explained with reference to Figure 10, the system further includes a command generation unit that generates a set of commands from the generated information. The command generation unit is configured to refer to a 3D data library and a command library and generate a set of commands from the text contained in the generated information. 【0115】 <UI> Next, an example of the UI provided by the device 100 will be described with reference to Figures 11 to 13. The various UIs provided by the device 100 are configured to display some or all of the following: prompts entered into the device 100, command groups generated based on the prompts, the execution results of a series of commands before the command group was added, the execution results of a series of commands after the command group was added, the values of one or more arguments included in the series of commands before the command group was added, and the values of one or more arguments included in the series of commands after the command group was added. 【0116】 Furthermore, the various UIs provided by the device 100 are configured to display the execution results of a series of commands before the addition of individual commands, the execution results of a series of commands after the addition of individual commands, the values of one or more arguments included in the series of commands before the addition of individual commands, and some or all of the values of one or more arguments included in the series of commands after the addition of individual commands. 【0117】 Furthermore, the various UIs provided by the device 100 may be displayed on the output device 316 connected to the device 100. Alternatively, the various UIs provided by the device 100 may be transmitted to another device via the communication IF 307. In this case, the various UIs will be displayed on the display of the other device. 【0118】 The various UIs provided by the device 100 may be included in the output unit 214. The input unit 202 may also be configured to accept operation input from the user via these UIs. The input unit 202 outputs a request for processing related to the received operation input to the command execution unit 212. The command execution unit 212 reflects the requested processing in a series of commands and outputs the execution result of the series of commands. The execution result of the series of commands may be presented to the user via the various UIs provided by the device 100. 【0119】 Figure 11 shows a first example of a UI provided by the device 100. The UI 1100 includes a prompt item 1101, a set of commands generated based on the prompt item 1102, and an execution result item 1103. 【0120】The prompt item 1101 contains information about the prompt entered into the device 100. The command group item 1102 contains information about the individual commands included in the command group generated based on the prompt. In the example in Figure 11, the command group item 1102 contains the items for the individual commands 1112, 1114, and 1116. This is just one example, and the command group item 1102 may contain information for any number of commands. 【0121】 Execution result item 1103 contains information about the execution results of a series of commands. More specifically, execution result item 1103 contains the execution results of a series of commands before and after the addition of individual commands. For example, execution result 1122 shows the execution results of a series of commands before command 1112 was added. Execution result 1132 shows the execution results of a series of commands after command 1112 was added. Similarly, execution results 1124 and 1134 show the execution results of a series of commands before and after the addition of command 1114. Execution results 1126 and 1136 show the execution results of a series of commands before and after the addition of command 1116. 【0122】 The UI 1100 may be configured to accept UNDO and REDO requests. For example, a user may perform an UNDO or REDO operation on a per-prompt basis on the device 100 by selecting a prompt item 1101, for instance. The device 100 may then perform an UNDO or REDO operation on a per-prompt basis based on its acceptance of the operation. As another example, a user may perform an UNDO or REDO operation on a per-command basis on the device 100 by selecting individual command items 1112, 1114, 1116, or individual execution result items 1122, 1124, 1126, 1132, 1134, 1136, for instance. The device 100 may then perform an UNDO or REDO operation on a per-command basis based on its acceptance of the operation. 【0123】 By referring to UI1100, the user can understand what commands were generated based on the prompt. Furthermore, by referring to UI1100, the user can understand how the execution results of a series of commands change before and after each command is added. 【0124】 Figure 12 shows a second example of the UI provided by the device 100. The UI 1200 includes a prompt item 1201, a set of commands generated based on the prompt item 1202, and an execution result item 1203. 【0125】 The prompt item 1201 contains information about the prompt entered into the device 100. The command group item 1202 contains information about the individual commands included in the command group generated based on the prompt. In the example in Figure 12, the command group item 1202 contains the items for individual commands 1212 and 1214. This is just one example, and the command group item 1202 may contain information for any number of commands. 【0126】 Execution result item 1203 contains information about the execution results of a series of commands. Unlike execution result item 1103, execution result item 1203 includes the values of each argument included in the series of commands. Execution result 1220 is the execution result of the series of commands before the command group was added. Execution result 1230 is the execution result of the series of commands after the command group was added. Argument items whose values have changed due to the addition of the command group are highlighted. In the example in Figure 12, two items 1232 and 1234 are highlighted. Item 1232 relates to an argument indicating the color of the 3D shape data. Item 1234 relates to an argument indicating the offset from the parent 3D shape data to the child 3D shape data. 【0127】 The UI 1200 may be configured to accept UNDO and REDO requests. For example, a user may perform command-level UNDO or REDO operations on the device 100, such as by selecting a highlighted item. The device 100 may then execute command-level UNDO or REDO processing based on the acceptance of such operation. The UI 1200 may also be configured to accept prompt-level UNDO and REDO requests. 【0128】By referring to UI1200, the user can understand what commands were generated based on the prompt. Furthermore, by referring to UI1200, the user can understand how the values of each argument changed before and after the addition of the command set. 【0129】 Figure 13 shows a third example of the UI provided by the device 100. UI 1300 includes UNDO and REDO menus. UI 1300 may be part of a screen. The user can select UNDO or REDO in UI 1300. Based on the acceptance of the UNDO or REDO selection input, the device 100 outputs a confirmation UI 1310. UI 1310 is a confirmation screen for executing the selected process. In the example in Figure 13, UI 1310 is a confirmation screen for executing the UNDO process. If REDO is selected from the menu, UI 1310 becomes a confirmation screen for executing the REDO process. 【0130】 Based on receiving an execution command for the selected process from the user via UI 1310, the device 100 outputs UI 1320 showing the execution result. UI 1320 includes the execution results of a series of commands before the selected process is applied and the execution results of a series of commands after the selected process is applied. In addition, UI 1320 highlights the argument items whose values have changed before and after the execution of the selected process. In the example in Figure 13, two items 1332 and 1334 are highlighted. 【0131】 As shown in Figure 13, the user can easily perform UNDO and REDO operations via UI 1300. Furthermore, by referring to UI 1320, the user can understand how the values of each argument have changed before and after the UNDO or REDO operation. 【0132】The items of each UI shown in Figures 11 to 13 may be displayed in appropriate combinations. For example, UI 1100 may further display items showing the changes in the values of each argument included in a series of commands. Similarly, UI 1320 may further display items containing information about the execution results of a series of commands (e.g., a simulation screen). By referring to these UIs, the user can simultaneously view the execution results of a series of commands and the values of the arguments. 【0133】 As explained with reference to Figures 11 to 13, the output unit 214 includes a UI for displaying the output results before and after the execution of a group of commands on a per-prompt basis in a comparable manner. The UI is configured to accept UNDO processing requests or REDO processing requests on a per-prompt basis. This allows the user to compare the output results before and after the modification of a series of commands on a per-prompt basis by referring to the provided UI. The user can also input UNDO processing requests or REDO processing requests to the device 100 via the UI. 【0134】 Furthermore, the output unit 214 includes a UI that allows comparison of the output results before and after the execution of individual commands. The UI is configured to accept requests for UNDO or REDO processing on an individual command basis. By referring to the provided UI, the user can compare the output results before and after the modification of a series of commands on an individual command basis. The user can also input requests for UNDO or REDO processing on an individual command basis to the device 100 via the UI. 【0135】 <Processing performed by device 100> Next, referring to Figures 14 and 15, the processing procedures for prompt-based software operation, UNDO processing, and REDO processing performed by device 100 will be described. The processor 301 may read a program for performing the processing shown in Figures 14 and 15 from storage 303 into memory 302 and execute the program. Some or all of the processing can also be implemented as a combination of circuit elements configured to perform the processing. Furthermore, the following steps may be performed in any order. 【0136】Figure 14 shows a first example of a processing procedure performed by the device 100. In step S1405, the device 100 obtains a file (files 250, 260, etc.) on which a series of commands have been executed for the software to be operated. The device 100 may obtain the file from storage 303. The device 100 may obtain the file from a storage medium connected to the device 100. The device 100 may receive the file from another device via communication IF 307. The device 100 may obtain a project file, which is a dataset containing the file. The device 100 may obtain the file based on the fact that it has received input for a file read command. The device 100 can receive input for a file read command via input device 315, communication IF 307, etc. 【0137】 In step S1410, the device 100 acquires a prompt. The device 100 may send the prompt input screen as a web application screen to the user's terminal. In this case, the device 100 may acquire the prompt entered on the prompt input screen via the communication IF 307. The device 100 may display the prompt input screen on the output device 316. In this case, the device 100 may acquire the prompt entered on the prompt input screen via the input IF 305. The prompt may include text, images, tables, audio, video, any other data, and any combination thereof. 【0138】In step S1415, the device 100 inputs a prompt to the generating AI 206. In step S1420, the device 100 obtains text from the generating AI 206 as generated information. The text includes information for generating a set of commands to add to a series of commands (i.e., a set of commands to be input to the software), and a request for UNDO processing or a request for REDO processing. The information for generating the content to add to the series of commands may include information on the command names and argument values. The device 100 may be configured to obtain a set of commands that can be added to a series of commands, a request for UNDO processing, and a request for REDO processing as generated information from the generating AI 206. In this case, the device 100 does not need to perform the processes in steps S1425 to S1440. 【0139】 In step S1425, the device 100 determines, based on the generated information, whether the user's instruction is UNDO or REDO. If the device 100 determines that the user's instruction is UNDO or REDO (YES in step S1425), it transfers control to step S1430. Otherwise (NO in step S1425), the device 100 transfers control to step S1435. 【0140】 In step S1430, the device 100 performs an UNDO operation or a REDO operation. When performing an UNDO operation or a REDO operation, the device 100 refers to the stack 210. The device 100 may perform the stack update operation in step S1445 before the operation in step S1430. The device 100 may perform the operations in steps S1430 and S1445 simultaneously. 【0141】 In step S1435, the device 100 refers to a library. The library includes a 3D data library 1050 and a command library 1060. In step S1440, the device 100, based on the library, creates a set of commands in a format that can be added to a series of commands from the generated information text. 【0142】In step S1445, the device 100 updates the stack 210. In step S1450, the device 100 moves the execution position 150. The processes in steps S1445 and S1450 correspond to the processes described with reference to Figures 5 to 9. 【0143】 In step S1455, the device 100 adds the generated command group to a series of commands and updates the file. The process in step S1455 corresponds to the process of updating the original file 250, as explained with reference to Figure 4, and saving it as file 260. 【0144】 In step S1460, the device 100 executes the updated series of commands and outputs the execution results. The device 100 may also output a UI to show the user how the execution results have changed before and after the update of the series of commands. For example, the device 100 may output each of the UIs shown in Figures 11 to 13, or a combination thereof. 【0145】 Figure 15 shows a second example of a processing procedure performed by the apparatus 100. The processing procedure shown in Figure 15 is a modified version of the processing procedure shown in Figure 14. The same reference numerals are used for the same steps as in Figure 14, and their descriptions will not be repeated. 【0146】The processing procedure shown in Figure 15 differs from the processing procedure shown in Figure 14 in that it directly analyzes the prompt, rather than the generated information, to determine whether the user's instruction is UNDO or REDO. More specifically, in step S1510, the device 100 determines whether the user's instruction is UNDO or REDO before inputting the prompt to the generated AI 206. For example, the device 100 may compare the prompt with a list for pattern matching. The list includes a group of words that suggest UNDO and a group of words that suggest REDO. In this case, the device 100 may determine that the user's instruction is UNDO or REDO based on the fact that the prompt contains one or more words included in the list. If the device 100 determines that the user's instruction is UNDO or REDO (YES in step S1510), it moves control to step S1430. Otherwise (NO in step S1510), the device 100 transfers control to step S1415. 【0147】 As described with reference to Figures 14 and 15, the device 100 may perform a method to assist coding via a generating AI by executing a program. This method includes receiving a prompt input, inputting a prompt to the generating AI 206, and obtaining generation information relating to a set of commands output by the generating AI 206. The set of commands includes one or more commands for operating the software. The method further includes storing the set of commands based on the generation information in a stack 210 in association with the input prompt, executing the set of commands stored in the stack 210, and outputting the execution results of the executed series of commands. The stack 210 includes information on the execution position of the series of commands. The method further includes, based on receiving an UNDO prompt, instructing the software to perform UNDO processing on the last set of commands added to the stack 210, based on receiving a REDO prompt, instructing the software to perform REDO processing on the last set of commands that were UNDOed, and changing the execution position in the stack 210 based on having performed UNDO or REDO processing. 【0148】 <Summary> The device 100 according to this embodiment includes a stack 210 capable of storing a set of commands associated with a prompt. The stack 210 can keep a record of updates to a series of commands on a per-prompt basis. Therefore, the device 100 can perform UNDO and REDO operations via prompts by referring to the stack 210. As a result, the device 100 can provide the user with the ability to operate software via the generating AI, as well as the ability to perform UNDO and REDO operations via the generating AI. By using the device 100, the user can interact with the generating AI 206 via prompts, operate the software using natural language, and perform UNDO and REDO operations on a series of commands. 【0149】<Note> As described above, this embodiment includes the following disclosure. [Configuration 1] An input unit (202) for receiving prompt input, and a generation information acquisition unit (204) for inputting the prompt to a generation AI (206) and acquiring generation information relating to a group of commands output by the generation AI (206), wherein the group of commands includes one or more commands for operating software, and further comprises a stack (210) for storing the group of commands based on the generation information in association with the input prompt, a command execution unit for executing the group of commands stored in the stack (210), and an output unit (214) for outputting the execution results of a series of commands executed by the command execution unit, wherein the stack (210) includes information on the execution position (150) of the series of commands, and the command execution unit, based on the fact that the input unit (202) has received an UNDO prompt, executes UNDO processing on the software for the last added group of commands in the stack (210). [Configuration 2] The device (100) is configured such that, based on the input unit (202) receiving a REDO prompt, it executes a REDO process on the software for the last UNDO processed command group, and changes the execution position (150) in the stack (210) based on the execution of the UNDO process or the REDO process. [Configuration 2] The generation AI (206) is a generation AI (206) that has learned to output generation information related to the UNDO process based on the reception of the UNDO prompt, and to output generation information related to the REDO process based on the reception of the REDO prompt, and the command execution unit is configured to execute the UNDO process based on the reception of a request for the UNDO process based on the generation information, and to execute the REDO process based on the reception of a request for the REDO process based on the generation information, as described in Configuration 1.[Configuration 3] The device (100) according to Configuration 1, wherein the input unit (202) is configured to refer to a first list containing the keyword UNDO and, based on receiving a prompt containing the keyword UNDO from the first list, output a request for UNDO processing to the command execution unit; refer to a second list containing the keyword REDO and, based on receiving a prompt containing the keyword REDO from the second list, output a request for REDO processing to the command execution unit; and the command execution unit is configured to execute UNDO processing based on receiving a request for UNDO processing from the input unit (202) and to execute REDO processing based on receiving a request for REDO processing from the input unit (202). [Configuration 4] The device (100) according to any one of Configurations 1 to 3, wherein the output unit (214) includes a UI for displaying the output results before and after the execution of the command group on a per-prompt basis in a comparable manner, and the UI is configured to accept requests for UNDO processing or REDO processing on a per-prompt basis. [Configuration 5] The device (100) according to any one of Configurations 1 to 3, wherein the stack (210) stores a first command group and a second command group executed after the first command group, and when the execution position (150) indicates the end of the first command group, the command execution unit is configured to overwrite the second command group with the third command group when it adds and executes a third command group to the series of commands. [Configuration 6] The command group is configured to store the command name of each of the one or more commands and the information of the arguments related to each of the one or more commands in association with each of the one or more commands, and the information of the arguments includes the value of the argument before each of the one or more commands is executed and the value of the argument after each of the one or more commands is executed, the device (100) according to any one of Configurations 1 to 3.[Configuration 7] The device (100) according to any one of Configurations 1 to 3, further comprising a command generation unit (208) that generates the command group from the generated information, wherein the command generation unit (208) is configured to refer to a 3D data library and a command library and generate the command group from the text contained in the generated information. [Configuration 8] The device (100) according to any one of Configurations 1 to 3, wherein the output unit (214) is configured to output the series of commands to another device (100). [Configuration 9] The device (100) according to Configuration 2 or 3, wherein the stack (210) is configured to change the execution position (150) on a per-command basis. [Configuration 10] The device (100) according to Configuration 9, wherein the output unit (214) includes a UI that can compare the output results before and after the execution of the individual commands, and the UI is configured to accept requests for UNDO processing or REDO processing on a per-command basis.[Configuration 11] A method executed by a device (100) that assists in the operation of software via a generation AI (206), comprising: receiving input of a prompt; inputting the prompt to the generation AI (206) and obtaining generation information relating to a group of commands output by the generation AI (206), wherein the group of commands includes one or more commands for operating software, the method further comprises: storing the group of commands based on the generation information in a stack (210) in association with the input prompt; executing the group of commands stored in the stack (210); and outputting the execution result of the executed series of commands, wherein the stack (210) includes information on the execution position (150) of the series of commands, the method further comprises: executing UNDO processing on the software for the last added group of commands in the stack (210) based on the receipt of an UNDO prompt; and executing REDO processing on the software for the last UNDO processed group of commands based on the receipt of a REDO prompt. A method comprising changing the execution position (150) in the stack (210) based on having performed the above UNDO operation or the above REDO operation.[Configuration 12] A program that causes a device (100) to perform operations on software via a generation AI (206), wherein the program causes the device (100) to: accept input of a prompt; input the prompt to the generation AI (206) and obtain generation information relating to a group of commands output by the generation AI (206), the group of commands includes one or more commands for operating software, the program further causes the device (100) to: store the group of commands based on the generation information in a stack (210) associated with the input prompt; execute the group of commands stored in the stack (210); and output the execution result of the executed series of commands, the stack (210) includes information on the execution position (150) of the series of commands, the program further causes the software to perform UNDO processing of the last added group of commands in the stack (210) based on the acceptance of an UNDO prompt, A program that, upon receiving a REDO prompt, causes the above-mentioned software to perform a REDO operation on the last UNDO-processed set of commands, and causes the above-mentioned device (100) to change the above-mentioned execution position (150) in the above-mentioned stack (210) based on the execution of the above-mentioned UNDO operation or the above-mentioned REDO operation. 【0150】 The embodiments disclosed herein should be considered in all respects to be illustrative and not restrictive. The scope of this disclosure is indicated by the claims and not by the foregoing description, and all modifications are intended to be included in the sense and scope equivalent to the claims. Furthermore, the disclosures described in the embodiments and each variation are intended to be implemented, as far as possible, individually or in combination. 【0151】100 Device, 110 User, 120, 122, 124, 126, 410, 1000 Prompt, 130, 132, 460, 470, 500, 510, 910, 1030 Command group, 140, 142, 144, 146 Output result, 150 Command execution position, 202 Input unit, 204 Generation information acquisition unit, 206 Generation AI, 208 Command generation unit, 210 Stack, 212 Command execution unit, 214 Output unit, 250, 260 File, 252, 262 Series of commands, 301 Processor, 302 Memory, 303 Storage, 304 External device IF, 305 Input IF, 306 Output IF, 307 Communication IF, 308 Bus, 315 Input device, 316 Output device, 317 External device, 400 data structure, 420 command information, 432 command name, 434 From value, 436 To value, 502, 512, 812, 912, 1122, 1124, 1126, 1132, 1134, 1136, 1220, 1230 execution result, 504, 514, 814, 914 location, 1020 text, 1040 dataset, 1050 3D data library, 1060 command library, 1101, 1201 prompt items, 1102, 1202 command group items, 1103, 1203 execution result items, 1112, 1114, 1116, 1212, 1214 command, 1232, 1234, 1332, 1334 items.
Claims
1. A device comprising: an input unit for receiving prompt input; a generation information acquisition unit for inputting the prompt to a generation AI (Artificial Intelligence) and acquiring generation information relating to a group of commands output by the generation AI, wherein the group of commands includes one or more commands for operating software; a stack for storing the group of commands based on the generation information in association with the input prompt; a command execution unit for executing the group of commands stored in the stack; and an output unit for outputting the execution results of a series of commands executed by the command execution unit, wherein the stack includes information on the execution position of the series of commands; the command execution unit is configured to: execute an UNDO process on the software for the last command group added to the stack based on the input unit receiving an UNDO prompt; execute a REDO process on the software for the last command group that was UNDO processed based on the input unit receiving a REDO prompt; and change the execution position in the stack based on the execution of the UNDO process or the REDO process.
2. The apparatus according to claim 1, wherein the generating AI is a generating AI that has learned to output generated information relating to the UNDO process based on the receipt of the UNDO prompt, and to output generated information relating to the REDO process based on the receipt of the REDO prompt, and the command execution unit is configured to execute the UNDO process based on the receipt of the UNDO process request based on the generated information, and to execute the REDO process based on the receipt of the REDO process request based on the generated information.
3. The apparatus according to claim 1, wherein the input unit is configured to refer to a first list containing the keyword UNDO and, based on receiving a prompt containing the keyword UNDO included in the first list, output a request for the UNDO process to the command execution unit; refer to a second list containing the keyword REDO and, based on receiving a prompt containing the keyword REDO included in the second list, output a request for the REDO process to the command execution unit; and the command execution unit is configured to execute the UNDO process based on receiving a request for the UNDO process from the input unit and to execute the REDO process based on receiving a request for the REDO process from the input unit.
4. The apparatus according to any one of claims 1 to 3, wherein the output unit includes a UI (User Interface) for displaying the output results before and after the execution of the command group on a per-prompt basis in a comparable manner, and the UI is configured to accept requests for UNDO processing or REDO processing on a per-prompt basis.
5. The apparatus according to any one of claims 1 to 3, wherein the stack stores a first group of commands and a second group of commands executed after the first group of commands, and when the execution position indicates the end of the first group of commands, the command execution unit is configured to overwrite the second group of commands with the third group of commands when it adds and executes a third group of commands to the series of commands.
6. The device according to any one of claims 1 to 3, wherein the command group is configured to store in association the command name of each of the one or more commands and the argument information related to each of the one or more commands, and the argument information includes the value of the argument before each of the one or more commands is executed and the value of the argument after each of the one or more commands is executed.
7. The apparatus according to any one of claims 1 to 3, further comprising a command generation unit that generates the command group from the generated information, wherein the command generation unit is configured to refer to a 3D (Dimensional) data library and a command library and generate the command group from the text contained in the generated information.
8. The apparatus according to any one of claims 1 to 3, wherein the output unit is configured to output the series of commands to another device.
9. The apparatus according to claim 2 or 3, wherein the stack is configured to allow the execution position to be changed on a per-command basis.
10. The apparatus according to claim 9, wherein the output unit includes a UI capable of comparing the output results before and after the execution of the individual commands, and the UI is configured to accept requests for the UNDO processing or the REDO processing on a per-individual command basis.
11. A method performed by a device that assists in the operation of software via a generating AI, comprising: receiving input of a prompt; inputting the prompt to the generating AI and obtaining generated information relating to a group of commands output by the generating AI, wherein the group of commands comprises one or more commands for operating software; the method further comprises: storing the group of commands based on the generated information in a stack associated with the input prompt; executing the group of commands stored in the stack; and outputting the execution result of the executed series of commands, wherein the stack comprises information on the execution position of the series of commands; the method further comprises: receiving an UNDO prompt and performing UNDO processing on the software for the last group of commands added to the stack; receiving a REDO prompt and performing REDO processing on the software for the last group of commands that were UNDO processed; and changing the execution position in the stack based on the execution of the UNDO processing or the REDO processing.
12. A program that causes a device to perform operations on software via a generating AI, the program causing the device to: accept input of a prompt; input the prompt to the generating AI and obtain generation information relating to a group of commands output by the generating AI; the group of commands includes one or more commands for operating software; the program further causes the device to: store the group of commands based on the generation information in a stack associated with the input prompt; execute the group of commands stored in the stack; and output the execution result of the executed series of commands; the stack includes information on the execution position of the series of commands; the program further causes the device to: perform UNDO processing on the software of the last group of commands added to the stack based on receiving an UNDO prompt; perform REDO processing on the software of the last group of commands processed with UNDO based on receiving a REDO prompt; and change the execution position in the stack based on having performed the UNDO processing or the REDO processing.