System

The system efficiently analyzes and comments on code to reduce understanding time, enhance security, and improve portability and collaboration by integrating real-time analysis and comment features.

JP2026024258APending Publication Date: 2026-02-13SOFTBANK GROUP CORP
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
JP2024126768
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-08-02
Publication Date
2026-02-13

AI Technical Summary

Technical Problem

Conventional techniques require significant time and effort to understand someone else's code, lacking efficient means for analysis.

Method used

A system comprising a code reading unit, analysis unit, and comment adding unit that analyzes and provides real-time analysis results, adding comments to the code, and supports features like security hole detection, risk assessment, and compatibility analysis.

Benefits of technology

Significantly reduces the time needed to understand and decipher other people's code, enhances code security, improves portability, and promotes collaborative work through real-time analysis and comment integration.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026024258000001_ABST
    Figure 2026024258000001_ABST
Patent Text Reader

Abstract

An object of a system according to an embodiment is to efficiently analyze a code of another person and support understanding.SOLUTION: A system includes a code reading part, an analysis part, a real-time provision part, and a comment addition part. The code reading unit reads a code. The analysis unit analyzes the code read by the code reading unit. The real-time providing unit provides the result analyzed by the analysis unit to the user in real time. The comment addition unit adds the result analyzed by the analysis unit to the code as a comment.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

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] Conventional techniques have had the drawback of requiring a lot of time and effort to understand someone else's code, and there is a lack of efficient means for analyzing it.

[0005] The system according to the embodiment aims to efficiently analyze and assist in understanding other people's code. [Means for solving the problem]

[0006] The system according to the embodiment includes a code reading unit, an analysis unit, a real-time providing unit, and a comment adding unit. The code reading unit reads code. The analysis unit analyzes the code read by the code reading unit. The real-time providing unit provides the results of the analysis by the analysis unit to a user in real time. The comment adding unit adds the results of the analysis by the analysis unit to the code as a comment. [Effects of the Invention]

[0007] The system according to the embodiment can efficiently analyze and assist in understanding other people's code. [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 the user's emotion using the emotion identification model 59 and perform identification processing using the user's emotion.

