System
The system addresses the challenge of generating appropriate source code by using a question and code generation framework with emotion estimation, optimizing code quality and user interaction for efficient development.
Patent Information
- Application Number
- JP2024120003
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-07-25
- Publication Date
- 2026-02-05
AI Technical Summary
Conventional systems struggle to generate appropriate source code for programming questions, making efficient development difficult.
A system comprising a question receiving unit, a question analysis unit, a condition setting unit, and a code generation unit, which analyzes user questions, sets conditions, and generates optimized source code based on user inputs, utilizing natural language processing and emotion estimation to enhance user interaction and code quality.
Enables efficient generation of high-quality source code, supports multi-platform compatibility, and improves user experience through emotion-aware interfaces, reducing development time and enhancing code performance.
Smart Images

Figure 2026018675000001_ABST
Abstract
Description
[Technical Field]
[0001] The technology of the present disclosure relates to a system. [Background technology]
[0002] Patent document 1 discloses a persona chatbot control method performed by at least one processor, the method including the steps of receiving a user utterance, adding the user utterance to a prompt including an instruction sentence related to a description of the chatbot character, encoding the prompt, and inputting the encoded prompt into a language model to generate a chatbot utterance in response to the user utterance. [Prior art documents] [Patent documents]
[0003] [Patent Document 1] Japanese Patent Publication No. 2022-180282 Summary of the Invention [Problem to be solved by the invention]
[0004] With conventional technology, it was difficult to generate appropriate source code for programming questions, making efficient development difficult.
[0005] The system according to the embodiment aims to generate appropriate source code for programming questions. [Means for solving the problem]
[0006] The system according to the embodiment includes a question receiving unit, a question analysis unit, a condition setting unit, and a code generation unit. The question receiving unit receives programming-related questions from users. The question analysis unit analyzes the questions received by the question receiving unit. The condition setting unit sets conditions for the questions analyzed by the question analysis unit. The code generation unit generates source code based on the conditions set by the condition setting unit. [Effects of the Invention]
[0007] The system according to the embodiment can generate appropriate source code for programming questions. [Brief explanation of the drawings]
[0008] [Figure 1] 1 is a conceptual diagram showing an example of the configuration of a data processing system according to a first embodiment. [Figure 2] 1 is a conceptual diagram showing an example of main functions of a data processing device and a smart device according to a first embodiment. [Figure 3] FIG. 10 is a conceptual diagram showing an example of the configuration of a data processing system according to a second embodiment. [Figure 4] FIG. 10 is a conceptual diagram showing an example of main functions of a data processing device and smart glasses according to a second embodiment. [Figure 5] FIG. 10 is a conceptual diagram showing an example of the configuration of a data processing system according to a third embodiment. [Figure 6] FIG. 11 is a conceptual diagram showing an example of main functions of a data processing device and a headset-type terminal according to a third embodiment. [Figure 7] FIG. 10 is a conceptual diagram showing an example of the configuration of a data processing system according to a fourth embodiment. [Figure 8] FIG. 10 is a conceptual diagram showing an example of main functions of a data processing device and a robot according to a fourth embodiment. [Figure 9] 1 shows an emotion map onto which multiple emotions are mapped. [Figure 10] 1 shows an emotion map onto which multiple emotions are mapped. DETAILED DESCRIPTION OF THE INVENTION
[0009] An example of an embodiment of a system according to the technology of the present disclosure will be described below with reference to the accompanying drawings.
[0010] First, the terms used in the following description will be explained.
[0011] In the following embodiments, a coded processor (hereinafter simply referred to as a "processor") may be a single arithmetic device or a combination of multiple arithmetic devices. Furthermore, the processor may be a single type of arithmetic device or a combination of multiple types of arithmetic devices. Examples of arithmetic devices include a CPU (Central Processing Unit), a GPU (Graphics Processing Unit), a GPGPU (General-Purpose computing on Graphics Processing Units), an APU (Accelerated Processing Unit), or a TPU (Tensor Processing Unit).
[0012] In the following embodiments, a coded RAM (Random Access Memory) is a memory in which information is temporarily stored and is used as a working memory by a processor.
[0013] In the following embodiments, the coded storage is one or more non-volatile storage devices that store various programs, various parameters, etc. Examples of non-volatile storage devices include flash memory (SSD (Solid State Drive)), magnetic disks (e.g., hard disks), and magnetic tapes.
[0014] In the following embodiments, a communication I / F (Interface) with a symbol is an interface including a communication processor, an antenna, etc. The communication I / F controls communication between multiple computers. Examples of communication standards applied to the communication I / F include wireless communication standards including 5G (5th Generation Mobile Communication System), Wi-Fi (registered trademark), and Bluetooth (registered trademark).
[0015] In the following embodiments, "A and / or B" is synonymous with "at least one of A and B." In other words, "A and / or B" means that it may be only A, only B, or a combination of A and B. Furthermore, in this specification, the same concept as "A and / or B" is also applied when three or more things are expressed connected by "and / or."
[0016] [First embodiment] FIG. 1 shows an example of the configuration of a data processing system 10 according to the first embodiment.
[0017] 1, a data processing system 10 includes a data processing device 12 and a smart device 14. An example of the data processing device 12 is a server.
[0018] The data processing device 12 includes a computer 22, a database 24, and a communication I / F 26. The computer 22 includes a processor 28, a RAM 30, and a storage 32. The processor 28, RAM 30, and storage 32 are connected to a bus 34. The database 24 and the communication I / F 26 are also connected to the bus 34. The communication I / F 26 is connected to a network 54. Examples of the network 54 include a WAN (Wide Area Network) and / or a LAN (Local Area Network).
[0019] The smart device 14 includes a computer 36, a reception device 38, an output device 40, a camera 42, and a communication I / F 44. The computer 36 includes a processor 46, a RAM 48, and a storage 50. The processor 46, the RAM 48, and the storage 50 are connected to a bus 52. The reception device 38, the output device 40, and the camera 42 are also connected to the bus 52.
[0020] The reception device 38 includes a touch panel 38A and a microphone 38B, and receives user input. The touch panel 38A detects contact with a pointer (for example, a pen or a finger) to receive user input by the touch of the pointer. The microphone 38B detects the user's voice to receive user input by voice. The control unit 46A transmits data indicating the user input received by the touch panel 38A and the microphone 38B to the data processing device 12. In the data processing device 12, the specific processing unit 290 (see FIG. 2) acquires the data indicating the user input.
[0021] Output device 40 includes a display 40A and a speaker 40B, and presents data to a user by outputting the data in a form of expression that the user can perceive (e.g., audio and / or text). Display 40A displays visible information such as text and images in accordance with instructions from processor 46. Speaker 40B outputs audio in accordance with instructions from processor 46. Camera 42 is a compact digital camera equipped with an optical system including a lens, aperture, and shutter, and an imaging element such as a CMOS (Complementary Metal-Oxide-Semiconductor) image sensor or a CCD (Charge Coupled Device) image sensor.
[0022] The communication I / F 44 is connected to a network 54. The communication I / Fs 44 and 26 control the exchange of various information between the processor 46 and the processor 28 via the network 54.
[0023] FIG. 2 shows an example of the main functions of the data processing device 12 and the smart device 14.
[0024] 2, in the data processing device 12, a specific process is performed by the processor 28. A specific processing program 56 is stored in the storage 32. The specific processing program 56 is an example of a "program" according to the technology of the present disclosure. The processor 28 reads the specific processing program 56 from the storage 32 and executes the read specific processing program 56 on the RAM 30. The specific process is realized by the processor 28 operating as a specific processing unit 290 in accordance with the specific processing program 56 executed on the RAM 30.
[0025] The storage 32 stores a data generation model 58 and an emotion identification model 59. The data generation model 58 and the emotion identification model 59 are used by the identification processing unit 290. The identification processing unit 290 can estimate the user's emotion using the emotion identification model 59 and perform identification processing using the user's emotion.
[0026] In the smart device 14, the specific processing is performed by the processor 46. The storage 50 stores a specific processing program 60. The specific processing program 60 is used together with the specific processing program 56 by the data processing system 10. The processor 46 reads the specific processing program 60 from the storage 50 and executes the read specific processing program 60 on the RAM 48. The specific processing is realized by the processor 46 operating as the control unit 46A in accordance with the specific processing program 60 executed on the RAM 48. Note that the smart device 14 may have a data generation model and an emotion identification model similar to the data generation model 58 and the emotion identification model 59.
[0027] Note that a device other than the data processing device 12 may have the data generation model 58. For example, a server device (e.g., a generation server) may have the data generation model 58. In this case, the data processing device 12 obtains a processing result (prediction result, etc.) using the data generation model 58 by communicating with the server device having the data generation model 58. Furthermore, the data processing device 12 may be a server device, or may be a terminal device owned by a user (e.g., a mobile phone, a robot, a home appliance, etc.). Next, an example of processing by the data processing system 10 according to the first embodiment will be described.
[0028] (Example 1) The programming support system according to an embodiment of the present invention is a system that asks questions about programming based on conditions set by the user, and a generation AI provides appropriate source code. This allows the user to efficiently carry out development work even if they have no programming knowledge.
[0029] A programming support system according to an embodiment includes a question receiving unit, a question analysis unit, a condition setting unit, and a code generation unit. The question receiving unit receives programming questions from a user. For example, the user may input, "How do I sort the elements of a list in Python?" The question receiving unit also supports voice input and can convert questions into text using voice recognition technology. For example, the user may input questions using a microphone. The question analysis unit analyzes the questions received by the question receiving unit. For example, it understands the intent of the question using natural language processing technology. The question analysis unit can also automatically refer to relevant programming documentation and references. For example, if the question is "How do I sort a list in Python?", the official documentation is referenced. The condition setting unit sets conditions for the questions analyzed by the question analysis unit. For example, the user may add a condition such as, "How do I sort the elements of a list in Python, but in descending order?" The condition setting unit can also automatically suggest conditions previously set by the user to promote reuse. For example, the condition setting unit re-suggests the condition "Sort a list in Python in descending order" previously set by the user. The code generation unit generates source code based on the conditions set by the condition setting unit. For example, the generation AI generates code to sort a list in descending order in Python. The code generation unit can also automatically optimize the generated code to improve performance. For example, the code generation unit optimizes Python code to improve execution speed. This allows the programming support system according to the embodiment to generate appropriate source code based on a user's question. For example, when a novice programmer implements a complex algorithm, the generation AI can provide appropriate code, thereby shortening development time and generating high-quality code.
[0030] The question accepting unit can refer to the user's past question history and automatically suggest similar questions. For example, when a user inputs a question, the question accepting unit builds a system that refers to the user's past question history and automatically suggests similar questions. For example, a user who previously asked "How to sort a list in Python" will be suggested a similar question. This allows for efficient questioning by referring to the user's past question history and automatically suggesting similar questions.
[0031] The question analysis unit can automatically refer to related programming documents or references to gain a deeper understanding of the intent of the question. For example, when analyzing a question, the question analysis unit automatically refers to related programming documents and references to build a system that can gain a deeper understanding of the intent of the question. For example, if the question is "How to sort a list in Python," the official documentation will be referenced. This allows for a more appropriate answer by automatically referring to related programming documents and references to gain a deeper understanding of the intent of the question.
[0032] The question receiving unit supports voice input and can convert the question into text using voice recognition technology. For example, the question receiving unit supports voice input when receiving a question and builds a system that converts the question into text using voice recognition technology. For example, the system allows a user to input a question using a microphone. This improves user convenience by supporting voice input and converting the question into text using voice recognition technology.
[0033] The question analysis unit can share the question analysis results with other users and obtain community-based feedback. The question analysis unit, for example, builds a system for sharing the question analysis results with other users and obtaining community-based feedback. For example, the question and its answer can be posted to a forum to collect opinions from other users. In this way, the question analysis results can be shared with other users and obtain community-based feedback, resulting in a better answer.
[0034] The condition setting unit can automatically suggest conditions previously set by the user, promoting reuse. For example, when setting conditions, the condition setting unit automatically suggests conditions previously set by the user, building a system that promotes reuse. For example, the condition "sort a list in descending order in Python" previously set by the user is re-proposed. This automatically suggests conditions previously set by the user, promoting reuse and enabling efficient condition setting.
[0035] The condition setting unit can also handle complex queries that combine multiple conditions. For example, when analyzing conditions, the condition setting unit builds a system that can handle complex queries that combine multiple conditions. For example, it analyzes the condition "sort a list in descending order and remove duplicates in Python." This makes it possible to handle complex queries that combine multiple conditions, thereby meeting a variety of user requests.
[0036] The condition setting unit allows conditions to be set using a visual interface, and conditions can be added by drag and drop. The condition setting unit, for example, builds a system that allows conditions to be set using a visual interface, and conditions to be added by drag and drop. For example, the user can drag and place conditions as blocks. This allows conditions to be set using a visual interface, and conditions to be added by drag and drop, improving user convenience.
[0037] The condition setting unit can refer to conditions set by other users and learn best practices. The condition setting unit, for example, builds a system that allows users to refer to conditions set by other users when setting conditions and learn best practices. For example, it displays a list of conditions set by other users. This allows users to refer to conditions set by other users and learn best practices, which is expected to improve their skills.
[0038] The code generation unit can automatically optimize the generated code to improve performance. For example, when generating source code, the code generation unit automatically optimizes the generated code to build a system that improves performance. For example, the code generation unit optimizes Python code to improve execution speed. This automatically optimizes the generated code to improve performance, enabling efficient development.
[0039] The code generation unit supports conversion into different programming languages and can achieve multi-platform compatibility. For example, when generating source code, the code generation unit supports conversion into different programming languages and builds a system that achieves multi-platform compatibility. For example, the code generation unit converts Python code into JavaScript. This supports conversion into different programming languages and achieves multi-platform compatibility, improving user convenience.
[0040] The code generation unit can refer to code generated by other users and select the most suitable code. For example, when generating source code, the code generation unit builds a system that refers to code generated by other users and selects the most suitable code. For example, it compares multiple codes for the same problem and selects the most suitable one. This allows for efficient development by referring to code generated by other users and selecting the most suitable code.
[0041] The code generation unit can automatically generate detailed comments for each part of the code when explaining the source code, thereby aiding in understanding. The code generation unit, for example, builds a system that automatically generates detailed comments for each part of the code when explaining the source code, thereby aiding in understanding. For example, explanatory comments are added to each line of Python code. This allows detailed comments to be automatically generated for each part of the code when explaining the source code, thereby aiding in understanding and improving the user's understanding.
[0042] The code generation unit can automatically link related documents or references when explaining source code. The code generation unit, for example, builds a system that automatically links related documents and references when explaining source code. For example, a link to official documentation is added to the explanation of Python code. This improves the user's understanding by automatically linking related documents and references when explaining source code.
[0043] The code generation unit can convert source code descriptions into visual notes or flowcharts to make them easier to understand visually. The code generation unit, for example, builds a system that converts source code descriptions into visual notes or flowcharts to make them easier to understand visually. For example, it automatically generates flowcharts for Python code. This improves the user's understanding by converting source code descriptions into visual notes or flowcharts to make them easier to understand visually.
[0044] The code generation unit can automatically translate source code descriptions into different languages to promote understanding from an international perspective. The code generation unit, for example, builds a system that automatically translates source code descriptions into different languages to promote understanding from an international perspective. For example, the code generation unit translates Python code descriptions from English to Japanese. This automatically translates source code descriptions into different languages to promote understanding from an international perspective, thereby improving user understanding.
[0045] The code generation unit can automate version management of the generated code and track the change history. For example, the code generation unit builds a system that automates version management of the generated code and tracks the change history in order to improve the efficiency of development work. For example, it automatically performs version management using Git. This automates version management of the generated code and tracks the change history, enabling efficient development.
[0046] The code generation unit can automatically generate test cases for the generated code and ensure its quality. For example, to improve the efficiency of development work, the code generation unit automatically generates test cases for the generated code and builds a system to ensure its quality. For example, it automatically generates unit tests for Python code. This enables efficient development by automatically generating test cases for the generated code and ensuring its quality.
[0047] The code generation unit can provide a platform that supports code sharing and collaboration among team members. For example, the code generation unit builds a system that provides a platform that supports code sharing and collaboration among team members in order to improve the efficiency of development work. For example, the code generation unit provides a cloud-based code sharing platform. This enables efficient development by supporting code sharing and collaboration among team members.
[0048] The code generation unit can automatically deploy the generated code and reflect it in the operational environment. For example, to improve the efficiency of development work, the code generation unit builds a system that automatically deploys the generated code and reflects it in the operational environment. For example, automatic deployment is performed using a CI / CD pipeline. This allows the generated code to be automatically deployed and reflected in the operational environment, enabling efficient development.
[0049] The system according to the embodiment is not limited to the above-described example, and various modifications are possible, for example, as follows.
[0050] The question accepting unit can automatically categorize questions as they are entered by the user. For example, if a user enters "How do I sort the elements of a list in Python?", the question accepting unit will categorize this question as "Data Manipulation." The question accepting unit can also suggest related categories as the user enters a question. For example, if a user enters "sort," categories such as "Data Manipulation" and "Algorithm" will be suggested. This allows the user to enter a more specific question, improving the accuracy of question analysis.
[0051] The question analyzer can automatically provide relevant sample code for a user's question. For example, if a user asks, "How do I sort the elements of a list in Python?", the question analyzer will provide the relevant sample code. The question analyzer can also provide an environment setup guide for the user to run the provided sample code. For example, it can guide the user on how to install Python and the necessary libraries. This allows the user to quickly find a specific solution to their question.
[0052] The question analyzer can automatically suggest relevant video tutorials for a user's questions. For example, if a user asks, "How do I sort the elements of a list in Python?", the question analyzer will suggest relevant video tutorials. The question analyzer can also highlight important points when a user watches a video tutorial. For example, it can highlight the explanation of a sorting algorithm. This allows users to obtain information in a visually easy-to-understand format.
[0053] The question acceptor can automatically format questions as users enter them. For example, if a user enters "How do I sort the elements of a list in Python?", the question acceptor will format the question as "How do I sort the elements of a list in Python?". The question acceptor can also suggest appropriate formats as users enter questions. For example, adding phrases such as "please tell me" or "please tell me how" to the beginning of a question. This standardizes the question format and improves the accuracy of question analysis.
[0054] The question analyzer can automatically suggest related blog articles and forum posts in response to a user's question. For example, if a user asks, "How do I sort the elements of a list in Python?", the question analyzer will suggest related blog articles and forum posts. The question analyzer can also provide users with the ability to rate suggested articles and posts. For example, users can press a "Helpful" button for articles they found helpful. This allows users to find solutions from a variety of sources.
[0055] The condition setting unit can provide a function for setting the priority of conditions when the user sets conditions. For example, when the user sets a condition such as "How can I sort the elements of a list in Python, but in descending order," the condition for descending sorting can be set to a higher priority. The condition setting unit can also visually display the priority of the conditions set by the user. For example, it can provide an interface that allows the user to change the priority of conditions by dragging and dropping. This allows the user to clearly set the priority of conditions, resulting in more appropriate source code being generated.
[0056] The condition setting unit can provide a function to simulate combinations of conditions when a user sets conditions. For example, when a user sets a condition such as "How can I sort the elements of a list in Python, but in descending order," the unit simulates the results of the combination of conditions. The condition setting unit can also visually display the results of the simulation. For example, it can display a preview of the sorted list. This allows the user to check the results of the combination of conditions in advance, allowing them to set more appropriate conditions.
[0057] The processing flow of the first embodiment will be briefly explained below.
[0058] Step 1: The question acceptor accepts a programming question from a user. For example, the user may enter, "How do I sort the elements of a list in Python?" The question acceptor can also support voice input and convert the question into text using speech recognition technology. For example, the question acceptor can allow the user to enter a question using a microphone. Step 2: The question analysis unit analyzes the question received by the question reception unit. For example, it uses natural language processing technology to understand the intent of the question. The question analysis unit can also automatically refer to related programming documents and references. For example, if the question is "How to sort a list in Python," the official documentation will be referenced. Step 3: The condition setting unit sets conditions for the question analyzed by the question analysis unit. For example, the user adds a condition in the form of "Please tell me how to sort the elements of a list in Python, but in descending order." The condition setting unit can also automatically suggest conditions that the user has previously set, promoting reuse. For example, the condition setting unit re-suggests the condition "Sort a list in descending order in Python" that the user previously set. Step 4: The code generator generates source code based on the conditions set by the condition setting unit. For example, the generation AI generates code to sort a list in descending order in Python. The code generator can also automatically optimize the generated code to improve performance. For example, it optimizes Python code to improve execution speed.
[0059] (Example 2) The programming support system according to an embodiment of the present invention is a system that asks questions about programming based on conditions set by the user, and a generation AI provides appropriate source code. This allows the user to efficiently carry out development work even if they have no programming knowledge.
[0060] A programming support system according to an embodiment includes a question receiving unit, a question analysis unit, a condition setting unit, and a code generation unit. The question receiving unit receives programming questions from a user. For example, the user may input, "How do I sort the elements of a list in Python?" The question receiving unit also supports voice input and can convert questions into text using voice recognition technology. For example, the user may input questions using a microphone. The question analysis unit analyzes the questions received by the question receiving unit. For example, it understands the intent of the question using natural language processing technology. The question analysis unit can also automatically refer to relevant programming documentation and references. For example, if the question is "How do I sort a list in Python?", the official documentation is referenced. The condition setting unit sets conditions for the questions analyzed by the question analysis unit. For example, the user may add a condition such as, "How do I sort the elements of a list in Python, but in descending order?" The condition setting unit can also automatically suggest conditions previously set by the user to promote reuse. For example, the condition setting unit re-suggests the condition "Sort a list in Python in descending order" previously set by the user. The code generation unit generates source code based on the conditions set by the condition setting unit. For example, the generation AI generates code to sort a list in descending order in Python. The code generation unit can also automatically optimize the generated code to improve performance. For example, the code generation unit optimizes Python code to improve execution speed. This allows the programming support system according to the embodiment to generate appropriate source code based on a user's question. For example, when a novice programmer implements a complex algorithm, the generation AI can provide appropriate code, thereby shortening development time and generating high-quality code.
[0061] The question accepting unit can refer to the user's past question history and automatically suggest similar questions. For example, when a user inputs a question, the question accepting unit builds a system that refers to the user's past question history and automatically suggests similar questions. For example, a user who previously asked "How to sort a list in Python" will be suggested a similar question. This allows for efficient questioning by referring to the user's past question history and automatically suggesting similar questions.
[0062] The question analysis unit can automatically refer to related programming documents or references to gain a deeper understanding of the intent of the question. For example, when analyzing a question, the question analysis unit automatically refers to related programming documents and references to build a system that can gain a deeper understanding of the intent of the question. For example, if the question is "How to sort a list in Python," the official documentation will be referenced. This allows for a more appropriate answer by automatically referring to related programming documents and references to gain a deeper understanding of the intent of the question.
[0063] The question analysis unit uses the emotion estimation function to analyze the user's emotion when asking a question, and can provide a more thoughtful answer if the user is feeling stressed or confused. The question analysis unit, for example, uses the emotion estimation function to analyze the user's emotion when asking a question, and builds a system that provides a more thoughtful answer if the user is feeling stressed or confused. For example, if the user is confused, a detailed explanation is added. In this way, the user's emotion is analyzed, and if the user is feeling stressed or confused, a more thoughtful answer is provided, thereby improving user satisfaction.
[0064] The question receiving unit supports voice input and can convert the question into text using voice recognition technology. For example, the question receiving unit supports voice input when receiving a question and builds a system that converts the question into text using voice recognition technology. For example, the system allows a user to input a question using a microphone. This improves user convenience by supporting voice input and converting the question into text using voice recognition technology.
[0065] The question analysis unit can share the question analysis results with other users and obtain community-based feedback. The question analysis unit, for example, builds a system for sharing the question analysis results with other users and obtaining community-based feedback. For example, the question and its answer can be posted to a forum to collect opinions from other users. In this way, the question analysis results can be shared with other users and obtain community-based feedback, resulting in a better answer.
[0066] The question analysis unit can use the emotion estimation function to analyze the emotion a user feels when inputting a question in real time and provide an interface for eliciting positive emotions. The question analysis unit, for example, uses the emotion estimation function to build a system that analyzes the emotion a user feels when inputting a question in real time and provides an interface for eliciting positive emotions. For example, the question analysis unit displays an encouraging message to encourage the user to have positive emotions. In this way, the user's emotions are analyzed in real time and an interface for eliciting positive emotions is provided, thereby improving user satisfaction.
[0067] The condition setting unit can automatically suggest conditions previously set by the user, promoting reuse. For example, when setting conditions, the condition setting unit automatically suggests conditions previously set by the user, building a system that promotes reuse. For example, the condition "sort a list in descending order in Python" previously set by the user is re-proposed. This automatically suggests conditions previously set by the user, promoting reuse and enabling efficient condition setting.
[0068] The condition setting unit can also handle complex queries that combine multiple conditions. For example, when analyzing conditions, the condition setting unit builds a system that can handle complex queries that combine multiple conditions. For example, it analyzes the condition "sort a list in descending order and remove duplicates in Python." This makes it possible to handle complex queries that combine multiple conditions, thereby meeting a variety of user requests.
[0069] The condition setting unit uses the emotion estimation function to analyze the emotion of the user when setting the conditions, and can provide guidance if the user has difficulty setting the conditions. The condition setting unit, for example, uses the emotion estimation function to analyze the emotion of the user when setting the conditions, and builds a system that provides guidance if the user has difficulty setting the conditions. For example, if the user is confused, a step-by-step guide is displayed. This improves user convenience by analyzing the user's emotion and providing guidance if the user has difficulty setting the conditions.
[0070] The condition setting unit allows conditions to be set using a visual interface, and conditions can be added by drag and drop. The condition setting unit, for example, builds a system that allows conditions to be set using a visual interface, and conditions to be added by drag and drop. For example, the user can drag and place conditions as blocks. This allows conditions to be set using a visual interface, and conditions to be added by drag and drop, improving user convenience.
[0071] The condition setting unit can refer to conditions set by other users and learn best practices. The condition setting unit, for example, builds a system that allows users to refer to conditions set by other users when setting conditions and learn best practices. For example, it displays a list of conditions set by other users. This allows users to refer to conditions set by other users and learn best practices, which is expected to improve their skills.
[0072] The condition setting unit can use the emotion estimation function to analyze the emotion a user has when setting conditions in real time and provide an interface for eliciting positive emotions. The condition setting unit, for example, uses the emotion estimation function to build a system that analyzes the emotion a user has when setting conditions in real time and provides an interface for eliciting positive emotions. For example, the condition setting unit displays an encouraging message to encourage the user to have positive emotions. In this way, the user's emotions are analyzed in real time and an interface for eliciting positive emotions is provided, thereby improving user satisfaction.
[0073] The code generation unit can automatically optimize the generated code to improve performance. For example, when generating source code, the code generation unit automatically optimizes the generated code to build a system that improves performance. For example, the code generation unit optimizes Python code to improve execution speed. This automatically optimizes the generated code to improve performance, enabling efficient development.
[0074] The code generation unit can use the emotion estimation function to analyze the emotions a user feels toward the generated code and make improvements to increase satisfaction. For example, the code generation unit uses the emotion estimation function to build a system that analyzes the emotions a user feels toward the generated code and makes improvements to increase satisfaction. For example, if the user is not satisfied, the system suggests improvements to the code. In this way, the user's emotions are analyzed and improvements to increase satisfaction are made, thereby improving the user's satisfaction.
[0075] The code generation unit supports conversion into different programming languages and can achieve multi-platform compatibility. For example, when generating source code, the code generation unit supports conversion into different programming languages and builds a system that achieves multi-platform compatibility. For example, the code generation unit converts Python code into JavaScript. This supports conversion into different programming languages and achieves multi-platform compatibility, improving user convenience.
[0076] The code generation unit can refer to code generated by other users and select the most suitable code. For example, when generating source code, the code generation unit builds a system that refers to code generated by other users and selects the most suitable code. For example, it compares multiple codes for the same problem and selects the most suitable one. This allows for efficient development by referring to code generated by other users and selecting the most suitable code.
[0077] The code generation unit can use the emotion estimation function to analyze the emotions a user has toward the generated code in real time and provide an interface for eliciting positive emotions. The code generation unit, for example, uses the emotion estimation function to build a system that analyzes the emotions a user has toward the generated code in real time and provides an interface for eliciting positive emotions. For example, the code generation unit displays an encouraging message to encourage the user to have positive emotions. In this way, the user's emotions are analyzed in real time and an interface for eliciting positive emotions is provided, thereby improving user satisfaction.
[0078] The code generation unit can automatically generate detailed comments for each part of the code when explaining the source code, thereby aiding in understanding. The code generation unit, for example, builds a system that automatically generates detailed comments for each part of the code when explaining the source code, thereby aiding in understanding. For example, explanatory comments are added to each line of Python code. This allows detailed comments to be automatically generated for each part of the code when explaining the source code, thereby aiding in understanding and improving the user's understanding.
[0079] The code generation unit can automatically link related documents or references when explaining source code. The code generation unit, for example, builds a system that automatically links related documents and references when explaining source code. For example, a link to official documentation is added to the explanation of Python code. This improves the user's understanding by automatically linking related documents and references when explaining source code.
[0080] The code generation unit can use the emotion estimation function to analyze the emotion a user feels when reading an explanation and provide additional explanations to enhance comprehension. The code generation unit, for example, uses the emotion estimation function to build a system that analyzes the emotion a user feels when reading an explanation and provides additional explanations to enhance comprehension. For example, if the user is confused, a detailed explanation is added. In this way, the user's emotion is analyzed and additional explanations to enhance comprehension are provided, thereby improving the user's comprehension.
[0081] The code generation unit can convert source code descriptions into visual notes or flowcharts to make them easier to understand visually. The code generation unit, for example, builds a system that converts source code descriptions into visual notes or flowcharts to make them easier to understand visually. For example, it automatically generates flowcharts for Python code. This improves the user's understanding by converting source code descriptions into visual notes or flowcharts to make them easier to understand visually.
[0082] The code generation unit can automatically translate source code descriptions into different languages to promote understanding from an international perspective. The code generation unit, for example, builds a system that automatically translates source code descriptions into different languages to promote understanding from an international perspective. For example, the code generation unit translates Python code descriptions from English to Japanese. This automatically translates source code descriptions into different languages to promote understanding from an international perspective, thereby improving user understanding.
[0083] The code generation unit can use the emotion estimation function to analyze the emotions felt by the user when reading an explanation in real time and provide an interface for eliciting positive emotions. The code generation unit, for example, uses the emotion estimation function to build a system that analyzes the emotions felt by the user when reading an explanation in real time and provides an interface for eliciting positive emotions. For example, the code generation unit displays an encouraging message to encourage the user to have positive emotions. In this way, the user's emotions are analyzed in real time and an interface for eliciting positive emotions is provided, thereby improving user satisfaction.
[0084] The code generation unit can automate version management of the generated code and track the change history. For example, the code generation unit builds a system that automates version management of the generated code and tracks the change history in order to improve the efficiency of development work. For example, it automatically performs version management using Git. This automates version management of the generated code and tracks the change history, enabling efficient development.
[0085] The code generation unit can automatically generate test cases for the generated code and ensure its quality. For example, to improve the efficiency of development work, the code generation unit automatically generates test cases for the generated code and builds a system to ensure its quality. For example, it automatically generates unit tests for Python code. This enables efficient development by automatically generating test cases for the generated code and ensuring its quality.
[0086] The code generation unit can use the emotion estimation function to analyze the emotions of a user when performing development work and provide support to reduce stress. The code generation unit, for example, uses the emotion estimation function to build a system that analyzes the emotions of a user when performing development work and provides support to reduce stress. For example, if the user is feeling stressed, the system provides advice on how to relax. In this way, the user's emotions are analyzed and support to reduce stress is provided, thereby improving the user's work efficiency.
[0087] The code generation unit can provide a platform that supports code sharing and collaboration among team members. For example, the code generation unit builds a system that provides a platform that supports code sharing and collaboration among team members in order to improve the efficiency of development work. For example, the code generation unit provides a cloud-based code sharing platform. This enables efficient development by supporting code sharing and collaboration among team members.
[0088] The code generation unit can automatically deploy the generated code and reflect it in the operational environment. For example, to improve the efficiency of development work, the code generation unit builds a system that automatically deploys the generated code and reflects it in the operational environment. For example, automatic deployment is performed using a CI / CD pipeline. This allows the generated code to be automatically deployed and reflected in the operational environment, enabling efficient development.
[0089] The code generation unit can use the emotion estimation function to analyze the emotions of a user when performing development work in real time and provide an interface for eliciting positive emotions. The code generation unit, for example, uses the emotion estimation function to build a system that analyzes the emotions of a user when performing development work in real time and provides an interface for eliciting positive emotions. For example, the code generation unit displays an encouraging message to encourage the user to have positive emotions. In this way, the user's emotions are analyzed in real time and an interface for eliciting positive emotions is provided, thereby improving the user's work efficiency.
[0090] The system according to the embodiment is not limited to the above-described example, and various modifications are possible, for example, as follows.
[0091] The question accepting unit can automatically categorize questions as they are entered by the user. For example, if a user enters "How do I sort the elements of a list in Python?", the question accepting unit will categorize this question as "Data Manipulation." The question accepting unit can also suggest related categories as the user enters a question. For example, if a user enters "sort," categories such as "Data Manipulation" and "Algorithm" will be suggested. This allows the user to enter a more specific question, improving the accuracy of question analysis.
[0092] The question analyzer can automatically provide relevant sample code for a user's question. For example, if a user asks, "How do I sort the elements of a list in Python?", the question analyzer will provide the relevant sample code. The question analyzer can also provide an environment setup guide for the user to run the provided sample code. For example, it can guide the user on how to install Python and the necessary libraries. This allows the user to quickly find a specific solution to their question.
[0093] The question analyzer can automatically suggest relevant video tutorials for a user's questions. For example, if a user asks, "How do I sort the elements of a list in Python?", the question analyzer will suggest relevant video tutorials. The question analyzer can also highlight important points when a user watches a video tutorial. For example, it can highlight the explanation of a sorting algorithm. This allows users to obtain information in a visually easy-to-understand format.
[0094] The question analysis unit uses the emotion estimation function to analyze the emotions of the user when entering a question, and can change the interface design so that the user can enter a question in a relaxed state. For example, if the user is feeling stressed, the color tone of the interface can be changed to a calm color. Also, if the user is confused, a guide message can be displayed on the interface. This allows the user to enter a question in a relaxed state, improving the quality of the question.
[0095] The question acceptor can automatically format questions as users enter them. For example, if a user enters "How do I sort the elements of a list in Python?", the question acceptor will format the question as "How do I sort the elements of a list in Python?". The question acceptor can also suggest appropriate formats as users enter questions. For example, adding phrases such as "please tell me" or "please tell me how" to the beginning of a question. This standardizes the question format and improves the accuracy of question analysis.
[0096] The question analyzer can automatically suggest related blog articles and forum posts in response to a user's question. For example, if a user asks, "How do I sort the elements of a list in Python?", the question analyzer will suggest related blog articles and forum posts. The question analyzer can also provide users with the ability to rate suggested articles and posts. For example, users can press a "Helpful" button for articles they found helpful. This allows users to find solutions from a variety of sources.
[0097] The question analysis unit uses the emotion estimation function to analyze the emotions felt when a user enters a question, and can display positive messages in the interface to encourage the user to have positive emotions. For example, when a user enters a question, it can display encouraging messages or messages sharing successful experiences. It can also add interactive elements to elicit positive emotions when a user enters a question. This allows the user to enter a question with positive emotions, improving the quality of the question.
[0098] The condition setting unit can provide a function for setting the priority of conditions when the user sets conditions. For example, when the user sets a condition such as "How can I sort the elements of a list in Python, but in descending order," the condition for descending sorting can be set to a higher priority. The condition setting unit can also visually display the priority of the conditions set by the user. For example, it can provide an interface that allows the user to change the priority of conditions by dragging and dropping. This allows the user to clearly set the priority of conditions, resulting in more appropriate source code being generated.
[0099] The condition setting unit can provide a function to simulate combinations of conditions when a user sets conditions. For example, when a user sets a condition such as "How can I sort the elements of a list in Python, but in descending order," the unit simulates the results of the combination of conditions. The condition setting unit can also visually display the results of the simulation. For example, it can display a preview of the sorted list. This allows the user to check the results of the combination of conditions in advance, allowing them to set more appropriate conditions.
[0100] The condition setting unit uses the emotion estimation function to analyze the emotions of the user when setting conditions, and can display positive messages on the interface to encourage the user to have positive emotions about setting conditions. For example, when the user sets conditions, it can display encouraging messages or messages sharing successful experiences. It can also add interactive elements to elicit positive emotions when the user sets conditions. This allows the user to set conditions with positive emotions, improving the accuracy of condition setting.
[0101] The processing flow of the second embodiment will be briefly explained below.
[0102] Step 1: The question acceptor accepts a programming question from a user. For example, the user may enter, "How do I sort the elements of a list in Python?" The question acceptor can also support voice input and convert the question into text using speech recognition technology. For example, the question acceptor can allow the user to enter a question using a microphone. Step 2: The question analysis unit analyzes the question received by the question reception unit. For example, it uses natural language processing technology to understand the intent of the question. The question analysis unit can also automatically refer to related programming documents and references. For example, if the question is "How to sort a list in Python," the official documentation will be referenced. Step 3: The condition setting unit sets conditions for the question analyzed by the question analysis unit. For example, the user adds a condition in the form of "Please tell me how to sort the elements of a list in Python, but in descending order." The condition setting unit can also automatically suggest conditions that the user has previously set, promoting reuse. For example, the condition setting unit re-suggests the condition "Sort a list in descending order in Python" that the user previously set. Step 4: The code generator generates source code based on the conditions set by the condition setting unit. For example, the generation AI generates code to sort a list in descending order in Python. The code generator can also automatically optimize the generated code to improve performance. For example, it optimizes Python code to improve execution speed.
[0103] The specific processing unit 290 transmits the result of the specific processing to the smart device 14. In the smart device 14, the control unit 46A causes the output device 40 to output the result of the specific processing. The microphone 38B acquires audio indicating a user input regarding the result of the specific processing. The control unit 46A transmits audio data indicating the user input acquired by the microphone 38B to the data processing device 12. In the data processing device 12, the specific processing unit 290 acquires the audio data.
[0104] The data generation model 58 is a so-called generative AI (Artificial Intelligence). An example of the data generation model 58 is ChatGPT (Internet Search<URL: https: / / openai.com / blog / chatgpt> Examples of generative AIs include the data generation model 58, such as a neural network model (e.g., a neural network model), and a neural network model (e.g., a neural network model). The data generation model 58 is obtained by performing deep learning on a neural network. A prompt including an instruction is input to the data generation model 58, and inference data such as voice data indicating speech, text data indicating text, and image data indicating an image is also input to the data generation model 58. The data generation model 58 performs inference on the input inference data in accordance with the instruction indicated by the prompt and outputs the inference result in a data format such as voice data and text data. Here, inference refers to, for example, analysis, classification, prediction, and / or summarization. The specification processing unit 290 performs the above-mentioned specification processing using the data generation model 58. The data generation model 58 may be a fine-tuned model so as to output an inference result from a prompt that does not include an instruction. In this case, the data generation model 58 can output an inference result from a prompt that does not include an instruction. The data processing device 12 and the like include multiple types of data generation models 58, and the data generation model 58 includes AIs other than the generative AI. The AI other than the generative AI may be, for example, linear regression, logistic regression, decision tree, random forest, support vector machine (SVM), k-means clustering, convolutional neural network (CNN), recurrent neural network (RNN), generative adversarial network (GAN), or naive Bayes, and can perform various processes, but is not limited to these examples. The AI may also be an AI agent. When the processes of each of the above-mentioned parts are performed by AI, the processes may be performed in part or entirely by AI, but are not limited to these examples. The processes performed by AI, including the generative AI, may be replaced with rule-based processes.
[0105] Furthermore, the processing by the data processing system 10 described above is executed by the specific processing unit 290 of the data processing device 12 or the control unit 46A of the smart device 14, but may also be executed by the specific processing unit 290 of the data processing device 12 and the control unit 46A of the smart device 14. Furthermore, the specific processing unit 290 of the data processing device 12 acquires or collects information necessary for processing from the smart device 14 or an external device, and the smart device 14 acquires or collects information necessary for processing from the data processing device 12 or an external device.
[0106] [Second embodiment] FIG. 3 shows an example of the configuration of a data processing system 210 according to the second embodiment.
[0107] 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.
[0108] The data processing device 12 includes a computer 22, a database 24, and a communication I / F 26. The computer 22 includes a processor 28, a RAM 30, and a storage 32. The processor 28, RAM 30, and storage 32 are connected to a bus 34. The database 24 and the communication I / F 26 are also connected to the bus 34. The communication I / F 26 is connected to a network 54. Examples of the network 54 include a WAN and / or a LAN.
[0109] The smart glasses 214 include a computer 36, a microphone 238, a speaker 240, a camera 42, and a communication I / F 44. The computer 36 includes a processor 46, a RAM 48, and a storage 50. The processor 46, the RAM 48, and the storage 50 are connected to a bus 52. The microphone 238, the speaker 240, and the camera 42 are also connected to the bus 52.
[0110] The microphone 238 receives instructions and the like from the user by receiving voice uttered by the user. The microphone 238 captures the voice uttered by the user, converts the captured voice into audio data, and outputs it to the processor 46. The speaker 240 outputs audio according to instructions from the processor 46.
[0111] Camera 42 is a small digital camera equipped with an optical system including a lens, aperture, and shutter, and an imaging element such as a CMOS (Complementary Metal-Oxide-Semiconductor) image sensor or a CCD (Charge Coupled Device) image sensor, and captures images of the user's surroundings (for example, an imaging range defined by an angle of view equivalent to the field of vision of a typical healthy person).
[0112] The communication I / F 44 is connected to a network 54. The communication I / Fs 44 and 26 are responsible for the exchange of various information between the processor 46 and the processor 28 via the network 54. The exchange of various information between the processor 46 and the processor 28 using the communication I / Fs 44 and 26 is carried out in a secure state.
[0113] Fig. 4 shows an example of the main functions of the data processing device 12 and the smart glasses 214. As shown in Fig. 4, in the data processing device 12, a specific process is performed by the processor 28. A specific process program 56 is stored in the storage 32.
[0114] The processor 28 reads the specific processing program 56 from the storage 32 and executes the read specific processing program 56 on the RAM 30. The specific processing is realized by the processor 28 operating as a specific processing unit 290 in accordance with the specific processing program 56 executed on the RAM 30.
[0115] The storage 32 stores a data generation model 58 and an emotion identification model 59. The data generation model 58 and the emotion identification model 59 are used by the identification processing unit 290. The identification processing unit 290 can estimate the user's emotion using the emotion identification model 59 and perform identification processing using the user's emotion.
[0116] In the smart glasses 214, the specific processing is performed by the processor 46. A specific processing program 60 is stored in the storage 50. The processor 46 reads the specific processing program 60 from the storage 50 and executes the read specific processing program 60 on the RAM 48. The specific processing is realized by the processor 46 operating as the control unit 46A in accordance with the specific processing program 60 executed on the RAM 48. Note that the smart glasses 214 may have a data generation model and an emotion identification model similar to the data generation model 58 and the emotion identification model 59.
[0117] Note that a device other than the data processing device 12 may have the data generation model 58. For example, a server device may have the data generation model 58. In this case, the data processing device 12 communicates with the server device having the data generation model 58 to obtain a processing result (such as a prediction result) using the data generation model 58. Furthermore, the data processing device 12 may be a server device, or may be a terminal device (for example, a mobile phone, a robot, a home appliance, etc.) owned by a user.
[0118] The specific processing unit 290 transmits the result of the specific processing to the smart glasses 214. In the smart glasses 214, the control unit 46A causes the speaker 240 to output the result of the specific processing. The microphone 238 acquires audio indicating a user input regarding the result of the specific processing. The control unit 46A transmits audio data indicating the user input acquired by the microphone 238 to the data processing device 12. In the data processing device 12, the specific processing unit 290 acquires the audio data.
[0119] The data generation model 58 is a so-called generative AI. An example of the data generation model 58 is a generative AI such as ChatGPT. The data generation model 58 is obtained by performing deep learning on a neural network. The data generation model 58 receives a prompt containing an instruction, as well as inference data such as voice data representing speech, text data representing text, and image data representing an image. The data generation model 58 performs inference on the input inference data in accordance with the instruction indicated by the prompt and outputs the inference result in a data format such as voice data and text data. Here, inference refers to, for example, analysis, classification, prediction, and / or summarization. The identification processing unit 290 performs the above-mentioned identification processing using the data generation model 58. The data generation model 58 may be a fine-tuned model so as to output an inference result from a prompt that does not include an instruction. In this case, the data generation model 58 can output an inference result from a prompt that does not include an instruction. The data processing device 12 and the like include multiple types of data generation models 58, and the data generation model 58 includes AIs other than the generative AI. The AI other than the generative AI may be, for example, linear regression, logistic regression, decision tree, random forest, support vector machine (SVM), k-means clustering, convolutional neural network (CNN), recurrent neural network (RNN), generative adversarial network (GAN), or naive Bayes, and can perform various processes, but is not limited to these examples. The AI may also be an AI agent. When the processes of each of the above-mentioned parts are performed by AI, the processes may be performed in part or entirely by AI, but are not limited to these examples. The processes performed by AI, including the generative AI, may be replaced with rule-based processes.
[0120] The data processing system 210 according to the second embodiment performs the same processing as the data processing system 10 according to the first embodiment. The processing by the data processing system 210 is executed by the specific processing unit 290 of the data processing device 12 or the control unit 46A of the smart glasses 214, but may also be executed by the specific processing unit 290 of the data processing device 12 and the control unit 46A of the smart glasses 214. Furthermore, the specific processing unit 290 of the data processing device 12 acquires or collects information required for processing from the smart glasses 214 or an external device, etc., and the smart glasses 214 acquires or collects information required for processing from the data processing device 12 or an external device, etc.
[0121] [Third embodiment] FIG. 5 shows an example of the configuration of a data processing system 310 according to the third embodiment.
[0122] 5, the data processing system 310 includes the data processing device 12 and a headset terminal 314. An example of the data processing device 12 is a server.
[0123] The data processing device 12 includes a computer 22, a database 24, and a communication I / F 26. The computer 22 includes a processor 28, a RAM 30, and a storage 32. The processor 28, RAM 30, and storage 32 are connected to a bus 34. The database 24 and the communication I / F 26 are also connected to the bus 34. The communication I / F 26 is connected to a network 54. Examples of the network 54 include a WAN and / or a LAN.
[0124] The headset type terminal 314 includes a computer 36, a microphone 238, a speaker 240, a camera 42, a communication I / F 44, and a display 343. The computer 36 includes a processor 46, a RAM 48, and a storage 50. The processor 46, the RAM 48, and the storage 50 are connected to a bus 52. The microphone 238, the speaker 240, the camera 42, and the display 343 are also connected to the bus 52.
[0125] The microphone 238 receives instructions and the like from the user by receiving voice uttered by the user. The microphone 238 captures the voice uttered by the user, converts the captured voice into audio data, and outputs it to the processor 46. The speaker 240 outputs audio according to instructions from the processor 46.
[0126] Camera 42 is a small digital camera equipped with an optical system including a lens, aperture, and shutter, and an imaging element such as a CMOS (Complementary Metal-Oxide-Semiconductor) image sensor or a CCD (Charge Coupled Device) image sensor, and captures images of the user's surroundings (for example, an imaging range defined by an angle of view equivalent to the field of vision of a typical healthy person).
[0127] The communication I / F 44 is connected to a network 54. The communication I / Fs 44 and 26 are responsible for the exchange of various information between the processor 46 and the processor 28 via the network 54. The exchange of various information between the processor 46 and the processor 28 using the communication I / Fs 44 and 26 is carried out in a secure state.
[0128] Fig. 6 shows an example of the main functions of the data processing device 12 and the headset terminal 314. As shown in Fig. 6, in the data processing device 12, a specific process is performed by the processor 28. A specific process program 56 is stored in the storage 32.
[0129] The processor 28 reads the specific processing program 56 from the storage 32 and executes the read specific processing program 56 on the RAM 30. The specific processing is realized by the processor 28 operating as a specific processing unit 290 in accordance with the specific processing program 56 executed on the RAM 30.
[0130] The storage 32 stores a data generation model 58 and an emotion identification model 59. The data generation model 58 and the emotion identification model 59 are used by the identification processing unit 290. The identification processing unit 290 can estimate the user's emotion using the emotion identification model 59 and perform identification processing using the user's emotion.
[0131] In the headset type terminal 314, the identification process is performed by the processor 46. A identification program 60 is stored in the storage 50. The processor 46 reads the identification program 60 from the storage 50 and executes the read identification program 60 on the RAM 48. The identification process is realized by the processor 46 operating as a control unit 46A in accordance with the identification program 60 executed on the RAM 48. Note that the headset type terminal 314 may also have a data generation model and an emotion identification model similar to the data generation model 58 and the emotion identification model 59.
[0132] Note that a device other than the data processing device 12 may have the data generation model 58. For example, a server device may have the data generation model 58. In this case, the data processing device 12 communicates with the server device having the data generation model 58 to obtain a processing result (such as a prediction result) using the data generation model 58. Furthermore, the data processing device 12 may be a server device, or may be a terminal device (for example, a mobile phone, a robot, a home appliance, etc.) owned by a user.
[0133] The specific processing unit 290 transmits the result of the specific processing to the headset type terminal 314. In the headset type terminal 314, the control unit 46A causes the speaker 240 and the display 343 to output the result of the specific processing. The microphone 238 acquires audio indicating a user input regarding the result of the specific processing. The control unit 46A transmits audio data indicating the user input acquired by the microphone 238 to the data processing device 12. In the data processing device 12, the specific processing unit 290 acquires the audio data.
[0134] The data generation model 58 is a so-called generative AI. An example of the data generation model 58 is a generative AI such as ChatGPT. The data generation model 58 is obtained by performing deep learning on a neural network. The data generation model 58 receives a prompt containing an instruction, as well as inference data such as voice data representing speech, text data representing text, and image data representing an image. The data generation model 58 performs inference on the input inference data in accordance with the instruction indicated by the prompt and outputs the inference result in a data format such as voice data and text data. Here, inference refers to, for example, analysis, classification, prediction, and / or summarization. The identification processing unit 290 performs the above-mentioned identification processing using the data generation model 58. The data generation model 58 may be a fine-tuned model so as to output an inference result from a prompt that does not include an instruction. In this case, the data generation model 58 can output an inference result from a prompt that does not include an instruction. The data processing device 12 and the like include multiple types of data generation models 58, and the data generation model 58 includes AIs other than the generative AI. The AI other than the generative AI may be, for example, linear regression, logistic regression, decision tree, random forest, support vector machine (SVM), k-means clustering, convolutional neural network (CNN), recurrent neural network (RNN), generative adversarial network (GAN), or naive Bayes, and can perform various processes, but is not limited to these examples. The AI may also be an AI agent. When the processes of each of the above-mentioned parts are performed by AI, the processes may be performed in part or entirely by AI, but are not limited to these examples. The processes performed by AI, including the generative AI, may be replaced with rule-based processes.
[0135] The data processing system 310 according to the third embodiment performs the same processing as the data processing system 10 according to the first embodiment. The processing by the data processing system 310 is executed by the specific processing unit 290 of the data processing device 12 or the control unit 46A of the headset type terminal 314, but may also be executed by the specific processing unit 290 of the data processing device 12 and the control unit 46A of the headset type terminal 314. Furthermore, the specific processing unit 290 of the data processing device 12 acquires or collects information required for processing from the headset type terminal 314 or an external device, etc., and the headset type terminal 314 acquires or collects information required for processing from the data processing device 12 or an external device, etc.
[0136] [Fourth embodiment] FIG. 7 shows an example of the configuration of a data processing system 410 according to the fourth embodiment.
[0137] 7, a data processing system 410 includes a data processing device 12 and a robot 414. An example of the data processing device 12 is a server.
[0138] The data processing device 12 includes a computer 22, a database 24, and a communication I / F 26. The computer 22 includes a processor 28, a RAM 30, and a storage 32. The processor 28, RAM 30, and storage 32 are connected to a bus 34. The database 24 and the communication I / F 26 are also connected to the bus 34. The communication I / F 26 is connected to a network 54. Examples of the network 54 include a WAN and / or a LAN.
[0139] The robot 414 includes a computer 36, a microphone 238, a speaker 240, a camera 42, a communication I / F 44, and a control target 443. The computer 36 includes a processor 46, a RAM 48, and a storage 50. The processor 46, the RAM 48, and the storage 50 are connected to a bus 52. The microphone 238, the speaker 240, the camera 42, and the control target 443 are also connected to the bus 52.
[0140] The microphone 238 receives instructions and the like from the user by receiving voice uttered by the user. The microphone 238 captures the voice uttered by the user, converts the captured voice into audio data, and outputs it to the processor 46. The speaker 240 outputs audio according to instructions from the processor 46.
[0141] Camera 42 is a small digital camera equipped with an optical system including a lens, aperture, and shutter, and an imaging element such as a CMOS image sensor or a CCD image sensor, and captures images of the user's surroundings (for example, an imaging range defined by an angle of view equivalent to the field of vision of a typical healthy person).
[0142] The communication I / F 44 is connected to a network 54. The communication I / Fs 44 and 26 are responsible for the exchange of various information between the processor 46 and the processor 28 via the network 54. The exchange of various information between the processor 46 and the processor 28 using the communication I / Fs 44 and 26 is carried out in a secure state.
[0143] The control object 443 includes a display device, LEDs in the eyes, and motors that drive the arms, hands, and feet. The posture and gestures of the robot 414 are controlled by controlling the motors of the arms, hands, and feet. Some of the emotions of the robot 414 can be expressed by controlling these motors. In addition, the facial expressions of the robot 414 can also be expressed by controlling the light emission state of the LEDs in the eyes of the robot 414.
[0144] Fig. 8 shows an example of the main functions of the data processing device 12 and the robot 414. As shown in Fig. 8, in the data processing device 12, a specific process is performed by the processor 28. A specific process program 56 is stored in the storage 32.
[0145] The processor 28 reads the specific processing program 56 from the storage 32 and executes the read specific processing program 56 on the RAM 30. The specific processing is realized by the processor 28 operating as a specific processing unit 290 in accordance with the specific processing program 56 executed on the RAM 30.
[0146] The storage 32 stores a data generation model 58 and an emotion identification model 59. The data generation model 58 and the emotion identification model 59 are used by the identification processing unit 290. The identification processing unit 290 can estimate the user's emotion using the emotion identification model 59 and perform identification processing using the user's emotion.
[0147] In the robot 414, the processor 46 performs the identification process. A identification program 60 is stored in the storage 50. The processor 46 reads the identification program 60 from the storage 50 and executes the read identification program 60 on the RAM 48. The identification process is realized by the processor 46 operating as a control unit 46A in accordance with the identification program 60 executed on the RAM 48. The robot 414 may have a data generation model and an emotion identification model similar to the data generation model 58 and the emotion identification model 59.
[0148] Note that a device other than the data processing device 12 may have the data generation model 58. For example, a server device may have the data generation model 58. In this case, the data processing device 12 communicates with the server device having the data generation model 58 to obtain a processing result (such as a prediction result) using the data generation model 58. Furthermore, the data processing device 12 may be a server device, or may be a terminal device (for example, a mobile phone, a robot, a home appliance, etc.) owned by a user.
[0149] The specific processing unit 290 transmits the result of the specific processing to the robot 414. In the robot 414, the control unit 46A causes the speaker 240 and the control target 443 to output the result of the specific processing. The microphone 238 acquires voice indicating a user input regarding the result of the specific processing. The control unit 46A transmits voice data indicating the user input acquired by the microphone 238 to the data processing device 12. In the data processing device 12, the specific processing unit 290 acquires the voice data.
[0150] The data generation model 58 is a so-called generative AI. An example of the data generation model 58 is a generative AI such as ChatGPT. The data generation model 58 is obtained by performing deep learning on a neural network. The data generation model 58 receives a prompt containing an instruction, as well as inference data such as voice data representing speech, text data representing text, and image data representing an image. The data generation model 58 performs inference on the input inference data in accordance with the instruction indicated by the prompt and outputs the inference result in a data format such as voice data and text data. Here, inference refers to, for example, analysis, classification, prediction, and / or summarization. The identification processing unit 290 performs the above-mentioned identification processing using the data generation model 58. The data generation model 58 may be a fine-tuned model so as to output an inference result from a prompt that does not include an instruction. In this case, the data generation model 58 can output an inference result from a prompt that does not include an instruction. The data processing device 12 and the like include multiple types of data generation models 58, and the data generation model 58 includes AIs other than the generative AI. The AI other than the generative AI may be, for example, linear regression, logistic regression, decision tree, random forest, support vector machine (SVM), k-means clustering, convolutional neural network (CNN), recurrent neural network (RNN), generative adversarial network (GAN), or naive Bayes, and can perform various processes, but is not limited to these examples. The AI may also be an AI agent. When the processes of each of the above-mentioned parts are performed by AI, the processes may be performed in part or entirely by AI, but are not limited to these examples. The processes performed by AI, including the generative AI, may be replaced with rule-based processes.
[0151] The data processing system 410 according to the fourth embodiment performs the same processing as the data processing system 10 according to the first embodiment. The processing by the data processing system 410 is executed by the specific processing unit 290 of the data processing device 12 or the control unit 46A of the robot 414, but may also be executed by the specific processing unit 290 of the data processing device 12 and the control unit 46A of the robot 414. Furthermore, the specific processing unit 290 of the data processing device 12 acquires or collects information required for processing from the robot 414 or an external device, etc., and the robot 414 acquires or collects information required for processing from the data processing device 12 or an external device, etc.
[0152] The emotion identification model 59 as an emotion engine may determine the user's emotion according to a specific mapping. Specifically, the emotion identification model 59 may determine the user's emotion according to an emotion map (see FIG. 9), which is a specific mapping. Similarly, the emotion identification model 59 may determine the robot's emotion, and the identification processing unit 290 may perform identification processing using the robot's emotion.
[0153] FIG. 9 illustrates an emotion map 400 on which multiple emotions are mapped. In the emotion map 400, emotions are arranged in concentric circles radiating from the center. Emotions closer to the center of the concentric circles are more primitive. Emotions representing states and behaviors arising from a state of mind are arranged on the outer edges of the concentric circles. The concept of emotion encompasses both emotions and mental states. Emotions generally generated from reactions occurring in the brain are arranged on the left side of the concentric circles. Emotions generally induced by situational judgment are arranged on the right side of the concentric circles. Emotions generally generated from reactions occurring in the brain and induced by situational judgment are arranged on the upper and lower sides of the concentric circles. Furthermore, the emotion of "pleasure" is arranged on the upper side of the concentric circles, and the emotion of "discomfort" is arranged on the lower side. In this way, in the emotion map 400, multiple emotions are mapped based on the structure by which emotions are generated, and emotions that tend to occur simultaneously are mapped close to each other.
[0154] These emotions are distributed in the 3 o'clock direction on emotion map 400, and typically fluctuate between relief and anxiety. In the right half of emotion map 400, situational awareness dominates over internal sensations, resulting in a sense of calm.
[0155] The inside of emotion map 400 represents what is going on in the mind, and the outside of emotion map 400 represents behavior, so the further you go outside emotion map 400, the more visible the emotions become (the more they are expressed in behavior).
[0156] Human emotions are based on various balances, such as posture and blood sugar levels. When these balances deviate from the ideal, a state of discomfort is expressed, and when they approach the ideal, a state of pleasure is expressed. Emotions can also be created for robots, cars, and motorcycles, based on various balances, such as posture and remaining battery life. When these balances deviate from the ideal, a state of discomfort is expressed, and when they approach the ideal, a state of pleasure is expressed. An emotion map can be generated, for example, based on Dr. Mitsuyoshi's emotion map (Research on speech emotion recognition and brain physiological signal analysis systems for emotions, Tokushima University, doctoral dissertation: https: / / ci.nii.ac.jp / naid / 500000375379). The left half of the emotion map lists emotions belonging to the area called "reaction," where sensation is dominant. The right half of the emotion map lists emotions belonging to the area called "situation," where situational awareness is dominant.
[0157] The emotion map defines two emotions that promote learning. One is a negative emotion on the situation side, around the middle of "repentance" or "reflection." In other words, this occurs when the robot experiences negative emotions such as "I never want to feel this way again" or "I don't want to be scolded again." The other is a positive emotion on the response side, around "desire." In other words, this occurs when the robot experiences positive feelings such as "I want more" or "I want to know more."
[0158] The emotion identification model 59 inputs user input into a pre-trained neural network, obtains emotion values indicating each emotion shown in the emotion map 400, and determines the user's emotion. This neural network is pre-trained based on multiple pieces of training data that are combinations of user input and emotion values indicating each emotion shown in the emotion map 400. Furthermore, this neural network is trained so that emotions that are located close to each other have similar values, as in the emotion map 900 shown in FIG. 10. FIG. 10 shows an example in which multiple emotions, "relieved," "calm," and "reassuring," have similar emotion values.
[0159] In the above embodiment, an example was given in which a specific process is performed by one computer 22, but the technology disclosed herein is not limited to this, and distributed processing of the specific process may be performed by multiple computers including computer 22.
[0160] In the above embodiment, an example in which the specific processing program 56 is stored in the storage 32 has been described, but the technology of the present disclosure is not limited to this. For example, the specific processing program 56 may be stored in a portable, computer-readable, non-transitory storage medium such as a USB (Universal Serial Bus) memory. The specific processing program 56 stored in the non-transitory storage medium is installed in the computer 22 of the data processing device 12. The processor 28 executes the specific processing in accordance with the specific processing program 56.
[0161] 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.
[0162] It is not necessary to store all of the specific processing program 56 in a storage device such as a server connected to the data processing device 12 via the network 54, or to store all of the specific processing program 56 in the storage 32; only a portion of the specific processing program 56 may be stored.
[0163] The hardware resource for executing a specific process can be any of the following types of processors: A processor, for example, is a CPU, which is a general-purpose processor that functions as a hardware resource for executing a specific process by executing software, i.e., a program. A processor also includes a dedicated electrical circuit, such as an FPGA (Field-Programmable Gate Array), a PLD (Programmable Logic Device), or an ASIC (Application Specific Integrated Circuit), which is a processor with a circuit configuration designed specifically for executing a specific process. Each processor has built-in or connected memory, and each processor uses the memory to execute the specific process.
[0164] The hardware resource that executes the specific process may be configured with one of these various processors, or may be configured with a combination of two or more processors of the same or different types (for example, a combination of multiple FPGAs, or a combination of a CPU and an FPGA). Also, the hardware resource that executes the specific process may be a single processor.
[0165] As an example of a system configured with a single processor, first, one processor is configured by combining one or more CPUs and software, and this processor functions as a hardware resource that executes a specific process. Second, there is a system that uses a processor that realizes the functions of an entire system including multiple hardware resources that execute a specific process on a single IC chip, as typified by SoC (System-on-a-chip). In this way, a specific process is realized using one or more of the above-mentioned various processors as hardware resources.
[0166] Furthermore, the hardware structure of these various processors can be, more specifically, an electric circuit that combines circuit elements such as semiconductor devices. The specific processing described above is merely an example. Therefore, it goes without saying that unnecessary steps may be deleted, new steps may be added, or the processing order may be rearranged, without departing from the spirit of the invention.
[0167] In the above example, the first to fourth embodiments have been described separately, but some or all of these embodiments may be combined. The smart device 14, smart glasses 214, headset terminal 314, and robot 414 are merely examples, and they may be combined, or other devices may be used. In the above example, the first and second embodiments have been described separately, but they may be combined.
[0168] The above-described description and illustrations are a detailed explanation of the parts related to the technology of the present disclosure and are merely an example of the technology of the present disclosure. For example, the above description of the configuration, functions, actions, and effects is an explanation of an example of the configuration, functions, actions, and effects of the parts related to the technology of the present disclosure. Therefore, it goes without saying that unnecessary parts may be deleted, new elements may be added, or replacements may be made to the above-described description and illustrations within the scope of the gist of the technology of the present disclosure. Furthermore, in order to avoid confusion and to facilitate understanding of the parts related to the technology of the present disclosure, the above-described description and illustrations omit explanations of common technical knowledge that do not require particular explanation to enable the implementation of the technology of the present disclosure.
[0169] All publications, patent applications, and technical standards mentioned in this specification are herein incorporated by reference to the same extent as if each individual publication, patent application, or technical standard was specifically and individually indicated to be incorporated by reference. [Explanation of symbols]
[0170] 10, 210, 310, 410 Data Processing Systems 12 Data Processing Device 14 Smart Devices 214 Smart Glasses 314 Headset-type terminal 414 Robot
Claims
1. a question receiving unit that receives questions about programming from users; a question analysis unit that analyzes the question received by the question receiving unit; a condition setting unit that sets conditions for the question analyzed by the question analysis unit; a code generation unit that generates source code based on the conditions set by the condition setting unit. A system characterized by:
2. The question receiving unit Automatically suggest similar questions based on the user's past question history 2. The system of claim 1.
3. The question receiving unit Supports voice input and converts questions into text using voice recognition technology 2. The system of claim 1.
4. The condition setting unit Automatically suggests conditions that users have previously set, encouraging reuse 2. The system of claim 1.
5. The code generation unit Automatically optimizes generated code for improved performance 2. The system of claim 1.
6. The code generation unit When explaining source code, detailed comments are automatically generated for each part of the code to help with understanding.
2. The system of claim 1.
7. The question analysis unit Emotion estimation function analyzes the user's emotions when asking a question and provides a more polite answer if the user is feeling stressed or confused.
2. The system of claim 1.
8. The condition setting unit Using emotion estimation functionality, the system analyzes the emotions expressed when users set conditions, and provides guidance if they have difficulty setting conditions.
2. The system of claim 1.
Citation Information
Patent Citations
Persona chatbot control method and system
JP2022180282A