system
The system addresses the challenge of selecting and preparing development environments by using a selection and generation unit with generative AI, enhancing coding efficiency and reducing costs.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- SOFTBANK GROUP CORP
- Filing Date
- 2024-12-18
- Publication Date
- 2026-06-30
AI Technical Summary
Existing technologies face challenges in selecting an appropriate programming language and providing efficient coding support based on a user's skill set and development tasks, leading to inefficiencies in IT development.
A system comprising a selection unit, preparation unit, and generation unit that selects an appropriate programming language, prepares a development environment, and generates or modifies code based on the user's skill set and development tasks, utilizing generative AI for support.
The system efficiently supports IT development by selecting the right programming language, preparing the environment, generating new code, and creating patches, thereby reducing development costs and doubling work efficiency.
Smart Images

Figure 2026107224000001_ABST
Abstract
Description
Technical Field
[0001] The technology of the present disclosure relates to a system.
Background Art
[0002] Patent Document 1 discloses a method for controlling a persona chatbot, which is performed by at least one processor and includes steps of receiving a user utterance, adding the user utterance to a prompt including an instruction sentence related to an explanation of a character of the chatbot, 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
Summary of the Invention
Problems to be Solved by the Invention
[0004] In the conventional technology, it is troublesome to select an appropriate programming language and prepare a development environment according to the user's skill set and development tasks, and there is a problem that efficient coding support is insufficient.
[0005] The system according to the embodiment aims to select an appropriate programming language based on the user's skill set and development tasks and provide efficient coding support.
Means for Solving the Problems
[0006] The system according to the embodiment comprises a selection unit, a preparation unit, a generation unit, and a patch creation unit. The selection unit selects an appropriate programming language based on the user's existing skill set and development tasks. The preparation unit prepares the development environment based on the programming language selected by the selection unit. The generation unit generates new code and modifies existing code while interacting with the user. The patch creation unit creates patches based on the code generated by the generation unit. [Effects of the Invention]
[0007] The system according to this embodiment can select an appropriate programming language based on the user's skill set and development task, and provide efficient coding support. [Brief explanation of the drawing]
[0008] [Figure 1] This is a conceptual diagram showing an example of the configuration of a data processing system according to the first embodiment. [Figure 2] This is a conceptual diagram showing an example of the essential functions of a data processing device and a smart device according to the first embodiment. [Figure 3] This is a conceptual diagram showing an example of the configuration of a data processing system according to the second embodiment. [Figure 4] This is a conceptual diagram showing an example of the main functions of a data processing device and smart glasses according to the second embodiment. [Figure 5] This is a conceptual diagram showing an example of the configuration of a data processing system according to the third embodiment. [Figure 6] This is a conceptual diagram showing an example of the main functions of a data processing device and a headset-type terminal according to the third embodiment. [Figure 7] This is a conceptual diagram showing an example of the configuration of a data processing system according to the fourth embodiment. [Figure 8] This is a conceptual diagram showing an example of the main functions of a data processing device and a robot according to the fourth embodiment. [Figure 9] This shows an emotion map where multiple emotions are mapped. [Figure 10] This shows an emotion map where multiple emotions are mapped. [Modes for carrying out the invention]
[0009] Hereinafter, an example of an embodiment of the system relating to the technology of this disclosure will be described with reference to the attached drawings.
[0010] First, let's explain the terminology used in the following explanation.
[0011] In the following embodiments, the signed processor (hereinafter simply referred to as "processor") may be a single arithmetic unit or a combination of multiple arithmetic units. Furthermore, the processor may be a single type of arithmetic unit or a combination of multiple types of arithmetic units. Examples of arithmetic units include CPU (Central Processing Unit), GPU (Graphics Processing Unit), GPGPU (General-Purpose computing on Graphics Processing Units), APU (Accelerated Processing Unit), or TPU (Tensor Processing Unit).
[0012] In the following embodiments, signed RAM (Random Access Memory) is a memory that temporarily stores information and is used as work memory by the processor.
[0013] In the following embodiments, the signed storage is one or more non-volatile storage devices that store various programs and various parameters. Examples of non-volatile storage devices include flash memory (SSD (Solid State Drive)), magnetic disks (e.g., hard disks), or magnetic tapes.
[0014] In the following embodiments, the numbered communication I / F (Interface) is an interface including a communication processor, an antenna, etc. The communication I / F manages communication between multiple computers. Examples of communication standards applied to the communication I / F include wireless communication standards such as 5G (5th Generation Mobile Communication System), Wi-Fi (registered trademark), or Bluetooth (registered trademark).
[0015] In the following embodiments, "A and / or B" is synonymous with "at least one of A and B". That is, "A and / or B" means that it may be only A, only B, or a combination of A and B. Also, in this specification, when expressing three or more matters connected by "and / or", the same concept as "A and / or B" is applied.
[0016] [First Embodiment] FIG. 1 shows an example of the configuration of a data processing system 10 according to the first embodiment.
[0017] As shown in FIG. 1, the data processing system 10 includes a data processing device 12 and a smart device 14. An example of the data processing device 12 is a server.
[0018] [[ID=IS]]The data processing device 12 includes a computer 22, a database 24, and a communication I / F 26. The computer 22 includes a processor 28, a RAM 30, and a storage 32. The processor 28, the RAM 30, and the storage 32 are connected to a bus 34. Also, the database 24 and the communication I / F 26 are connected to the bus 34. The communication I / F 26 is connected to a network 54. Examples of the network 54 include a WAN (Wide Area Network) and / or a LAN (Local Area Network).
[0019] The smart device 14 comprises a computer 36, a receiving device 38, an output device 40, a camera 42, and a communication interface 44. The computer 36 comprises a processor 46, RAM 48, and storage 50. The processor 46, RAM 48, and storage 50 are connected to a bus 52. The receiving device 38, output device 40, and camera 42 are also connected to the bus 52.
[0020] The reception device 38 is equipped with a touch panel 38A and a microphone 38B, and accepts user input. The touch panel 38A accepts user input via touch by detecting contact with an object (e.g., a pen or finger). The microphone 38B accepts user input via voice by detecting the user's voice. The control unit 46A transmits data indicating the user input received by the touch panel 38A and microphone 38B to the data processing unit 12. In the data processing unit 12, the specific processing unit 290 (see Figure 2) acquires the data indicating the user input.
[0021] The output device 40 includes a display 40A and a speaker 40B, and presents data to the user by outputting the data in a form perceptible to the user (e.g., audio and / or text). The display 40A displays visible information such as text and images according to instructions from the processor 46. The speaker 40B outputs audio according to instructions from the processor 46. The camera 42 is a small digital camera equipped with an optical system such as a lens, aperture, and shutter, and an image sensor such as a CMOS (Complementary Metal-Oxide-Semiconductor) image sensor or a CCD (Charge Coupled Device) image sensor.
[0022] Communication interface 44 is connected to network 54. Communication interfaces 44 and 26 are responsible for the exchange of various types of information between processor 46 and processor 28 via network 54.
[0023] Figure 2 shows an example of the main functions of the data processing device 12 and the smart device 14.
[0024] As shown in Figure 2, in the data processing device 12, a specific processing 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" related to the technology of this 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 according to the specific processing program 56 executed on the RAM 30.
[0025] Storage 32 stores the data generation model 58 and the emotion identification model 59. The data generation model 58 and the emotion identification model 59 are used by the identification processing unit 290. The identification processing unit 290 can estimate the user's emotions using the emotion identification model 59 and perform identification processing using the user's emotions. The emotion estimation function (emotion identification function) using the emotion identification model 59 performs various estimations and predictions regarding the user's emotions, including but not limited to these examples. Furthermore, emotion estimation and prediction also include, for example, emotion analysis.
[0026] In the smart device 14, specific processing is performed by the processor 46. The storage 50 stores a specific processing program 60. The specific processing program 60 is used in conjunction with the specific processing program 56 by the data processing system 10. The processor 46 reads the specific processing program 60 from the storage 50 and executes the read specific processing program 60 on the RAM 48. The specific processing is realized by the processor 46 operating as a control unit 46A according to the specific processing program 60 executed on the RAM 48. The smart device 14 also has a data generation model 58 and an emotion identification model 59, similar to the data generation model and emotion identification model 59, and can perform processing similar to that of the specific processing unit 290 using these models.
[0027] Furthermore, other devices besides the data processing device 12 may also have the data generation model 58. For example, a server device (e.g., a generation server) may have the data generation model 58. In this case, the data processing device 12 obtains processing results (such as prediction results) using the data generation model 58 by communicating with the server device having the data generation model 58. The data processing device 12 may also be a server device or a terminal device owned by a user (e.g., a mobile phone, robot, home appliance, etc.). Next, an example of processing by the data processing system 10 according to the first embodiment will be described.
[0028] (Example of form 1) The coding instructor system according to an embodiment of the present invention is a system that utilizes generative AI for IT development engineers. This system selects an appropriate programming language and prepares a development environment based on the user's existing skill set and development tasks. Furthermore, when the user is coding, the generative AI interacts with the user to support the generation of new code, modification of existing code, and patch creation. This mechanism allows IT development engineers to efficiently advance development tasks, reduce development costs, and double their work efficiency. For example, if the user is proficient in Python, the generative AI will select Python and prepare the development environment. Also, if the user has a specific development task, the system will select the programming language best suited to that task. This allows the user to efficiently advance development using a language that matches their skill set. Next, when the user is coding, the generative AI interacts with the user to support the generation of new code, modification of existing code, and patch creation. For example, if the user devises a new algorithm, the generative AI will generate the code to implement that algorithm. Also, if there is a bug in the existing code, the generative AI will suggest code to fix that bug. Furthermore, if it is necessary to understand and modify existing code for system automation or AI compatibility, the generative AI will support that work. This allows users to code more efficiently. For example, when a user starts a new project, the generative AI selects the appropriate programming language and prepares the development environment, ensuring a smooth project launch. Furthermore, the generative AI supports the generation of new code and modification of existing code during coding, speeding up development and accelerating project completion. Additionally, the generative AI's support in understanding and modifying existing code efficiently advances system automation and AI integration. This enables IT development engineers to develop high-quality systems within limited budgets. In short, the coding instructor system allows IT development engineers to efficiently complete development tasks, reducing development costs and doubling work efficiency.
[0029] The coding instructor system according to this embodiment comprises a selection unit, a preparation unit, a generation unit, and a patch creation unit. The selection unit selects an appropriate programming language based on the user's existing skill set and development task. For example, if the user is proficient in Python, the selection unit will select Python. The selection unit can also select the programming language best suited to a specific development task if the user has one. For example, the selection unit can select Python for a data analysis task and JavaScript® for a web development task. The preparation unit prepares a development environment based on the programming language selected by the selection unit. For example, when preparing a Python development environment, the preparation unit installs and configures the necessary libraries and tools. The preparation unit can also install and configure the necessary frameworks and plugins when preparing a JavaScript development environment. The generation unit generates new code and modifies existing code while interacting with the user. For example, if the user devises a new algorithm, the generation unit generates code to implement that algorithm. The generation unit can also generate code to fix bugs in existing code. Furthermore, the generation unit can also support the process of understanding and modifying existing code for system automation and AI compatibility. The patch creation unit creates patches based on the code generated by the generation unit. For example, the patch creation unit creates patches to apply the generated code to an existing system. The patch creation unit can also test the generated code to confirm that there are no problems before creating the patches. As a result, the coding instructor system according to the embodiment can select an appropriate programming language based on the user's existing skill set and development tasks, prepare a development environment, generate new code, modify existing code, and create patches.
[0030] The selection team selects an appropriate programming language based on the user's existing skill set and development tasks. For example, if the user is proficient in Python, the selection team will select Python. The selection team can also select the most suitable programming language for specific development tasks. For instance, they might select Python for data analysis tasks and JavaScript for web development tasks. To analyze the user's skill set in detail, the selection team collects the user's past programming language and project history and uses this information to select the most suitable language. For example, if the user has successfully completed a data analysis project using Python, the selection team will recommend Python. Furthermore, the selection team thoroughly understands the requirements of the user's current project and selects the most suitable programming language for those requirements. For example, for a project requiring real-time data processing, the selection team might select C++ for its high performance. Finally, the selection team considers the user's motivation to learn and future career path, evaluating the benefits the user could gain from learning a new language. For example, if a user is interested in AI development in the future, the selection team might choose Python, explaining that it is widely used in AI development. This allows the selection team to choose the programming language best suited to the user's skill set and development tasks, supporting the user in efficiently advancing the project.
[0031] The preparation team prepares the development environment based on the programming language selected by the selection team. For example, when preparing a Python development environment, the preparation team installs and configures the necessary libraries and tools. Similarly, when preparing a JavaScript development environment, the preparation team can install and configure the necessary frameworks and plugins. Specifically, when preparing a Python development environment, they install an integrated development environment (IDE) such as Anaconda or PyCharm and configure libraries necessary for data analysis, such as NumPy, Pandas, and Matplotlib. Furthermore, the preparation team performs custom configurations specific to the user's project to ensure the development environment fully meets the user's needs. For example, they configure database connection settings and API keys used in a particular project. When preparing a JavaScript development environment, they install Node.js and npm and configure frameworks such as React and Vue.js. The preparation team also manages the versions of these tools and frameworks, ensuring the reliability and performance of the development environment by using the latest stable versions. Additionally, the preparation team can provide sample code and template projects to help users get started smoothly. This allows the preparation unit to quickly prepare the optimal development environment based on the selected programming language, providing a foundation for users to efficiently proceed with development.
[0032] The generation unit interacts with users to generate new code and modify existing code. For example, if a user devises a new algorithm, the generation unit will generate code to implement that algorithm. It can also generate code to fix bugs in existing code. Furthermore, the generation unit can support the process of understanding and modifying existing code for system automation and AI integration. Specifically, the generation unit utilizes AI to generate optimal code based on the algorithm details and requirements provided by the user. For example, if a user devises a new data analysis algorithm, the generation unit will generate code to implement that algorithm in Python and provide it to the user. The generation unit also analyzes bug reports and error messages provided by users to identify the root cause of problems and generate corrective code. Additionally, the generation unit analyzes existing codebases and makes necessary modifications for system automation and AI integration. For example, it can generate code to integrate AI models into existing code, improving overall system performance. The generation unit prioritizes communication with users and continuously improves code quality based on user feedback. This allows the generation unit to quickly generate high-quality code tailored to user needs and streamline the development process.
[0033] The patch creation unit creates patches based on the code generated by the generation unit. For example, the patch creation unit creates patches to apply the generated code to an existing system. The patch creation unit can also test the generated code to confirm that there are no problems before creating the patch. Specifically, the patch creation unit integrates the generated code into the existing codebase and conducts tests to verify the operation of the entire system. For example, if a new function is added, integration tests are performed to verify that the function works correctly with existing functions. The patch creation unit also performs unit tests and functional tests on the generated code to guarantee the quality of the code. Furthermore, the patch creation unit makes necessary corrections based on the test results and creates the final patch. The patch creation unit can also create patch application procedures and release notes, providing reference materials for users when applying the patch. This allows the patch creation unit to safely and efficiently integrate the generated code into the existing system, improving the reliability and performance of the entire system. Furthermore, the patch creation unit monitors the system's operation even after the patch is applied and has a system in place to respond quickly if any problems occur. This allows the patch creation unit to maintain system stability and provide an environment in which users can use the system with peace of mind.
[0034] The selection unit can analyze the user's past project history and select the most suitable programming language during the selection process. For example, the selection unit may prioritize programming languages used by the user in past successful projects. It can also avoid programming languages used by the user in past unsuccessful projects. Furthermore, the selection unit can select the most suitable programming language based on the scale and content of the user's past projects. In this way, the optimal programming language can be selected by analyzing the user's past project history. Some or all of the above processing in the selection unit may be performed using, for example, a generative AI, or without a generative AI. For example, the selection unit can input the user's past project data into a generative AI and have the generative AI perform the selection of a programming language based on the project history.
[0035] The selection unit can select a programming language based on the characteristics of the user's current project during the selection process. For example, if the current project includes data analysis, the generation AI may select Python. Alternatively, if the current project includes web development, the generation AI may select JavaScript. Furthermore, if the current project includes system programming, the generation AI may select C++. This allows the selection of a programming language suitable for the project based on its characteristics. Some or all of the above-described processes in the selection unit may be performed using the generation AI, or without it. For example, the selection unit can input the characteristics data of the current project into the generation AI and have the generation AI perform the selection of a programming language based on the project characteristics.
[0036] The preparation unit can prepare the optimal development environment by referring to the user's past development environment settings history during the preparation process. For example, the preparation unit can automatically apply the optimal settings based on the development environment the user has used in the past. The preparation unit can also prioritize the installation of tools and plugins that the user has preferred to use in the past. Furthermore, the preparation unit can customize the optimal development environment based on the characteristics of the user's past projects. This allows the preparation unit to prepare the optimal development environment by referring to the user's past development environment settings history. Some or all of the above processes in the preparation unit may be performed using, for example, a generation AI, or not using a generation AI. For example, the preparation unit can input the user's past development environment data into a generation AI and have the generation AI execute the development environment settings.
[0037] The preparation unit can customize the development environment based on the characteristics of the user's current project during the preparation phase. For example, if the current project includes data analysis, the generation AI can prepare a Python development environment. The preparation unit can also prepare a JavaScript development environment if the current project includes web development. Furthermore, if the current project includes system programming, the generation AI can prepare a C++ development environment. This allows the development environment to be customized based on the characteristics of the user's current project, thereby preparing a development environment suitable for the project. Some or all of the above-described processes in the preparation unit may be performed using the generation AI, or without it. For example, the preparation unit can input the characteristics data of the current project into the generation AI and have the generation AI perform the customization of the development environment based on the project characteristics.
[0038] The generation unit can generate optimal code by referring to the user's past coding history during the generation process. For example, the generation unit can use the generation AI to generate code in a similar style to the code the user has written in the past. The generation unit can also use the generation AI to generate optimal code based on libraries and frameworks the user has used in the past. Furthermore, the generation unit can use the generation AI to generate optimal code based on the characteristics of the user's past projects. In this way, optimal code can be generated by referring to the user's past coding history. Some or all of the above processes in the generation unit may be performed using the generation AI, or they may be performed without the generation AI. For example, the generation unit can input the user's past coding data into the generation AI and have the generation AI perform code generation based on the coding history.
[0039] The generation unit can customize the code during generation based on the characteristics of the user's current project. For example, if the current project includes data analysis, the generation AI can generate Python code. The generation unit can also generate JavaScript code if the current project includes web development. Furthermore, if the current project includes system programming, the generation AI can generate C++ code. This allows for the generation of code suitable for the project by customizing it based on the characteristics of the user's current project. Some or all of the above-described processes in the generation unit may be performed using the generation AI, or without it. For example, the generation unit can input the characteristics data of the current project into the generation AI and have the generation AI perform code customization based on the project characteristics.
[0040] The patch creation unit can create the optimal patch by referring to the user's past patch creation history. For example, the patch creation unit can use the generation AI to create a patch in a similar style to patches previously created by the user. The patch creation unit can also use the generation AI to create the optimal patch based on libraries and frameworks previously used by the user. Furthermore, the patch creation unit can use the generation AI to create the optimal patch based on the characteristics of the user's past projects. In this way, the optimal patch can be created by referring to the user's past patch creation history. Some or all of the above processes in the patch creation unit may be performed using the generation AI, or they may be performed without the generation AI. For example, the patch creation unit can input the user's past patch creation data into the generation AI and have the generation AI create a patch based on the patch creation history.
[0041] The patch creation unit can customize patches based on the characteristics of the user's current project during the patch creation process. For example, if the current project includes data analysis, the generating AI can create a Python patch. If the current project includes web development, the generating AI can also create a JavaScript patch. Furthermore, if the current project includes system programming, the generating AI can create a C++ patch. This allows for the creation of patches suitable for the project by customizing them based on the characteristics of the user's current project. Some or all of the above-described processes in the patch creation unit may be performed using the generating AI, or without it. For example, the patch creation unit can input the characteristics data of the current project into the generating AI and have the generating AI perform patch customization based on the project characteristics.
[0042] The system according to the embodiment is not limited to the example described above, and various modifications are possible, for example, as follows.
[0043] The coding instructor system can also include a feedback section. This feedback section provides real-time feedback on the code generated by the user. For example, when a user writes new code, the feedback section evaluates its efficiency and readability and suggests areas for improvement. Furthermore, when a user modifies existing code, the feedback section can evaluate the impact of the modification on the overall system and point out potential problems. In addition, the feedback section can check whether the user is following specific programming patterns and best practices and provide guidelines as needed. This allows users to improve their coding skills and produce higher-quality code.
[0044] The coding instructor system can also include a learning section. This section analyzes the user's past coding and project history and provides learning content tailored to the user. For example, if a user is unfamiliar with a particular programming language, the learning section provides tutorials and documentation on that language. It can also provide relevant materials if the user is interested in a specific algorithm or design pattern. Furthermore, the learning section can support skill development by presenting practice problems and assignments tailored to the user's skill level. This allows users to efficiently improve their skills.
[0045] The coding instructor system can also include a collaboration section. This section supports efficient communication and task management when multiple users work on a project together. For example, the collaboration section provides features for real-time code sharing and collaborative editing among users. It can also visualize task progress and clarify each user's role and responsibilities. Furthermore, the collaboration section can provide chat and comment functions to facilitate communication among users. This allows users to efficiently advance projects as a team.
[0046] The coding instructor system can also include a debugging function. This debugging function automatically detects errors and bugs in the code written by the user and suggests correction methods. For example, if there are syntax errors in the code written by the user, the debugging function will point out the location of the error and suggest a correction method. Furthermore, if there are logic errors in the code written by the user, the debugging function can identify the cause of the error and suggest a correction method. In addition, the debugging function can evaluate the performance of the code written by the user and suggest optimizations. This allows users to efficiently improve the quality of their code.
[0047] The coding instructor system can also include a documentation generation unit. This unit automatically generates documentation based on the code written by the user. For example, it can automatically generate explanations for functions and classes written by the user and add them as comments to the code. It can also automatically generate documentation on how to use the user's code and sample code, providing these as documentation. Furthermore, it can automatically record the change history and version information of the user's code and provide this documentation. This allows users to efficiently manage their code documentation.
[0048] The coding instructor system can also include a testing component. This component automatically generates test cases for the code written by the user and executes the tests. For example, it can generate test cases for a user-written function using various input values to verify that the function works correctly. It can also generate test cases for a user-written class under different scenarios to verify that the class behaves as expected. Furthermore, the testing component can perform performance tests on the user-written code and offer optimization suggestions. This allows users to efficiently ensure the quality of their code.
[0049] The following briefly describes the processing flow for example form 1.
[0050] Step 1: The selection team selects an appropriate programming language based on the user's existing skill set and development tasks. For example, if the user is proficient in Python, Python will be selected, and Python will also be selected for data analysis tasks. Alternatively, JavaScript may be selected for web development tasks. Step 2: The preparation team prepares the development environment based on the programming language selected by the selection team. For example, when preparing a Python development environment, they install and configure the necessary libraries and tools. Similarly, when preparing a JavaScript development environment, they install and configure the necessary frameworks and plugins. Step 3: The generation unit interacts with the user to generate new code and modify existing code. For example, if the user devises a new algorithm, it generates the code to implement that algorithm. It can also generate code to fix bugs in existing code. Furthermore, it can support the process of understanding and modifying existing code for system automation and AI integration. Step 4: The patch creation unit creates a patch based on the code generated by the generation unit. For example, it can create a patch to apply the generated code to an existing system. Alternatively, it can test the generated code to confirm that there are no problems before creating the patch.
[0051] (Example of form 2) The coding instructor system according to an embodiment of the present invention is a system that utilizes generative AI for IT development engineers. This system selects an appropriate programming language and prepares a development environment based on the user's existing skill set and development tasks. Furthermore, when the user is coding, the generative AI interacts with the user to support the generation of new code, modification of existing code, and patch creation. This mechanism allows IT development engineers to efficiently advance development tasks, reduce development costs, and double their work efficiency. For example, if the user is proficient in Python, the generative AI will select Python and prepare the development environment. Also, if the user has a specific development task, the system will select the programming language best suited to that task. This allows the user to efficiently advance development using a language that matches their skill set. Next, when the user is coding, the generative AI interacts with the user to support the generation of new code, modification of existing code, and patch creation. For example, if the user devises a new algorithm, the generative AI will generate the code to implement that algorithm. Also, if there is a bug in the existing code, the generative AI will suggest code to fix that bug. Furthermore, if it is necessary to understand and modify existing code for system automation or AI compatibility, the generative AI will support that work. This allows users to code more efficiently. For example, when a user starts a new project, the generative AI selects the appropriate programming language and prepares the development environment, ensuring a smooth project launch. Furthermore, the generative AI supports the generation of new code and modification of existing code during coding, speeding up development and accelerating project completion. Additionally, the generative AI's support in understanding and modifying existing code efficiently advances system automation and AI integration. This enables IT development engineers to develop high-quality systems within limited budgets. In short, the coding instructor system allows IT development engineers to efficiently complete development tasks, reducing development costs and doubling work efficiency.
[0052] The coding instructor system according to this embodiment comprises a selection unit, a preparation unit, a generation unit, and a patch creation unit. The selection unit selects an appropriate programming language based on the user's existing skill set and development task. For example, if the user is proficient in Python, the selection unit will select Python. The selection unit can also select the programming language best suited to a specific development task if the user has one. For example, the selection unit can select Python for a data analysis task and JavaScript for a web development task. The preparation unit prepares the development environment based on the programming language selected by the selection unit. For example, when preparing a Python development environment, the preparation unit installs and configures the necessary libraries and tools. The preparation unit can also install and configure the necessary frameworks and plugins when preparing a JavaScript development environment. The generation unit generates new code and modifies existing code while interacting with the user. For example, if the user devises a new algorithm, the generation unit generates code to implement that algorithm. The generation unit can also generate code to fix bugs in existing code. Furthermore, the generation unit can also support the process of understanding and modifying existing code for system automation and AI compatibility. The patch creation unit creates patches based on the code generated by the generation unit. For example, the patch creation unit creates patches to apply the generated code to an existing system. The patch creation unit can also test the generated code to confirm that there are no problems before creating the patches. As a result, the coding instructor system according to the embodiment can select an appropriate programming language based on the user's existing skill set and development tasks, prepare a development environment, generate new code, modify existing code, and create patches.
[0053] The selection team selects an appropriate programming language based on the user's existing skill set and development tasks. For example, if the user is proficient in Python, the selection team will select Python. The selection team can also select the most suitable programming language for specific development tasks. For instance, they might select Python for data analysis tasks and JavaScript for web development tasks. To analyze the user's skill set in detail, the selection team collects the user's past programming language and project history and uses this information to select the most suitable language. For example, if the user has successfully completed a data analysis project using Python, the selection team will recommend Python. Furthermore, the selection team thoroughly understands the requirements of the user's current project and selects the most suitable programming language for those requirements. For example, for a project requiring real-time data processing, the selection team might select C++ for its high performance. Finally, the selection team considers the user's motivation to learn and future career path, evaluating the benefits the user could gain from learning a new language. For example, if a user is interested in AI development in the future, the selection team might choose Python, explaining that it is widely used in AI development. This allows the selection team to choose the programming language best suited to the user's skill set and development tasks, supporting the user in efficiently advancing the project.
[0054] The preparation team prepares the development environment based on the programming language selected by the selection team. For example, when preparing a Python development environment, the preparation team installs and configures the necessary libraries and tools. Similarly, when preparing a JavaScript development environment, the preparation team can install and configure the necessary frameworks and plugins. Specifically, when preparing a Python development environment, they install an integrated development environment (IDE) such as Anaconda or PyCharm and configure libraries necessary for data analysis, such as NumPy, Pandas, and Matplotlib. Furthermore, the preparation team performs custom configurations specific to the user's project to ensure the development environment fully meets the user's needs. For example, they configure database connection settings and API keys used in a particular project. When preparing a JavaScript development environment, they install Node.js and npm and configure frameworks such as React and Vue.js. The preparation team also manages the versions of these tools and frameworks, ensuring the reliability and performance of the development environment by using the latest stable versions. Additionally, the preparation team can provide sample code and template projects to help users get started smoothly. This allows the preparation unit to quickly prepare the optimal development environment based on the selected programming language, providing a foundation for users to efficiently proceed with development.
[0055] The generation unit interacts with users to generate new code and modify existing code. For example, if a user devises a new algorithm, the generation unit will generate code to implement that algorithm. It can also generate code to fix bugs in existing code. Furthermore, the generation unit can support the process of understanding and modifying existing code for system automation and AI integration. Specifically, the generation unit utilizes AI to generate optimal code based on the algorithm details and requirements provided by the user. For example, if a user devises a new data analysis algorithm, the generation unit will generate code to implement that algorithm in Python and provide it to the user. The generation unit also analyzes bug reports and error messages provided by users to identify the root cause of problems and generate corrective code. Additionally, the generation unit analyzes existing codebases and makes necessary modifications for system automation and AI integration. For example, it can generate code to integrate AI models into existing code, improving overall system performance. The generation unit prioritizes communication with users and continuously improves code quality based on user feedback. This allows the generation unit to quickly generate high-quality code tailored to user needs and streamline the development process.
[0056] The patch creation unit creates patches based on the code generated by the generation unit. For example, the patch creation unit creates patches to apply the generated code to an existing system. The patch creation unit can also test the generated code to confirm that there are no problems before creating the patch. Specifically, the patch creation unit integrates the generated code into the existing codebase and conducts tests to verify the operation of the entire system. For example, if a new function is added, integration tests are performed to verify that the function works correctly with existing functions. The patch creation unit also performs unit tests and functional tests on the generated code to guarantee the quality of the code. Furthermore, the patch creation unit makes necessary corrections based on the test results and creates the final patch. The patch creation unit can also create patch application procedures and release notes, providing reference materials for users when applying the patch. This allows the patch creation unit to safely and efficiently integrate the generated code into the existing system, improving the reliability and performance of the entire system. Furthermore, the patch creation unit monitors the system's operation even after the patch is applied and has a system in place to respond quickly if any problems occur. This allows the patch creation unit to maintain system stability and provide an environment in which users can use the system with peace of mind.
[0057] The selection unit can estimate the user's emotions and adjust the programming language selection criteria based on the estimated user emotions. For example, if the user is stressed, the selection unit can use a generative AI to select a simple and intuitive programming language. If the user is relaxed, the selection unit can use a generative AI to select a programming language with advanced features. Furthermore, if the user is in a hurry, the selection unit can use a generative AI to select a programming language that allows for rapid development. In this way, by adjusting the programming language selection criteria based on the user's emotions, a programming language suitable for the user can be selected. Emotion estimation is achieved using an emotion estimation function, for example, using an emotion engine or generative AI. The generative AI is, but is not limited to, text generation AI (e.g., LLM) or multimodal generation AI. Some or all of the above processing in the selection unit may be performed using AI, or not using AI. For example, the selection unit can input user emotion data into the generative AI and have the generative AI perform emotion-based programming language selection.
[0058] The selection unit can analyze the user's past project history and select the most suitable programming language during the selection process. For example, the selection unit may prioritize programming languages used by the user in past successful projects. It can also avoid programming languages used by the user in past unsuccessful projects. Furthermore, the selection unit can select the most suitable programming language based on the scale and content of the user's past projects. In this way, the optimal programming language can be selected by analyzing the user's past project history. Some or all of the above processing in the selection unit may be performed using, for example, a generative AI, or without a generative AI. For example, the selection unit can input the user's past project data into a generative AI and have the generative AI perform the selection of a programming language based on the project history.
[0059] The selection unit can select a programming language based on the characteristics of the user's current project during the selection process. For example, if the current project includes data analysis, the generation AI may select Python. Alternatively, if the current project includes web development, the generation AI may select JavaScript. Furthermore, if the current project includes system programming, the generation AI may select C++. This allows the selection of a programming language suitable for the project based on its characteristics. Some or all of the above-described processes in the selection unit may be performed using the generation AI, or without it. For example, the selection unit can input the characteristics data of the current project into the generation AI and have the generation AI perform the selection of a programming language based on the project characteristics.
[0060] The preparation unit can estimate the user's emotions and adjust how the development environment is prepared based on the estimated emotions. For example, if the user is stressed, the preparation unit can use a generative AI to prepare a simple and intuitive development environment. If the user is relaxed, the preparation unit can use the generative AI to prepare a development environment with advanced features. Furthermore, if the user is in a hurry, the preparation unit can use the generative AI to prepare a development environment that can be set up quickly. In this way, by adjusting how the development environment is prepared based on the user's emotions, a development environment suitable for the user can be prepared. Emotion estimation is achieved using an emotion estimation function, for example, using an emotion engine or generative AI. The generative AI is, but is not limited to, text generation AI (e.g., LLM) or multimodal generation AI. Some or all of the above processing in the preparation unit may be performed using AI or not using AI. For example, the preparation unit can input user emotion data into the generative AI and have the generative AI perform emotion-based development environment preparation.
[0061] The preparation unit can prepare the optimal development environment by referring to the user's past development environment settings history during the preparation process. For example, the preparation unit can automatically apply the optimal settings based on the development environment the user has used in the past. The preparation unit can also prioritize the installation of tools and plugins that the user has preferred to use in the past. Furthermore, the preparation unit can customize the optimal development environment based on the characteristics of the user's past projects. This allows the preparation unit to prepare the optimal development environment by referring to the user's past development environment settings history. Some or all of the above processes in the preparation unit may be performed using, for example, a generation AI, or not using a generation AI. For example, the preparation unit can input the user's past development environment data into a generation AI and have the generation AI execute the development environment settings.
[0062] The preparation unit can customize the development environment based on the characteristics of the user's current project during the preparation phase. For example, if the current project includes data analysis, the generation AI can prepare a Python development environment. The preparation unit can also prepare a JavaScript development environment if the current project includes web development. Furthermore, if the current project includes system programming, the generation AI can prepare a C++ development environment. This allows the development environment to be customized based on the characteristics of the user's current project, thereby preparing a development environment suitable for the project. Some or all of the above-described processes in the preparation unit may be performed using the generation AI, or without it. For example, the preparation unit can input the characteristics data of the current project into the generation AI and have the generation AI perform the customization of the development environment based on the project characteristics.
[0063] The generation unit can estimate the user's emotions and adjust how new code is generated and existing code is modified based on the estimated user emotions. For example, if the user is stressed, the generation unit's generating AI can generate simple and intuitive code. If the user is relaxed, the generation unit's generating AI can also generate code with advanced functionality. Furthermore, if the user is in a hurry, the generation unit's generating AI can generate code that can be quickly implemented. This allows for the generation and modification of code tailored to the user by adjusting how new code is generated and existing code is modified based on the user's emotions. Emotion estimation is achieved using emotion estimation functions, such as an emotion engine or a generation AI. The generation AI is, but is not limited to, text generation AI (e.g., LLM) or multimodal generation AI. Some or all of the above processing in the generation unit may be performed using AI or not. For example, the generation unit can input user emotion data into the generation AI and have the generation AI perform emotion-based code generation and modification.
[0064] The generation unit can generate optimal code by referring to the user's past coding history during the generation process. For example, the generation unit can use the generation AI to generate code in a similar style to the code the user has written in the past. The generation unit can also use the generation AI to generate optimal code based on libraries and frameworks the user has used in the past. Furthermore, the generation unit can use the generation AI to generate optimal code based on the characteristics of the user's past projects. In this way, optimal code can be generated by referring to the user's past coding history. Some or all of the above processes in the generation unit may be performed using the generation AI, or they may be performed without the generation AI. For example, the generation unit can input the user's past coding data into the generation AI and have the generation AI perform code generation based on the coding history.
[0065] The generation unit can customize the code during generation based on the characteristics of the user's current project. For example, if the current project includes data analysis, the generation AI can generate Python code. The generation unit can also generate JavaScript code if the current project includes web development. Furthermore, if the current project includes system programming, the generation AI can generate C++ code. This allows for the generation of code suitable for the project by customizing it based on the characteristics of the user's current project. Some or all of the above-described processes in the generation unit may be performed using the generation AI, or without it. For example, the generation unit can input the characteristics data of the current project into the generation AI and have the generation AI perform code customization based on the project characteristics.
[0066] The patch creation unit can estimate the user's emotions and adjust the patch creation method based on the estimated emotions. For example, if the user is stressed, the patch creation unit can use a generative AI to provide a simple and intuitive patch creation method. If the user is relaxed, the patch creation unit can also use a generative AI to provide a more advanced patch creation method. Furthermore, if the user is in a hurry, the patch creation unit can provide a method that allows the generative AI to create patches quickly. This allows for the creation of patches that are appropriate for the user by adjusting the patch creation method based on the user's emotions. Emotion estimation is achieved using an emotion estimation function, such as an emotion engine or generative AI. The generative AI is, but is not limited to, text generation AI (e.g., LLM) or multimodal generation AI. Some or all of the above-described processes in the patch creation unit may be performed using AI or not. For example, the patch creation unit can input user emotion data into the generative AI and have the generative AI perform emotion-based patch creation.
[0067] The patch creation unit can create the optimal patch by referring to the user's past patch creation history. For example, the patch creation unit can use the generation AI to create a patch in a similar style to patches previously created by the user. The patch creation unit can also use the generation AI to create the optimal patch based on libraries and frameworks previously used by the user. Furthermore, the patch creation unit can use the generation AI to create the optimal patch based on the characteristics of the user's past projects. In this way, the optimal patch can be created by referring to the user's past patch creation history. Some or all of the above processes in the patch creation unit may be performed using the generation AI, or they may be performed without the generation AI. For example, the patch creation unit can input the user's past patch creation data into the generation AI and have the generation AI create a patch based on the patch creation history.
[0068] The patch creation unit can customize patches based on the characteristics of the user's current project during the patch creation process. For example, if the current project includes data analysis, the generating AI can create a Python patch. If the current project includes web development, the generating AI can also create a JavaScript patch. Furthermore, if the current project includes system programming, the generating AI can create a C++ patch. This allows for the creation of patches suitable for the project by customizing them based on the characteristics of the user's current project. Some or all of the above-described processes in the patch creation unit may be performed using the generating AI, or without it. For example, the patch creation unit can input the characteristics data of the current project into the generating AI and have the generating AI perform patch customization based on the project characteristics.
[0069] The system according to the embodiment is not limited to the example described above, and various modifications are possible, for example, as follows.
[0070] The coding instructor system can also include a feedback section. This feedback section provides real-time feedback on the code generated by the user. For example, when a user writes new code, the feedback section evaluates its efficiency and readability and suggests areas for improvement. Furthermore, when a user modifies existing code, the feedback section can evaluate the impact of the modification on the overall system and point out potential problems. In addition, the feedback section can check whether the user is following specific programming patterns and best practices and provide guidelines as needed. This allows users to improve their coding skills and produce higher-quality code.
[0071] The coding instructor system can also include a motivation component. This component estimates the user's emotions and provides feedback and actions to boost motivation based on those estimates. For example, if the user is tired, the motivation component displays a message encouraging them to take a break. It can also display a message praising the user's achievements when they experience success. Furthermore, if the user is facing a difficult task, the motivation component can provide encouraging messages and helpful resources. This allows users to maintain motivation and code efficiently.
[0072] The coding instructor system can also include a learning section. This section analyzes the user's past coding and project history and provides learning content tailored to the user. For example, if a user is unfamiliar with a particular programming language, the learning section provides tutorials and documentation on that language. It can also provide relevant materials if the user is interested in a specific algorithm or design pattern. Furthermore, the learning section can support skill development by presenting practice problems and assignments tailored to the user's skill level. This allows users to efficiently improve their skills.
[0073] The coding instructor system can also include a collaboration section. This section supports efficient communication and task management when multiple users work on a project together. For example, the collaboration section provides features for real-time code sharing and collaborative editing among users. It can also visualize task progress and clarify each user's role and responsibilities. Furthermore, the collaboration section can provide chat and comment functions to facilitate communication among users. This allows users to efficiently advance projects as a team.
[0074] The coding instructor system can also include a reminder function. This function estimates the user's emotions and provides reminders at appropriate times based on those emotions. For example, if the user is losing focus, the reminder function displays a reminder to take a break. It can also display a reminder if the user has forgotten an important task. Furthermore, the reminder function can provide reminders to check progress based on user-set goals and deadlines. This allows users to efficiently manage tasks and achieve their goals.
[0075] The coding instructor system can also include a debugging function. This debugging function automatically detects errors and bugs in the code written by the user and suggests correction methods. For example, if there are syntax errors in the code written by the user, the debugging function will point out the location of the error and suggest a correction method. Furthermore, if there are logic errors in the code written by the user, the debugging function can identify the cause of the error and suggest a correction method. In addition, the debugging function can evaluate the performance of the code written by the user and suggest optimizations. This allows users to efficiently improve the quality of their code.
[0076] The coding instructor system can also include an inspiration component. This component estimates the user's emotions and provides creative ideas and solutions based on those emotions. For example, if the user is stuck for ideas, the inspiration component can present relevant projects or code samples. It can also provide information and reference materials if the user wants to try a new approach. Furthermore, the inspiration component can suggest different perspectives and approaches when the user is considering multiple solutions to a particular problem. This makes it easier for the user to find creative solutions.
[0077] The coding instructor system can also include a documentation generation unit. This unit automatically generates documentation based on the code written by the user. For example, it can automatically generate explanations for functions and classes written by the user and add them as comments to the code. It can also automatically generate documentation on how to use the user's code and sample code, providing these as documentation. Furthermore, it can automatically record the change history and version information of the user's code and provide this documentation. This allows users to efficiently manage their code documentation.
[0078] The coding instructor system can also include a reflection section. This section estimates the user's emotions and supports the reflection of the coding session based on those estimated emotions. For example, if the user feels a sense of accomplishment after the session, the reflection section provides feedback that highlights that success. If the user experienced difficulties during the session, it can analyze the causes and suggest areas for improvement for the next session. Furthermore, the reflection section can evaluate the user's progress towards their set goals and provide feedback on their level of achievement. This allows users to feel a sense of personal growth and increase their motivation for the next session.
[0079] The coding instructor system can also include a testing component. This component automatically generates test cases for the code written by the user and executes the tests. For example, it can generate test cases for a user-written function using various input values to verify that the function works correctly. It can also generate test cases for a user-written class under different scenarios to verify that the class behaves as expected. Furthermore, the testing component can perform performance tests on the user-written code and offer optimization suggestions. This allows users to efficiently ensure the quality of their code.
[0080] The following briefly describes the processing flow for example form 2.
[0081] Step 1: The selection team selects an appropriate programming language based on the user's existing skill set and development tasks. For example, if the user is proficient in Python, Python will be selected, and Python will also be selected for data analysis tasks. Alternatively, JavaScript may be selected for web development tasks. Step 2: The preparation team prepares the development environment based on the programming language selected by the selection team. For example, when preparing a Python development environment, they install and configure the necessary libraries and tools. Similarly, when preparing a JavaScript development environment, they install and configure the necessary frameworks and plugins. Step 3: The generation unit interacts with the user to generate new code and modify existing code. For example, if the user devises a new algorithm, it generates the code to implement that algorithm. It can also generate code to fix bugs in existing code. Furthermore, it can support the process of understanding and modifying existing code for system automation and AI integration. Step 4: The patch creation unit creates a patch based on the code generated by the generation unit. For example, it can create a patch to apply the generated code to an existing system. Alternatively, it can test the generated code to confirm that there are no problems before creating the patch.
[0082] 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 user input for the result of the specific processing. The control unit 46A transmits the audio data indicating 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.
[0083] Data generation model 58 is a form of so-called generative AI (Artificial Intelligence). An example of data generation model 58 is ChatGPT (registered trademark) (Internet search).<URL: https: / / openai.com / blog / chatgpt> Examples of generative AI include text generation AI, image generation AI, and multimodal generation AI. The data generation model 58 is obtained by performing deep learning on a neural network. The data generation model 58 is input with prompts containing instructions, and with inference data such as audio data representing speech, text data representing text, and image data representing images (e.g., still image data or video data). The data generation model 58 infers from the input inference data according to the instructions indicated by the prompts, and outputs the inference result in one or more data formats from audio data, text data, and image data. The data generation model 58 includes, for example, text generation AI, image generation AI, and multimodal generation AI. Here, inference refers to, for example, analysis, classification, prediction, and / or summarization. The specific processing unit 290 performs the specific processing described above using the data generation model 58. The data generation model 58 may be a fine-tuned model that outputs inference results from prompts that do not contain instructions, in which case the data generation model 58 can output inference results from prompts that do not contain instructions. In the data processing device 12, etc., there are multiple types of data generation models 58, and the data generation model 58 includes AI other than generative AI. AI other than generative AI includes, for example, linear regression, logistic regression, decision trees, random forests, support vector machines (SVMs), k-means clustering, convolutional neural networks (CNNs), recurrent neural networks (RNNs), generative adversarial networks (GANs), or naive Bayes, and can perform various processes, but is not limited to these examples. Also, the AI may be an AI agent. Furthermore, when the processing of each of the above parts is performed by the AI, the processing may be performed by the AI in part or in whole, but is not limited to this example.Furthermore, processing performed by AI, including generative AI, may be replaced with rule-based processing, and rule-based processing may be replaced with processing performed by AI, including generative AI.
[0084] Furthermore, the processing performed by the data processing system 10 described above is carried out by the specific processing unit 290 of the data processing device 12 or the control unit 46A of the smart device 14, but it may also be carried out by the specific processing unit 290 of the data processing device 12 and the control unit 46A of the smart device 14. In addition, the specific processing unit 290 of the data processing device 12 acquires or collects information necessary for processing from the smart device 14 or an external device, and the smart device 14 acquires or collects information necessary for processing from the data processing device 12 or an external device.
[0085] Each of the multiple elements described above, including the selection unit, preparation unit, generation unit, and patch creation unit, is implemented in at least one of the smart device 14 and the data processing device 12. For example, the selection unit is implemented by the control unit 46A of the smart device 14 or the specific processing unit 290 of the data processing device 12. The preparation unit is implemented by the control unit 46A of the smart device 14 or the specific processing unit 290 of the data processing device 12. The generation unit is implemented by the control unit 46A of the smart device 14 or the specific processing unit 290 of the data processing device 12. The patch creation unit is implemented by the control unit 46A of the smart device 14 or the specific processing unit 290 of the data processing device 12. The correspondence between each unit and the device or control unit is not limited to the example described above, and various modifications are possible.
[0086] [Second Embodiment] Figure 3 shows an example of the configuration of the data processing system 210 according to the second embodiment.
[0087] As shown in Figure 3, the data processing system 210 includes a data processing device 12 and smart glasses 214. An example of the data processing device 12 is a server.
[0088] The data processing device 12 comprises a computer 22, a database 24, and a communication interface 26. The computer 22 comprises a processor 28, RAM 30, and storage 32. The processor 28, RAM 30, and storage 32 are connected to a bus 34. The database 24 and the communication interface 26 are also connected to the bus 34. The communication interface 26 is connected to a network 54. An example of the network 54 is a WAN and / or LAN.
[0089] The smart glasses 214 include a computer 36, a microphone 238, a speaker 240, a camera 42, and a communication interface 44. The computer 36 includes a processor 46, RAM 48, and storage 50. The processor 46, RAM 48, and storage 50 are connected to a bus 52. The microphone 238, speaker 240, and camera 42 are also connected to the bus 52.
[0090] The microphone 238 receives voice commands and other instructions from the user by receiving voice signals. The microphone 238 captures the voice signals from the user, converts the captured voice into audio data, and outputs it to the processor 46. The speaker 240 outputs audio according to the instructions from the processor 46.
[0091] Camera 42 is a small digital camera equipped with an optical system including a lens, aperture, and shutter, and an image sensor such as a CMOS (Complementary Metal-Oxide-Semiconductor) image sensor or a CCD (Charge Coupled Device) image sensor, which captures images of the area around the user (for example, an imaging range defined by a field of view equivalent to the field of vision of a typical healthy person).
[0092] Communication interface 44 is connected to network 54. Communication interfaces 44 and 26 are responsible for the exchange of various information between processor 46 and processor 28 via network 54. The exchange of various information between processor 46 and processor 28 using communication interfaces 44 and 26 is performed in a secure manner.
[0093] Figure 4 shows an example of the main functions of the data processing device 12 and the smart glasses 214. As shown in Figure 4, the data processing device 12 performs specific processing by the processor 28. The storage 32 stores the specific processing program 56.
[0094] The processor 28 reads a 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 acting as a specific processing unit 290 according to the specific processing program 56 executed on the RAM 30.
[0095] Storage 32 stores the data generation model 58 and the emotion identification model 59. The data generation model 58 and the emotion identification model 59 are used by the identification processing unit 290. The identification processing unit 290 can estimate the user's emotions using the emotion identification model 59 and perform identification processing using the user's emotions. The emotion estimation function (emotion identification function) using the emotion identification model 59 performs various estimations and predictions regarding the user's emotions, including but not limited to these examples. Furthermore, emotion estimation and prediction also include, for example, emotion analysis.
[0096] In the smart glasses 214, specific processing is performed by the processor 46. The storage 50 stores a specific processing program 60. The processor 46 reads the specific processing program 60 from the storage 50 and executes the read specific processing program 60 on the RAM 48. The specific processing is realized by the processor 46 acting as a control unit 46A according to the specific processing program 60 executed on the RAM 48. The smart glasses 214 also have a data generation model 58 and an emotion identification model 59, similar to the data generation model and emotion identification model 59, and can perform processing similar to that of the specific processing unit 290 using these models.
[0097] Furthermore, other devices besides the data processing device 12 may also have the data generation model 58. For example, a server device may have the data generation model 58. In this case, the data processing device 12 obtains processing results (such as prediction results) using the data generation model 58 by communicating with the server device that has the data generation model 58. Also, the data processing device 12 may be a server device or a terminal device owned by the user (for example, a mobile phone, robot, home appliance, etc.).
[0098] The specific processing unit 290 transmits the result of the specific processing to the smart glasses 214. In the smart glasses 214, the control unit 46A causes the speaker 240 to output the result of the specific processing. The microphone 238 acquires audio indicating user input for the result of the specific processing. The control unit 46A transmits the audio data indicating user input acquired by the microphone 238 to the data processing unit 12. In the data processing unit 12, the specific processing unit 290 acquires the audio data.
[0099] The data generation model 58 is a so-called generative AI. An example of a data generation model 58 is a generative AI such as ChatGPT. The data generation model 58 is obtained by performing deep learning on a neural network. The data generation model 58 is input with prompts containing instructions, and inference data such as audio data representing speech, text data representing text, and image data representing images (e.g., still image data or video data). The data generation model 58 infers from the input inference data according to the instructions indicated by the prompts, and outputs the inference result in one or more data formats such as audio data, text data, and image data. The data generation model 58 includes, for example, text generation AI, image generation AI, and multimodal generation AI. Here, inference refers to, for example, analysis, classification, prediction, and / or summarization. The specific processing unit 290 performs the specific processing described above using the data generation model 58. The data generation model 58 may be a fine-tuned model that outputs inference results from prompts that do not contain instructions, in which case the data generation model 58 can output inference results from prompts that do not contain instructions. In the data processing device 12, etc., there are multiple types of data generation models 58, and the data generation model 58 includes AI other than generative AI. AI other than generative AI includes, for example, linear regression, logistic regression, decision trees, random forests, support vector machines (SVM), k-means clustering, convolutional neural networks (CNN), recurrent neural networks (RNN), generative adversarial networks (GAN), or naive Bayes, and can perform various processes, but is not limited to these examples. Also, the AI may be an AI agent. Furthermore, when the processing of each part described above is performed by the AI, the processing may be performed by the AI in part or in whole, but is not limited to this example. Also, processing performed by an AI including a generative AI may be replaced by rule-based processing, and rule-based processing may be replaced by processing performed by an AI including a generative AI.
[0100] The data processing system 210 according to the second embodiment performs the same processing as the data processing system 10 according to the first embodiment. The processing by the data processing system 210 is performed by the specific processing unit 290 of the data processing device 12 or the control unit 46A of the smart glasses 214, but it may also be performed by the specific processing unit 290 of the data processing device 12 and the control unit 46A of the smart glasses 214. In addition, the specific processing unit 290 of the data processing device 12 acquires or collects information necessary for processing from the smart glasses 214 or an external device, and the smart glasses 214 acquires or collects information necessary for processing from the data processing device 12 or an external device.
[0101] Each of the multiple elements described above, including the selection unit, preparation unit, generation unit, and patch creation unit, is implemented, for example, in at least one of the smart glasses 214 and the data processing device 12. For example, the selection unit is implemented by the control unit 46A of the smart glasses 214 or the specific processing unit 290 of the data processing device 12. The preparation unit is implemented, for example, by the control unit 46A of the smart glasses 214 or the specific processing unit 290 of the data processing device 12. The generation unit is implemented, for example, by the control unit 46A of the smart glasses 214 or the specific processing unit 290 of the data processing device 12. The patch creation unit is implemented, for example, by the control unit 46A of the smart glasses 214 or the specific processing unit 290 of the data processing device 12. The correspondence between each unit and the device or control unit is not limited to the examples described above, and various modifications are possible.
[0102] [Third Embodiment] Figure 5 shows an example of the configuration of the data processing system 310 according to the third embodiment.
[0103] As shown in Figure 5, the data processing system 310 includes a data processing device 12 and a headset terminal 314. An example of the data processing device 12 is a server.
[0104] The data processing device 12 comprises a computer 22, a database 24, and a communication interface 26. The computer 22 comprises a processor 28, RAM 30, and storage 32. The processor 28, RAM 30, and storage 32 are connected to a bus 34. The database 24 and the communication interface 26 are also connected to the bus 34. The communication interface 26 is connected to a network 54. An example of the network 54 is a WAN and / or LAN.
[0105] The headset terminal 314 includes a computer 36, a microphone 238, a speaker 240, a camera 42, a communication interface 44, and a display 343. The computer 36 includes a processor 46, RAM 48, and storage 50. The processor 46, RAM 48, and storage 50 are connected to a bus 52. The microphone 238, speaker 240, camera 42, and display 343 are also connected to the bus 52.
[0106] The microphone 238 receives voice commands and other instructions from the user by receiving voice signals. The microphone 238 captures the voice signals from the user, converts the captured voice into audio data, and outputs it to the processor 46. The speaker 240 outputs audio according to the instructions from the processor 46.
[0107] Camera 42 is a small digital camera equipped with an optical system including a lens, aperture, and shutter, and an image sensor such as a CMOS (Complementary Metal-Oxide-Semiconductor) image sensor or a CCD (Charge Coupled Device) image sensor, which captures images of the area around the user (for example, an imaging range defined by a field of view equivalent to the field of vision of a typical healthy person).
[0108] Communication interface 44 is connected to network 54. Communication interfaces 44 and 26 are responsible for the exchange of various information between processor 46 and processor 28 via network 54. The exchange of various information between processor 46 and processor 28 using communication interfaces 44 and 26 is performed in a secure manner.
[0109] Figure 6 shows an example of the main functions of the data processing device 12 and the headset terminal 314. As shown in Figure 6, the data processing device 12 performs specific processing using the processor 28. The storage 32 stores the specific processing program 56.
[0110] The processor 28 reads a 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 acting as a specific processing unit 290 according to the specific processing program 56 executed on the RAM 30.
[0111] Storage 32 stores the data generation model 58 and the emotion identification model 59. The data generation model 58 and the emotion identification model 59 are used by the identification processing unit 290. The identification processing unit 290 can estimate the user's emotions using the emotion identification model 59 and perform identification processing using the user's emotions. The emotion estimation function (emotion identification function) using the emotion identification model 59 performs various estimations and predictions regarding the user's emotions, including but not limited to these examples. Furthermore, emotion estimation and prediction also include, for example, emotion analysis.
[0112] In the headset terminal 314, specific processing is performed by the processor 46. The storage 50 stores a specific program 60. The processor 46 reads the specific program 60 from the storage 50 and executes the read specific program 60 on the RAM 48. The specific processing is realized by the processor 46 acting as a control unit 46A according to the specific program 60 executed on the RAM 48. The headset terminal 314 also has a data generation model 58 and an emotion identification model 59, similar to the data generation model and emotion identification model 59, and can perform processing similar to that of the specific processing unit 290 using these models.
[0113] Furthermore, other devices besides the data processing device 12 may also have the data generation model 58. For example, a server device may have the data generation model 58. In this case, the data processing device 12 obtains processing results (such as prediction results) using the data generation model 58 by communicating with the server device that has the data generation model 58. Also, the data processing device 12 may be a server device or a terminal device owned by the user (for example, a mobile phone, robot, home appliance, etc.).
[0114] The specific processing unit 290 transmits the result of the specific processing to the headset terminal 314. In the headset terminal 314, the control unit 46A causes the speaker 240 and display 343 to output the result of the specific processing. The microphone 238 acquires audio indicating user input for the result of the specific processing. The control unit 46A transmits the audio data indicating user input acquired by the microphone 238 to the data processing unit 12. In the data processing unit 12, the specific processing unit 290 acquires the audio data.
[0115] The data generation model 58 is a so-called generative AI. An example of a data generation model 58 is a generative AI such as ChatGPT. The data generation model 58 is obtained by performing deep learning on a neural network. The data generation model 58 is input with prompts containing instructions, and inference data such as audio data representing speech, text data representing text, and image data representing images (e.g., still image data or video data). The data generation model 58 infers from the input inference data according to the instructions indicated by the prompts, and outputs the inference result in one or more data formats such as audio data, text data, and image data. The data generation model 58 includes, for example, text generation AI, image generation AI, and multimodal generation AI. Here, inference refers to, for example, analysis, classification, prediction, and / or summarization. The specific processing unit 290 performs the specific processing described above using the data generation model 58. The data generation model 58 may be a fine-tuned model that outputs inference results from prompts that do not contain instructions, in which case the data generation model 58 can output inference results from prompts that do not contain instructions. In the data processing device 12, etc., there are multiple types of data generation models 58, and the data generation model 58 includes AI other than generative AI. AI other than generative AI includes, for example, linear regression, logistic regression, decision trees, random forests, support vector machines (SVM), k-means clustering, convolutional neural networks (CNN), recurrent neural networks (RNN), generative adversarial networks (GAN), or naive Bayes, and can perform various processes, but is not limited to these examples. Also, the AI may be an AI agent. Furthermore, when the processing of each part described above is performed by the AI, the processing may be performed by the AI in part or in whole, but is not limited to this example. Also, processing performed by an AI including a generative AI may be replaced by rule-based processing, and rule-based processing may be replaced by processing performed by an AI including a generative AI.
[0116] The data processing system 310 according to the third embodiment performs the same processing as the data processing system 10 according to the first embodiment. The processing by the data processing system 310 is performed by the specific processing unit 290 of the data processing device 12 or the control unit 46A of the headset terminal 314, but may also be performed by the specific processing unit 290 of the data processing device 12 and the control unit 46A of the headset terminal 314. In addition, the specific processing unit 290 of the data processing device 12 acquires or collects information necessary for processing from the headset terminal 314 or an external device, and the headset terminal 314 acquires or collects information necessary for processing from the data processing device 12 or an external device.
[0117] Each of the multiple elements described above, including the selection unit, preparation unit, generation unit, and patch creation unit, is implemented in at least one of the headset terminal 314 and the data processing unit 12. For example, the selection unit is implemented by the control unit 46A of the headset terminal 314 or the specific processing unit 290 of the data processing unit 12. The preparation unit is implemented by the control unit 46A of the headset terminal 314 or the specific processing unit 290 of the data processing unit 12. The generation unit is implemented by the control unit 46A of the headset terminal 314 or the specific processing unit 290 of the data processing unit 12. The patch creation unit is implemented by the control unit 46A of the headset terminal 314 or the specific processing unit 290 of the data processing unit 12. The correspondence between each unit and the device or control unit is not limited to the examples described above, and various modifications are possible.
[0118] [Fourth Embodiment] Figure 7 shows an example of the configuration of the data processing system 410 according to the fourth embodiment.
[0119] As shown in Figure 7, the data processing system 410 includes a data processing device 12 and a robot 414. An example of the data processing device 12 is a server.
[0120] The data processing device 12 comprises a computer 22, a database 24, and a communication interface 26. The computer 22 comprises a processor 28, RAM 30, and storage 32. The processor 28, RAM 30, and storage 32 are connected to a bus 34. The database 24 and the communication interface 26 are also connected to the bus 34. The communication interface 26 is connected to a network 54. An example of the network 54 is a WAN and / or LAN.
[0121] The robot 414 includes a computer 36, a microphone 238, a speaker 240, a camera 42, a communication interface 44, and a controlled object 443. The computer 36 includes a processor 46, RAM 48, and storage 50. The processor 46, RAM 48, and storage 50 are connected to a bus 52. The microphone 238, speaker 240, camera 42, and controlled object 443 are also connected to the bus 52.
[0122] The microphone 238 receives voice commands and other instructions from the user by receiving voice signals. The microphone 238 captures the voice signals from the user, converts the captured voice into audio data, and outputs it to the processor 46. The speaker 240 outputs audio according to the instructions from the processor 46.
[0123] Camera 42 is a small digital camera equipped with an optical system including a lens, aperture, and shutter, and an image sensor such as a CMOS image sensor or CCD image sensor, which captures images of the area around the user (for example, an imaging range defined by a field of view equivalent to the field of vision of a typical healthy person).
[0124] Communication interface 44 is connected to network 54. Communication interfaces 44 and 26 are responsible for the exchange of various information between processor 46 and processor 28 via network 54. The exchange of various information between processor 46 and processor 28 using communication interfaces 44 and 26 is performed in a secure manner.
[0125] The controlled object 443 includes a display device, LEDs in the eyes, and motors that drive the arms, hands, and feet. The posture and gestures of the robot 414 are controlled by controlling the motors of the arms, hands, and feet. Some of the robot 414's emotions can be expressed by controlling these motors. The robot 414's facial expressions can also be expressed by controlling the illumination state of the LEDs in its eyes.
[0126] Figure 8 shows an example of the main functions of the data processing device 12 and the robot 414. As shown in Figure 8, the data processing device 12 performs specific processing using the processor 28. The storage 32 stores the specific processing program 56.
[0127] The processor 28 reads a 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 acting as a specific processing unit 290 according to the specific processing program 56 executed on the RAM 30.
[0128] Storage 32 stores the data generation model 58 and the emotion identification model 59. The data generation model 58 and the emotion identification model 59 are used by the identification processing unit 290. The identification processing unit 290 can estimate the user's emotions using the emotion identification model 59 and perform identification processing using the user's emotions. The emotion estimation function (emotion identification function) using the emotion identification model 59 performs various estimations and predictions regarding the user's emotions, including but not limited to these examples. Furthermore, emotion estimation and prediction also include, for example, emotion analysis.
[0129] In robot 414, specific processing is performed by processor 46. A specific program 60 is stored in storage 50. Processor 46 reads the specific program 60 from storage 50 and executes it on RAM 48. The specific processing is achieved by processor 46 acting as a control unit 46A according to the specific program 60 executed on RAM 48. Robot 414 also has data generation model 58 and emotion identification model 59, similar to those of the robot, and can perform processing similar to that of the specific processing unit 290 using these models.
[0130] Furthermore, other devices besides the data processing device 12 may also have the data generation model 58. For example, a server device may have the data generation model 58. In this case, the data processing device 12 obtains processing results (such as prediction results) using the data generation model 58 by communicating with the server device that has the data generation model 58. Also, the data processing device 12 may be a server device or a terminal device owned by the user (for example, a mobile phone, robot, home appliance, etc.).
[0131] 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 controlled object 443 to output the result of the specific processing. The microphone 238 acquires audio indicating user input for the result of the specific processing. The control unit 46A transmits the audio data indicating user input acquired by the microphone 238 to the data processing unit 12. In the data processing unit 12, the specific processing unit 290 acquires the audio data.
[0132] The data generation model 58 is a so-called generative AI. An example of a data generation model 58 is a generative AI such as ChatGPT. The data generation model 58 is obtained by performing deep learning on a neural network. The data generation model 58 is input with prompts containing instructions, and inference data such as audio data representing speech, text data representing text, and image data representing images (e.g., still image data or video data). The data generation model 58 infers from the input inference data according to the instructions indicated by the prompts, and outputs the inference result in one or more data formats such as audio data, text data, and image data. The data generation model 58 includes, for example, text generation AI, image generation AI, and multimodal generation AI. Here, inference refers to, for example, analysis, classification, prediction, and / or summarization. The specific processing unit 290 performs the specific processing described above using the data generation model 58. The data generation model 58 may be a fine-tuned model that outputs inference results from prompts that do not contain instructions, in which case the data generation model 58 can output inference results from prompts that do not contain instructions. In the data processing device 12, etc., there are multiple types of data generation models 58, and the data generation model 58 includes AI other than generative AI. AI other than generative AI includes, for example, linear regression, logistic regression, decision trees, random forests, support vector machines (SVM), k-means clustering, convolutional neural networks (CNN), recurrent neural networks (RNN), generative adversarial networks (GAN), or naive Bayes, and can perform various processes, but is not limited to these examples. Also, the AI may be an AI agent. Furthermore, when the processing of each part described above is performed by the AI, the processing may be performed by the AI in part or in whole, but is not limited to this example. Also, processing performed by an AI including a generative AI may be replaced by rule-based processing, and rule-based processing may be replaced by processing performed by an AI including a generative AI.
[0133] The data processing system 410 according to the fourth embodiment performs the same processing as the data processing system 10 according to the first embodiment. The processing by the data processing system 410 is performed by the specific processing unit 290 of the data processing device 12 or the control unit 46A of the robot 414, but it may also be performed by the specific processing unit 290 of the data processing device 12 and the control unit 46A of the robot 414. In addition, the specific processing unit 290 of the data processing device 12 acquires or collects information necessary for processing from the robot 414 or an external device, and the robot 414 acquires or collects information necessary for processing from the data processing device 12 or an external device.
[0134] Each of the multiple elements described above, including the selection unit, preparation unit, generation unit, and patch creation unit, is implemented, for example, by at least one of the robot 414 and the data processing unit 12. For example, the selection unit is implemented by the control unit 46A of the robot 414 or the specific processing unit 290 of the data processing unit 12. The preparation unit is implemented, for example, by the control unit 46A of the robot 414 or the specific processing unit 290 of the data processing unit 12. The generation unit is implemented, for example, by the control unit 46A of the robot 414 or the specific processing unit 290 of the data processing unit 12. The patch creation unit is implemented, for example, by the control unit 46A of the robot 414 or the specific processing unit 290 of the data processing unit 12. The correspondence between each unit and the device or control unit is not limited to the example described above, and various modifications are possible.
[0135] Furthermore, the emotion identification model 59, acting 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 a specific mapping, which is an emotion map (see Figure 9). Similarly, the emotion identification model 59 may also determine the robot's emotion, and the identification processing unit 290 may perform identification processing using the robot's emotion.
[0136] Figure 9 shows the emotion map 400, in which multiple emotions are mapped. In the emotion map 400, emotions are arranged in concentric circles radiating from the center. The closer to the center of the concentric circles, the more primitive the emotions are located. Further out of the concentric circles, emotions representing states and actions arising from mental states are located. Emotion is a concept that includes feelings and mental states. On the left side of the concentric circles, emotions that are generally generated from reactions occurring in the brain are located. On the right side of the concentric circles, emotions that are generally induced by situational judgment are located. Above and below the concentric circles, emotions that are generally generated from reactions occurring in the brain and induced by situational judgment are located. In addition, the emotion of "pleasure" is located on the upper side of the concentric circles, and the emotion of "displeasure" is located on the lower side. Thus, in the emotion map 400, multiple emotions are mapped based on the structure in which emotions arise, and emotions that are likely to occur simultaneously are mapped close together.
[0137] These emotions are distributed at the 3 o'clock position on the Emotion Map 400, and usually fluctuate between feelings of security and anxiety. In the right half of the Emotion Map 400, situational awareness takes precedence over internal feelings, resulting in a calm impression.
[0138] The inside of the Emotion Map 400 represents inner thoughts, while the outside represents actions. Therefore, the further you go from the outside of the Emotion Map 400, the more visible (expressed in actions) your emotions become.
[0139] Here, human emotions are based on various balances, such as posture and blood sugar levels. When these balances deviate from the ideal, it results in discomfort, and when they approach the ideal, it results in pleasure. Similarly, in robots, cars, and motorcycles, emotions can be created based on various balances, such as posture and battery level. When these balances deviate from the ideal, it results in discomfort, and when they approach the ideal, it results in pleasure. The emotion map can be generated based, for example, on Dr. Mitsuyoshi's emotion map (Research on a system for analyzing brain physiological signals of speech emotion recognition and emotion, Tokushima University, doctoral dissertation: https: / / ci.nii.ac.jp / naid / 500000375379). The left half of the emotion map contains emotions belonging to a region called "response," where sensation is dominant. The right half of the emotion map contains emotions belonging to a region called "situation," where situational awareness is dominant.
[0140] The emotion map defines two emotions that promote learning. One is the emotion around the middle of the negative "repentance" and "reflection" on the situation side. In other words, it is 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 the emotion around the positive "desire" on the reaction side. In other words, it is when the robot has positive feelings such as "I want more" or "I want to know more."
[0141] The emotion identification model 59 inputs user input into a pre-trained neural network, obtains emotion values representing each emotion shown in the emotion map 400, and determines the user's emotion. This neural network is pre-trained based on multiple training data sets, which are combinations of user input and emotion values representing each emotion shown in the emotion map 400. Furthermore, this neural network is trained so that emotions located close together have similar values, as shown in the emotion map 900 in Figure 10. Figure 10 shows an example where multiple emotions such as "reassured," "calm," and "confident" have similar emotion values.
[0142] In the above embodiment, an example was given in which a specific process is performed by a single computer 22. However, the technology of this disclosure is not limited thereto, and a distributed processing method for the specific process may be used, which includes computer 22 and multiple other computers.
[0143] In the above embodiment, an example was given in which the specific processing program 56 is stored in the storage 32, but the technology of this disclosure is not limited thereto. For example, the specific processing program 56 may be stored in a portable, computer-readable, non-temporary storage medium such as a USB (Universal Serial Bus) memory. The specific processing program 56 stored in the non-temporary storage medium is installed in the computer 22 of the data processing device 12. The processor 28 executes specific processing according to the specific processing program 56.
[0144] 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.
[0145] Furthermore, it is not necessary to store the entirety 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 the entirety of the specific processing program 56 in the storage 32; it is acceptable to store only a portion of the specific processing program 56.
[0146] The following types of processors can be used as hardware resources to perform specific processing. Examples of processors include a CPU, a general-purpose processor that functions as a hardware resource to perform specific processing by executing software, i.e., a program. Other examples of processors include dedicated electrical circuits, such as FPGAs (Field-Programmable Gate Arrays), PLDs (Programmable Logic Devices), or ASICs (Application Specific Integrated Circuits), which have circuit configurations specifically designed to perform specific processing. All of these processors have built-in or connected memory, and all of them perform specific processing by using memory.
[0147] The hardware resource that performs a specific process may consist of one of these various processors, or it may consist of 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). Alternatively, the hardware resource that performs a specific process may consist of a single processor.
[0148] Examples of configurations using a single processor include, firstly, a configuration in which one or more CPUs and software are combined to form a single processor, and this processor functions as a hardware resource that performs a specific process. Secondly, there is a configuration using a processor that realizes the functions of the entire system, including multiple hardware resources that perform a specific process, on a single IC chip, as exemplified by SoCs (System-on-a-chip). In this way, a specific process is realized using one or more of the above types of processors as hardware resources.
[0149] Furthermore, the hardware structure of these various processors can more specifically utilize electrical circuits that combine circuit elements such as semiconductor devices. Also, the specific processing described above is merely an example. Therefore, it goes without saying that unnecessary steps can be deleted, new steps added, or the processing order rearranged, as long as it does not deviate from the main purpose.
[0150] Furthermore, although the above-described examples were divided into four embodiments, some or all of these embodiments may be combined. Also, the smart device 14, smart glasses 214, headset terminal 314, and robot 414 are just examples, and they may be combined, or other devices may be used. Also, although the above-described examples were divided into two embodiments, Embodiment 1 and Embodiment 2, these may be combined.
[0151] The descriptions and illustrations presented above are detailed explanations of the technical aspects of this disclosure and are merely examples of the technical aspects. For example, the above descriptions of the structure, function, operation, and effect are examples of the structure, function, operation, and effect of the technical aspects of this disclosure. Therefore, it goes without saying that you may delete unnecessary parts, add new elements, or replace elements in the descriptions and illustrations presented above, as long as you do not deviate from the essence of the technical aspects of this disclosure. Furthermore, in order to avoid confusion and facilitate understanding of the technical aspects of this disclosure, explanations of common technical knowledge and other things that do not require special explanation to enable the implementation of the technical aspects of this disclosure have been omitted from the descriptions and illustrations presented above.
[0152] All documents, patent applications, and technical standards described herein are incorporated by reference to the same extent as if each individual document, patent application, and technical standard were specifically and individually noted to be incorporated by reference.
[0153] (Note 1) A selection unit that selects an appropriate programming language based on the user's existing skill set and development tasks, A preparation unit prepares a development environment based on the programming language selected by the selection unit, The generation unit interacts with the user to generate new code and modify existing code, The system includes a patch creation unit that creates a patch based on the code generated by the generation unit. A system characterized by the following features. (Note 2) The aforementioned selection unit is It estimates user sentiment and adjusts the programming language selection criteria based on the estimated user sentiment. The system described in Appendix 1, characterized by the features described herein. (Note 3) The aforementioned selection unit is During the selection process, we analyze the user's past project history to choose the most suitable programming language. The system described in Appendix 1, characterized by the features described herein. (Note 4) The aforementioned selection unit is During the selection process, the programming language is chosen based on the characteristics of the user's current project. The system described in Appendix 1, characterized by the features described herein. (Note 5) The aforementioned preparation unit is It estimates user sentiment and adjusts how the development environment is prepared based on the estimated user sentiment. The system described in Appendix 1, characterized by the features described herein. (Note 6) The aforementioned preparation unit is During setup, the system references the user's past development environment configuration history to prepare the optimal development environment. The system described in Appendix 1, characterized by the features described herein. (Note 7) The aforementioned preparation unit is During setup, customize the development environment based on the characteristics of the user's current project. The system described in Appendix 1, characterized by the features described herein. (Note 8) The generating unit is It estimates user sentiment and adjusts how new code is generated and existing code is modified based on the estimated user sentiment. The system described in Appendix 1, characterized by the features described herein. (Note 9) The generating unit is During generation, the system references the user's past coding history to generate the optimal code. The system described in Appendix 1, characterized by the features described herein. (Note 10) The generating unit is During generation, the code is customized based on the characteristics of the user's current project. The system described in Appendix 1, characterized by the features described herein. (Note 11) The aforementioned patch creation unit, We estimate user sentiment and adjust the patch creation method based on the estimated user sentiment. The system described in Appendix 1, characterized by the features described herein. (Note 12) The aforementioned patch creation unit, When creating a patch, the system references the user's past patch creation history to create the most suitable patch. The system described in Appendix 1, characterized by the features described herein. (Note 13) The aforementioned patch creation unit, When creating a patch, customize the patch based on the characteristics of the user's current project. The system described in Appendix 1, characterized by the features described herein. [Explanation of Symbols]
[0154] 10, 210, 310, 410 Data Processing Systems 12 Data Processing Devices 14 Smart Devices 214 Smart Glasses 314 Headset-type terminal 414 Robots
Claims
1. A selection unit that selects an appropriate programming language based on the user's existing skill set and development tasks, A preparation unit prepares a development environment based on the programming language selected by the selection unit, The generation unit interacts with the user to generate new code and modify existing code, The system includes a patch creation unit that creates a patch based on the code generated by the generation unit. A system characterized by the following features.
2. The aforementioned selection unit is It estimates user sentiment and adjusts the programming language selection criteria based on the estimated user sentiment. The system according to feature 1.
3. The aforementioned selection unit is During the selection process, we analyze the user's past project history to choose the most suitable programming language. The system according to feature 1.
4. The aforementioned selection unit is During the selection process, the programming language is chosen based on the characteristics of the user's current project. The system according to feature 1.
5. The aforementioned preparation unit is It estimates user sentiment and adjusts how the development environment is prepared based on the estimated user sentiment. The system according to feature 1.
6. The aforementioned preparation unit is During setup, the system references the user's past development environment configuration history to prepare the optimal development environment. The system according to feature 1.
7. The aforementioned preparation unit is During setup, customize the development environment based on the characteristics of the user's current project. The system according to feature 1.
8. The generating unit is It estimates user sentiment and adjusts how new code is generated and existing code is modified based on the estimated user sentiment. The system according to feature 1.
9. The generating unit is During generation, the system references the user's past coding history to generate the optimal code. The system according to feature 1.