System
The system automates program conversion and checking using a generation AI, addressing the risk of incorrect outputs by employing automated methods like static analysis and code review to ensure accuracy.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-08-23
- Publication Date
- 2026-03-06
AI Technical Summary
Conventional generative AI systems have a risk of outputting incorrect information, and final confirmation relies on human verification, lacking automation in language conversion and checking.
A system that includes a receiving unit, converting unit, proposing unit, and correcting unit to automate program conversion and checking using a generation AI, employing methods like static analysis, unit testing, code review, and security scanning to ensure accuracy.
The system automates language conversion and checking, producing highly accurate programs by detecting and correcting errors, thereby reducing the risk of erroneous outputs.
Smart Images

Figure 2026038974000001_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, there was a possibility that incorrect information could be output when generative AI converted the language of a program, and final confirmation was dependent on humans.
[0005] The system according to the embodiment aims to automate the language conversion and checking of programs by a generation AI, thereby creating highly accurate programs. [Means for solving the problem]
[0006] The system according to the embodiment includes a receiving unit, a converting unit, a proposing unit, an executing unit, and a correcting unit. The receiving unit accepts program input. The converting unit converts the program accepted by the receiving unit into a specified language. The proposing unit proposes a check method for the program converted by the converting unit. The executing unit executes the check method proposed by the proposing unit. The correcting unit corrects the program based on the results of the check method executed by the executing unit. [Effects of the Invention]
[0007] The system according to the embodiment automates the language conversion and checking of programs by a generation AI, making it possible to create highly accurate programs. [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 solves the problem of hallucination, which is the output of erroneous information when a program is converted into a language using a generation AI. This system accepts program input, converts the program into a specified language, proposes check methods for the converted program, executes the proposed check methods, and modifies the program based on the results of the check methods. This allows the system to create highly accurate programs that are closed to the generation AI. For example, the system inputs a program that a user wants to convert. The generation AI then converts the program into a specified language. The generation AI then proposes multiple check methods for the converted program. These check methods include static analysis, unit testing, code review, dynamic analysis, and security scanning. The generation AI continues to modify the program until all check methods pass. This reduces the risk of outputting erroneous information and provides highly accurate programs.
[0029] A program conversion system according to an embodiment includes a receiving unit, a converting unit, a proposing unit, an executing unit, and a correcting unit. The receiving unit accepts a program input. The program input may include, but is not limited to, source code, scripts, binary files, and the like. The receiving unit may accept, for example, a program input by a user. The receiving unit may also use a generating AI to analyze the user input and convert it into an appropriate format. The converting unit converts the program accepted by the receiving unit into a specified language. Examples of the specified language include, but are not limited to, Python (registered trademark), Java (registered trademark), and C++. The converting unit converts the program into the specified language using the generating AI. For example, the generating AI analyzes the program structure and converts it into an appropriate language. The proposing unit proposes a check method for the program converted by the converting unit. Examples of check methods include, but are not limited to, static analysis, unit testing, code review, dynamic analysis, and security scanning. The proposing unit proposes an appropriate check method using the generating AI. For example, the generating AI proposes an optimal check method based on the program's characteristics. The execution unit executes the checking method proposed by the proposal unit. The execution unit executes the proposed checking method using a generation AI. For example, the execution unit performs static analysis to detect syntax errors and type errors in the program. The execution unit can also perform unit testing to confirm whether each function and method of the program operates correctly. The execution unit can also perform code reviews to evaluate the readability and maintainability of the program. The correction unit corrects the program based on the results of the checking method executed by the execution unit. The correction unit uses a generation AI to correct the program based on the results of the checking method. For example, the correction unit corrects errors detected by static analysis. The correction unit can also correct problems detected by unit testing. The correction unit can also correct problems pointed out in code reviews. As a result, the program conversion system according to the embodiment uses a generation AI to automate program language conversion and its checking, thereby creating highly accurate programs.
[0030] The suggestion department can propose checking methods such as static analysis, unit testing, code review, dynamic analysis, and security scanning. For example, the suggestion department proposes static analysis. Static analysis detects syntax errors and type errors in a program. For example, the suggestion department uses the Lint tool to detect syntax errors in a program. The suggestion department can also perform type checking to detect type errors in a program. The suggestion department can also propose code reviews to evaluate the quality of the code. Unit testing checks whether each function and method of a program works correctly. For example, the suggestion department can propose unit tests for Java programs using JUnit. The suggestion department can also propose unit tests for Python programs using pytest. Code reviews evaluate the readability and maintainability of a program. For example, the suggestion department can propose pair programming, in which two programmers collaborate to review code. The suggestion department can also evaluate the quality of a program based on code review guidelines. Dynamic analysis checks the behavior of a program at runtime. For example, the suggestion department can propose profiling to evaluate program performance. The suggestion department can also propose memory leak detection to check the memory usage of a program. Security scanning detects security risks in a program. For example, the suggestion unit can suggest vulnerability scans to detect security holes in the program. The suggestion unit can also suggest security tests to evaluate the security measures of the program. This allows the quality of the program to be improved by suggesting various check methods.
[0031] The execution unit can execute the proposed checking method. For example, the execution unit executes the proposed static analysis. Static analysis detects syntax errors, type errors, and the like in the program. For example, the execution unit uses a Lint tool to detect syntax errors in the program. The execution unit can also perform type checking to detect type errors in the program. Furthermore, the execution unit can execute code reviews to evaluate the quality of the code. For example, the execution unit executes the proposed unit tests. Unit tests confirm whether each function and method of the program operates correctly. For example, the execution unit executes unit tests for Java programs using JUnit. The execution unit can also execute unit tests for Python programs using pytest. For example, the execution unit executes the proposed code reviews. Code reviews evaluate the readability and maintainability of the program. For example, the execution unit executes pair programming, in which two programmers collaborate to review code. The execution unit can also evaluate the quality of the program based on code review guidelines. For example, the execution unit executes the proposed dynamic analysis. Dynamic analysis confirms the behavior of the program at runtime. For example, the execution unit performs profiling to evaluate the performance of the program. The execution unit can also perform memory leak detection to check the memory usage of the program. The execution unit can also perform a proposed security scan, for example. The security scan detects security risks in the program. For example, the execution unit can perform a vulnerability scan to detect security holes in the program. The execution unit can also perform a security test to evaluate the security measures of the program. In this way, the quality of the program can be confirmed by executing the proposed check method.
[0032] The correction department can correct the program based on the results of the checking method. The correction department corrects the program based on, for example, the results of static analysis. Static analysis detects syntax errors, type errors, and the like in the program. For example, the correction department corrects syntax errors detected using a Lint tool. The correction department can also correct type errors detected by type checking. Furthermore, the correction department can correct the program based on the results of code review to improve code quality. For example, the correction department corrects the program based on the results of unit testing. Unit testing verifies whether each function and method of the program operates correctly. For example, the correction department corrects problems detected using JUnit. The correction department can also fix problems detected using pytest. The correction department corrects the program based on, for example, the results of code review. Code review evaluates the readability and maintainability of the program. For example, the correction department corrects problems pointed out in pair programming. The correction department can also fix problems pointed out based on code review guidelines. The correction department corrects the program based on, for example, the results of dynamic analysis. Dynamic analysis verifies the runtime behavior of the program. For example, the correction unit corrects performance problems detected by profiling. The correction unit can also correct memory usage problems detected by memory leak detection. The correction unit corrects the program based on, for example, the results of a security scan. In a security scan, security risks in the program are detected. For example, the correction unit corrects security holes detected in a vulnerability scan. The correction unit can also correct problems with security measures detected in a security test. In this way, by correcting the program based on the check results, the quality of the program can be improved.
[0033] The execution unit may include a static analysis unit that performs static analysis. The static analysis unit detects, for example, syntax errors and type errors in a program. For example, the static analysis unit detects syntax errors in a program using a Lint tool. The static analysis unit can also perform type checks to detect type errors in a program. Furthermore, the static analysis unit can also perform code reviews to evaluate the quality of the code. As a result, static analysis can detect syntax errors and type errors in a program.
[0034] The execution unit may include a unit testing unit that performs unit testing. The unit testing unit, for example, checks whether each function or method of a program operates correctly. For example, the unit testing unit uses JUnit to perform unit testing of a Java program. The unit testing unit may also use pytest to perform unit testing of a Python program. Furthermore, the unit testing unit may also perform code reviews to evaluate the quality of the code. Thus, by performing unit testing, it is possible to check whether each function or method of a program operates correctly.
[0035] The execution unit may include a code review unit that performs code reviews. The code review unit evaluates, for example, the readability and maintainability of a program. For example, the code review unit may perform pair programming, in which two programmers collaborate to review code. The code review unit may also evaluate the quality of a program based on code review guidelines. Furthermore, the code review unit may refer to the results of static analysis and unit testing to improve code quality. In this way, the readability and maintainability of a program can be evaluated by performing code reviews.
[0036] The execution unit may include a dynamic analysis unit that performs dynamic analysis. The dynamic analysis unit, for example, checks the behavior of the program when it is executed. For example, the dynamic analysis unit performs profiling to evaluate the performance of the program. The dynamic analysis unit can also perform memory leak detection and check the memory usage status of the program. Furthermore, the dynamic analysis unit can collect and analyze log data to analyze the behavior of the program when it is executed in detail. In this way, the behavior of the program when it is executed can be checked by performing dynamic analysis.
[0037] The execution unit may include a security scanning unit that performs security scans. The security scanning unit detects, for example, security risks in a program. For example, the security scanning unit performs a vulnerability scan to detect security holes in a program. The security scanning unit may also perform security tests to evaluate security measures in a program. Furthermore, the security scanning unit may collect and analyze security logs to analyze the security risks of a program in detail. In this way, security risks in a program can be detected by performing a security scan.
[0038] The correction unit may include a feedback unit that feeds back the results of the checking method. The feedback unit, for example, feeds back the results of the checking method. For example, the feedback unit may generate an error report and report problems with the program. The feedback unit may also generate a performance report and evaluate the performance of the program. Furthermore, the feedback unit may also generate a security report and report security risks of the program. In this way, by feeding back the check results, the accuracy of program correction can be improved.
[0039] The proposal unit may include an evaluation unit that evaluates the reliability of the checking method. The evaluation unit, for example, evaluates the reliability of the checking method. For example, the evaluation unit evaluates test coverage to confirm the comprehensiveness of the checking method. The evaluation unit may also evaluate an error rate to confirm the accuracy of the checking method. Furthermore, in order to improve the reliability of the checking method, the evaluation unit may build a feedback loop and improve the checking method based on the evaluation results. In this way, by evaluating the reliability of the checking method, it is possible to propose a more reliable checking method.
[0040] The reception unit can analyze the user's past program input history and select an appropriate input method. The reception unit, for example, analyzes the user's past program input history. The past program input history includes, for example, input frequency, input content, and input method. For example, the reception unit preferentially suggests input methods (voice, text, etc.) that the user has frequently used in the past. The reception unit can also predict and suggest an input method to be used during a specific time period based on the user's past input history. Furthermore, the reception unit can select an optimal input method based on the types of programs the user has previously input. In this way, by analyzing the past input history, it is possible to provide the user with an optimal input method. Some or all of the above-described processing in the reception unit may be performed using, or without, a generation AI. For example, the reception unit can input the user's past input history data into the generation AI and have the generation AI select an optimal input method.
[0041] The reception unit may filter the programs based on the user's current projects and areas of interest when the programs are input. The reception unit, for example, identifies the user's current projects and areas of interest. The current projects and areas of interest may include, for example, a project management tool, the user's history, and social media activity. For example, the reception unit may acquire the user's current project information from a project management tool. The reception unit may also identify the user's areas of interest from the user's past history. Furthermore, the reception unit may analyze social media activity to identify the user's areas of interest. The reception unit may filter the programs based on the identified current projects and areas of interest when the programs are input. For example, the reception unit may display only programs related to the project the user is currently working on. The reception unit may also preferentially display related programs based on the user's areas of interest. Furthermore, the reception unit may filter programs based on areas in which the user has previously shown interest. As a result, highly relevant programs can be provided by filtering based on the user's projects and areas of interest. Some or all of the above-described processing in the reception unit may be performed using, for example, a generation AI, or may be performed without using a generation AI. For example, the reception unit can input the user's project information and area of interest data into the generation AI and have the generation AI perform filtering.
[0042] The reception unit can select an appropriate input means depending on the user's input method when inputting a program. The reception unit, for example, identifies the user's input method. Input methods include, for example, keyboard input, voice input, and image input. For example, if the user prefers voice input, the reception unit can prioritize voice input. Furthermore, if the user prefers text input, the reception unit can prioritize text input. Furthermore, if the user prefers image input, the reception unit can prioritize image input. The reception unit selects an appropriate input means depending on the identified input method. For example, the reception unit can convert what the user dictates into text using voice input. Furthermore, the reception unit can treat the text entered by the user as a program using text input. Furthermore, the reception unit can analyze image data provided by the user and treat it as a program using image input. This enables efficient program input by selecting the optimal means depending on the user's input method. Some or all of the above-described processing in the reception unit may be performed using, for example, a generation AI, or may be performed without using a generation AI. For example, the reception unit can input the user's input method data to the generation AI and cause the generation AI to select the optimal input means.
[0043] When inputting a program, the reception unit can prioritize inputting highly relevant programs by taking into account the user's geographical location information. The reception unit, for example, acquires the user's geographical location information. The geographical location information includes, for example, GPS data, an IP address, etc. For example, if the user is in a specific area, the reception unit can prioritize inputting programs related to that area. Furthermore, if the user is traveling, the reception unit can prioritize inputting programs related to the user's travel destination. Furthermore, if the user is at home, the reception unit can prioritize inputting programs related to the user's home. In this way, highly relevant programs can be provided by taking the user's geographical location information into account. Some or all of the above-described processing in the reception unit may be performed using, or without, a generation AI. For example, the reception unit can input the user's geographical location information data into the generation AI and cause the generation AI to select highly relevant programs.
[0044] When inputting a program, the reception unit can analyze the user's social media activity and input a relevant program. The reception unit, for example, analyzes the user's social media activity. Social media activity includes, for example, the content of posts and the reactions of followers. For example, the reception unit inputs a relevant program based on the content the user shared on social media. The reception unit can also analyze the content of the user's social media posts and input a relevant program. Furthermore, the reception unit can input a relevant program based on the activity of the user's friends on social media. In this way, by analyzing the user's social media activity, it is possible to provide a highly relevant program. Some or all of the above-described processing in the reception unit may be performed using, for example, a generation AI, or may be performed without using a generation AI. For example, the reception unit can input the user's social media activity data into the generation AI and cause the generation AI to select a relevant program.
[0045] The reception unit can customize the input method by reflecting the user's past feedback when inputting data into the program. The reception unit, for example, analyzes the user's past feedback. The past feedback includes, for example, the user's ratings and comments. For example, the reception unit customizes the input method based on feedback provided by the user in the past. The reception unit can also suggest an optimal input method based on the user's past feedback. Furthermore, the reception unit can customize the input method by avoiding input methods that the user has previously expressed dissatisfaction with. This makes it possible to provide the user with an optimal input method by reflecting past feedback. Some or all of the above-described processing in the reception unit may be performed using, or without, a generation AI. For example, the reception unit can input the user's past feedback data into the generation AI and have the generation AI customize the input method.
[0046] The conversion unit can adjust the level of detail of the conversion based on the importance of the program during conversion. The conversion unit, for example, evaluates the importance of the program. The importance of the program includes, for example, project priority, business impact, etc. For example, the conversion unit performs detailed conversion for a program with high importance. The conversion unit can also perform simplified conversion for a program with low importance. Furthermore, the conversion unit can dynamically adjust the level of detail of the conversion according to the importance. This enables efficient program conversion by adjusting the level of detail of the conversion according to the importance of the program. Some or all of the above-mentioned processing in the conversion unit may be performed using, for example, a generation AI, or may be performed without using a generation AI. For example, the conversion unit can input program importance data to the generation AI and cause the generation AI to adjust the level of detail of the conversion.
[0047] During conversion, the conversion unit can apply different conversion algorithms depending on the program category. The conversion unit, for example, identifies the program category. Program categories include, for example, web applications, mobile applications, and desktop applications. For example, the conversion unit applies a specific conversion algorithm to a web application program. The conversion unit can also apply a different conversion algorithm to a mobile application program. Furthermore, the conversion unit can apply yet another conversion algorithm to a desktop application program. This enables efficient program conversion by applying the optimal conversion algorithm depending on the program category. Some or all of the above-described processing in the conversion unit may be performed using, or without, a generation AI. For example, the conversion unit can input program category data to the generation AI and cause the generation AI to apply the conversion algorithm.
[0048] During conversion, the conversion unit can improve the accuracy of the conversion by referring to the user's past conversion results. The conversion unit, for example, analyzes the user's past conversion results. The past conversion results include, for example, the conversion success rate and error rate. For example, the conversion unit improves the accuracy of the conversion based on the user's past conversion results. The conversion unit can also analyze the user's past conversion history and suggest an optimal conversion method. Furthermore, the conversion unit can improve the accuracy of the conversion by referring to feedback provided by the user in the past. In this way, the accuracy of the conversion can be improved by referring to the past conversion results. Some or all of the above-mentioned processing in the conversion unit may be performed, for example, using a generation AI, or may be performed without using a generation AI. For example, the conversion unit can input the user's past conversion result data into the generation AI and have the generation AI improve the accuracy of the conversion.
[0049] During conversion, the conversion unit can determine the priority of conversion based on the program submission date. The conversion unit, for example, evaluates the program submission date. The submission date includes, for example, a deadline, the progress of the project, etc. For example, the conversion unit prioritizes conversion of programs with an upcoming submission deadline. The conversion unit can also postpone programs with a distant submission deadline. Furthermore, the conversion unit can dynamically adjust the conversion priority according to the submission date. This enables efficient program conversion by determining the conversion priority based on the program submission date. Some or all of the above-described processing in the conversion unit may be performed using, or without, a generation AI. For example, the conversion unit can input program submission date data into the generation AI and have the generation AI determine the conversion priority.
[0050] The conversion unit can adjust the order of conversion based on the program relevance during conversion. The conversion unit, for example, evaluates the program relevance. The program relevance includes, for example, functional dependency and module relevance. For example, the conversion unit prioritizes conversion of highly relevant programs. The conversion unit can also postpone conversion of less relevant programs. Furthermore, the conversion unit can dynamically adjust the order of conversion according to the program relevance. This enables efficient program conversion by adjusting the order of conversion based on the program relevance. Some or all of the above-described processing in the conversion unit may be performed using, for example, a generation AI, or may be performed without using a generation AI. For example, the conversion unit can input program relevance data into the generation AI and cause the generation AI to adjust the order of conversion.
[0051] During conversion, the conversion unit can adjust the use of technical terminology in the conversion according to the user's level of expertise. The conversion unit, for example, evaluates the user's level of expertise. The level of expertise includes, for example, qualifications and years of experience. For example, if the user is a beginner, the conversion unit can avoid using technical terminology when performing conversion. Furthermore, if the user is an intermediate user, the conversion unit can perform conversion using a moderate amount of technical terminology. Furthermore, if the user is an advanced user, the conversion unit can perform conversion using a large amount of technical terminology. This enables efficient program conversion by adjusting the use of technical terminology according to the user's level of expertise. Some or all of the above-described processing in the conversion unit may be performed using, for example, a generation AI, or may be performed without using a generation AI. For example, the conversion unit can input the user's level of expertise data into the generation AI and have the generation AI adjust the use of technical terminology.
[0052] The suggestion unit can adjust the level of detail of the proposal based on the importance of the check method when making a proposal. The suggestion unit, for example, evaluates the importance of the check method. The importance of the check method includes, for example, security risk, performance impact, etc. For example, the suggestion unit makes a detailed proposal for a check method with high importance. The suggestion unit can also make a simplified proposal for a check method with low importance. Furthermore, the suggestion unit can dynamically adjust the level of detail of the proposal according to the importance. This enables efficient proposals by adjusting the level of detail of the proposal based on the importance of the check method. Some or all of the above-mentioned processing in the suggestion unit may be performed using, or without, a generation AI. For example, the suggestion unit can input importance data of the check method into the generation AI and cause the generation AI to adjust the level of detail of the proposal.
[0053] When making a proposal, the proposal unit can apply different proposal algorithms depending on the category of the check method. The proposal unit, for example, identifies the category of the check method. Categories of check methods include, for example, security checks and performance checks. For example, the proposal unit applies a specific proposal algorithm to a static analysis check method. The proposal unit can also apply a different proposal algorithm to a unit test check method. Furthermore, the proposal unit can apply yet another proposal algorithm to a code review check method. This enables efficient proposals by applying the optimal proposal algorithm depending on the category of the check method. Some or all of the above-mentioned processing in the proposal unit may be performed using, or without, a generation AI. For example, the proposal unit can input category data of the check method to the generation AI and cause the generation AI to apply the proposal algorithm.
[0054] When making a proposal, the suggestion unit can improve the accuracy of the proposal by referring to the user's past proposal results. The suggestion unit, for example, analyzes the user's past proposal results. The past proposal results include, for example, the success rate of the proposal and the user's feedback. For example, the suggestion unit improves the accuracy of the proposal based on the user's past proposal results. The suggestion unit can also analyze the user's past proposal history and suggest an optimal suggestion method. Furthermore, the suggestion unit can improve the accuracy of the proposal by referring to feedback provided by the user in the past. In this way, the accuracy of the proposal can be improved by referring to the past proposal results. Some or all of the above-mentioned processing in the suggestion unit may be performed using, or without, the generation AI. For example, the suggestion unit can input the user's past proposal result data into the generation AI and cause the generation AI to improve the accuracy of the proposal.
[0055] The proposal unit can determine the priority of proposals based on the submission dates of the check methods when making proposals. The proposal unit, for example, evaluates the submission dates of the check methods. The submission dates include, for example, deadlines, project progress, etc. For example, the proposal unit prioritizes proposals for check methods with upcoming submission deadlines. The proposal unit can also postpone proposals for check methods with distant submission deadlines. Furthermore, the proposal unit can dynamically adjust the priority of proposals according to the submission dates. This enables efficient proposals by determining the priority of proposals based on the submission dates of the check methods. Some or all of the above-described processing in the proposal unit may be performed, for example, using a generation AI, or may be performed without using a generation AI. For example, the proposal unit can input submission date data of check methods into the generation AI and have the generation AI determine the priority of proposals.
[0056] The suggestion unit can adjust the order of suggestions based on the relevance of the check methods when making suggestions. The suggestion unit, for example, evaluates the relevance of the check methods. The relevance of the check methods includes, for example, functional dependencies and module relevance. For example, the suggestion unit prioritizes suggesting highly relevant check methods. The suggestion unit can also postpone less relevant check methods. Furthermore, the suggestion unit can dynamically adjust the order of suggestions based on the relevance of the check methods. This enables efficient suggestions by adjusting the order of suggestions based on the relevance of the check methods. Some or all of the above-described processing in the suggestion unit may be performed using, or without, a generation AI. For example, the suggestion unit can input relevance data of the check methods into the generation AI and cause the generation AI to adjust the order of suggestions.
[0057] When making a proposal, the suggestion unit can adjust the use of technical terminology in the proposal according to the user's level of expertise. The suggestion unit, for example, evaluates the user's level of expertise. The level of expertise includes, for example, qualifications, years of experience, etc. For example, if the user is a beginner, the suggestion unit can make a proposal that avoids technical terminology. Furthermore, if the user is an intermediate user, the suggestion unit can make a proposal that uses technical terminology appropriately. Furthermore, if the user is an advanced user, the suggestion unit can make a proposal that uses a lot of technical terminology. This enables efficient proposals by adjusting the use of technical terminology according to the user's level of expertise. Some or all of the above-mentioned processing in the suggestion unit can be performed, for example, using a generation AI or without using a generation AI. For example, the suggestion unit can input the user's level of expertise data into the generation AI and cause the generation AI to adjust the use of technical terminology.
[0058] The execution unit can adjust the level of execution detail based on the importance of the check method during execution. The execution unit, for example, evaluates the importance of the check method. The importance of the check method includes, for example, security risk, performance impact, etc. For example, the execution unit performs detailed execution for a check method with high importance. The execution unit can also perform simplified execution for a check method with low importance. Furthermore, the execution unit can dynamically adjust the level of execution detail according to the importance. This enables efficient execution by adjusting the level of execution detail based on the importance of the check method. Some or all of the above-mentioned processing in the execution unit may be performed using, for example, a generation AI, or may be performed without using the generation AI. For example, the execution unit can input importance data of the check method to the generation AI and have the generation AI adjust the level of execution detail.
[0059] The execution unit can apply different execution algorithms depending on the category of the check method during execution. The execution unit, for example, identifies the category of the check method. Check method categories include, for example, security checks and performance checks. For example, the execution unit applies a specific execution algorithm to a static analysis check method. The execution unit can also apply a different execution algorithm to a unit test check method. Furthermore, the execution unit can apply yet another execution algorithm to a code review check method. This enables efficient execution by applying the optimal execution algorithm depending on the category of the check method. Some or all of the above-mentioned processing in the execution unit may be performed using, or without, a generation AI. For example, the execution unit can input category data of the check method to the generation AI and cause the generation AI to apply the execution algorithm.
[0060] During execution, the execution unit can improve the accuracy of execution by referring to the user's past execution results. The execution unit, for example, analyzes the user's past execution results. The past execution results include, for example, the success rate of execution and the error rate. For example, the execution unit improves the accuracy of execution based on the user's past execution results. The execution unit can also analyze the user's past execution history and suggest an optimal execution method. Furthermore, the execution unit can improve the accuracy of execution by referring to feedback provided by the user in the past. In this way, the accuracy of execution can be improved by referring to the past execution results. Some or all of the above-mentioned processing in the execution unit may be performed, for example, using a generation AI or may be performed without using a generation AI. For example, the execution unit can input the user's past execution result data into the generation AI and have the generation AI improve the accuracy of execution.
[0061] During execution, the execution unit can determine the priority of execution based on the submission timing of the check method. The execution unit, for example, evaluates the submission timing of the check method. The submission timing includes, for example, a deadline, the progress of the project, etc. For example, the execution unit prioritizes execution of check methods with an upcoming submission deadline. The execution unit can also postpone check methods with a distant submission deadline. Furthermore, the execution unit can dynamically adjust the priority of execution according to the submission timing. This enables efficient execution by determining the priority of execution based on the submission timing of the check method. Some or all of the above-mentioned processing in the execution unit may be performed using, for example, a generation AI, or may be performed without using the generation AI. For example, the execution unit can input submission timing data of the check method into the generation AI and have the generation AI determine the priority of execution.
[0062] The execution unit can adjust the order of execution based on the relevance of the check methods during execution. The execution unit, for example, evaluates the relevance of the check methods. The relevance of the check methods includes, for example, functional dependencies and module relevance. For example, the execution unit prioritizes execution of highly relevant check methods. The execution unit can also postpone check methods with low relevance. Furthermore, the execution unit can dynamically adjust the order of execution according to the relevance of the check methods. This enables efficient execution by adjusting the order of execution based on the relevance of the check methods. Some or all of the above-mentioned processing in the execution unit may be performed using, for example, a generation AI, or may be performed without using the generation AI. For example, the execution unit can input relevance data of the check methods into the generation AI and have the generation AI adjust the order of execution.
[0063] During execution, the execution unit can adjust the use of technical terminology in the execution according to the user's level of expertise. The execution unit, for example, evaluates the user's level of expertise. The level of expertise includes, for example, qualifications, years of experience, etc. For example, if the user is a beginner, the execution unit can avoid using technical terminology when executing the execution. Furthermore, if the user is an intermediate user, the execution unit can moderately use technical terminology when executing the execution. Furthermore, if the user is an advanced user, the execution unit can use a lot of technical terminology when executing the execution. This enables efficient execution by adjusting the use of technical terminology according to the user's level of expertise. Some or all of the above-mentioned processing in the execution unit may be performed using, for example, a generation AI, or may be performed without using a generation AI. For example, the execution unit can input the user's level of expertise data into the generation AI and have the generation AI adjust the use of technical terminology.
[0064] During correction, the correction unit can adjust the level of detail of the correction based on the importance of the check result. The correction unit, for example, evaluates the importance of the check result. The importance of the check result includes, for example, the severity of the bug, the performance impact, etc. For example, the correction unit performs detailed correction for a check result with a high importance. The correction unit can also perform simplified correction for a check result with a low importance. Furthermore, the correction unit can dynamically adjust the level of detail of the correction according to the importance. This enables efficient correction by adjusting the level of detail of the correction based on the importance of the check result. Some or all of the above-mentioned processing in the correction unit may be performed using, for example, a generation AI, or may be performed without using a generation AI. For example, the correction unit can input importance data of the check result to the generation AI and cause the generation AI to adjust the level of detail of the correction.
[0065] During correction, the correction unit can apply different correction algorithms depending on the category of the check result. The correction unit, for example, identifies the category of the check result. The check result categories include, for example, security issues and performance issues. For example, the correction unit applies a specific correction algorithm to the static analysis check result. The correction unit can also apply a different correction algorithm to the unit test check result. Furthermore, the correction unit can apply yet another correction algorithm to the code review check result. This enables efficient correction by applying the optimal correction algorithm depending on the category of the check result. Some or all of the above-mentioned processing in the correction unit may be performed using, for example, a generation AI, or may be performed without using a generation AI. For example, the correction unit can input category data of the check result to the generation AI and cause the generation AI to apply the correction algorithm.
[0066] During correction, the correction unit can improve the accuracy of the correction by referring to the user's past correction results. The correction unit, for example, analyzes the user's past correction results. The past correction results include, for example, the correction success rate and error rate. For example, the correction unit improves the accuracy of the correction based on the user's past correction results. The correction unit can also analyze the user's past correction history and suggest an optimal correction method. Furthermore, the correction unit can improve the accuracy of the correction by referring to feedback provided by the user in the past. In this way, the accuracy of the correction can be improved by referring to the past correction results. Some or all of the above-mentioned processing in the correction unit may be performed, for example, using a generation AI or may be performed without using a generation AI. For example, the correction unit can input the user's past correction result data into the generation AI and cause the generation AI to improve the accuracy of the correction.
[0067] During correction, the correction unit can determine the priority of corrections based on the submission timing of the check results. The correction unit, for example, evaluates the submission timing of the check results. The submission timing includes, for example, a deadline, the progress of the project, etc. For example, the correction unit prioritizes correction of check results with an upcoming submission deadline. The correction unit can also postpone check results with a distant submission deadline. Furthermore, the correction unit can dynamically adjust the priority of corrections depending on the submission timing. This enables efficient corrections by determining the priority of corrections based on the submission timing of the check results. Some or all of the above-mentioned processing in the correction unit may be performed using, for example, a generation AI, or may be performed without using the generation AI. For example, the correction unit can input check result submission timing data into the generation AI and have the generation AI determine the priority of corrections.
[0068] During correction, the correction unit can adjust the correction order based on the relevance of the check results. The correction unit, for example, evaluates the relevance of the check results. The relevance of the check results includes, for example, functional dependencies and module relevance. For example, the correction unit prioritizes correction of highly relevant check results. The correction unit can also postpone check results with low relevance. Furthermore, the correction unit can dynamically adjust the correction order according to the relevance of the check results. This enables efficient correction by adjusting the correction order based on the relevance of the check results. Some or all of the above-mentioned processing in the correction unit may be performed using, for example, a generation AI, or may be performed without using a generation AI. For example, the correction unit can input relevance data of the check results into the generation AI and cause the generation AI to adjust the correction order.
[0069] During correction, the correction unit can adjust the use of technical terminology in the correction according to the user's level of expertise. The correction unit, for example, evaluates the user's level of expertise. The level of expertise includes, for example, qualifications, years of experience, etc. For example, if the user is a beginner, the correction unit can make corrections while avoiding technical terminology. Furthermore, if the user is an intermediate expert, the correction unit can make corrections while using technical terminology appropriately. Furthermore, if the user is an advanced expert, the correction unit can make corrections while using a lot of technical terminology. This enables efficient correction by adjusting the use of technical terminology according to the user's level of expertise. Some or all of the above-mentioned processing in the correction unit can be performed, for example, using a generation AI, or can be performed without using a generation AI. For example, the correction unit can input the user's level of expertise data into the generation AI and cause the generation AI to adjust the use of technical terminology.
[0070] The system according to the embodiment is not limited to the above-described example, and various modifications are possible, for example, as follows.
[0071] The reception unit can analyze the user's input content in real time and present appropriate completion candidates based on the input content. For example, while the user is inputting part of a program, the reception unit analyzes the content and presents candidates for the code to be input next. The reception unit can also detect grammatical errors and type errors in the code input by the user in real time and present correction candidates. Furthermore, the reception unit can learn the user's input history and present completion candidates optimized for each individual user. This can improve the user's input efficiency.
[0072] The execution unit can visually display the execution results of the checking methods. For example, the execution unit can display the results of static analysis in graphs and charts, visually indicating the location and frequency of errors. The execution unit can also display the results of unit tests with a pass / fail status and provide detailed results for each test case. Furthermore, the execution unit can display the results of dynamic analysis in a timeline format, allowing users to visually check the behavior of the program as it runs. This allows users to intuitively understand the check results.
[0073] The execution unit can analyze the user's past execution history and propose the optimal execution method. For example, the execution unit can prioritize and propose execution methods that the user has used successfully in the past. The execution unit can also make proposals that avoid execution methods that the user has used unsuccessfully in the past. Furthermore, the execution unit can learn from the user's past execution history and propose an execution method that is optimized for each individual user. This can improve the user's execution efficiency.
[0074] The suggestion unit can analyze the user's past feedback and customize the content of the suggestions. For example, the suggestion unit can prioritize and suggest suggested methods that the user has previously given high ratings to. The suggestion unit can also make suggestions that avoid suggested methods that the user has previously given low ratings to. Furthermore, the suggestion unit can learn from the user's past feedback and provide suggested content that is optimized for each individual user. This can improve user satisfaction.
[0075] The suggestion unit can suggest the optimal check method in consideration of the progress of the user's current project. For example, the suggestion unit can suggest a basic check method in the early stages of the project, a detailed check method in the middle stages of the project, and a comprehensive check method for final confirmation in the final stages of the project. This makes it possible to provide the optimal check method according to the progress of the project.
[0076] The processing flow of the first embodiment will be briefly explained below.
[0077] Step 1: The reception unit accepts program input. Program input includes source code, scripts, binary files, etc. The reception unit not only accepts the program entered by the user, but also uses generative AI to analyze the user's input and convert it into an appropriate format. Step 2: The conversion unit converts the program received by the reception unit into a specified language. Specified languages include Python, Java, C++, etc. The conversion unit uses a generative AI to analyze the program structure and convert it into the appropriate language. Step 3: The proposal unit proposes a checking method for the program converted by the conversion unit. Checking methods include static analysis, unit testing, code review, dynamic analysis, security scanning, etc. The proposal unit uses generative AI to suggest the optimal checking method based on the characteristics of the program. Step 4: The execution unit executes the check methods proposed by the proposal unit. Using the generative AI, the execution unit executes check methods such as static analysis, unit testing, and code review to check for syntax and type errors in the program, verify the operation of each function and method, and evaluate the readability and maintainability of the program. Step 5: The fixer fixes the program based on the results of the checking methods performed by the executor. The fixer uses generative AI to fix errors detected by static analysis, problems detected by unit testing, and problems pointed out in code reviews.
[0078] (Example 2) A system according to an embodiment of the present invention solves the problem of hallucination, which is the output of erroneous information when a program is converted into a language using a generation AI. This system accepts program input, converts the program into a specified language, proposes check methods for the converted program, executes the proposed check methods, and modifies the program based on the results of the check methods. This allows the system to create highly accurate programs that are closed to the generation AI. For example, the system inputs a program that a user wants to convert. The generation AI then converts the program into a specified language. The generation AI then proposes multiple check methods for the converted program. These check methods include static analysis, unit testing, code review, dynamic analysis, and security scanning. The generation AI continues to modify the program until all check methods pass. This reduces the risk of outputting erroneous information and provides highly accurate programs.
[0079] A program conversion system according to an embodiment includes a receiving unit, a converting unit, a proposing unit, an executing unit, and a correcting unit. The receiving unit accepts a program input. The program input may include, but is not limited to, source code, scripts, binary files, and the like. The receiving unit may accept, for example, a program input by a user. The receiving unit may also use a generating AI to analyze the user input and convert it into an appropriate format. The converting unit converts the program accepted by the receiving unit into a specified language. The specified language may include, but is not limited to, Python, Java, C++, and the like. The converting unit converts the program into the specified language using the generating AI. For example, the generating AI may analyze the program structure and convert it into an appropriate language. The proposing unit proposes a check method for the program converted by the converting unit. Examples of check methods include, but are not limited to, static analysis, unit testing, code review, dynamic analysis, and security scanning. The proposing unit proposes an appropriate check method using the generating AI. For example, the generating AI may propose an optimal check method based on the program's characteristics. The executing unit executes the check method proposed by the proposing unit. The execution unit executes the proposed checking method using a generation AI. For example, the execution unit performs static analysis to detect syntax errors and type errors in the program. The execution unit can also perform unit testing to confirm whether each function and method of the program operates correctly. The execution unit can also perform code reviews to evaluate the readability and maintainability of the program. The correction unit corrects the program based on the results of the checking method executed by the execution unit. The correction unit corrects the program based on the results of the checking method using a generation AI. For example, the correction unit corrects errors detected by static analysis. The correction unit can also correct problems detected by unit testing. The correction unit can also correct problems pointed out in code reviews. As a result, the program conversion system according to the embodiment uses a generation AI to automate program language conversion and its checking, thereby creating highly accurate programs.
[0080] The suggestion department can propose checking methods such as static analysis, unit testing, code review, dynamic analysis, and security scanning. For example, the suggestion department proposes static analysis. Static analysis detects syntax errors and type errors in a program. For example, the suggestion department uses the Lint tool to detect syntax errors in a program. The suggestion department can also perform type checking to detect type errors in a program. The suggestion department can also propose code reviews to evaluate the quality of the code. Unit testing checks whether each function and method of a program works correctly. For example, the suggestion department can propose unit tests for Java programs using JUnit. The suggestion department can also propose unit tests for Python programs using pytest. Code reviews evaluate the readability and maintainability of a program. For example, the suggestion department can propose pair programming, in which two programmers collaborate to review code. The suggestion department can also evaluate the quality of a program based on code review guidelines. Dynamic analysis checks the behavior of a program at runtime. For example, the suggestion department can propose profiling to evaluate program performance. The suggestion department can also propose memory leak detection to check the memory usage of a program. Security scanning detects security risks in a program. For example, the suggestion unit can suggest vulnerability scans to detect security holes in the program. The suggestion unit can also suggest security tests to evaluate the security measures of the program. This allows the quality of the program to be improved by suggesting various check methods.
[0081] The execution unit can execute the proposed checking method. For example, the execution unit executes the proposed static analysis. Static analysis detects syntax errors, type errors, and the like in the program. For example, the execution unit uses a Lint tool to detect syntax errors in the program. The execution unit can also perform type checking to detect type errors in the program. Furthermore, the execution unit can execute code reviews to evaluate the quality of the code. For example, the execution unit executes the proposed unit tests. Unit tests confirm whether each function and method of the program operates correctly. For example, the execution unit executes unit tests for Java programs using JUnit. The execution unit can also execute unit tests for Python programs using pytest. For example, the execution unit executes the proposed code reviews. Code reviews evaluate the readability and maintainability of the program. For example, the execution unit executes pair programming, in which two programmers collaborate to review code. The execution unit can also evaluate the quality of the program based on code review guidelines. For example, the execution unit executes the proposed dynamic analysis. Dynamic analysis confirms the behavior of the program at runtime. For example, the execution unit performs profiling to evaluate the performance of the program. The execution unit can also perform memory leak detection to check the memory usage of the program. The execution unit can also perform a proposed security scan, for example. The security scan detects security risks in the program. For example, the execution unit can perform a vulnerability scan to detect security holes in the program. The execution unit can also perform a security test to evaluate the security measures of the program. In this way, the quality of the program can be confirmed by executing the proposed check method.
[0082] The correction department can correct the program based on the results of the checking method. The correction department corrects the program based on, for example, the results of static analysis. Static analysis detects syntax errors, type errors, and the like in the program. For example, the correction department corrects syntax errors detected using a Lint tool. The correction department can also correct type errors detected by type checking. Furthermore, the correction department can correct the program based on the results of code review to improve code quality. For example, the correction department corrects the program based on the results of unit testing. Unit testing verifies whether each function and method of the program operates correctly. For example, the correction department corrects problems detected using JUnit. The correction department can also fix problems detected using pytest. The correction department corrects the program based on, for example, the results of code review. Code review evaluates the readability and maintainability of the program. For example, the correction department corrects problems pointed out in pair programming. The correction department can also fix problems pointed out based on code review guidelines. The correction department corrects the program based on, for example, the results of dynamic analysis. Dynamic analysis verifies the runtime behavior of the program. For example, the correction unit corrects performance problems detected by profiling. The correction unit can also correct memory usage problems detected by memory leak detection. The correction unit corrects the program based on, for example, the results of a security scan. In a security scan, security risks in the program are detected. For example, the correction unit corrects security holes detected in a vulnerability scan. The correction unit can also correct problems with security measures detected in a security test. In this way, by correcting the program based on the check results, the quality of the program can be improved.
[0083] The execution unit may include a static analysis unit that performs static analysis. The static analysis unit detects, for example, syntax errors and type errors in a program. For example, the static analysis unit detects syntax errors in a program using a Lint tool. The static analysis unit can also perform type checks to detect type errors in a program. Furthermore, the static analysis unit can also perform code reviews to evaluate the quality of the code. As a result, static analysis can detect syntax errors and type errors in a program.
[0084] The execution unit may include a unit testing unit that performs unit testing. The unit testing unit, for example, checks whether each function or method of a program operates correctly. For example, the unit testing unit uses JUnit to perform unit testing of a Java program. The unit testing unit may also use pytest to perform unit testing of a Python program. Furthermore, the unit testing unit may also perform code reviews to evaluate the quality of the code. Thus, by performing unit testing, it is possible to check whether each function or method of a program operates correctly.
[0085] The execution unit may include a code review unit that performs code reviews. The code review unit evaluates, for example, the readability and maintainability of a program. For example, the code review unit may perform pair programming, in which two programmers collaborate to review code. The code review unit may also evaluate the quality of a program based on code review guidelines. Furthermore, the code review unit may refer to the results of static analysis and unit testing to improve code quality. In this way, the readability and maintainability of a program can be evaluated by performing code reviews.
[0086] The execution unit may include a dynamic analysis unit that performs dynamic analysis. The dynamic analysis unit, for example, checks the behavior of the program when it is executed. For example, the dynamic analysis unit performs profiling to evaluate the performance of the program. The dynamic analysis unit can also perform memory leak detection and check the memory usage status of the program. Furthermore, the dynamic analysis unit can collect and analyze log data to analyze the behavior of the program when it is executed in detail. In this way, the behavior of the program when it is executed can be checked by performing dynamic analysis.
[0087] The execution unit may include a security scanning unit that performs security scans. The security scanning unit detects, for example, security risks in a program. For example, the security scanning unit performs a vulnerability scan to detect security holes in a program. The security scanning unit may also perform security tests to evaluate security measures in a program. Furthermore, the security scanning unit may collect and analyze security logs to analyze the security risks of a program in detail. In this way, security risks in a program can be detected by performing a security scan.
[0088] The correction unit may include a feedback unit that feeds back the results of the checking method. The feedback unit, for example, feeds back the results of the checking method. For example, the feedback unit may generate an error report and report problems with the program. The feedback unit may also generate a performance report and evaluate the performance of the program. Furthermore, the feedback unit may also generate a security report and report security risks of the program. In this way, by feeding back the check results, the accuracy of program correction can be improved.
[0089] The proposal unit may include an evaluation unit that evaluates the reliability of the checking method. The evaluation unit, for example, evaluates the reliability of the checking method. For example, the evaluation unit evaluates test coverage to confirm the comprehensiveness of the checking method. The evaluation unit may also evaluate an error rate to confirm the accuracy of the checking method. Furthermore, in order to improve the reliability of the checking method, the evaluation unit may build a feedback loop and improve the checking method based on the evaluation results. In this way, by evaluating the reliability of the checking method, it is possible to propose a more reliable checking method.
[0090] The reception unit can estimate the user's emotions and optimize the input timing of the program based on the estimated user emotions. The reception unit, for example, estimates the user's emotions. Emotion estimation is performed using technologies such as facial expression recognition, voice analysis, and text analysis. For example, the reception unit analyzes the user's facial expressions captured with a camera to estimate the emotion. The reception unit can also analyze the user's voice recorded with a microphone to estimate the emotion. The reception unit can also analyze text entered by the user to estimate the emotion. The reception unit optimizes the input timing of the program based on the estimated user emotions. For example, if the user is feeling stressed, the reception unit delays the input timing and waits until the user relaxes. If the user is concentrating, the reception unit can also speed up the input timing to encourage efficient input. Furthermore, if the user is tired, the reception unit can adjust the input timing and suggest taking a break. This enables efficient program input by adjusting the input timing according to the user's emotions. Emotion estimation is achieved using an emotion estimation function, for example, an emotion engine or generative AI. The generation AI may be a text generation AI (e.g., LLM) or a multimodal generation AI, but is not limited to such examples.
[0091] The reception unit can analyze the user's past program input history and select an appropriate input method. The reception unit, for example, analyzes the user's past program input history. The past program input history includes, for example, input frequency, input content, and input method. For example, the reception unit preferentially suggests input methods (voice, text, etc.) that the user has frequently used in the past. The reception unit can also predict and suggest an input method to be used during a specific time period based on the user's past input history. Furthermore, the reception unit can select an optimal input method based on the types of programs the user has previously input. In this way, by analyzing the past input history, it is possible to provide the user with an optimal input method. Some or all of the above-described processing in the reception unit may be performed using, or without, a generation AI. For example, the reception unit can input the user's past input history data into the generation AI and have the generation AI select an optimal input method.
[0092] The reception unit may filter the programs based on the user's current projects and areas of interest when the programs are input. The reception unit, for example, identifies the user's current projects and areas of interest. The current projects and areas of interest may include, for example, a project management tool, the user's history, and social media activity. For example, the reception unit may acquire the user's current project information from a project management tool. The reception unit may also identify the user's areas of interest from the user's past history. Furthermore, the reception unit may analyze social media activity to identify the user's areas of interest. The reception unit may filter the programs based on the identified current projects and areas of interest when the programs are input. For example, the reception unit may display only programs related to the project the user is currently working on. The reception unit may also preferentially display related programs based on the user's areas of interest. Furthermore, the reception unit may filter programs based on areas in which the user has previously shown interest. As a result, highly relevant programs can be provided by filtering based on the user's projects and areas of interest. Some or all of the above-described processing in the reception unit may be performed using, for example, a generation AI, or may be performed without using a generation AI. For example, the reception unit can input the user's project information and area of interest data into the generation AI and have the generation AI perform filtering.
[0093] The reception unit can select an appropriate input means depending on the user's input method when inputting a program. The reception unit, for example, identifies the user's input method. Input methods include, for example, keyboard input, voice input, and image input. For example, if the user prefers voice input, the reception unit can prioritize voice input. Furthermore, if the user prefers text input, the reception unit can prioritize text input. Furthermore, if the user prefers image input, the reception unit can prioritize image input. The reception unit selects an appropriate input means depending on the identified input method. For example, the reception unit can convert what the user dictates into text using voice input. Furthermore, the reception unit can treat the text entered by the user as a program using text input. Furthermore, the reception unit can analyze image data provided by the user and treat it as a program using image input. This enables efficient program input by selecting the optimal means depending on the user's input method. Some or all of the above-described processing in the reception unit may be performed using, for example, a generation AI, or may be performed without using a generation AI. For example, the reception unit can input the user's input method data to the generation AI and cause the generation AI to select the optimal input means.
[0094] The reception unit can estimate the user's emotions and optimize the priority of programs to be input based on the estimated user emotions. The reception unit, for example, estimates the user's emotions. Emotion estimation is performed using technologies such as facial expression recognition, voice analysis, and text analysis. For example, the reception unit analyzes the user's facial expressions captured with a camera to estimate emotions. The reception unit can also analyze the user's voice recorded with a microphone to estimate emotions. The reception unit can also analyze text input by the user to estimate emotions. The reception unit optimizes the priority of programs to be input based on the estimated user emotions. For example, if the user is stressed, the reception unit can prioritize input of less important programs. Also, if the user is concentrating, the reception unit can prioritize input of more important programs. Furthermore, if the user is tired, the reception unit can prioritize input of easier programs. This enables efficient program input by determining the priority of programs according to the user's emotions. Emotion estimation is realized using an emotion estimation function, for example, an emotion engine or a generative AI. The generation AI may be a text generation AI (e.g., LLM) or a multimodal generation AI, but is not limited to such examples.
[0095] When inputting a program, the reception unit can prioritize inputting highly relevant programs by taking into account the user's geographical location information. The reception unit, for example, acquires the user's geographical location information. The geographical location information includes, for example, GPS data, an IP address, etc. For example, if the user is in a specific area, the reception unit can prioritize inputting programs related to that area. Furthermore, if the user is traveling, the reception unit can prioritize inputting programs related to the user's travel destination. Furthermore, if the user is at home, the reception unit can prioritize inputting programs related to the user's home. In this way, highly relevant programs can be provided by taking the user's geographical location information into account. Some or all of the above-described processing in the reception unit may be performed using, or without, a generation AI. For example, the reception unit can input the user's geographical location information data into the generation AI and cause the generation AI to select highly relevant programs.
[0096] When inputting a program, the reception unit can analyze the user's social media activity and input a relevant program. The reception unit, for example, analyzes the user's social media activity. Social media activity includes, for example, the content of posts and the reactions of followers. For example, the reception unit inputs a relevant program based on the content the user shared on social media. The reception unit can also analyze the content of the user's social media posts and input a relevant program. Furthermore, the reception unit can input a relevant program based on the activity of the user's friends on social media. In this way, by analyzing the user's social media activity, it is possible to provide a highly relevant program. Some or all of the above-described processing in the reception unit may be performed using, for example, a generation AI, or may be performed without using a generation AI. For example, the reception unit can input the user's social media activity data into the generation AI and cause the generation AI to select a relevant program.
[0097] The reception unit can customize the input method by reflecting the user's past feedback when inputting data into the program. The reception unit, for example, analyzes the user's past feedback. The past feedback includes, for example, the user's ratings and comments. For example, the reception unit customizes the input method based on feedback provided by the user in the past. The reception unit can also suggest an optimal input method based on the user's past feedback. Furthermore, the reception unit can customize the input method by avoiding input methods that the user has previously expressed dissatisfaction with. This makes it possible to provide the user with an optimal input method by reflecting past feedback. Some or all of the above-described processing in the reception unit may be performed using, or without, a generation AI. For example, the reception unit can input the user's past feedback data into the generation AI and have the generation AI customize the input method.
[0098] The conversion unit can estimate the user's emotions and optimize the conversion expression method based on the estimated user emotions. The conversion unit, for example, estimates the user's emotions. Emotion estimation is performed using technologies such as facial expression recognition, voice analysis, and text analysis. For example, the conversion unit analyzes the user's facial expressions captured with a camera to estimate emotions. The conversion unit can also analyze the user's voice recorded with a microphone to estimate emotions. The conversion unit can also analyze text entered by the user to estimate emotions. The conversion unit optimizes the conversion expression method based on the estimated user emotions. For example, if the user is relaxed, the conversion unit performs conversion that proceeds at a leisurely pace. If the user is in a hurry, the conversion unit can perform conversion that emphasizes the shortest route. Furthermore, if the user is excited, the conversion unit can perform conversion that adds visually stimulating effects. This enables efficient program conversion by adjusting the conversion expression method according to the user's emotions. Emotion estimation is achieved using an emotion estimation function, for example, an emotion engine or generative AI. The generation AI may be a text generation AI (e.g., LLM) or a multimodal generation AI, but is not limited to such examples.
[0099] The conversion unit can adjust the level of detail of the conversion based on the importance of the program during conversion. The conversion unit, for example, evaluates the importance of the program. The importance of the program includes, for example, project priority, business impact, etc. For example, the conversion unit performs detailed conversion for a program with high importance. The conversion unit can also perform simplified conversion for a program with low importance. Furthermore, the conversion unit can dynamically adjust the level of detail of the conversion according to the importance. This enables efficient program conversion by adjusting the level of detail of the conversion according to the importance of the program. Some or all of the above-mentioned processing in the conversion unit may be performed using, for example, a generation AI, or may be performed without using a generation AI. For example, the conversion unit can input program importance data to the generation AI and cause the generation AI to adjust the level of detail of the conversion.
[0100] During conversion, the conversion unit can apply different conversion algorithms depending on the program category. The conversion unit, for example, identifies the program category. Program categories include, for example, web applications, mobile applications, and desktop applications. For example, the conversion unit applies a specific conversion algorithm to a web application program. The conversion unit can also apply a different conversion algorithm to a mobile application program. Furthermore, the conversion unit can apply yet another conversion algorithm to a desktop application program. This enables efficient program conversion by applying the optimal conversion algorithm depending on the program category. Some or all of the above-described processing in the conversion unit may be performed using, or without, a generation AI. For example, the conversion unit can input program category data to the generation AI and cause the generation AI to apply the conversion algorithm.
[0101] During conversion, the conversion unit can improve the accuracy of the conversion by referring to the user's past conversion results. The conversion unit, for example, analyzes the user's past conversion results. The past conversion results include, for example, the conversion success rate and error rate. For example, the conversion unit improves the accuracy of the conversion based on the user's past conversion results. The conversion unit can also analyze the user's past conversion history and suggest an optimal conversion method. Furthermore, the conversion unit can improve the accuracy of the conversion by referring to feedback provided by the user in the past. In this way, the accuracy of the conversion can be improved by referring to the past conversion results. Some or all of the above-mentioned processing in the conversion unit may be performed, for example, using a generation AI, or may be performed without using a generation AI. For example, the conversion unit can input the user's past conversion result data into the generation AI and have the generation AI improve the accuracy of the conversion.
[0102] The conversion unit can estimate the user's emotion and optimize the length of the conversion based on the estimated user emotion. The conversion unit, for example, estimates the user's emotion. Emotion estimation is performed using technologies such as facial expression recognition, voice analysis, and text analysis. For example, the conversion unit analyzes the user's facial expression captured with a camera to estimate the emotion. The conversion unit can also analyze the user's voice recorded with a microphone to estimate the emotion. Furthermore, the conversion unit can analyze text entered by the user to estimate the emotion. The conversion unit optimizes the length of the conversion based on the estimated user emotion. For example, if the user is in a hurry, the conversion unit can perform a short, concise conversion. If the user is relaxed, the conversion unit can perform a longer conversion including detailed explanations. Furthermore, if the user is excited, the conversion unit can perform a conversion that adds visually stimulating effects. This enables efficient program conversion by adjusting the length of the conversion according to the user's emotion. Emotion estimation is achieved using an emotion estimation function, for example, an emotion engine or generative AI. The generation AI may be a text generation AI (e.g., LLM) or a multimodal generation AI, but is not limited to such examples.
[0103] During conversion, the conversion unit can determine the priority of conversion based on the program submission date. The conversion unit, for example, evaluates the program submission date. The submission date includes, for example, a deadline, the progress of the project, etc. For example, the conversion unit prioritizes conversion of programs with an upcoming submission deadline. The conversion unit can also postpone programs with a distant submission deadline. Furthermore, the conversion unit can dynamically adjust the conversion priority according to the submission date. This enables efficient program conversion by determining the conversion priority based on the program submission date. Some or all of the above-described processing in the conversion unit may be performed using, or without, a generation AI. For example, the conversion unit can input program submission date data into the generation AI and have the generation AI determine the conversion priority.
[0104] The conversion unit can adjust the order of conversion based on the program relevance during conversion. The conversion unit, for example, evaluates the program relevance. The program relevance includes, for example, functional dependency and module relevance. For example, the conversion unit prioritizes conversion of highly relevant programs. The conversion unit can also postpone conversion of less relevant programs. Furthermore, the conversion unit can dynamically adjust the order of conversion according to the program relevance. This enables efficient program conversion by adjusting the order of conversion based on the program relevance. Some or all of the above-described processing in the conversion unit may be performed using, for example, a generation AI, or may be performed without using a generation AI. For example, the conversion unit can input program relevance data into the generation AI and cause the generation AI to adjust the order of conversion.
[0105] During conversion, the conversion unit can adjust the use of technical terminology in the conversion according to the user's level of expertise. The conversion unit, for example, evaluates the user's level of expertise. The level of expertise includes, for example, qualifications and years of experience. For example, if the user is a beginner, the conversion unit can avoid using technical terminology when performing conversion. Furthermore, if the user is an intermediate user, the conversion unit can perform conversion using a moderate amount of technical terminology. Furthermore, if the user is an advanced user, the conversion unit can perform conversion using a large amount of technical terminology. This enables efficient program conversion by adjusting the use of technical terminology according to the user's level of expertise. Some or all of the above-described processing in the conversion unit may be performed using, for example, a generation AI, or may be performed without using a generation AI. For example, the conversion unit can input the user's level of expertise data into the generation AI and have the generation AI adjust the use of technical terminology.
[0106] The suggestion unit can estimate the user's emotions and optimize the way suggestions are presented based on the estimated user emotions. The suggestion unit, for example, estimates the user's emotions. Emotion estimation is performed using technologies such as facial expression recognition, voice analysis, and text analysis. For example, the suggestion unit analyzes the user's facial expressions captured with a camera to estimate the emotion. The suggestion unit can also analyze the user's voice recorded with a microphone to estimate the emotion. The suggestion unit can also analyze text entered by the user to estimate the emotion. The suggestion unit optimizes the way suggestions are presented based on the estimated user emotions. For example, if the user is relaxed, the suggestion unit can make suggestions that progress at a leisurely pace. If the user is in a hurry, the suggestion unit can make suggestions that emphasize the shortest route. Furthermore, if the user is excited, the suggestion unit can make suggestions that add visually stimulating effects. This enables efficient suggestions by adjusting the way suggestions are presented according to the user's emotions. Emotion estimation is achieved using an emotion estimation function, for example, an emotion engine or generative AI. The generation AI may be a text generation AI (e.g., LLM) or a multimodal generation AI, but is not limited to such examples.
[0107] The suggestion unit can adjust the level of detail of the proposal based on the importance of the check method when making a proposal. The suggestion unit, for example, evaluates the importance of the check method. The importance of the check method includes, for example, security risk, performance impact, etc. For example, the suggestion unit makes a detailed proposal for a check method with high importance. The suggestion unit can also make a simplified proposal for a check method with low importance. Furthermore, the suggestion unit can dynamically adjust the level of detail of the proposal according to the importance. This enables efficient proposals by adjusting the level of detail of the proposal based on the importance of the check method. Some or all of the above-mentioned processing in the suggestion unit may be performed using, or without, a generation AI. For example, the suggestion unit can input importance data of the check method into the generation AI and cause the generation AI to adjust the level of detail of the proposal.
[0108] When making a proposal, the proposal unit can apply different proposal algorithms depending on the category of the check method. The proposal unit, for example, identifies the category of the check method. Categories of check methods include, for example, security checks and performance checks. For example, the proposal unit applies a specific proposal algorithm to a static analysis check method. The proposal unit can also apply a different proposal algorithm to a unit test check method. Furthermore, the proposal unit can apply yet another proposal algorithm to a code review check method. This enables efficient proposals by applying the optimal proposal algorithm depending on the category of the check method. Some or all of the above-mentioned processing in the proposal unit may be performed using, or without, a generation AI. For example, the proposal unit can input category data of the check method to the generation AI and cause the generation AI to apply the proposal algorithm.
[0109] When making a proposal, the suggestion unit can improve the accuracy of the proposal by referring to the user's past proposal results. The suggestion unit, for example, analyzes the user's past proposal results. The past proposal results include, for example, the success rate of the proposal and the user's feedback. For example, the suggestion unit improves the accuracy of the proposal based on the user's past proposal results. The suggestion unit can also analyze the user's past proposal history and suggest an optimal suggestion method. Furthermore, the suggestion unit can improve the accuracy of the proposal by referring to feedback provided by the user in the past. In this way, the accuracy of the proposal can be improved by referring to the past proposal results. Some or all of the above-mentioned processing in the suggestion unit may be performed using, or without, the generation AI. For example, the suggestion unit can input the user's past proposal result data into the generation AI and cause the generation AI to improve the accuracy of the proposal.
[0110] The suggestion unit can estimate the user's emotion and optimize the length of the suggestion based on the estimated user's emotion. The suggestion unit, for example, estimates the user's emotion. Emotion estimation is performed using technologies such as facial expression recognition, voice analysis, and text analysis. For example, the suggestion unit analyzes the user's facial expression captured with a camera to estimate the emotion. The suggestion unit can also analyze the user's voice recorded with a microphone to estimate the emotion. The suggestion unit can also analyze text entered by the user to estimate the emotion. The suggestion unit optimizes the length of the suggestion based on the estimated user's emotion. For example, if the user is in a hurry, the suggestion unit can make a short, to-the-point suggestion. If the user is relaxed, the suggestion unit can make a longer suggestion with detailed explanations. Furthermore, if the user is excited, the suggestion unit can make a suggestion with visually stimulating effects. This enables efficient suggestions by adjusting the length of the suggestion according to the user's emotion. Emotion estimation is achieved using an emotion estimation function, for example, an emotion engine or generative AI. The generation AI may be a text generation AI (e.g., LLM) or a multimodal generation AI, but is not limited to such examples.
[0111] The proposal unit can determine the priority of proposals based on the submission dates of the check methods when making proposals. The proposal unit, for example, evaluates the submission dates of the check methods. The submission dates include, for example, deadlines, project progress, etc. For example, the proposal unit prioritizes proposals for check methods with upcoming submission deadlines. The proposal unit can also postpone proposals for check methods with distant submission deadlines. Furthermore, the proposal unit can dynamically adjust the priority of proposals according to the submission dates. This enables efficient proposals by determining the priority of proposals based on the submission dates of the check methods. Some or all of the above-described processing in the proposal unit may be performed, for example, using a generation AI, or may be performed without using a generation AI. For example, the proposal unit can input submission date data of check methods into the generation AI and have the generation AI determine the priority of proposals.
[0112] The suggestion unit can adjust the order of suggestions based on the relevance of the check methods when making suggestions. The suggestion unit, for example, evaluates the relevance of the check methods. The relevance of the check methods includes, for example, functional dependencies and module relevance. For example, the suggestion unit prioritizes suggesting highly relevant check methods. The suggestion unit can also postpone less relevant check methods. Furthermore, the suggestion unit can dynamically adjust the order of suggestions based on the relevance of the check methods. This enables efficient suggestions by adjusting the order of suggestions based on the relevance of the check methods. Some or all of the above-described processing in the suggestion unit may be performed using, or without, a generation AI. For example, the suggestion unit can input relevance data of the check methods into the generation AI and cause the generation AI to adjust the order of suggestions.
[0113] When making a proposal, the suggestion unit can adjust the use of technical terminology in the proposal according to the user's level of expertise. The suggestion unit, for example, evaluates the user's level of expertise. The level of expertise includes, for example, qualifications, years of experience, etc. For example, if the user is a beginner, the suggestion unit can make a proposal that avoids technical terminology. Furthermore, if the user is an intermediate user, the suggestion unit can make a proposal that uses technical terminology appropriately. Furthermore, if the user is an advanced user, the suggestion unit can make a proposal that uses a lot of technical terminology. This enables efficient proposals by adjusting the use of technical terminology according to the user's level of expertise. Some or all of the above-mentioned processing in the suggestion unit can be performed, for example, using a generation AI or without using a generation AI. For example, the suggestion unit can input the user's level of expertise data into the generation AI and cause the generation AI to adjust the use of technical terminology.
[0114] The execution unit can estimate the user's emotions and optimize the execution method based on the estimated user emotions. The execution unit, for example, estimates the user's emotions. Emotion estimation is performed using technologies such as facial expression recognition, voice analysis, and text analysis. For example, the execution unit analyzes the user's facial expressions captured with a camera to estimate the emotions. The execution unit can also analyze the user's voice recorded with a microphone to estimate the emotions. Furthermore, the execution unit can analyze text entered by the user to estimate the emotions. The execution unit optimizes the execution method based on the estimated user emotions. For example, if the user is relaxed, the execution unit performs execution at a leisurely pace. If the user is in a hurry, the execution unit can perform execution that emphasizes the shortest route. Furthermore, if the user is excited, the execution unit can perform execution with visually stimulating effects. This enables efficient execution by adjusting the execution method according to the user's emotions. Emotion estimation is realized using an emotion estimation function, for example, an emotion engine or generative AI. The generation AI may be a text generation AI (e.g., LLM) or a multimodal generation AI, but is not limited to such examples.
[0115] The execution unit can adjust the level of execution detail based on the importance of the check method during execution. The execution unit, for example, evaluates the importance of the check method. The importance of the check method includes, for example, security risk, performance impact, etc. For example, the execution unit performs detailed execution for a check method with high importance. The execution unit can also perform simplified execution for a check method with low importance. Furthermore, the execution unit can dynamically adjust the level of execution detail according to the importance. This enables efficient execution by adjusting the level of execution detail based on the importance of the check method. Some or all of the above-mentioned processing in the execution unit may be performed using, for example, a generation AI, or may be performed without using the generation AI. For example, the execution unit can input importance data of the check method to the generation AI and have the generation AI adjust the level of execution detail.
[0116] The execution unit can apply different execution algorithms depending on the category of the check method during execution. The execution unit, for example, identifies the category of the check method. Check method categories include, for example, security checks and performance checks. For example, the execution unit applies a specific execution algorithm to a static analysis check method. The execution unit can also apply a different execution algorithm to a unit test check method. Furthermore, the execution unit can apply yet another execution algorithm to a code review check method. This enables efficient execution by applying the optimal execution algorithm depending on the category of the check method. Some or all of the above-mentioned processing in the execution unit may be performed using, or without, a generation AI. For example, the execution unit can input category data of the check method to the generation AI and cause the generation AI to apply the execution algorithm.
[0117] During execution, the execution unit can improve the accuracy of execution by referring to the user's past execution results. The execution unit, for example, analyzes the user's past execution results. The past execution results include, for example, the success rate of execution and the error rate. For example, the execution unit improves the accuracy of execution based on the user's past execution results. The execution unit can also analyze the user's past execution history and suggest an optimal execution method. Furthermore, the execution unit can improve the accuracy of execution by referring to feedback provided by the user in the past. In this way, the accuracy of execution can be improved by referring to the past execution results. Some or all of the above-mentioned processing in the execution unit may be performed, for example, using a generation AI or may be performed without using a generation AI. For example, the execution unit can input the user's past execution result data into the generation AI and have the generation AI improve the accuracy of execution.
[0118] The execution unit can estimate the user's emotions and optimize the length of the execution based on the estimated user emotions. The execution unit, for example, estimates the user's emotions. Emotion estimation is performed using technologies such as facial expression recognition, voice analysis, and text analysis. For example, the execution unit analyzes the user's facial expressions captured with a camera to estimate emotions. The execution unit can also analyze the user's voice recorded with a microphone to estimate emotions. Furthermore, the execution unit can analyze text entered by the user to estimate emotions. The execution unit optimizes the length of the execution based on the estimated user emotions. For example, if the user is in a hurry, the execution unit can perform a short, to-the-point execution. If the user is relaxed, the execution unit can perform a longer execution with detailed explanations. Furthermore, if the user is excited, the execution unit can perform an execution with visually stimulating effects. This enables efficient execution by adjusting the length of the execution according to the user's emotions. Emotion estimation is achieved using an emotion estimation function, for example, an emotion engine or generative AI. The generation AI may be a text generation AI (e.g., LLM) or a multimodal generation AI, but is not limited to such examples.
[0119] During execution, the execution unit can determine the priority of execution based on the submission timing of the check method. The execution unit, for example, evaluates the submission timing of the check method. The submission timing includes, for example, a deadline, the progress of the project, etc. For example, the execution unit prioritizes execution of check methods with an upcoming submission deadline. The execution unit can also postpone check methods with a distant submission deadline. Furthermore, the execution unit can dynamically adjust the priority of execution according to the submission timing. This enables efficient execution by determining the priority of execution based on the submission timing of the check method. Some or all of the above-mentioned processing in the execution unit may be performed using, for example, a generation AI, or may be performed without using the generation AI. For example, the execution unit can input submission timing data of the check method into the generation AI and have the generation AI determine the priority of execution.
[0120] The execution unit can adjust the order of execution based on the relevance of the check methods during execution. The execution unit, for example, evaluates the relevance of the check methods. The relevance of the check methods includes, for example, functional dependencies and module relevance. For example, the execution unit prioritizes execution of highly relevant check methods. The execution unit can also postpone check methods with low relevance. Furthermore, the execution unit can dynamically adjust the order of execution according to the relevance of the check methods. This enables efficient execution by adjusting the order of execution based on the relevance of the check methods. Some or all of the above-mentioned processing in the execution unit may be performed using, for example, a generation AI, or may be performed without using the generation AI. For example, the execution unit can input relevance data of the check methods into the generation AI and have the generation AI adjust the order of execution.
[0121] During execution, the execution unit can adjust the use of technical terminology in the execution according to the user's level of expertise. The execution unit, for example, evaluates the user's level of expertise. The level of expertise includes, for example, qualifications, years of experience, etc. For example, if the user is a beginner, the execution unit can avoid using technical terminology when executing the execution. Furthermore, if the user is an intermediate user, the execution unit can moderately use technical terminology when executing the execution. Furthermore, if the user is an advanced user, the execution unit can use a lot of technical terminology when executing the execution. This enables efficient execution by adjusting the use of technical terminology according to the user's level of expertise. Some or all of the above-mentioned processing in the execution unit may be performed using, for example, a generation AI, or may be performed without using a generation AI. For example, the execution unit can input the user's level of expertise data into the generation AI and have the generation AI adjust the use of technical terminology.
[0122] The correction unit can estimate the user's emotions and optimize the correction method based on the estimated user emotions. The correction unit, for example, estimates the user's emotions. Emotion estimation is performed using technologies such as facial expression recognition, voice analysis, and text analysis. For example, the correction unit analyzes the user's facial expressions captured with a camera to estimate emotions. The correction unit can also analyze the user's voice recorded with a microphone to estimate emotions. The correction unit can also analyze text entered by the user to estimate emotions. The correction unit optimizes the correction method based on the estimated user emotions. For example, if the user is relaxed, the correction unit performs correction that progresses at a leisurely pace. If the user is in a hurry, the correction unit can perform correction that emphasizes the shortest route. Furthermore, if the user is excited, the correction unit can perform correction that adds visually stimulating effects. This enables efficient correction by adjusting the correction method according to the user's emotions. Emotion estimation is realized using an emotion estimation function, for example, an emotion engine or generative AI. The generation AI may be a text generation AI (e.g., LLM) or a multimodal generation AI, but is not limited to such examples.
[0123] During correction, the correction unit can adjust the level of detail of the correction based on the importance of the check result. The correction unit, for example, evaluates the importance of the check result. The importance of the check result includes, for example, the severity of the bug, the performance impact, etc. For example, the correction unit performs detailed correction for a check result with a high importance. The correction unit can also perform simplified correction for a check result with a low importance. Furthermore, the correction unit can dynamically adjust the level of detail of the correction according to the importance. This enables efficient correction by adjusting the level of detail of the correction based on the importance of the check result. Some or all of the above-mentioned processing in the correction unit may be performed using, for example, a generation AI, or may be performed without using a generation AI. For example, the correction unit can input importance data of the check result to the generation AI and cause the generation AI to adjust the level of detail of the correction.
[0124] During correction, the correction unit can apply different correction algorithms depending on the category of the check result. The correction unit, for example, identifies the category of the check result. The check result categories include, for example, security issues and performance issues. For example, the correction unit applies a specific correction algorithm to the static analysis check result. The correction unit can also apply a different correction algorithm to the unit test check result. Furthermore, the correction unit can apply yet another correction algorithm to the code review check result. This enables efficient correction by applying the optimal correction algorithm depending on the category of the check result. Some or all of the above-mentioned processing in the correction unit may be performed using, for example, a generation AI, or may be performed without using a generation AI. For example, the correction unit can input category data of the check result to the generation AI and cause the generation AI to apply the correction algorithm.
[0125] During correction, the correction unit can improve the accuracy of the correction by referring to the user's past correction results. The correction unit, for example, analyzes the user's past correction results. The past correction results include, for example, the correction success rate and error rate. For example, the correction unit improves the accuracy of the correction based on the user's past correction results. The correction unit can also analyze the user's past correction history and suggest an optimal correction method. Furthermore, the correction unit can improve the accuracy of the correction by referring to feedback provided by the user in the past. In this way, the accuracy of the correction can be improved by referring to the past correction results. Some or all of the above-mentioned processing in the correction unit may be performed, for example, using a generation AI or may be performed without using a generation AI. For example, the correction unit can input the user's past correction result data into the generation AI and cause the generation AI to improve the accuracy of the correction.
[0126] The correction unit can estimate the user's emotion and optimize the length of the correction based on the estimated user's emotion. The correction unit, for example, estimates the user's emotion. Emotion estimation is performed using technologies such as facial expression recognition, voice analysis, and text analysis. For example, the correction unit analyzes the user's facial expression captured with a camera to estimate the emotion. The correction unit can also analyze the user's voice recorded with a microphone to estimate the emotion. Furthermore, the correction unit can analyze text entered by the user to estimate the emotion. The correction unit optimizes the length of the correction based on the estimated user's emotion. For example, if the user is in a hurry, the correction unit can make a short, to-the-point correction. If the user is relaxed, the correction unit can make a longer correction including detailed explanations. Furthermore, if the user is excited, the correction unit can make a correction with a visually stimulating effect. This enables efficient correction by adjusting the length of the correction according to the user's emotion. Emotion estimation is achieved using an emotion estimation function, for example, an emotion engine or generative AI. The generation AI may be a text generation AI (e.g., LLM) or a multimodal generation AI, but is not limited to such examples.
[0127] During correction, the correction unit can determine the priority of corrections based on the submission timing of the check results. The correction unit, for example, evaluates the submission timing of the check results. The submission timing includes, for example, a deadline, the progress of the project, etc. For example, the correction unit prioritizes correction of check results with an upcoming submission deadline. The correction unit can also postpone check results with a distant submission deadline. Furthermore, the correction unit can dynamically adjust the priority of corrections depending on the submission timing. This enables efficient corrections by determining the priority of corrections based on the submission timing of the check results. Some or all of the above-mentioned processing in the correction unit may be performed using, for example, a generation AI, or may be performed without using the generation AI. For example, the correction unit can input check result submission timing data into the generation AI and have the generation AI determine the priority of corrections.
[0128] During correction, the correction unit can adjust the correction order based on the relevance of the check results. The correction unit, for example, evaluates the relevance of the check results. The relevance of the check results includes, for example, functional dependencies and module relevance. For example, the correction unit prioritizes correction of highly relevant check results. The correction unit can also postpone check results with low relevance. Furthermore, the correction unit can dynamically adjust the correction order according to the relevance of the check results. This enables efficient correction by adjusting the correction order based on the relevance of the check results. Some or all of the above-mentioned processing in the correction unit may be performed using, for example, a generation AI, or may be performed without using a generation AI. For example, the correction unit can input relevance data of the check results into the generation AI and cause the generation AI to adjust the correction order.
[0129] During correction, the correction unit can adjust the use of technical terminology in the correction according to the user's level of expertise. The correction unit, for example, evaluates the user's level of expertise. The level of expertise includes, for example, qualifications, years of experience, etc. For example, if the user is a beginner, the correction unit can make corrections while avoiding technical terminology. Furthermore, if the user is an intermediate expert, the correction unit can make corrections while using technical terminology appropriately. Furthermore, if the user is an advanced expert, the correction unit can make corrections while using a lot of technical terminology. This enables efficient correction by adjusting the use of technical terminology according to the user's level of expertise. Some or all of the above-mentioned processing in the correction unit can be performed, for example, using a generation AI, or can be performed without using a generation AI. For example, the correction unit can input the user's level of expertise data into the generation AI and cause the generation AI to adjust the use of technical terminology. === Hard Collateral 1-1 === Each of the multiple elements including the above-mentioned reception unit, conversion unit, suggestion unit, execution unit, and correction unit is realized, for example, by at least one of the smart device 14 and the data processing device 12. For example, the reception unit is realized by the control unit 46A of the smart device 14 and accepts a user's program input. The conversion unit is realized by the specific processing unit 290 of the data processing device 12 and converts the program into a specified language. The suggestion unit is realized by the specific processing unit 290 of the data processing device 12 and proposes a check method for the converted program. The execution unit is realized by the specific processing unit 290 of the data processing device 12 and executes the proposed check method. The correction unit is realized by the specific processing unit 290 of the data processing device 12 and corrects the program based on the results of the check method. === Hard Collateral 1-2 === Each of the multiple elements including the above-mentioned reception unit, conversion unit, suggestion unit, execution unit, and correction unit is realized, for example, by at least one of the smart glasses 214 and the data processing device 12. For example, the reception unit is realized by the control unit 46A of the smart glasses 214 and accepts a user's program input. The conversion unit is realized by the specific processing unit 290 of the data processing device 12 and converts the program into a specified language. The suggestion unit is realized by the specific processing unit 290 of the data processing device 12 and proposes a check method for the converted program. The execution unit is realized by the specific processing unit 290 of the data processing device 12 and executes the proposed check method. The correction unit is realized by the specific processing unit 290 of the data processing device 12 and corrects the program based on the results of the check method. === Hard Collateral 1-3 === Each of the multiple elements including the above-mentioned reception unit, conversion unit, suggestion unit, execution unit, and correction unit is realized, for example, by at least one of the headset type terminal 314 and the data processing device 12. For example, the reception unit is realized by the control unit 46A of the headset type terminal 314 and accepts a program input from a user. The conversion unit is realized by the specific processing unit 290 of the data processing device 12 and converts the program into a specified language. The suggestion unit is realized by the specific processing unit 290 of the data processing device 12 and proposes a check method for the converted program. The execution unit is realized by the specific processing unit 290 of the data processing device 12 and executes the proposed check method. The correction unit is realized by the specific processing unit 290 of the data processing device 12 and corrects the program based on the results of the check method. === Hard Collateral 1-4 === Each of the multiple elements including the above-mentioned reception unit, conversion unit, suggestion unit, execution unit, and correction unit is realized, for example, by at least one of the robot 414 and the data processing device 12. For example, the reception unit is realized by the control unit 46A of the robot 414 and accepts a program input from a user. The conversion unit is realized by the specific processing unit 290 of the data processing device 12 and converts the program into a specified language. The suggestion unit is realized by the specific processing unit 290 of the data processing device 12 and proposes a check method for the converted program. The execution unit is realized by the specific processing unit 290 of the data processing device 12 and executes the proposed check method. The correction unit is realized by the specific processing unit 290 of the data processing device 12 and corrects the program based on the results of the check method.
[0130] The system according to the embodiment is not limited to the above-described example, and various modifications are possible, for example, as follows.
[0131] The reception unit can analyze the user's input content in real time and present appropriate completion candidates based on the input content. For example, while the user is inputting part of a program, the reception unit analyzes the content and presents candidates for the code to be input next. The reception unit can also detect grammatical errors and type errors in the code input by the user in real time and present correction candidates. Furthermore, the reception unit can learn the user's input history and present completion candidates optimized for each individual user. This can improve the user's input efficiency.
[0132] The suggestion unit can estimate the user's emotions and adjust the suggested check methods based on the estimated user emotions. For example, if the user is feeling stressed, the suggestion unit can prioritize suggesting check methods that are simple and quick to perform. Alternatively, if the user is relaxed, the suggestion unit can suggest detailed and comprehensive check methods. Furthermore, if the user is concentrating, the suggestion unit can suggest a combination of multiple check methods. This makes it possible to suggest the optimal check method according to the user's emotions.
[0133] The execution unit can visually display the execution results of the checking methods. For example, the execution unit can display the results of static analysis in graphs and charts, visually indicating the location and frequency of errors. The execution unit can also display the results of unit tests with a pass / fail status and provide detailed results for each test case. Furthermore, the execution unit can display the results of dynamic analysis in a timeline format, allowing users to visually check the behavior of the program as it runs. This allows users to intuitively understand the check results.
[0134] The correction unit can estimate the user's emotions and optimize the priority of corrections based on the estimated user's emotions. For example, when the user is stressed, the correction unit prioritizes correcting problems that are simple and quick to correct. When the user is relaxed, the correction unit can also prioritize correcting problems that are complex and time-consuming. Furthermore, when the user is concentrating, the correction unit can also correct multiple problems simultaneously. This makes it possible to provide an optimal correction order according to the user's emotions.
[0135] The execution unit can analyze the user's past execution history and propose the optimal execution method. For example, the execution unit can prioritize and propose execution methods that the user has used successfully in the past. The execution unit can also make proposals that avoid execution methods that the user has used unsuccessfully in the past. Furthermore, the execution unit can learn from the user's past execution history and propose an execution method that is optimized for each individual user. This can improve the user's execution efficiency.
[0136] The reception unit can estimate the user's emotion and customize the input interface based on the estimated user's emotion. For example, if the user is feeling stressed, the reception unit can provide a simple and intuitive interface. If the user is feeling relaxed, the reception unit can also provide detailed options and settings. Furthermore, if the user is concentrating, the reception unit can also provide multiple input methods simultaneously. This makes it possible to provide an optimal input interface according to the user's emotion.
[0137] The suggestion unit can analyze the user's past feedback and customize the content of the suggestions. For example, the suggestion unit can prioritize and suggest suggested methods that the user has previously given high ratings to. The suggestion unit can also make suggestions that avoid suggested methods that the user has previously given low ratings to. Furthermore, the suggestion unit can learn from the user's past feedback and provide suggested content that is optimized for each individual user. This can improve user satisfaction.
[0138] The conversion unit can estimate the user's emotions and adjust the conversion speed based on the estimated user's emotions. For example, if the user is in a hurry, the conversion unit can perform the conversion quickly. If the user is relaxed, the conversion unit can proceed with the conversion while performing detailed analysis. Furthermore, if the user is excited, the conversion unit can perform the conversion by adding visually appealing effects. This makes it possible to provide an optimal conversion speed according to the user's emotions.
[0139] The suggestion unit can suggest the optimal check method in consideration of the progress of the user's current project. For example, the suggestion unit can suggest a basic check method in the early stages of the project, a detailed check method in the middle stages of the project, and a comprehensive check method for final confirmation in the final stages of the project. This makes it possible to provide the optimal check method according to the progress of the project.
[0140] The correction unit can estimate the user's emotions and optimize the correction feedback method based on the estimated user's emotions. For example, if the user is feeling stressed, the correction unit can provide concise and positive feedback. If the user is relaxed, the correction unit can provide detailed feedback. Furthermore, if the user is concentrating, the correction unit can provide feedback including specific improvements. In this way, optimal feedback can be provided according to the user's emotions.
[0141] The processing flow of the second embodiment will be briefly explained below.
[0142] Step 1: The reception unit accepts program input. Program input includes source code, scripts, binary files, etc. The reception unit not only accepts the program entered by the user, but also uses generative AI to analyze the user's input and convert it into an appropriate format. Step 2: The conversion unit converts the program received by the reception unit into a specified language. Specified languages include Python, Java, C++, etc. The conversion unit uses a generative AI to analyze the program structure and convert it into the appropriate language. Step 3: The proposal unit proposes a checking method for the program converted by the conversion unit. Checking methods include static analysis, unit testing, code review, dynamic analysis, security scanning, etc. The proposal unit uses generative AI to suggest the optimal checking method based on the characteristics of the program. Step 4: The execution unit executes the check methods proposed by the proposal unit. Using the generative AI, the execution unit executes check methods such as static analysis, unit testing, and code review to check for syntax and type errors in the program, verify the operation of each function and method, and evaluate the readability and maintainability of the program. Step 5: The fixer fixes the program based on the results of the checking methods performed by the executor. The fixer uses generative AI to fix errors detected by static analysis, problems detected by unit testing, and problems pointed out in code reviews.
[0143] 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.
[0144] 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.
[0145] 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.
[0146] The correspondence between each part and the device or control part is not limited to the example described above, and various modifications are possible.
[0147] [Second embodiment] FIG. 3 shows an example of the configuration of a data processing system 210 according to the second embodiment.
[0148] 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.
[0149] 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.
[0150] 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.
[0151] 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.
[0152] 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).
[0153] 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.
[0154] 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.
[0155] 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.
[0156] 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.
[0157] 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.
[0158] 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.
[0159] 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.
[0160] 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.
[0161] 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.
[0162] The correspondence between each part and the device or control part is not limited to the example described above, and various modifications are possible.
[0163] [Third embodiment] FIG. 5 shows an example of the configuration of a data processing system 310 according to the third embodiment.
[0164] 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.
[0165] 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.
[0166] 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.
[0167] 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.
[0168] 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).
[0169] 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.
[0170] 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.
[0171] 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.
[0172] 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.
[0173] 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.
[0174] 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.
[0175] 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.
[0176] 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.
[0177] 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.
[0178] The correspondence between each part and the device or control part is not limited to the example described above, and various modifications are possible.
[0179] [Fourth embodiment] FIG. 7 shows an example of the configuration of a data processing system 410 according to the fourth embodiment.
[0180] 7, the 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.
[0181] 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.
[0182] 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.
[0183] 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.
[0184] 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).
[0185] 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.
[0186] 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.
[0187] 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.
[0188] 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.
[0189] 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.
[0190] 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.
[0191] 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.
[0192] 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.
[0193] 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.
[0194] 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.
[0195] The correspondence between each part and the device or control part is not limited to the example described above, and various modifications are possible.
[0196] 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.
[0197] 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.
[0198] 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.
[0199] 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).
[0200] 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.
[0201] 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."
[0202] 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.
[0203] 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.
[0204] 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.
[0205] 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.
[0206] 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.
[0207] The hardware resource for executing a specific process can be any of the following types of processors: A processor, for example, is a CPU, which is a general-purpose processor that functions as a hardware resource for executing a specific process by executing software, i.e., a program. A processor also includes a dedicated electrical circuit, such as an FPGA (Field-Programmable Gate Array), a PLD (Programmable Logic Device), or an ASIC (Application Specific Integrated Circuit), which is a processor with a circuit configuration designed specifically for executing a specific process. Each processor has built-in or connected memory, and each processor uses the memory to execute the specific process.
[0208] 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.
[0209] 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.
[0210] 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.
[0211] 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.
[0212] 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.
[0213] 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.
[0214] [Explanation of symbols]
[0215] 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 reception unit that receives program input; a conversion unit that converts the program accepted by the acceptance unit into a specified language; a suggestion unit that suggests a method for checking the program converted by the conversion unit; an execution unit that executes the check method proposed by the proposal unit; a correction unit that corrects the program based on the result of the check method executed by the execution unit. A system characterized by:
2. The proposal unit Propose checks for static analysis, unit testing, code review, dynamic analysis, and security scanning 2. The system of claim 1.
3. The execution unit: Implement the suggested checks 2. The system of claim 1.
4. The correction unit Modify the program based on the results of the checking method 2. The system of claim 1.
5. The execution unit: Equipped with a static analysis unit that performs static analysis 2. The system of claim 1.
6. The execution unit: Equipped with a unit testing section for performing unit tests 2. The system of claim 1.
7. The execution unit: Have a code review department that reviews code 2. The system of claim 1.
8. The execution unit: Equipped with a dynamic analysis unit that performs dynamic analysis 2. The system of claim 1.
Citation Information
Patent Citations
Persona chatbot control method and system
JP2022180282A