[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 may have a data generation model and an emotion identification model similar to the data generation model 58 and the emotion identification model 59.

[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 code analysis app according to an embodiment of the present invention is a system that reads other people's code, analyzes its structure and function, and explains which parts of the code perform which processes. This system provides users with analysis results in real time and also has the ability to add them as comments to the code. This allows developers to quickly understand other people's code and significantly reduce the time it takes to decipher it.

[0029] A code analysis app according to an embodiment includes a code reading unit, an analysis unit, a real-time providing unit, and a comment adding unit. The code reading unit reads code. For example, the code reading unit reads code from a file system. The code reading unit can also obtain code from a GitHub repository. The code reading unit can also directly read code entered by a user. The analysis unit analyzes the read code. For example, the analysis unit analyzes function and class definitions. The analysis unit can also analyze loop and conditional branch structures. The analysis unit can also analyze variable usage. The real-time providing unit provides the results of the analysis by the analysis unit to the user in real time. For example, when the real-time providing unit hovers a cursor over a specific part of code, the real-time providing unit displays the processing details of that part in a pop-up. The real-time providing unit can also display the analysis results in a sidebar. The real-time providing unit can also display the analysis results as a tooltip. The comment adding unit adds the results of the analysis by the analysis unit to the code as a comment. For example, the comment adding unit automatically adds a comment such as "This function retrieves data from a database" to the top of a function. The comment adding unit can also add a comment such as "This class manages user information" to a class definition. The comment adding unit can also add a comment such as "This loop performs processing for each element in a list" to the beginning of a loop. This allows the code analysis app according to the embodiment to significantly reduce the time it takes for developers to quickly understand and decipher other people's code. For example, developers can analyze other people's code and check the results in real time. Furthermore, developers can add analysis results as comments to their code, allowing them to refer to the analysis results later. Developers can also easily understand the contents of open source projects on GitHub and complex libraries.

[0030] The analysis unit can simultaneously analyze the code for possible security holes or bugs and perform risk assessment. The analysis unit, for example, uses generative AI to analyze each line of code and identify possible security holes or bugs. For example, it detects the risks of SQL injection and buffer overflow and performs risk assessment. The analysis unit can also perform static analysis of the code to identify possible security holes or bugs. For example, it detects syntax errors and unused variables in the code and performs risk assessment. The analysis unit can also perform dynamic analysis of the code to identify possible security holes or bugs. For example, it detects errors and exceptions that occur during code execution and performs risk assessment. In this way, the security of the code can be improved by simultaneously analyzing the code for possible security holes and bugs and performing risk assessment.

[0031] The analysis unit can refer to the history of past code versions and analyze changes or the process of evolution. For example, the analysis unit refers to the history of past code versions and analyzes changes between each version. For example, it identifies the addition or deletion of functions, changes to variables, etc., and understands the process of evolution. The analysis unit can also refer to the history of past code versions using a version control system. For example, it can analyze Git commit logs to identify changes. The analysis unit can also analyze the change history of code and understand the process of evolution. For example, it can analyze release notes and feature addition history to understand the process of evolution. In this way, by referring to the history of past code versions and analyzing changes and the process of evolution, it becomes easier to understand the evolution of code.

[0032] The analysis unit can automatically convert the results of the code analysis into other programming languages ​​and analyze compatibility between different languages. The analysis unit automatically converts the analyzed code into other programming languages, for example, using generative AI. For example, it converts Python code into Java and analyzes compatibility. The analysis unit can also perform syntax analysis of the code and convert it into other programming languages. For example, it converts C++ code into JavaScript and analyzes compatibility. The analysis unit can also convert it into other programming languages ​​to analyze API compatibility of the code. For example, it converts Java code into C# and analyzes API compatibility. In this way, by automatically converting the results of the code analysis into other programming languages ​​and analyzing compatibility between different languages, it is possible to improve code portability.

[0033] The analysis unit can visualize the results of code analysis and display them as a flowchart or sequence diagram, making them easier to understand visually. The analysis unit can automatically generate a flowchart of the analyzed code, for example, using generative AI. For example, it can visually display the function call relationships and the flow of conditional branches. The analysis unit can also automatically generate sequence diagrams of the code. For example, it can visually display the message exchanges between objects. The analysis unit can also visualize the process flow of the code. For example, it can display the code execution flow as a flowchart. In this way, visualizing the results of code analysis and displaying them as a flowchart or sequence diagram can help understand the code.

[0034] The real-time providing unit can customize the analysis results according to the user's skill level and provide information for beginners or advanced users separately. The real-time providing unit can, for example, use a generative AI to customize the analysis results according to the user's skill level. For example, it can provide detailed explanations for beginners and only the main points for advanced users. The real-time providing unit can also evaluate the user's skill level and provide information accordingly. For example, it can evaluate the skill level based on the user's past operation history and learning history. The real-time providing unit can also display the analysis results separately for beginners and advanced users. For example, it can provide a step-by-step guide for beginners and advanced technical explanations for advanced users. In this way, the analysis results can be customized according to the user's skill level and information for beginners and advanced users can be provided separately, thereby helping the user understand the system.

[0035] The real-time providing unit can provide the analysis results by voice through a voice assistant, enabling hands-free confirmation. The real-time providing unit can, for example, use a generation AI to provide the analysis results by voice through a voice assistant. For example, the analysis results can be converted from text to voice and read aloud to the user. The real-time providing unit can also provide the analysis results in response to a user's voice command using the voice assistant. For example, when a user says, "Please explain the next function," the analysis results of the next function can be provided by voice. The real-time providing unit can also provide the analysis results by hands-free through the voice assistant. For example, the real-time providing unit can enable the user to check the analysis results without using their hands. This can improve user convenience by providing the analysis results by voice through a voice assistant and enabling hands-free confirmation.

[0036] The real-time providing unit can link the analysis results with other development tools to provide an integrated development environment. The real-time providing unit, for example, uses generative AI to link the analysis results with other development tools. For example, the analysis results can be displayed in an IDE or debugger to provide an integrated development environment. The real-time providing unit can also link with a version control system to provide the analysis results. For example, the Git commit log and the analysis results can be integrated and displayed. The real-time providing unit can also link with a CI / CD tool to provide the analysis results. For example, the build and deployment results can be integrated and displayed. This allows the analysis results to be linked with other development tools to provide an integrated development environment, thereby improving development efficiency.

[0037] The real-time providing unit enables analysis results to be shared within a team and can add a collaboration function to promote collaborative work. The real-time providing unit enables analysis results to be shared within a team, for example, by using generative AI. For example, the analysis results may be stored on the cloud and made accessible to team members. The real-time providing unit can also provide collaboration tools for sharing analysis results in real time. For example, the analysis results may be shared in conjunction with a chat tool or a video conferencing tool. The real-time providing unit can also enable team members to add comments and feedback on the analysis results. For example, questions and opinions may be added as comments to the analysis results. This enables analysis results to be shared within a team, and adds a collaboration function to promote collaborative work, thereby improving team productivity.

[0038] The comment adding unit can use a generative AI to make the content of comments multilingual so that they can be understood by international teams. For example, the comment adding unit uses a generative AI to make the comments added to code multilingual. For example, comments can be automatically generated in multiple languages, such as English, Japanese, and French. The comment adding unit can also translate comments into multiple languages ​​using a translation API. For example, comments can be translated using Google Translate or Microsoft Translator. The comment adding unit can also customize comments according to the languages ​​used by international teams. For example, comments can be generated based on the language settings of team members. This makes it possible to support a global development environment by making the content of comments multilingual so that they can be understood by international teams.

[0039] The comment addition unit can link with the code change history and automatically add explanations for changes. The comment addition unit, for example, uses generation AI to automatically generate comments linked with the code change history. For example, it adds explanations for changes as comments. The comment addition unit can also link with a version control system to obtain change history and generate comments. For example, it can analyze Git commit messages and add explanations for changes as comments. The comment addition unit can also analyze the differences between changes and generate comments explaining the changes. For example, it can add comments explaining the addition or deletion of functions, changes to variables, etc. This makes it possible to link with the code change history and automatically add explanations for changes, helping to improve understanding of the code.

[0040] The comment addition unit can automatically generate code documentation based on comments and link with an external document management system. The comment addition unit can automatically generate documentation based on code comments, for example, using generation AI. For example, it can generate documentation including descriptions of functions and classes and link with an external document management system. The comment addition unit can also generate documentation using documentation templates. For example, it can generate documentation according to a standard documentation format. The comment addition unit can also generate documentation in cooperation with a documentation generation tool. For example, it can generate documentation using Doxygen or Javadoc. In this way, by automatically generating code documentation based on comments and linking with an external document management system, the efficiency of document creation can be improved.

[0041] The comment adding unit can automatically highlight comments during code reviews, improving the efficiency of reviews. The comment adding unit can automatically highlight comments during code reviews, for example, by using generative AI. For example, it can highlight important changes and points to note. The comment adding unit can also display comments in different colors during code reviews. For example, it can display important comments in red and supplementary comments in blue. The comment adding unit can also provide a tool for highlighting comments during code reviews. For example, it can change the background color of comments to make them stand out. In this way, it is possible to automatically highlight comments during code reviews, improving the efficiency of reviews and thereby improving code quality.

[0042] The system according to the embodiment is not limited to the above-described example, and various modifications are possible, for example, as follows.

[0043] The code analysis app can further include a performance analysis unit that analyzes code performance. The performance analysis unit, for example, analyzes code execution time and memory usage to identify bottlenecks. The performance analysis unit can also make code optimization suggestions. For example, it can suggest loop optimization and memory management improvements. The performance analysis unit can also visualize code performance. For example, it can display a heat map of execution time and a graph of memory usage. This allows the code performance to be analyzed and optimization suggestions made to improve code efficiency.

[0044] The code analysis app can further include a dependency analysis unit that analyzes code dependencies. The dependency analysis unit, for example, analyzes dependencies between modules and libraries within the code. The dependency analysis unit can also evaluate the impact of dependencies. For example, it can analyze the impact of changing a specific module on other modules. The dependency analysis unit can also visualize dependencies. For example, it can display a dependency graph. This allows the maintainability of the code to be improved by analyzing code dependencies and evaluating their impact.

[0045] The code analysis app can further include a test coverage analysis unit that analyzes the test coverage of the code. For example, the test coverage analysis unit analyzes the test coverage of the code and identifies areas with low coverage. The test coverage analysis unit can also suggest additional tests. For example, it can suggest test cases for untested functions or conditional branches. The test coverage analysis unit can also visualize the test coverage. For example, it can display areas with low coverage in different colors. This allows the quality of the code to be improved by analyzing the test coverage of the code and suggesting additional tests.

[0046] The code analysis app may further include a documentation generation unit that supports the generation of code documentation. The documentation generation unit, for example, automatically generates documentation based on code comments. The documentation generation unit may also generate documentation using a documentation template. For example, the documentation may be generated according to a standard documentation format. The documentation generation unit may also suggest document updates. For example, the document generation unit may suggest document updates in response to code changes. This supports the generation of code documentation and improves the quality of the documentation.

[0047] The code analysis app may further include a refactoring support unit that supports code refactoring. The refactoring support unit, for example, makes code refactoring suggestions. The refactoring support unit can also evaluate the impact of refactoring. For example, it can evaluate performance improvements and bug reductions resulting from refactoring. The refactoring support unit can also manage refactoring history. For example, it can compare code before and after refactoring and record changes. This can support code refactoring and improve code quality.

[0048] The processing flow of the first embodiment will be briefly explained below.

[0049] Step 1: The code reader reads the code. For example, the code reader reads the code from a file system. The code reader can also retrieve the code from a GitHub repository. The code reader can also directly read the code entered by the user. Step 2: The analysis unit analyzes the code that has been read. For example, the analysis unit analyzes the definitions of functions and classes. The analysis unit can also analyze loops and conditional branch structures. The analysis unit can also analyze the usage of variables. Step 3: The real-time providing unit provides the results of the analysis performed by the analysis unit to the user in real time. For example, when the cursor is placed over a specific part of the code, the real-time providing unit displays a pop-up containing the processing details of that part. The real-time providing unit can also display the analysis results in a sidebar. The real-time providing unit can also display the analysis results as a tooltip. Step 4: The comment adding unit adds the results of the analysis by the analysis unit to the code as comments. For example, the comment adding unit automatically adds a comment such as "This function retrieves data from a database" to the top of a function. The comment adding unit can also add a comment such as "This class manages user information" to the definition of a class. The comment adding unit can also add a comment such as "This loop performs an operation on each element of a list" to the start of a loop.

[0050] (Example 2) A code analysis app according to an embodiment of the present invention is a system that reads other people's code, analyzes its structure and function, and explains which parts of the code perform which processes. This system provides users with analysis results in real time and also has the ability to add them as comments to the code. This allows developers to quickly understand other people's code and significantly reduce the time it takes to decipher it.

[0051] A code analysis app according to an embodiment includes a code reading unit, an analysis unit, a real-time providing unit, and a comment adding unit. The code reading unit reads code. For example, the code reading unit reads code from a file system. The code reading unit can also obtain code from a GitHub repository. The code reading unit can also directly read code entered by a user. The analysis unit analyzes the read code. For example, the analysis unit analyzes function and class definitions. The analysis unit can also analyze loop and conditional branch structures. The analysis unit can also analyze variable usage. The real-time providing unit provides the results of the analysis by the analysis unit to the user in real time. For example, when the real-time providing unit hovers a cursor over a specific part of code, the real-time providing unit displays the processing details of that part in a pop-up. The real-time providing unit can also display the analysis results in a sidebar. The real-time providing unit can also display the analysis results as a tooltip. The comment adding unit adds the results of the analysis by the analysis unit to the code as a comment. For example, the comment adding unit automatically adds a comment such as "This function retrieves data from a database" to the top of a function. The comment adding unit can also add a comment such as "This class manages user information" to a class definition. The comment adding unit can also add a comment such as "This loop performs processing for each element in a list" to the beginning of a loop. This allows the code analysis app according to the embodiment to significantly reduce the time it takes for developers to quickly understand and decipher other people's code. For example, developers can analyze other people's code and check the results in real time. Furthermore, developers can add analysis results as comments to their code, allowing them to refer to the analysis results later. Developers can also easily understand the contents of open source projects on GitHub and complex libraries.

[0052] The analysis unit can simultaneously analyze the code for possible security holes or bugs and perform risk assessment. The analysis unit, for example, uses generative AI to analyze each line of code and identify possible security holes or bugs. For example, it detects the risks of SQL injection and buffer overflow and performs risk assessment. The analysis unit can also perform static analysis of the code to identify possible security holes or bugs. For example, it detects syntax errors and unused variables in the code and performs risk assessment. The analysis unit can also perform dynamic analysis of the code to identify possible security holes or bugs. For example, it detects errors and exceptions that occur during code execution and performs risk assessment. In this way, the security of the code can be improved by simultaneously analyzing the code for possible security holes and bugs and performing risk assessment.

[0053] The analysis unit can refer to the history of past code versions and analyze changes or the process of evolution. For example, the analysis unit refers to the history of past code versions and analyzes changes between each version. For example, it identifies the addition or deletion of functions, changes to variables, etc., and understands the process of evolution. The analysis unit can also refer to the history of past code versions using a version control system. For example, it can analyze Git commit logs to identify changes. The analysis unit can also analyze the change history of code and understand the process of evolution. For example, it can analyze release notes and feature addition history to understand the process of evolution. In this way, by referring to the history of past code versions and analyzing changes and the process of evolution, it becomes easier to understand the evolution of code.

[0054] The analysis unit can use the emotion estimation function to infer the intentions or emotions of the code writer and analyze the design philosophy of the code. The analysis unit, for example, uses the emotion estimation function to infer the intentions and emotions of the writer from code comments and commit messages. For example, it identifies parts with strong positive emotions and parts with strong negative emotions. The analysis unit can also use natural language processing technology to analyze code comments and commit messages to infer the intentions and emotions of the writer. For example, it analyzes the context and tone of comments to understand the writer's intentions. The analysis unit can also use the emotion estimation function to analyze the design philosophy of the code. For example, it analyzes the design patterns and architecture of the code to understand the design philosophy. In this way, by using the emotion estimation function to infer the intentions and emotions of the code writer and analyzing the design philosophy of the code, it is possible to deepen understanding of the code.

[0055] The analysis unit can automatically convert the results of the code analysis into other programming languages ​​and analyze compatibility between different languages. The analysis unit automatically converts the analyzed code into other programming languages, for example, using generative AI. For example, it converts Python code into Java and analyzes compatibility. The analysis unit can also perform syntax analysis of the code and convert it into other programming languages. For example, it converts C++ code into JavaScript and analyzes compatibility. The analysis unit can also convert it into other programming languages ​​to analyze API compatibility of the code. For example, it converts Java code into C# and analyzes API compatibility. In this way, by automatically converting the results of the code analysis into other programming languages ​​and analyzing compatibility between different languages, it is possible to improve code portability.

[0056] The analysis unit can visualize the results of code analysis and display them as a flowchart or sequence diagram, making them easier to understand visually. The analysis unit can automatically generate a flowchart of the analyzed code, for example, using generative AI. For example, it can visually display the function call relationships and the flow of conditional branches. The analysis unit can also automatically generate sequence diagrams of the code. For example, it can visually display the message exchanges between objects. The analysis unit can also visualize the process flow of the code. For example, it can display the code execution flow as a flowchart. In this way, visualizing the results of code analysis and displaying them as a flowchart or sequence diagram can help understand the code.

[0057] The analysis unit can use the emotion estimation function to monitor the user's emotions in real time when the code is read and provide an interface for reducing stress. The analysis unit, for example, uses the emotion estimation function to monitor the user's emotions in real time when the code is read. For example, the analysis unit may analyze the user's facial expressions and voice using a camera or microphone. The analysis unit can also monitor emotions using the user's biometric data. For example, the analysis unit may collect heart rate and electrodermal activity using a sensor and analyze emotions. The analysis unit can also provide an interface that provides feedback according to the user's emotions. For example, if the user is feeling stressed, advice on how to relax is displayed. In this way, the user's emotions can be monitored in real time when the code is read and an interface for reducing stress is provided, thereby improving the user's work efficiency.

[0058] The real-time providing unit can customize the analysis results according to the user's skill level and provide information for beginners or advanced users separately. The real-time providing unit can, for example, use a generative AI to customize the analysis results according to the user's skill level. For example, it can provide detailed explanations for beginners and only the main points for advanced users. The real-time providing unit can also evaluate the user's skill level and provide information accordingly. For example, it can evaluate the skill level based on the user's past operation history and learning history. The real-time providing unit can also display the analysis results separately for beginners and advanced users. For example, it can provide a step-by-step guide for beginners and advanced technical explanations for advanced users. In this way, the analysis results can be customized according to the user's skill level and information for beginners and advanced users can be provided separately, thereby helping the user understand the system.

[0059] The real-time providing unit can provide the analysis results by voice through a voice assistant, enabling hands-free confirmation. The real-time providing unit can, for example, use a generation AI to provide the analysis results by voice through a voice assistant. For example, the analysis results can be converted from text to voice and read aloud to the user. The real-time providing unit can also provide the analysis results in response to a user's voice command using the voice assistant. For example, when a user says, "Please explain the next function," the analysis results of the next function can be provided by voice. The real-time providing unit can also provide the analysis results by hands-free through the voice assistant. For example, the real-time providing unit can enable the user to check the analysis results without using their hands. This can improve user convenience by providing the analysis results by voice through a voice assistant and enabling hands-free confirmation.

[0060] The real-time providing unit can use the emotion estimation function to estimate the user's level of understanding and provide additional explanation for parts where understanding is insufficient. The real-time providing unit, for example, uses the emotion estimation function to estimate the user's level of understanding in real time. For example, it analyzes the user's level of understanding from their facial expressions and voice and identifies parts where understanding is insufficient. The real-time providing unit can also evaluate the user's level of understanding based on their reactions. For example, it can identify parts where the user asks many questions or stays for a long time. The real-time providing unit can also provide additional explanation for parts where understanding is insufficient. For example, it can display detailed explanations or supplementary materials. The real-time providing unit can also provide appropriate feedback according to the user's level of understanding. For example, if understanding has deepened, it can display advice for proceeding to the next step. In this way, the user's understanding can be deepened by using the emotion estimation function to estimate the user's level of understanding and providing additional explanation for parts where understanding is insufficient.

[0061] The real-time providing unit can link the analysis results with other development tools to provide an integrated development environment. The real-time providing unit, for example, uses generative AI to link the analysis results with other development tools. For example, the analysis results can be displayed in an IDE or debugger to provide an integrated development environment. The real-time providing unit can also link with a version control system to provide the analysis results. For example, the Git commit log and the analysis results can be integrated and displayed. The real-time providing unit can also link with a CI / CD tool to provide the analysis results. For example, the build and deployment results can be integrated and displayed. This allows the analysis results to be linked with other development tools to provide an integrated development environment, thereby improving development efficiency.

[0062] The real-time providing unit enables analysis results to be shared within a team and can add a collaboration function to promote collaborative work. The real-time providing unit enables analysis results to be shared within a team, for example, by using generative AI. For example, the analysis results may be stored on the cloud and made accessible to team members. The real-time providing unit can also provide collaboration tools for sharing analysis results in real time. For example, the analysis results may be shared in conjunction with a chat tool or a video conferencing tool. The real-time providing unit can also enable team members to add comments and feedback on the analysis results. For example, questions and opinions may be added as comments to the analysis results. This enables analysis results to be shared within a team, and adds a collaboration function to promote collaborative work, thereby improving team productivity.

[0063] The real-time providing unit can use the emotion estimation function to collect the user's emotional reactions to the analysis results and improve the analysis algorithm based on the feedback. The real-time providing unit, for example, uses the emotion estimation function to collect the user's emotional reactions to the analysis results in real time. For example, it calculates an emotion score from the user's facial expressions and voice. The real-time providing unit can also improve the analysis algorithm based on the user's emotional reactions. For example, it can strengthen parts where the user showed a positive reaction and improve parts where the user showed a negative reaction. The real-time providing unit can also collect user feedback and use it to improve the analysis algorithm. For example, it can adjust the algorithm based on user surveys and usage logs. In this way, the emotion estimation function can be used to collect the user's emotional reactions to the analysis results and improve the analysis algorithm based on the feedback, thereby improving the analysis accuracy.

[0064] The comment adding unit can use a generative AI to make the content of comments multilingual so that they can be understood by international teams. For example, the comment adding unit uses a generative AI to make the comments added to code multilingual. For example, comments can be automatically generated in multiple languages, such as English, Japanese, and French. The comment adding unit can also translate comments into multiple languages ​​using a translation API. For example, comments can be translated using Google Translate or Microsoft Translator. The comment adding unit can also customize comments according to the languages ​​used by international teams. For example, comments can be generated based on the language settings of team members. This makes it possible to support a global development environment by making the content of comments multilingual so that they can be understood by international teams.

[0065] The comment addition unit can link with the code change history and automatically add explanations for changes. The comment addition unit, for example, uses generation AI to automatically generate comments linked with the code change history. For example, it adds explanations for changes as comments. The comment addition unit can also link with a version control system to obtain change history and generate comments. For example, it can analyze Git commit messages and add explanations for changes as comments. The comment addition unit can also analyze the differences between changes and generate comments explaining the changes. For example, it can add comments explaining the addition or deletion of functions, changes to variables, etc. This makes it possible to link with the code change history and automatically add explanations for changes, helping to improve understanding of the code.

[0066] The comment adding unit can use the emotion estimation function to adjust the tone or expression of the comment to suit the user's preferences. For example, the comment adding unit uses the emotion estimation function to adjust the tone and expression of the comment to suit the user's preferences. For example, if the user prefers a positive tone, the comment adding unit generates a comment including encouraging words. The comment adding unit can also adjust the tone and expression of the comment based on the user's past preference data. For example, if the user prefers a formal tone, the comment adding unit generates a comment using polite language. The comment adding unit can also adjust the tone and expression of the comment based on the user's profile information. For example, the comment adding unit generates a comment with an appropriate tone depending on the user's age or occupation. In this way, the tone and expression of the comment can be adjusted to suit the user's preferences, thereby improving user satisfaction.

[0067] The comment addition unit can automatically generate code documentation based on comments and link with an external document management system. The comment addition unit can automatically generate documentation based on code comments, for example, using generation AI. For example, it can generate documentation including descriptions of functions and classes and link with an external document management system. The comment addition unit can also generate documentation using documentation templates. For example, it can generate documentation according to a standard documentation format. The comment addition unit can also generate documentation in cooperation with a documentation generation tool. For example, it can generate documentation using Doxygen or Javadoc. In this way, by automatically generating code documentation based on comments and linking with an external document management system, the efficiency of document creation can be improved.

[0068] The comment adding unit can automatically highlight comments during code reviews, improving the efficiency of reviews. The comment adding unit can automatically highlight comments during code reviews, for example, by using generative AI. For example, it can highlight important changes and points to note. The comment adding unit can also display comments in different colors during code reviews. For example, it can display important comments in red and supplementary comments in blue. The comment adding unit can also provide a tool for highlighting comments during code reviews. For example, it can change the background color of comments to make them stand out. In this way, it is possible to automatically highlight comments during code reviews, improving the efficiency of reviews and thereby improving code quality.

[0069] The comment adding unit can use the emotion estimation function to collect users' emotional reactions to comments and continuously improve the quality of the comments. The comment adding unit, for example, uses the emotion estimation function to collect users' emotional reactions to comments in real time. For example, it calculates an emotion score from the user's facial expressions and voice. The comment adding unit can also improve the quality of comments based on the users' emotional reactions. For example, it can strengthen the style of comments to which the user has responded positively and improve the style of comments to which the user has responded negatively. The comment adding unit can also collect user feedback and continuously improve the quality of comments. For example, it can adjust the content of comments based on user surveys and usage logs. In this way, it is possible to collect users' emotional reactions to comments and continuously improve the quality of comments, thereby improving the usefulness of comments.

[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 code analysis app can further include a performance analysis unit that analyzes code performance. The performance analysis unit, for example, analyzes code execution time and memory usage to identify bottlenecks. The performance analysis unit can also make code optimization suggestions. For example, it can suggest loop optimization and memory management improvements. The performance analysis unit can also visualize code performance. For example, it can display a heat map of execution time and a graph of memory usage. This allows the code performance to be analyzed and optimization suggestions made to improve code efficiency.

[0072] The analysis unit can use the emotion estimation function to estimate the stress level of code writers and identify high-stress areas. For example, it can estimate a writer's stress level from code comments and commit messages. The analysis unit can also make improvement suggestions for high-stress areas. For example, it can suggest code refactoring or adding comments. The analysis unit can also visualize stress levels. For example, it can display high-stress areas in different colors. This makes it possible to estimate a code writer's stress level and make improvement suggestions, thereby improving code quality.

[0073] The code analysis app can further include a dependency analysis unit that analyzes code dependencies. The dependency analysis unit, for example, analyzes dependencies between modules and libraries within the code. The dependency analysis unit can also evaluate the impact of dependencies. For example, it can analyze the impact of changing a specific module on other modules. The dependency analysis unit can also visualize dependencies. For example, it can display a dependency graph. This allows the maintainability of the code to be improved by analyzing code dependencies and evaluating their impact.

[0074] The analysis unit can use the emotion estimation function to estimate the motivation of code writers and identify areas where they are highly motivated. For example, it can estimate the motivation of code writers from code comments and commit messages. The analysis unit can also make suggestions to strengthen areas where they are highly motivated. For example, it can add comments to share successful experiences. The analysis unit can also visualize motivation. For example, it can display areas where they are highly motivated in different colors. This makes it possible to estimate the motivation of code writers and make suggestions to strengthen them, thereby improving the quality of the code.

[0075] The code analysis app can further include a test coverage analysis unit that analyzes the test coverage of the code. For example, the test coverage analysis unit analyzes the test coverage of the code and identifies areas with low coverage. The test coverage analysis unit can also suggest additional tests. For example, it can suggest test cases for untested functions or conditional branches. The test coverage analysis unit can also visualize the test coverage. For example, it can display areas with low coverage in different colors. This allows the quality of the code to be improved by analyzing the test coverage of the code and suggesting additional tests.

[0076] The analysis unit can use the emotion estimation function to estimate the fatigue level of code writers and identify areas where fatigue is high. For example, it can estimate the writer's fatigue level from code comments and commit messages. The analysis unit can also make improvement suggestions for areas where fatigue is high. For example, it can suggest code refactoring or adding comments. The analysis unit can also visualize fatigue levels. For example, it can display areas where fatigue is high using different colors. This makes it possible to estimate the fatigue level of code writers and make improvement suggestions, thereby improving code quality.

[0077] The code analysis app may further include a documentation generation unit that supports the generation of code documentation. The documentation generation unit, for example, automatically generates documentation based on code comments. The documentation generation unit may also generate documentation using a documentation template. For example, the documentation may be generated according to a standard documentation format. The documentation generation unit may also suggest document updates. For example, the document generation unit may suggest document updates in response to code changes. This supports the generation of code documentation and improves the quality of the documentation.

[0078] The analysis unit can use the emotion estimation function to estimate the satisfaction level of the code writer and identify parts where satisfaction is high. For example, it can estimate the writer's satisfaction level from code comments and commit messages. The analysis unit can also make suggestions to strengthen parts where satisfaction is high. For example, it can add comments to share successful experiences. The analysis unit can also visualize satisfaction. For example, it can display parts where satisfaction is high in different colors. This makes it possible to estimate the satisfaction level of the code writer and make suggestions to improve them, thereby improving the quality of the code.

[0079] The code analysis app may further include a refactoring support unit that supports code refactoring. The refactoring support unit, for example, makes code refactoring suggestions. The refactoring support unit can also evaluate the impact of refactoring. For example, it can evaluate performance improvements and bug reductions resulting from refactoring. The refactoring support unit can also manage refactoring history. For example, it can compare code before and after refactoring and record changes. This can support code refactoring and improve code quality.

[0080] The analysis unit can use the emotion estimation function to estimate the frustration of code writers and identify areas where frustration is high. For example, it can estimate a writer's frustration from code comments and commit messages. The analysis unit can also make improvement suggestions for areas where frustration is high. For example, it can suggest code refactoring or adding comments. The analysis unit can also visualize frustration. For example, it can display areas where frustration is high using different colors. This makes it possible to estimate the frustration of code writers and make improvement suggestions, thereby improving code quality.

[0081] The processing flow of the second embodiment will be briefly explained below.

[0082] Step 1: The code reader reads the code. For example, the code reader reads the code from a file system. The code reader can also retrieve the code from a GitHub repository. The code reader can also directly read the code entered by the user. Step 2: The analysis unit analyzes the code that has been read. For example, the analysis unit analyzes the definitions of functions and classes. The analysis unit can also analyze loops and conditional branch structures. The analysis unit can also analyze the usage of variables. Step 3: The real-time providing unit provides the results of the analysis performed by the analysis unit to the user in real time. For example, when the cursor is placed over a specific part of the code, the real-time providing unit displays a pop-up containing the processing details of that part. The real-time providing unit can also display the analysis results in a sidebar. The real-time providing unit can also display the analysis results as a tooltip. Step 4: The comment adding unit adds the results of the analysis by the analysis unit to the code as comments. For example, the comment adding unit automatically adds a comment such as "This function retrieves data from a database" to the top of a function. The comment adding unit can also add a comment such as "This class manages user information" to the definition of a class. The comment adding unit can also add a comment such as "This loop performs an operation on each element of a list" to the start of a loop.

[0083] 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.

[0084] The data generation model 58 is a so-called generative AI (Artificial Intelligence). An example of the data generation model 58 is ChatGPT (Internet Search<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.

[0085] 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.

[0086] [Second embodiment] FIG. 3 shows an example of the configuration of a data processing system 210 according to the second embodiment.

[0087] 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.

[0088] 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.

[0089] 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.

[0090] 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.

[0091] 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).

[0092] 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.

[0093] 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.

[0094] 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.

[0095] 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 the user's emotion using the emotion identification model 59 and perform identification processing using the user's emotion.

[0096] 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. Note that the smart glasses 214 may have a data generation model and an emotion identification model similar to the data generation model 58 and the emotion identification model 59.

[0097] 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.

[0098] 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.

[0099] 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.

[0100] 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.

[0101] [Third embodiment] FIG. 5 shows an example of the configuration of a data processing system 310 according to the third embodiment.

[0102] 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.

[0103] 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.

[0104] 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.

[0105] 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.

[0106] 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).

[0107] 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.

[0108] 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.

[0109] 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.

[0110] 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 the user's emotion using the emotion identification model 59 and perform identification processing using the user's emotion.

[0111] 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 may also have a data generation model and an emotion identification model similar to the data generation model 58 and the emotion identification model 59.

[0112] 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.

[0113] 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.

[0114] 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.

[0115] 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.

[0116] [Fourth embodiment] FIG. 7 shows an example of the configuration of a data processing system 410 according to the fourth embodiment.

[0117] 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.

[0118] 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.

[0119] 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.

[0120] 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.

[0121] 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).

[0122] 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.

[0123] 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.

[0124] 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.

[0125] 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.

[0126] 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 the user's emotion using the emotion identification model 59 and perform identification processing using the user's emotion.

[0127] In the robot 414, the processor 46 performs the identification process. 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. The robot 414 may have a data generation model and an emotion identification model similar to the data generation model 58 and the emotion identification model 59.

[0128] 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.

[0129] 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.

[0130] 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.

[0131] 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.

[0132] 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.

[0133] 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.

[0134] 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.

[0135] 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).

