system
The system addresses the inefficiency of user interaction with generative AI by using an analysis, instruction, recording, and providing unit to detect, correct, and deliver program code, enhancing AI accuracy and code quality.
Patent Information
- Application Number
- JP2024143035
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-08-23
- Publication Date
- 2026-03-09
AI Technical Summary
Conventional methods for generating and modifying program code using generative AI place a heavy burden on users, making it difficult to work efficiently.
A system that includes an analysis unit to detect errors in generated program code, an instruction unit to correct errors by communicating with the generation AI, a recording unit to record interactions, and a providing unit to deliver the corrected code to users, thereby systematizing interactions and reducing user burden.
The system reduces user interaction time and effort, improves generation AI accuracy, and enables the generation of higher-quality program code by systematically managing interactions and corrections.
Smart Images

Figure 2026039482000001_ABST
Abstract
Description
[Technical Field]
[0001] The technology of the present disclosure relates to a system. [Background technology]
[0002] Patent document 1 discloses a persona chatbot control method performed by at least one processor, the method including the steps of receiving a user utterance, adding the user utterance to a prompt including an instruction sentence related to a description of the chatbot character, encoding the prompt, and inputting the encoded prompt into a language model to generate a chatbot utterance in response to the user utterance. [Prior art documents] [Patent documents]
[0003] [Patent Document 1] Japanese Patent Publication No. 2022-180282 Summary of the Invention [Problem to be solved by the invention]
[0004] With conventional technology, generating and modifying program code using generative AI placed a heavy burden on users, making it difficult to work efficiently.
[0005] The system according to the embodiment aims to systematize interactions with the generation AI and reduce the burden on the user. [Means for solving the problem]
[0006] The system according to the embodiment includes an analysis unit, an instruction unit, a recording unit, and a providing unit. The analysis unit analyzes the generated program code. The instruction unit instructs the generation AI to make corrections based on errors detected by the analysis unit. The recording unit records interactions between the instruction unit and the generation AI. The providing unit provides the user with the program code generated based on the information recorded by the recording unit. [Effects of the Invention]
[0007] The system according to the embodiment systemizes the interaction with the generation AI, thereby reducing the burden on the user. [Brief explanation of the drawings]
[0008] [Figure 1] 1 is a conceptual diagram showing an example of the configuration of a data processing system according to a first embodiment. [Figure 2] 1 is a conceptual diagram showing an example of main functions of a data processing device and a smart device according to a first embodiment. [Figure 3] FIG. 10 is a conceptual diagram showing an example of the configuration of a data processing system according to a second embodiment. [Figure 4] FIG. 10 is a conceptual diagram showing an example of main functions of a data processing device and smart glasses according to a second embodiment. [Figure 5] FIG. 10 is a conceptual diagram showing an example of the configuration of a data processing system according to a third embodiment. [Figure 6] FIG. 11 is a conceptual diagram showing an example of main functions of a data processing device and a headset-type terminal according to a third embodiment. [Figure 7] FIG. 10 is a conceptual diagram showing an example of the configuration of a data processing system according to a fourth embodiment. [Figure 8] FIG. 10 is a conceptual diagram showing an example of main functions of a data processing device and a robot according to a fourth embodiment. [Figure 9] 1 shows an emotion map onto which multiple emotions are mapped. [Figure 10] 1 shows an emotion map onto which multiple emotions are mapped. DETAILED DESCRIPTION OF THE INVENTION
[0009] An example of an embodiment of a system according to the technology of the present disclosure will be described below with reference to the accompanying drawings.
[0010] First, the terms used in the following description will be explained.
[0011] In the following embodiments, a coded processor (hereinafter simply referred to as a "processor") may be a single arithmetic device or a combination of multiple arithmetic devices. Furthermore, the processor may be a single type of arithmetic device or a combination of multiple types of arithmetic devices. Examples of arithmetic devices include a CPU (Central Processing Unit), a GPU (Graphics Processing Unit), a GPGPU (General-Purpose computing on Graphics Processing Units), an APU (Accelerated Processing Unit), or a TPU (Tensor Processing Unit).
[0012] In the following embodiments, a coded RAM (Random Access Memory) is a memory in which information is temporarily stored and is used as a working memory by a processor.
[0013] In the following embodiments, the coded storage is one or more non-volatile storage devices that store various programs, various parameters, etc. Examples of non-volatile storage devices include flash memory (SSD (Solid State Drive)), magnetic disks (e.g., hard disks), and magnetic tapes.
[0014] In the following embodiments, a communication I / F (Interface) with a symbol is an interface including a communication processor, an antenna, etc. The communication I / F controls communication between multiple computers. Examples of communication standards applied to the communication I / F include wireless communication standards including 5G (5th Generation Mobile Communication System), Wi-Fi (registered trademark), and Bluetooth (registered trademark).
[0015] In the following embodiments, "A and / or B" is synonymous with "at least one of A and B." In other words, "A and / or B" means that it may be only A, only B, or a combination of A and B. Furthermore, in this specification, the same concept as "A and / or B" is also applied when three or more things are expressed connected by "and / or."
[0016] [First embodiment] FIG. 1 shows an example of the configuration of a data processing system 10 according to the first embodiment.
[0017] 1, a data processing system 10 includes a data processing device 12 and a smart device 14. An example of the data processing device 12 is a server.
[0018] The data processing device 12 includes a computer 22, a database 24, and a communication I / F 26. The computer 22 includes a processor 28, a RAM 30, and a storage 32. The processor 28, RAM 30, and storage 32 are connected to a bus 34. The database 24 and the communication I / F 26 are also connected to the bus 34. The communication I / F 26 is connected to a network 54. Examples of the network 54 include a WAN (Wide Area Network) and / or a LAN (Local Area Network).
[0019] The smart device 14 includes a computer 36, a reception device 38, an output device 40, a camera 42, and a communication I / F 44. The computer 36 includes a processor 46, a RAM 48, and a storage 50. The processor 46, the RAM 48, and the storage 50 are connected to a bus 52. The reception device 38, the output device 40, and the camera 42 are also connected to the bus 52.
[0020] The reception device 38 includes a touch panel 38A and a microphone 38B, and receives user input. The touch panel 38A detects contact with a pointer (for example, a pen or a finger) to receive user input by the touch of the pointer. The microphone 38B detects the user's voice to receive user input by voice. The control unit 46A transmits data indicating the user input received by the touch panel 38A and the microphone 38B to the data processing device 12. In the data processing device 12, the specific processing unit 290 (see FIG. 2) acquires the data indicating the user input.
[0021] Output device 40 includes a display 40A and a speaker 40B, and presents data to a user by outputting the data in a form of expression that the user can perceive (e.g., audio and / or text). Display 40A displays visible information such as text and images in accordance with instructions from processor 46. Speaker 40B outputs audio in accordance with instructions from processor 46. Camera 42 is a compact digital camera equipped with an optical system including a lens, aperture, and shutter, and an imaging element such as a CMOS (Complementary Metal-Oxide-Semiconductor) image sensor or a CCD (Charge Coupled Device) image sensor.
[0022] The communication I / F 44 is connected to a network 54. The communication I / Fs 44 and 26 control the exchange of various information between the processor 46 and the processor 28 via the network 54.
[0023] FIG. 2 shows an example of the main functions of the data processing device 12 and the smart device 14.
[0024] 2, in the data processing device 12, a specific process is performed by the processor 28. A specific processing program 56 is stored in the storage 32. The specific processing program 56 is an example of a "program" according to the technology of the present disclosure. The processor 28 reads the specific processing program 56 from the storage 32 and executes the read specific processing program 56 on the RAM 30. The specific process is realized by the processor 28 operating as a specific processing unit 290 in accordance with the specific processing program 56 executed on the RAM 30.
[0025] The storage 32 stores a data generation model 58 and an emotion identification model 59. The data generation model 58 and the emotion identification model 59 are used by the identification processing unit 290. The identification processing unit 290 can estimate a user's emotion using the emotion identification model 59 and perform identification processing using the user's emotion. The emotion estimation function (emotion identification function) using the emotion identification model 59 performs various estimations and predictions regarding the user's emotion, including estimation and prediction of the user's emotion, but is not limited to these examples. Furthermore, the estimation and prediction of emotion also includes, for example, emotion analysis.
[0026] In the smart device 14, the specific processing is performed by the processor 46. The storage 50 stores a specific processing program 60. The specific processing program 60 is used together with the specific processing program 56 by the data processing system 10. The processor 46 reads the specific processing program 60 from the storage 50 and executes the read specific processing program 60 on the RAM 48. The specific processing is realized by the processor 46 operating as the control unit 46A in accordance with the specific processing program 60 executed on the RAM 48. Note that the smart device 14 has a data generation model and an emotion identification model similar to the data generation model 58 and the emotion identification model 59, and can also perform processing similar to that of the specific processing unit 290 using these models.
[0027] Note that a device other than the data processing device 12 may have the data generation model 58. For example, a server device (e.g., a generation server) may have the data generation model 58. In this case, the data processing device 12 obtains a processing result (prediction result, etc.) using the data generation model 58 by communicating with the server device having the data generation model 58. Furthermore, the data processing device 12 may be a server device, or may be a terminal device owned by a user (e.g., a mobile phone, a robot, a home appliance, etc.). Next, an example of processing by the data processing system 10 according to the first embodiment will be described.
[0028] (Example 1) A system according to an embodiment of the present invention reduces the burden on users and improves the accuracy of the generation AI by systematizing interaction with the generation AI. In this system, a user requests the generation AI to generate program code, and the generation AI generates the program code based on the input requirements. The generated program code is automatically verified by the system, and if an error or defect is discovered, the system automatically requests the generation AI to make corrections. The generation AI corrects the program code based on the correction request and regenerates it. This process is repeated until the error or defect is resolved. Furthermore, the system records the history of interactions with the generation AI and uses this information for subsequent program code generation. This reduces the time and effort required for users to interact with the generation AI and enables efficient program code generation. This also contributes to improving the accuracy of the generation AI, enabling the generation of higher-quality program code. This reduces the burden on users and improves the accuracy of the generation AI. For example, when a user requests the generation AI to generate program code, the system automatically manages interactions with the generation AI and repeatedly requests corrections until the error or defect is resolved. This reduces the time and effort required for users to interact with the generation AI and enables efficient program code generation. It also contributes to improving the accuracy of the generation AI, making it possible to generate higher quality program code.
[0029] A system for interacting with a generation AI according to an embodiment includes an analysis unit, an instruction unit, a recording unit, and a providing unit. The analysis unit analyzes generated program code. For example, the analysis unit may analyze the generated program code based on general coding rules and known bug patterns to detect errors. The analysis unit may also simulate the execution environment of the generated program code to detect environment-dependent errors. The analysis unit may also evaluate the performance of the generated program code and suggest optimizations. The instruction unit instructs the generation AI to make corrections based on the errors detected by the analysis unit. For example, the instruction unit may communicate details of the detected errors to the generation AI and provide specific correction instructions. The instruction unit may also determine the priority of corrections based on the severity of the errors. The instruction unit may also improve the accuracy of correction instructions by referring to past correction history. The recording unit records interactions with the generation AI performed by the instruction unit. For example, the recording unit may organize the history of interactions with the generation AI in chronological order to improve searchability. The recording unit may also categorize the history of interactions with the generation AI to facilitate analysis. Furthermore, the recording unit can statistically analyze the history of interactions with the generation AI and evaluate the performance of the generation AI. The providing unit provides the user with program code generated based on the information recorded by the recording unit. For example, the providing unit can provide the user with the generated program code, allowing the user to quickly check the code. The providing unit can also evaluate the quality of the generated program code and provide feedback to the user. Furthermore, the providing unit can display the change history of the generated program code, allowing the user to easily understand the changes. As a result, the system for interacting with the generation AI according to the embodiment can reduce the burden on the user and improve the accuracy of the generation AI.
[0030] The analysis unit can analyze the generated program code and detect errors based on general coding rules and known bug patterns. General coding rules include, for example, naming rules, code formatting, and comment writing methods. The analysis unit can, for example, detect variable names and function names that do not follow naming rules. The analysis unit can also detect areas where the code format is not consistent. The analysis unit can also detect areas where comments are missing or inappropriate. Known bug patterns include, for example, specific code patterns and known vulnerabilities. The analysis unit can detect bugs based on, for example, specific code patterns. The analysis unit can also detect code containing known vulnerabilities. This makes it possible to improve the quality of program code by detecting errors based on general coding rules and known bug patterns.
[0031] The instruction unit can communicate details of the detected error to the generation AI and provide specific instructions for correction. Specific correction instructions include, for example, the part of the code to be changed, the correction method, and the reason for the correction. For example, the instruction unit can identify the part where the error occurred and instruct the AI to correct the code in that part. The instruction unit can also provide specific instructions for correction and explain how the code should be changed to resolve the error. Furthermore, the instruction unit can clarify the reason for the correction and explain why the correction is necessary. By providing specific correction instructions, the accuracy of correction by the generation AI can be improved.
[0032] The recording unit records the history of interactions with the generation AI and can utilize this information for subsequent program code generation. The interaction history includes, for example, the content of the interaction, the date and time, and the elements involved. The recording unit can, for example, record the content of interactions with the generation AI in detail and utilize this information for subsequent program code generation. The recording unit can also record the date and time of interactions, making it easy to search for interactions within a specific period. Furthermore, the recording unit can record the elements involved in interactions and determine which elements performed what interactions. In this way, by utilizing the history of interactions with the generation AI, the accuracy of subsequent program code generation can be improved.
[0033] The providing unit can provide the generated program code to the user. Specific methods of providing the code include, for example, a file format, a means of providing the code (email, download link, etc.), and a timing of providing the code. For example, the providing unit can provide the generated program code to the user in a specific file format. The providing unit can also send the generated program code by email or provide a download link. Furthermore, the providing unit can provide the generated program code in real time. This allows the user to quickly check the code by providing the generated program code to the user.
[0034] During analysis, the analysis unit can simulate the execution environment of the program code to detect environment-dependent errors. Methods for simulating the execution environment include, for example, setting up a virtual environment, reproducing dependencies, and emulating a specific OS or hardware. For example, the analysis unit can simulate the program code in a different OS environment to detect errors that occur only in a specific OS. The analysis unit can also simulate the program code with a different version of a library to detect compatibility issues. Furthermore, the analysis unit can simulate the program code in a different hardware environment to detect errors that occur only in specific hardware. In this way, by simulating the execution environment, environment-dependent errors can be detected in advance.
[0035] During analysis, the analysis unit can evaluate the performance of the program code and make optimization suggestions. Criteria for evaluating performance include, for example, execution time, memory usage, and CPU usage. The analysis unit can, for example, evaluate the execution speed of the program code, identify bottlenecks, and make optimization suggestions. The analysis unit can also evaluate the memory usage of the program code, detect memory leaks and excessive memory usage, and make optimization suggestions. Furthermore, the analysis unit can evaluate the CPU usage of the program code, identify unnecessary calculations and inefficient algorithms, and make optimization suggestions. In this way, by evaluating the performance of the program code and making optimization suggestions, the efficiency of the code can be improved.
[0036] During analysis, the analysis unit can evaluate the security risk of the program code and detect potential vulnerabilities. Methods for evaluating security risks include, for example, vulnerability scanning, code review, and penetration testing. The analysis unit can, for example, evaluate the input validation of the program code and detect SQL injection and cross-site scripting vulnerabilities. The analysis unit can also evaluate the authentication and authorization functions of the program code and detect the risk of unauthorized access. Furthermore, the analysis unit can evaluate the data encryption function of the program code and detect encryption flaws or weak encryption algorithms. This allows the security of the code to be improved by evaluating security risks and detecting potential vulnerabilities.
[0037] During analysis, the analysis unit can analyze comments and documentation in the program code and provide information that helps understand the code. Methods for analyzing comments and documentation include, for example, the comment format, the type of documentation, and the analysis criteria. For example, the analysis unit can analyze comments in the program code and automatically extract and display the purpose and usage of functions and classes. The analysis unit can also analyze documentation in the program code and provide related explanations and usage examples. Furthermore, the analysis unit can detect missing comments and documentation in the program code and suggest areas that need to be added. In this way, analyzing comments and documentation can provide information that helps understand the code.
[0038] During analysis, the analysis unit can refer to the version history of the program code and identify the cause of the error based on changes. Methods for referring to the version history include, for example, a change history, a commit message, a version control system, and the like. For example, the analysis unit can analyze the version history of the program code and identify the cause of the error based on recent changes. The analysis unit can also compare the version history of the program code and identify differences between a version in which an error occurred and a version that was working properly. Furthermore, the analysis unit can refer to the version history of the program code and verify whether a specific change is the cause of the error. This makes it easier to identify the cause of the error by referring to the version history.
[0039] During analysis, the analysis unit can analyze the dependencies of the program code and evaluate the compatibility of external libraries and modules. Methods for analyzing dependencies include, for example, methods for visualizing the relationships between external libraries and modules, and methods for visualizing the dependencies. The analysis unit can, for example, analyze the dependencies of the program code and evaluate the version compatibility of external libraries. The analysis unit can also analyze the dependencies of the program code and evaluate whether a specific module conflicts with another module. Furthermore, the analysis unit can analyze the dependencies of the program code and evaluate the impact that an update to an external library has on the program code. In this way, the compatibility of external libraries and modules can be evaluated by analyzing the dependencies.
[0040] When issuing a command, the instruction unit can determine the priority of correction based on the severity of the error. Criteria for evaluating the severity of the error include, for example, the impact on the system, the difficulty of correction, and the impact on the user. The instruction unit can, for example, instruct to correct critical errors with the highest priority. The instruction unit can also instruct to correct medium-level errors with the next highest priority. Furthermore, the instruction unit can also instruct to correct minor errors last. In this way, by determining the priority of correction based on the severity of the error, important errors can be corrected with priority.
[0041] When instructed, the instruction unit can apply different correction algorithms depending on the location of the error. The correction algorithm includes, for example, a correction method for a specific error and criteria for selecting the algorithm. For example, the instruction unit can instruct the system to add appropriate validation logic to an input validation error. The instruction unit can also instruct the system to apply a secure authentication algorithm to an authentication error. Furthermore, the instruction unit can instruct the system to optimize memory management to a memory error. This allows for efficient correction by applying different correction algorithms depending on the location of the error.
[0042] When issuing an instruction, the instruction unit can improve the accuracy of the correction instruction by referring to past correction history. The past correction history includes, for example, the content of the correction, the result of the correction, and the method of saving the history. For example, if a similar error occurred in the past, the instruction unit can issue an instruction by referring to that correction method. The instruction unit can also select the most effective correction method from the past correction history and issue an instruction. Furthermore, the instruction unit can analyze the past correction history and issue an instruction by prioritizing a method with a high success rate for correction. In this way, by referring to the past correction history, the accuracy of the correction instruction can be improved.
[0043] When instructed, the instruction unit can determine the priority of correction based on the frequency of error occurrence. Criteria for evaluating the frequency of error occurrence include, for example, the number of times an error appears, the rate of occurrence within a specific period, etc. The instruction unit can, for example, instruct to give the highest priority to correcting errors that occur frequently. The instruction unit can also instruct to give the next highest priority to correcting errors that occur with a medium frequency. Furthermore, the instruction unit can also instruct to correct errors that occur rarely last. In this way, by determining the priority of correction based on the frequency of error occurrence, it is possible to give priority to correcting frequently occurring errors.
[0044] When issuing an instruction, the instruction unit can adjust the order of corrections based on the relevance of the errors. Criteria for evaluating the relevance of the errors include, for example, the causal relationship between the errors, a common cause, and the scope of the impact. For example, the instruction unit can instruct to correct related errors together. The instruction unit can also instruct to correct errors that have dependencies in an orderly manner. Furthermore, the instruction unit can analyze the relevance of the errors and propose the most efficient order of corrections. As a result, adjusting the order of corrections based on the relevance of the errors enables efficient corrections.
[0045] When giving instructions, the instruction unit can adjust the use of technical terms in the correction instructions according to the user's level of expertise. Criteria for evaluating the user's level of expertise include, for example, the user's work history, past project experience, and technical skill set. For example, the instruction unit can give correction instructions to a novice user in simple language, avoiding technical terms. The instruction unit can also give correction instructions to an intermediate user using technical terms appropriately. Furthermore, the instruction unit can give detailed correction instructions to an advanced user using a lot of technical terms. In this way, by adjusting the use of technical terms in the correction instructions according to the user's level of expertise, it is possible to provide correction instructions that are easy for the user to understand.
[0046] When recording, the recording unit can organize the history of interactions with the generation AI in chronological order to improve searchability. Methods for organizing the history in chronological order include, for example, adding timestamps and creating time series graphs. The recording unit can, for example, organize the history of interactions with the generation AI in chronological order, with the most recent interactions displayed at the top. The recording unit can also organize the history of interactions with the generation AI in chronological order, making it easy to search for interactions within a specific period of time. Furthermore, the recording unit can organize the history of interactions with the generation AI in chronological order and highlight important interactions. In this way, organizing the history of interactions in chronological order improves searchability, allowing necessary information to be found quickly.
[0047] When recording, the recording unit can classify the history of interactions with the generation AI by category to make it easier to analyze. Methods of categorizing include, for example, type of error, content of correction, and content of interaction. For example, the recording unit can classify the history of interactions with the generation AI by type of error, making it possible to easily search for interactions regarding a specific error. The recording unit can also classify the history of interactions with the generation AI by type of correction, making it possible to easily search for interactions regarding a specific correction. Furthermore, the recording unit can classify the history of interactions with the generation AI by project, making it possible to easily search for interactions regarding a specific project. In this way, by classifying the history of interactions by category, it is possible to easily search for information regarding a specific error and how to correct it.
[0048] The recording unit can visualize the history of interactions with the generating AI during recording, allowing the user to easily understand it. Visualization methods include, for example, graph display, chart creation, and the use of a dashboard. The recording unit can visualize the history of interactions with the generating AI, for example, in a timeline format, allowing the user to intuitively understand the flow of interactions. The recording unit can also visualize the history of interactions with the generating AI in graphs or charts, allowing the user to visually grasp the frequency of errors and the progress of corrections. Furthermore, the recording unit can visualize the history of interactions with the generating AI in a mind map format, allowing the user to easily understand the relevance of interactions. In this way, visualizing the history of interactions makes it easier for the user to intuitively understand.
[0049] During recording, the recording unit can compare the history of interactions with the generation AI with other projects to identify common problems. Methods for comparing with other projects include, for example, the size of the project, the technology used, and the type of error. For example, the recording unit can compare the history of interactions with the generation AI with other projects to identify common errors. The recording unit can also compare the history of interactions with the generation AI with other projects to identify common correction methods. Furthermore, the recording unit can compare the history of interactions with the generation AI with other projects to identify common areas for improvement. This makes it easier to identify common problems and find areas for improvement by comparing with other projects.
[0050] During recording, the recording unit can analyze the history of interactions with the generation AI and suggest improvements to the generation process for future generations. Improvements to the generation process include, for example, reviewing specific procedures, changing the tools used, and automating the process. For example, the recording unit can analyze the history of interactions with the generation AI and suggest improvements to prevent frequently occurring errors. The recording unit can also analyze the history of interactions with the generation AI and suggest improvements to improve the efficiency of corrections. Furthermore, the recording unit can analyze the history of interactions with the generation AI and suggest improvements to improve the quality of the entire generation process. In this way, by analyzing the history of interactions, it is possible to suggest improvements to the generation process for future generations.
[0051] The recording unit can statistically analyze the history of interactions with the generation AI during recording to evaluate the performance of the generation AI. Methods for statistical analysis include, for example, data collection methods, analysis techniques, and the use of statistical models. The recording unit can, for example, statistically analyze the history of interactions with the generation AI to evaluate the frequency of errors and the success rate of corrections. The recording unit can also statistically analyze the history of interactions with the generation AI to evaluate the response time and processing speed of the generation AI. Furthermore, the recording unit can statistically analyze the history of interactions with the generation AI to evaluate the overall performance of the generation AI. This makes it possible to evaluate the performance of the generation AI by statistically analyzing the history of interactions.
[0052] The providing unit can evaluate the quality of the program code at the time of providing it and provide feedback to the user. Criteria for evaluating the quality of the program code include, for example, code readability, efficiency, maintainability, etc. The providing unit can, for example, evaluate the quality of the program code and provide feedback on the readability and maintainability of the code. The providing unit can also evaluate the quality of the program code and provide feedback on the presence or absence of errors and security risks. Furthermore, the providing unit can evaluate the quality of the program code and provide feedback on the need for optimization and areas for improvement. In this way, by evaluating the quality of the program code and providing feedback, the quality of the code can be improved.
[0053] The providing unit can display the change history of the program code at the time of providing the program code, allowing the user to easily understand the changes. The method of displaying the change history includes, for example, the content of the change, the reason for the change, and the scope of the impact of the change. The providing unit can, for example, display the change history of the program code in chronological order, with the most recent change at the top. The providing unit can also display the change history of the program code in graphs or charts, allowing the frequency and content of changes to be visually understood. Furthermore, the providing unit can display the change history of the program code by project, allowing the user to easily understand the changes related to a specific project. In this way, by displaying the change history, the user can easily understand the changes.
[0054] The providing unit can display the test results of the program code at the time of providing the test results, allowing the user to check the operation of the code. Methods for displaying the test results include, for example, test case results, error logs, performance metrics, and the like. The providing unit can, for example, display the test results of the program code in a list, allowing the user to check the results of each test case. The providing unit can also display the test results of the program code in graphs or charts, allowing the user to visually understand the success rate and failure rate of the test. Furthermore, the providing unit can display the test results of the program code in detail, allowing the user to check the execution log and error messages of each test case. In this way, displaying the test results makes it easier for the user to check the operation of the code.
[0055] The providing unit can provide related documentation for the program code at the time of providing the code, making it easier for users to understand the code. Methods for providing related documentation include, for example, API documentation, design documents, and user manuals. The providing unit can, for example, automatically link related documentation for the program code to enable users to easily access the related documentation. The providing unit can also display related documentation for the program code in a list, making it easy for users to check the contents of each document. Furthermore, the providing unit can provide related documentation for the program code with a search function, making it possible to quickly find specific information. In this way, providing related documentation can make it easier for users to understand the code.
[0056] The providing unit can display the dependencies of the program code when providing the program code, allowing the user to check the compatibility of external libraries and modules. Methods for displaying the dependencies include, for example, relationships between external libraries and modules, and methods for visualizing the dependencies. The providing unit can, for example, display the dependencies of the program code in a list, allowing the user to check the versions of each library and module. The providing unit can also display the dependencies of the program code in a graph or chart, allowing the user to visually understand the dependency structure. Furthermore, the providing unit can display the dependencies of the program code in detail, allowing the user to check the compatibility of each library and module. In this way, displaying the dependencies makes it easier for the user to check the compatibility of external libraries and modules.
[0057] The providing unit can display a performance evaluation of the program code when providing the program code, allowing the user to determine the need for optimization. Performance evaluation criteria include, for example, execution time, memory usage, and CPU usage. The providing unit can, for example, display a list of the performance evaluation of the program code, allowing the user to check the results of each evaluation item. The providing unit can also display the performance evaluation of the program code in graphs or charts, allowing the user to visually grasp performance trends. Furthermore, the providing unit can display the performance evaluation of the program code in detail, allowing the user to check the specific results and areas for improvement for each evaluation item. In this way, displaying the performance evaluation can make it easier for the user to determine the need for optimization.
[0058] The system according to the embodiment is not limited to the above-described example, and various modifications are possible, for example, as follows.
[0059] The analysis unit can evaluate the security risks of the generated program code and detect potential vulnerabilities. For example, the analysis unit can evaluate the input validation of the code and detect SQL injection and cross-site scripting vulnerabilities. The analysis unit can also evaluate authentication and authorization functions and detect the risk of unauthorized access. Furthermore, the analysis unit can evaluate data encryption functions and detect encryption flaws or weak encryption algorithms. This allows the security of the code to be improved by evaluating security risks and detecting potential vulnerabilities.
[0060] The recording unit can compare the history of interactions with the generative AI with other projects to identify common problems. For example, it can compare the history of interactions with the generative AI with other projects to identify common errors. It can also compare the history of interactions with the generative AI with other projects to identify common correction methods. It can also compare the history of interactions with the generative AI with other projects to identify common areas for improvement. This makes it easier to identify common problems and find areas for improvement by comparing with other projects.
[0061] The analysis unit can evaluate the performance of the generated program code and make optimization suggestions. For example, it can evaluate the execution speed of the program code, identify bottlenecks, and make optimization suggestions. It can also evaluate the memory usage of the program code, detect memory leaks and excessive memory usage, and make optimization suggestions. It can also evaluate the CPU usage of the program code, identify wasteful calculations and inefficient algorithms, and make optimization suggestions. In this way, by evaluating the performance of the program code and making optimization suggestions, it is possible to improve the efficiency of the code.
[0062] When instructed, the instruction unit can apply different correction algorithms depending on the location of the error. For example, it can instruct to add appropriate validation logic to an input validation error. It can also instruct to apply a secure authentication algorithm to an authentication error. It can also instruct to optimize memory management to a memory error. This allows for efficient correction by applying different correction algorithms depending on the location of the error.
[0063] The providing unit can evaluate the quality of the program code at the time of providing it and provide feedback to the user. For example, it can evaluate the quality of the program code and provide feedback on the readability and maintainability of the code. It can also evaluate the quality of the program code and provide feedback on the presence or absence of errors and security risks. It can also evaluate the quality of the program code and provide feedback on the need for optimization and areas for improvement. In this way, by evaluating the quality of the program code and providing feedback, it is possible to improve the quality of the code.
[0064] The recording unit can visualize the history of interactions with the generation AI during recording, allowing the user to easily understand. For example, the history of interactions with the generation AI can be visualized in a timeline format, allowing the user to intuitively understand the flow of interactions. The history of interactions with the generation AI can also be visualized in graphs or charts, allowing the user to visually grasp the frequency of errors and the progress of corrections. Furthermore, the history of interactions with the generation AI can be visualized in a mind map format, allowing the user to easily understand the relevance of interactions. In this way, visualizing the history of interactions makes it easier for the user to intuitively understand.
[0065] The processing flow of the first embodiment will be briefly explained below.
[0066] Step 1: The analysis unit analyzes the generated program code. For example, the analysis unit analyzes the generated program code based on general coding rules and known bug patterns to detect errors. The analysis unit can also simulate the execution environment of the generated program code to detect environment-dependent errors. Furthermore, the analysis unit can evaluate the performance of the generated program code and make optimization suggestions. Step 2: The instruction unit instructs the generation AI to make corrections based on the errors detected by the analysis unit. For example, the instruction unit may communicate details of the detected errors to the generation AI and provide specific correction instructions. The instruction unit may also determine the priority of corrections based on the severity of the errors. Furthermore, the instruction unit may refer to past correction history to improve the accuracy of correction instructions. Step 3: The recording unit records the interactions with the generation AI performed by the instruction unit. For example, the recording unit organizes the history of interactions with the generation AI in chronological order to improve searchability. The recording unit can also categorize the history of interactions with the generation AI to make it easier to analyze. Furthermore, the recording unit can statistically analyze the history of interactions with the generation AI to evaluate the performance of the generation AI. Step 4: The providing unit provides the generated program code to the user based on the information recorded by the recording unit. For example, the providing unit provides the generated program code to the user, allowing the user to quickly check the code. The providing unit can also evaluate the quality of the generated program code and provide feedback to the user. Furthermore, the providing unit can display a change history of the generated program code, allowing the user to easily understand the changes.
[0067] (Example 2) A system according to an embodiment of the present invention reduces the burden on users and improves the accuracy of the generation AI by systematizing interaction with the generation AI. In this system, a user requests the generation AI to generate program code, and the generation AI generates the program code based on the input requirements. The generated program code is automatically verified by the system, and if an error or defect is discovered, the system automatically requests the generation AI to make corrections. The generation AI corrects the program code based on the correction request and regenerates it. This process is repeated until the error or defect is resolved. Furthermore, the system records the history of interactions with the generation AI and uses this information for subsequent program code generation. This reduces the time and effort required for users to interact with the generation AI and enables efficient program code generation. This also contributes to improving the accuracy of the generation AI, enabling the generation of higher-quality program code. This reduces the burden on users and improves the accuracy of the generation AI. For example, when a user requests the generation AI to generate program code, the system automatically manages interactions with the generation AI and repeatedly requests corrections until the error or defect is resolved. This reduces the time and effort required for users to interact with the generation AI and enables efficient program code generation. It also contributes to improving the accuracy of the generation AI, making it possible to generate higher quality program code.
[0068] A system for interacting with a generation AI according to an embodiment includes an analysis unit, an instruction unit, a recording unit, and a providing unit. The analysis unit analyzes generated program code. For example, the analysis unit may analyze the generated program code based on general coding rules and known bug patterns to detect errors. The analysis unit may also simulate the execution environment of the generated program code to detect environment-dependent errors. The analysis unit may also evaluate the performance of the generated program code and suggest optimizations. The instruction unit instructs the generation AI to make corrections based on the errors detected by the analysis unit. For example, the instruction unit may communicate details of the detected errors to the generation AI and provide specific correction instructions. The instruction unit may also determine the priority of corrections based on the severity of the errors. The instruction unit may also improve the accuracy of correction instructions by referring to past correction history. The recording unit records interactions with the generation AI performed by the instruction unit. For example, the recording unit may organize the history of interactions with the generation AI in chronological order to improve searchability. The recording unit may also categorize the history of interactions with the generation AI to facilitate analysis. Furthermore, the recording unit can statistically analyze the history of interactions with the generation AI and evaluate the performance of the generation AI. The providing unit provides the user with program code generated based on the information recorded by the recording unit. For example, the providing unit can provide the user with the generated program code, allowing the user to quickly check the code. The providing unit can also evaluate the quality of the generated program code and provide feedback to the user. Furthermore, the providing unit can display the change history of the generated program code, allowing the user to easily understand the changes. As a result, the system for interacting with the generation AI according to the embodiment can reduce the burden on the user and improve the accuracy of the generation AI.
[0069] The analysis unit can analyze the generated program code and detect errors based on general coding rules and known bug patterns. General coding rules include, for example, naming rules, code formatting, and comment writing methods. The analysis unit can, for example, detect variable names and function names that do not follow naming rules. The analysis unit can also detect areas where the code format is not consistent. The analysis unit can also detect areas where comments are missing or inappropriate. Known bug patterns include, for example, specific code patterns and known vulnerabilities. The analysis unit can detect bugs based on, for example, specific code patterns. The analysis unit can also detect code containing known vulnerabilities. This makes it possible to improve the quality of program code by detecting errors based on general coding rules and known bug patterns.
[0070] The instruction unit can communicate details of the detected error to the generation AI and provide specific instructions for correction. Specific correction instructions include, for example, the part of the code to be changed, the correction method, and the reason for the correction. For example, the instruction unit can identify the part where the error occurred and instruct the AI to correct the code in that part. The instruction unit can also provide specific instructions for correction and explain how the code should be changed to resolve the error. Furthermore, the instruction unit can clarify the reason for the correction and explain why the correction is necessary. By providing specific correction instructions, the accuracy of correction by the generation AI can be improved.
[0071] The recording unit records the history of interactions with the generation AI and can utilize this information for subsequent program code generation. The interaction history includes, for example, the content of the interaction, the date and time, and the elements involved. The recording unit can, for example, record the content of interactions with the generation AI in detail and utilize this information for subsequent program code generation. The recording unit can also record the date and time of interactions, making it easy to search for interactions within a specific period. Furthermore, the recording unit can record the elements involved in interactions and determine which elements performed what interactions. In this way, by utilizing the history of interactions with the generation AI, the accuracy of subsequent program code generation can be improved.
[0072] The providing unit can provide the generated program code to the user. Specific methods of providing the code include, for example, a file format, a means of providing the code (email, download link, etc.), and a timing of providing the code. For example, the providing unit can provide the generated program code to the user in a specific file format. The providing unit can also send the generated program code by email or provide a download link. Furthermore, the providing unit can provide the generated program code in real time. This allows the user to quickly check the code by providing the generated program code to the user.
[0073] The analysis unit can estimate the user's emotions and adjust the display method of the analysis results based on the estimated user emotions. Methods for estimating the user's emotions include, for example, facial expression recognition, voice analysis, and questionnaire results. For example, the analysis unit can capture the user's facial expressions with a camera and estimate the emotions using facial expression recognition technology. The analysis unit can also record the user's voice and estimate the emotions using voice analysis technology. Furthermore, the analysis unit can conduct a questionnaire with the user and estimate the emotions based on the results. Methods for displaying the analysis results include, for example, color coding, graph display, and text display. For example, if the user is feeling stressed, the analysis unit can display the analysis results concisely, allowing the user to check detailed information later. If the user is relaxed, the analysis unit can display the analysis results in detail and carefully explain the cause of errors and how to correct them. Furthermore, if the user is in a hurry, the analysis unit can highlight and display only the most important errors to enable quick correction. This allows the user's stress to be reduced by adjusting the display method of the analysis results according to the user's emotions.
[0074] During analysis, the analysis unit can simulate the execution environment of the program code to detect environment-dependent errors. Methods for simulating the execution environment include, for example, setting up a virtual environment, reproducing dependencies, and emulating a specific OS or hardware. For example, the analysis unit can simulate the program code in a different OS environment to detect errors that occur only in a specific OS. The analysis unit can also simulate the program code with a different version of a library to detect compatibility issues. Furthermore, the analysis unit can simulate the program code in a different hardware environment to detect errors that occur only in specific hardware. In this way, by simulating the execution environment, environment-dependent errors can be detected in advance.
[0075] During analysis, the analysis unit can evaluate the performance of the program code and make optimization suggestions. Criteria for evaluating performance include, for example, execution time, memory usage, and CPU usage. The analysis unit can, for example, evaluate the execution speed of the program code, identify bottlenecks, and make optimization suggestions. The analysis unit can also evaluate the memory usage of the program code, detect memory leaks and excessive memory usage, and make optimization suggestions. Furthermore, the analysis unit can evaluate the CPU usage of the program code, identify unnecessary calculations and inefficient algorithms, and make optimization suggestions. In this way, by evaluating the performance of the program code and making optimization suggestions, the efficiency of the code can be improved.
[0076] During analysis, the analysis unit can evaluate the security risk of the program code and detect potential vulnerabilities. Methods for evaluating security risks include, for example, vulnerability scanning, code review, and penetration testing. The analysis unit can, for example, evaluate the input validation of the program code and detect SQL injection and cross-site scripting vulnerabilities. The analysis unit can also evaluate the authentication and authorization functions of the program code and detect the risk of unauthorized access. Furthermore, the analysis unit can evaluate the data encryption function of the program code and detect encryption flaws or weak encryption algorithms. This allows the security of the code to be improved by evaluating security risks and detecting potential vulnerabilities.
[0077] The analysis unit can estimate the user's emotions and determine the analysis priority based on the estimated user emotions. Methods for estimating the user's emotions include, for example, facial expression recognition, voice analysis, and questionnaire results. For example, the analysis unit can capture the user's facial expressions with a camera and estimate the emotion using facial expression recognition technology. The analysis unit can also record the user's voice and estimate the emotion using voice analysis technology. Furthermore, the analysis unit can conduct a user survey and estimate the emotion based on the results. Criteria for determining the analysis priority include, for example, the severity of the error, the user's request, and the system status. For example, if the user is stressed, the analysis unit can prioritize analyzing the most important errors so that they can be quickly corrected. Furthermore, if the user is relaxed, the analysis unit can analyze all errors equally and provide detailed information. Furthermore, if the user is in a hurry, the analysis unit can prioritize analyzing only critical errors so that they can be quickly addressed. Thus, by determining the analysis priority based on the user's emotions, the user's stress can be reduced.
[0078] During analysis, the analysis unit can analyze comments and documentation in the program code and provide information that helps understand the code. Methods for analyzing comments and documentation include, for example, the comment format, the type of documentation, and the analysis criteria. For example, the analysis unit can analyze comments in the program code and automatically extract and display the purpose and usage of functions and classes. The analysis unit can also analyze documentation in the program code and provide related explanations and usage examples. Furthermore, the analysis unit can detect missing comments and documentation in the program code and suggest areas that need to be added. In this way, analyzing comments and documentation can provide information that helps understand the code.
[0079] During analysis, the analysis unit can refer to the version history of the program code and identify the cause of the error based on changes. Methods for referring to the version history include, for example, a change history, a commit message, a version control system, and the like. For example, the analysis unit can analyze the version history of the program code and identify the cause of the error based on recent changes. The analysis unit can also compare the version history of the program code and identify differences between a version in which an error occurred and a version that was working properly. Furthermore, the analysis unit can refer to the version history of the program code and verify whether a specific change is the cause of the error. This makes it easier to identify the cause of the error by referring to the version history.
[0080] During analysis, the analysis unit can analyze the dependencies of the program code and evaluate the compatibility of external libraries and modules. Methods for analyzing dependencies include, for example, methods for visualizing the relationships between external libraries and modules, and methods for visualizing the dependencies. The analysis unit can, for example, analyze the dependencies of the program code and evaluate the version compatibility of external libraries. The analysis unit can also analyze the dependencies of the program code and evaluate whether a specific module conflicts with another module. Furthermore, the analysis unit can analyze the dependencies of the program code and evaluate the impact that an update to an external library has on the program code. In this way, the compatibility of external libraries and modules can be evaluated by analyzing the dependencies.
[0081] The instruction unit can estimate the user's emotions and adjust the way in which correction instructions are expressed based on the estimated user's emotions. The way in which correction instructions are expressed can include, for example, the tone of the text, the words used, and the level of detail of the instructions. For example, if the user is feeling stressed, the instruction unit can provide concise and clear correction instructions. Furthermore, if the user is relaxed, the instruction unit can provide detailed correction instructions and carefully explain how to correct the text. Furthermore, if the user is in a hurry, the instruction unit can highlight only the most important parts to correct. In this way, by adjusting the way in which correction instructions are expressed according to the user's emotions, it is possible to reduce the user's stress.
[0082] When issuing a command, the instruction unit can determine the priority of correction based on the severity of the error. Criteria for evaluating the severity of the error include, for example, the impact on the system, the difficulty of correction, and the impact on the user. The instruction unit can, for example, instruct to correct critical errors with the highest priority. The instruction unit can also instruct to correct medium-level errors with the next highest priority. Furthermore, the instruction unit can also instruct to correct minor errors last. In this way, by determining the priority of correction based on the severity of the error, important errors can be corrected with priority.
[0083] When instructed, the instruction unit can apply different correction algorithms depending on the location of the error. The correction algorithm includes, for example, a correction method for a specific error and criteria for selecting the algorithm. For example, the instruction unit can instruct the system to add appropriate validation logic to an input validation error. The instruction unit can also instruct the system to apply a secure authentication algorithm to an authentication error. Furthermore, the instruction unit can instruct the system to optimize memory management to a memory error. This allows for efficient correction by applying different correction algorithms depending on the location of the error.
[0084] When issuing an instruction, the instruction unit can improve the accuracy of the correction instruction by referring to past correction history. The past correction history includes, for example, the content of the correction, the result of the correction, and the method of saving the history. For example, if a similar error occurred in the past, the instruction unit can issue an instruction by referring to that correction method. The instruction unit can also select the most effective correction method from the past correction history and issue an instruction. Furthermore, the instruction unit can analyze the past correction history and issue an instruction by prioritizing a method with a high success rate for correction. In this way, by referring to the past correction history, the accuracy of the correction instruction can be improved.
[0085] The instruction unit can estimate the user's emotions and adjust the level of detail of the correction instructions based on the estimated user's emotions. The level of detail of the correction instructions can include, for example, the specificity of the instructions, the length of the explanation, and the level of technical terminology used. For example, if the user is feeling stressed, the instruction unit can provide concise and clear correction instructions. Furthermore, if the user is relaxed, the instruction unit can provide detailed correction instructions and carefully explain how to correct the errors. Furthermore, if the user is in a hurry, the instruction unit can highlight only the most important correction points. In this way, by adjusting the level of detail of the correction instructions according to the user's emotions, it is possible to reduce the user's stress.
[0086] When instructed, the instruction unit can determine the priority of correction based on the frequency of error occurrence. Criteria for evaluating the frequency of error occurrence include, for example, the number of times an error appears, the rate of occurrence within a specific period, etc. The instruction unit can, for example, instruct to give the highest priority to correcting errors that occur frequently. The instruction unit can also instruct to give the next highest priority to correcting errors that occur with a medium frequency. Furthermore, the instruction unit can also instruct to correct errors that occur rarely last. In this way, by determining the priority of correction based on the frequency of error occurrence, it is possible to give priority to correcting frequently occurring errors.
[0087] When issuing an instruction, the instruction unit can adjust the order of corrections based on the relevance of the errors. Criteria for evaluating the relevance of the errors include, for example, the causal relationship between the errors, a common cause, and the scope of the impact. For example, the instruction unit can instruct to correct related errors together. The instruction unit can also instruct to correct errors that have dependencies in an orderly manner. Furthermore, the instruction unit can analyze the relevance of the errors and propose the most efficient order of corrections. As a result, adjusting the order of corrections based on the relevance of the errors enables efficient corrections.
[0088] When giving instructions, the instruction unit can adjust the use of technical terms in the correction instructions according to the user's level of expertise. Criteria for evaluating the user's level of expertise include, for example, the user's work history, past project experience, and technical skill set. For example, the instruction unit can give correction instructions to a novice user in simple language, avoiding technical terms. The instruction unit can also give correction instructions to an intermediate user using technical terms appropriately. Furthermore, the instruction unit can give detailed correction instructions to an advanced user using a lot of technical terms. In this way, by adjusting the use of technical terms in the correction instructions according to the user's level of expertise, it is possible to provide correction instructions that are easy for the user to understand.
[0089] The recording unit can estimate the user's emotions and adjust the display method of the records based on the estimated user's emotions. The display method of the records can include, for example, text display, graph display, color coding, etc. For example, if the user is feeling stressed, the recording unit can display the records briefly, allowing the user to check detailed information later. Furthermore, if the user is relaxed, the recording unit can display the records in detail, carefully explaining the history of interactions. Furthermore, if the user is in a hurry, the recording unit can highlight and display only the most important interactions. This allows the user's stress to be reduced by adjusting the display method of the records according to the user's emotions.
[0090] When recording, the recording unit can organize the history of interactions with the generation AI in chronological order to improve searchability. Methods for organizing the history in chronological order include, for example, adding timestamps and creating time series graphs. The recording unit can, for example, organize the history of interactions with the generation AI in chronological order, with the most recent interactions displayed at the top. The recording unit can also organize the history of interactions with the generation AI in chronological order, making it easy to search for interactions within a specific period of time. Furthermore, the recording unit can organize the history of interactions with the generation AI in chronological order and highlight important interactions. In this way, organizing the history of interactions in chronological order improves searchability, allowing necessary information to be found quickly.
[0091] When recording, the recording unit can classify the history of interactions with the generation AI by category to make it easier to analyze. Methods of categorizing include, for example, type of error, content of correction, and content of interaction. For example, the recording unit can classify the history of interactions with the generation AI by type of error, making it possible to easily search for interactions regarding a specific error. The recording unit can also classify the history of interactions with the generation AI by type of correction, making it possible to easily search for interactions regarding a specific correction. Furthermore, the recording unit can classify the history of interactions with the generation AI by project, making it possible to easily search for interactions regarding a specific project. In this way, by classifying the history of interactions by category, it is possible to easily search for information regarding a specific error and how to correct it.
[0092] The recording unit can visualize the history of interactions with the generating AI during recording, allowing the user to easily understand it. Visualization methods include, for example, graph display, chart creation, and the use of a dashboard. The recording unit can visualize the history of interactions with the generating AI, for example, in a timeline format, allowing the user to intuitively understand the flow of interactions. The recording unit can also visualize the history of interactions with the generating AI in graphs or charts, allowing the user to visually grasp the frequency of errors and the progress of corrections. Furthermore, the recording unit can visualize the history of interactions with the generating AI in a mind map format, allowing the user to easily understand the relevance of interactions. In this way, visualizing the history of interactions makes it easier for the user to intuitively understand.
[0093] The recording unit can estimate the user's emotions and determine the recording priority based on the estimated user emotions. Criteria for determining the recording priority include, for example, the importance of information, the user's requests, and the system status. For example, when the user is feeling stressed, the recording unit can prioritize recording the most important interactions and allow detailed information to be checked later. Furthermore, when the user is relaxed, the recording unit can record all interactions equally and provide detailed information. Furthermore, when the user is in a hurry, the recording unit can prioritize recording only critical interactions so that a quick response can be made. In this way, by determining the recording priority according to the user's emotions, important information can be preferentially recorded.
[0094] During recording, the recording unit can compare the history of interactions with the generation AI with other projects to identify common problems. Methods for comparing with other projects include, for example, the size of the project, the technology used, and the type of error. For example, the recording unit can compare the history of interactions with the generation AI with other projects to identify common errors. The recording unit can also compare the history of interactions with the generation AI with other projects to identify common correction methods. Furthermore, the recording unit can compare the history of interactions with the generation AI with other projects to identify common areas for improvement. This makes it easier to identify common problems and find areas for improvement by comparing with other projects.
[0095] During recording, the recording unit can analyze the history of interactions with the generation AI and suggest improvements to the generation process for future generations. Improvements to the generation process include, for example, reviewing specific procedures, changing the tools used, and automating the process. For example, the recording unit can analyze the history of interactions with the generation AI and suggest improvements to prevent frequently occurring errors. The recording unit can also analyze the history of interactions with the generation AI and suggest improvements to improve the efficiency of corrections. Furthermore, the recording unit can analyze the history of interactions with the generation AI and suggest improvements to improve the quality of the entire generation process. In this way, by analyzing the history of interactions, it is possible to suggest improvements to the generation process for future generations.
[0096] The recording unit can statistically analyze the history of interactions with the generation AI during recording to evaluate the performance of the generation AI. Methods for statistical analysis include, for example, data collection methods, analysis techniques, and the use of statistical models. The recording unit can, for example, statistically analyze the history of interactions with the generation AI to evaluate the frequency of errors and the success rate of corrections. The recording unit can also statistically analyze the history of interactions with the generation AI to evaluate the response time and processing speed of the generation AI. Furthermore, the recording unit can statistically analyze the history of interactions with the generation AI to evaluate the overall performance of the generation AI. This makes it possible to evaluate the performance of the generation AI by statistically analyzing the history of interactions.
[0097] The providing unit can estimate the user's emotions and adjust the display method of the program code to be provided based on the estimated user's emotions. The display method of the program code can include, for example, code formatting, color coding, and display of comments. For example, when the user is feeling stressed, the providing unit can display the program code concisely, allowing the user to check detailed information later. Furthermore, when the user is relaxed, the providing unit can display the program code in detail and provide detailed explanations and comments on the code. Furthermore, when the user is in a hurry, the providing unit can highlight and display only the most important parts to enable quick understanding. Thus, by adjusting the display method of the program code according to the user's emotions, the user's stress can be reduced.
[0098] The providing unit can evaluate the quality of the program code at the time of providing it and provide feedback to the user. Criteria for evaluating the quality of the program code include, for example, code readability, efficiency, maintainability, etc. The providing unit can, for example, evaluate the quality of the program code and provide feedback on the readability and maintainability of the code. The providing unit can also evaluate the quality of the program code and provide feedback on the presence or absence of errors and security risks. Furthermore, the providing unit can evaluate the quality of the program code and provide feedback on the need for optimization and areas for improvement. In this way, by evaluating the quality of the program code and providing feedback, the quality of the code can be improved.
[0099] The providing unit can display the change history of the program code at the time of providing the program code, allowing the user to easily understand the changes. The method of displaying the change history includes, for example, the content of the change, the reason for the change, and the scope of the impact of the change. The providing unit can, for example, display the change history of the program code in chronological order, with the most recent change at the top. The providing unit can also display the change history of the program code in graphs or charts, allowing the frequency and content of changes to be visually understood. Furthermore, the providing unit can display the change history of the program code by project, allowing the user to easily understand the changes related to a specific project. In this way, by displaying the change history, the user can easily understand the changes.
[0100] The providing unit can display the test results of the program code at the time of providing the test results, allowing the user to check the operation of the code. Methods for displaying the test results include, for example, test case results, error logs, performance metrics, and the like. The providing unit can, for example, display the test results of the program code in a list, allowing the user to check the results of each test case. The providing unit can also display the test results of the program code in graphs or charts, allowing the user to visually understand the success rate and failure rate of the test. Furthermore, the providing unit can display the test results of the program code in detail, allowing the user to check the execution log and error messages of each test case. In this way, displaying the test results makes it easier for the user to check the operation of the code.
[0101] The providing unit can estimate the user's emotions and determine the priority of program code to be provided based on the estimated user's emotions. Criteria for determining the priority of program code include, for example, the importance of the code, the user's request, and the system status. For example, when the user is feeling stressed, the providing unit can provide the most important program code with priority, allowing the user to check detailed information later. Furthermore, when the user is relaxed, the providing unit can provide all program code equally and provide detailed information. Furthermore, when the user is in a hurry, the providing unit can provide only critical program code with priority, allowing for a quick response. In this way, by determining the priority of program code according to the user's emotions, important code can be provided with priority.
[0102] The providing unit can provide related documentation for the program code at the time of providing the code, making it easier for users to understand the code. Methods for providing related documentation include, for example, API documentation, design documents, and user manuals. The providing unit can, for example, automatically link related documentation for the program code to enable users to easily access the related documentation. The providing unit can also display related documentation for the program code in a list, making it easy for users to check the contents of each document. Furthermore, the providing unit can provide related documentation for the program code with a search function, making it possible to quickly find specific information. In this way, providing related documentation can make it easier for users to understand the code.
[0103] The providing unit can display the dependencies of the program code when providing the program code, allowing the user to check the compatibility of external libraries and modules. Methods for displaying the dependencies include, for example, relationships between external libraries and modules, and methods for visualizing the dependencies. The providing unit can, for example, display the dependencies of the program code in a list, allowing the user to check the versions of each library and module. The providing unit can also display the dependencies of the program code in a graph or chart, allowing the user to visually understand the dependency structure. Furthermore, the providing unit can display the dependencies of the program code in detail, allowing the user to check the compatibility of each library and module. In this way, displaying the dependencies makes it easier for the user to check the compatibility of external libraries and modules.
[0104] The providing unit can display a performance evaluation of the program code when providing the program code, allowing the user to determine the need for optimization. Performance evaluation criteria include, for example, execution time, memory usage, and CPU usage. The providing unit can, for example, display a list of the performance evaluation of the program code, allowing the user to check the results of each evaluation item. The providing unit can also display the performance evaluation of the program code in graphs or charts, allowing the user to visually grasp performance trends. Furthermore, the providing unit can display the performance evaluation of the program code in detail, allowing the user to check the specific results and areas for improvement for each evaluation item. In this way, displaying the performance evaluation can make it easier for the user to determine the need for optimization. === Hard Collateral 1-1 === Each of the multiple elements including the above-mentioned analysis unit, instruction unit, recording unit, and providing unit is realized, for example, by at least one of the smart device 14 and the data processing device 12. For example, the analysis unit is realized by the specific processing unit 290 of the data processing device 12 and analyzes the generated program code and detects errors. The instruction unit is realized, for example, by the specific processing unit 290 of the data processing device 12 and instructs the generation AI to make corrections based on the detected errors. The recording unit is realized, for example, by the control unit 46A of the smart device 14 and records interactions with the generation AI. The providing unit is realized, for example, by the control unit 46A of the smart device 14 and provides the generated program code to a user. === Hard Collateral 1-2 === Each of the multiple elements including the above-mentioned analysis unit, instruction unit, recording unit, and providing unit is realized, for example, by at least one of the smart glasses 214 and the data processing device 12. For example, the analysis unit is realized by the specific processing unit 290 of the data processing device 12 and analyzes the generated program code and detects errors. The instruction unit is realized, for example, by the specific processing unit 290 of the data processing device 12 and instructs the generation AI to make corrections based on the detected errors. The recording unit is realized, for example, by the control unit 46A of the smart glasses 214 and records interactions with the generation AI. The providing unit is realized, for example, by the control unit 46A of the smart glasses 214 and provides the generated program code to a user. === Hard Collateral 1-3 === Each of the multiple elements including the above-mentioned analysis unit, instruction unit, recording unit, and providing unit is realized, for example, by at least one of the headset type terminal 314 and the data processing device 12. For example, the analysis unit is realized by the specific processing unit 290 of the data processing device 12 and analyzes the generated program code and detects errors. The instruction unit is realized, for example, by the specific processing unit 290 of the data processing device 12 and instructs the generation AI to make corrections based on the detected errors. The recording unit is realized, for example, by the control unit 46A of the headset type terminal 314 and records interactions with the generation AI. The providing unit is realized, for example, by the control unit 46A of the headset type terminal 314 and provides the generated program code to the user. === Hard Collateral 1-4 === Each of the multiple elements including the above-mentioned analysis unit, instruction unit, recording unit, and providing unit is realized, for example, by at least one of the robot 414 and the data processing device 12. For example, the analysis unit is realized by the specific processing unit 290 of the data processing device 12 and analyzes the generated program code and detects errors. The instruction unit is realized, for example, by the specific processing unit 290 of the data processing device 12 and instructs the generation AI to make corrections based on the detected errors. The recording unit is realized, for example, by the control unit 46A of the robot 414 and records interactions with the generation AI. The providing unit is realized, for example, by the control unit 46A of the robot 414 and provides the generated program code to a user.
[0105] The system according to the embodiment is not limited to the above-described example, and various modifications are possible, for example, as follows.
[0106] The analysis unit can evaluate the security risks of the generated program code and detect potential vulnerabilities. For example, the analysis unit can evaluate the input validation of the code and detect SQL injection and cross-site scripting vulnerabilities. The analysis unit can also evaluate authentication and authorization functions and detect the risk of unauthorized access. Furthermore, the analysis unit can evaluate data encryption functions and detect encryption flaws or weak encryption algorithms. This allows the security of the code to be improved by evaluating security risks and detecting potential vulnerabilities.
[0107] The instruction unit can estimate the user's emotions and adjust the way in which correction instructions are expressed based on the estimated user's emotions. For example, if the user is feeling stressed, concise and clear correction instructions can be provided. If the user is relaxed, detailed correction instructions can be provided, carefully explaining how to correct the errors. Furthermore, if the user is in a hurry, only the most important corrections can be highlighted. In this way, by adjusting the way in which correction instructions are expressed based on the user's emotions, it is possible to reduce the user's stress.
[0108] The recording unit can compare the history of interactions with the generative AI with other projects to identify common problems. For example, it can compare the history of interactions with the generative AI with other projects to identify common errors. It can also compare the history of interactions with the generative AI with other projects to identify common correction methods. It can also compare the history of interactions with the generative AI with other projects to identify common areas for improvement. This makes it easier to identify common problems and find areas for improvement by comparing with other projects.
[0109] The providing unit can estimate the user's emotions and adjust the display method of the program code to be provided based on the estimated user's emotions. For example, if the user is feeling stressed, the program code can be displayed briefly, allowing the user to check detailed information later. If the user is relaxed, the program code can be displayed in detail, providing detailed explanations and comments on the code. Furthermore, if the user is in a hurry, only the most important parts can be highlighted to enable quick understanding. In this way, the display method of the program code can be adjusted according to the user's emotions, thereby reducing the user's stress.
[0110] The analysis unit can evaluate the performance of the generated program code and make optimization suggestions. For example, it can evaluate the execution speed of the program code, identify bottlenecks, and make optimization suggestions. It can also evaluate the memory usage of the program code, detect memory leaks and excessive memory usage, and make optimization suggestions. It can also evaluate the CPU usage of the program code, identify wasteful calculations and inefficient algorithms, and make optimization suggestions. In this way, by evaluating the performance of the program code and making optimization suggestions, it is possible to improve the efficiency of the code.
[0111] When instructed, the instruction unit can apply different correction algorithms depending on the location of the error. For example, it can instruct to add appropriate validation logic to an input validation error. It can also instruct to apply a secure authentication algorithm to an authentication error. It can also instruct to optimize memory management to a memory error. This allows for efficient correction by applying different correction algorithms depending on the location of the error.
[0112] The record unit can estimate the user's emotions and adjust the display method of the records based on the estimated user's emotions. For example, if the user is feeling stressed, the records can be displayed briefly, allowing the user to check detailed information later. If the user is relaxed, the records can be displayed in detail, carefully explaining the history of interactions. Furthermore, if the user is in a hurry, only the most important interactions can be highlighted. In this way, adjusting the display method of the records according to the user's emotions can reduce the user's stress.
[0113] The providing unit can evaluate the quality of the program code at the time of providing it and provide feedback to the user. For example, it can evaluate the quality of the program code and provide feedback on the readability and maintainability of the code. It can also evaluate the quality of the program code and provide feedback on the presence or absence of errors and security risks. It can also evaluate the quality of the program code and provide feedback on the need for optimization and areas for improvement. In this way, by evaluating the quality of the program code and providing feedback, it is possible to improve the quality of the code.
[0114] The analysis unit can estimate the user's emotions and determine the analysis priority based on the estimated user's emotions. For example, if the user is feeling stressed, the most important errors can be analyzed first, allowing them to be corrected quickly. Alternatively, if the user is relaxed, all errors can be analyzed equally and detailed information can be provided. Furthermore, if the user is in a hurry, only critical errors can be analyzed first, allowing them to be dealt with quickly. In this way, by determining the analysis priority according to the user's emotions, it is possible to reduce the user's stress.
[0115] The recording unit can visualize the history of interactions with the generation AI during recording, allowing the user to easily understand. For example, the history of interactions with the generation AI can be visualized in a timeline format, allowing the user to intuitively understand the flow of interactions. The history of interactions with the generation AI can also be visualized in graphs or charts, allowing the user to visually grasp the frequency of errors and the progress of corrections. Furthermore, the history of interactions with the generation AI can be visualized in a mind map format, allowing the user to easily understand the relevance of interactions. In this way, visualizing the history of interactions makes it easier for the user to intuitively understand.
[0116] The processing flow of the second embodiment will be briefly explained below.
[0117] Step 1: The analysis unit analyzes the generated program code. For example, the analysis unit analyzes the generated program code based on general coding rules and known bug patterns to detect errors. The analysis unit can also simulate the execution environment of the generated program code to detect environment-dependent errors. Furthermore, the analysis unit can evaluate the performance of the generated program code and make optimization suggestions. Step 2: The instruction unit instructs the generation AI to make corrections based on the errors detected by the analysis unit. For example, the instruction unit may communicate details of the detected errors to the generation AI and provide specific correction instructions. The instruction unit may also determine the priority of corrections based on the severity of the errors. Furthermore, the instruction unit may refer to past correction history to improve the accuracy of correction instructions. Step 3: The recording unit records the interactions with the generation AI performed by the instruction unit. For example, the recording unit organizes the history of interactions with the generation AI in chronological order to improve searchability. The recording unit can also categorize the history of interactions with the generation AI to make it easier to analyze. Furthermore, the recording unit can statistically analyze the history of interactions with the generation AI to evaluate the performance of the generation AI. Step 4: The providing unit provides the generated program code to the user based on the information recorded by the recording unit. For example, the providing unit provides the generated program code to the user, allowing the user to quickly check the code. The providing unit can also evaluate the quality of the generated program code and provide feedback to the user. Furthermore, the providing unit can display a change history of the generated program code, allowing the user to easily understand the changes.
[0118] The specific processing unit 290 transmits the result of the specific processing to the smart device 14. In the smart device 14, the control unit 46A causes the output device 40 to output the result of the specific processing. The microphone 38B acquires audio indicating a user input regarding the result of the specific processing. The control unit 46A transmits audio data indicating the user input acquired by the microphone 38B to the data processing device 12. In the data processing device 12, the specific processing unit 290 acquires the audio data.
[0119] The data generation model 58 is a so-called generative AI (Artificial Intelligence). An example of the data generation model 58 is ChatGPT (registered trademark) (Internet search engine).<URL: https: / / openai.com / blog / chatgpt> Examples of generative AIs include the data generation model 58, such as a neural network model (e.g., a neural network model), and a neural network model (e.g., a neural network model). The data generation model 58 is obtained by performing deep learning on a neural network. A prompt including an instruction is input to the data generation model 58, and inference data such as voice data indicating speech, text data indicating text, and image data indicating an image is also input to the data generation model 58. The data generation model 58 performs inference on the input inference data in accordance with the instruction indicated by the prompt and outputs the inference result in a data format such as voice data and text data. Here, inference refers to, for example, analysis, classification, prediction, and / or summarization. The specification processing unit 290 performs the above-mentioned specification processing using the data generation model 58. The data generation model 58 may be a fine-tuned model so as to output an inference result from a prompt that does not include an instruction. In this case, the data generation model 58 can output an inference result from a prompt that does not include an instruction. The data processing device 12 and the like include multiple types of data generation models 58, and the data generation model 58 includes AIs other than the generative AI. The AI other than the generative AI may be, for example, linear regression, logistic regression, decision tree, random forest, support vector machine (SVM), k-means clustering, convolutional neural network (CNN), recurrent neural network (RNN), generative adversarial network (GAN), or naive Bayes, and can perform various processes, but is not limited to these examples. The AI may also be an AI agent. When the processes of each of the above-mentioned parts are performed by AI, the processes may be performed in part or entirely by AI, but are not limited to these examples. The processes performed by AI, including the generative AI, may be replaced with rule-based processes.
[0120] Furthermore, the processing by the data processing system 10 described above is executed by the specific processing unit 290 of the data processing device 12 or the control unit 46A of the smart device 14, but may also be executed by the specific processing unit 290 of the data processing device 12 and the control unit 46A of the smart device 14. Furthermore, the specific processing unit 290 of the data processing device 12 acquires or collects information necessary for processing from the smart device 14 or an external device, and the smart device 14 acquires or collects information necessary for processing from the data processing device 12 or an external device.
[0121] The correspondence between each part and the device or control part is not limited to the example described above, and various modifications are possible.
[0122] [Second embodiment] FIG. 3 shows an example of the configuration of a data processing system 210 according to the second embodiment.
[0123] 3, the data processing system 210 includes the data processing device 12 and smart glasses 214. An example of the data processing device 12 is a server.
[0124] The data processing device 12 includes a computer 22, a database 24, and a communication I / F 26. The computer 22 includes a processor 28, a RAM 30, and a storage 32. The processor 28, RAM 30, and storage 32 are connected to a bus 34. The database 24 and the communication I / F 26 are also connected to the bus 34. The communication I / F 26 is connected to a network 54. Examples of the network 54 include a WAN and / or a LAN.
[0125] The smart glasses 214 include a computer 36, a microphone 238, a speaker 240, a camera 42, and a communication I / F 44. The computer 36 includes a processor 46, a RAM 48, and a storage 50. The processor 46, the RAM 48, and the storage 50 are connected to a bus 52. The microphone 238, the speaker 240, and the camera 42 are also connected to the bus 52.
[0126] The microphone 238 receives instructions and the like from the user by receiving voice uttered by the user. The microphone 238 captures the voice uttered by the user, converts the captured voice into audio data, and outputs it to the processor 46. The speaker 240 outputs audio according to instructions from the processor 46.
[0127] Camera 42 is a small digital camera equipped with an optical system including a lens, aperture, and shutter, and an imaging element such as a CMOS (Complementary Metal-Oxide-Semiconductor) image sensor or a CCD (Charge Coupled Device) image sensor, and captures images of the user's surroundings (for example, an imaging range defined by an angle of view equivalent to the field of vision of a typical healthy person).
[0128] The communication I / F 44 is connected to a network 54. The communication I / Fs 44 and 26 are responsible for the exchange of various information between the processor 46 and the processor 28 via the network 54. The exchange of various information between the processor 46 and the processor 28 using the communication I / Fs 44 and 26 is carried out in a secure state.
[0129] Fig. 4 shows an example of the main functions of the data processing device 12 and the smart glasses 214. As shown in Fig. 4, in the data processing device 12, a specific process is performed by the processor 28. A specific process program 56 is stored in the storage 32.
[0130] The processor 28 reads the specific processing program 56 from the storage 32 and executes the read specific processing program 56 on the RAM 30. The specific processing is realized by the processor 28 operating as a specific processing unit 290 in accordance with the specific processing program 56 executed on the RAM 30.
[0131] The storage 32 stores a data generation model 58 and an emotion identification model 59. The data generation model 58 and the emotion identification model 59 are used by the identification processing unit 290. The identification processing unit 290 can estimate a user's emotion using the emotion identification model 59 and perform identification processing using the user's emotion. The emotion estimation function (emotion identification function) using the emotion identification model 59 performs various estimations and predictions regarding the user's emotion, including estimation and prediction of the user's emotion, but is not limited to these examples. Furthermore, the estimation and prediction of emotion also includes, for example, emotion analysis.
[0132] In the smart glasses 214, the specific processing is performed by the processor 46. A specific processing program 60 is stored in the storage 50. The processor 46 reads the specific processing program 60 from the storage 50 and executes the read specific processing program 60 on the RAM 48. The specific processing is realized by the processor 46 operating as the control unit 46A in accordance with the specific processing program 60 executed on the RAM 48. The smart glasses 214 also have a data generation model and an emotion identification model similar to the data generation model 58 and the emotion identification model 59, and can perform processing similar to that of the specific processing unit 290 using these models.
[0133] Note that a device other than the data processing device 12 may have the data generation model 58. For example, a server device may have the data generation model 58. In this case, the data processing device 12 communicates with the server device having the data generation model 58 to obtain a processing result (such as a prediction result) using the data generation model 58. Furthermore, the data processing device 12 may be a server device, or may be a terminal device (for example, a mobile phone, a robot, a home appliance, etc.) owned by a user.
[0134] The specific processing unit 290 transmits the result of the specific processing to the smart glasses 214. In the smart glasses 214, the control unit 46A causes the speaker 240 to output the result of the specific processing. The microphone 238 acquires audio indicating a user input regarding the result of the specific processing. The control unit 46A transmits audio data indicating the user input acquired by the microphone 238 to the data processing device 12. In the data processing device 12, the specific processing unit 290 acquires the audio data.
[0135] The data generation model 58 is a so-called generative AI. An example of the data generation model 58 is a generative AI such as ChatGPT. The data generation model 58 is obtained by performing deep learning on a neural network. The data generation model 58 receives a prompt containing an instruction, as well as inference data such as voice data representing speech, text data representing text, and image data representing an image. The data generation model 58 performs inference on the input inference data in accordance with the instruction indicated by the prompt and outputs the inference result in a data format such as voice data and text data. Here, inference refers to, for example, analysis, classification, prediction, and / or summarization. The identification processing unit 290 performs the above-mentioned identification processing using the data generation model 58. The data generation model 58 may be a fine-tuned model so as to output an inference result from a prompt that does not include an instruction. In this case, the data generation model 58 can output an inference result from a prompt that does not include an instruction. The data processing device 12 and the like include multiple types of data generation models 58, and the data generation model 58 includes AIs other than the generative AI. The AI other than the generative AI may be, for example, linear regression, logistic regression, decision tree, random forest, support vector machine (SVM), k-means clustering, convolutional neural network (CNN), recurrent neural network (RNN), generative adversarial network (GAN), or naive Bayes, and can perform various processes, but is not limited to these examples. The AI may also be an AI agent. When the processes of each of the above-mentioned parts are performed by AI, the processes may be performed in part or entirely by AI, but are not limited to these examples. The processes performed by AI, including the generative AI, may be replaced with rule-based processes.
[0136] The data processing system 210 according to the second embodiment performs the same processing as the data processing system 10 according to the first embodiment. The processing by the data processing system 210 is executed by the specific processing unit 290 of the data processing device 12 or the control unit 46A of the smart glasses 214, but may also be executed by the specific processing unit 290 of the data processing device 12 and the control unit 46A of the smart glasses 214. Furthermore, the specific processing unit 290 of the data processing device 12 acquires or collects information required for processing from the smart glasses 214 or an external device, etc., and the smart glasses 214 acquires or collects information required for processing from the data processing device 12 or an external device, etc.
[0137] The correspondence between each part and the device or control part is not limited to the example described above, and various modifications are possible.
[0138] [Third embodiment] FIG. 5 shows an example of the configuration of a data processing system 310 according to the third embodiment.
[0139] 5, the data processing system 310 includes the data processing device 12 and a headset type terminal 314. An example of the data processing device 12 is a server.
[0140] The data processing device 12 includes a computer 22, a database 24, and a communication I / F 26. The computer 22 includes a processor 28, a RAM 30, and a storage 32. The processor 28, RAM 30, and storage 32 are connected to a bus 34. The database 24 and the communication I / F 26 are also connected to the bus 34. The communication I / F 26 is connected to a network 54. Examples of the network 54 include a WAN and / or a LAN.
[0141] The headset type terminal 314 includes a computer 36, a microphone 238, a speaker 240, a camera 42, a communication I / F 44, and a display 343. The computer 36 includes a processor 46, a RAM 48, and a storage 50. The processor 46, the RAM 48, and the storage 50 are connected to a bus 52. The microphone 238, the speaker 240, the camera 42, and the display 343 are also connected to the bus 52.
[0142] The microphone 238 receives instructions and the like from the user by receiving voice uttered by the user. The microphone 238 captures the voice uttered by the user, converts the captured voice into audio data, and outputs it to the processor 46. The speaker 240 outputs audio according to instructions from the processor 46.
[0143] Camera 42 is a small digital camera equipped with an optical system including a lens, aperture, and shutter, and an imaging element such as a CMOS (Complementary Metal-Oxide-Semiconductor) image sensor or a CCD (Charge Coupled Device) image sensor, and captures images of the user's surroundings (for example, an imaging range defined by an angle of view equivalent to the field of vision of a typical healthy person).
[0144] The communication I / F 44 is connected to a network 54. The communication I / Fs 44 and 26 are responsible for the exchange of various information between the processor 46 and the processor 28 via the network 54. The exchange of various information between the processor 46 and the processor 28 using the communication I / Fs 44 and 26 is carried out in a secure state.
[0145] Fig. 6 shows an example of the main functions of the data processing device 12 and the headset type terminal 314. As shown in Fig. 6, in the data processing device 12, a specific process is performed by the processor 28. A specific process program 56 is stored in the storage 32.
[0146] The processor 28 reads the specific processing program 56 from the storage 32 and executes the read specific processing program 56 on the RAM 30. The specific processing is realized by the processor 28 operating as a specific processing unit 290 in accordance with the specific processing program 56 executed on the RAM 30.
[0147] The storage 32 stores a data generation model 58 and an emotion identification model 59. The data generation model 58 and the emotion identification model 59 are used by the identification processing unit 290. The identification processing unit 290 can estimate a user's emotion using the emotion identification model 59 and perform identification processing using the user's emotion. The emotion estimation function (emotion identification function) using the emotion identification model 59 performs various estimations and predictions regarding the user's emotion, including estimation and prediction of the user's emotion, but is not limited to these examples. Furthermore, the estimation and prediction of emotion also includes, for example, emotion analysis.
[0148] In the headset type terminal 314, the identification process is performed by the processor 46. A identification program 60 is stored in the storage 50. The processor 46 reads the identification program 60 from the storage 50 and executes the read identification program 60 on the RAM 48. The identification process is realized by the processor 46 operating as a control unit 46A in accordance with the identification program 60 executed on the RAM 48. Note that the headset type terminal 314 has a data generation model and an emotion identification model similar to the data generation model 58 and the emotion identification model 59, and can also perform processing similar to that of the identification processing unit 290 using these models.
[0149] Note that a device other than the data processing device 12 may have the data generation model 58. For example, a server device may have the data generation model 58. In this case, the data processing device 12 communicates with the server device having the data generation model 58 to obtain a processing result (such as a prediction result) using the data generation model 58. Furthermore, the data processing device 12 may be a server device, or may be a terminal device (for example, a mobile phone, a robot, a home appliance, etc.) owned by a user.
[0150] The specific processing unit 290 transmits the result of the specific processing to the headset type terminal 314. In the headset type terminal 314, the control unit 46A causes the speaker 240 and the display 343 to output the result of the specific processing. The microphone 238 acquires audio indicating a user input regarding the result of the specific processing. The control unit 46A transmits audio data indicating the user input acquired by the microphone 238 to the data processing device 12. In the data processing device 12, the specific processing unit 290 acquires the audio data.
[0151] The data generation model 58 is a so-called generative AI. An example of the data generation model 58 is a generative AI such as ChatGPT. The data generation model 58 is obtained by performing deep learning on a neural network. The data generation model 58 receives a prompt containing an instruction, as well as inference data such as voice data representing speech, text data representing text, and image data representing an image. The data generation model 58 performs inference on the input inference data in accordance with the instruction indicated by the prompt and outputs the inference result in a data format such as voice data and text data. Here, inference refers to, for example, analysis, classification, prediction, and / or summarization. The identification processing unit 290 performs the above-mentioned identification processing using the data generation model 58. The data generation model 58 may be a fine-tuned model so as to output an inference result from a prompt that does not include an instruction. In this case, the data generation model 58 can output an inference result from a prompt that does not include an instruction. The data processing device 12 and the like include multiple types of data generation models 58, and the data generation model 58 includes AIs other than the generative AI. The AI other than the generative AI may be, for example, linear regression, logistic regression, decision tree, random forest, support vector machine (SVM), k-means clustering, convolutional neural network (CNN), recurrent neural network (RNN), generative adversarial network (GAN), or naive Bayes, and can perform various processes, but is not limited to these examples. The AI may also be an AI agent. When the processes of each of the above-mentioned parts are performed by AI, the processes may be performed in part or entirely by AI, but are not limited to these examples. The processes performed by AI, including the generative AI, may be replaced with rule-based processes.
[0152] The data processing system 310 according to the third embodiment performs the same processing as the data processing system 10 according to the first embodiment. The processing by the data processing system 310 is executed by the specific processing unit 290 of the data processing device 12 or the control unit 46A of the headset type terminal 314, but may also be executed by the specific processing unit 290 of the data processing device 12 and the control unit 46A of the headset type terminal 314. Furthermore, the specific processing unit 290 of the data processing device 12 acquires or collects information required for processing from the headset type terminal 314 or an external device, etc., and the headset type terminal 314 acquires or collects information required for processing from the data processing device 12 or an external device, etc.
[0153] The correspondence between each part and the device or control part is not limited to the example described above, and various modifications are possible.
[0154] [Fourth embodiment] FIG. 7 shows an example of the configuration of a data processing system 410 according to the fourth embodiment.
[0155] 7, a data processing system 410 includes a data processing device 12 and a robot 414. An example of the data processing device 12 is a server.
[0156] The data processing device 12 includes a computer 22, a database 24, and a communication I / F 26. The computer 22 includes a processor 28, a RAM 30, and a storage 32. The processor 28, RAM 30, and storage 32 are connected to a bus 34. The database 24 and the communication I / F 26 are also connected to the bus 34. The communication I / F 26 is connected to a network 54. Examples of the network 54 include a WAN and / or a LAN.
[0157] The robot 414 includes a computer 36, a microphone 238, a speaker 240, a camera 42, a communication I / F 44, and a control target 443. The computer 36 includes a processor 46, a RAM 48, and a storage 50. The processor 46, the RAM 48, and the storage 50 are connected to a bus 52. The microphone 238, the speaker 240, the camera 42, and the control target 443 are also connected to the bus 52.
[0158] The microphone 238 receives instructions and the like from the user by receiving voice uttered by the user. The microphone 238 captures the voice uttered by the user, converts the captured voice into audio data, and outputs it to the processor 46. The speaker 240 outputs audio according to instructions from the processor 46.
[0159] Camera 42 is a small digital camera equipped with an optical system including a lens, aperture, and shutter, and an imaging element such as a CMOS image sensor or a CCD image sensor, and captures images of the user's surroundings (for example, an imaging range defined by an angle of view equivalent to the field of vision of a typical healthy person).
[0160] The communication I / F 44 is connected to a network 54. The communication I / Fs 44 and 26 are responsible for the exchange of various information between the processor 46 and the processor 28 via the network 54. The exchange of various information between the processor 46 and the processor 28 using the communication I / Fs 44 and 26 is carried out in a secure state.
[0161] The control object 443 includes a display device, LEDs in the eyes, and motors that drive the arms, hands, and feet. The posture and gestures of the robot 414 are controlled by controlling the motors of the arms, hands, and feet. Some of the emotions of the robot 414 can be expressed by controlling these motors. In addition, the facial expressions of the robot 414 can also be expressed by controlling the light emission state of the LEDs in the eyes of the robot 414.
[0162] Fig. 8 shows an example of the main functions of the data processing device 12 and the robot 414. As shown in Fig. 8, in the data processing device 12, a specific process is performed by the processor 28. A specific process program 56 is stored in the storage 32.
[0163] The processor 28 reads the specific processing program 56 from the storage 32 and executes the read specific processing program 56 on the RAM 30. The specific processing is realized by the processor 28 operating as a specific processing unit 290 in accordance with the specific processing program 56 executed on the RAM 30.
[0164] The storage 32 stores a data generation model 58 and an emotion identification model 59. The data generation model 58 and the emotion identification model 59 are used by the identification processing unit 290. The identification processing unit 290 can estimate a user's emotion using the emotion identification model 59 and perform identification processing using the user's emotion. The emotion estimation function (emotion identification function) using the emotion identification model 59 performs various estimations and predictions regarding the user's emotion, including estimation and prediction of the user's emotion, but is not limited to these examples. Furthermore, the estimation and prediction of emotion also includes, for example, emotion analysis.
[0165] In the robot 414, the processor 46 performs the identification process. The storage 50 stores the identification program 60. The processor 46 reads the identification program 60 from the storage 50 and executes the read identification program 60 on the RAM 48. The identification process is realized by the processor 46 operating as the control unit 46A in accordance with the identification program 60 executed on the RAM 48. The robot 414 also has a data generation model and an emotion identification model similar to the data generation model 58 and the emotion identification model 59, and can perform the same process as the identification processing unit 290 using these models.
[0166] Note that a device other than the data processing device 12 may have the data generation model 58. For example, a server device may have the data generation model 58. In this case, the data processing device 12 communicates with the server device having the data generation model 58 to obtain a processing result (such as a prediction result) using the data generation model 58. Furthermore, the data processing device 12 may be a server device, or may be a terminal device (for example, a mobile phone, a robot, a home appliance, etc.) owned by a user.
[0167] The specific processing unit 290 transmits the result of the specific processing to the robot 414. In the robot 414, the control unit 46A causes the speaker 240 and the control target 443 to output the result of the specific processing. The microphone 238 acquires voice indicating a user input regarding the result of the specific processing. The control unit 46A transmits voice data indicating the user input acquired by the microphone 238 to the data processing device 12. In the data processing device 12, the specific processing unit 290 acquires the voice data.
[0168] The data generation model 58 is a so-called generative AI. An example of the data generation model 58 is a generative AI such as ChatGPT. The data generation model 58 is obtained by performing deep learning on a neural network. The data generation model 58 receives a prompt containing an instruction, as well as inference data such as voice data representing speech, text data representing text, and image data representing an image. The data generation model 58 performs inference on the input inference data in accordance with the instruction indicated by the prompt and outputs the inference result in a data format such as voice data and text data. Here, inference refers to, for example, analysis, classification, prediction, and / or summarization. The identification processing unit 290 performs the above-mentioned identification processing using the data generation model 58. The data generation model 58 may be a fine-tuned model so as to output an inference result from a prompt that does not include an instruction. In this case, the data generation model 58 can output an inference result from a prompt that does not include an instruction. The data processing device 12 and the like include multiple types of data generation models 58, and the data generation model 58 includes AIs other than the generative AI. The AI other than the generative AI may be, for example, linear regression, logistic regression, decision tree, random forest, support vector machine (SVM), k-means clustering, convolutional neural network (CNN), recurrent neural network (RNN), generative adversarial network (GAN), or naive Bayes, and can perform various processes, but is not limited to these examples. The AI may also be an AI agent. When the processes of each of the above-mentioned parts are performed by AI, the processes may be performed in part or entirely by AI, but are not limited to these examples. The processes performed by AI, including the generative AI, may be replaced with rule-based processes.
[0169] The data processing system 410 according to the fourth embodiment performs the same processing as the data processing system 10 according to the first embodiment. The processing by the data processing system 410 is executed by the specific processing unit 290 of the data processing device 12 or the control unit 46A of the robot 414, but may also be executed by the specific processing unit 290 of the data processing device 12 and the control unit 46A of the robot 414. Furthermore, the specific processing unit 290 of the data processing device 12 acquires or collects information required for processing from the robot 414 or an external device, etc., and the robot 414 acquires or collects information required for processing from the data processing device 12 or an external device, etc.
[0170] The correspondence between each part and the device or control part is not limited to the example described above, and various modifications are possible.
[0171] The emotion identification model 59 as an emotion engine may determine the user's emotion according to a specific mapping. Specifically, the emotion identification model 59 may determine the user's emotion according to an emotion map (see FIG. 9), which is a specific mapping. Similarly, the emotion identification model 59 may determine the robot's emotion, and the identification processing unit 290 may perform identification processing using the robot's emotion.
[0172] FIG. 9 illustrates an emotion map 400 on which multiple emotions are mapped. In the emotion map 400, emotions are arranged in concentric circles radiating from the center. Emotions closer to the center of the concentric circles are more primitive. Emotions representing states and behaviors arising from a state of mind are arranged on the outer edges of the concentric circles. The concept of emotion encompasses both emotions and mental states. Emotions generally generated from reactions occurring in the brain are arranged on the left side of the concentric circles. Emotions generally induced by situational judgment are arranged on the right side of the concentric circles. Emotions generally generated from reactions occurring in the brain and induced by situational judgment are arranged on the upper and lower sides of the concentric circles. Furthermore, the emotion of "pleasure" is arranged on the upper side of the concentric circles, and the emotion of "discomfort" is arranged on the lower side. In this way, in the emotion map 400, multiple emotions are mapped based on the structure by which emotions are generated, and emotions that tend to occur simultaneously are mapped close to each other.
[0173] These emotions are distributed in the 3 o'clock direction on emotion map 400, and typically fluctuate between relief and anxiety. In the right half of emotion map 400, situational awareness dominates over internal sensations, resulting in a sense of calm.
[0174] The inside of emotion map 400 represents what is going on in the mind, and the outside of emotion map 400 represents behavior, so the further you go outside emotion map 400, the more visible the emotions become (the more they are expressed in behavior).
[0175] Human emotions are based on various balances, such as posture and blood sugar levels. When these balances deviate from the ideal, a state of discomfort is expressed, and when they approach the ideal, a state of pleasure is expressed. Emotions can also be created for robots, cars, and motorcycles, based on various balances, such as posture and remaining battery life. When these balances deviate from the ideal, a state of discomfort is expressed, and when they approach the ideal, a state of pleasure is expressed. An emotion map can be generated, for example, based on Dr. Mitsuyoshi's emotion map (Research on speech emotion recognition and brain physiological signal analysis systems for emotions, Tokushima University, doctoral dissertation: https: / / ci.nii.ac.jp / naid / 500000375379). The left half of the emotion map lists emotions belonging to the area called "reaction," where sensation is dominant. The right half of the emotion map lists emotions belonging to the area called "situation," where situational awareness is dominant.
[0176] The emotion map defines two emotions that promote learning. One is a negative emotion on the situation side, around the middle of "repentance" or "reflection." In other words, this occurs when the robot experiences negative emotions such as "I never want to feel this way again" or "I don't want to be scolded again." The other is a positive emotion on the response side, around "desire." In other words, this occurs when the robot experiences positive feelings such as "I want more" or "I want to know more."
[0177] The emotion identification model 59 inputs user input into a pre-trained neural network, obtains emotion values indicating each emotion shown in the emotion map 400, and determines the user's emotion. This neural network is pre-trained based on multiple pieces of training data that are combinations of user input and emotion values indicating each emotion shown in the emotion map 400. Furthermore, this neural network is trained so that emotions that are located close to each other have similar values, as in the emotion map 900 shown in FIG. 10. FIG. 10 shows an example in which multiple emotions, "relieved," "calm," and "reassuring," have similar emotion values.
[0178] In the above embodiment, an example was given in which a specific process is performed by one computer 22, but the technology disclosed herein is not limited to this, and distributed processing of the specific process may be performed by multiple computers including computer 22.
[0179] In the above embodiment, an example in which the specific processing program 56 is stored in the storage 32 has been described, but the technology of the present disclosure is not limited to this. For example, the specific processing program 56 may be stored in a portable, computer-readable, non-transitory storage medium such as a USB (Universal Serial Bus) memory. The specific processing program 56 stored in the non-transitory storage medium is installed in the computer 22 of the data processing device 12. The processor 28 executes the specific processing in accordance with the specific processing program 56.
[0180] Alternatively, the specific processing program 56 may be stored in a storage device such as a server connected to the data processing device 12 via the network 54, and the specific processing program 56 may be downloaded and installed on the computer 22 in response to a request from the data processing device 12.
[0181] It is not necessary to store all of the specific processing program 56 in a storage device such as a server connected to the data processing device 12 via the network 54, or to store all of the specific processing program 56 in the storage 32; only a portion of the specific processing program 56 may be stored.
[0182] The hardware resource for executing a specific process can be any of the following processors: A CPU is a general-purpose processor that functions as a hardware resource for executing a specific process by executing software, i.e., a program. A dedicated electrical circuit, such as a field-programmable gate array (FPGA), a programmable logic device (PLD), or an application-specific integrated circuit (ASIC), is a processor with a circuit configuration specifically designed to execute a specific process. Each processor has built-in or connected memory, and uses the memory to execute the specific process.
[0183] The hardware resource that executes the specific process may be configured with one of these various processors, or may be configured with a combination of two or more processors of the same or different types (for example, a combination of multiple FPGAs, or a combination of a CPU and an FPGA). Also, the hardware resource that executes the specific process may be a single processor.
[0184] As an example of a system configured with a single processor, first, one processor is configured by combining one or more CPUs and software, and this processor functions as a hardware resource that executes a specific process. Second, there is a system that uses a processor that realizes the functions of an entire system including multiple hardware resources that execute a specific process on a single IC chip, as typified by SoC (System-on-a-chip). In this way, a specific process is realized using one or more of the above-mentioned various processors as hardware resources.
[0185] Furthermore, the hardware structure of these various processors can be, more specifically, an electric circuit that combines circuit elements such as semiconductor devices. The specific processing described above is merely an example. Therefore, it goes without saying that unnecessary steps may be deleted, new steps may be added, or the processing order may be rearranged, without departing from the spirit of the invention.
[0186] In the above example, the first to fourth embodiments have been described separately, but some or all of these embodiments may be combined. The smart device 14, smart glasses 214, headset terminal 314, and robot 414 are merely examples, and they may be combined, or other devices may be used. In the above example, the first and second embodiments have been described separately, but they may be combined.
[0187] The above-described description and illustrations are a detailed explanation of the parts related to the technology of the present disclosure and are merely an example of the technology of the present disclosure. For example, the above description of the configuration, functions, actions, and effects is an explanation of an example of the configuration, functions, actions, and effects of the parts related to the technology of the present disclosure. Therefore, it goes without saying that unnecessary parts may be deleted, new elements may be added, or replacements may be made to the above-described description and illustrations within the scope of the gist of the technology of the present disclosure. Furthermore, to avoid confusion and facilitate understanding of the parts related to the technology of the present disclosure, the above-described description and illustrations omit explanations of common technical knowledge that do not require particular explanation to enable the implementation of the technology of the present disclosure.
[0188] All publications, patent applications, and technical standards mentioned in this specification are herein incorporated by reference to the same extent as if each individual publication, patent application, or technical standard was specifically and individually indicated to be incorporated by reference.
[0189] [Explanation of symbols]
[0190] 10, 210, 310, 410 Data Processing Systems 12 Data Processing Device 14 Smart Devices 214 Smart Glasses 314 Headset-type terminal 414 Robot
Claims
1. A system comprising an analysis unit that analyzes generated program code, an instruction unit that instructs a generation AI to make corrections based on errors detected by the analysis unit, a recording unit that records interactions between the instruction unit and the generation AI, and a provision unit that provides a user with program code generated based on the information recorded by the recording unit.
2. 2. The system according to claim 1, wherein the analysis unit analyzes the generated program code and detects errors based on general coding rules and known bug patterns.
3. The system according to claim 1 , wherein the instruction unit conveys details of the detected error to the generation AI and provides specific instructions for correction.
4. The system according to claim 1, wherein the recording unit records a history of interactions with the generation AI and utilizes the history for subsequent program code generation.
5. The system according to claim 1 , wherein the providing unit provides the generated program code to a user.
6. The analysis unit Inferring user emotions and adjusting the display of analysis results based on the estimated user emotions 2. The system of claim 1.
7. The analysis unit During analysis, the execution environment of the program code is simulated to detect environment-dependent errors.
2. The system of claim 1.
8. The analysis unit During analysis, it evaluates the performance of your program code and makes optimization suggestions 2. The system of claim 1.
Citation Information
Patent Citations
Persona chatbot control method and system
JP2022180282A