system
The system addresses inconsistent code quality in Android development by collecting, categorizing, and training AI models on device source code, providing real-time improvement suggestions to enhance code quality and efficiency.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-08-22
- Publication Date
- 2026-03-06
AI Technical Summary
The diverse proprietary implementations in Android device development lead to varying code quality, increased developer workload, and inefficient utilization of past knowledge, hindering consistent and high-quality code production.
A system that collects source code from various Android devices, categorizes it, stores it in a database, trains an AI model, and provides real-time improvement suggestions to users, leveraging past knowledge effectively.
Enables high-quality code generation and efficient development by reducing developer workload and improving code consistency through real-time AI-driven suggestions.
Smart Images

Figure 2026038038000001_ABST
Abstract
Description
[Technical Field]
[0001] The technology of the present disclosure relates to a system. [Background technology]
[0002] Patent document 1 discloses a persona chatbot control method performed by at least one processor, the method including the steps of receiving a user utterance, adding the user utterance to a prompt including an instruction sentence related to a description of the chatbot character, encoding the prompt, and inputting the encoded prompt into a language model to generate a chatbot utterance in response to the user utterance. [Prior art documents] [Patent documents]
[0003] [Patent Document 1] Japanese Patent Publication No. 2022-180282 Summary of the Invention [Problem to be solved by the invention]
[0004] In conventional ANDROID (registered trademark) device development, the wide variety of proprietary implementations used by each company makes it difficult to write high-quality code when designing new devices. Different implementations result in varying quality, which increases the developer's workload and can negatively impact the consistency and quality of the product. Furthermore, the lack of a systematic approach for effectively leveraging past knowledge often leads to inefficient development. In light of the above, the present invention aims to improve the quality of code used in Android device development and reduce the developer's workload. [Means for solving the problem]
[0005] The system includes a means for collecting source code from various Android devices, a means for categorizing the collected source code and storing it in a database, a means for training an AI model using the stored source code, a means for generating source code improvement suggestions for new devices using the trained AI model, and a means for providing the generated improvement suggestions to users of the new devices. This system enables users to quickly generate high-quality source code when designing new devices and improve development efficiency by effectively utilizing each company's past knowledge. Specifically, a server collects source code from various devices, categorizes it, and stores it in a database. An AI model is trained based on the stored source code. When a user enters code for a new device and requests improvement suggestions, the suggestions generated by the AI model are provided to the user. Through this process, users can receive high-quality code improvement suggestions in real time.
[0006] "Source code" means the set of textual instructions that make up a computer program.
[0007] A "category" is a classification unit that groups elements with similar characteristics or purposes based on specific criteria.
[0008] A "database" is a collection of structured information for efficient data collection and management.
[0009] An "AI model" is an algorithm or system within a computer that learns and makes inferences based on artificial intelligence technology.
[0010] "Training" is the process of training an AI model based on data, a procedure for improving the model's performance in achieving a goal.
[0011] "Improvement Suggestions" are specific changes or best practice suggestions provided to improve the quality of source code.
[0012] A "user" is an entity that uses the system's functions to write source code and receive improvement suggestions.
[0013] "Terminal" means a computer or device for receiving source code input and improvement suggestions from an AI model.
[0014] "Analysis" is the process of examining source code and data in detail to extract specific patterns and information.
[0015] "Real-time" means that a particular process or response occurs immediately, allowing the user to obtain the results immediately. [Brief explanation of the drawings]
[0016] [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. [Figure 11] FIG. 3 is a sequence diagram showing a processing flow of the data processing system according to the first embodiment. [Figure 12] FIG. 10 is a sequence diagram showing the flow of processing in the data processing system in Application Example 1. [Figure 13] FIG. 10 is a sequence diagram showing the flow of processing in the data processing system according to the second embodiment when an emotion engine is combined. [Figure 14] FIG. 10 is a sequence diagram showing the flow of processing in the data processing system in Application Example 2 when an emotion engine is combined. DETAILED DESCRIPTION OF THE INVENTION
[0017] 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.
[0018] First, the terms used in the following description will be explained.
[0019] 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, a 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), and an APU (Accelerated Processing Unit).
[0020] 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.
[0021] 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.
[0022] 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), Bluetooth (registered trademark), etc.
[0023] 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."
[0024] [First embodiment]
[0025] FIG. 1 shows an example of the configuration of a data processing system 10 according to the first embodiment.
[0026] 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.
[0027] The data processing device 12 includes a computer 22, a database 24, and a communication I / F 26. The computer 22 is an example of a "computer" according to the technology of the present disclosure. The computer 22 includes a processor 28, a RAM 30, and a storage 32. The processor 28, the RAM 30, and the 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).
[0028] 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.
[0029] The reception device 38 includes a touch panel 38A, a microphone 38B, and the like, and receives user input. The touch panel 38A detects contact with an indicator (for example, a pen or a finger) to receive user input by the touch of the indicator. 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 acquires the data indicating the user input.
[0030] The output device 40 includes a display 40A and a speaker 40B, and presents data to the user 20 by outputting the data in a form of expression that the user 20 can perceive (for example, audio and / or text). The display 40A displays visible information such as text and images in accordance with instructions from the processor 46. The speaker 40B outputs audio in accordance with instructions from the processor 46. The 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.
[0031] 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.
[0032] FIG. 2 shows an example of the main functions of the data processing device 12 and the smart device 14.
[0033] 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.
[0034] 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.
[0035] In the smart device 14, the processor 46 performs the reception output process. The storage 50 stores a reception output program 60. The reception output program 60 is used in conjunction with the specific processing program 56 by the data processing system 10. The processor 46 reads the reception output program 60 from the storage 50 and executes the read reception output program 60 on the RAM 48. The reception output process is realized by the processor 46 operating as the control unit 46A in accordance with the reception output program 60 executed on the RAM 48.
[0036] Next, a description will be given of the specific processing performed by the specific processing unit 290 of the data processing device 12. In the following description, the data processing device 12 will be referred to as a "server" and the smart device 14 will be referred to as a "terminal."
[0037] The system of the present invention has the following configuration and functions: The server collects source code from various terminals, classifies the source code by category, and stores it in a database. The server uses the stored source code to train an AI model, and then uses the trained AI model to generate improvement suggestions for the source code of new terminals. The generated improvement suggestions are then provided to the user.
[0038] First, the server accesses open source repositories or designated source code repositories from each company's Android device to collect source code. Source code collection occurs periodically and automatically when new changes are detected.
[0039] The server then analyzes the collected source code and classifies it into specific categories based on the code's file structure, comments, metadata, etc. For example, it may be classified into categories such as "UI Implementation," "Battery Optimization," and "Security Features." This classification process is automated and can be performed efficiently without human intervention.
[0040] The classified source code is stored in a database that stores not only the source code but also associated metadata (e.g., author, date, category).
[0041] The server trains the AI model based on the stored source code. Machine learning algorithms are used for training, with the goal of improving the accuracy of the recommendations provided by the model. During training, the model's performance indicators (e.g., precision, recall, etc.) are monitored, and parameters are adjusted as needed.
[0042] Users can input new device code and request analysis and improvement suggestions from the AI model in real time. When a user writes new source code in an IDE (integrated development environment) and presses the "Code Quality Improvement Suggestion" button, the code is sent to the server. The server inputs the received code into the AI model, and the model analyzes the code. Based on the analysis results, the AI model generates code improvement suggestions. These suggestions include specific changes and best practices.
[0043] The generated improvement suggestions are displayed in the user's IDE in real time. For example, they may be presented in the form of "To improve the performance of this part of the code, it would be good to use this specific library." The user can then modify the code based on the suggested improvements and efficiently generate high-quality source code.
[0044] For example, if a user is implementing a UI for a new device, the code written by the user will be analyzed by an AI model and suggested to "introduce specific optimization techniques to improve the rendering performance of this UI component." This allows the user to immediately reflect high-quality implementations.
[0045] With the above configuration and functions, the system of the present invention can effectively utilize the unique implementation knowledge of each company and improve the code quality in the development of Android devices. It also reduces the burden on developers and enables an efficient development process.
[0046] The processing flow will be explained below.
[0047] Step 1:
[0048] The server accesses each company's Android device's source code repository. Specifically, the server obtains the repository URL from a public or private repository, such as GitHub, GitLab, or an internal server, and clones the source code using Git commands. It checks the repository's update history and incorporates the code if new changes are detected.
[0049] Step 2:
[0050] The server analyzes the collected source code and classifies it by category. Specifically, the server analyzes the file structure of the source code and automatically classifies it into categories such as "UI Implementation," "Battery Optimization," and "Security Features" using comments and metadata within the code (e.g., function names, comments, specific tags, etc.). The analysis algorithm uses natural language processing (NLP) technology to analyze comments and tags.
[0051] Step 3:
[0052] The server stores the classified source code in a database. Specifically, the server assigns metadata to each source code and stores it in the database along with category information. The database also stores information about the original revision and author of the source code.
[0053] Step 4:
[0054] The server retrieves source code for each category from the database and trains an AI model. Specifically, the server uses a machine learning framework to tokenize the source code and create a training dataset. The AI model (e.g., a neural network or decision tree model) learns patterns in the source code and optimizes the model's weights and biases.
[0055] Step 5:
[0056] Users write the code for their new Android device in an IDE, specifically, they use an IDE such as Android Studio to write the code for their new custom UI.
[0057] Step 6:
[0058] The user presses the "Suggest Code Quality Improvements" button. Specifically, after the user finishes writing new code, they click a dedicated button in the IDE. This action sends the source code to the server.
[0059] Step 7:
[0060] The server receives the code entered by the user and performs pre-processing: the server cleans the code received from the user and converts it into the required format: unnecessary comments and debug code are removed, and the code is tokenized.
[0061] Step 8:
[0062] The server then inputs the preprocessed code into the AI model and performs the analysis. Specifically, the server passes the code to the trained AI model, which analyzes the code's structure and patterns. Based on the analysis results, the model generates suggestions for improving the code.
[0063] Step 9:
[0064] The server sends the generated improvement suggestions to the IDE. Specifically, the server sends the model-generated improvement suggestions back to the user's IDE in real time, including specific suggested changes and best practices.
[0065] Step 10:
[0066] The terminal (IDE) displays the suggestions to the user. Specifically, the IDE displays the suggestions in a popup or sidebar to inform the user of the areas to improve. For example, it may say, "We recommend using a specific library to improve the performance of this UI component."
[0067] Step 11:
[0068] The user accepts the suggestions and modifies the code. Specifically, the user changes the code based on the suggested improvements to improve performance and quality. The user can also send the improved code back to the server and receive further suggestions.
[0069] Through the above steps, the system of the present invention learns each company's unique implementation, generates high-quality code, and provides real-time improvement suggestions.
[0070] Example 1
[0071] Next, a description will be given of Example 1. In the following description, the data processing device 12 will be referred to as a "server" and the smart device 14 will be referred to as a "terminal."
[0072] In recent years, improving code quality and achieving an efficient development process have become important issues in software development. However, there is a lack of means to effectively utilize unique implementations and best practices in various information processing devices, and there is a need for support to help developers generate high-quality code quickly. Furthermore, manually reviewing code every time a change is made requires time and effort, which hinders development efficiency.
[0073] The specific processing by the specific processing unit 290 of the data processing device 12 in the first embodiment is realized by the following means.
[0074] In this invention, the server includes means for collecting source code from various information processing devices, means for classifying the collected source code by category and storing it in a data storage device, means for training an AI model using the stored source code, means for generating improvement proposals for source code of a new information processing device using the trained AI model, and means for providing the generated improvement proposals to users of the new information processing device. This aggregates a wide range of source code and knowledge, and provides automatic analysis and improvement proposals using AI in real time, thereby reducing the burden on developers and enabling quick and efficient improvement of code quality.
[0075] "Information processing device" refers to a computer system or a device that functions as part of a computer system, and executes software and processes data.
[0076] "Source Code" means the textual code written by a developer to define the behavior of a program.
[0077] "Data storage device" refers to a device or system for storing digital information, including hard disk drives (HDDs), solid-state drives (SSDs), databases, etc.
[0078] An "artificial intelligence model" is a computational model that uses machine learning algorithms to learn from data and perform inference and analysis.
[0079] "Improvement proposals" are specific changes or guidelines for improving the quality or performance of existing source code.
[0080] "Category" refers to a division for classifying source code based on specific criteria or characteristics, such as "UI implementation," "battery optimization," and "security features."
[0081] An "integrated development environment" is a software application that integrates programming tools and functions, including a code editor, debugger, and build system.
[0082] "Analysis" is the process of understanding the content of source code and evaluating or diagnosing it based on specific parameters or patterns.
[0083] "Performance indicators" refer to standards or metrics for measuring the efficiency and effectiveness of training and inference of artificial intelligence models, including precision and recall.
[0084] "Real-time" refers to the property of responding or processing immediately to a request or input.
[0085] The present invention relates to a system that uses source code collected from various information processing devices to train classification and artificial intelligence models and support the improvement of source code quality. A specific embodiment of the present invention will be described in detail below.
[0086] First, the server collects source code from various information processing devices. This collection is performed by accessing an open-source code repository (e.g., GitHub) via the Internet and using an API to obtain the latest commits. The source code can be configured to be collected periodically, for example, every Sunday.
[0087] The collected source code is then analyzed and classified by the server. This involves using a static analysis tool (e.g., SonarQube) to examine the file structure, comments, and supplementary information of the source code. This automatically classifies the source code into categories such as "UI Implementation," "Battery Optimization," and "Security Features."
[0088] The classified source code is stored in a data storage device using a relational database (e.g., MySQL (registered trademark), PostgreSQL) that stores the source code and associated metadata (author, date, category, etc.). The structure of the stored source code data is optimized for quick access when needed.
[0089] The server then trains an artificial intelligence model based on the stored source code. This training uses a machine learning framework (e.g., TENSORFLOW®, PyTorch). The training data is processed using a GPU cluster, and the model's performance indicators (precision, recall, etc.) are monitored. If necessary, the model's performance is optimized using hyperparameter tuning techniques.
[0090] Users can write code for new information processing devices in an integrated development environment (e.g., Android Studio) and request real-time code analysis and improvement suggestions. When a user clicks the "Code Quality Improvement Suggestion" button, the code is sent to the server via an HTTP POST request.
[0091] The server inputs the received code into an AI model and performs an analysis. Based on the analysis results, the AI model generates suggestions for code improvement. These suggestions are displayed in the form of specific changes, such as a recommendation to "introduce specific optimization techniques to improve the rendering performance of this UI component." These suggestions are displayed in real time as a pop-up in the user's integrated development environment, allowing the user to efficiently modify the source code based on the suggested improvements.
[0092] For example, when a user is implementing the UI of a new information processing device, the code they wrote is sent to a server and analyzed by an AI model. As a result, the system suggests "introducing specific optimization techniques to improve the rendering performance of this UI component." By following these suggestions, the user can immediately improve their code and achieve a high-quality implementation.
[0093] Examples of prompts include "Suggest optimization methods to improve rendering performance when implementing UI for Android devices" and "Provide optimization suggestions for code that falls under the Battery Optimization category."
[0094] In this way, the present invention utilizes knowledge from collected source code and provides code analysis and improvement suggestions using an artificial intelligence model, thereby making the software development process for information processing devices more efficient and improving code quality.
[0095] The flow of the identification process in the first embodiment will be described with reference to FIG.
[0096] Step 1:
[0097] The server collects source code from various information processing devices. The server accesses open source code repositories (e.g., GitHub) via the Internet and collects the latest commits from the specified repository. The collection process is executed periodically (e.g., every Sunday). The input is the URL of the repository from which the code is collected and the commit IDs to be collected, and the output is the collected source code. Specifically, the server uses a REST API to obtain the latest commit data.
[0098] Step 2:
[0099] The server analyzes the collected source code and classifies it into categories. The server uses a static analysis tool (e.g., SonarQube) to examine the file structure, comments, and supplementary information of the source code. Based on this information, the server automatically classifies the source code into categories such as "UI Implementation," "Battery Optimization," and "Security Features." The input is the collected source code, and the output is source code classified by category. Specifically, the server classifies the source code using a specific rule set or regular expressions based on the analysis results of SonarQube.
[0100] Step 3:
[0101] The server stores the classified source code and associated metadata in a data storage device, using a relational database (e.g., MySQL or PostgreSQL). The input is the source code and metadata classified by category, and the output is the information stored in the database. Specifically, the server executes a MySQL INSERT statement to store the source code and its metadata in a table.
[0102] Step 4:
[0103] The server uses the stored source code to train an artificial intelligence model. It uses a machine learning framework (e.g., TensorFlow, PyTorch) to build a model using the stored source code data as training data. The input is the source code data stored in the database, and the output is the trained artificial intelligence model. Specifically, the server runs the training job using a GPU cluster and periodically monitors the model's performance indicators (precision, recall, etc.).
[0104] Step 5:
[0105] A user writes new source code in an integrated development environment (e.g., Android Studio) and presses the "Suggest Code Quality Improvements" button. This causes the code to be sent to the server via an HTTP POST request. The input is the new source code written by the user, and the output is the code received by the server. Specifically, when the user clicks the button, a plugin in the integrated development environment packages the contents of the generated source code into an HTTP POST request and sends it to the server.
[0106] Step 6:
[0107] The server inputs the received code into an AI model and analyzes the code. The input is the new source code sent to the server, and the output is improvement suggestions generated based on the analysis results. Specifically, the server inputs the code into the AI model, and the model outputs the analysis results.
[0108] Step 7:
[0109] The server displays the generated improvement suggestions in the user's integrated development environment in real time. The input is the improvement suggestions generated from the analysis results, and the output is the improvement suggestions displayed in the integrated development environment. Specifically, the server sends the improvement suggestions to the integrated development environment in an HTTP response, which is then displayed in a pop-up format.
[0110] The above is the specific processing flow of this system and the operations performed at each step.
[0111] (Application example 1)
[0112] Next, a description will be given of Application Example 1. In the following description, the data processing device 12 will be referred to as a "server" and the smart device 14 will be referred to as a "terminal."
[0113] When developing control software for factory robots, it is difficult to obtain suggestions for improving source code in real time. Furthermore, the lack of a means to provide specific suggestions for improvement that will help improve the robot's operation and functionality can lead to a decline in development efficiency and code quality. A system that addresses this issue and supports efficient, high-quality software development is needed.
[0114] The specific processing by the specific processing unit 290 of the data processing device 12 in the application example 1 is realized by the following means.
[0115] In this invention, the server includes means for collecting source code from various terminals, means for categorizing the collected source code into categories and storing them in a database, means for training an AI model using the stored source code, means for generating improvement suggestions for source code of a new terminal using the trained AI model, means for providing the generated improvement suggestions to a user of the new terminal, means for collecting source code of a control program executed in a factory robot and generating improvement suggestions in real time, and means for applying the generated improvement suggestions to the operation and function improvement of the robot. This makes it possible to provide specific improvement suggestions in real time to the control program of a factory robot and improve its operation and function.
[0116] "Various terminals" refers to digital devices such as smartphones, tablets, and personal computers.
[0117] "Source code" refers to the code of a program written using a programming language.
[0118] A "category" refers to a division for classifying source code according to specific features or functions.
[0119] A "database" refers to a system for efficiently storing, retrieving, and managing data.
[0120] An "AI model" refers to an algorithm or network that has been trained using machine learning or deep learning to perform a specific task.
[0121] "Training" refers to the process of teaching an AI model using large amounts of data.
[0122] "Improvement Suggestions" refers to specific advice or methods for improving the quality or performance of source code.
[0123] "User" refers to the developer or end user of the system or software.
[0124] "Factory robots" refer to robotic devices used to automate and reduce the labor required for various tasks in factories, such as those in the manufacturing industry.
[0125] "Control program" refers to a program for controlling equipment or systems.
[0126] "Real-time" refers to near-instant processing or response.
[0127] "Operation" refers to the specific actions or inputs required to operate a device or system.
[0128] "Improvement" refers to improving the services and performance provided by the system.
[0129] The system of the present invention has the following configuration and functions.
[0130] The server collects source code from various devices. For example, it has a means of acquiring source code from digital devices such as smartphones, tablets, and PCs. The collected source code is automatically classified into specific categories based on the code's file structure, comments, metadata, etc. This classification process is performed efficiently, and the results are stored in a database.
[0131] The server uses the stored source code to train the AI model. Machine learning and deep learning algorithms are used for this training. Specifically, frameworks such as TensorFlow and PyTorch can be used. The server monitors the model's performance indicators during the training process and adjusts parameters as necessary. The trained AI model is capable of generating highly accurate improvement suggestions.
[0132] When a user inputs the source code of a new device and requests improvement suggestions, this code is sent to the server. The server inputs the received code into the AI model, which then analyzes the code. Based on the analysis results, the AI model generates specific improvement suggestions for the code.
[0133] Furthermore, this system can also be applied to the source code of the control programs executed within factory robots, generating specific improvement proposals in real time to improve the operation and functionality of factory robots, thereby improving robot performance.
[0134] For example, if there is motor control code in a factory robot control program, the system can suggest the use of a highly efficient library. An example of a specific prompt is, "I am writing a factory robot control program. Please suggest performance improvements for a specific control part. Below is the code snippet."
[0135] Such a system will enable factory robot developers to obtain specific improvement proposals in real time, thereby improving development efficiency and quality.
[0136] The flow of the specific processing in the application example 1 will be described with reference to FIG.
[0137] Step 1:
[0138] The server collects source code from various devices. The collected source code is obtained from smartphones, tablets, PCs, etc. The collected data is stored in a temporary storage area on the server. The input is the source code sent from the device, and the output is the source code stored in the temporary storage area.
[0139] Step 2:
[0140] The server analyzes the collected source code and automatically classifies it into specific categories. The analysis uses code structure, comments, metadata, etc. Specifically, categorization is performed using regular expressions and machine learning algorithms. The input is the source code in the temporary storage area, and the output is a database classified by category.
[0141] Step 3:
[0142] The server trains an AI model based on the classified source code. Training is performed using frameworks such as TensorFlow and PyTorch. The data is batch-processed and the model parameters are optimized. The input is the classified source code and related metadata, and the output is a trained AI model.
[0143] Step 4:
[0144] The user inputs the source code of a new device and requests improvement suggestions. They write the source code in the IDE (Integrated Development Environment) on the device and press the "Improvement Suggestion" button. This operation sends the source code to the server. The input is the source code written by the user, and the output is the source code sent to the server.
[0145] Step 5:
[0146] The server inputs the received source code into an AI model for analysis. The AI model is used for analysis to evaluate the quality and performance of the code. The input is the source code sent by the user, and the output is the analysis result.
[0147] Step 6:
[0148] The server generates code improvement suggestions based on the analysis results. The improvement suggestions include specific changes and best practices. For example, the suggestions might be in the form of "We recommend using a specific library to improve the performance of this part of the code." The input is the analysis results, and the output is the improvement suggestions.
[0149] Step 7:
[0150] The server displays the generated improvement suggestions in the user's IDE in real time, and the user can review the suggestions and make improvements to the code. The input is the generated improvement suggestions, and the output is the suggestions displayed in the user's IDE.
[0151] Step 8:
[0152] In the case of factory robots, the server collects the source code of the control program executed within the robot, analyzes it, and provides improvement suggestions in real time. The input is the source code of the factory robot's control program, and the output is specific improvement suggestions for improving the robot's operation and functionality.
[0153] Furthermore, an emotion engine that estimates the user's emotion may be combined. That is, the identification processing unit 290 may estimate the user's emotion using the emotion identification model 59 and perform identification processing using the user's emotion.
[0154] The system of the present invention combines an emotion engine that recognizes user emotions and has the following configuration and functions. First, the server collects source code from various devices, classifies the collected source code by category, and stores it in a database. Based on this, the server trains an AI model and uses the trained AI model to generate improvement suggestions for the source code of new devices. The generated improvement suggestions are then provided to the user. Furthermore, the system is equipped with an emotion engine that adjusts and provides improvement suggestions based on the user's emotional state.
[0155] A specific example is given below.
[0156] First, the server accesses public and designated source code repositories from each company's Android device to collect source code. The collected source code is then automatically analyzed by the server and classified into categories. The analysis uses the code's file structure, comments, metadata, and other information. The classified source code is then stored in a database, along with the metadata.
[0157] The server trains the AI model based on the stored source code. This training optimizes the model for high accuracy by learning patterns in the source code. During training, performance indicators (precision, recall, etc.) are constantly monitored, and parameters are adjusted as necessary.
[0158] Users code new devices in an IDE (Integrated Development Environment). After the user finishes writing the code, they click the "Code Quality Improvement Suggestion" button, which sends the code to the server. The server preprocesses the received code and analyzes it using an AI model. The model generates code improvement suggestions and provides them to the user. The suggestions include specific code changes and best practices.
[0159] Furthermore, the system of the present invention incorporates an emotion engine that recognizes the user's emotions in real time. The emotion engine analyzes the user's facial expressions and behavioral data to determine their emotional state. For example, if the user is tired, the emotion engine captures that information and adjusts the suggested improvements and explanations. Specifically, if the user is feeling stressed, the suggested improvements are presented in a concise and intuitive format. Furthermore, if the user is in a positive emotional state, the system can provide detailed explanations and additional best practices.
[0160] For example, consider a user implementing a new UI component. After entering code in the IDE and clicking the "Code Quality Improvement Suggestion" button, the server receives the code and the AI model analyzes it. For example, the model may suggest using a specific library to improve the performance of this UI component. If the emotion engine recognizes that the user is tired, it will simplify the suggestions and present them in an easy-to-understand format. Conversely, if the user is relaxed, it will provide detailed explanations and supplementary information.
[0161] In this way, users can efficiently generate high-quality code and receive suggestions customized to their emotional state. By combining the emotion engine, the system of the present invention can improve the user's development experience and efficiently and effectively improve the quality of source code.
[0162] The processing flow will be explained below.
[0163] Step 1:
[0164] The server accesses the source code repository of each Android device. Specifically, the server obtains the repository URL from public or private repositories such as GitHub, GitLab, or the built-in server, clones the source code using Git commands, checks the repository update history, and automatically downloads the code if new changes are detected.
[0165] Step 2:
[0166] The server analyzes the collected source code. Specifically, the server uses an analysis algorithm to analyze the code's file structure, comments, and metadata (e.g., function names and specific tags). Based on the results of this analysis, the server classifies the source code into categories such as "UI Implementation," "Battery Optimization," and "Security Features." The classification process is performed automatically using natural language processing (NLP) technology.
[0167] Step 3:
[0168] The server stores the classified source code in a database. Specifically, the server assigns metadata to each source code and stores it in the database along with category information. The database also stores information about the original revision and author of the source code.
[0169] Step 4:
[0170] The server retrieves source code by category from the database and trains the AI model. Specifically, the server uses a machine learning framework to tokenize the source code and create a training dataset. This allows the AI model (e.g., a neural network or decision tree model) to learn patterns in the source code and optimize performance metrics.
[0171] Step 5:
[0172] The device activates an emotion engine to collect user emotion data. Specifically, the device captures the user's facial expressions and voice in real time through a camera and microphone, and uses an emotion recognition algorithm to determine the user's emotional state.
[0173] Step 6:
[0174] Users write the code for new Android devices in an IDE (integrated development environment), such as Android Studio, to code new custom UIs and features.
[0175] Step 7:
[0176] The user presses the "Code Quality Improvement Suggestion" button. Specifically, when the user finishes writing the code, they click a dedicated button in the IDE. This action sends the code written by the user to the server.
[0177] Step 8:
[0178] The server pre-processes the code received from the user: specifically, the server cleans the code and converts it into the required format, removing unnecessary comments and debug code, and tokenizing the code.
[0179] Step 9:
[0180] The server inputs the preprocessed code into the AI model to generate analysis and improvement suggestions. Specifically, the server passes the code to the trained AI model, which analyzes the code's structure and patterns. Based on the model's analysis results, improvement suggestions for the code are generated.
[0181] Step 10:
[0182] The emotion engine determines the user's emotional state and sends the information to the server. Specifically, if the user is tired, the emotion engine detects the "fatigue" state and sends the data to the server in real time.
[0183] Step 11:
[0184] The server adjusts the content and presentation of improvement suggestions based on the emotion data sent from the emotion engine. Specifically, if the server detects that the user is tired, it condenses the suggestions and sends them back to the IDE in an easy-to-understand format. If the user is in a positive state, it provides detailed explanations and additional information.
[0185] Step 12:
[0186] The terminal (IDE) displays the improvement suggestions received from the server to the user in real time. Specifically, the suggestions are displayed in a popup or sidebar to inform the user of the areas to be improved. For example, it may be displayed in the form of "We recommend using a specific library to improve the performance of this UI component."
[0187] Step 13:
[0188] The user accepts the suggestions and modifies the code. Specifically, the user changes the code based on the suggested improvements to improve performance and quality. The user can also send the improved code back to the server and receive further suggestions.
[0189] Through this step, the system provides customized improvement suggestions according to the user's emotional state, improving the quality of the source code and increasing development efficiency.
[0190] Example 2
[0191] Next, a description will be given of Example 2. In the following description, the data processing device 12 will be referred to as a "server" and the smart device 14 will be referred to as a "terminal."
[0192] Conventional source code analysis and improvement suggestion systems make uniform suggestions without considering the user's emotional state, which means they are unable to provide appropriate support tailored to the user's situation. Another issue is the lack of automated means for efficiently improving source code quality.
[0193] The specific processing by the specific processing unit 290 of the data processing device 12 in the second embodiment is realized by the following means.
[0194] In this invention, the server includes means for collecting source code from various terminals, means for classifying the collected source code by category and storing the collected source code in a database, means for training an artificial intelligence model using the stored source code, means for generating improvement suggestions for source code for a new terminal using the trained artificial intelligence model, means for providing the generated improvement suggestions to a user of the new terminal, an emotion recognition engine that recognizes the emotional state of the user, means for adjusting the content of the suggestions based on the recognized emotional state, and means for displaying the content of the suggestions in an easy-to-understand format. This makes it possible to provide flexible improvement suggestions according to the emotional state of the user, thereby efficiently improving the quality of source code.
[0195] A "terminal" is an electronic device operated by a user, and is a device that can input and execute programs.
[0196] "Source code" is the textual information used to describe the behavior of a program; it is a series of instructions written in a programming language.
[0197] A "server" is a computer system that provides services and data to multiple terminals via a network.
[0198] A "database" is a system for efficiently storing, retrieving, and managing large amounts of data.
[0199] An "artificial intelligence model" is a mathematical model that uses machine learning algorithms to analyze data and is trained to perform a specific task.
[0200] An "emotion recognition engine" is a system that analyzes a user's facial expressions and behavioral data to determine the user's emotional state in real time.
[0201] A "category" is a classification criterion for classifying source code with similar attributes.
[0202] "Improvement proposals" are specific changes and advice to improve the quality and efficiency of source code.
[0203] "Preprocessing" is the process of converting data into a format that is easier to analyze, such as by shaping, removing noise, or tokenizing it, before analyzing the data.
[0204] "Analysis" is the process of examining collected source code in detail to understand its structure and patterns.
[0205] The system of the present invention is a combination of an emotion recognition engine that recognizes the emotional state of a user, and has the following configuration and functions. Each component and specific processing steps will be described below.
[0206] Server Roles
[0207] First, the server collects source code from various devices using a source code management platform such as GitHub or GitLab.
[0208] The server accesses these platforms and downloads source code from public repositories, and can access private repositories if needed using credentials.
[0209] The server then analyzes the collected source code, classifies it by category, and stores it in a database.
[0210] The server uses Python code analysis libraries (e.g., ast, pylint) to analyze the file structure, comments, and metadata of the source code. Based on the analyzed information, the server classifies the source code into categories such as "UI components" and "backend logic" and stores them in a database.
[0211] Based on the stored source code, the server trains an artificial intelligence model (AI model) using machine learning frameworks such as TensorFlow and PyTorch.
[0212] During the training process, the server creates a dataset to learn source code patterns and uses it to train the AI model, monitoring the model's precision and recall and adjusting parameters as needed.
[0213] The trained AI model is then used to generate improvement suggestions for source code received from new devices.
[0214] The server preprocesses the source code received from new devices, analyzes it using AI models, and generates specific improvement suggestions, including specific code changes and best practices.
[0215] The generated improvement proposals are provided to the user from the server.
[0216] Device Role
[0217] Users code their new devices using an IDE (integrated development environment) such as Android Studio or Visual Studio Code.
[0218] When the user completes coding, he / she clicks the "Code Quality Improvement Suggestion" button, which causes the device to send the source code to the server.
[0219] The device uses a camera and microphone to collect the user's facial expressions and behavioral data in real time.
[0220] It is equipped with an emotion recognition engine that recognizes the user's emotional state, adjusting the content and format of improvement suggestions depending on whether the user is stressed or relaxed.
[0221] For example, consider a user implementing a new UI component. After entering code in the IDE and clicking the "Code Quality Improvement Suggestion" button, the server receives the code and the AI model analyzes it. For example, the model may suggest using a specific library to improve the performance of this UI component. If the emotion recognition engine recognizes that the user is tired, it will present the suggestions in a concise and easy-to-understand format. Conversely, if the user is relaxed, it will provide detailed explanations and supplementary information.
[0222] Prompt Sentence Examples
[0223] "I've implemented a new UI component. I'd like some suggestions to improve the code quality."
[0224] In this way, the system can respond flexibly to the user's emotional state, improving the efficiency and quality of coding.
[0225] The flow of the identification process in the second embodiment will be described with reference to FIG.
[0226] Step 1:
[0227] The server collects source code from various terminals.
[0228] Specifically, the server accesses a source code management platform such as GitHub or GitLab and downloads source code from public and designated repositories.
[0229] Input: Source code repository URL and credentials
[0230] Output: Collected source code files
[0231] Step 2:
[0232] The server analyzes the collected source code and classifies it into categories.
[0233] The server uses Python code analysis libraries (e.g., ast, pylint) to analyze the source code's file structure, comments, and metadata, and classify each file and function into the appropriate category.
[0234] Input: Collected source code
[0235] Output: Source code and metadata categorized by category
[0236] Step 3:
[0237] The server stores the classified source code in a database.
[0238] The server uses a database such as MongoDB or MySQL to store source code organized by category and its associated metadata.
[0239] Input: Source code and metadata, categorized by category
[0240] Output: Source code and metadata stored in a database
[0241] Step 4:
[0242] The server trains an artificial intelligence model (AI model) based on the stored source code.
[0243] The server uses TensorFlow or PyTorch to train a neural network on the source code dataset, performing cross-validation, monitoring the model's precision and recall, and adjusting parameters as needed.
[0244] Input: Source code dataset stored in a database
[0245] Output: A trained AI model
[0246] Step 5:
[0247] The user enters the source code for the new device in an IDE (integrated development environment).
[0248] For example, using Android Studio or Visual Studio Code, the user creates new code.
[0249] Input: Source code entered on the new terminal
[0250] Output: User-written source code files
[0251] Step 6:
[0252] The user clicks the "Suggest Code Quality Improvement" button, and the terminal sends the source code to the server.
[0253] Specifically, the terminal sends an HTTP POST request to the server and attaches a code file.
[0254] Input: User-written source code files
[0255] Output: Source code sent to the server
[0256] Step 7:
[0257] The server preprocesses the received source code and generates improvement suggestions using a trained AI model.
[0258] The server performs preprocessing such as tokenization and noise removal, analyzes the source code using an AI model, and generates specific improvement suggestions.
[0259] Input: Received source code
[0260] Output: Generated improvement suggestions
[0261] Step 8:
[0262] The terminal collects the user's facial expression and behavior data and recognizes the user's emotional state using an emotion recognition engine.
[0263] The device uses the camera and microphone to analyze emotions using an emotion recognition API (e.g., Microsoft® Azure® Face API).
[0264] Input: User's facial expressions and behavior data
[0265] Output: Perceived emotional state
[0266] Step 9:
[0267] The server adjusts the suggestions based on the perceived emotional state and presents them to the user in an optimal format.
[0268] The server decides whether to make the proposal brief or detailed and sends the adjusted proposal to the terminal.
[0269] Input: Generated improvement suggestions and perceived emotional state
[0270] Output: Adjusted proposal
[0271] In this way, through each step and its specific actions, the system can provide code improvement suggestions that adapt to the user's emotional state, improving the efficiency and quality of coding.
[0272] (Application example 2)
[0273] Next, a description will be given of Application Example 2. In the following description, the data processing device 12 will be referred to as a "server" and the smart device 14 will be referred to as a "terminal."
[0274] Current factory robot maintenance is time-consuming and labor-intensive, making it difficult to operate efficiently. It's also difficult for maintenance personnel to receive optimal improvement suggestions in a format that's easy to understand, and depending on the maintenance personnel's emotional state, work efficiency can drop significantly. Furthermore, the suggestions are rigid and don't take into account the emotions and burden of the personnel, often resulting in robot downtime and reduced efficiency.
[0275] The identification processing by the identification processing unit 290 of the data processing device 12 in Application Example 2 is realized by the following means. In this invention, the server includes means for collecting source code from various devices, means for classifying the collected source code by category and storing it in a database, means for training a generative AI model using the stored source code, means for generating improvement suggestions for the source code of a new device using the trained generative AI model, means for providing the generated improvement suggestions to a user of the new device, and means for incorporating an emotion engine that recognizes the user's emotions and adjusting the content of the improvement suggestions based on the user's emotional state. This makes it possible to provide optimal improvement suggestions adapted to the emotional state of the maintenance personnel and improve the maintenance efficiency of factory robots.
[0276] "Various devices" is a general term for various hardware components, including factory robots and other electronic equipment.
[0277] "Source code" refers to a set of instructions written in a programming language that is used to control the operation of a system or application.
[0278] "Category" refers to a classification criterion for classifying source code based on specific characteristics or functions.
[0279] A "database" is a collection of collected information that is stored in an organized manner and managed so that it can be easily searched and used.
[0280] A "generative AI model" is an artificial intelligence model trained using machine learning techniques that can generate insights and suggestions from new data.
[0281] The "emotion engine" is a system that analyzes a user's facial expressions and behavioral data in real time to recognize their emotional state.
[0282] "Improvement suggestions" are specific suggestions for improving performance or resolving problems that are generated for source code analyzed using an AI model.
[0283] "Means of collection" refers to the methods and technologies for obtaining source code from various devices and storing it on a server.
[0284] "Means for classification and storage" refers to methods and technologies for classifying source code into categories and storing them in a database.
[0285] "Means of training" refers to the learning process used to optimize a generative AI model using stored source code.
[0286] "Means for providing" refers to methods and techniques for presenting the generated improvement proposals to users in an easy-to-understand manner.
[0287] "Means for adjusting based on emotional state" refers to methods and techniques for optimally changing the content of suggestions depending on the user's emotions recognized by the emotion engine.
[0288] A system embodying the present invention involves collecting source code from various devices, categorizing the collected source code, and storing it in a database. The source code stored in the database is used to train a generative AI model, which is then used to generate suggestions for improving the source code of new devices. The suggestions are then provided to a user, and an emotion engine that recognizes the user's emotions can adjust the suggestions based on the user's emotional state.
[0289] The server accesses public or designated source code repositories to collect source code. The collected source code is automatically analyzed and classified into categories using the code's file structure, comments, metadata, etc. The classified source code is then stored in a database along with the metadata.
[0290] The server then trains a generative AI model based on the stored source code. This training learns patterns in the source code and optimizes the model for high accuracy. During training, performance metrics (precision, recall, etc.) are constantly monitored, and parameters are adjusted as needed.
[0291] When a user enters code for a new device, they create the code using an integrated development environment (IDE) and click the "Code Quality Improvement Suggestion" button, which sends the code to the server. The server preprocesses the received code and analyzes it using a generative AI model. The model generates code improvement suggestions and provides them to the user. The suggestions include specific code changes and best practices.
[0292] Furthermore, the system of the present invention includes an emotion engine that recognizes the user's emotions in real time. The emotion engine analyzes the user's facial expressions and behavioral data to determine their emotional state. For example, if the user is tired, the emotion engine captures that information and adjusts the suggested improvements and the way they are explained. Specifically, if the user is stressed, the suggested improvements are modified to be concise and intuitive. If the user is relaxed, more detailed explanations and additional best practices can be provided.
[0293] As a concrete example, consider the case where a user is implementing a new UI component. After entering code in the IDE and clicking the "Code Quality Improvement Suggestion" button, the server receives the code and the generative AI model analyzes it. For example, the model may suggest "using a specific library to improve the performance of this UI component." If the emotion engine recognizes the user's emotional state as "tired," it will simplify the suggestions and present them in an easy-to-understand format. Conversely, if the user is "relaxed," it will provide detailed explanations and supplementary information.
[0294] An example of a prompt sentence might be:
[0295] What are the next steps for refueling?
[0296] "Please suggest the best method for this new parameter setting."
[0297] "I'm tired, so please give me easy-to-follow instructions."
[0298] In this way, by implementing the present invention, optimal improvement proposals adapted to the emotional state of the maintenance personnel are provided, and it is expected that the maintenance efficiency of factory robots will improve.
[0299] The flow of the specific processing in the application example 2 will be described with reference to FIG.
[0300] Step 1: Collect and classify
[0301] The server accesses public or designated source code repositories to collect source code. The collected source code is automatically analyzed using the code's file structure, comments, metadata, etc., and classified into categories. The classified source code is stored in a database, along with the metadata. The input is a public source code repository, and the output is organized source code and the corresponding metadata.
[0302] Step 2: Training the generative AI model
[0303] The server trains the generative AI model using the source code stored in the database. This training learns patterns in the source code and optimizes the model to achieve high accuracy. During training, performance indicators (precision, recall, etc.) are constantly monitored, and parameters are adjusted as needed. The input is the classified source code, and the output is the trained generative AI model.
[0304] Step 3: Receiving and Preprocessing the Code
[0305] A user enters code on a new device and clicks the "Suggest Code Quality Improvements" button in the IDE. The code sent from the device is received by the server, which preprocesses the received code and converts it into a format that is easy to analyze with the generative AI model. The input is the user's new code, and the output is the preprocessed code.
[0306] Step 4: Analyze your code and generate suggestions
[0307] The server inputs the preprocessed code into a generative AI model for analysis. The generative AI model generates code improvement suggestions, including specific code changes and best practices. The input is the preprocessed code, and the output is the improvement suggestions.
[0308] Step 5: Recognizing your emotional state
[0309] The camera on the device captures the user's facial expression and sends the data to the emotion engine. The emotion engine analyzes the user's facial expression and behavioral data and determines their emotional state in real time. The input is the user's facial expression data, and the output is the determined emotional state.
[0310] Step 6: Adjust your proposal
[0311] The server adjusts the generated improvement suggestions based on the user's emotional state as determined by the emotion engine. For example, if the user is tired, the suggestion content is simplified and changed to a more understandable format. On the other hand, if the user is relaxed, detailed explanations and additional best practices are provided. The input is the improvement suggestion and the user's emotional state, and the output is the adjusted improvement suggestion.
[0312] Step 7: Provide a proposal
[0313] The server provides the adjusted improvement proposals to the user. The user can then review the proposals in their IDE and modify their code based on the suggestions. The input is the adjusted improvement proposals, and the output is the proposals provided in a user-viewable format.
[0314] Through this series of processes, users can efficiently generate high-quality code and receive optimal improvement suggestions that adapt to their emotional state.
[0315] 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.
[0316] The data generation model 58 is a so-called generative AI (Artificial Intelligence). An example of the data generation model 58 is ChatGPT (registered trademark) (Internet search engine).<URL: https: / / openai.com / blog / chatgpt> ), Gemini (registered trademark) (Internet search <url: https: gemini.google.com ?hl="ja">) and other generation AIs. 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 voice, text data indicating text, and image data indicating an image is also input. 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.
[0317] In the above embodiment, an example in which the specific process is performed by the data processing device 12 has been given, but the technology of the present disclosure is not limited to this, and the specific process may be performed by the smart device 14.
[0318] [Second embodiment]
[0319] FIG. 3 shows an example of the configuration of a data processing system 210 according to the second embodiment.
[0320] 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.
[0321] The data processing device 12 includes a computer 22, a database 24, and a communication I / F 26. The computer 22 is an example of a "computer" according to the technology of the present disclosure. The computer 22 includes a processor 28, a RAM 30, and a storage 32. The processor 28, the RAM 30, and the 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).
[0322] 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.
[0323] The microphone 238 receives instructions and the like from the user 20 by receiving voice uttered by the user 20. The microphone 238 captures the voice uttered by the user 20, converts the captured voice into audio data, and outputs it to the processor 46. The speaker 240 outputs audio in accordance with instructions from the processor 46.
[0324] 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 surroundings of user 20 (for example, an imaging range defined by an angle of view equivalent to the field of vision of a typical healthy person).
[0325] 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. 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.
[0326] 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.
[0327] 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 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.
[0328] 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.
[0329] In the smart glasses 214, the processor 46 performs the reception output process. A reception output program 60 is stored in the storage 50. The processor 46 reads the reception output program 60 from the storage 50 and executes the read reception output program 60 on the RAM 48. The reception output process is realized by the processor 46 operating as the control unit 46A in accordance with the reception output program 60 executed on the RAM 48.
[0330] Next, a description will be given of the identification process performed by the identification processing unit 290 of the data processing device 12. In the following description, the data processing device 12 will be referred to as the "server" and the smart glasses 214 will be referred to as the "terminal."
[0331] The system of the present invention has the following configuration and functions: The server collects source code from various terminals, classifies the source code by category, and stores it in a database. The server uses the stored source code to train an AI model, and then uses the trained AI model to generate improvement suggestions for the source code of new terminals. The generated improvement suggestions are then provided to the user.
[0332] First, the server accesses open source repositories or designated source code repositories from each company's Android device to collect source code. Source code collection occurs periodically and automatically when new changes are detected.
[0333] The server then analyzes the collected source code and classifies it into specific categories based on the code's file structure, comments, metadata, etc. For example, it may be classified into categories such as "UI Implementation," "Battery Optimization," and "Security Features." This classification process is automated and can be performed efficiently without human intervention.
[0334] The classified source code is stored in a database that stores not only the source code but also associated metadata (e.g., author, date, category).
[0335] The server trains the AI model based on the stored source code. Machine learning algorithms are used for training, with the goal of improving the accuracy of the recommendations provided by the model. During training, the model's performance indicators (e.g., precision, recall, etc.) are monitored, and parameters are adjusted as needed.
[0336] Users can input new device code and request analysis and improvement suggestions from the AI model in real time. When a user writes new source code in an IDE (integrated development environment) and presses the "Code Quality Improvement Suggestion" button, the code is sent to the server. The server inputs the received code into the AI model, and the model analyzes the code. Based on the analysis results, the AI model generates code improvement suggestions. These suggestions include specific changes and best practices.
[0337] The generated improvement suggestions are displayed in the user's IDE in real time. For example, they may be presented in the form of "To improve the performance of this part of the code, it would be good to use this specific library." The user can then modify the code based on the suggested improvements and efficiently generate high-quality source code.
[0338] For example, if a user is implementing a UI for a new device, the code written by the user will be analyzed by an AI model and suggested to "introduce specific optimization techniques to improve the rendering performance of this UI component." This allows the user to immediately reflect high-quality implementations.
[0339] With the above configuration and functions, the system of the present invention can effectively utilize the unique implementation knowledge of each company and improve the code quality in the development of Android devices. It also reduces the burden on developers and enables an efficient development process.
[0340] The processing flow will be explained below.
[0341] Step 1:
[0342] The server accesses each company's Android device's source code repository. Specifically, the server obtains the repository URL from a public or private repository, such as GitHub, GitLab, or an internal server, and clones the source code using Git commands. It checks the repository's update history and incorporates the code if new changes are detected.
[0343] Step 2:
[0344] The server analyzes the collected source code and classifies it by category. Specifically, the server analyzes the file structure of the source code and automatically classifies it into categories such as "UI Implementation," "Battery Optimization," and "Security Features" using comments and metadata within the code (e.g., function names, comments, specific tags, etc.). The analysis algorithm uses natural language processing (NLP) technology to analyze comments and tags.
[0345] Step 3:
[0346] The server stores the classified source code in a database. Specifically, the server assigns metadata to each source code and stores it in the database along with category information. The database also stores information about the original revision and author of the source code.
[0347] Step 4:
[0348] The server retrieves source code for each category from the database and trains an AI model. Specifically, the server uses a machine learning framework to tokenize the source code and create a training dataset. The AI model (e.g., a neural network or decision tree model) learns patterns in the source code and optimizes the model's weights and biases.
[0349] Step 5:
[0350] Users write the code for their new Android device in an IDE, specifically, they use an IDE such as Android Studio to write the code for their new custom UI.
[0351] Step 6:
[0352] The user presses the "Suggest Code Quality Improvements" button. Specifically, after the user finishes writing new code, they click a dedicated button in the IDE. This action sends the source code to the server.
[0353] Step 7:
[0354] The server receives the code entered by the user and performs pre-processing: the server cleans the code received from the user and converts it into the required format: unnecessary comments and debug code are removed, and the code is tokenized.
[0355] Step 8:
[0356] The server then inputs the preprocessed code into the AI model and performs the analysis. Specifically, the server passes the code to the trained AI model, which analyzes the code's structure and patterns. Based on the analysis results, the model generates suggestions for improving the code.
[0357] Step 9:
[0358] The server sends the generated improvement suggestions to the IDE. Specifically, the server sends the model-generated improvement suggestions back to the user's IDE in real time, including specific suggested changes and best practices.
[0359] Step 10:
[0360] The terminal (IDE) displays the suggestions to the user. Specifically, the IDE displays the suggestions in a popup or sidebar to inform the user of the areas to improve. For example, it may say, "We recommend using a specific library to improve the performance of this UI component."
[0361] Step 11:
[0362] The user accepts the suggestions and modifies the code. Specifically, the user changes the code based on the suggested improvements to improve performance and quality. The user can also send the improved code back to the server and receive further suggestions.
[0363] Through the above steps, the system of the present invention learns each company's unique implementation, generates high-quality code, and provides real-time improvement suggestions.
[0364] Example 1
[0365] Next, a description will be given of Example 1. In the following description, the data processing device 12 will be referred to as a "server" and the smart glasses 214 will be referred to as a "terminal."
[0366] In recent years, improving code quality and achieving an efficient development process have become important issues in software development. However, there is a lack of means to effectively utilize unique implementations and best practices in various information processing devices, and there is a need for support to help developers generate high-quality code quickly. Furthermore, manually reviewing code every time a change is made requires time and effort, which hinders development efficiency.
[0367] The specific processing by the specific processing unit 290 of the data processing device 12 in the first embodiment is realized by the following means.
[0368] In this invention, the server includes means for collecting source code from various information processing devices, means for classifying the collected source code by category and storing it in a data storage device, means for training an AI model using the stored source code, means for generating improvement proposals for source code of a new information processing device using the trained AI model, and means for providing the generated improvement proposals to users of the new information processing device. This aggregates a wide range of source code and knowledge, and provides automatic analysis and improvement proposals using AI in real time, thereby reducing the burden on developers and enabling quick and efficient improvement of code quality.
[0369] "Information processing device" refers to a computer system or a device that functions as part of a computer system, and executes software and processes data.
[0370] "Source Code" means the textual code written by a developer to define the behavior of a program.
[0371] "Data storage device" refers to a device or system for storing digital information, including hard disk drives (HDDs), solid-state drives (SSDs), databases, etc.
[0372] An "artificial intelligence model" is a computational model that uses machine learning algorithms to learn from data and perform inference and analysis.
[0373] "Improvement proposals" are specific changes or guidelines for improving the quality or performance of existing source code.
[0374] "Category" refers to a division for classifying source code based on specific criteria or characteristics, such as "UI implementation," "battery optimization," and "security features."
[0375] An "integrated development environment" is a software application that integrates programming tools and functions, including a code editor, debugger, and build system.
[0376] "Analysis" is the process of understanding the content of source code and evaluating or diagnosing it based on specific parameters or patterns.
[0377] "Performance indicators" refer to standards or metrics for measuring the efficiency and effectiveness of training and inference of artificial intelligence models, including precision and recall.
[0378] "Real-time" refers to the property of responding or processing immediately to a request or input.
[0379] The present invention relates to a system that uses source code collected from various information processing devices to train classification and artificial intelligence models and support the improvement of source code quality. A specific embodiment of the present invention will be described in detail below.
[0380] First, the server collects source code from various information processing devices. This collection is performed by accessing an open-source code repository (e.g., GitHub) via the Internet and using an API to obtain the latest commits. The source code can be configured to be collected periodically, for example, every Sunday.
[0381] The collected source code is then analyzed and classified by the server. This involves using a static analysis tool (e.g., SonarQube) to examine the file structure, comments, and supplementary information of the source code. This automatically classifies the source code into categories such as "UI Implementation," "Battery Optimization," and "Security Features."
[0382] The classified source code is stored in a data storage system using a relational database (e.g., MySQL, PostgreSQL) that stores the source code and associated metadata (author, date, category, etc.). The structure of the stored source code data is optimized for quick access when needed.
[0383] The server then trains an artificial intelligence model based on the stored source code. This training uses a machine learning framework (e.g., TensorFlow, PyTorch). The training data is processed using a GPU cluster, and the model's performance indicators (precision, recall, etc.) are monitored. If necessary, the model's performance is optimized using hyperparameter tuning techniques.
[0384] Users can write code for new information processing devices in an integrated development environment (e.g., Android Studio) and request real-time code analysis and improvement suggestions. When a user clicks the "Code Quality Improvement Suggestion" button, the code is sent to the server via an HTTP POST request.
[0385] The server inputs the received code into an AI model and performs an analysis. Based on the analysis results, the AI model generates suggestions for code improvement. These suggestions are displayed in the form of specific changes, such as a recommendation to "introduce specific optimization techniques to improve the rendering performance of this UI component." These suggestions are displayed in real time as a pop-up in the user's integrated development environment, allowing the user to efficiently modify the source code based on the suggested improvements.
[0386] For example, when a user is implementing the UI of a new information processing device, the code they wrote is sent to a server and analyzed by an AI model. As a result, the system suggests "introducing specific optimization techniques to improve the rendering performance of this UI component." By following these suggestions, the user can immediately improve their code and achieve a high-quality implementation.
[0387] Examples of prompts include "Suggest optimization methods to improve rendering performance when implementing UI for Android devices" and "Provide optimization suggestions for code that falls under the Battery Optimization category."
[0388] In this way, the present invention utilizes knowledge from collected source code and provides code analysis and improvement suggestions using an artificial intelligence model, thereby making the software development process for information processing devices more efficient and improving code quality.
[0389] The flow of the identification process in the first embodiment will be described with reference to FIG.
[0390] Step 1:
[0391] The server collects source code from various information processing devices. The server accesses open source code repositories (e.g., GitHub) via the Internet and collects the latest commits from the specified repository. The collection process is executed periodically (e.g., every Sunday). The input is the URL of the repository from which the code is collected and the commit IDs to be collected, and the output is the collected source code. Specifically, the server uses a REST API to obtain the latest commit data.
[0392] Step 2:
[0393] The server analyzes the collected source code and classifies it into categories. The server uses a static analysis tool (e.g., SonarQube) to examine the file structure, comments, and supplementary information of the source code. Based on this information, the server automatically classifies the source code into categories such as "UI Implementation," "Battery Optimization," and "Security Features." The input is the collected source code, and the output is source code classified by category. Specifically, the server classifies the source code using a specific rule set or regular expressions based on the analysis results of SonarQube.
[0394] Step 3:
[0395] The server stores the classified source code and associated metadata in a data storage device, using a relational database (e.g., MySQL or PostgreSQL). The input is the source code and metadata classified by category, and the output is the information stored in the database. Specifically, the server executes a MySQL INSERT statement to store the source code and its metadata in a table.
[0396] Step 4:
[0397] The server uses the stored source code to train an artificial intelligence model. It uses a machine learning framework (e.g., TensorFlow, PyTorch) to build a model using the stored source code data as training data. The input is the source code data stored in the database, and the output is the trained artificial intelligence model. Specifically, the server runs the training job using a GPU cluster and periodically monitors the model's performance indicators (precision, recall, etc.).
[0398] Step 5:
[0399] A user writes new source code in an integrated development environment (e.g., Android Studio) and presses the "Suggest Code Quality Improvements" button. This causes the code to be sent to the server via an HTTP POST request. The input is the new source code written by the user, and the output is the code received by the server. Specifically, when the user clicks the button, a plugin in the integrated development environment packages the contents of the generated source code into an HTTP POST request and sends it to the server.
[0400] Step 6:
[0401] The server inputs the received code into an AI model and analyzes the code. The input is the new source code sent to the server, and the output is improvement suggestions generated based on the analysis results. Specifically, the server inputs the code into the AI model, and the model outputs the analysis results.
[0402] Step 7:
[0403] The server displays the generated improvement suggestions in the user's integrated development environment in real time. The input is the improvement suggestions generated from the analysis results, and the output is the improvement suggestions displayed in the integrated development environment. Specifically, the server sends the improvement suggestions to the integrated development environment in an HTTP response, which is then displayed in a pop-up format.
[0404] The above is the specific processing flow of this system and the operations performed at each step.
[0405] (Application example 1)
[0406] Next, a description will be given of Application Example 1. In the following description, the data processing device 12 will be referred to as a "server" and the smart glasses 214 will be referred to as a "terminal."
[0407] When developing control software for factory robots, it is difficult to obtain suggestions for improving source code in real time. Furthermore, the lack of a means to provide specific suggestions for improvement that will help improve the robot's operation and functionality can lead to a decline in development efficiency and code quality. A system that addresses this issue and supports efficient, high-quality software development is needed.
[0408] The specific processing by the specific processing unit 290 of the data processing device 12 in the application example 1 is realized by the following means.
[0409] In this invention, the server includes means for collecting source code from various terminals, means for categorizing the collected source code into categories and storing them in a database, means for training an AI model using the stored source code, means for generating improvement suggestions for source code of a new terminal using the trained AI model, means for providing the generated improvement suggestions to a user of the new terminal, means for collecting source code of a control program executed in a factory robot and generating improvement suggestions in real time, and means for applying the generated improvement suggestions to the operation and function improvement of the robot. This makes it possible to provide specific improvement suggestions in real time to the control program of a factory robot and improve its operation and function.
[0410] "Various terminals" refers to digital devices such as smartphones, tablets, and personal computers.
[0411] "Source code" refers to the code of a program written using a programming language.
[0412] A "category" refers to a division for classifying source code according to specific features or functions.
[0413] A "database" refers to a system for efficiently storing, retrieving, and managing data.
[0414] An "AI model" refers to an algorithm or network that has been trained using machine learning or deep learning to perform a specific task.
[0415] "Training" refers to the process of teaching an AI model using large amounts of data.
[0416] "Improvement Suggestions" refers to specific advice or methods for improving the quality or performance of source code.
[0417] "User" refers to the developer or end user of the system or software.
[0418] "Factory robots" refer to robotic devices used to automate and reduce the labor required for various tasks in factories, such as those in the manufacturing industry.
[0419] "Control program" refers to a program for controlling equipment or systems.
[0420] "Real-time" refers to near-instant processing or response.
[0421] "Operation" refers to the specific actions or inputs required to operate a device or system.
[0422] "Improvement" refers to improving the services and performance provided by the system.
[0423] The system of the present invention has the following configuration and functions.
[0424] The server collects source code from various devices. For example, it has a means of acquiring source code from digital devices such as smartphones, tablets, and PCs. The collected source code is automatically classified into specific categories based on the code's file structure, comments, metadata, etc. This classification process is performed efficiently, and the results are stored in a database.
[0425] The server uses the stored source code to train the AI model. Machine learning and deep learning algorithms are used for this training. Specifically, frameworks such as TensorFlow and PyTorch can be used. The server monitors the model's performance indicators during the training process and adjusts parameters as necessary. The trained AI model is capable of generating highly accurate improvement suggestions.
[0426] When a user inputs the source code of a new device and requests improvement suggestions, this code is sent to the server. The server inputs the received code into the AI model, which then analyzes the code. Based on the analysis results, the AI model generates specific improvement suggestions for the code.
[0427] Furthermore, this system can also be applied to the source code of the control programs executed within factory robots, generating specific improvement proposals in real time to improve the operation and functionality of factory robots, thereby improving robot performance.
[0428] For example, if there is motor control code in a factory robot control program, the system can suggest the use of a highly efficient library. An example of a specific prompt is, "I am writing a factory robot control program. Please suggest performance improvements for a specific control part. Below is the code snippet."
[0429] Such a system will enable factory robot developers to obtain specific improvement proposals in real time, thereby improving development efficiency and quality.
[0430] The flow of the specific processing in the application example 1 will be described with reference to FIG.
[0431] Step 1:
[0432] The server collects source code from various devices. The collected source code is obtained from smartphones, tablets, PCs, etc. The collected data is stored in a temporary storage area on the server. The input is the source code sent from the device, and the output is the source code stored in the temporary storage area.
[0433] Step 2:
[0434] The server analyzes the collected source code and automatically classifies it into specific categories. The analysis uses code structure, comments, metadata, etc. Specifically, categorization is performed using regular expressions and machine learning algorithms. The input is the source code in the temporary storage area, and the output is a database classified by category.
[0435] Step 3:
[0436] The server trains an AI model based on the classified source code. Training is performed using frameworks such as TensorFlow and PyTorch. The data is batch-processed and the model parameters are optimized. The input is the classified source code and related metadata, and the output is a trained AI model.
[0437] Step 4:
[0438] The user inputs the source code of a new device and requests improvement suggestions. They write the source code in the IDE (Integrated Development Environment) on the device and press the "Improvement Suggestion" button. This operation sends the source code to the server. The input is the source code written by the user, and the output is the source code sent to the server.
[0439] Step 5:
[0440] The server inputs the received source code into an AI model for analysis. The AI model is used for analysis to evaluate the quality and performance of the code. The input is the source code sent by the user, and the output is the analysis result.
[0441] Step 6:
[0442] The server generates code improvement suggestions based on the analysis results. The improvement suggestions include specific changes and best practices. For example, the suggestions might be in the form of "We recommend using a specific library to improve the performance of this part of the code." The input is the analysis results, and the output is the improvement suggestions.
[0443] Step 7:
[0444] The server displays the generated improvement suggestions in the user's IDE in real time, and the user can review the suggestions and make improvements to the code. The input is the generated improvement suggestions, and the output is the suggestions displayed in the user's IDE.
[0445] Step 8:
[0446] In the case of factory robots, the server collects the source code of the control program executed within the robot, analyzes it, and provides improvement suggestions in real time. The input is the source code of the factory robot's control program, and the output is specific improvement suggestions for improving the robot's operation and functionality.
[0447] Furthermore, an emotion engine that estimates the user's emotion may be further combined. That is, the identification processing unit 290 may estimate the user's emotion using the emotion identification model 59, and perform identification processing using the user's emotion.
[0448] The system of the present invention combines an emotion engine that recognizes user emotions and has the following configuration and functions. First, the server collects source code from various devices, classifies the collected source code by category, and stores it in a database. Based on this, the server trains an AI model and uses the trained AI model to generate improvement suggestions for the source code of new devices. The generated improvement suggestions are then provided to the user. Furthermore, the system is equipped with an emotion engine that adjusts and provides improvement suggestions based on the user's emotional state.
[0449] A specific example is given below.
[0450] First, the server accesses public and designated source code repositories from each company's Android device to collect source code. The collected source code is then automatically analyzed by the server and classified into categories. The analysis uses the code's file structure, comments, metadata, and other information. The classified source code is then stored in a database, along with the metadata.
[0451] The server trains the AI model based on the stored source code. This training optimizes the model for high accuracy by learning patterns in the source code. During training, performance indicators (precision, recall, etc.) are constantly monitored, and parameters are adjusted as necessary.
[0452] Users code new devices in an IDE (Integrated Development Environment). After the user finishes writing the code, they click the "Code Quality Improvement Suggestion" button, which sends the code to the server. The server preprocesses the received code and analyzes it using an AI model. The model generates code improvement suggestions and provides them to the user. The suggestions include specific code changes and best practices.
[0453] Furthermore, the system of the present invention incorporates an emotion engine that recognizes the user's emotions in real time. The emotion engine analyzes the user's facial expressions and behavioral data to determine their emotional state. For example, if the user is tired, the emotion engine captures that information and adjusts the suggested improvements and explanations. Specifically, if the user is feeling stressed, the suggested improvements are presented in a concise and intuitive format. Furthermore, if the user is in a positive emotional state, the system can provide detailed explanations and additional best practices.
[0454] For example, consider a user implementing a new UI component. After entering code in the IDE and clicking the "Code Quality Improvement Suggestion" button, the server receives the code and the AI model analyzes it. For example, the model may suggest using a specific library to improve the performance of this UI component. If the emotion engine recognizes that the user is tired, it will simplify the suggestions and present them in an easy-to-understand format. Conversely, if the user is relaxed, it will provide detailed explanations and supplementary information.
[0455] In this way, users can efficiently generate high-quality code and receive suggestions customized to their emotional state. By combining the emotion engine, the system of the present invention can improve the user's development experience and efficiently and effectively improve the quality of source code.
[0456] The processing flow will be explained below.
[0457] Step 1:
[0458] The server accesses the source code repository of each Android device. Specifically, the server obtains the repository URL from public or private repositories such as GitHub, GitLab, or the built-in server, clones the source code using Git commands, checks the repository update history, and automatically downloads the code if new changes are detected.
[0459] Step 2:
[0460] The server analyzes the collected source code. Specifically, the server uses an analysis algorithm to analyze the code's file structure, comments, and metadata (e.g., function names and specific tags). Based on the results of this analysis, the server classifies the source code into categories such as "UI Implementation," "Battery Optimization," and "Security Features." The classification process is performed automatically using natural language processing (NLP) technology.
[0461] Step 3:
[0462] The server stores the classified source code in a database. Specifically, the server assigns metadata to each source code and stores it in the database along with category information. The database also stores information about the original revision and author of the source code.
[0463] Step 4:
[0464] The server retrieves source code by category from the database and trains the AI model. Specifically, the server uses a machine learning framework to tokenize the source code and create a training dataset. This allows the AI model (e.g., a neural network or decision tree model) to learn patterns in the source code and optimize performance metrics.
[0465] Step 5:
[0466] The device activates an emotion engine to collect user emotion data. Specifically, the device captures the user's facial expressions and voice in real time through a camera and microphone, and uses an emotion recognition algorithm to determine the user's emotional state.
[0467] Step 6:
[0468] Users write the code for new Android devices in an IDE (integrated development environment), such as Android Studio, to code new custom UIs and features.
[0469] Step 7:
[0470] The user presses the "Code Quality Improvement Suggestion" button. Specifically, when the user finishes writing the code, they click a dedicated button in the IDE. This action sends the code written by the user to the server.
[0471] Step 8:
[0472] The server pre-processes the code received from the user: specifically, the server cleans the code and converts it into the required format, removing unnecessary comments and debug code, and tokenizing the code.
[0473] Step 9:
[0474] The server inputs the preprocessed code into the AI model to generate analysis and improvement suggestions. Specifically, the server passes the code to the trained AI model, which analyzes the code's structure and patterns. Based on the model's analysis results, improvement suggestions for the code are generated.
[0475] Step 10:
[0476] The emotion engine determines the user's emotional state and sends the information to the server. Specifically, if the user is tired, the emotion engine detects the "fatigue" state and sends the data to the server in real time.
[0477] Step 11:
[0478] The server adjusts the content and presentation of improvement suggestions based on the emotion data sent from the emotion engine. Specifically, if the server detects that the user is tired, it condenses the suggestions and sends them back to the IDE in an easy-to-understand format. If the user is in a positive state, it provides detailed explanations and additional information.
[0479] Step 12:
[0480] The terminal (IDE) displays the improvement suggestions received from the server to the user in real time. Specifically, the suggestions are displayed in a popup or sidebar to inform the user of the areas to be improved. For example, it may be displayed in the form of "We recommend using a specific library to improve the performance of this UI component."
[0481] Step 13:
[0482] The user accepts the suggestions and modifies the code. Specifically, the user changes the code based on the suggested improvements to improve performance and quality. The user can also send the improved code back to the server and receive further suggestions.
[0483] Through this step, the system provides customized improvement suggestions according to the user's emotional state, improving the quality of the source code and increasing development efficiency.
[0484] Example 2
[0485] Next, a description will be given of Example 2. In the following description, the data processing device 12 will be referred to as a "server" and the smart glasses 214 will be referred to as a "terminal."
[0486] Conventional source code analysis and improvement suggestion systems make uniform suggestions without considering the user's emotional state, which means they are unable to provide appropriate support tailored to the user's situation. Another issue is the lack of automated means for efficiently improving source code quality.
[0487] The specific processing by the specific processing unit 290 of the data processing device 12 in the second embodiment is realized by the following means.
[0488] In this invention, the server includes means for collecting source code from various terminals, means for classifying the collected source code by category and storing the collected source code in a database, means for training an artificial intelligence model using the stored source code, means for generating improvement suggestions for source code for a new terminal using the trained artificial intelligence model, means for providing the generated improvement suggestions to a user of the new terminal, an emotion recognition engine that recognizes the emotional state of the user, means for adjusting the content of the suggestions based on the recognized emotional state, and means for displaying the content of the suggestions in an easy-to-understand format. This makes it possible to provide flexible improvement suggestions according to the emotional state of the user, thereby efficiently improving the quality of source code.
[0489] A "terminal" is an electronic device operated by a user, and is a device that can input and execute programs.
[0490] "Source code" is the textual information used to describe the behavior of a program; it is a series of instructions written in a programming language.
[0491] A "server" is a computer system that provides services and data to multiple terminals via a network.
[0492] A "database" is a system for efficiently storing, retrieving, and managing large amounts of data.
[0493] An "artificial intelligence model" is a mathematical model that uses machine learning algorithms to analyze data and is trained to perform a specific task.
[0494] An "emotion recognition engine" is a system that analyzes a user's facial expressions and behavioral data to determine the user's emotional state in real time.
[0495] A "category" is a classification criterion for classifying source code with similar attributes.
[0496] "Improvement proposals" are specific changes and advice to improve the quality and efficiency of source code.
[0497] "Preprocessing" is the process of converting data into a format that is easier to analyze, such as by shaping, removing noise, or tokenizing it, before analyzing the data.
[0498] "Analysis" is the process of examining collected source code in detail to understand its structure and patterns.
[0499] The system of the present invention is a combination of an emotion recognition engine that recognizes the emotional state of a user, and has the following configuration and functions. Each component and specific processing steps will be described below.
[0500] Server Roles
[0501] First, the server collects source code from various devices using a source code management platform such as GitHub or GitLab.
[0502] The server accesses these platforms and downloads source code from public repositories, and can access private repositories if needed using credentials.
[0503] The server then analyzes the collected source code, classifies it by category, and stores it in a database.
[0504] The server uses Python code analysis libraries (e.g., ast, pylint) to analyze the file structure, comments, and metadata of the source code. Based on the analyzed information, the server classifies the source code into categories such as "UI components" and "backend logic" and stores them in a database.
[0505] Based on the stored source code, the server trains an artificial intelligence model (AI model) using machine learning frameworks such as TensorFlow and PyTorch.
[0506] During the training process, the server creates a dataset to learn source code patterns and uses it to train the AI model, monitoring the model's precision and recall and adjusting parameters as needed.
[0507] The trained AI model is then used to generate improvement suggestions for source code received from new devices.
[0508] The server preprocesses the source code received from new devices, analyzes it using AI models, and generates specific improvement suggestions, including specific code changes and best practices.
[0509] The generated improvement proposals are provided to the user from the server.
[0510] Device Role
[0511] Users code their new devices using an IDE (integrated development environment) such as Android Studio or Visual Studio Code.
[0512] When the user completes coding, he / she clicks the "Code Quality Improvement Suggestion" button, which causes the device to send the source code to the server.
[0513] The device uses a camera and microphone to collect the user's facial expressions and behavioral data in real time.
[0514] It is equipped with an emotion recognition engine that recognizes the user's emotional state, adjusting the content and format of improvement suggestions depending on whether the user is stressed or relaxed.
[0515] For example, consider a user implementing a new UI component. After entering code in the IDE and clicking the "Code Quality Improvement Suggestion" button, the server receives the code and the AI model analyzes it. For example, the model may suggest using a specific library to improve the performance of this UI component. If the emotion recognition engine recognizes that the user is tired, it will present the suggestions in a concise and easy-to-understand format. Conversely, if the user is relaxed, it will provide detailed explanations and supplementary information.
[0516] Prompt Sentence Examples
[0517] "I've implemented a new UI component. I'd like some suggestions to improve the code quality."
[0518] In this way, the system can respond flexibly to the user's emotional state, improving the efficiency and quality of coding.
[0519] The flow of the identification process in the second embodiment will be described with reference to FIG.
[0520] Step 1:
[0521] The server collects source code from various terminals.
[0522] Specifically, the server accesses a source code management platform such as GitHub or GitLab and downloads source code from public and designated repositories.
[0523] Input: Source code repository URL and credentials
[0524] Output: Collected source code files
[0525] Step 2:
[0526] The server analyzes the collected source code and classifies it into categories.
[0527] The server uses Python code analysis libraries (e.g., ast, pylint) to analyze the source code's file structure, comments, and metadata, and classify each file and function into the appropriate category.
[0528] Input: Collected source code
[0529] Output: Source code and metadata categorized by category
[0530] Step 3:
[0531] The server stores the classified source code in a database.
[0532] The server uses a database such as MongoDB or MySQL to store source code organized by category and its associated metadata.
[0533] Input: Source code and metadata, categorized by category
[0534] Output: Source code and metadata stored in a database
[0535] Step 4:
[0536] The server trains an artificial intelligence model (AI model) based on the stored source code.
[0537] The server uses TensorFlow or PyTorch to train a neural network on the source code dataset, performing cross-validation, monitoring the model's precision and recall, and adjusting parameters as needed.
[0538] Input: Source code dataset stored in a database
[0539] Output: A trained AI model
[0540] Step 5:
[0541] The user enters the source code for the new device in an IDE (integrated development environment).
[0542] For example, using Android Studio or Visual Studio Code, the user creates new code.
[0543] Input: Source code entered on the new terminal
[0544] Output: User-written source code files
[0545] Step 6:
[0546] The user clicks the "Suggest Code Quality Improvement" button, and the terminal sends the source code to the server.
[0547] Specifically, the terminal sends an HTTP POST request to the server and attaches a code file.
[0548] Input: User-written source code files
[0549] Output: Source code sent to the server
[0550] Step 7:
[0551] The server preprocesses the received source code and generates improvement suggestions using a trained AI model.
[0552] The server performs preprocessing such as tokenization and noise removal, analyzes the source code using an AI model, and generates specific improvement suggestions.
[0553] Input: Received source code
[0554] Output: Generated improvement suggestions
[0555] Step 8:
[0556] The terminal collects the user's facial expression and behavior data and recognizes the user's emotional state using an emotion recognition engine.
[0557] The device uses the camera and microphone to analyze emotions using an emotion recognition API (e.g., Microsoft Azure Face API).
[0558] Input: User's facial expressions and behavior data
[0559] Output: Perceived emotional state
[0560] Step 9:
[0561] The server adjusts the suggestions based on the perceived emotional state and presents them to the user in an optimal format.
[0562] The server decides whether to make the proposal brief or detailed and sends the adjusted proposal to the terminal.
[0563] Input: Generated improvement suggestions and perceived emotional state
[0564] Output: Adjusted proposal
[0565] In this way, through each step and its specific actions, the system can provide code improvement suggestions that adapt to the user's emotional state, improving the efficiency and quality of coding.
[0566] (Application example 2)
[0567] Next, a description will be given of Application Example 2. In the following description, the data processing device 12 will be referred to as a "server" and the smart glasses 214 will be referred to as a "terminal."
[0568] Current factory robot maintenance is time-consuming and labor-intensive, making it difficult to operate efficiently. It's also difficult for maintenance personnel to receive optimal improvement suggestions in a format that's easy to understand, and depending on the maintenance personnel's emotional state, work efficiency can drop significantly. Furthermore, the suggestions are rigid and don't take into account the emotions and burden of the personnel, often resulting in robot downtime and reduced efficiency.
[0569] The identification processing by the identification processing unit 290 of the data processing device 12 in Application Example 2 is realized by the following means. In this invention, the server includes means for collecting source code from various devices, means for classifying the collected source code by category and storing it in a database, means for training a generative AI model using the stored source code, means for generating improvement suggestions for the source code of a new device using the trained generative AI model, means for providing the generated improvement suggestions to a user of the new device, and means for incorporating an emotion engine that recognizes the user's emotions and adjusting the content of the improvement suggestions based on the user's emotional state. This makes it possible to provide optimal improvement suggestions adapted to the emotional state of the maintenance personnel and improve the maintenance efficiency of factory robots.
[0570] "Various devices" is a general term for various hardware components, including factory robots and other electronic equipment.
[0571] "Source code" refers to a set of instructions written in a programming language that is used to control the operation of a system or application.
[0572] "Category" refers to a classification criterion for classifying source code based on specific characteristics or functions.
[0573] A "database" is a collection of collected information that is stored in an organized manner and managed so that it can be easily searched and used.
[0574] A "generative AI model" is an artificial intelligence model trained using machine learning techniques that can generate insights and suggestions from new data.
[0575] The "emotion engine" is a system that analyzes a user's facial expressions and behavioral data in real time to recognize their emotional state.
[0576] "Improvement suggestions" are specific suggestions for improving performance or resolving problems that are generated for source code analyzed using an AI model.
[0577] "Means of collection" refers to the methods and technologies for obtaining source code from various devices and storing it on a server.
[0578] "Means for classification and storage" refers to methods and technologies for classifying source code into categories and storing them in a database.
[0579] "Means of training" refers to the learning process used to optimize a generative AI model using stored source code.
[0580] "Means for providing" refers to methods and techniques for presenting the generated improvement proposals to users in an easy-to-understand manner.
[0581] "Means for adjusting based on emotional state" refers to methods and techniques for optimally changing the content of suggestions depending on the user's emotions recognized by the emotion engine.
[0582] A system embodying the present invention involves collecting source code from various devices, categorizing the collected source code, and storing it in a database. The source code stored in the database is used to train a generative AI model, which is then used to generate suggestions for improving the source code of new devices. The suggestions are then provided to a user, and an emotion engine that recognizes the user's emotions can adjust the suggestions based on the user's emotional state.
[0583] The server accesses public or designated source code repositories to collect source code. The collected source code is automatically analyzed and classified into categories using the code's file structure, comments, metadata, etc. The classified source code is then stored in a database along with the metadata.
[0584] The server then trains a generative AI model based on the stored source code. This training learns patterns in the source code and optimizes the model for high accuracy. During training, performance metrics (precision, recall, etc.) are constantly monitored, and parameters are adjusted as needed.
[0585] When a user enters code for a new device, they create the code using an integrated development environment (IDE) and click the "Code Quality Improvement Suggestion" button, which sends the code to the server. The server preprocesses the received code and analyzes it using a generative AI model. The model generates code improvement suggestions and provides them to the user. The suggestions include specific code changes and best practices.
[0586] Furthermore, the system of the present invention includes an emotion engine that recognizes the user's emotions in real time. The emotion engine analyzes the user's facial expressions and behavioral data to determine their emotional state. For example, if the user is tired, the emotion engine captures that information and adjusts the suggested improvements and the way they are explained. Specifically, if the user is stressed, the suggested improvements are modified to be concise and intuitive. If the user is relaxed, more detailed explanations and additional best practices can be provided.
[0587] As a concrete example, consider the case where a user is implementing a new UI component. After entering code in the IDE and clicking the "Code Quality Improvement Suggestion" button, the server receives the code and the generative AI model analyzes it. For example, the model may suggest "using a specific library to improve the performance of this UI component." If the emotion engine recognizes the user's emotional state as "tired," it will simplify the suggestions and present them in an easy-to-understand format. Conversely, if the user is "relaxed," it will provide detailed explanations and supplementary information.
[0588] An example of a prompt sentence might be:
[0589] What are the next steps for refueling?
[0590] "Please suggest the best method for this new parameter setting."
[0591] "I'm tired, so please give me easy-to-follow instructions."
[0592] In this way, by implementing the present invention, optimal improvement proposals adapted to the emotional state of the maintenance personnel are provided, and it is expected that the maintenance efficiency of factory robots will improve.
[0593] The flow of the specific processing in the application example 2 will be described with reference to FIG.
[0594] Step 1: Collect and classify
[0595] The server accesses public or designated source code repositories to collect source code. The collected source code is automatically analyzed using the code's file structure, comments, metadata, etc., and classified into categories. The classified source code is stored in a database, along with the metadata. The input is a public source code repository, and the output is organized source code and the corresponding metadata.
[0596] Step 2: Training the generative AI model
[0597] The server trains the generative AI model using the source code stored in the database. This training learns patterns in the source code and optimizes the model to achieve high accuracy. During training, performance indicators (precision, recall, etc.) are constantly monitored, and parameters are adjusted as needed. The input is the classified source code, and the output is the trained generative AI model.
[0598] Step 3: Receiving and Preprocessing the Code
[0599] A user enters code on a new device and clicks the "Suggest Code Quality Improvements" button in the IDE. The code sent from the device is received by the server, which preprocesses the received code and converts it into a format that is easy to analyze with the generative AI model. The input is the user's new code, and the output is the preprocessed code.
[0600] Step 4: Analyze your code and generate suggestions
[0601] The server inputs the preprocessed code into a generative AI model for analysis. The generative AI model generates code improvement suggestions, including specific code changes and best practices. The input is the preprocessed code, and the output is the improvement suggestions.
[0602] Step 5: Recognizing your emotional state
[0603] The camera on the device captures the user's facial expression and sends the data to the emotion engine. The emotion engine analyzes the user's facial expression and behavioral data and determines their emotional state in real time. The input is the user's facial expression data, and the output is the determined emotional state.
[0604] Step 6: Adjust your proposal
[0605] The server adjusts the generated improvement suggestions based on the user's emotional state as determined by the emotion engine. For example, if the user is tired, the suggestion content is simplified and changed to a more understandable format. On the other hand, if the user is relaxed, detailed explanations and additional best practices are provided. The input is the improvement suggestion and the user's emotional state, and the output is the adjusted improvement suggestion.
[0606] Step 7: Provide a proposal
[0607] The server provides the adjusted improvement proposals to the user. The user can then review the proposals in their IDE and modify their code based on the suggestions. The input is the adjusted improvement proposals, and the output is the proposals provided in a user-viewable format.
[0608] Through this series of processes, users can efficiently generate high-quality code and receive optimal improvement suggestions that adapt to their emotional state.
[0609] 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.
[0610] 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> ), Gemini (Internet search <url: https: gemini.google.com ?hl="ja">) and other generation AIs. 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 voice, text data indicating text, and image data indicating an image is also input. 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.
[0611] In the above embodiment, an example in which the specific processing is performed by the data processing device 12 has been given, but the technology of the present disclosure is not limited to this, and the specific processing may be performed by the smart glasses 214.
[0612] [Third embodiment]
[0613] FIG. 5 shows an example of the configuration of a data processing system 310 according to the third embodiment.
[0614] 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.
[0615] The data processing device 12 includes a computer 22, a database 24, and a communication I / F 26. The computer 22 is an example of a "computer" according to the technology of the present disclosure. The computer 22 includes a processor 28, a RAM 30, and a storage 32. The processor 28, the RAM 30, and the 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).
[0616] 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.
[0617] The microphone 238 receives instructions and the like from the user 20 by receiving voice uttered by the user 20. The microphone 238 captures the voice uttered by the user 20, converts the captured voice into audio data, and outputs it to the processor 46. The speaker 240 outputs audio in accordance with instructions from the processor 46.
[0618] 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 surroundings of user 20 (for example, an imaging range defined by an angle of view equivalent to the field of vision of a typical healthy person).
[0619] 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. 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.
[0620] 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.
[0621] 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 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.
[0622] 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.
[0623] In the headset type terminal 314, a reception output process is performed by the processor 46. A reception output program 60 is stored in the storage 50. The processor 46 reads the reception output program 60 from the storage 50 and executes the read reception output program 60 on the RAM 48. The reception output process is realized by the processor 46 operating as the control unit 46A in accordance with the reception output program 60 executed on the RAM 48.
[0624] Next, a description will be given of the identification process performed by the identification processing unit 290 of the data processing device 12. In the following description, the data processing device 12 will be referred to as the "server" and the headset type terminal 314 will be referred to as the "terminal."
[0625] The system of the present invention has the following configuration and functions: The server collects source code from various terminals, classifies the source code by category, and stores it in a database. The server uses the stored source code to train an AI model, and then uses the trained AI model to generate improvement suggestions for the source code of new terminals. The generated improvement suggestions are then provided to the user.
[0626] First, the server accesses open source repositories or designated source code repositories from each company's Android device to collect source code. Source code collection occurs periodically and automatically when new changes are detected.
[0627] The server then analyzes the collected source code and classifies it into specific categories based on the code's file structure, comments, metadata, etc. For example, it may be classified into categories such as "UI Implementation," "Battery Optimization," and "Security Features." This classification process is automated and can be performed efficiently without human intervention.
[0628] The classified source code is stored in a database that stores not only the source code but also associated metadata (e.g., author, date, category).
[0629] The server trains the AI model based on the stored source code. Machine learning algorithms are used for training, with the goal of improving the accuracy of the recommendations provided by the model. During training, the model's performance indicators (e.g., precision, recall, etc.) are monitored, and parameters are adjusted as needed.
[0630] Users can input new device code and request analysis and improvement suggestions from the AI model in real time. When a user writes new source code in an IDE (integrated development environment) and presses the "Code Quality Improvement Suggestion" button, the code is sent to the server. The server inputs the received code into the AI model, and the model analyzes the code. Based on the analysis results, the AI model generates code improvement suggestions. These suggestions include specific changes and best practices.
[0631] The generated improvement suggestions are displayed in the user's IDE in real time. For example, they may be presented in the form of "To improve the performance of this part of the code, it would be good to use this specific library." The user can then modify the code based on the suggested improvements and efficiently generate high-quality source code.
[0632] For example, if a user is implementing a UI for a new device, the code written by the user will be analyzed by an AI model and suggested to "introduce specific optimization techniques to improve the rendering performance of this UI component." This allows the user to immediately reflect high-quality implementations.
[0633] With the above configuration and functions, the system of the present invention can effectively utilize the unique implementation knowledge of each company and improve the code quality in the development of Android devices. It also reduces the burden on developers and enables an efficient development process.
[0634] The processing flow will be explained below.
[0635] Step 1:
[0636] The server accesses each company's Android device's source code repository. Specifically, the server obtains the repository URL from a public or private repository, such as GitHub, GitLab, or an internal server, and clones the source code using Git commands. It checks the repository's update history and incorporates the code if new changes are detected.
[0637] Step 2:
[0638] The server analyzes the collected source code and classifies it by category. Specifically, the server analyzes the file structure of the source code and automatically classifies it into categories such as "UI Implementation," "Battery Optimization," and "Security Features" using comments and metadata within the code (e.g., function names, comments, specific tags, etc.). The analysis algorithm uses natural language processing (NLP) technology to analyze comments and tags.
[0639] Step 3:
[0640] The server stores the classified source code in a database. Specifically, the server assigns metadata to each source code and stores it in the database along with category information. The database also stores information about the original revision and author of the source code.
[0641] Step 4:
[0642] The server retrieves source code for each category from the database and trains an AI model. Specifically, the server uses a machine learning framework to tokenize the source code and create a training dataset. The AI model (e.g., a neural network or decision tree model) learns patterns in the source code and optimizes the model's weights and biases.
[0643] Step 5:
[0644] Users write the code for their new Android device in an IDE, specifically, they use an IDE such as Android Studio to write the code for their new custom UI.
[0645] Step 6:
[0646] The user presses the "Suggest Code Quality Improvements" button. Specifically, after the user finishes writing new code, they click a dedicated button in the IDE. This action sends the source code to the server.
[0647] Step 7:
[0648] The server receives the code entered by the user and performs pre-processing: the server cleans the code received from the user and converts it into the required format: unnecessary comments and debug code are removed, and the code is tokenized.
[0649] Step 8:
[0650] The server then inputs the preprocessed code into the AI model and performs the analysis. Specifically, the server passes the code to the trained AI model, which analyzes the code's structure and patterns. Based on the analysis results, the model generates suggestions for improving the code.
[0651] Step 9:
[0652] The server sends the generated improvement suggestions to the IDE. Specifically, the server sends the model-generated improvement suggestions back to the user's IDE in real time, including specific suggested changes and best practices.
[0653] Step 10:
[0654] The terminal (IDE) displays the suggestions to the user. Specifically, the IDE displays the suggestions in a popup or sidebar to inform the user of the areas to improve. For example, it may say, "We recommend using a specific library to improve the performance of this UI component."
[0655] Step 11:
[0656] The user accepts the suggestions and modifies the code. Specifically, the user changes the code based on the suggested improvements to improve performance and quality. The user can also send the improved code back to the server and receive further suggestions.
[0657] Through the above steps, the system of the present invention learns each company's unique implementation, generates high-quality code, and provides real-time improvement suggestions.
[0658] Example 1
[0659] Next, a description will be given of Example 1. In the following description, the data processing device 12 will be referred to as a "server" and the headset type terminal 314 will be referred to as a "terminal."
[0660] In recent years, improving code quality and achieving an efficient development process have become important issues in software development. However, there is a lack of means to effectively utilize unique implementations and best practices in various information processing devices, and there is a need for support to help developers generate high-quality code quickly. Furthermore, manually reviewing code every time a change is made requires time and effort, which hinders development efficiency.
[0661] The specific processing by the specific processing unit 290 of the data processing device 12 in the first embodiment is realized by the following means.
[0662] In this invention, the server includes means for collecting source code from various information processing devices, means for classifying the collected source code by category and storing it in a data storage device, means for training an AI model using the stored source code, means for generating improvement proposals for source code of a new information processing device using the trained AI model, and means for providing the generated improvement proposals to users of the new information processing device. This aggregates a wide range of source code and knowledge, and provides automatic analysis and improvement proposals using AI in real time, thereby reducing the burden on developers and enabling quick and efficient improvement of code quality.
[0663] "Information processing device" refers to a computer system or a device that functions as part of a computer system, and executes software and processes data.
[0664] "Source Code" means the textual code written by a developer to define the behavior of a program.
[0665] "Data storage device" refers to a device or system for storing digital information, including hard disk drives (HDDs), solid-state drives (SSDs), databases, etc.
[0666] An "artificial intelligence model" is a computational model that uses machine learning algorithms to learn from data and perform inference and analysis.
[0667] "Improvement proposals" are specific changes or guidelines for improving the quality or performance of existing source code.
[0668] "Category" refers to a division for classifying source code based on specific criteria or characteristics, such as "UI implementation," "battery optimization," and "security features."
[0669] An "integrated development environment" is a software application that integrates programming tools and functions, including a code editor, debugger, and build system.
[0670] "Analysis" is the process of understanding the content of source code and evaluating or diagnosing it based on specific parameters or patterns.
[0671] "Performance indicators" refer to standards or metrics for measuring the efficiency and effectiveness of training and inference of artificial intelligence models, including precision and recall.
[0672] "Real-time" refers to the property of responding or processing immediately to a request or input.
[0673] The present invention relates to a system that uses source code collected from various information processing devices to train classification and artificial intelligence models and support the improvement of source code quality. A specific embodiment of the present invention will be described in detail below.
[0674] First, the server collects source code from various information processing devices. This collection is performed by accessing an open-source code repository (e.g., GitHub) via the Internet and using an API to obtain the latest commits. The source code can be configured to be collected periodically, for example, every Sunday.
[0675] The collected source code is then analyzed and classified by the server. This involves using a static analysis tool (e.g., SonarQube) to examine the file structure, comments, and supplementary information of the source code. This automatically classifies the source code into categories such as "UI Implementation," "Battery Optimization," and "Security Features."
[0676] The classified source code is stored in a data storage system using a relational database (e.g., MySQL, PostgreSQL) that stores the source code and associated metadata (author, date, category, etc.). The structure of the stored source code data is optimized for quick access when needed.
[0677] The server then trains an artificial intelligence model based on the stored source code. This training uses a machine learning framework (e.g., TensorFlow, PyTorch). The training data is processed using a GPU cluster, and the model's performance indicators (precision, recall, etc.) are monitored. If necessary, the model's performance is optimized using hyperparameter tuning techniques.
[0678] Users can write code for new information processing devices in an integrated development environment (e.g., Android Studio) and request real-time code analysis and improvement suggestions. When a user clicks the "Code Quality Improvement Suggestion" button, the code is sent to the server via an HTTP POST request.
[0679] The server inputs the received code into an AI model and performs an analysis. Based on the analysis results, the AI model generates suggestions for code improvement. These suggestions are displayed in the form of specific changes, such as a recommendation to "introduce specific optimization techniques to improve the rendering performance of this UI component." These suggestions are displayed in real time as a pop-up in the user's integrated development environment, allowing the user to efficiently modify the source code based on the suggested improvements.
[0680] For example, when a user is implementing the UI of a new information processing device, the code they wrote is sent to a server and analyzed by an AI model. As a result, the system suggests "introducing specific optimization techniques to improve the rendering performance of this UI component." By following these suggestions, the user can immediately improve their code and achieve a high-quality implementation.
[0681] Examples of prompts include "Suggest optimization methods to improve rendering performance when implementing UI for Android devices" and "Provide optimization suggestions for code that falls under the Battery Optimization category."
[0682] In this way, the present invention utilizes knowledge from collected source code and provides code analysis and improvement suggestions using an artificial intelligence model, thereby making the software development process for information processing devices more efficient and improving code quality.
[0683] The flow of the identification process in the first embodiment will be described with reference to FIG.
[0684] Step 1:
[0685] The server collects source code from various information processing devices. The server accesses open source code repositories (e.g., GitHub) via the Internet and collects the latest commits from the specified repository. The collection process is executed periodically (e.g., every Sunday). The input is the URL of the repository from which the code is collected and the commit IDs to be collected, and the output is the collected source code. Specifically, the server uses a REST API to obtain the latest commit data.
[0686] Step 2:
[0687] The server analyzes the collected source code and classifies it into categories. The server uses a static analysis tool (e.g., SonarQube) to examine the file structure, comments, and supplementary information of the source code. Based on this information, the server automatically classifies the source code into categories such as "UI Implementation," "Battery Optimization," and "Security Features." The input is the collected source code, and the output is source code classified by category. Specifically, the server classifies the source code using a specific rule set or regular expressions based on the analysis results of SonarQube.
[0688] Step 3:
[0689] The server stores the classified source code and associated metadata in a data storage device, using a relational database (e.g., MySQL or PostgreSQL). The input is the source code and metadata classified by category, and the output is the information stored in the database. Specifically, the server executes a MySQL INSERT statement to store the source code and its metadata in a table.
[0690] Step 4:
[0691] The server uses the stored source code to train an artificial intelligence model. It uses a machine learning framework (e.g., TensorFlow, PyTorch) to build a model using the stored source code data as training data. The input is the source code data stored in the database, and the output is the trained artificial intelligence model. Specifically, the server runs the training job using a GPU cluster and periodically monitors the model's performance indicators (precision, recall, etc.).
[0692] Step 5:
[0693] A user writes new source code in an integrated development environment (e.g., Android Studio) and presses the "Suggest Code Quality Improvements" button. This causes the code to be sent to the server via an HTTP POST request. The input is the new source code written by the user, and the output is the code received by the server. Specifically, when the user clicks the button, a plugin in the integrated development environment packages the contents of the generated source code into an HTTP POST request and sends it to the server.
[0694] Step 6:
[0695] The server inputs the received code into an AI model and analyzes the code. The input is the new source code sent to the server, and the output is improvement suggestions generated based on the analysis results. Specifically, the server inputs the code into the AI model, and the model outputs the analysis results.
[0696] Step 7:
[0697] The server displays the generated improvement suggestions in the user's integrated development environment in real time. The input is the improvement suggestions generated from the analysis results, and the output is the improvement suggestions displayed in the integrated development environment. Specifically, the server sends the improvement suggestions to the integrated development environment in an HTTP response, which is then displayed in a pop-up format.
[0698] The above is the specific processing flow of this system and the operations performed at each step.
[0699] (Application example 1)
[0700] Next, a description will be given of Application Example 1. In the following description, the data processing device 12 will be referred to as a "server" and the headset type terminal 314 will be referred to as a "terminal."
[0701] When developing control software for factory robots, it is difficult to obtain suggestions for improving source code in real time. Furthermore, the lack of a means to provide specific suggestions for improvement that will help improve the robot's operation and functionality can lead to a decline in development efficiency and code quality. A system that addresses this issue and supports efficient, high-quality software development is needed.
[0702] The specific processing by the specific processing unit 290 of the data processing device 12 in the application example 1 is realized by the following means.
[0703] In this invention, the server includes means for collecting source code from various terminals, means for categorizing the collected source code into categories and storing them in a database, means for training an AI model using the stored source code, means for generating improvement suggestions for source code of a new terminal using the trained AI model, means for providing the generated improvement suggestions to a user of the new terminal, means for collecting source code of a control program executed in a factory robot and generating improvement suggestions in real time, and means for applying the generated improvement suggestions to the operation and function improvement of the robot. This makes it possible to provide specific improvement suggestions in real time to the control program of a factory robot and improve its operation and function.
[0704] "Various terminals" refers to digital devices such as smartphones, tablets, and personal computers.
[0705] "Source code" refers to the code of a program written using a programming language.
[0706] A "category" refers to a division for classifying source code according to specific features or functions.
[0707] A "database" refers to a system for efficiently storing, retrieving, and managing data.
[0708] An "AI model" refers to an algorithm or network that has been trained using machine learning or deep learning to perform a specific task.
[0709] "Training" refers to the process of teaching an AI model using large amounts of data.
[0710] "Improvement Suggestions" refers to specific advice or methods for improving the quality or performance of source code.
[0711] "User" refers to the developer or end user of the system or software.
[0712] "Factory robots" refer to robotic devices used to automate and reduce the labor required for various tasks in factories, such as those in the manufacturing industry.
[0713] "Control program" refers to a program for controlling equipment or systems.
[0714] "Real-time" refers to near-instant processing or response.
[0715] "Operation" refers to the specific actions or inputs required to operate a device or system.
[0716] "Improvement" refers to improving the services and performance provided by the system.
[0717] The system of the present invention has the following configuration and functions.
[0718] The server collects source code from various devices. For example, it has a means of acquiring source code from digital devices such as smartphones, tablets, and PCs. The collected source code is automatically classified into specific categories based on the code's file structure, comments, metadata, etc. This classification process is performed efficiently, and the results are stored in a database.
[0719] The server uses the stored source code to train the AI model. Machine learning and deep learning algorithms are used for this training. Specifically, frameworks such as TensorFlow and PyTorch can be used. The server monitors the model's performance indicators during the training process and adjusts parameters as necessary. The trained AI model is capable of generating highly accurate improvement suggestions.
[0720] When a user inputs the source code of a new device and requests improvement suggestions, this code is sent to the server. The server inputs the received code into the AI model, which then analyzes the code. Based on the analysis results, the AI model generates specific improvement suggestions for the code.
[0721] Furthermore, this system can also be applied to the source code of the control programs executed within factory robots, generating specific improvement proposals in real time to improve the operation and functionality of factory robots, thereby improving robot performance.
[0722] For example, if there is motor control code in a factory robot control program, the system can suggest the use of a highly efficient library. An example of a specific prompt is, "I am writing a factory robot control program. Please suggest performance improvements for a specific control part. Below is the code snippet."
[0723] Such a system will enable factory robot developers to obtain specific improvement proposals in real time, thereby improving development efficiency and quality.
[0724] The flow of the specific processing in the application example 1 will be described with reference to FIG.
[0725] Step 1:
[0726] The server collects source code from various devices. The collected source code is obtained from smartphones, tablets, PCs, etc. The collected data is stored in a temporary storage area on the server. The input is the source code sent from the device, and the output is the source code stored in the temporary storage area.
[0727] Step 2:
[0728] The server analyzes the collected source code and automatically classifies it into specific categories. The analysis uses code structure, comments, metadata, etc. Specifically, categorization is performed using regular expressions and machine learning algorithms. The input is the source code in the temporary storage area, and the output is a database classified by category.
[0729] Step 3:
[0730] The server trains an AI model based on the classified source code. Training is performed using frameworks such as TensorFlow and PyTorch. The data is batch-processed and the model parameters are optimized. The input is the classified source code and related metadata, and the output is a trained AI model.
[0731] Step 4:
[0732] The user inputs the source code of a new device and requests improvement suggestions. They write the source code in the IDE (Integrated Development Environment) on the device and press the "Improvement Suggestion" button. This operation sends the source code to the server. The input is the source code written by the user, and the output is the source code sent to the server.
[0733] Step 5:
[0734] The server inputs the received source code into an AI model for analysis. The AI model is used for analysis to evaluate the quality and performance of the code. The input is the source code sent by the user, and the output is the analysis result.
[0735] Step 6:
[0736] The server generates code improvement suggestions based on the analysis results. The improvement suggestions include specific changes and best practices. For example, the suggestions might be in the form of "We recommend using a specific library to improve the performance of this part of the code." The input is the analysis results, and the output is the improvement suggestions.
[0737] Step 7:
[0738] The server displays the generated improvement suggestions in the user's IDE in real time, and the user can review the suggestions and make improvements to the code. The input is the generated improvement suggestions, and the output is the suggestions displayed in the user's IDE.
[0739] Step 8:
[0740] In the case of factory robots, the server collects the source code of the control program executed within the robot, analyzes it, and provides improvement suggestions in real time. The input is the source code of the factory robot's control program, and the output is specific improvement suggestions for improving the robot's operation and functionality.
[0741] Furthermore, an emotion engine that estimates the user's emotion may be further combined. That is, the identification processing unit 290 may estimate the user's emotion using the emotion identification model 59, and perform identification processing using the user's emotion.
[0742] The system of the present invention combines an emotion engine that recognizes user emotions and has the following configuration and functions. First, the server collects source code from various devices, classifies the collected source code by category, and stores it in a database. Based on this, the server trains an AI model and uses the trained AI model to generate improvement suggestions for the source code of new devices. The generated improvement suggestions are then provided to the user. Furthermore, the system is equipped with an emotion engine that adjusts and provides improvement suggestions based on the user's emotional state.
[0743] A specific example is given below.
[0744] First, the server accesses public and designated source code repositories from each company's Android device to collect source code. The collected source code is then automatically analyzed by the server and classified into categories. The analysis uses the code's file structure, comments, metadata, and other information. The classified source code is then stored in a database, along with the metadata.
[0745] The server trains the AI model based on the stored source code. This training optimizes the model for high accuracy by learning patterns in the source code. During training, performance indicators (precision, recall, etc.) are constantly monitored, and parameters are adjusted as necessary.
[0746] Users code new devices in an IDE (Integrated Development Environment). After the user finishes writing the code, they click the "Code Quality Improvement Suggestion" button, which sends the code to the server. The server preprocesses the received code and analyzes it using an AI model. The model generates code improvement suggestions and provides them to the user. The suggestions include specific code changes and best practices.
[0747] Furthermore, the system of the present invention incorporates an emotion engine that recognizes the user's emotions in real time. The emotion engine analyzes the user's facial expressions and behavioral data to determine their emotional state. For example, if the user is tired, the emotion engine captures that information and adjusts the suggested improvements and explanations. Specifically, if the user is feeling stressed, the suggested improvements are presented in a concise and intuitive format. Furthermore, if the user is in a positive emotional state, the system can provide detailed explanations and additional best practices.
[0748] For example, consider a user implementing a new UI component. After entering code in the IDE and clicking the "Code Quality Improvement Suggestion" button, the server receives the code and the AI model analyzes it. For example, the model may suggest using a specific library to improve the performance of this UI component. If the emotion engine recognizes that the user is tired, it will simplify the suggestions and present them in an easy-to-understand format. Conversely, if the user is relaxed, it will provide detailed explanations and supplementary information.
[0749] In this way, users can efficiently generate high-quality code and receive suggestions customized to their emotional state. By combining the emotion engine, the system of the present invention can improve the user's development experience and efficiently and effectively improve the quality of source code.
[0750] The processing flow will be explained below.
[0751] Step 1:
[0752] The server accesses the source code repository of each Android device. Specifically, the server obtains the repository URL from public or private repositories such as GitHub, GitLab, or the built-in server, clones the source code using Git commands, checks the repository update history, and automatically downloads the code if new changes are detected.
[0753] Step 2:
[0754] The server analyzes the collected source code. Specifically, the server uses an analysis algorithm to analyze the code's file structure, comments, and metadata (e.g., function names and specific tags). Based on the results of this analysis, the server classifies the source code into categories such as "UI Implementation," "Battery Optimization," and "Security Features." The classification process is performed automatically using natural language processing (NLP) technology.
[0755] Step 3:
[0756] The server stores the classified source code in a database. Specifically, the server assigns metadata to each source code and stores it in the database along with category information. The database also stores information about the original revision and author of the source code.
[0757] Step 4:
[0758] The server retrieves source code by category from the database and trains the AI model. Specifically, the server uses a machine learning framework to tokenize the source code and create a training dataset. This allows the AI model (e.g., a neural network or decision tree model) to learn patterns in the source code and optimize performance metrics.
[0759] Step 5:
[0760] The device activates an emotion engine to collect user emotion data. Specifically, the device captures the user's facial expressions and voice in real time through a camera and microphone, and uses an emotion recognition algorithm to determine the user's emotional state.
[0761] Step 6:
[0762] Users write the code for new Android devices in an IDE (integrated development environment), such as Android Studio, to code new custom UIs and features.
[0763] Step 7:
[0764] The user presses the "Code Quality Improvement Suggestion" button. Specifically, when the user finishes writing the code, they click a dedicated button in the IDE. This action sends the code written by the user to the server.
[0765] Step 8:
[0766] The server pre-processes the code received from the user: specifically, the server cleans the code and converts it into the required format, removing unnecessary comments and debug code, and tokenizing the code.
[0767] Step 9:
[0768] The server inputs the preprocessed code into the AI model to generate analysis and improvement suggestions. Specifically, the server passes the code to the trained AI model, which analyzes the code's structure and patterns. Based on the model's analysis results, improvement suggestions for the code are generated.
[0769] Step 10:
[0770] The emotion engine determines the user's emotional state and sends the information to the server. Specifically, if the user is tired, the emotion engine detects the "fatigue" state and sends the data to the server in real time.
[0771] Step 11:
[0772] The server adjusts the content and presentation of improvement suggestions based on the emotion data sent from the emotion engine. Specifically, if the server detects that the user is tired, it condenses the suggestions and sends them back to the IDE in an easy-to-understand format. If the user is in a positive state, it provides detailed explanations and additional information.
[0773] Step 12:
[0774] The terminal (IDE) displays the improvement suggestions received from the server to the user in real time. Specifically, the suggestions are displayed in a popup or sidebar to inform the user of the areas to be improved. For example, it may be displayed in the form of "We recommend using a specific library to improve the performance of this UI component."
[0775] Step 13:
[0776] The user accepts the suggestions and modifies the code. Specifically, the user changes the code based on the suggested improvements to improve performance and quality. The user can also send the improved code back to the server and receive further suggestions.
[0777] Through this step, the system provides customized improvement suggestions according to the user's emotional state, improving the quality of the source code and increasing development efficiency.
[0778] Example 2
[0779] Next, a description will be given of Example 2. In the following description, the data processing device 12 will be referred to as a "server" and the headset type terminal 314 will be referred to as a "terminal."
[0780] Conventional source code analysis and improvement suggestion systems make uniform suggestions without considering the user's emotional state, which means they are unable to provide appropriate support tailored to the user's situation. Another issue is the lack of automated means for efficiently improving source code quality.
[0781] The specific processing by the specific processing unit 290 of the data processing device 12 in the second embodiment is realized by the following means.
[0782] In this invention, the server includes means for collecting source code from various terminals, means for classifying the collected source code by category and storing the collected source code in a database, means for training an artificial intelligence model using the stored source code, means for generating improvement suggestions for source code for a new terminal using the trained artificial intelligence model, means for providing the generated improvement suggestions to a user of the new terminal, an emotion recognition engine that recognizes the emotional state of the user, means for adjusting the content of the suggestions based on the recognized emotional state, and means for displaying the content of the suggestions in an easy-to-understand format. This makes it possible to provide flexible improvement suggestions according to the emotional state of the user, thereby efficiently improving the quality of source code.
[0783] A "terminal" is an electronic device operated by a user, and is a device that can input and execute programs.
[0784] "Source code" is the textual information used to describe the behavior of a program; it is a series of instructions written in a programming language.
[0785] A "server" is a computer system that provides services and data to multiple terminals via a network.
[0786] A "database" is a system for efficiently storing, retrieving, and managing large amounts of data.
[0787] An "artificial intelligence model" is a mathematical model that uses machine learning algorithms to analyze data and is trained to perform a specific task.
[0788] An "emotion recognition engine" is a system that analyzes a user's facial expressions and behavioral data to determine the user's emotional state in real time.
[0789] A "category" is a classification criterion for classifying source code with similar attributes.
[0790] "Improvement proposals" are specific changes and advice to improve the quality and efficiency of source code.
[0791] "Preprocessing" is the process of converting data into a format that is easier to analyze, such as by shaping, removing noise, or tokenizing it, before analyzing the data.
[0792] "Analysis" is the process of examining collected source code in detail to understand its structure and patterns.
[0793] The system of the present invention is a combination of an emotion recognition engine that recognizes the emotional state of a user, and has the following configuration and functions. Each component and specific processing steps will be described below.
[0794] Server Roles
[0795] First, the server collects source code from various devices using a source code management platform such as GitHub or GitLab.
[0796] The server accesses these platforms and downloads source code from public repositories, and can access private repositories if needed using credentials.
[0797] The server then analyzes the collected source code, classifies it by category, and stores it in a database.
[0798] The server uses Python code analysis libraries (e.g., ast, pylint) to analyze the file structure, comments, and metadata of the source code. Based on the analyzed information, the server classifies the source code into categories such as "UI components" and "backend logic" and stores them in a database.
[0799] Based on the stored source code, the server trains an artificial intelligence model (AI model) using machine learning frameworks such as TensorFlow and PyTorch.
[0800] During the training process, the server creates a dataset to learn source code patterns and uses it to train the AI model, monitoring the model's precision and recall and adjusting parameters as needed.
[0801] The trained AI model is then used to generate improvement suggestions for source code received from new devices.
[0802] The server preprocesses the source code received from new devices, analyzes it using AI models, and generates specific improvement suggestions, including specific code changes and best practices.
[0803] The generated improvement proposals are provided to the user from the server.
[0804] Device Role
[0805] Users code their new devices using an IDE (integrated development environment) such as Android Studio or Visual Studio Code.
[0806] When the user completes coding, he / she clicks the "Code Quality Improvement Suggestion" button, which causes the device to send the source code to the server.
[0807] The device uses a camera and microphone to collect the user's facial expressions and behavioral data in real time.
[0808] It is equipped with an emotion recognition engine that recognizes the user's emotional state, adjusting the content and format of improvement suggestions depending on whether the user is stressed or relaxed.
[0809] For example, consider a user implementing a new UI component. After entering code in the IDE and clicking the "Code Quality Improvement Suggestion" button, the server receives the code and the AI model analyzes it. For example, the model may suggest using a specific library to improve the performance of this UI component. If the emotion recognition engine recognizes that the user is tired, it will present the suggestions in a concise and easy-to-understand format. Conversely, if the user is relaxed, it will provide detailed explanations and supplementary information.
[0810] Prompt Sentence Examples
[0811] "I've implemented a new UI component. I'd like some suggestions to improve the code quality."
[0812] In this way, the system can respond flexibly to the user's emotional state, improving the efficiency and quality of coding.
[0813] The flow of the identification process in the second embodiment will be described with reference to FIG.
[0814] Step 1:
[0815] The server collects source code from various terminals.
[0816] Specifically, the server accesses a source code management platform such as GitHub or GitLab and downloads source code from public and designated repositories.
[0817] Input: Source code repository URL and credentials
[0818] Output: Collected source code files
[0819] Step 2:
[0820] The server analyzes the collected source code and classifies it into categories.
[0821] The server uses Python code analysis libraries (e.g., ast, pylint) to analyze the source code's file structure, comments, and metadata, and classify each file and function into the appropriate category.
[0822] Input: Collected source code
[0823] Output: Source code and metadata categorized by category
[0824] Step 3:
[0825] The server stores the classified source code in a database.
[0826] The server uses a database such as MongoDB or MySQL to store source code organized by category and its associated metadata.
[0827] Input: Source code and metadata, categorized by category
[0828] Output: Source code and metadata stored in a database
[0829] Step 4:
[0830] The server trains an artificial intelligence model (AI model) based on the stored source code.
[0831] The server uses TensorFlow or PyTorch to train a neural network on the source code dataset, performing cross-validation, monitoring the model's precision and recall, and adjusting parameters as needed.
[0832] Input: Source code dataset stored in a database
[0833] Output: A trained AI model
[0834] Step 5:
[0835] The user enters the source code for the new device in an IDE (integrated development environment).
[0836] For example, using Android Studio or Visual Studio Code, the user creates new code.
[0837] Input: Source code entered on the new terminal
[0838] Output: User-written source code files
[0839] Step 6:
[0840] The user clicks the "Suggest Code Quality Improvement" button, and the terminal sends the source code to the server.
[0841] Specifically, the terminal sends an HTTP POST request to the server and attaches a code file.
[0842] Input: User-written source code files
[0843] Output: Source code sent to the server
[0844] Step 7:
[0845] The server preprocesses the received source code and generates improvement suggestions using a trained AI model.
[0846] The server performs preprocessing such as tokenization and noise removal, analyzes the source code using an AI model, and generates specific improvement suggestions.
[0847] Input: Received source code
[0848] Output: Generated improvement suggestions
[0849] Step 8:
[0850] The terminal collects the user's facial expression and behavior data and recognizes the user's emotional state using an emotion recognition engine.
[0851] The device uses the camera and microphone to analyze emotions using an emotion recognition API (e.g., Microsoft Azure Face API).
[0852] Input: User's facial expressions and behavior data
[0853] Output: Perceived emotional state
[0854] Step 9:
[0855] The server adjusts the suggestions based on the perceived emotional state and presents them to the user in an optimal format.
[0856] The server decides whether to make the proposal brief or detailed and sends the adjusted proposal to the terminal.
[0857] Input: Generated improvement suggestions and perceived emotional state
[0858] Output: Adjusted proposal
[0859] In this way, through each step and its specific actions, the system can provide code improvement suggestions that adapt to the user's emotional state, improving the efficiency and quality of coding.
[0860] (Application example 2)
[0861] Next, a description will be given of Application Example 2. In the following description, the data processing device 12 will be referred to as a "server" and the headset type terminal 314 will be referred to as a "terminal."
[0862] Current factory robot maintenance is time-consuming and labor-intensive, making it difficult to operate efficiently. It's also difficult for maintenance personnel to receive optimal improvement suggestions in a format that's easy to understand, and depending on the maintenance personnel's emotional state, work efficiency can drop significantly. Furthermore, the suggestions are rigid and don't take into account the emotions and burden of the personnel, often resulting in robot downtime and reduced efficiency.
[0863] The identification processing by the identification processing unit 290 of the data processing device 12 in Application Example 2 is realized by the following means. In this invention, the server includes means for collecting source code from various devices, means for classifying the collected source code by category and storing it in a database, means for training a generative AI model using the stored source code, means for generating improvement suggestions for the source code of a new device using the trained generative AI model, means for providing the generated improvement suggestions to a user of the new device, and means for incorporating an emotion engine that recognizes the user's emotions and adjusting the content of the improvement suggestions based on the user's emotional state. This makes it possible to provide optimal improvement suggestions adapted to the emotional state of the maintenance personnel and improve the maintenance efficiency of factory robots.
[0864] "Various devices" is a general term for various hardware components, including factory robots and other electronic equipment.
[0865] "Source code" refers to a set of instructions written in a programming language that is used to control the operation of a system or application.
[0866] "Category" refers to a classification criterion for classifying source code based on specific characteristics or functions.
[0867] A "database" is a collection of collected information that is stored in an organized manner and managed so that it can be easily searched and used.
[0868] A "generative AI model" is an artificial intelligence model trained using machine learning techniques that can generate insights and suggestions from new data.
[0869] The "emotion engine" is a system that analyzes a user's facial expressions and behavioral data in real time to recognize their emotional state.
[0870] "Improvement suggestions" are specific suggestions for improving performance or resolving problems that are generated for source code analyzed using an AI model.
[0871] "Means of collection" refers to the methods and technologies for obtaining source code from various devices and storing it on a server.
[0872] "Means for classification and storage" refers to methods and technologies for classifying source code into categories and storing them in a database.
[0873] "Means of training" refers to the learning process used to optimize a generative AI model using stored source code.
[0874] "Means for providing" refers to methods and techniques for presenting the generated improvement proposals to users in an easy-to-understand manner.
[0875] "Means for adjusting based on emotional state" refers to methods and techniques for optimally changing the content of suggestions depending on the user's emotions recognized by the emotion engine.
[0876] A system embodying the present invention involves collecting source code from various devices, categorizing the collected source code, and storing it in a database. The source code stored in the database is used to train a generative AI model, which is then used to generate suggestions for improving the source code of new devices. The suggestions are then provided to a user, and an emotion engine that recognizes the user's emotions can adjust the suggestions based on the user's emotional state.
[0877] The server accesses public or designated source code repositories to collect source code. The collected source code is automatically analyzed and classified into categories using the code's file structure, comments, metadata, etc. The classified source code is then stored in a database along with the metadata.
[0878] The server then trains a generative AI model based on the stored source code. This training learns patterns in the source code and optimizes the model for high accuracy. During training, performance metrics (precision, recall, etc.) are constantly monitored, and parameters are adjusted as needed.
[0879] When a user enters code for a new device, they create the code using an integrated development environment (IDE) and click the "Code Quality Improvement Suggestion" button, which sends the code to the server. The server preprocesses the received code and analyzes it using a generative AI model. The model generates code improvement suggestions and provides them to the user. The suggestions include specific code changes and best practices.
[0880] Furthermore, the system of the present invention includes an emotion engine that recognizes the user's emotions in real time. The emotion engine analyzes the user's facial expressions and behavioral data to determine their emotional state. For example, if the user is tired, the emotion engine captures that information and adjusts the suggested improvements and the way they are explained. Specifically, if the user is stressed, the suggested improvements are modified to be concise and intuitive. If the user is relaxed, more detailed explanations and additional best practices can be provided.
[0881] As a concrete example, consider the case where a user is implementing a new UI component. After entering code in the IDE and clicking the "Code Quality Improvement Suggestion" button, the server receives the code and the generative AI model analyzes it. For example, the model may suggest "using a specific library to improve the performance of this UI component." If the emotion engine recognizes the user's emotional state as "tired," it will simplify the suggestions and present them in an easy-to-understand format. Conversely, if the user is "relaxed," it will provide detailed explanations and supplementary information.
[0882] An example of a prompt sentence might be:
[0883] What are the next steps for refueling?
[0884] "Please suggest the best method for this new parameter setting."
[0885] "I'm tired, so please give me easy-to-follow instructions."
[0886] In this way, by implementing the present invention, optimal improvement proposals adapted to the emotional state of the maintenance personnel are provided, and it is expected that the maintenance efficiency of factory robots will improve.
[0887] The flow of the specific processing in the application example 2 will be described with reference to FIG.
[0888] Step 1: Collect and classify
[0889] The server accesses public or designated source code repositories to collect source code. The collected source code is automatically analyzed using the code's file structure, comments, metadata, etc., and classified into categories. The classified source code is stored in a database, along with the metadata. The input is a public source code repository, and the output is organized source code and the corresponding metadata.
[0890] Step 2: Training the generative AI model
[0891] The server trains the generative AI model using the source code stored in the database. This training learns patterns in the source code and optimizes the model to achieve high accuracy. During training, performance indicators (precision, recall, etc.) are constantly monitored, and parameters are adjusted as needed. The input is the classified source code, and the output is the trained generative AI model.
[0892] Step 3: Receiving and Preprocessing the Code
[0893] A user enters code on a new device and clicks the "Suggest Code Quality Improvements" button in the IDE. The code sent from the device is received by the server, which preprocesses the received code and converts it into a format that is easy to analyze with the generative AI model. The input is the user's new code, and the output is the preprocessed code.
[0894] Step 4: Analyze your code and generate suggestions
[0895] The server inputs the preprocessed code into a generative AI model for analysis. The generative AI model generates code improvement suggestions, including specific code changes and best practices. The input is the preprocessed code, and the output is the improvement suggestions.
[0896] Step 5: Recognizing your emotional state
[0897] The camera on the device captures the user's facial expression and sends the data to the emotion engine. The emotion engine analyzes the user's facial expression and behavioral data and determines their emotional state in real time. The input is the user's facial expression data, and the output is the determined emotional state.
[0898] Step 6: Adjust your proposal
[0899] The server adjusts the generated improvement suggestions based on the user's emotional state as determined by the emotion engine. For example, if the user is tired, the suggestion content is simplified and changed to a more understandable format. On the other hand, if the user is relaxed, detailed explanations and additional best practices are provided. The input is the improvement suggestion and the user's emotional state, and the output is the adjusted improvement suggestion.
[0900] Step 7: Provide a proposal
[0901] The server provides the adjusted improvement proposals to the user. The user can then review the proposals in their IDE and modify their code based on the suggestions. The input is the adjusted improvement proposals, and the output is the proposals provided in a user-viewable format.
[0902] Through this series of processes, users can efficiently generate high-quality code and receive optimal improvement suggestions that adapt to their emotional state.
[0903] 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.
[0904] 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> ), Gemini (Internet search <url: https: gemini.google.com ?hl="ja">) and other generation AIs. 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 voice, text data indicating text, and image data indicating an image is also input. 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.
[0905] In the above embodiment, an example was given in which the specific processing is performed by the data processing device 12, but the technology of the present disclosure is not limited to this, and the specific processing may be performed by the headset type terminal 314.
[0906] [Fourth embodiment]
[0907] FIG. 7 shows an example of the configuration of a data processing system 410 according to the fourth embodiment.
[0908] 7, a data processing system 410 includes a data processing device 12 and a robot 414. An example of the data processing device 12 is a server.
[0909] The data processing device 12 includes a computer 22, a database 24, and a communication I / F 26. The computer 22 is an example of a "computer" according to the technology of the present disclosure. The computer 22 includes a processor 28, a RAM 30, and a storage 32. The processor 28, the RAM 30, and the 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).
[0910] 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.
[0911] The microphone 238 receives instructions and the like from the user 20 by receiving voice uttered by the user 20. The microphone 238 captures the voice uttered by the user 20, converts the captured voice into audio data, and outputs it to the processor 46. The speaker 240 outputs audio in accordance with instructions from the processor 46.
[0912] 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 surroundings of user 20 (for example, an imaging range defined by an angle of view equivalent to the field of vision of a typical healthy person).
[0913] 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. 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.
[0914] The control object 443 includes a display device, LEDs in the eyes, and motors for driving 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.
[0915] 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.
[0916] 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 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.
[0917] 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.
[0918] In the robot 414, the processor 46 performs the reception output process. A reception output program 60 is stored in the storage 50. The processor 46 reads the reception output program 60 from the storage 50 and executes the read reception output program 60 on the RAM 48. The reception output process is realized by the processor 46 operating as the control unit 46A in accordance with the reception output program 60 executed on the RAM 48.
[0919] Next, a description will be given of the specific processing performed by the specific processing unit 290 of the data processing device 12. In the following description, the data processing device 12 will be referred to as a "server" and the robot 414 will be referred to as a "terminal."
[0920] The system of the present invention has the following configuration and functions: The server collects source code from various terminals, classifies the source code by category, and stores it in a database. The server uses the stored source code to train an AI model, and then uses the trained AI model to generate improvement suggestions for the source code of new terminals. The generated improvement suggestions are then provided to the user.
[0921] First, the server accesses open source repositories or designated source code repositories from each company's Android device to collect source code. Source code collection occurs periodically and automatically when new changes are detected.
[0922] The server then analyzes the collected source code and classifies it into specific categories based on the code's file structure, comments, metadata, etc. For example, it may be classified into categories such as "UI Implementation," "Battery Optimization," and "Security Features." This classification process is automated and can be performed efficiently without human intervention.
[0923] The classified source code is stored in a database that stores not only the source code but also associated metadata (e.g., author, date, category).
[0924] The server trains the AI model based on the stored source code. Machine learning algorithms are used for training, with the goal of improving the accuracy of the recommendations provided by the model. During training, the model's performance indicators (e.g., precision, recall, etc.) are monitored, and parameters are adjusted as needed.
[0925] Users can input new device code and request analysis and improvement suggestions from the AI model in real time. When a user writes new source code in an IDE (integrated development environment) and presses the "Code Quality Improvement Suggestion" button, the code is sent to the server. The server inputs the received code into the AI model, and the model analyzes the code. Based on the analysis results, the AI model generates code improvement suggestions. These suggestions include specific changes and best practices.
[0926] The generated improvement suggestions are displayed in the user's IDE in real time. For example, they may be presented in the form of "To improve the performance of this part of the code, it would be good to use this specific library." The user can then modify the code based on the suggested improvements and efficiently generate high-quality source code.
[0927] For example, if a user is implementing a UI for a new device, the code written by the user will be analyzed by an AI model and suggested to "introduce specific optimization techniques to improve the rendering performance of this UI component." This allows the user to immediately reflect high-quality implementations.
[0928] With the above configuration and functions, the system of the present invention can effectively utilize the unique implementation knowledge of each company and improve the code quality in the development of Android devices. It also reduces the burden on developers and enables an efficient development process.
[0929] The processing flow will be explained below.
[0930] Step 1:
[0931] The server accesses each company's Android device's source code repository. Specifically, the server obtains the repository URL from a public or private repository, such as GitHub, GitLab, or an internal server, and clones the source code using Git commands. It checks the repository's update history and incorporates the code if new changes are detected.
[0932] Step 2:
[0933] The server analyzes the collected source code and classifies it by category. Specifically, the server analyzes the file structure of the source code and automatically classifies it into categories such as "UI Implementation," "Battery Optimization," and "Security Features" using comments and metadata within the code (e.g., function names, comments, specific tags, etc.). The analysis algorithm uses natural language processing (NLP) technology to analyze comments and tags.
[0934] Step 3:
[0935] The server stores the classified source code in a database. Specifically, the server assigns metadata to each source code and stores it in the database along with category information. The database also stores information about the original revision and author of the source code.
[0936] Step 4:
[0937] The server retrieves source code for each category from the database and trains an AI model. Specifically, the server uses a machine learning framework to tokenize the source code and create a training dataset. The AI model (e.g., a neural network or decision tree model) learns patterns in the source code and optimizes the model's weights and biases.
[0938] Step 5:
[0939] Users write the code for their new Android device in an IDE, specifically, they use an IDE such as Android Studio to write the code for their new custom UI.
[0940] Step 6:
[0941] The user presses the "Suggest Code Quality Improvements" button. Specifically, after the user finishes writing new code, they click a dedicated button in the IDE. This action sends the source code to the server.
[0942] Step 7:
[0943] The server receives the code entered by the user and performs pre-processing: the server cleans the code received from the user and converts it into the required format: unnecessary comments and debug code are removed, and the code is tokenized.
[0944] Step 8:
[0945] The server then inputs the preprocessed code into the AI model and performs the analysis. Specifically, the server passes the code to the trained AI model, which analyzes the code's structure and patterns. Based on the analysis results, the model generates suggestions for improving the code.
[0946] Step 9:
[0947] The server sends the generated improvement suggestions to the IDE. Specifically, the server sends the model-generated improvement suggestions back to the user's IDE in real time, including specific suggested changes and best practices.
[0948] Step 10:
[0949] The terminal (IDE) displays the suggestions to the user. Specifically, the IDE displays the suggestions in a popup or sidebar to inform the user of the areas to improve. For example, it may say, "We recommend using a specific library to improve the performance of this UI component."
[0950] Step 11:
[0951] The user accepts the suggestions and modifies the code. Specifically, the user changes the code based on the suggested improvements to improve performance and quality. The user can also send the improved code back to the server and receive further suggestions.
[0952] Through the above steps, the system of the present invention learns each company's unique implementation, generates high-quality code, and provides real-time improvement suggestions.
[0953] Example 1
[0954] Next, a description will be given of Example 1. In the following description, the data processing device 12 will be referred to as a "server" and the robot 414 will be referred to as a "terminal."
[0955] In recent years, improving code quality and achieving an efficient development process have become important issues in software development. However, there is a lack of means to effectively utilize unique implementations and best practices in various information processing devices, and there is a need for support to help developers generate high-quality code quickly. Furthermore, manually reviewing code every time a change is made requires time and effort, which hinders development efficiency.
[0956] The specific processing by the specific processing unit 290 of the data processing device 12 in the first embodiment is realized by the following means.
[0957] In this invention, the server includes means for collecting source code from various information processing devices, means for classifying the collected source code by category and storing it in a data storage device, means for training an AI model using the stored source code, means for generating improvement proposals for source code of a new information processing device using the trained AI model, and means for providing the generated improvement proposals to users of the new information processing device. This aggregates a wide range of source code and knowledge, and provides automatic analysis and improvement proposals using AI in real time, thereby reducing the burden on developers and enabling quick and efficient improvement of code quality.
[0958] "Information processing device" refers to a computer system or a device that functions as part of a computer system, and executes software and processes data.
[0959] "Source Code" means the textual code written by a developer to define the behavior of a program.
[0960] "Data storage device" refers to a device or system for storing digital information, including hard disk drives (HDDs), solid-state drives (SSDs), databases, etc.
[0961] An "artificial intelligence model" is a computational model that uses machine learning algorithms to learn from data and perform inference and analysis.
[0962] "Improvement proposals" are specific changes or guidelines for improving the quality or performance of existing source code.
[0963] "Category" refers to a division for classifying source code based on specific criteria or characteristics, such as "UI implementation," "battery optimization," and "security features."
[0964] An "integrated development environment" is a software application that integrates programming tools and functions, including a code editor, debugger, and build system.
[0965] "Analysis" is the process of understanding the content of source code and evaluating or diagnosing it based on specific parameters or patterns.
[0966] "Performance indicators" refer to standards or metrics for measuring the efficiency and effectiveness of training and inference of artificial intelligence models, including precision and recall.
[0967] "Real-time" refers to the property of responding or processing immediately to a request or input.
[0968] The present invention relates to a system that uses source code collected from various information processing devices to train classification and artificial intelligence models and support the improvement of source code quality. A specific embodiment of the present invention will be described in detail below.
[0969] First, the server collects source code from various information processing devices. This collection is performed by accessing an open-source code repository (e.g., GitHub) via the Internet and using an API to obtain the latest commits. The source code can be configured to be collected periodically, for example, every Sunday.
[0970] The collected source code is then analyzed and classified by the server. This involves using a static analysis tool (e.g., SonarQube) to examine the file structure, comments, and supplementary information of the source code. This automatically classifies the source code into categories such as "UI Implementation," "Battery Optimization," and "Security Features."
[0971] The classified source code is stored in a data storage system using a relational database (e.g., MySQL, PostgreSQL) that stores the source code and associated metadata (author, date, category, etc.). The structure of the stored source code data is optimized for quick access when needed.
[0972] The server then trains an artificial intelligence model based on the stored source code. This training uses a machine learning framework (e.g., TensorFlow, PyTorch). The training data is processed using a GPU cluster, and the model's performance indicators (precision, recall, etc.) are monitored. If necessary, the model's performance is optimized using hyperparameter tuning techniques.
[0973] Users can write code for new information processing devices in an integrated development environment (e.g., Android Studio) and request real-time code analysis and improvement suggestions. When a user clicks the "Code Quality Improvement Suggestion" button, the code is sent to the server via an HTTP POST request.
[0974] The server inputs the received code into an AI model and performs an analysis. Based on the analysis results, the AI model generates suggestions for code improvement. These suggestions are displayed in the form of specific changes, such as a recommendation to "introduce specific optimization techniques to improve the rendering performance of this UI component." These suggestions are displayed in real time as a pop-up in the user's integrated development environment, allowing the user to efficiently modify the source code based on the suggested improvements.
[0975] For example, when a user is implementing the UI of a new information processing device, the code they wrote is sent to a server and analyzed by an AI model. As a result, the system suggests "introducing specific optimization techniques to improve the rendering performance of this UI component." By following these suggestions, the user can immediately improve their code and achieve a high-quality implementation.
[0976] Examples of prompts include "Suggest optimization methods to improve rendering performance when implementing UI for Android devices" and "Provide optimization suggestions for code that falls under the Battery Optimization category."
[0977] In this way, the present invention utilizes knowledge from collected source code and provides code analysis and improvement suggestions using an artificial intelligence model, thereby making the software development process for information processing devices more efficient and improving code quality.
[0978] The flow of the identification process in the first embodiment will be described with reference to FIG.
[0979] Step 1:
[0980] The server collects source code from various information processing devices. The server accesses open source code repositories (e.g., GitHub) via the Internet and collects the latest commits from the specified repository. The collection process is executed periodically (e.g., every Sunday). The input is the URL of the repository from which the code is collected and the commit IDs to be collected, and the output is the collected source code. Specifically, the server uses a REST API to obtain the latest commit data.
[0981] Step 2:
[0982] The server analyzes the collected source code and classifies it into categories. The server uses a static analysis tool (e.g., SonarQube) to examine the file structure, comments, and supplementary information of the source code. Based on this information, the server automatically classifies the source code into categories such as "UI Implementation," "Battery Optimization," and "Security Features." The input is the collected source code, and the output is source code classified by category. Specifically, the server classifies the source code using a specific rule set or regular expressions based on the analysis results of SonarQube.
[0983] Step 3:
[0984] The server stores the classified source code and associated metadata in a data storage device, using a relational database (e.g., MySQL or PostgreSQL). The input is the source code and metadata classified by category, and the output is the information stored in the database. Specifically, the server executes a MySQL INSERT statement to store the source code and its metadata in a table.
[0985] Step 4:
[0986] The server uses the stored source code to train an artificial intelligence model. It uses a machine learning framework (e.g., TensorFlow, PyTorch) to build a model using the stored source code data as training data. The input is the source code data stored in the database, and the output is the trained artificial intelligence model. Specifically, the server runs the training job using a GPU cluster and periodically monitors the model's performance indicators (precision, recall, etc.).
[0987] Step 5:
[0988] A user writes new source code in an integrated development environment (e.g., Android Studio) and presses the "Suggest Code Quality Improvements" button. This causes the code to be sent to the server via an HTTP POST request. The input is the new source code written by the user, and the output is the code received by the server. Specifically, when the user clicks the button, a plugin in the integrated development environment packages the contents of the generated source code into an HTTP POST request and sends it to the server.
[0989] Step 6:
[0990] The server inputs the received code into an AI model and analyzes the code. The input is the new source code sent to the server, and the output is improvement suggestions generated based on the analysis results. Specifically, the server inputs the code into the AI model, and the model outputs the analysis results.
[0991] Step 7:
[0992] The server displays the generated improvement suggestions in the user's integrated development environment in real time. The input is the improvement suggestions generated from the analysis results, and the output is the improvement suggestions displayed in the integrated development environment. Specifically, the server sends the improvement suggestions to the integrated development environment in an HTTP response, which is then displayed in a pop-up format.
[0993] The above is the specific processing flow of this system and the operations performed at each step.
[0994] (Application example 1)
[0995] Next, a description will be given of Application Example 1. In the following description, the data processing device 12 will be referred to as a "server" and the robot 414 will be referred to as a "terminal."
[0996] When developing control software for factory robots, it is difficult to obtain suggestions for improving source code in real time. Furthermore, the lack of a means to provide specific suggestions for improvement that will help improve the robot's operation and functionality can lead to a decline in development efficiency and code quality. A system that addresses this issue and supports efficient, high-quality software development is needed.
[0997] The specific processing by the specific processing unit 290 of the data processing device 12 in the application example 1 is realized by the following means.
[0998] In this invention, the server includes means for collecting source code from various terminals, means for categorizing the collected source code into categories and storing them in a database, means for training an AI model using the stored source code, means for generating improvement suggestions for source code of a new terminal using the trained AI model, means for providing the generated improvement suggestions to a user of the new terminal, means for collecting source code of a control program executed in a factory robot and generating improvement suggestions in real time, and means for applying the generated improvement suggestions to the operation and function improvement of the robot. This makes it possible to provide specific improvement suggestions in real time to the control program of a factory robot and improve its operation and function.
[0999] "Various terminals" refers to digital devices such as smartphones, tablets, and personal computers.
[1000] "Source code" refers to the code of a program written using a programming language.
[1001] A "category" refers to a division for classifying source code according to specific features or functions.
[1002] A "database" refers to a system for efficiently storing, retrieving, and managing data.
[1003] An "AI model" refers to an algorithm or network that has been trained using machine learning or deep learning to perform a specific task.
[1004] "Training" refers to the process of teaching an AI model using large amounts of data.
[1005] "Improvement Suggestions" refers to specific advice or methods for improving the quality or performance of source code.
[1006] "User" refers to the developer or end user of the system or software.
[1007] "Factory robots" refer to robotic devices used to automate and reduce the labor required for various tasks in factories, such as those in the manufacturing industry.
[1008] "Control program" refers to a program for controlling equipment or systems.
[1009] "Real-time" refers to near-instant processing or response.
[1010] "Operation" refers to the specific actions or inputs required to operate a device or system.
[1011] "Improvement" refers to improving the services and performance provided by the system.
[1012] The system of the present invention has the following configuration and functions.
[1013] The server collects source code from various devices. For example, it has a means of acquiring source code from digital devices such as smartphones, tablets, and PCs. The collected source code is automatically classified into specific categories based on the code's file structure, comments, metadata, etc. This classification process is performed efficiently, and the results are stored in a database.
[1014] The server uses the stored source code to train the AI model. Machine learning and deep learning algorithms are used for this training. Specifically, frameworks such as TensorFlow and PyTorch can be used. The server monitors the model's performance indicators during the training process and adjusts parameters as necessary. The trained AI model is capable of generating highly accurate improvement suggestions.
[1015] When a user inputs the source code of a new device and requests improvement suggestions, this code is sent to the server. The server inputs the received code into the AI model, which then analyzes the code. Based on the analysis results, the AI model generates specific improvement suggestions for the code.
[1016] Furthermore, this system can also be applied to the source code of the control programs executed within factory robots, generating specific improvement proposals in real time to improve the operation and functionality of factory robots, thereby improving robot performance.
[1017] For example, if there is motor control code in a factory robot control program, the system can suggest the use of a highly efficient library. An example of a specific prompt is, "I am writing a factory robot control program. Please suggest performance improvements for a specific control part. Below is the code snippet."
[1018] Such a system will enable factory robot developers to obtain specific improvement proposals in real time, thereby improving development efficiency and quality.
[1019] The flow of the specific processing in the application example 1 will be described with reference to FIG.
[1020] Step 1:
[1021] The server collects source code from various devices. The collected source code is obtained from smartphones, tablets, PCs, etc. The collected data is stored in a temporary storage area on the server. The input is the source code sent from the device, and the output is the source code stored in the temporary storage area.
[1022] Step 2:
[1023] The server analyzes the collected source code and automatically classifies it into specific categories. The analysis uses code structure, comments, metadata, etc. Specifically, categorization is performed using regular expressions and machine learning algorithms. The input is the source code in the temporary storage area, and the output is a database classified by category.
[1024] Step 3:
[1025] The server trains an AI model based on the classified source code. Training is performed using frameworks such as TensorFlow and PyTorch. The data is batch-processed and the model parameters are optimized. The input is the classified source code and related metadata, and the output is a trained AI model.
[1026] Step 4:
[1027] The user inputs the source code of a new device and requests improvement suggestions. They write the source code in the IDE (Integrated Development Environment) on the device and press the "Improvement Suggestion" button. This operation sends the source code to the server. The input is the source code written by the user, and the output is the source code sent to the server.
[1028] Step 5:
[1029] The server inputs the received source code into an AI model for analysis. The AI model is used for analysis to evaluate the quality and performance of the code. The input is the source code sent by the user, and the output is the analysis result.
[1030] Step 6:
[1031] The server generates code improvement suggestions based on the analysis results. The improvement suggestions include specific changes and best practices. For example, the suggestions might be in the form of "We recommend using a specific library to improve the performance of this part of the code." The input is the analysis results, and the output is the improvement suggestions.
[1032] Step 7:
[1033] The server displays the generated improvement suggestions in the user's IDE in real time, and the user can review the suggestions and make improvements to the code. The input is the generated improvement suggestions, and the output is the suggestions displayed in the user's IDE.
[1034] Step 8:
[1035] In the case of factory robots, the server collects the source code of the control program executed within the robot, analyzes it, and provides improvement suggestions in real time. The input is the source code of the factory robot's control program, and the output is specific improvement suggestions for improving the robot's operation and functionality.
[1036] Furthermore, an emotion engine that estimates the user's emotion may be further combined. That is, the identification processing unit 290 may estimate the user's emotion using the emotion identification model 59, and perform identification processing using the user's emotion.
[1037] The system of the present invention combines an emotion engine that recognizes user emotions and has the following configuration and functions. First, the server collects source code from various devices, classifies the collected source code by category, and stores it in a database. Based on this, the server trains an AI model and uses the trained AI model to generate improvement suggestions for the source code of new devices. The generated improvement suggestions are then provided to the user. Furthermore, the system is equipped with an emotion engine that adjusts and provides improvement suggestions based on the user's emotional state.
[1038] A specific example is given below.
[1039] First, the server accesses public and designated source code repositories from each company's Android device to collect source code. The collected source code is then automatically analyzed by the server and classified into categories. The analysis uses the code's file structure, comments, metadata, and other information. The classified source code is then stored in a database, along with the metadata.
[1040] The server trains the AI model based on the stored source code. This training optimizes the model for high accuracy by learning patterns in the source code. During training, performance indicators (precision, recall, etc.) are constantly monitored, and parameters are adjusted as necessary.
[1041] Users code new devices in an IDE (Integrated Development Environment). After the user finishes writing the code, they click the "Code Quality Improvement Suggestion" button, which sends the code to the server. The server preprocesses the received code and analyzes it using an AI model. The model generates code improvement suggestions and provides them to the user. The suggestions include specific code changes and best practices.
[1042] Furthermore, the system of the present invention incorporates an emotion engine that recognizes the user's emotions in real time. The emotion engine analyzes the user's facial expressions and behavioral data to determine their emotional state. For example, if the user is tired, the emotion engine captures that information and adjusts the suggested improvements and explanations. Specifically, if the user is feeling stressed, the suggested improvements are presented in a concise and intuitive format. Furthermore, if the user is in a positive emotional state, the system can provide detailed explanations and additional best practices.
[1043] For example, consider a user implementing a new UI component. After entering code in the IDE and clicking the "Code Quality Improvement Suggestion" button, the server receives the code and the AI model analyzes it. For example, the model may suggest using a specific library to improve the performance of this UI component. If the emotion engine recognizes that the user is tired, it will simplify the suggestions and present them in an easy-to-understand format. Conversely, if the user is relaxed, it will provide detailed explanations and supplementary information.
[1044] In this way, users can efficiently generate high-quality code and receive suggestions customized to their emotional state. By combining the emotion engine, the system of the present invention can improve the user's development experience and efficiently and effectively improve the quality of source code.
[1045] The processing flow will be explained below.
[1046] Step 1:
[1047] The server accesses the source code repository of each Android device. Specifically, the server obtains the repository URL from public or private repositories such as GitHub, GitLab, or the built-in server, clones the source code using Git commands, checks the repository update history, and automatically downloads the code if new changes are detected.
[1048] Step 2:
[1049] The server analyzes the collected source code. Specifically, the server uses an analysis algorithm to analyze the code's file structure, comments, and metadata (e.g., function names and specific tags). Based on the results of this analysis, the server classifies the source code into categories such as "UI Implementation," "Battery Optimization," and "Security Features." The classification process is performed automatically using natural language processing (NLP) technology.
[1050] Step 3:
[1051] The server stores the classified source code in a database. Specifically, the server assigns metadata to each source code and stores it in the database along with category information. The database also stores information about the original revision and author of the source code.
[1052] Step 4:
[1053] The server retrieves source code by category from the database and trains the AI model. Specifically, the server uses a machine learning framework to tokenize the source code and create a training dataset. This allows the AI model (e.g., a neural network or decision tree model) to learn patterns in the source code and optimize performance metrics.
[1054] Step 5:
[1055] The device activates an emotion engine to collect user emotion data. Specifically, the device captures the user's facial expressions and voice in real time through a camera and microphone, and uses an emotion recognition algorithm to determine the user's emotional state.
[1056] Step 6:
[1057] Users write the code for new Android devices in an IDE (integrated development environment), such as Android Studio, to code new custom UIs and features.
[1058] Step 7:
[1059] The user presses the "Code Quality Improvement Suggestion" button. Specifically, when the user finishes writing the code, they click a dedicated button in the IDE. This action sends the code written by the user to the server.
[1060] Step 8:
[1061] The server pre-processes the code received from the user: specifically, the server cleans the code and converts it into the required format, removing unnecessary comments and debug code, and tokenizing the code.
[1062] Step 9:
[1063] The server inputs the preprocessed code into the AI model to generate analysis and improvement suggestions. Specifically, the server passes the code to the trained AI model, which analyzes the code's structure and patterns. Based on the model's analysis results, improvement suggestions for the code are generated.
[1064] Step 10:
[1065] The emotion engine determines the user's emotional state and sends the information to the server. Specifically, if the user is tired, the emotion engine detects the "fatigue" state and sends the data to the server in real time.
[1066] Step 11:
[1067] The server adjusts the content and presentation of improvement suggestions based on the emotion data sent from the emotion engine. Specifically, if the server detects that the user is tired, it condenses the suggestions and sends them back to the IDE in an easy-to-understand format. If the user is in a positive state, it provides detailed explanations and additional information.
[1068] Step 12:
[1069] The terminal (IDE) displays the improvement suggestions received from the server to the user in real time. Specifically, the suggestions are displayed in a popup or sidebar to inform the user of the areas to be improved. For example, it may be displayed in the form of "We recommend using a specific library to improve the performance of this UI component."
[1070] Step 13:
[1071] The user accepts the suggestions and modifies the code. Specifically, the user changes the code based on the suggested improvements to improve performance and quality. The user can also send the improved code back to the server and receive further suggestions.
[1072] Through this step, the system provides customized improvement suggestions according to the user's emotional state, improving the quality of the source code and increasing development efficiency.
[1073] Example 2
[1074] Next, a description will be given of Example 2. In the following description, the data processing device 12 will be referred to as a "server" and the robot 414 will be referred to as a "terminal."
[1075] Conventional source code analysis and improvement suggestion systems make uniform suggestions without considering the user's emotional state, which means they are unable to provide appropriate support tailored to the user's situation. Another issue is the lack of automated means for efficiently improving source code quality.
[1076] The specific processing by the specific processing unit 290 of the data processing device 12 in the second embodiment is realized by the following means.
[1077] In this invention, the server includes means for collecting source code from various terminals, means for classifying the collected source code by category and storing the collected source code in a database, means for training an artificial intelligence model using the stored source code, means for generating improvement suggestions for source code for a new terminal using the trained artificial intelligence model, means for providing the generated improvement suggestions to a user of the new terminal, an emotion recognition engine that recognizes the emotional state of the user, means for adjusting the content of the suggestions based on the recognized emotional state, and means for displaying the content of the suggestions in an easy-to-understand format. This makes it possible to provide flexible improvement suggestions according to the emotional state of the user, thereby efficiently improving the quality of source code.
[1078] A "terminal" is an electronic device operated by a user, and is a device that can input and execute programs.
[1079] "Source code" is the textual information used to describe the behavior of a program; it is a series of instructions written in a programming language.
[1080] A "server" is a computer system that provides services and data to multiple terminals via a network.
[1081] A "database" is a system for efficiently storing, retrieving, and managing large amounts of data.
[1082] An "artificial intelligence model" is a mathematical model that uses machine learning algorithms to analyze data and is trained to perform a specific task.
[1083] An "emotion recognition engine" is a system that analyzes a user's facial expressions and behavioral data to determine the user's emotional state in real time.
[1084] A "category" is a classification criterion for classifying source code with similar attributes.
[1085] "Improvement proposals" are specific changes and advice to improve the quality and efficiency of source code.
[1086] "Preprocessing" is the process of converting data into a format that is easier to analyze, such as by shaping, removing noise, or tokenizing it, before analyzing the data.
[1087] "Analysis" is the process of examining collected source code in detail to understand its structure and patterns.
[1088] The system of the present invention is a combination of an emotion recognition engine that recognizes the emotional state of a user, and has the following configuration and functions. Each component and specific processing steps will be described below.
[1089] Server Roles
[1090] First, the server collects source code from various devices using a source code management platform such as GitHub or GitLab.
[1091] The server accesses these platforms and downloads source code from public repositories, and can access private repositories if needed using credentials.
[1092] The server then analyzes the collected source code, classifies it by category, and stores it in a database.
[1093] The server uses Python code analysis libraries (e.g., ast, pylint) to analyze the file structure, comments, and metadata of the source code. Based on the analyzed information, the server classifies the source code into categories such as "UI components" and "backend logic" and stores them in a database.
[1094] Based on the stored source code, the server trains an artificial intelligence model (AI model) using machine learning frameworks such as TensorFlow and PyTorch.
[1095] During the training process, the server creates a dataset to learn source code patterns and uses it to train the AI model, monitoring the model's precision and recall and adjusting parameters as needed.
[1096] The trained AI model is then used to generate improvement suggestions for source code received from new devices.
[1097] The server preprocesses the source code received from new devices, analyzes it using AI models, and generates specific improvement suggestions, including specific code changes and best practices.
[1098] The generated improvement proposals are provided to the user from the server.
[1099] Device Role
[1100] Users code their new devices using an IDE (integrated development environment) such as Android Studio or Visual Studio Code.
[1101] When the user completes coding, he / she clicks the "Code Quality Improvement Suggestion" button, which causes the device to send the source code to the server.
[1102] The device uses a camera and microphone to collect the user's facial expressions and behavioral data in real time.
[1103] It is equipped with an emotion recognition engine that recognizes the user's emotional state, adjusting the content and format of improvement suggestions depending on whether the user is stressed or relaxed.
[1104] For example, consider a user implementing a new UI component. After entering code in the IDE and clicking the "Code Quality Improvement Suggestion" button, the server receives the code and the AI model analyzes it. For example, the model may suggest using a specific library to improve the performance of this UI component. If the emotion recognition engine recognizes that the user is tired, it will present the suggestions in a concise and easy-to-understand format. Conversely, if the user is relaxed, it will provide detailed explanations and supplementary information.
[1105] Prompt Sentence Examples
[1106] "I've implemented a new UI component. I'd like some suggestions to improve the code quality."
[1107] In this way, the system can respond flexibly to the user's emotional state, improving the efficiency and quality of coding.
[1108] The flow of the identification process in the second embodiment will be described with reference to FIG.
[1109] Step 1:
[1110] The server collects source code from various terminals.
[1111] Specifically, the server accesses a source code management platform such as GitHub or GitLab and downloads source code from public and designated repositories.
[1112] Input: Source code repository URL and credentials
[1113] Output: Collected source code files
[1114] Step 2:
[1115] The server analyzes the collected source code and classifies it into categories.
[1116] The server uses Python code analysis libraries (e.g., ast, pylint) to analyze the source code's file structure, comments, and metadata, and classify each file and function into the appropriate category.
[1117] Input: Collected source code
[1118] Output: Source code and metadata categorized by category
[1119] Step 3:
[1120] The server stores the classified source code in a database.
[1121] The server uses a database such as MongoDB or MySQL to store source code organized by category and its associated metadata.
[1122] Input: Source code and metadata, categorized by category
[1123] Output: Source code and metadata stored in a database
[1124] Step 4:
[1125] The server trains an artificial intelligence model (AI model) based on the stored source code.
[1126] The server uses TensorFlow or PyTorch to train a neural network on the source code dataset, performing cross-validation, monitoring the model's precision and recall, and adjusting parameters as needed.
[1127] Input: Source code dataset stored in a database
[1128] Output: A trained AI model
[1129] Step 5:
[1130] The user enters the source code for the new device in an IDE (integrated development environment).
[1131] For example, using Android Studio or Visual Studio Code, the user creates new code.
[1132] Input: Source code entered on the new terminal
[1133] Output: User-written source code files
[1134] Step 6:
[1135] The user clicks the "Suggest Code Quality Improvement" button, and the terminal sends the source code to the server.
[1136] Specifically, the terminal sends an HTTP POST request to the server and attaches a code file.
[1137] Input: User-written source code files
[1138] Output: Source code sent to the server
[1139] Step 7:
[1140] The server preprocesses the received source code and generates improvement suggestions using a trained AI model.
[1141] The server performs preprocessing such as tokenization and noise removal, analyzes the source code using an AI model, and generates specific improvement suggestions.
[1142] Input: Received source code
[1143] Output: Generated improvement suggestions
[1144] Step 8:
[1145] The terminal collects the user's facial expression and behavior data and recognizes the user's emotional state using an emotion recognition engine.
[1146] The device uses the camera and microphone to analyze emotions using an emotion recognition API (e.g., Microsoft Azure Face API).
[1147] Input: User's facial expressions and behavior data
[1148] Output: Perceived emotional state
[1149] Step 9:
[1150] The server adjusts the suggestions based on the perceived emotional state and presents them to the user in an optimal format.
[1151] The server decides whether to make the proposal brief or detailed and sends the adjusted proposal to the terminal.
[1152] Input: Generated improvement suggestions and perceived emotional state
[1153] Output: Adjusted proposal
[1154] In this way, through each step and its specific actions, the system can provide code improvement suggestions that adapt to the user's emotional state, improving the efficiency and quality of coding.
[1155] (Application example 2)
[1156] Next, a description will be given of Application Example 2. In the following description, the data processing device 12 will be referred to as a "server" and the robot 414 will be referred to as a "terminal."
[1157] Current factory robot maintenance is time-consuming and labor-intensive, making it difficult to operate efficiently. It's also difficult for maintenance personnel to receive optimal improvement suggestions in a format that's easy to understand, and depending on the maintenance personnel's emotional state, work efficiency can drop significantly. Furthermore, the suggestions are rigid and don't take into account the emotions and burden of the personnel, often resulting in robot downtime and reduced efficiency.
[1158] The identification processing by the identification processing unit 290 of the data processing device 12 in Application Example 2 is realized by the following means. In this invention, the server includes means for collecting source code from various devices, means for classifying the collected source code by category and storing it in a database, means for training a generative AI model using the stored source code, means for generating improvement suggestions for the source code of a new device using the trained generative AI model, means for providing the generated improvement suggestions to a user of the new device, and means for incorporating an emotion engine that recognizes the user's emotions and adjusting the content of the improvement suggestions based on the user's emotional state. This makes it possible to provide optimal improvement suggestions adapted to the emotional state of the maintenance personnel and improve the maintenance efficiency of factory robots.
[1159] "Various devices" is a general term for various hardware components, including factory robots and other electronic equipment.
[1160] "Source code" refers to a set of instructions written in a programming language that is used to control the operation of a system or application.
[1161] "Category" refers to a classification criterion for classifying source code based on specific characteristics or functions.
[1162] A "database" is a collection of collected information that is stored in an organized manner and managed so that it can be easily searched and used.
[1163] A "generative AI model" is an artificial intelligence model trained using machine learning techniques that can generate insights and suggestions from new data.
[1164] The "emotion engine" is a system that analyzes a user's facial expressions and behavioral data in real time to recognize their emotional state.
[1165] "Improvement suggestions" are specific suggestions for improving performance or resolving problems that are generated for source code analyzed using an AI model.
[1166] "Means of collection" refers to the methods and technologies for obtaining source code from various devices and storing it on a server.
[1167] "Means for classification and storage" refers to methods and technologies for classifying source code into categories and storing them in a database.
[1168] "Means of training" refers to the learning process used to optimize a generative AI model using stored source code.
[1169] "Means for providing" refers to methods and techniques for presenting the generated improvement proposals to users in an easy-to-understand manner.
[1170] "Means for adjusting based on emotional state" refers to methods and techniques for optimally changing the content of suggestions depending on the user's emotions recognized by the emotion engine.
[1171] A system embodying the present invention involves collecting source code from various devices, categorizing the collected source code, and storing it in a database. The source code stored in the database is used to train a generative AI model, which is then used to generate suggestions for improving the source code of new devices. The suggestions are then provided to a user, and an emotion engine that recognizes the user's emotions can adjust the suggestions based on the user's emotional state.
[1172] The server accesses public or designated source code repositories to collect source code. The collected source code is automatically analyzed and classified into categories using the code's file structure, comments, metadata, etc. The classified source code is then stored in a database along with the metadata.
[1173] The server then trains a generative AI model based on the stored source code. This training learns patterns in the source code and optimizes the model for high accuracy. During training, performance metrics (precision, recall, etc.) are constantly monitored, and parameters are adjusted as needed.
[1174] When a user enters code for a new device, they create the code using an integrated development environment (IDE) and click the "Code Quality Improvement Suggestion" button, which sends the code to the server. The server preprocesses the received code and analyzes it using a generative AI model. The model generates code improvement suggestions and provides them to the user. The suggestions include specific code changes and best practices.
[1175] Furthermore, the system of the present invention includes an emotion engine that recognizes the user's emotions in real time. The emotion engine analyzes the user's facial expressions and behavioral data to determine their emotional state. For example, if the user is tired, the emotion engine captures that information and adjusts the suggested improvements and the way they are explained. Specifically, if the user is stressed, the suggested improvements are modified to be concise and intuitive. If the user is relaxed, more detailed explanations and additional best practices can be provided.
[1176] As a concrete example, consider the case where a user is implementing a new UI component. After entering code in the IDE and clicking the "Code Quality Improvement Suggestion" button, the server receives the code and the generative AI model analyzes it. For example, the model may suggest "using a specific library to improve the performance of this UI component." If the emotion engine recognizes the user's emotional state as "tired," it will simplify the suggestions and present them in an easy-to-understand format. Conversely, if the user is "relaxed," it will provide detailed explanations and supplementary information.
[1177] An example of a prompt sentence might be:
[1178] What are the next steps for refueling?
[1179] "Please suggest the best method for this new parameter setting."
[1180] "I'm tired, so please give me easy-to-follow instructions."
[1181] In this way, by implementing the present invention, optimal improvement proposals adapted to the emotional state of the maintenance personnel are provided, and it is expected that the maintenance efficiency of factory robots will improve.
[1182] The flow of the specific processing in the application example 2 will be described with reference to FIG.
[1183] Step 1: Collect and classify
[1184] The server accesses public or designated source code repositories to collect source code. The collected source code is automatically analyzed using the code's file structure, comments, metadata, etc., and classified into categories. The classified source code is stored in a database, along with the metadata. The input is a public source code repository, and the output is organized source code and the corresponding metadata.
[1185] Step 2: Training the generative AI model
[1186] The server trains the generative AI model using the source code stored in the database. This training learns patterns in the source code and optimizes the model to achieve high accuracy. During training, performance indicators (precision, recall, etc.) are constantly monitored, and parameters are adjusted as needed. The input is the classified source code, and the output is the trained generative AI model.
[1187] Step 3: Receiving and Preprocessing the Code
[1188] A user enters code on a new device and clicks the "Suggest Code Quality Improvements" button in the IDE. The code sent from the device is received by the server, which preprocesses the received code and converts it into a format that is easy to analyze with the generative AI model. The input is the user's new code, and the output is the preprocessed code.
[1189] Step 4: Analyze your code and generate suggestions
[1190] The server inputs the preprocessed code into a generative AI model for analysis. The generative AI model generates code improvement suggestions, including specific code changes and best practices. The input is the preprocessed code, and the output is the improvement suggestions.
[1191] Step 5: Recognizing your emotional state
[1192] The camera on the device captures the user's facial expression and sends the data to the emotion engine. The emotion engine analyzes the user's facial expression and behavioral data and determines their emotional state in real time. The input is the user's facial expression data, and the output is the determined emotional state.
[1193] Step 6: Adjust your proposal
[1194] The server adjusts the generated improvement suggestions based on the user's emotional state as determined by the emotion engine. For example, if the user is tired, the suggestion content is simplified and changed to a more understandable format. On the other hand, if the user is relaxed, detailed explanations and additional best practices are provided. The input is the improvement suggestion and the user's emotional state, and the output is the adjusted improvement suggestion.
[1195] Step 7: Provide a proposal
[1196] The server provides the adjusted improvement proposals to the user. The user can then review the proposals in their IDE and modify their code based on the suggestions. The input is the adjusted improvement proposals, and the output is the proposals provided in a user-viewable format.
[1197] Through this series of processes, users can efficiently generate high-quality code and receive optimal improvement suggestions that adapt to their emotional state.
[1198] 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.
[1199] 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> ), Gemini (Internet search <url: https: gemini.google.com ?hl="ja">) and other generation AIs. 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 voice, text data indicating text, and image data indicating an image is also input. 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.
[1200] In the above embodiment, an example was given in which the specific processing is performed by the data processing device 12, but the technology of the present disclosure is not limited to this, and the specific processing may be performed by the robot 414.
[1201] 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.
[1202] FIG. 9 is a diagram illustrating 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 actions arising from a state of mind are arranged on the outer edges of the concentric circles. The concept of emotion includes both affect 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.
[1203] 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.
[1204] 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).
[1205] 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 indicated, and when they approach the ideal, a state of pleasure is indicated. Emotions can also be created for robots, automobiles, 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 indicated, and when they approach the ideal, a state of pleasure is indicated. An emotion map can be generated, for example, based on Dr. Mitsuyoshi's emotion map (Research on Voice Emotion Recognition and Emotional Brain Physiological Signal Analysis Systems, Tokushima University, Doctoral Dissertation: https: / / ci.nii.ac.jp / naid / 500000375379). The left half of the emotion map lists emotions belonging to the "reaction" domain, where sensation is dominant. The right half of the emotion map lists emotions belonging to the "situation" domain, where situational awareness is dominant.
[1206] 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."
[1207] 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.
[1208] The system according to the present disclosure has been described above mainly with respect to the functions of the data processing device 12, but the system according to the present disclosure is not necessarily implemented on a server. The system according to the present disclosure may be implemented as a general information processing system. The present disclosure may be implemented, for example, as a software program running on a personal computer or an application running on a smartphone, etc. The method according to the present disclosure may be provided to users in the form of SaaS (Software as a Service).
[1209] In the above embodiment, an example was given in which the specific processing is performed by one computer 22, but the technology of the present disclosure is not limited to this, and the specific processing may be distributed and performed by a plurality of computers including the computer 22. For example, the data generation model 58 may be provided in an external device of the data processing device 12, and data may be generated in the external device in accordance with input data.
[1210] 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.
[1211] 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.
[1212] 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.
[1213] The hardware resource for executing a specific process can be any of the following processors: An example of a processor 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. Another example of a processor is 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.
[1214] The hardware resource that executes the specific processing 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 processing may be a single processor.
[1215] 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.
[1216] 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.
[1217] 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.
[1218] 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.
[1219] The following is further disclosed regarding the above embodiment.
[1220] (Claim 1)
[1221] A means of collecting source code from various devices;
[1222] A means to classify the collected source code into categories and store them in a database;
[1223] a means for training an AI model using the stored source code;
[1224] A means for generating source code improvement suggestions for new devices using the trained AI model;
[1225] The system includes means for providing the generated improvement suggestions to a user of the new terminal.
[1226] (Claim 2)
[1227] A means for the user to enter a new device code and request improvement suggestions;
[1228] A means of passing the code requested by the user to the AI model for analysis;
[1229] 10. The system of claim 1, wherein the analysis results are used to generate code improvement suggestions and provide the suggestions to the user.
[1230] (Claim 3)
[1231] The system according to claim 1, further comprising means for automatically classifying the collected source code into categories using the file structure, comments, and metadata of the code.
[1232] (Claim 4)
[1233] 10. The system of claim 1, further comprising means for monitoring performance metrics of the AI model during training and continuing learning until training is complete.
[1234] (Claim 5)
[1235] 10. The system of claim 1, further comprising means for providing improvement suggestions in real time to a development environment on a user's terminal.
[1236] "Example 1"
[1237] (Claim 1)
[1238] means for collecting source code from various information processing devices;
[1239] means for classifying the collected source code into categories and storing the same in a data storage device;
[1240] means for training an artificial intelligence model using the stored source code;
[1241] means for generating improvement suggestions for source code of a new information processing device using a trained artificial intelligence model;
[1242] The system includes a means for providing the generated improvement proposal to a user of the new information processing device.
[1243] (Claim 2)
[1244] A means for a user to input a code of a new information processing device and request an improvement proposal;
[1245] A means for passing the code requested by the user to an artificial intelligence model for analysis;
[1246] 10. The system of claim 1, wherein the analysis results are used to generate code improvement suggestions and provide the suggestions to the user.
[1247] (Claim 3)
[1248] The system according to claim 1, further comprising means for automatically classifying the collected source code into categories using the file structure, explanatory text, and supplementary information of the code.
[1249] (Claim 4)
[1250] A means for users to write new source code in the integrated development environment and request improvement suggestions in real time;
[1251] a means for transmitting the code to an information processing device, and for an artificial intelligence model to analyze the code and generate improvement suggestions;
[1252] 2. The system of claim 1, further comprising means for displaying the generated improvement suggestions in the integrated development environment in real time.
[1253] "Application Example 1"
[1254] (Claim 1)
[1255] A means of collecting source code from various devices;
[1256] A means to classify the collected source code into categories and store them in a database;
[1257] a means for training an AI model using the stored source code;
[1258] A means for generating source code improvement suggestions for new devices using the trained AI model;
[1259] a means for providing the generated improvement suggestions to a user of the new terminal;
[1260] A means for collecting source code of a control program executed in a factory robot and generating improvement suggestions in real time;
[1261] A means of applying the generated improvement suggestions to improve the robot's operation and functionality
[1262] A system including:
[1263] (Claim 2)
[1264] A means for the user to enter a new device code and request improvement suggestions;
[1265] A means of passing the code requested by the user to the AI model for analysis;
[1266] 10. The system of claim 1, wherein the analysis results are used to generate code improvement suggestions and provide the suggestions to the user.
[1267] (Claim 3)
[1268] The system according to claim 1, further comprising means for automatically classifying the collected source code into categories using the file structure, comments, and metadata of the code.
[1269] "Example 2: Combining Emotion Engines"
[1270] (Claim 1)
[1271] A means of collecting source code from various devices;
[1272] A means to classify the collected source code into categories and store them in a database;
[1273] means for training an artificial intelligence model using the stored source code;
[1274] means for generating source code improvement suggestions for the new terminal using the trained artificial intelligence model;
[1275] a means for providing the generated improvement suggestions to a user of the new terminal;
[1276] means for adjusting the suggestions based on the recognized emotional state, the means including an emotion recognition engine for recognizing the emotional state of the user;
[1277] A way to present your proposals in an easy-to-understand format
[1278] A system including:
[1279] (Claim 2)
[1280] A means for the user to enter a new device code and request improvement suggestions;
[1281] means for passing the code requested by the user to an artificial intelligence model for analysis;
[1282] 10. The system of claim 1, wherein the analysis results are used to generate code improvement suggestions and provide the suggestions to the user.
[1283] (Claim 3)
[1284] A method for automatically classifying collected source code into categories using the code's file structure, comments, and metadata.
[1285] 10. The system of claim 1, comprising:
[1286] "Application example 2 when combining emotion engines"
[1287] (Claim 1)
[1288] a means for collecting source code from various devices;
[1289] A means to classify the collected source code into categories and store them in a database;
[1290] a means for training a generative AI model using the stored source code;
[1291] a means for generating source code improvement suggestions for the new device using the trained generative AI model;
[1292] a means for providing the generated improvement suggestions to a user of the new device;
[1293] The system incorporates an emotion engine that recognizes the user's emotions and includes a means for adjusting the content of improvement suggestions based on the user's emotional state.
[1294] (Claim 2)
[1295] a means for users to enter new device codes and request improvement suggestions;
[1296] A means for passing the code requested by the user to the generative AI model for analysis;
[1297] 10. The system of claim 1, further comprising means for generating code improvement suggestions using the analysis results, providing the suggestions to the user, and adjusting the content of the improvement suggestions based on the emotional state of the user.
[1298] (Claim 3)
[1299] The system according to claim 1, further comprising means for automatically classifying the collected source code into categories using the file structure, comments, and metadata of the code. [Explanation of symbols]
[1300] 10, 210, 310, 410 Data Processing Systems 12 Data Processing Device 14 Smart Devices 214 Smart Glasses 314 Headset-type terminal 414 Robot< / url:> < / url:> < / url:> < / url:>
Claims
1. A means of collecting source code from various devices; A means to classify the collected source code into categories and store them in a database; a means for training an AI model using the stored source code; A means for generating source code improvement suggestions for new devices using the trained AI model; The system includes means for providing the generated improvement suggestions to a user of the new terminal.
2. A means for the user to enter a new device code and request improvement suggestions; A means of passing the code requested by the user to the AI model for analysis; The system of claim 1 , wherein the analysis results are used to generate code improvement suggestions and provide the suggestions to the user.
3. 2. The system according to claim 1, further comprising means for automatically classifying the collected source code into categories using the file structure, comments, and metadata of the code.
4. The system of claim 1, further comprising means for monitoring performance indicators of the AI model during training and continuing learning until training is complete.
5. 2. The system of claim 1, further comprising means for providing improvement suggestions in real time to a development environment on a user's terminal.
Citation Information
Patent Citations
Persona chatbot control method and system
JP2022180282A