[0136] 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.

[0137] 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."

[0138] 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.

[0139] 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.

[0140] 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.

[0141] 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.

[0142] 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.

[0143] 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.

[0144] 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.

[0145] 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.

[0146] 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.

[0147] 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.

[0148] 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.

[0149] 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. [Explanation of symbols]

[0150] 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 code reading unit that reads a code; an analysis unit that analyzes the code read by the code reading unit; a real-time providing unit that provides the results analyzed by the analysis unit to a user in real time; a comment adding unit that adds the results of the analysis by the analysis unit to the code as comments; A system characterized by:

2. The analysis unit Simultaneously analyze the code for possible security holes or bugs and perform risk assessment.

2. The system of claim 1.

3. The analysis unit The results of the code analysis are automatically converted into other programming languages, and compatibility between different languages ​​is analyzed.

2. The system of claim 1.

4. The real-time providing unit The analysis results are customized according to the user's skill level, providing information for beginners and advanced users separately.

2. The system of claim 1.

5. The comment adding unit Using generative AI, the content of the comments can be translated into multiple languages, making them understandable for international teams.

2. The system of claim 1.

6. The analysis unit Inferring the intentions or feelings of the code writer and analyzing the design philosophy of the code 2. The system of claim 1.

7. The real-time providing unit Estimate the user's level of understanding and provide additional explanations for areas where understanding is insufficient.

2. The system of claim 1.

8. The comment adding unit Adjusting the tone or wording of the comments to suit the user's preferences 2. The system of claim 1.

Citation Information

Patent Citations

  • Persona chatbot control method and system

    JP2022180282A