System
An AI-driven system generates programming problems based on learner levels, providing tailored education and automated evaluation to enhance learning efficiency and motivation.
Patent Information
- Application Number
- JP2024119066
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-07-24
- Publication Date
- 2026-02-05
AI Technical Summary
Existing programming education systems for elementary and junior high school students face challenges in providing programming problems tailored to individual learning levels, leading to inconsistent progress and decreased motivation due to the difficulty in preparing appropriate problems and manual evaluation of answers.
A system utilizing artificial intelligence to generate programming problems based on a learner's learning level, providing them to a terminal, evaluating answers, and updating the learner's level, with feedback mechanisms to adapt to individual progress.
The system effectively tailors programming education to individual paces, improving learning efficiency and reducing teacher workload by automating evaluation and feedback.
Smart Images

Figure 2026018005000001_ABST
Abstract
Description
[Technical Field]
[0001] The technology of the present disclosure relates to a system. [Background technology]
[0002] Patent document 1 discloses a persona chatbot control method performed by at least one processor, the method including the steps of receiving a user utterance, adding the user utterance to a prompt including an instruction sentence related to a description of the chatbot character, encoding the prompt, and inputting the encoded prompt into a language model to generate a chatbot utterance in response to the user utterance. [Prior art documents] [Patent documents]
[0003] [Patent Document 1] Japanese Patent Publication No. 2022-180282 Summary of the Invention [Problem to be solved by the invention]
[0004] In recent years, programming education for elementary and junior high school students has become increasingly important, but students who are familiar with block programming face many difficulties when transitioning to code-based programming. Specifically, it is difficult for teachers to individually prepare programming problems appropriate to each student's learning level, which can lead to inconsistent learning progress and a decline in student motivation. [Means for solving the problem]
[0005] The present invention provides a system that uses artificial intelligence as a generation means to generate programming problems based on a learner's learning level. The generated problems are provided to the learner's terminal, and when the learner's answers are received from the terminal, the system evaluates them and updates the learner's learning level. The system also includes a means for providing appropriate feedback to the learner. The evaluation means compares the learner's answers with preset correct answers and makes an accurate judgment. This creates an effective programming learning environment that is tailored to the individual pace of each student.
[0006] "Generation means" refers to a device or program that uses live artificial intelligence to automatically generate questions based on the learner's learning level.
[0007] "Learners" refers to individuals, primarily elementary and junior high school students, who use the system to learn programming.
[0008] "Learning level" is an indicator of the learner's programming skills and depth of knowledge, and serves as a criterion when the system adjusts the difficulty of questions.
[0009] A "programming problem" refers to a task provided for a learner to solve to teach a specific programming concept or technique.
[0010] "Terminal" refers to a device such as a computer or smartphone that a learner uses to access the system and submit questions and answers.
[0011] "Evaluation means" refers to a device or program that analyzes answers submitted by learners and determines whether they are correct or incorrect.
[0012] "Feedback" refers to information that the system provides to learners to support their learning, such as the results of their answers and areas for improvement. [Brief explanation of the drawings]
[0013] [Figure 1]1 is a conceptual diagram showing an example of the configuration of a data processing system according to a first embodiment. [Figure 2] 1 is a conceptual diagram showing an example of main functions of a data processing device and a smart device according to a first embodiment. [Figure 3] FIG. 10 is a conceptual diagram showing an example of the configuration of a data processing system according to a second embodiment. [Figure 4] FIG. 10 is a conceptual diagram showing an example of main functions of a data processing device and smart glasses according to a second embodiment. [Figure 5] FIG. 10 is a conceptual diagram showing an example of the configuration of a data processing system according to a third embodiment. [Figure 6] FIG. 11 is a conceptual diagram showing an example of main functions of a data processing device and a headset-type terminal according to a third embodiment. [Figure 7] FIG. 10 is a conceptual diagram showing an example of the configuration of a data processing system according to a fourth embodiment. [Figure 8] FIG. 10 is a conceptual diagram showing an example of main functions of a data processing device and a robot according to a fourth embodiment. [Figure 9] 1 shows an emotion map onto which multiple emotions are mapped. [Figure 10] 1 shows an emotion map onto which multiple emotions are mapped. [Figure 11] FIG. 3 is a sequence diagram showing a processing flow of the data processing system according to the first embodiment. [Figure 12] FIG. 10 is a sequence diagram showing the flow of processing in the data processing system in Application Example 1. [Figure 13] FIG. 10 is a sequence diagram showing the flow of processing in the data processing system according to the second embodiment when an emotion engine is combined. [Figure 14] FIG. 10 is a sequence diagram showing the flow of processing in the data processing system in Application Example 2 when an emotion engine is combined. DETAILED DESCRIPTION OF THE INVENTION
[0014] 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.
[0015] First, the terms used in the following description will be explained.
[0016] In the following embodiments, a coded processor (hereinafter simply referred to as a "processor") may be a single arithmetic device or a combination of multiple arithmetic devices. Furthermore, a processor may be a single type of arithmetic device or a combination of multiple types of arithmetic devices. Examples of arithmetic devices include a CPU (Central Processing Unit), a GPU (Graphics Processing Unit), a GPGPU (General-Purpose computing on Graphics Processing Units), and an APU (Accelerated Processing Unit).
[0017] 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.
[0018] 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.
[0019] In the following embodiments, a communication I / F (Interface) with a symbol is an interface including a communication processor, an antenna, etc. The communication I / F controls communication between multiple computers. Examples of communication standards applied to the communication I / F include wireless communication standards including 5G (5th Generation Mobile Communication System), Wi-Fi (registered trademark), Bluetooth (registered trademark), etc.
[0020] 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."
[0021] [First embodiment]
[0022] FIG. 1 shows an example of the configuration of a data processing system 10 according to the first embodiment.
[0023] 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.
[0024] The data processing device 12 includes a computer 22, a database 24, and a communication I / F 26. The computer 22 is an example of a "computer" according to the technology of the present disclosure. The computer 22 includes a processor 28, a RAM 30, and a storage 32. The processor 28, the RAM 30, and the storage 32 are connected to a bus 34. The database 24 and the communication I / F 26 are also connected to the bus 34. The communication I / F 26 is connected to a network 54. Examples of the network 54 include a WAN (Wide Area Network) and / or a LAN (Local Area Network).
[0025] 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.
[0026] The reception device 38 includes a touch panel 38A, a microphone 38B, and the like, and receives user input. The touch panel 38A detects contact with an indicator (for example, a pen or a finger) to receive user input by the touch of the indicator. The microphone 38B detects the user's voice to receive user input by voice. The control unit 46A transmits data indicating the user input received by the touch panel 38A and the microphone 38B to the data processing device 12. In the data processing device 12, the specific processing unit 290 acquires the data indicating the user input.
[0027] The output device 40 includes a display 40A and a speaker 40B, and presents data to the user 20 by outputting the data in a form of expression that the user 20 can perceive (for example, audio and / or text). The display 40A displays visible information such as text and images in accordance with instructions from the processor 46. The speaker 40B outputs audio in accordance with instructions from the processor 46. The camera 42 is a compact digital camera equipped with an optical system including a lens, aperture, and shutter, and an imaging element such as a CMOS (Complementary Metal-Oxide-Semiconductor) image sensor or a CCD (Charge Coupled Device) image sensor.
[0028] 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.
[0029] FIG. 2 shows an example of the main functions of the data processing device 12 and the smart device 14.
[0030] 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.
[0031] 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.
[0032] In the smart device 14, the processor 46 performs the reception output process. The storage 50 stores a reception output program 60. The reception output program 60 is used in conjunction with the specific processing program 56 by the data processing system 10. The processor 46 reads the reception output program 60 from the storage 50 and executes the read reception output program 60 on the RAM 48. The reception output process is realized by the processor 46 operating as the control unit 46A in accordance with the reception output program 60 executed on the RAM 48.
[0033] Next, a description will be given of the specific processing performed by the specific processing unit 290 of the data processing device 12. In the following description, the data processing device 12 will be referred to as a "server" and the smart device 14 will be referred to as a "terminal."
[0034] The system of the present invention uses artificial intelligence as a generation means to automatically generate programming problems based on the learning level of the learner and provide them to the learner's terminal. Below, a detailed description of an embodiment of the system of the present invention will be given.
[0035] First, we will explain the overall operation of the system. A learner requests a new programming problem using their own device. When the device sends the request to the server, the server checks the learner's learning level. The server uses artificial intelligence to generate programming problems appropriate for that learning level and sends them to the device. When the learner answers the problem and sends the results back from the device to the server, the server evaluates the accuracy of the answer and updates the learner's learning level.
[0036] Next, we will explain the specific operation of each process. The AI generator, which serves as the generation means, selects or generates appropriate questions according to the learner's learning level. The difficulty of the questions is divided into stages based on their complexity and the skills required.
[0037] When a learner requests a question, the server looks up the learner's current level in the database. The server generates a question appropriate to this level and sends it to the device. For example, a learner at level 1 is provided with a question that simply asks them to print "Hello, World!"
[0038] After the learner works on the questions and writes down the answers, the device sends the answers to the server. The server analyzes the received answers using an evaluation tool and determines whether they are correct. At this time, the server compares them with the correct answers set in advance. If the answer is correct, the server raises the learner's learning level by one.
[0039] Furthermore, the system is equipped with a means for providing feedback to the learner. The server sends the results of the correct or incorrect answer back to the terminal, and provides appropriate feedback to the learner. For example, if the answer is correct, it displays "Correct! Proceed to the next level," and if the answer is incorrect, it displays "Incorrect. Please study this part again."
[0040] As a concrete example, consider the case where learner A requests a new problem. If learner A's current level is 1, the server generates a level 1 problem and displays "print('Hello, World!') \n What does this code output?" on the terminal. When learner A enters the answer "Prints Hello, World!" and submits it from the terminal, the server determines this as the correct answer. The server raises learner A's level to 2 and provides feedback to advance to the next level.
[0041] In this way, the system of the present invention automatically generates programming problems according to the learner's learning level, evaluates the answers, and provides appropriate feedback, thereby effectively improving the learner's programming skills.
[0042] The processing flow will be explained below.
[0043] Step 1: Request a new issue
[0044] A user requests a new programming problem using a terminal, which accesses the URL "GET / get_problem / student_id".
[0045] Step 2: Accepting the request
[0046] The server receives the request and calls the get_problem function.
[0047] Step 3: Check your learning level
[0048] The server references the record corresponding to the student_id of the requested learner from the database and checks the learning level of that learner.
[0049] Step 4: Generate the problem
[0050] The server uses artificial intelligence to generate questions of a suitable difficulty level based on the learner's learning level. At this stage, questions are selected or generated.
[0051] Step 5: Return the issue
[0052] The server converts the generated questions into JSON format and sends it back to the terminal via an HTTP response.
[0053] Step 6: View the problem
[0054] The terminal displays the problem received from the server to the user, who then works on the problem.
[0055] Step 7: Prepare your answer
[0056] The user works through the questions and writes down the answers.
[0057] Step 8: Submit your answers
[0058] The user uses the terminal to submit the answer to the URL "POST / submit_answer / student_id". At this time, the answer and question content are included in the request body in JSON format.
[0059] Step 9: Accepting the Answer
[0060] The server receives the request and calls the submit_answer function.
[0061] Step 10: Extracting the Answer
[0062] The server extracts the answer and question from the request body.
[0063] Step 11: Determine the answer
[0064] The server determines whether the answer retrieved is correct by comparing it with a preset correct answer.
[0065] Step 12: Update the Level
[0066] If the answer is correct, the server raises the learner's learning level by one, specifically by incrementing the value of the level field in the database.
[0067] Step 13: Generate results
[0068] The server converts the answer result into JSON format.
[0069] Step 14: Returning the results
[0070] The server sends the results back to the device via an HTTP response, and the user can check the results on their own device.
[0071] Step 15: Viewing feedback
[0072] The device displays the results received from the server to the user. For example, if the answer is correct, it displays "Correct! Proceed to the next level.", and if the answer is incorrect, it displays "Incorrect. Please study this part again."
[0073] In this way, through a series of steps, learners can answer programming questions appropriate to their learning level and proceed to the next step based on the results.
[0074] Example 1
[0075] Next, a description will be given of Example 1. In the following description, the data processing device 12 will be referred to as a "server" and the smart device 14 will be referred to as a "terminal."
[0076] In conventional educational systems, it is difficult to provide programming problems that correspond to the individual learning levels of students, which makes it difficult to expect improvements in learning effectiveness.In addition, there is also the issue of a heavy burden on teachers because the evaluation of answers and appropriate updating of learning levels are not automated.
[0077] The specific processing by the specific processing unit 290 of the data processing device 12 in the first embodiment is realized by the following means.
[0078] In this invention, the server includes means for requesting new programming problems from the learner's terminal, means for transmitting the request to the server, means for the server to confirm the user's learning level, means for the server to generate programming problems based on the learning level using a generative AI model, means for the learner to provide the generated problems to the learner's terminal, means for the learner to input answers into the terminal and transmit the answers to the server, means for evaluating the answers, and means for updating the learning level based on the learner's answers. This enables programming learning that is optimized for each learner, and also reduces the burden on teachers through automated answer evaluation and learning level updates.
[0079] "Means for requesting new programming problems from a learner's terminal" refers to a means for a learner to use his or her own terminal to request a new programming problem from the system.
[0080] The "means for sending a request to a server" is a means for sending a request for a new programming problem sent from a learner's terminal to a server via a communication protocol.
[0081] The "means for the server to check the learning level of the user" refers to the means by which the server refers to the database and obtains the current learning level of the user.
[0082] "Means for a server to utilize a generative AI model to generate programming problems based on learning level" means means for a server to utilize a generative AI model to automatically generate programming problems appropriate for a user's specific learning level.
[0083] The "means for providing the generated problem to the learner's terminal" is a means for transmitting the programming problem generated by the server to the learner's terminal and displaying it to the user.
[0084] "Means for a learner to input answers into a terminal and transmit the answers to a server" refers to means for a learner to input answers to displayed programming problems into a terminal and transmit the input answers to a server.
[0085] The "means for evaluating answers" is a means for analyzing the answers received by the server from the learner and determining whether they are correct or incorrect.
[0086] The "means for updating the learning level based on the learner's answer" is a means for the server to update the user's learning level based on whether the answer is correct or incorrect.
[0087] The system of the present invention utilizes a generative AI model to automatically generate programming problems based on the learner's learning level and provides them to the learner's terminal. Below, we will explain in detail the embodiments for implementing the system of the present invention.
[0088] First, as an overview of the entire system, a learner uses a device to request a new programming problem. The device sends the request to the server, which checks the learner's learning level and then uses a generative AI model to generate a programming problem appropriate to the learner's learning level and sends it to the device. The learner then answers the problem and sends the answer from the device to the server. The server evaluates the received answer and updates the learner's learning level. The server also provides appropriate feedback to the learner based on the evaluation results.
[0089] The specific hardware and software are as follows:
[0090] Hardware:
[0091] Devices: personal computers, tablets, smartphones, etc.
[0092] Server: High-Performance Computing Server
[0093] software:
[0094] Generative AI models: For example, GPT-4
[0095] Database: A database management system for managing learners' learning levels
[0096] Communication protocol: HTTP / HTTPS
[0097] As a concrete example, consider the case where learner A requests a new programming problem. Learner A's device operates as follows:
[0098] 1. User: Learner A launches the application and clicks the "Create a new question" button.
[0099] 2. Device: Receives Learner A's request and sends the request data in JSON format to the server by POSTing it to the API endpoint.
[0100] Server behavior:
[0101] 1. Server: Receives the request and retrieves Learner A's current learning level (e.g., LEVEL_1) from the database.
[0102] 2. Server: Sends a prompt to a generative AI model such as GPT-4. An example of a prompt would be "Please generate a programming problem for LEVEL_1."
[0103] 3. Server: Send the generated question (e.g., print('Hello, World!') \n What does this code output?) to the terminal as an HTTP response.
[0104] The process after learner A receives the questions is as follows:
[0105] 1. User: Learner A works on the problem, enters the answer (e.g., "Prints Hello, World!") into the terminal, and presses the "Submit" button.
[0106] 2. Terminal: Sends the answer to the server.
[0107] Server Actions (cont.):
[0108] 1. Server: Receives the answer and compares it with the pre-set correct answers to determine whether it is correct or incorrect.
[0109] 2. Server: If the answer is correct, update Learner A's learning level by one level (e.g., LEVEL_2) and reflect it in the database.
[0110] 3. Server: Generates a feedback message (e.g., "Correct! Proceed to the next level.") based on the evaluation results and sends it to the device.
[0111] In this way, learners can effectively improve their programming skills by answering questions at the appropriate level. Furthermore, the evaluation of answers and updating of learning levels are automated, allowing learners to progress smoothly and reducing the burden on teachers.
[0112] The flow of the identification process in the first embodiment will be described with reference to FIG.
[0113] Step 1: User requests a new programming problem
[0114] The user launches the learning application and clicks the "Please give me a new question" button.
[0115] Input: User request click
[0116] Output: Request data for a new issue
[0117] Step 2: The device sends a request to the server
[0118] The terminal receives the request data and sends it to the server using the HTTP protocol.
[0119] Input: Request data for a new issue
[0120] Output: HTTP request to the server
[0121] Step 3: The server checks the user's learning level
[0122] The server receives the request and accesses a database to obtain the user's learning level.
[0123] Input: HTTP request
[0124] Output: User learning level data
[0125] Step 4: The server uses the generative AI model to generate programming problems based on the learning level.
[0126] Based on the acquired learning level data, the server sends prompts to the generative AI model (e.g., GPT-4) to generate appropriate programming problems.
[0127] Input: User learning level data, prompt (e.g. "Generate programming problems for LEVEL_1")
[0128] Output: The generated programming problem
[0129] Step 5: Providing the server-generated problem to the device
[0130] The server sends the generated programming questions to the terminal as an HTTP response.
[0131] Input: Generated programming problem
[0132] Output: HTTP response to the device
[0133] Step 6: The user works on the problem and enters the answer into the device.
[0134] The user works through programming problems displayed on the terminal and enters the answers in the input fields.
[0135] Input: Generated programming problem
[0136] Output: User's answer data
[0137] Step 7: The device sends the answer to the server
[0138] The terminal transmits the answer data entered by the user to the server using the HTTP protocol.
[0139] Input: User's answer data
[0140] Output: HTTP request to the server
[0141] Step 8: The server evaluates the answer
[0142] The server analyzes the received answer data using an evaluation means to determine whether the answer is correct or not. The server compares the user's answer with a preset correct answer.
[0143] Input: User's answer data, preset correct answer data
[0144] Output: Evaluation result (correct or incorrect)
[0145] Step 9: The server updates the user's learning level.
[0146] If the answer is correct, the server raises the user's learning level by one and reflects this in the database. If the answer is incorrect, the level is not updated.
[0147] Input: Assessment result (correct or incorrect), user's current learning level data
[0148] Output: Updated learning level data
[0149] Step 10: The server sends feedback to the device
[0150] The server generates a feedback message based on the evaluation result and sends it to the terminal as an HTTP response. For example, if the answer is correct, it generates a message saying "That's right! Proceed to the next level."
[0151] Input: Evaluation result (correct or incorrect)
[0152] Output: Feedback message, HTTP response to the device
[0153] Step 11: User reviews feedback
[0154] The user checks the feedback message displayed on the terminal.
[0155] Input: Feedback message
[0156] Output: User's learning behavior (attempting the next problem, relearning, etc.)
[0157] In this way, by sequentially explaining the inputs and outputs and specific operations at each processing step, the flow of the entire system becomes clear.
[0158] (Application example 1)
[0159] Next, a description will be given of Application Example 1. In the following description, the data processing device 12 will be referred to as a "server" and the smart device 14 will be referred to as a "terminal."
[0160] In conventional programming learning systems, it is difficult to provide problems appropriate to the learner's learning level, making it difficult to conduct effective learning. In addition, there is a lack of means for learners to learn in a real-time interactive environment, making it difficult to motivate learners and improve their understanding.
[0161] The specific processing by the specific processing unit 290 of the data processing device 12 in the application example 1 is realized by the following means.
[0162] In this invention, the server includes means for generating programming problems based on the learning level of a learner using a generation artificial intelligence as a generation means, means for providing the problems generated by the generation means to the learner's display device, means for evaluating answers received from the learner's display device, means for updating the learning level based on the learner's answers, and means for providing an environment in which the learner can interactively answer problems using virtual reality technology for constructing a virtual space, thereby enabling the learner to efficiently answer problems suited to their level and providing an interactive learning environment in real time.
[0163] "Generative AI as a generation means" refers to AI used to generate programming problems based on the learner's learning level.
[0164] "Student display device" means a device used by a learner to view and interact with content, such as smart glasses or a head-mounted display.
[0165] The "evaluation means" is a system that has the function of analyzing the answers received from the learner's terminal and determining whether they are correct or incorrect.
[0166] A "means for updating learning level" refers to a system that has the function of reevaluating a learner's current learning level based on the learner's answers and adjusting the level as necessary.
[0167] "Virtual space" refers to a virtual three-dimensional environment generated using computer technology, in which learners can engage in interactive activities using virtual reality technology.
[0168] "Virtual reality technology" refers to technology that allows users to interact in real time within a virtual environment, and includes head-mounted displays and sensor technology.
[0169] The system of the present invention uses artificial intelligence as a generation means to automatically generate programming problems based on the learner's learning level and provide them to the learner's display device. To implement this system, the following hardware, software, and procedures are used.
[0170] Hardware and Software
[0171] Display device: Use smart glasses (e.g., Oculus Quest 2) or a head-mounted display.
[0172] Server: Uses Python, Flask, and TensorFlow to run generative AI models.
[0173] Virtual reality technology: We use Unity to create a virtual space, providing an interactive learning environment for learners.
[0174] Specific operation of the system
[0175] 1. Question generation based on learner level:
[0176] The learner wears a display device and requests a new programming problem in the virtual space. This request is sent to the server, which checks the learner's current learning level and generates an appropriate problem using artificial intelligence (AI) as a generation means.
[0177] 2. Providing generated questions:
[0178] The server sends the generated questions to the learner's display device and displays them in the virtual space, allowing the learner to work on the questions interactively.
[0179] 3. Evaluation and feedback of answers:
[0180] When a learner enters an answer, the data is sent to the server, which compares it with the correct answers set in advance and evaluates whether the answer is correct. The result is fed back to the learner, and if the answer is correct, the learning level is updated.
[0181] Specific examples
[0182] For example, if a learner is at level 2, they would follow these steps:
[0183] 1. The learner verbally requests, "Show me a new question" in the virtual space.
[0184] 2. The server generates a prompt based on the learner's level 2:
[0185] Prompt: "User is level 2. Generate a question about basic Python loops."
[0186] 3. A question is displayed on the learner's display (e.g., "What is the output when you run the following Python code: for i in range(5): print(i)").
[0187] 4. Once the learner enters and submits their answer, the server evaluates the answer and provides appropriate feedback, such as "That's correct. Proceed to the next level."
[0188] In this way, the system of the present invention utilizes virtual reality technology to enable learners to interactively learn programming problems suited to their own level.
[0189] The flow of the specific processing in the application example 1 will be described with reference to FIG.
[0190] Step 1:
[0191] A user wears a display device (smart glasses or a head-mounted display) and requests a new programming problem in the virtual space. This request is sent from the user's device to the server.
[0192] Input: User's spoken request to "Show me new questions"
[0193] Output: The device sends the request data to the server
[0194] Step 2:
[0195] The server processes the received request and retrieves the user's current learning level from a database.
[0196] Input: User request data
[0197] Output: Learning level obtained from the database
[0198] Step 3:
[0199] The server generates appropriate prompt sentences for the generative AI model based on the learning level.
[0200] Input: Learning level
[0201] Output: Generated prompt (e.g. "User's learning level is 2. Please generate a question about basic Python loops.")
[0202] Step 4:
[0203] The generative AI model generates programming problems appropriate to the level based on the prompt text.
[0204] Input: prompt statement
[0205] Output: Generated programming questions (e.g., "What is the output when you run the following Python code: for i in range(5): print(i)")
[0206] Step 5:
[0207] The server sends the generated questions to the user's terminal, and the questions are displayed on the display device.
[0208] Input: Generated programming problem
[0209] Output: Programming questions sent to terminal
[0210] Step 6:
[0211] The user answers the questions displayed on the display device, and the answers are sent from the terminal to the server.
[0212] Input: User's answer to the question
[0213] Output: The device sends the answer data to the server
[0214] Step 7:
[0215] The server evaluates the received answer by comparing it with a predefined set of correct answers.
[0216] Input: User's answer data
[0217] Output: Correctness of answer
[0218] Step 8:
[0219] Based on the result of the correct / incorrect judgment, the server updates the user's learning level as necessary, generates appropriate feedback, and sends it to the user's terminal.
[0220] Input: Correct / incorrect result
[0221] Output: Feedback message and updated learning level
[0222] Step 9:
[0223] The user's terminal displays the received feedback on a display device to provide the feedback to the user.
[0224] Input: Feedback message
[0225] Output: Feedback message displayed on the display device
[0226] In this way, users can efficiently solve program problems appropriate to their level, providing a real-time interactive learning environment.
[0227] Furthermore, an emotion engine that estimates the user's emotion may be combined. That is, the identification processing unit 290 may estimate the user's emotion using the emotion identification model 59 and perform identification processing using the user's emotion.
[0228] The present invention relates to a system that uses artificial intelligence as a generation means to automatically generate programming problems based on the learner's learning level and provides them to the learner's terminal. It also includes a function that combines an emotion engine that recognizes the user's emotions to provide the learner with appropriate feedback and assistance. Below, we will explain in detail the embodiments of the system of the present invention.
[0229] First, we will describe the overall operation of the system. When a learner requests a new programming problem, the device sends the request to the server. The server checks the learner's current learning level and uses generative artificial intelligence to generate programming problems appropriate for that level. These generated problems are provided to the learner via the device. When the learner answers the problem and sends the results from the device to the server, the server evaluates the correctness of the answer and updates the learner's learning level. The server also uses an emotion engine to recognize the learner's emotions and provides appropriate feedback based on those emotions.
[0230] Next, the specific operation of each process will be described in detail.
[0231] 1. Generating programming problems
[0232] When a learner requests a new problem using their device, the server references the learner's learning level in the database. The server then uses generative artificial intelligence to generate programming problems that match the learner's learning level. The difficulty of the problems is designed to gradually increase.
[0233] 2. Providing the problem
[0234] The generated programming problems are sent from the server to the terminal, which displays them to the learner, who then works on the displayed problems.
[0235] 3. Submitting and Evaluating Your Answers
[0236] After a learner answers a question, the answer is sent to the server via the device. The server evaluates the received answer and determines whether it is correct or incorrect. This determination is made by comparing it with a preset correct answer.
[0237] 4. Learning Level Update
[0238] If the answer is correct, the server raises the learner's learning level by one, which is achieved by incrementing the "learning level" field in the database.
[0239] 5. Emotion Recognition and Feedback
[0240] The server is equipped with an emotion engine that recognizes the learner's emotions. Specifically, emotions are identified by analyzing the learner's facial expressions, tone of voice, and input speed. For example, if the learner is having difficulty, the emotion engine will recognize this and report it to the server. The server will respond by sending the learner an encouraging message or lowering the difficulty of the questions. On the other hand, if the learner is enjoying the task, it will provide feedback by increasing the difficulty or sending a praising message.
[0241] As a concrete example, consider the case where Learner A requests a new problem. Let's assume Learner A's current level is 1. The server generates a level 1 problem and displays "print('Hello, World!') \n What does this code output?" on the terminal. When Learner A enters the answer "Prints Hello, World!" and sends it from the terminal, the server determines this to be the correct answer. The server raises Learner A's level to 2 and provides feedback such as "That's correct! Great!" to help Learner A tackle the next problem with confidence. Furthermore, if the emotion engine recognizes that Learner A is enjoying the task, it will raise the difficulty of the next problem appropriately.
[0242] In this way, the system of the present invention automatically generates programming problems that correspond to the individual learner's pace, evaluates the answers, and further uses an emotion engine to provide feedback that is adapted to the learner's emotions, thereby effectively improving the learner's programming skills.
[0243] The processing flow will be explained below.
[0244] Step 1: Request a new issue
[0245] A user requests a new programming problem from a terminal by accessing the URL "GET / get_problem / student_id" from the terminal.
[0246] Step 2: Accepting the request
[0247] The server receives the request and calls the get_problem function.
[0248] Step 3: Check your learning level
[0249] The server references the record corresponding to the student_id of the requested learner from the database and checks the learning level of the relevant learner.
[0250] Step 4: Generate the problem
[0251] The server uses artificial intelligence to generate programming problems of a corresponding level of difficulty based on the learner's learning level.
[0252] Step 5: Return the issue
[0253] The server converts the generated questions into JSON format and sends it back to the terminal as an HTTP response.
[0254] Step 6: View the problem
[0255] The terminal receives the programming problems from the server and displays them to the user, who then works on the problems.
[0256] Step 7: Prepare your answer
[0257] The user works through the questions and writes down the answers.
[0258] Step 8: Submit your answers
[0259] The user uses the terminal to submit the answer to the URL "POST / submit_answer / student_id", including the answer and question details in the JSON format request body.
[0260] Step 9: Accepting the Answer
[0261] The server receives the request and calls the submit_answer function.
[0262] Step 10: Extracting the Answer
[0263] The server extracts the answer and question from the request body.
[0264] Step 11: Determine the answer
[0265] The server determines whether the answer it retrieves is correct by comparing it with a preset correct answer.
[0266] Step 12: Update the Level
[0267] If the answer is correct, the server raises the learner's learning level by one, specifically by incrementing the value of the "learning level" field in the database.
[0268] Step 13: Generate results
[0269] The server converts the answer result into JSON format.
[0270] Step 14: Returning the results
[0271] The server returns the results to the terminal as an HTTP response, allowing the user to check their answers.
[0272] Step 15: Viewing feedback
[0273] The device displays the answer results received from the server to the user. For example, if the answer is correct, it displays "Correct! Proceed to the next level.", and if the answer is incorrect, it displays "Incorrect. Please study this part again."
[0274] Step 16: Recognizing User Emotions
[0275] The device analyzes the learner's facial expressions, tone of voice, and typing speed, and the emotion engine recognizes the learner's emotions. Specifically, it uses sensors such as a camera and microphone to capture emotional data in real time.
[0276] Step 17: Generate emotion-based feedback
[0277] The server generates appropriate feedback and assistance for the learner based on the emotional data received from the emotion engine. For example, if negative emotions are detected, it may send encouraging messages or adjust the difficulty of the questions.
[0278] Step 18: Provide emotion-based feedback
[0279] The server generates feedback and assistance, which is sent to the device, and the device displays it to the user. For example, it might say, "That was a bit difficult. Let's try an easier problem next time!"
[0280] In this way, the user, device, server, and emotion engine work together to provide a programming learning environment that responds to each learner's individual pace and emotions, supporting effective learning.
[0281] Example 2
[0282] Next, a description will be given of Example 2. In the following description, the data processing device 12 will be referred to as a "server" and the smart device 14 will be referred to as a "terminal."
[0283] Current learning support systems lack the ability to automatically generate questions appropriate to the learner's level, or the ability to evaluate the answers. Furthermore, they lack the ability to grasp the learner's emotional state and provide feedback accordingly, making it difficult to efficiently improve the learner's skills while maintaining their motivation. These issues need to be addressed.
[0284] The specific processing by the specific processing unit 290 of the data processing device 12 in the second embodiment is realized by the following means.
[0285] In this invention, the server includes a means for generating programming problems based on the learner's learning level using a generation artificial intelligence as a generation means, a means for providing the problems generated by the generation means to the learner's information processing device, and a means for evaluating input received from the learner's information processing device. This enables automatic generation of problems appropriate to the learner's learning level and accurate evaluation of the answers. Furthermore, by including a means for recognizing the learner's emotions using an emotion recognition engine and providing appropriate feedback based on the recognition results, feedback can be provided according to the learner's emotional state, effectively supporting the learner's motivation to learn and the improvement of their skills.
[0286] "Generation means" refers to a generative artificial intelligence that generates programming problems based on the learning level of the learner.
[0287] "Student" means an individual who seeks to improve their skills by solving programming problems.
[0288] "Learning level" is an indicator that shows the learner's current level of programming skill.
[0289] "Information processing device" refers to the device on which learners answer questions and receive feedback.
[0290] "Input" refers to the answers to questions and other data that a learner sends to the server via an information processing device.
[0291] "Evaluation means" refers to the function that receives learner input, analyzes the content, and determines whether it is correct or incorrect.
[0292] A "database" refers to a storage device that stores information such as a learner's learning level and past answer history.
[0293] An "emotion recognition engine" refers to a function that identifies a learner's emotional state by analyzing their facial expressions, tone of voice, input speed, etc.
[0294] "Feedback" refers to messages or instructions provided to a learner based on their answers or emotional state.
[0295] This invention relates to a system that automatically generates programming problems based on the learner's learning level and provides them to the learner. This system uses generative artificial intelligence as a generation method to provide appropriate programming problems to the learner and evaluate their answers. It also includes a function that combines an emotion recognition engine to provide appropriate feedback and assistance to the learner.
[0296] First, let us explain the overall operation of the system. When a learner requests a new programming problem, the device sends the request to the server. At this stage, the device is the hardware that accepts user requests. The server receives the request and retrieves the learner's current learning level from a database. Based on this data, the server uses a generative AI (for example, OpenAI's GPT-3 model) to generate a programming problem appropriate for the learner's learning level. At this time, the server sends a prompt to the generative AI. An example of a prompt is, "Generate a programming problem appropriate for the learner's level 1. Create a problem that includes simple Python printed text."
[0297] The generated programming problems are sent from the server to the terminal, which displays them to the learner. The user works on the displayed problems and enters their answers into the terminal. The entered answers are then sent to the server via the terminal. The server evaluates the received answers and determines how they should be evaluated. This evaluation includes comparing the answers with a pre-defined list of correct answers. If the learner's answer is correct, the server updates the learner's learning level. Specifically, this is achieved by incrementing the learning level field in the database.
[0298] Furthermore, the server is equipped with an emotion recognition engine that can recognize the learner's emotions. Specifically, it analyzes data collected by the device, such as the learner's facial expressions, tone of voice, and typing speed, to identify the learner's emotional state. For example, if the learner is having difficulty, the emotion recognition engine analyzes it and reports it to the server, which can then send the learner an encouraging message. Also, if the learner is enjoying the lesson, it provides feedback by increasing the difficulty level or sending a praising message.
[0299] As a concrete example, consider the case where Learner A requests a new problem. If Learner A's learning level is 1, the server generates the problem "print('Hello, World!') \n What does this code output?" based on this level. When Learner A enters the answer "Prints Hello, World!" and sends it from the device, the server determines this answer as correct and raises Learner A's learning level to 2. Furthermore, if the emotion recognition engine recognizes that Learner A is enjoying the task, the server decides to appropriately increase the difficulty of the next problem, along with the feedback "That's correct! Great!"
[0300] The system of the present invention effectively improves learners' programming skills by automatically generating programming problems tailored to the learner and providing appropriate feedback. The main hardware used includes a terminal (information processing device) and a server, and the main software includes a generative artificial intelligence (generative AI model) and an emotion recognition engine.
[0301] The flow of the identification process in the second embodiment will be described with reference to FIG.
[0302] Step 1:
[0303] Programming Problem Request
[0304] The user operates the device and clicks the "Request a new problem" button.
[0305] The terminal sends this request to the server.
[0306] Input: User's "Request a new issue" action.
[0307] Output: A request to the server to create a new problem.
[0308] Step 2:
[0309] Viewing student information
[0310] When the server receives a request, it connects to the database.
[0311] The server retrieves the user's learning level from the database.
[0312] Input: New question creation request, learner ID.
[0313] Output: The learner's current learning level.
[0314] Step 3:
[0315] Generating programming problems
[0316] The server sends a prompt sentence to the generative artificial intelligence (e.g., generative AI model) based on the learner's learning level.
[0317] Example: "Generate programming problems appropriate for level 1 learners. Create problems that include simple Python print statements."
[0318] The generative AI model receives a prompt and generates programming problems that correspond to the learner's learning level.
[0319] The server receives the generated questions.
[0320] Input: learning level, prompt statement.
[0321] Output: The generated programming problem.
[0322] Step 4:
[0323] Submitting and Viewing Issues
[0324] The server transmits the generated programming questions to the terminal.
[0325] The terminal displays the problem to the user.
[0326] Input: The generated programming problem.
[0327] Output: The programming problem displayed for the user to see.
[0328] Step 5:
[0329] Submitting and grading answers
[0330] The user enters the answer to the displayed programming question and clicks the submit button.
[0331] The terminal sends the answer to the server.
[0332] The server evaluates the received answers by checking them against a pre-defined list of correct answers.
[0333] Input: The user's answer.
[0334] Output: The correctness of the answer.
[0335] Step 6:
[0336] Learning Level Update
[0337] If the answer is correct, the server raises the learner's learning level by one.
[0338] The server updates the learner's record in the database.
[0339] Input: Correct / incorrect rating of answer.
[0340] Output: Updated learning level.
[0341] Step 7:
[0342] Emotion Recognition and Feedback
[0343] The server uses an emotion recognition engine to analyze the learner's emotions.
[0344] The device sends collected data such as the learner's facial expressions, tone of voice, and typing speed to a server.
[0345] An emotion recognition engine analyzes the data to identify the learner's emotional state.
[0346] The server generates appropriate feedback based on the emotion recognition results.
[0347] The terminal displays the feedback to the user.
[0348] Input: Emotional data (facial expressions, tone of voice, typing speed).
[0349] Output: Feedback message depending on emotional state.
[0350] (Application example 2)
[0351] Next, a description will be given of Application Example 2. In the following description, the data processing device 12 will be referred to as a "server" and the smart device 14 will be referred to as a "terminal."
[0352] Modern brick-and-mortar stores are required to understand the individual needs and emotions of customers and provide appropriate services accordingly. However, conventional systems have difficulty providing personalized services based on the learning level and emotions of individual customers. Furthermore, they lack a mechanism for recognizing emotions and providing appropriate feedback in real time.
[0353] The identification processing by the identification processing unit 290 of the data processing device 12 in Application Example 2 is realized by the following means. In this invention, the server includes: means for generating programming problems based on the learning level of a learner using a generation artificial intelligence as a generation means; means for providing the problems generated by the generation means to the learner's terminal; means for evaluating answers received from the learner's terminal; means for updating the learning level based on the learner's answers; means for suggesting products based on the customer's past purchase history and category information of interest; and means for using an emotion recognition engine that analyzes the customer's facial expressions and tone of voice. This makes it possible to provide services that meet the individual needs and emotions of customers and improve customer satisfaction.
[0354] definition statement
[0355] "Generative AI as a generation tool" is an artificial intelligence technology used to automatically generate appropriate programming problems based on the learner's learning level.
[0356] "Learning level" is an indicator that shows the depth of knowledge and skills that a learner has currently acquired.
[0357] A "terminal" refers to an electronic device that can be directly operated by a user, such as a personal computer or smartphone.
[0358] "Answer" refers to the answer that a learner enters to a programming question provided via a terminal.
[0359] An "assessment tool" is a mechanism used to accurately evaluate answers submitted by learners and determine whether they are correct or incorrect.
[0360] The "update means" is a process for updating the learning level to the latest state based on the learner's answer results.
[0361] "Purchase history" is a record of products and services that a customer has purchased in the past.
[0362] "Category information" is data about the categories of products or services in which a customer is interested.
[0363] "Proposal methods" are methods for providing optimal products and services based on customers' purchase history and category information.
[0364] An "emotion recognition engine" is a technology that analyzes a customer's facial expressions and tone of voice to identify their current emotions.
[0365] MODE FOR CARRYING OUT THE INVENTION
[0366] The present invention relates to a system that uses a generative AI model to provide personalized service based on the customer's learning level and emotions. This system is implemented via customer terminals or in-store robots, optimizing the customer experience. Detailed embodiments for implementing this system are described below.
[0367] System configuration
[0368] 1. Hardware
[0369] Device: Refers to the smartphone or computer used by the customer.
[0370] Robots: Robots that provide services to customers in stores, such as Pepper.
[0371] Camera and microphone: Devices that recognize the customer's facial expressions and voice. These are often built into the robot, but may also be attached to the terminal.
[0372] 2. Software
[0373] Generative AI model: An artificial intelligence that generates programming problems and suggestions based on the learner's learning level.
[0374] Emotion recognition engine: An engine that recognizes emotions by analyzing a customer's facial expressions and tone of voice. Examples include Google Cloud Vision API and Microsoft Azure Face API.
[0375] Database: Use MongoDB or SQL Server as a database to store customer purchase history and interest category information.
[0376] Program processing
[0377] The server performs the following process: First, when a customer enters a store and starts interacting with the robot, the robot's camera and microphone are activated and its emotion recognition engine analyzes the customer's facial expressions and tone of voice, thereby recognizing the customer's current emotions.
[0378] The server then retrieves the customer's past purchase history and category of interest information from a database and uses a generative AI model to suggest the most suitable products and services for the customer. The suggestions are then displayed on the robot's display or the customer's device.
[0379] For example, if a customer asks about a new product, the server will suggest the most suitable product based on the customer's past purchase history and current interests. As a specific example, if the database records that the customer has previously purchased entry-level products, the generative AI model will suggest new entry-level products.
[0380] Furthermore, the server utilizes an emotion recognition engine to generate feedback based on the customer's emotions. For example, if the server recognizes that the customer is having fun, it will provide a message such as "We're glad you're having fun!". On the other hand, if the customer is confused, it will generate a message such as "Are you in need of help? How can we help you?".
[0381] Prompt Sentence Examples
[0382] Generate the following Python program to enable an in-store robot to recognize customer emotions and provide appropriate feedback. It also suggests appropriate products based on the customer's learning level, as follows:
[0383] Beginner: ['Beginner Product A', 'Beginner Product B', 'Beginner Product C']
[0384] Intermediate: ['Intermediate Product A', 'Intermediate Product B', 'Intermediate Product C']
[0385] Advanced: ['Advanced Product A', 'Advanced Product B', 'Advanced Product C']
[0386] Emotion recognition is used to analyze the customer's facial expressions and tone of voice, and provide appropriate feedback based on the emotion: "Happy", "Confused", or "Other".
[0387] With the above-described configuration and processing, the present invention aims to improve customer satisfaction by providing suggestions and feedback in real time that meet the individual needs of customers.
[0388] The flow of the specific processing in the application example 2 will be described with reference to FIG.
[0389] Program processing flow
[0390] Step 1: Gather customer information
[0391] The server uses the robot's camera and microphone to collect the customer's facial expressions and tone of voice in real time. The camera captures the customer's facial expressions, and the microphone records their voice. This input data is sent to an emotion recognition engine, which analyzes the customer's emotions. The analysis results are output as emotions such as "enjoyed" or "confused."
[0392] Step 2: Get purchase history and category information
[0393] The server retrieves the customer's past purchase history and interest category information from the database. This database query inputs the purchase history and interest category data, and returns the results to the server as output.
[0394] Step 3: Generate programming problems
[0395] The server uses a generative AI model to generate optimal programming problems or product suggestions for each customer based on the acquired purchase history, category information, and analyzed emotional data. Here, the input is the customer's level, interest category, and emotional data, and the output is the generated programming problems or product information.
[0396] Step 4: Submitting suggestions and issues
[0397] The server sends the generated programming questions and product information to the terminal, which displays this information to the customer. The input is the generated content received from the server, and the output is that it is displayed on the customer's display.
[0398] Step 5: Evaluate and provide feedback on your answers
[0399] When a user inputs an answer to a provided programming problem, the answer is sent to the server via the terminal. The server then uses an evaluation means to determine the accuracy of the received answer. The input is the answer content, and the output is the evaluation result. After that, appropriate feedback is generated based on the emotions analyzed by the emotion recognition engine, and the feedback is again provided to the user.
[0400] Step 6: Update learning levels and customer information
[0401] The server updates the learner's learning level based on the user's answer. The server also records the purchase history and emotional changes in the database. The input is the latest answer and customer information, and the output is the updated learning level, new purchase history, and emotional records.
[0402] Through these steps, the server can provide personalized suggestions and feedback that correspond to the customer's individual needs and real-time emotions, which is expected to improve customer satisfaction.
[0403] 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.
[0404] The data generation model 58 is a so-called generative AI (Artificial Intelligence). An example of the data generation model 58 is ChatGPT (Internet Search<URL: https: / / openai.com / blog / chatgpt> ), Gemini (Internet search <url: https: gemini.google.com ?hl="ja">) and other generation AIs. The data generation model 58 is obtained by performing deep learning on a neural network. A prompt including an instruction is input to the data generation model 58, and inference data such as voice data indicating voice, text data indicating text, and image data indicating an image is also input. The data generation model 58 performs inference on the input inference data in accordance with the instruction indicated by the prompt, and outputs the inference result in a data format such as voice data and text data. Here, inference refers to, for example, analysis, classification, prediction, and / or summarization.
[0405] In the above embodiment, an example in which the specific process is performed by the data processing device 12 has been given, but the technology of the present disclosure is not limited to this, and the specific process may be performed by the smart device 14.
[0406] [Second embodiment]
[0407] FIG. 3 shows an example of the configuration of a data processing system 210 according to the second embodiment.
[0408] 3, the data processing system 210 includes the data processing device 12 and smart glasses 214. An example of the data processing device 12 is a server.
[0409] The data processing device 12 includes a computer 22, a database 24, and a communication I / F 26. The computer 22 is an example of a "computer" according to the technology of the present disclosure. The computer 22 includes a processor 28, a RAM 30, and a storage 32. The processor 28, the RAM 30, and the storage 32 are connected to a bus 34. The database 24 and the communication I / F 26 are also connected to the bus 34. The communication I / F 26 is connected to a network 54. Examples of the network 54 include a WAN (Wide Area Network) and / or a LAN (Local Area Network).
[0410] 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.
[0411] The microphone 238 receives instructions and the like from the user 20 by receiving voice uttered by the user 20. The microphone 238 captures the voice uttered by the user 20, converts the captured voice into audio data, and outputs it to the processor 46. The speaker 240 outputs audio in accordance with instructions from the processor 46.
[0412] Camera 42 is a small digital camera equipped with an optical system including a lens, aperture, and shutter, and an imaging element such as a CMOS (Complementary Metal-Oxide-Semiconductor) image sensor or a CCD (Charge Coupled Device) image sensor, and captures images of the surroundings of user 20 (for example, an imaging range defined by an angle of view equivalent to the field of vision of a typical healthy person).
[0413] 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.
[0414] 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.
[0415] The specific processing program 56 is an example of a "program" according to the technology of the present disclosure. The processor 28 reads the specific processing program 56 from the storage 32 and executes the read specific processing program 56 on the RAM 30. The specific processing is realized by the processor 28 operating as a specific processing unit 290 in accordance with the specific processing program 56 executed on the RAM 30.
[0416] 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.
[0417] In the smart glasses 214, the processor 46 performs the reception output process. A reception output program 60 is stored in the storage 50. The processor 46 reads the reception output program 60 from the storage 50 and executes the read reception output program 60 on the RAM 48. The reception output process is realized by the processor 46 operating as the control unit 46A in accordance with the reception output program 60 executed on the RAM 48.
[0418] Next, a description will be given of the identification process performed by the identification processing unit 290 of the data processing device 12. In the following description, the data processing device 12 will be referred to as the "server" and the smart glasses 214 will be referred to as the "terminal."
[0419] The system of the present invention uses artificial intelligence as a generation means to automatically generate programming problems based on the learning level of the learner and provide them to the learner's terminal. Below, a detailed description of an embodiment of the system of the present invention will be given.
[0420] First, we will explain the overall operation of the system. A learner requests a new programming problem using their own device. When the device sends the request to the server, the server checks the learner's learning level. The server uses artificial intelligence to generate programming problems appropriate for that learning level and sends them to the device. When the learner answers the problem and sends the results back from the device to the server, the server evaluates the accuracy of the answer and updates the learner's learning level.
[0421] Next, we will explain the specific operation of each process. The AI generator, which serves as the generation means, selects or generates appropriate questions according to the learner's learning level. The difficulty of the questions is divided into stages based on their complexity and the skills required.
[0422] When a learner requests a question, the server looks up the learner's current level in the database. The server generates a question appropriate to this level and sends it to the device. For example, a learner at level 1 is provided with a question that simply asks them to print "Hello, World!"
[0423] After the learner works on the questions and writes down the answers, the device sends the answers to the server. The server analyzes the received answers using an evaluation tool and determines whether they are correct. At this time, the server compares them with the correct answers set in advance. If the answer is correct, the server raises the learner's learning level by one.
[0424] Furthermore, the system is equipped with a means for providing feedback to the learner. The server sends the results of the correct or incorrect answer back to the terminal, and provides appropriate feedback to the learner. For example, if the answer is correct, it displays "Correct! Proceed to the next level," and if the answer is incorrect, it displays "Incorrect. Please study this part again."
[0425] As a concrete example, consider the case where learner A requests a new problem. If learner A's current level is 1, the server generates a level 1 problem and displays "print('Hello, World!') \n What does this code output?" on the terminal. When learner A enters the answer "Prints Hello, World!" and submits it from the terminal, the server determines this as the correct answer. The server raises learner A's level to 2 and provides feedback to advance to the next level.
[0426] In this way, the system of the present invention automatically generates programming problems according to the learner's learning level, evaluates the answers, and provides appropriate feedback, thereby effectively improving the learner's programming skills.
[0427] The processing flow will be explained below.
[0428] Step 1: Request a new issue
[0429] A user requests a new programming problem using a terminal, which accesses the URL "GET / get_problem / student_id".
[0430] Step 2: Accepting the request
[0431] The server receives the request and calls the get_problem function.
[0432] Step 3: Check your learning level
[0433] The server references the record corresponding to the student_id of the requested learner from the database and checks the learning level of that learner.
[0434] Step 4: Generate the problem
[0435] The server uses artificial intelligence to generate questions of a suitable difficulty level based on the learner's learning level. At this stage, questions are selected or generated.
[0436] Step 5: Return the issue
[0437] The server converts the generated questions into JSON format and sends it back to the terminal via an HTTP response.
[0438] Step 6: View the problem
[0439] The terminal displays the problem received from the server to the user, who then works on the problem.
[0440] Step 7: Prepare your answer
[0441] The user works through the questions and writes down the answers.
[0442] Step 8: Submit your answers
[0443] The user uses the terminal to submit the answer to the URL "POST / submit_answer / student_id". At this time, the answer and question content are included in the request body in JSON format.
[0444] Step 9: Accepting the Answer
[0445] The server receives the request and calls the submit_answer function.
[0446] Step 10: Extracting the Answer
[0447] The server extracts the answer and question from the request body.
[0448] Step 11: Determine the answer
[0449] The server determines whether the answer retrieved is correct by comparing it with a preset correct answer.
[0450] Step 12: Update the Level
[0451] If the answer is correct, the server raises the learner's learning level by one, specifically by incrementing the value of the level field in the database.
[0452] Step 13: Generate results
[0453] The server converts the answer result into JSON format.
[0454] Step 14: Returning the results
[0455] The server sends the results back to the device via an HTTP response, and the user can check the results on their own device.
[0456] Step 15: Viewing feedback
[0457] The device displays the results received from the server to the user. For example, if the answer is correct, it displays "Correct! Proceed to the next level.", and if the answer is incorrect, it displays "Incorrect. Please study this part again."
[0458] In this way, through a series of steps, learners can answer programming questions appropriate to their learning level and proceed to the next step based on the results.
[0459] Example 1
[0460] Next, a description will be given of Example 1. In the following description, the data processing device 12 will be referred to as a "server" and the smart glasses 214 will be referred to as a "terminal."
[0461] In conventional educational systems, it is difficult to provide programming problems that correspond to the individual learning levels of students, which makes it difficult to expect improvements in learning effectiveness.In addition, there is also the issue of a heavy burden on teachers because the evaluation of answers and appropriate updating of learning levels are not automated.
[0462] The specific processing by the specific processing unit 290 of the data processing device 12 in the first embodiment is realized by the following means.
[0463] In this invention, the server includes means for requesting new programming problems from the learner's terminal, means for transmitting the request to the server, means for the server to confirm the user's learning level, means for the server to generate programming problems based on the learning level using a generative AI model, means for the learner to provide the generated problems to the learner's terminal, means for the learner to input answers into the terminal and transmit the answers to the server, means for evaluating the answers, and means for updating the learning level based on the learner's answers. This enables programming learning that is optimized for each learner, and also reduces the burden on teachers through automated answer evaluation and learning level updates.
[0464] "Means for requesting new programming problems from a learner's terminal" refers to a means for a learner to use his or her own terminal to request a new programming problem from the system.
[0465] The "means for sending a request to a server" is a means for sending a request for a new programming problem sent from a learner's terminal to a server via a communication protocol.
[0466] The "means for the server to check the learning level of the user" refers to the means by which the server refers to the database and obtains the current learning level of the user.
[0467] "Means for a server to utilize a generative AI model to generate programming problems based on learning level" means means for a server to utilize a generative AI model to automatically generate programming problems appropriate for a user's specific learning level.
[0468] The "means for providing the generated problem to the learner's terminal" is a means for transmitting the programming problem generated by the server to the learner's terminal and displaying it to the user.
[0469] "Means for a learner to input answers into a terminal and transmit the answers to a server" refers to means for a learner to input answers to displayed programming problems into a terminal and transmit the input answers to a server.
[0470] The "means for evaluating answers" is a means for analyzing the answers received by the server from the learner and determining whether they are correct or incorrect.
[0471] The "means for updating the learning level based on the learner's answer" is a means for the server to update the user's learning level based on whether the answer is correct or incorrect.
[0472] The system of the present invention utilizes a generative AI model to automatically generate programming problems based on the learner's learning level and provides them to the learner's terminal. Below, we will explain in detail the embodiments for implementing the system of the present invention.
[0473] First, as an overview of the entire system, a learner uses a device to request a new programming problem. The device sends the request to the server, which checks the learner's learning level and then uses a generative AI model to generate a programming problem appropriate to the learner's learning level and sends it to the device. The learner then answers the problem and sends the answer from the device to the server. The server evaluates the received answer and updates the learner's learning level. The server also provides appropriate feedback to the learner based on the evaluation results.
[0474] The specific hardware and software are as follows:
[0475] Hardware:
[0476] Devices: personal computers, tablets, smartphones, etc.
[0477] Server: High-Performance Computing Server
[0478] software:
[0479] Generative AI models: For example, GPT-4
[0480] Database: A database management system for managing learners' learning levels
[0481] Communication protocol: HTTP / HTTPS
[0482] As a concrete example, consider the case where learner A requests a new programming problem. Learner A's device operates as follows:
[0483] 1. User: Learner A launches the application and clicks the "Create a new question" button.
[0484] 2. Device: Receives Learner A's request and sends the request data in JSON format to the server by POSTing it to the API endpoint.
[0485] Server behavior:
[0486] 1. Server: Receives the request and retrieves Learner A's current learning level (e.g., LEVEL_1) from the database.
[0487] 2. Server: Sends a prompt to a generative AI model such as GPT-4. An example of a prompt would be "Please generate a programming problem for LEVEL_1."
[0488] 3. Server: Send the generated question (e.g., print('Hello, World!') \n What does this code output?) to the terminal as an HTTP response.
[0489] The process after learner A receives the questions is as follows:
[0490] 1. User: Learner A works on the problem, enters the answer (e.g., "Prints Hello, World!") into the terminal, and presses the "Submit" button.
[0491] 2. Terminal: Sends the answer to the server.
[0492] Server Actions (cont.):
[0493] 1. Server: Receives the answer and compares it with the pre-set correct answers to determine whether it is correct or incorrect.
[0494] 2. Server: If the answer is correct, update Learner A's learning level by one level (e.g., LEVEL_2) and reflect it in the database.
[0495] 3. Server: Generates a feedback message (e.g., "Correct! Proceed to the next level.") based on the evaluation results and sends it to the device.
[0496] In this way, learners can effectively improve their programming skills by answering questions at the appropriate level. Furthermore, the evaluation of answers and updating of learning levels are automated, allowing learners to progress smoothly and reducing the burden on teachers.
[0497] The flow of the identification process in the first embodiment will be described with reference to FIG.
[0498] Step 1: User requests a new programming problem
[0499] The user launches the learning application and clicks the "Please give me a new question" button.
[0500] Input: User request click
[0501] Output: Request data for a new issue
[0502] Step 2: The device sends a request to the server
[0503] The terminal receives the request data and sends it to the server using the HTTP protocol.
[0504] Input: Request data for a new issue
[0505] Output: HTTP request to the server
[0506] Step 3: The server checks the user's learning level
[0507] The server receives the request and accesses a database to obtain the user's learning level.
[0508] Input: HTTP request
[0509] Output: User learning level data
[0510] Step 4: The server uses the generative AI model to generate programming problems based on the learning level.
[0511] Based on the acquired learning level data, the server sends prompts to the generative AI model (e.g., GPT-4) to generate appropriate programming problems.
[0512] Input: User learning level data, prompt (e.g. "Generate programming problems for LEVEL_1")
[0513] Output: The generated programming problem
[0514] Step 5: Providing the server-generated problem to the device
[0515] The server sends the generated programming questions to the terminal as an HTTP response.
[0516] Input: Generated programming problem
[0517] Output: HTTP response to the device
[0518] Step 6: The user works on the problem and enters the answer into the device.
[0519] The user works through programming problems displayed on the terminal and enters the answers in the input fields.
[0520] Input: Generated programming problem
[0521] Output: User's answer data
[0522] Step 7: The device sends the answer to the server
[0523] The terminal transmits the answer data entered by the user to the server using the HTTP protocol.
[0524] Input: User's answer data
[0525] Output: HTTP request to the server
[0526] Step 8: The server evaluates the answer
[0527] The server analyzes the received answer data using an evaluation means to determine whether the answer is correct or not. The server compares the user's answer with a preset correct answer.
[0528] Input: User's answer data, preset correct answer data
[0529] Output: Evaluation result (correct or incorrect)
[0530] Step 9: The server updates the user's learning level.
[0531] If the answer is correct, the server raises the user's learning level by one and reflects this in the database. If the answer is incorrect, the level is not updated.
[0532] Input: Assessment result (correct or incorrect), user's current learning level data
[0533] Output: Updated learning level data
[0534] Step 10: The server sends feedback to the device
[0535] The server generates a feedback message based on the evaluation result and sends it to the terminal as an HTTP response. For example, if the answer is correct, it generates a message saying "That's right! Proceed to the next level."
[0536] Input: Evaluation result (correct or incorrect)
[0537] Output: Feedback message, HTTP response to the device
[0538] Step 11: User reviews feedback
[0539] The user checks the feedback message displayed on the terminal.
[0540] Input: Feedback message
[0541] Output: User's learning behavior (attempting the next problem, relearning, etc.)
[0542] In this way, by sequentially explaining the inputs and outputs and specific operations at each processing step, the flow of the entire system becomes clear.
[0543] (Application example 1)
[0544] Next, a description will be given of Application Example 1. In the following description, the data processing device 12 will be referred to as a "server" and the smart glasses 214 will be referred to as a "terminal."
[0545] In conventional programming learning systems, it is difficult to provide problems appropriate to the learner's learning level, making it difficult to conduct effective learning. In addition, there is a lack of means for learners to learn in a real-time interactive environment, making it difficult to motivate learners and improve their understanding.
[0546] The specific processing by the specific processing unit 290 of the data processing device 12 in the application example 1 is realized by the following means.
[0547] In this invention, the server includes means for generating programming problems based on the learning level of a learner using a generation artificial intelligence as a generation means, means for providing the problems generated by the generation means to the learner's display device, means for evaluating answers received from the learner's display device, means for updating the learning level based on the learner's answers, and means for providing an environment in which the learner can interactively answer problems using virtual reality technology for constructing a virtual space, thereby enabling the learner to efficiently answer problems suited to their level and providing an interactive learning environment in real time.
[0548] "Generative AI as a generation means" refers to AI used to generate programming problems based on the learner's learning level.
[0549] "Student display device" means a device used by a learner to view and interact with content, such as smart glasses or a head-mounted display.
[0550] The "evaluation means" is a system that has the function of analyzing the answers received from the learner's terminal and determining whether they are correct or incorrect.
[0551] A "means for updating learning level" refers to a system that has the function of reevaluating a learner's current learning level based on the learner's answers and adjusting the level as necessary.
[0552] "Virtual space" refers to a virtual three-dimensional environment generated using computer technology, in which learners can engage in interactive activities using virtual reality technology.
[0553] "Virtual reality technology" refers to technology that allows users to interact in real time within a virtual environment, and includes head-mounted displays and sensor technology.
[0554] The system of the present invention uses artificial intelligence as a generation means to automatically generate programming problems based on the learner's learning level and provide them to the learner's display device. To implement this system, the following hardware, software, and procedures are used.
[0555] Hardware and Software
[0556] Display device: Use smart glasses (e.g., Oculus Quest 2) or a head-mounted display.
[0557] Server: Uses Python, Flask, and TensorFlow to run generative AI models.
[0558] Virtual reality technology: We use Unity to create a virtual space, providing an interactive learning environment for learners.
[0559] Specific operation of the system
[0560] 1. Question generation based on learner level:
[0561] The learner wears a display device and requests a new programming problem in the virtual space. This request is sent to the server, which checks the learner's current learning level and generates an appropriate problem using artificial intelligence (AI) as a generation means.
[0562] 2. Providing generated questions:
[0563] The server sends the generated questions to the learner's display device and displays them in the virtual space, allowing the learner to work on the questions interactively.
[0564] 3. Evaluation and feedback of answers:
[0565] When a learner enters an answer, the data is sent to the server, which compares it with the correct answers set in advance and evaluates whether the answer is correct. The result is fed back to the learner, and if the answer is correct, the learning level is updated.
[0566] Specific examples
[0567] For example, if a learner is at level 2, they would follow these steps:
[0568] 1. The learner verbally requests, "Show me a new question" in the virtual space.
[0569] 2. The server generates a prompt based on the learner's level 2:
[0570] Prompt: "User is level 2. Generate a question about basic Python loops."
[0571] 3. A question is displayed on the learner's display (e.g., "What is the output when you run the following Python code: for i in range(5): print(i)").
[0572] 4. Once the learner enters and submits their answer, the server evaluates the answer and provides appropriate feedback, such as "That's correct. Proceed to the next level."
[0573] In this way, the system of the present invention utilizes virtual reality technology to enable learners to interactively learn programming problems suited to their own level.
[0574] The flow of the specific processing in the application example 1 will be described with reference to FIG.
[0575] Step 1:
[0576] A user wears a display device (smart glasses or a head-mounted display) and requests a new programming problem in the virtual space. This request is sent from the user's device to the server.
[0577] Input: User's spoken request to "Show me new questions"
[0578] Output: The device sends the request data to the server
[0579] Step 2:
[0580] The server processes the received request and retrieves the user's current learning level from a database.
[0581] Input: User request data
[0582] Output: Learning level obtained from the database
[0583] Step 3:
[0584] The server generates appropriate prompt sentences for the generative AI model based on the learning level.
[0585] Input: Learning level
[0586] Output: Generated prompt (e.g. "User's learning level is 2. Please generate a question about basic Python loops.")
[0587] Step 4:
[0588] The generative AI model generates programming problems appropriate to the level based on the prompt text.
[0589] Input: prompt statement
[0590] Output: Generated programming questions (e.g., "What is the output when you run the following Python code: for i in range(5): print(i)")
[0591] Step 5:
[0592] The server sends the generated questions to the user's terminal, and the questions are displayed on the display device.
[0593] Input: Generated programming problem
[0594] Output: Programming questions sent to terminal
[0595] Step 6:
[0596] The user answers the questions displayed on the display device, and the answers are sent from the terminal to the server.
[0597] Input: User's answer to the question
[0598] Output: The device sends the answer data to the server
[0599] Step 7:
[0600] The server evaluates the received answer by comparing it with a predefined set of correct answers.
[0601] Input: User's answer data
[0602] Output: Correctness of answer
[0603] Step 8:
[0604] Based on the result of the correct / incorrect judgment, the server updates the user's learning level as necessary, generates appropriate feedback, and sends it to the user's terminal.
[0605] Input: Correct / incorrect result
[0606] Output: Feedback message and updated learning level
[0607] Step 9:
[0608] The user's terminal displays the received feedback on a display device to provide the feedback to the user.
[0609] Input: Feedback message
[0610] Output: Feedback message displayed on the display device
[0611] In this way, users can efficiently solve program problems appropriate to their level, providing a real-time interactive learning environment.
[0612] Furthermore, an emotion engine that estimates the user's emotion may be further combined. That is, the identification processing unit 290 may estimate the user's emotion using the emotion identification model 59, and perform identification processing using the user's emotion.
[0613] The present invention relates to a system that uses artificial intelligence as a generation means to automatically generate programming problems based on the learner's learning level and provides them to the learner's terminal. It also includes a function that combines an emotion engine that recognizes the user's emotions to provide the learner with appropriate feedback and assistance. Below, we will explain in detail the embodiments of the system of the present invention.
[0614] First, we will describe the overall operation of the system. When a learner requests a new programming problem, the device sends the request to the server. The server checks the learner's current learning level and uses generative artificial intelligence to generate programming problems appropriate for that level. These generated problems are provided to the learner via the device. When the learner answers the problem and sends the results from the device to the server, the server evaluates the correctness of the answer and updates the learner's learning level. The server also uses an emotion engine to recognize the learner's emotions and provides appropriate feedback based on those emotions.
[0615] Next, the specific operation of each process will be described in detail.
[0616] 1. Generating programming problems
[0617] When a learner requests a new problem using their device, the server references the learner's learning level in the database. The server then uses generative artificial intelligence to generate programming problems that match the learner's learning level. The difficulty of the problems is designed to gradually increase.
[0618] 2. Providing the problem
[0619] The generated programming problems are sent from the server to the terminal, which displays them to the learner, who then works on the displayed problems.
[0620] 3. Submitting and Evaluating Your Answers
[0621] After a learner answers a question, the answer is sent to the server via the device. The server evaluates the received answer and determines whether it is correct or incorrect. This determination is made by comparing it with a preset correct answer.
[0622] 4. Learning Level Update
[0623] If the answer is correct, the server raises the learner's learning level by one, which is achieved by incrementing the "learning level" field in the database.
[0624] 5. Emotion Recognition and Feedback
[0625] The server is equipped with an emotion engine that recognizes the learner's emotions. Specifically, emotions are identified by analyzing the learner's facial expressions, tone of voice, and input speed. For example, if the learner is having difficulty, the emotion engine will recognize this and report it to the server. The server will respond by sending the learner an encouraging message or lowering the difficulty of the questions. On the other hand, if the learner is enjoying the task, it will provide feedback by increasing the difficulty or sending a praising message.
[0626] As a concrete example, consider the case where Learner A requests a new problem. Let's assume Learner A's current level is 1. The server generates a level 1 problem and displays "print('Hello, World!') \n What does this code output?" on the terminal. When Learner A enters the answer "Prints Hello, World!" and sends it from the terminal, the server determines this to be the correct answer. The server raises Learner A's level to 2 and provides feedback such as "That's correct! Great!" to help Learner A tackle the next problem with confidence. Furthermore, if the emotion engine recognizes that Learner A is enjoying the task, it will raise the difficulty of the next problem appropriately.
[0627] In this way, the system of the present invention automatically generates programming problems that correspond to the individual learner's pace, evaluates the answers, and further uses an emotion engine to provide feedback that is adapted to the learner's emotions, thereby effectively improving the learner's programming skills.
[0628] The processing flow will be explained below.
[0629] Step 1: Request a new issue
[0630] A user requests a new programming problem from a terminal by accessing the URL "GET / get_problem / student_id" from the terminal.
[0631] Step 2: Accepting the request
[0632] The server receives the request and calls the get_problem function.
[0633] Step 3: Check your learning level
[0634] The server references the record corresponding to the student_id of the requested learner from the database and checks the learning level of the relevant learner.
[0635] Step 4: Generate the problem
[0636] The server uses artificial intelligence to generate programming problems of a corresponding level of difficulty based on the learner's learning level.
[0637] Step 5: Return the issue
[0638] The server converts the generated questions into JSON format and sends it back to the terminal as an HTTP response.
[0639] Step 6: View the problem
[0640] The terminal receives the programming problems from the server and displays them to the user, who then works on the problems.
[0641] Step 7: Prepare your answer
[0642] The user works through the questions and writes down the answers.
[0643] Step 8: Submit your answers
[0644] The user uses the terminal to submit the answer to the URL "POST / submit_answer / student_id", including the answer and question details in the JSON format request body.
[0645] Step 9: Accepting the Answer
[0646] The server receives the request and calls the submit_answer function.
[0647] Step 10: Extracting the Answer
[0648] The server extracts the answer and question from the request body.
[0649] Step 11: Determine the answer
[0650] The server determines whether the answer it retrieves is correct by comparing it with a preset correct answer.
[0651] Step 12: Update the Level
[0652] If the answer is correct, the server raises the learner's learning level by one, specifically by incrementing the value of the "learning level" field in the database.
[0653] Step 13: Generate results
[0654] The server converts the answer result into JSON format.
[0655] Step 14: Returning the results
[0656] The server returns the results to the terminal as an HTTP response, allowing the user to check their answers.
[0657] Step 15: Viewing feedback
[0658] The device displays the answer results received from the server to the user. For example, if the answer is correct, it displays "Correct! Proceed to the next level.", and if the answer is incorrect, it displays "Incorrect. Please study this part again."
[0659] Step 16: Recognizing User Emotions
[0660] The device analyzes the learner's facial expressions, tone of voice, and typing speed, and the emotion engine recognizes the learner's emotions. Specifically, it uses sensors such as a camera and microphone to capture emotional data in real time.
[0661] Step 17: Generate emotion-based feedback
[0662] The server generates appropriate feedback and assistance for the learner based on the emotional data received from the emotion engine. For example, if negative emotions are detected, it may send encouraging messages or adjust the difficulty of the questions.
[0663] Step 18: Provide emotion-based feedback
[0664] The server generates feedback and assistance, which is sent to the device, and the device displays it to the user. For example, it might say, "That was a bit difficult. Let's try an easier problem next time!"
[0665] In this way, the user, device, server, and emotion engine work together to provide a programming learning environment that responds to each learner's individual pace and emotions, supporting effective learning.
[0666] Example 2
[0667] Next, a description will be given of Example 2. In the following description, the data processing device 12 will be referred to as a "server" and the smart glasses 214 will be referred to as a "terminal."
[0668] Current learning support systems lack the ability to automatically generate questions appropriate to the learner's level, or the ability to evaluate the answers. Furthermore, they lack the ability to grasp the learner's emotional state and provide feedback accordingly, making it difficult to efficiently improve the learner's skills while maintaining their motivation. These issues need to be addressed.
[0669] The specific processing by the specific processing unit 290 of the data processing device 12 in the second embodiment is realized by the following means.
[0670] In this invention, the server includes a means for generating programming problems based on the learner's learning level using a generation artificial intelligence as a generation means, a means for providing the problems generated by the generation means to the learner's information processing device, and a means for evaluating input received from the learner's information processing device. This enables automatic generation of problems appropriate to the learner's learning level and accurate evaluation of the answers. Furthermore, by including a means for recognizing the learner's emotions using an emotion recognition engine and providing appropriate feedback based on the recognition results, feedback can be provided according to the learner's emotional state, effectively supporting the learner's motivation to learn and the improvement of their skills.
[0671] "Generation means" refers to a generative artificial intelligence that generates programming problems based on the learning level of the learner.
[0672] "Student" means an individual who seeks to improve their skills by solving programming problems.
[0673] "Learning level" is an indicator that shows the learner's current level of programming skill.
[0674] "Information processing device" refers to the device on which learners answer questions and receive feedback.
[0675] "Input" refers to the answers to questions and other data that a learner sends to the server via an information processing device.
[0676] "Evaluation means" refers to the function that receives learner input, analyzes the content, and determines whether it is correct or incorrect.
[0677] A "database" refers to a storage device that stores information such as a learner's learning level and past answer history.
[0678] An "emotion recognition engine" refers to a function that identifies a learner's emotional state by analyzing their facial expressions, tone of voice, input speed, etc.
[0679] "Feedback" refers to messages or instructions provided to a learner based on their answers or emotional state.
[0680] This invention relates to a system that automatically generates programming problems based on the learner's learning level and provides them to the learner. This system uses generative artificial intelligence as a generation method to provide appropriate programming problems to the learner and evaluate their answers. It also includes a function that combines an emotion recognition engine to provide appropriate feedback and assistance to the learner.
[0681] First, let us explain the overall operation of the system. When a learner requests a new programming problem, the device sends the request to the server. At this stage, the device is the hardware that accepts user requests. The server receives the request and retrieves the learner's current learning level from a database. Based on this data, the server uses a generative AI (for example, OpenAI's GPT-3 model) to generate a programming problem appropriate for the learner's learning level. At this time, the server sends a prompt to the generative AI. An example of a prompt is, "Generate a programming problem appropriate for the learner's level 1. Create a problem that includes simple Python printed text."
[0682] The generated programming problems are sent from the server to the terminal, which displays them to the learner. The user works on the displayed problems and enters their answers into the terminal. The entered answers are then sent to the server via the terminal. The server evaluates the received answers and determines how they should be evaluated. This evaluation includes comparing the answers with a pre-defined list of correct answers. If the learner's answer is correct, the server updates the learner's learning level. Specifically, this is achieved by incrementing the learning level field in the database.
[0683] Furthermore, the server is equipped with an emotion recognition engine that can recognize the learner's emotions. Specifically, it analyzes data collected by the device, such as the learner's facial expressions, tone of voice, and typing speed, to identify the learner's emotional state. For example, if the learner is having difficulty, the emotion recognition engine analyzes it and reports it to the server, which can then send the learner an encouraging message. Also, if the learner is enjoying the lesson, it provides feedback by increasing the difficulty level or sending a praising message.
[0684] As a concrete example, consider the case where Learner A requests a new problem. If Learner A's learning level is 1, the server generates the problem "print('Hello, World!') \n What does this code output?" based on this level. When Learner A enters the answer "Prints Hello, World!" and sends it from the device, the server determines this answer as correct and raises Learner A's learning level to 2. Furthermore, if the emotion recognition engine recognizes that Learner A is enjoying the task, the server decides to appropriately increase the difficulty of the next problem, along with the feedback "That's correct! Great!"
[0685] The system of the present invention effectively improves learners' programming skills by automatically generating programming problems tailored to the learner and providing appropriate feedback. The main hardware used includes a terminal (information processing device) and a server, and the main software includes a generative artificial intelligence (generative AI model) and an emotion recognition engine.
[0686] The flow of the identification process in the second embodiment will be described with reference to FIG.
[0687] Step 1:
[0688] Programming Problem Request
[0689] The user operates the device and clicks the "Request a new problem" button.
[0690] The terminal sends this request to the server.
[0691] Input: User's "Request a new issue" action.
[0692] Output: A request to the server to create a new problem.
[0693] Step 2:
[0694] Viewing student information
[0695] When the server receives a request, it connects to the database.
[0696] The server retrieves the user's learning level from the database.
[0697] Input: New question creation request, learner ID.
[0698] Output: The learner's current learning level.
[0699] Step 3:
[0700] Generating programming problems
[0701] The server sends a prompt sentence to the generative artificial intelligence (e.g., generative AI model) based on the learner's learning level.
[0702] Example: "Generate programming problems appropriate for level 1 learners. Create problems that include simple Python print statements."
[0703] The generative AI model receives a prompt and generates programming problems that correspond to the learner's learning level.
[0704] The server receives the generated questions.
[0705] Input: learning level, prompt statement.
[0706] Output: The generated programming problem.
[0707] Step 4:
[0708] Submitting and Viewing Issues
[0709] The server transmits the generated programming questions to the terminal.
[0710] The terminal displays the problem to the user.
[0711] Input: The generated programming problem.
[0712] Output: The programming problem displayed for the user to see.
[0713] Step 5:
[0714] Submitting and grading answers
[0715] The user enters the answer to the displayed programming question and clicks the submit button.
[0716] The terminal sends the answer to the server.
[0717] The server evaluates the received answers by checking them against a pre-defined list of correct answers.
[0718] Input: The user's answer.
[0719] Output: The correctness of the answer.
[0720] Step 6:
[0721] Learning Level Update
[0722] If the answer is correct, the server raises the learner's learning level by one.
[0723] The server updates the learner's record in the database.
[0724] Input: Correct / incorrect rating of answer.
[0725] Output: Updated learning level.
[0726] Step 7:
[0727] Emotion Recognition and Feedback
[0728] The server uses an emotion recognition engine to analyze the learner's emotions.
[0729] The device sends collected data such as the learner's facial expressions, tone of voice, and typing speed to a server.
[0730] An emotion recognition engine analyzes the data to identify the learner's emotional state.
[0731] The server generates appropriate feedback based on the emotion recognition results.
[0732] The terminal displays the feedback to the user.
[0733] Input: Emotional data (facial expressions, tone of voice, typing speed).
[0734] Output: Feedback message depending on emotional state.
[0735] (Application example 2)
[0736] Next, a description will be given of Application Example 2. In the following description, the data processing device 12 will be referred to as a "server" and the smart glasses 214 will be referred to as a "terminal."
[0737] Modern brick-and-mortar stores are required to understand the individual needs and emotions of customers and provide appropriate services accordingly. However, conventional systems have difficulty providing personalized services based on the learning level and emotions of individual customers. Furthermore, they lack a mechanism for recognizing emotions and providing appropriate feedback in real time.
[0738] The identification processing by the identification processing unit 290 of the data processing device 12 in Application Example 2 is realized by the following means. In this invention, the server includes: means for generating programming problems based on the learning level of a learner using a generation artificial intelligence as a generation means; means for providing the problems generated by the generation means to the learner's terminal; means for evaluating answers received from the learner's terminal; means for updating the learning level based on the learner's answers; means for suggesting products based on the customer's past purchase history and category information of interest; and means for using an emotion recognition engine that analyzes the customer's facial expressions and tone of voice. This makes it possible to provide services that meet the individual needs and emotions of customers and improve customer satisfaction.
[0739] definition statement
[0740] "Generative AI as a generation tool" is an artificial intelligence technology used to automatically generate appropriate programming problems based on the learner's learning level.
[0741] "Learning level" is an indicator that shows the depth of knowledge and skills that a learner has currently acquired.
[0742] A "terminal" refers to an electronic device that can be directly operated by a user, such as a personal computer or smartphone.
[0743] "Answer" refers to the answer that a learner enters to a programming question provided via a terminal.
[0744] An "assessment tool" is a mechanism used to accurately evaluate answers submitted by learners and determine whether they are correct or incorrect.
[0745] The "update means" is a process for updating the learning level to the latest state based on the learner's answer results.
[0746] "Purchase history" is a record of products and services that a customer has purchased in the past.
[0747] "Category information" is data about the categories of products or services in which a customer is interested.
[0748] "Proposal methods" are methods for providing optimal products and services based on customers' purchase history and category information.
[0749] An "emotion recognition engine" is a technology that analyzes a customer's facial expressions and tone of voice to identify their current emotions.
[0750] MODE FOR CARRYING OUT THE INVENTION
[0751] The present invention relates to a system that uses a generative AI model to provide personalized service based on the customer's learning level and emotions. This system is implemented via customer terminals or in-store robots, optimizing the customer experience. Detailed embodiments for implementing this system are described below.
[0752] System configuration
[0753] 1. Hardware
[0754] Device: Refers to the smartphone or computer used by the customer.
[0755] Robots: Robots that provide services to customers in stores, such as Pepper.
[0756] Camera and microphone: Devices that recognize the customer's facial expressions and voice. These are often built into the robot, but may also be attached to the terminal.
[0757] 2. Software
[0758] Generative AI model: An artificial intelligence that generates programming problems and suggestions based on the learner's learning level.
[0759] Emotion recognition engine: An engine that recognizes emotions by analyzing a customer's facial expressions and tone of voice. Examples include Google Cloud Vision API and Microsoft Azure Face API.
[0760] Database: Use MongoDB or SQL Server as a database to store customer purchase history and interest category information.
[0761] Program processing
[0762] The server performs the following process: First, when a customer enters a store and starts interacting with the robot, the robot's camera and microphone are activated and its emotion recognition engine analyzes the customer's facial expressions and tone of voice, thereby recognizing the customer's current emotions.
[0763] The server then retrieves the customer's past purchase history and category of interest information from a database and uses a generative AI model to suggest the most suitable products and services for the customer. The suggestions are then displayed on the robot's display or the customer's device.
[0764] For example, if a customer asks about a new product, the server will suggest the most suitable product based on the customer's past purchase history and current interests. As a specific example, if the database records that the customer has previously purchased entry-level products, the generative AI model will suggest new entry-level products.
[0765] Furthermore, the server utilizes an emotion recognition engine to generate feedback based on the customer's emotions. For example, if the server recognizes that the customer is having fun, it will provide a message such as "We're glad you're having fun!". On the other hand, if the customer is confused, it will generate a message such as "Are you in need of help? How can we help you?".
[0766] Prompt Sentence Examples
[0767] Generate the following Python program to enable an in-store robot to recognize customer emotions and provide appropriate feedback. It also suggests appropriate products based on the customer's learning level, as follows:
[0768] Beginner: ['Beginner Product A', 'Beginner Product B', 'Beginner Product C']
[0769] Intermediate: ['Intermediate Product A', 'Intermediate Product B', 'Intermediate Product C']
[0770] Advanced: ['Advanced Product A', 'Advanced Product B', 'Advanced Product C']
[0771] Emotion recognition is used to analyze the customer's facial expressions and tone of voice, and provide appropriate feedback based on the emotion: "Happy", "Confused", or "Other".
[0772] With the above-described configuration and processing, the present invention aims to improve customer satisfaction by providing suggestions and feedback in real time that meet the individual needs of customers.
[0773] The flow of the specific processing in the application example 2 will be described with reference to FIG.
[0774] Program processing flow
[0775] Step 1: Gather customer information
[0776] The server uses the robot's camera and microphone to collect the customer's facial expressions and tone of voice in real time. The camera captures the customer's facial expressions, and the microphone records their voice. This input data is sent to an emotion recognition engine, which analyzes the customer's emotions. The analysis results are output as emotions such as "enjoyed" or "confused."
[0777] Step 2: Get purchase history and category information
[0778] The server retrieves the customer's past purchase history and interest category information from the database. This database query inputs the purchase history and interest category data, and returns the results to the server as output.
[0779] Step 3: Generate programming problems
[0780] The server uses a generative AI model to generate optimal programming problems or product suggestions for each customer based on the acquired purchase history, category information, and analyzed emotional data. Here, the input is the customer's level, interest category, and emotional data, and the output is the generated programming problems or product information.
[0781] Step 4: Submitting suggestions and issues
[0782] The server sends the generated programming questions and product information to the terminal, which displays this information to the customer. The input is the generated content received from the server, and the output is that it is displayed on the customer's display.
[0783] Step 5: Evaluate and provide feedback on your answers
[0784] When a user inputs an answer to a provided programming problem, the answer is sent to the server via the terminal. The server then uses an evaluation means to determine the accuracy of the received answer. The input is the answer content, and the output is the evaluation result. After that, appropriate feedback is generated based on the emotions analyzed by the emotion recognition engine, and the feedback is again provided to the user.
[0785] Step 6: Update learning levels and customer information
[0786] The server updates the learner's learning level based on the user's answer. The server also records the purchase history and emotional changes in the database. The input is the latest answer and customer information, and the output is the updated learning level, new purchase history, and emotional records.
[0787] Through these steps, the server can provide personalized suggestions and feedback that correspond to the customer's individual needs and real-time emotions, which is expected to improve customer satisfaction.
[0788] 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.
[0789] The data generation model 58 is a so-called generative AI (Artificial Intelligence). An example of the data generation model 58 is ChatGPT (Internet Search<URL: https: / / openai.com / blog / chatgpt> ), Gemini (Internet search <url: https: gemini.google.com ?hl="ja">) and other generation AIs. The data generation model 58 is obtained by performing deep learning on a neural network. A prompt including an instruction is input to the data generation model 58, and inference data such as voice data indicating voice, text data indicating text, and image data indicating an image is also input. The data generation model 58 performs inference on the input inference data in accordance with the instruction indicated by the prompt, and outputs the inference result in a data format such as voice data and text data. Here, inference refers to, for example, analysis, classification, prediction, and / or summarization.
[0790] In the above embodiment, an example in which the specific processing is performed by the data processing device 12 has been given, but the technology of the present disclosure is not limited to this, and the specific processing may be performed by the smart glasses 214.
[0791] [Third embodiment]
[0792] FIG. 5 shows an example of the configuration of a data processing system 310 according to the third embodiment.
[0793] 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.
[0794] The data processing device 12 includes a computer 22, a database 24, and a communication I / F 26. The computer 22 is an example of a "computer" according to the technology of the present disclosure. The computer 22 includes a processor 28, a RAM 30, and a storage 32. The processor 28, the RAM 30, and the storage 32 are connected to a bus 34. The database 24 and the communication I / F 26 are also connected to the bus 34. The communication I / F 26 is connected to a network 54. Examples of the network 54 include a WAN (Wide Area Network) and / or a LAN (Local Area Network).
[0795] 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.
[0796] The microphone 238 receives instructions and the like from the user 20 by receiving voice uttered by the user 20. The microphone 238 captures the voice uttered by the user 20, converts the captured voice into audio data, and outputs it to the processor 46. The speaker 240 outputs audio in accordance with instructions from the processor 46.
[0797] Camera 42 is a small digital camera equipped with an optical system including a lens, aperture, and shutter, and an imaging element such as a CMOS (Complementary Metal-Oxide-Semiconductor) image sensor or a CCD (Charge Coupled Device) image sensor, and captures images of the surroundings of user 20 (for example, an imaging range defined by an angle of view equivalent to the field of vision of a typical healthy person).
[0798] 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.
[0799] Fig. 6 shows an example of the main functions of the data processing device 12 and the headset type terminal 314. As shown in Fig. 6, in the data processing device 12, a specific process is performed by the processor 28. A specific process program 56 is stored in the storage 32.
[0800] The specific processing program 56 is an example of a "program" according to the technology of the present disclosure. The processor 28 reads the specific processing program 56 from the storage 32 and executes the read specific processing program 56 on the RAM 30. The specific processing is realized by the processor 28 operating as a specific processing unit 290 in accordance with the specific processing program 56 executed on the RAM 30.
[0801] 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.
[0802] In the headset type terminal 314, a reception output process is performed by the processor 46. A reception output program 60 is stored in the storage 50. The processor 46 reads the reception output program 60 from the storage 50 and executes the read reception output program 60 on the RAM 48. The reception output process is realized by the processor 46 operating as the control unit 46A in accordance with the reception output program 60 executed on the RAM 48.
[0803] Next, a description will be given of the identification process performed by the identification processing unit 290 of the data processing device 12. In the following description, the data processing device 12 will be referred to as the "server" and the headset type terminal 314 will be referred to as the "terminal."
[0804] The system of the present invention uses artificial intelligence as a generation means to automatically generate programming problems based on the learning level of the learner and provide them to the learner's terminal. Below, a detailed description of an embodiment of the system of the present invention will be given.
[0805] First, we will explain the overall operation of the system. A learner requests a new programming problem using their own device. When the device sends the request to the server, the server checks the learner's learning level. The server uses artificial intelligence to generate programming problems appropriate for that learning level and sends them to the device. When the learner answers the problem and sends the results back from the device to the server, the server evaluates the accuracy of the answer and updates the learner's learning level.
[0806] Next, we will explain the specific operation of each process. The AI generator, which serves as the generation means, selects or generates appropriate questions according to the learner's learning level. The difficulty of the questions is divided into stages based on their complexity and the skills required.
[0807] When a learner requests a question, the server looks up the learner's current level in the database. The server generates a question appropriate to this level and sends it to the device. For example, a learner at level 1 is provided with a question that simply asks them to print "Hello, World!"
[0808] After the learner works on the questions and writes down the answers, the device sends the answers to the server. The server analyzes the received answers using an evaluation tool and determines whether they are correct. At this time, the server compares them with the correct answers set in advance. If the answer is correct, the server raises the learner's learning level by one.
[0809] Furthermore, the system is equipped with a means for providing feedback to the learner. The server sends the results of the correct or incorrect answer back to the terminal, and provides appropriate feedback to the learner. For example, if the answer is correct, it displays "Correct! Proceed to the next level," and if the answer is incorrect, it displays "Incorrect. Please study this part again."
[0810] As a concrete example, consider the case where learner A requests a new problem. If learner A's current level is 1, the server generates a level 1 problem and displays "print('Hello, World!') \n What does this code output?" on the terminal. When learner A enters the answer "Prints Hello, World!" and submits it from the terminal, the server determines this as the correct answer. The server raises learner A's level to 2 and provides feedback to advance to the next level.
[0811] In this way, the system of the present invention automatically generates programming problems according to the learner's learning level, evaluates the answers, and provides appropriate feedback, thereby effectively improving the learner's programming skills.
[0812] The processing flow will be explained below.
[0813] Step 1: Request a new issue
[0814] A user requests a new programming problem using a terminal, which accesses the URL "GET / get_problem / student_id".
[0815] Step 2: Accepting the request
[0816] The server receives the request and calls the get_problem function.
[0817] Step 3: Check your learning level
[0818] The server references the record corresponding to the student_id of the requested learner from the database and checks the learning level of that learner.
[0819] Step 4: Generate the problem
[0820] The server uses artificial intelligence to generate questions of a suitable difficulty level based on the learner's learning level. At this stage, questions are selected or generated.
[0821] Step 5: Return the issue
[0822] The server converts the generated questions into JSON format and sends it back to the terminal via an HTTP response.
[0823] Step 6: View the problem
[0824] The terminal displays the problem received from the server to the user, who then works on the problem.
[0825] Step 7: Prepare your answer
[0826] The user works through the questions and writes down the answers.
[0827] Step 8: Submit your answers
[0828] The user uses the terminal to submit the answer to the URL "POST / submit_answer / student_id". At this time, the answer and question content are included in the request body in JSON format.
[0829] Step 9: Accepting the Answer
[0830] The server receives the request and calls the submit_answer function.
[0831] Step 10: Extracting the Answer
[0832] The server extracts the answer and question from the request body.
[0833] Step 11: Determine the answer
[0834] The server determines whether the answer retrieved is correct by comparing it with a preset correct answer.
[0835] Step 12: Update the Level
[0836] If the answer is correct, the server raises the learner's learning level by one, specifically by incrementing the value of the level field in the database.
[0837] Step 13: Generate results
[0838] The server converts the answer result into JSON format.
[0839] Step 14: Returning the results
[0840] The server sends the results back to the device via an HTTP response, and the user can check the results on their own device.
[0841] Step 15: Viewing feedback
[0842] The device displays the results received from the server to the user. For example, if the answer is correct, it displays "Correct! Proceed to the next level.", and if the answer is incorrect, it displays "Incorrect. Please study this part again."
[0843] In this way, through a series of steps, learners can answer programming questions appropriate to their learning level and proceed to the next step based on the results.
[0844] Example 1
[0845] Next, a description will be given of Example 1. In the following description, the data processing device 12 will be referred to as a "server" and the headset type terminal 314 will be referred to as a "terminal."
[0846] In conventional educational systems, it is difficult to provide programming problems that correspond to the individual learning levels of students, which makes it difficult to expect improvements in learning effectiveness.In addition, there is also the issue of a heavy burden on teachers because the evaluation of answers and appropriate updating of learning levels are not automated.
[0847] The specific processing by the specific processing unit 290 of the data processing device 12 in the first embodiment is realized by the following means.
[0848] In this invention, the server includes means for requesting new programming problems from the learner's terminal, means for transmitting the request to the server, means for the server to confirm the user's learning level, means for the server to generate programming problems based on the learning level using a generative AI model, means for the learner to provide the generated problems to the learner's terminal, means for the learner to input answers into the terminal and transmit the answers to the server, means for evaluating the answers, and means for updating the learning level based on the learner's answers. This enables programming learning that is optimized for each learner, and also reduces the burden on teachers through automated answer evaluation and learning level updates.
[0849] "Means for requesting new programming problems from a learner's terminal" refers to a means for a learner to use his or her own terminal to request a new programming problem from the system.
[0850] The "means for sending a request to a server" is a means for sending a request for a new programming problem sent from a learner's terminal to a server via a communication protocol.
[0851] The "means for the server to check the learning level of the user" refers to the means by which the server refers to the database and obtains the current learning level of the user.
[0852] "Means for a server to utilize a generative AI model to generate programming problems based on learning level" means means for a server to utilize a generative AI model to automatically generate programming problems appropriate for a user's specific learning level.
[0853] The "means for providing the generated problem to the learner's terminal" is a means for transmitting the programming problem generated by the server to the learner's terminal and displaying it to the user.
[0854] "Means for a learner to input answers into a terminal and transmit the answers to a server" refers to means for a learner to input answers to displayed programming problems into a terminal and transmit the input answers to a server.
[0855] The "means for evaluating answers" is a means for analyzing the answers received by the server from the learner and determining whether they are correct or incorrect.
[0856] The "means for updating the learning level based on the learner's answer" is a means for the server to update the user's learning level based on whether the answer is correct or incorrect.
[0857] The system of the present invention utilizes a generative AI model to automatically generate programming problems based on the learner's learning level and provides them to the learner's terminal. Below, we will explain in detail the embodiments for implementing the system of the present invention.
[0858] First, as an overview of the entire system, a learner uses a device to request a new programming problem. The device sends the request to the server, which checks the learner's learning level and then uses a generative AI model to generate a programming problem appropriate to the learner's learning level and sends it to the device. The learner then answers the problem and sends the answer from the device to the server. The server evaluates the received answer and updates the learner's learning level. The server also provides appropriate feedback to the learner based on the evaluation results.
[0859] The specific hardware and software are as follows:
[0860] Hardware:
[0861] Devices: personal computers, tablets, smartphones, etc.
[0862] Server: High-Performance Computing Server
[0863] software:
[0864] Generative AI models: For example, GPT-4
[0865] Database: A database management system for managing learners' learning levels
[0866] Communication protocol: HTTP / HTTPS
[0867] As a concrete example, consider the case where learner A requests a new programming problem. Learner A's device operates as follows:
[0868] 1. User: Learner A launches the application and clicks the "Create a new question" button.
[0869] 2. Device: Receives Learner A's request and sends the request data in JSON format to the server by POSTing it to the API endpoint.
[0870] Server behavior:
[0871] 1. Server: Receives the request and retrieves Learner A's current learning level (e.g., LEVEL_1) from the database.
[0872] 2. Server: Sends a prompt to a generative AI model such as GPT-4. An example of a prompt would be "Please generate a programming problem for LEVEL_1."
[0873] 3. Server: Send the generated question (e.g., print('Hello, World!') \n What does this code output?) to the terminal as an HTTP response.
[0874] The process after learner A receives the questions is as follows:
[0875] 1. User: Learner A works on the problem, enters the answer (e.g., "Prints Hello, World!") into the terminal, and presses the "Submit" button.
[0876] 2. Terminal: Sends the answer to the server.
[0877] Server Actions (cont.):
[0878] 1. Server: Receives the answer and compares it with the pre-set correct answers to determine whether it is correct or incorrect.
[0879] 2. Server: If the answer is correct, update Learner A's learning level by one level (e.g., LEVEL_2) and reflect it in the database.
[0880] 3. Server: Generates a feedback message (e.g., "Correct! Proceed to the next level.") based on the evaluation results and sends it to the device.
[0881] In this way, learners can effectively improve their programming skills by answering questions at the appropriate level. Furthermore, the evaluation of answers and updating of learning levels are automated, allowing learners to progress smoothly and reducing the burden on teachers.
[0882] The flow of the identification process in the first embodiment will be described with reference to FIG.
[0883] Step 1: User requests a new programming problem
[0884] The user launches the learning application and clicks the "Please give me a new question" button.
[0885] Input: User request click
[0886] Output: Request data for a new issue
[0887] Step 2: The device sends a request to the server
[0888] The terminal receives the request data and sends it to the server using the HTTP protocol.
[0889] Input: Request data for a new issue
[0890] Output: HTTP request to the server
[0891] Step 3: The server checks the user's learning level
[0892] The server receives the request and accesses a database to obtain the user's learning level.
[0893] Input: HTTP request
[0894] Output: User learning level data
[0895] Step 4: The server uses the generative AI model to generate programming problems based on the learning level.
[0896] Based on the acquired learning level data, the server sends prompts to the generative AI model (e.g., GPT-4) to generate appropriate programming problems.
[0897] Input: User learning level data, prompt (e.g. "Generate programming problems for LEVEL_1")
[0898] Output: The generated programming problem
[0899] Step 5: Providing the server-generated problem to the device
[0900] The server sends the generated programming questions to the terminal as an HTTP response.
[0901] Input: Generated programming problem
[0902] Output: HTTP response to the device
[0903] Step 6: The user works on the problem and enters the answer into the device.
[0904] The user works through programming problems displayed on the terminal and enters the answers in the input fields.
[0905] Input: Generated programming problem
[0906] Output: User's answer data
[0907] Step 7: The device sends the answer to the server
[0908] The terminal transmits the answer data entered by the user to the server using the HTTP protocol.
[0909] Input: User's answer data
[0910] Output: HTTP request to the server
[0911] Step 8: The server evaluates the answer
[0912] The server analyzes the received answer data using an evaluation means to determine whether the answer is correct or not. The server compares the user's answer with a preset correct answer.
[0913] Input: User's answer data, preset correct answer data
[0914] Output: Evaluation result (correct or incorrect)
[0915] Step 9: The server updates the user's learning level.
[0916] If the answer is correct, the server raises the user's learning level by one and reflects this in the database. If the answer is incorrect, the level is not updated.
[0917] Input: Assessment result (correct or incorrect), user's current learning level data
[0918] Output: Updated learning level data
[0919] Step 10: The server sends feedback to the device
[0920] The server generates a feedback message based on the evaluation result and sends it to the terminal as an HTTP response. For example, if the answer is correct, it generates a message saying "That's right! Proceed to the next level."
[0921] Input: Evaluation result (correct or incorrect)
[0922] Output: Feedback message, HTTP response to the device
[0923] Step 11: User reviews feedback
[0924] The user checks the feedback message displayed on the terminal.
[0925] Input: Feedback message
[0926] Output: User's learning behavior (attempting the next problem, relearning, etc.)
[0927] In this way, by sequentially explaining the inputs and outputs and specific operations at each processing step, the flow of the entire system becomes clear.
[0928] (Application example 1)
[0929] Next, a description will be given of Application Example 1. In the following description, the data processing device 12 will be referred to as a "server" and the headset type terminal 314 will be referred to as a "terminal."
[0930] In conventional programming learning systems, it is difficult to provide problems appropriate to the learner's learning level, making it difficult to conduct effective learning. In addition, there is a lack of means for learners to learn in a real-time interactive environment, making it difficult to motivate learners and improve their understanding.
[0931] The specific processing by the specific processing unit 290 of the data processing device 12 in the application example 1 is realized by the following means.
[0932] In this invention, the server includes means for generating programming problems based on the learning level of a learner using a generation artificial intelligence as a generation means, means for providing the problems generated by the generation means to the learner's display device, means for evaluating answers received from the learner's display device, means for updating the learning level based on the learner's answers, and means for providing an environment in which the learner can interactively answer problems using virtual reality technology for constructing a virtual space, thereby enabling the learner to efficiently answer problems suited to their level and providing an interactive learning environment in real time.
[0933] "Generative AI as a generation means" refers to AI used to generate programming problems based on the learner's learning level.
[0934] "Student display device" means a device used by a learner to view and interact with content, such as smart glasses or a head-mounted display.
[0935] The "evaluation means" is a system that has the function of analyzing the answers received from the learner's terminal and determining whether they are correct or incorrect.
[0936] A "means for updating learning level" refers to a system that has the function of reevaluating a learner's current learning level based on the learner's answers and adjusting the level as necessary.
[0937] "Virtual space" refers to a virtual three-dimensional environment generated using computer technology, in which learners can engage in interactive activities using virtual reality technology.
[0938] "Virtual reality technology" refers to technology that allows users to interact in real time within a virtual environment, and includes head-mounted displays and sensor technology.
[0939] The system of the present invention uses artificial intelligence as a generation means to automatically generate programming problems based on the learner's learning level and provide them to the learner's display device. To implement this system, the following hardware, software, and procedures are used.
[0940] Hardware and Software
[0941] Display device: Use smart glasses (e.g., Oculus Quest 2) or a head-mounted display.
[0942] Server: Uses Python, Flask, and TensorFlow to run generative AI models.
[0943] Virtual reality technology: We use Unity to create a virtual space, providing an interactive learning environment for learners.
[0944] Specific operation of the system
[0945] 1. Question generation based on learner level:
[0946] The learner wears a display device and requests a new programming problem in the virtual space. This request is sent to the server, which checks the learner's current learning level and generates an appropriate problem using artificial intelligence (AI) as a generation means.
[0947] 2. Providing generated questions:
[0948] The server sends the generated questions to the learner's display device and displays them in the virtual space, allowing the learner to work on the questions interactively.
[0949] 3. Evaluation and feedback of answers:
[0950] When a learner enters an answer, the data is sent to the server, which compares it with the correct answers set in advance and evaluates whether the answer is correct. The result is fed back to the learner, and if the answer is correct, the learning level is updated.
[0951] Specific examples
[0952] For example, if a learner is at level 2, they would follow these steps:
[0953] 1. The learner verbally requests, "Show me a new question" in the virtual space.
[0954] 2. The server generates a prompt based on the learner's level 2:
[0955] Prompt: "User is level 2. Generate a question about basic Python loops."
[0956] 3. A question is displayed on the learner's display (e.g., "What is the output when you run the following Python code: for i in range(5): print(i)").
[0957] 4. Once the learner enters and submits their answer, the server evaluates the answer and provides appropriate feedback, such as "That's correct. Proceed to the next level."
[0958] In this way, the system of the present invention utilizes virtual reality technology to enable learners to interactively learn programming problems suited to their own level.
[0959] The flow of the specific processing in the application example 1 will be described with reference to FIG.
[0960] Step 1:
[0961] A user wears a display device (smart glasses or a head-mounted display) and requests a new programming problem in the virtual space. This request is sent from the user's device to the server.
[0962] Input: User's spoken request to "Show me new questions"
[0963] Output: The device sends the request data to the server
[0964] Step 2:
[0965] The server processes the received request and retrieves the user's current learning level from a database.
[0966] Input: User request data
[0967] Output: Learning level obtained from the database
[0968] Step 3:
[0969] The server generates appropriate prompt sentences for the generative AI model based on the learning level.
[0970] Input: Learning level
[0971] Output: Generated prompt (e.g. "User's learning level is 2. Please generate a question about basic Python loops.")
[0972] Step 4:
[0973] The generative AI model generates programming problems appropriate to the level based on the prompt text.
[0974] Input: prompt statement
[0975] Output: Generated programming questions (e.g., "What is the output when you run the following Python code: for i in range(5): print(i)")
[0976] Step 5:
[0977] The server sends the generated questions to the user's terminal, and the questions are displayed on the display device.
[0978] Input: Generated programming problem
[0979] Output: Programming questions sent to terminal
[0980] Step 6:
[0981] The user answers the questions displayed on the display device, and the answers are sent from the terminal to the server.
[0982] Input: User's answer to the question
[0983] Output: The device sends the answer data to the server
[0984] Step 7:
[0985] The server evaluates the received answer by comparing it with a predefined set of correct answers.
[0986] Input: User's answer data
[0987] Output: Correctness of answer
[0988] Step 8:
[0989] Based on the result of the correct / incorrect judgment, the server updates the user's learning level as necessary, generates appropriate feedback, and sends it to the user's terminal.
[0990] Input: Correct / incorrect result
[0991] Output: Feedback message and updated learning level
[0992] Step 9:
[0993] The user's terminal displays the received feedback on a display device to provide the feedback to the user.
[0994] Input: Feedback message
[0995] Output: Feedback message displayed on the display device
[0996] In this way, users can efficiently solve program problems appropriate to their level, providing a real-time interactive learning environment.
[0997] Furthermore, an emotion engine that estimates the user's emotion may be further combined. That is, the identification processing unit 290 may estimate the user's emotion using the emotion identification model 59, and perform identification processing using the user's emotion.
[0998] The present invention relates to a system that uses artificial intelligence as a generation means to automatically generate programming problems based on the learner's learning level and provides them to the learner's terminal. It also includes a function that combines an emotion engine that recognizes the user's emotions to provide the learner with appropriate feedback and assistance. Below, we will explain in detail the embodiments of the system of the present invention.
[0999] First, we will describe the overall operation of the system. When a learner requests a new programming problem, the device sends the request to the server. The server checks the learner's current learning level and uses generative artificial intelligence to generate programming problems appropriate for that level. These generated problems are provided to the learner via the device. When the learner answers the problem and sends the results from the device to the server, the server evaluates the correctness of the answer and updates the learner's learning level. The server also uses an emotion engine to recognize the learner's emotions and provides appropriate feedback based on those emotions.
[1000] Next, the specific operation of each process will be described in detail.
[1001] 1. Generating programming problems
[1002] When a learner requests a new problem using their device, the server references the learner's learning level in the database. The server then uses generative artificial intelligence to generate programming problems that match the learner's learning level. The difficulty of the problems is designed to gradually increase.
[1003] 2. Providing the problem
[1004] The generated programming problems are sent from the server to the terminal, which displays them to the learner, who then works on the displayed problems.
[1005] 3. Submitting and Evaluating Your Answers
[1006] After a learner answers a question, the answer is sent to the server via the device. The server evaluates the received answer and determines whether it is correct or incorrect. This determination is made by comparing it with a preset correct answer.
[1007] 4. Learning Level Update
[1008] If the answer is correct, the server raises the learner's learning level by one, which is achieved by incrementing the "learning level" field in the database.
[1009] 5. Emotion Recognition and Feedback
[1010] The server is equipped with an emotion engine that recognizes the learner's emotions. Specifically, emotions are identified by analyzing the learner's facial expressions, tone of voice, and input speed. For example, if the learner is having difficulty, the emotion engine will recognize this and report it to the server. The server will respond by sending the learner an encouraging message or lowering the difficulty of the questions. On the other hand, if the learner is enjoying the task, it will provide feedback by increasing the difficulty or sending a praising message.
[1011] As a concrete example, consider the case where Learner A requests a new problem. Let's assume Learner A's current level is 1. The server generates a level 1 problem and displays "print('Hello, World!') \n What does this code output?" on the terminal. When Learner A enters the answer "Prints Hello, World!" and sends it from the terminal, the server determines this to be the correct answer. The server raises Learner A's level to 2 and provides feedback such as "That's correct! Great!" to help Learner A tackle the next problem with confidence. Furthermore, if the emotion engine recognizes that Learner A is enjoying the task, it will raise the difficulty of the next problem appropriately.
[1012] In this way, the system of the present invention automatically generates programming problems that correspond to the individual learner's pace, evaluates the answers, and further uses an emotion engine to provide feedback that is adapted to the learner's emotions, thereby effectively improving the learner's programming skills.
[1013] The processing flow will be explained below.
[1014] Step 1: Request a new issue
[1015] A user requests a new programming problem from a terminal by accessing the URL "GET / get_problem / student_id" from the terminal.
[1016] Step 2: Accepting the request
[1017] The server receives the request and calls the get_problem function.
[1018] Step 3: Check your learning level
[1019] The server references the record corresponding to the student_id of the requested learner from the database and checks the learning level of the relevant learner.
[1020] Step 4: Generate the problem
[1021] The server uses artificial intelligence to generate programming problems of a corresponding level of difficulty based on the learner's learning level.
[1022] Step 5: Return the issue
[1023] The server converts the generated questions into JSON format and sends it back to the terminal as an HTTP response.
[1024] Step 6: View the problem
[1025] The terminal receives the programming problems from the server and displays them to the user, who then works on the problems.
[1026] Step 7: Prepare your answer
[1027] The user works through the questions and writes down the answers.
[1028] Step 8: Submit your answers
[1029] The user uses the terminal to submit the answer to the URL "POST / submit_answer / student_id", including the answer and question details in the JSON format request body.
[1030] Step 9: Accepting the Answer
[1031] The server receives the request and calls the submit_answer function.
[1032] Step 10: Extracting the Answer
[1033] The server extracts the answer and question from the request body.
[1034] Step 11: Determine the answer
[1035] The server determines whether the answer it retrieves is correct by comparing it with a preset correct answer.
[1036] Step 12: Update the Level
[1037] If the answer is correct, the server raises the learner's learning level by one, specifically by incrementing the value of the "learning level" field in the database.
[1038] Step 13: Generate results
[1039] The server converts the answer result into JSON format.
[1040] Step 14: Returning the results
[1041] The server returns the results to the terminal as an HTTP response, allowing the user to check their answers.
[1042] Step 15: Viewing feedback
[1043] The device displays the answer results received from the server to the user. For example, if the answer is correct, it displays "Correct! Proceed to the next level.", and if the answer is incorrect, it displays "Incorrect. Please study this part again."
[1044] Step 16: Recognizing User Emotions
[1045] The device analyzes the learner's facial expressions, tone of voice, and typing speed, and the emotion engine recognizes the learner's emotions. Specifically, it uses sensors such as a camera and microphone to capture emotional data in real time.
[1046] Step 17: Generate emotion-based feedback
[1047] The server generates appropriate feedback and assistance for the learner based on the emotional data received from the emotion engine. For example, if negative emotions are detected, it may send encouraging messages or adjust the difficulty of the questions.
[1048] Step 18: Provide emotion-based feedback
[1049] The server generates feedback and assistance, which is sent to the device, and the device displays it to the user. For example, it might say, "That was a bit difficult. Let's try an easier problem next time!"
[1050] In this way, the user, device, server, and emotion engine work together to provide a programming learning environment that responds to each learner's individual pace and emotions, supporting effective learning.
[1051] Example 2
[1052] Next, a description will be given of Example 2. In the following description, the data processing device 12 will be referred to as a "server" and the headset type terminal 314 will be referred to as a "terminal."
[1053] Current learning support systems lack the ability to automatically generate questions appropriate to the learner's level, or the ability to evaluate the answers. Furthermore, they lack the ability to grasp the learner's emotional state and provide feedback accordingly, making it difficult to efficiently improve the learner's skills while maintaining their motivation. These issues need to be addressed.
[1054] The specific processing by the specific processing unit 290 of the data processing device 12 in the second embodiment is realized by the following means.
[1055] In this invention, the server includes a means for generating programming problems based on the learner's learning level using a generation artificial intelligence as a generation means, a means for providing the problems generated by the generation means to the learner's information processing device, and a means for evaluating input received from the learner's information processing device. This enables automatic generation of problems appropriate to the learner's learning level and accurate evaluation of the answers. Furthermore, by including a means for recognizing the learner's emotions using an emotion recognition engine and providing appropriate feedback based on the recognition results, feedback can be provided according to the learner's emotional state, effectively supporting the learner's motivation to learn and the improvement of their skills.
[1056] "Generation means" refers to a generative artificial intelligence that generates programming problems based on the learning level of the learner.
[1057] "Student" means an individual who seeks to improve their skills by solving programming problems.
[1058] "Learning level" is an indicator that shows the learner's current level of programming skill.
[1059] "Information processing device" refers to the device on which learners answer questions and receive feedback.
[1060] "Input" refers to the answers to questions and other data that a learner sends to the server via an information processing device.
[1061] "Evaluation means" refers to the function that receives learner input, analyzes the content, and determines whether it is correct or incorrect.
[1062] A "database" refers to a storage device that stores information such as a learner's learning level and past answer history.
[1063] An "emotion recognition engine" refers to a function that identifies a learner's emotional state by analyzing their facial expressions, tone of voice, input speed, etc.
[1064] "Feedback" refers to messages or instructions provided to a learner based on their answers or emotional state.
[1065] This invention relates to a system that automatically generates programming problems based on the learner's learning level and provides them to the learner. This system uses generative artificial intelligence as a generation method to provide appropriate programming problems to the learner and evaluate their answers. It also includes a function that combines an emotion recognition engine to provide appropriate feedback and assistance to the learner.
[1066] First, let us explain the overall operation of the system. When a learner requests a new programming problem, the device sends the request to the server. At this stage, the device is the hardware that accepts user requests. The server receives the request and retrieves the learner's current learning level from a database. Based on this data, the server uses a generative AI (for example, OpenAI's GPT-3 model) to generate a programming problem appropriate for the learner's learning level. At this time, the server sends a prompt to the generative AI. An example of a prompt is, "Generate a programming problem appropriate for the learner's level 1. Create a problem that includes simple Python printed text."
[1067] The generated programming problems are sent from the server to the terminal, which displays them to the learner. The user works on the displayed problems and enters their answers into the terminal. The entered answers are then sent to the server via the terminal. The server evaluates the received answers and determines how they should be evaluated. This evaluation includes comparing the answers with a pre-defined list of correct answers. If the learner's answer is correct, the server updates the learner's learning level. Specifically, this is achieved by incrementing the learning level field in the database.
[1068] Furthermore, the server is equipped with an emotion recognition engine that can recognize the learner's emotions. Specifically, it analyzes data collected by the device, such as the learner's facial expressions, tone of voice, and typing speed, to identify the learner's emotional state. For example, if the learner is having difficulty, the emotion recognition engine analyzes it and reports it to the server, which can then send the learner an encouraging message. Also, if the learner is enjoying the lesson, it provides feedback by increasing the difficulty level or sending a praising message.
[1069] As a concrete example, consider the case where Learner A requests a new problem. If Learner A's learning level is 1, the server generates the problem "print('Hello, World!') \n What does this code output?" based on this level. When Learner A enters the answer "Prints Hello, World!" and sends it from the device, the server determines this answer as correct and raises Learner A's learning level to 2. Furthermore, if the emotion recognition engine recognizes that Learner A is enjoying the task, the server decides to appropriately increase the difficulty of the next problem, along with the feedback "That's correct! Great!"
[1070] The system of the present invention effectively improves learners' programming skills by automatically generating programming problems tailored to the learner and providing appropriate feedback. The main hardware used includes a terminal (information processing device) and a server, and the main software includes a generative artificial intelligence (generative AI model) and an emotion recognition engine.
[1071] The flow of the identification process in the second embodiment will be described with reference to FIG.
[1072] Step 1:
[1073] Programming Problem Request
[1074] The user operates the device and clicks the "Request a new problem" button.
[1075] The terminal sends this request to the server.
[1076] Input: User's "Request a new issue" action.
[1077] Output: A request to the server to create a new problem.
[1078] Step 2:
[1079] Viewing student information
[1080] When the server receives a request, it connects to the database.
[1081] The server retrieves the user's learning level from the database.
[1082] Input: New question creation request, learner ID.
[1083] Output: The learner's current learning level.
[1084] Step 3:
[1085] Generating programming problems
[1086] The server sends a prompt sentence to the generative artificial intelligence (e.g., generative AI model) based on the learner's learning level.
[1087] Example: "Generate programming problems appropriate for level 1 learners. Create problems that include simple Python print statements."
[1088] The generative AI model receives a prompt and generates programming problems that correspond to the learner's learning level.
[1089] The server receives the generated questions.
[1090] Input: learning level, prompt statement.
[1091] Output: The generated programming problem.
[1092] Step 4:
[1093] Submitting and Viewing Issues
[1094] The server transmits the generated programming questions to the terminal.
[1095] The terminal displays the problem to the user.
[1096] Input: The generated programming problem.
[1097] Output: The programming problem displayed for the user to see.
[1098] Step 5:
[1099] Submitting and grading answers
[1100] The user enters the answer to the displayed programming question and clicks the submit button.
[1101] The terminal sends the answer to the server.
[1102] The server evaluates the received answers by checking them against a pre-defined list of correct answers.
[1103] Input: The user's answer.
[1104] Output: The correctness of the answer.
[1105] Step 6:
[1106] Learning Level Update
[1107] If the answer is correct, the server raises the learner's learning level by one.
[1108] The server updates the learner's record in the database.
[1109] Input: Correct / incorrect rating of answer.
[1110] Output: Updated learning level.
[1111] Step 7:
[1112] Emotion Recognition and Feedback
[1113] The server uses an emotion recognition engine to analyze the learner's emotions.
[1114] The device sends collected data such as the learner's facial expressions, tone of voice, and typing speed to a server.
[1115] An emotion recognition engine analyzes the data to identify the learner's emotional state.
[1116] The server generates appropriate feedback based on the emotion recognition results.
[1117] The terminal displays the feedback to the user.
[1118] Input: Emotional data (facial expressions, tone of voice, typing speed).
[1119] Output: Feedback message depending on emotional state.
[1120] (Application example 2)
[1121] Next, a description will be given of Application Example 2. In the following description, the data processing device 12 will be referred to as a "server" and the headset type terminal 314 will be referred to as a "terminal."
[1122] Modern brick-and-mortar stores are required to understand the individual needs and emotions of customers and provide appropriate services accordingly. However, conventional systems have difficulty providing personalized services based on the learning level and emotions of individual customers. Furthermore, they lack a mechanism for recognizing emotions and providing appropriate feedback in real time.
[1123] The identification processing by the identification processing unit 290 of the data processing device 12 in Application Example 2 is realized by the following means. In this invention, the server includes: means for generating programming problems based on the learning level of a learner using a generation artificial intelligence as a generation means; means for providing the problems generated by the generation means to the learner's terminal; means for evaluating answers received from the learner's terminal; means for updating the learning level based on the learner's answers; means for suggesting products based on the customer's past purchase history and category information of interest; and means for using an emotion recognition engine that analyzes the customer's facial expressions and tone of voice. This makes it possible to provide services that meet the individual needs and emotions of customers and improve customer satisfaction.
[1124] definition statement
[1125] "Generative AI as a generation tool" is an artificial intelligence technology used to automatically generate appropriate programming problems based on the learner's learning level.
[1126] "Learning level" is an indicator that shows the depth of knowledge and skills that a learner has currently acquired.
[1127] A "terminal" refers to an electronic device that can be directly operated by a user, such as a personal computer or smartphone.
[1128] "Answer" refers to the answer that a learner enters to a programming question provided via a terminal.
[1129] An "assessment tool" is a mechanism used to accurately evaluate answers submitted by learners and determine whether they are correct or incorrect.
[1130] The "update means" is a process for updating the learning level to the latest state based on the learner's answer results.
[1131] "Purchase history" is a record of products and services that a customer has purchased in the past.
[1132] "Category information" is data about the categories of products or services in which a customer is interested.
[1133] "Proposal methods" are methods for providing optimal products and services based on customers' purchase history and category information.
[1134] An "emotion recognition engine" is a technology that analyzes a customer's facial expressions and tone of voice to identify their current emotions.
[1135] MODE FOR CARRYING OUT THE INVENTION
[1136] The present invention relates to a system that uses a generative AI model to provide personalized service based on the customer's learning level and emotions. This system is implemented via customer terminals or in-store robots, optimizing the customer experience. Detailed embodiments for implementing this system are described below.
[1137] System configuration
[1138] 1. Hardware
[1139] Device: Refers to the smartphone or computer used by the customer.
[1140] Robots: Robots that provide services to customers in stores, such as Pepper.
[1141] Camera and microphone: Devices that recognize the customer's facial expressions and voice. These are often built into the robot, but may also be attached to the terminal.
[1142] 2. Software
[1143] Generative AI model: An artificial intelligence that generates programming problems and suggestions based on the learner's learning level.
[1144] Emotion recognition engine: An engine that recognizes emotions by analyzing a customer's facial expressions and tone of voice. Examples include Google Cloud Vision API and Microsoft Azure Face API.
[1145] Database: Use MongoDB or SQL Server as a database to store customer purchase history and interest category information.
[1146] Program processing
[1147] The server performs the following process: First, when a customer enters a store and starts interacting with the robot, the robot's camera and microphone are activated and its emotion recognition engine analyzes the customer's facial expressions and tone of voice, thereby recognizing the customer's current emotions.
[1148] The server then retrieves the customer's past purchase history and category of interest information from a database and uses a generative AI model to suggest the most suitable products and services for the customer. The suggestions are then displayed on the robot's display or the customer's device.
[1149] For example, if a customer asks about a new product, the server will suggest the most suitable product based on the customer's past purchase history and current interests. As a specific example, if the database records that the customer has previously purchased entry-level products, the generative AI model will suggest new entry-level products.
[1150] Furthermore, the server utilizes an emotion recognition engine to generate feedback based on the customer's emotions. For example, if the server recognizes that the customer is having fun, it will provide a message such as "We're glad you're having fun!". On the other hand, if the customer is confused, it will generate a message such as "Are you in need of help? How can we help you?".
[1151] Prompt Sentence Examples
[1152] Generate the following Python program to enable an in-store robot to recognize customer emotions and provide appropriate feedback. It also suggests appropriate products based on the customer's learning level, as follows:
[1153] Beginner: ['Beginner Product A', 'Beginner Product B', 'Beginner Product C']
[1154] Intermediate: ['Intermediate Product A', 'Intermediate Product B', 'Intermediate Product C']
[1155] Advanced: ['Advanced Product A', 'Advanced Product B', 'Advanced Product C']
[1156] Emotion recognition is used to analyze the customer's facial expressions and tone of voice, and provide appropriate feedback based on the emotion: "Happy", "Confused", or "Other".
[1157] With the above-described configuration and processing, the present invention aims to improve customer satisfaction by providing suggestions and feedback in real time that meet the individual needs of customers.
[1158] The flow of the specific processing in the application example 2 will be described with reference to FIG.
[1159] Program processing flow
[1160] Step 1: Gather customer information
[1161] The server uses the robot's camera and microphone to collect the customer's facial expressions and tone of voice in real time. The camera captures the customer's facial expressions, and the microphone records their voice. This input data is sent to an emotion recognition engine, which analyzes the customer's emotions. The analysis results are output as emotions such as "enjoyed" or "confused."
[1162] Step 2: Get purchase history and category information
[1163] The server retrieves the customer's past purchase history and interest category information from the database. This database query inputs the purchase history and interest category data, and returns the results to the server as output.
[1164] Step 3: Generate programming problems
[1165] The server uses a generative AI model to generate optimal programming problems or product suggestions for each customer based on the acquired purchase history, category information, and analyzed emotional data. Here, the input is the customer's level, interest category, and emotional data, and the output is the generated programming problems or product information.
[1166] Step 4: Submitting suggestions and issues
[1167] The server sends the generated programming questions and product information to the terminal, which displays this information to the customer. The input is the generated content received from the server, and the output is that it is displayed on the customer's display.
[1168] Step 5: Evaluate and provide feedback on your answers
[1169] When a user inputs an answer to a provided programming problem, the answer is sent to the server via the terminal. The server then uses an evaluation means to determine the accuracy of the received answer. The input is the answer content, and the output is the evaluation result. After that, appropriate feedback is generated based on the emotions analyzed by the emotion recognition engine, and the feedback is again provided to the user.
[1170] Step 6: Update learning levels and customer information
[1171] The server updates the learner's learning level based on the user's answer. The server also records the purchase history and emotional changes in the database. The input is the latest answer and customer information, and the output is the updated learning level, new purchase history, and emotional records.
[1172] Through these steps, the server can provide personalized suggestions and feedback that correspond to the customer's individual needs and real-time emotions, which is expected to improve customer satisfaction.
[1173] 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.
[1174] The data generation model 58 is a so-called generative AI (Artificial Intelligence). An example of the data generation model 58 is ChatGPT (Internet Search<URL: https: / / openai.com / blog / chatgpt> ), Gemini (Internet search <url: https: gemini.google.com ?hl="ja">) and other generation AIs. The data generation model 58 is obtained by performing deep learning on a neural network. A prompt including an instruction is input to the data generation model 58, and inference data such as voice data indicating voice, text data indicating text, and image data indicating an image is also input. The data generation model 58 performs inference on the input inference data in accordance with the instruction indicated by the prompt, and outputs the inference result in a data format such as voice data and text data. Here, inference refers to, for example, analysis, classification, prediction, and / or summarization.
[1175] In the above embodiment, an example was given in which the specific processing is performed by the data processing device 12, but the technology of the present disclosure is not limited to this, and the specific processing may be performed by the headset type terminal 314.
[1176] [Fourth embodiment]
[1177] FIG. 7 shows an example of the configuration of a data processing system 410 according to the fourth embodiment.
[1178] 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.
[1179] The data processing device 12 includes a computer 22, a database 24, and a communication I / F 26. The computer 22 is an example of a "computer" according to the technology of the present disclosure. The computer 22 includes a processor 28, a RAM 30, and a storage 32. The processor 28, the RAM 30, and the storage 32 are connected to a bus 34. The database 24 and the communication I / F 26 are also connected to the bus 34. The communication I / F 26 is connected to a network 54. Examples of the network 54 include a WAN (Wide Area Network) and / or a LAN (Local Area Network).
[1180] 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.
[1181] The microphone 238 receives instructions and the like from the user 20 by receiving voice uttered by the user 20. The microphone 238 captures the voice uttered by the user 20, converts the captured voice into audio data, and outputs it to the processor 46. The speaker 240 outputs audio in accordance with instructions from the processor 46.
[1182] Camera 42 is a small digital camera equipped with an optical system including a lens, aperture, and shutter, and an imaging element such as a CMOS (Complementary Metal-Oxide-Semiconductor) image sensor or a CCD (Charge Coupled Device) image sensor, and captures images of the surroundings of user 20 (for example, an imaging range defined by an angle of view equivalent to the field of vision of a typical healthy person).
[1183] 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.
[1184] The control object 443 includes a display device, LEDs in the eyes, and motors for driving the arms, hands, and feet. The posture and gestures of the robot 414 are controlled by controlling the motors of the arms, hands, and feet. Some of the emotions of the robot 414 can be expressed by controlling these motors. In addition, the facial expressions of the robot 414 can also be expressed by controlling the light emission state of the LEDs in the eyes of the robot 414.
[1185] 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.
[1186] The specific processing program 56 is an example of a "program" according to the technology of the present disclosure. The processor 28 reads the specific processing program 56 from the storage 32 and executes the read specific processing program 56 on the RAM 30. The specific processing is realized by the processor 28 operating as a specific processing unit 290 in accordance with the specific processing program 56 executed on the RAM 30.
[1187] 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.
[1188] In the robot 414, the processor 46 performs the reception output process. A reception output program 60 is stored in the storage 50. The processor 46 reads the reception output program 60 from the storage 50 and executes the read reception output program 60 on the RAM 48. The reception output process is realized by the processor 46 operating as the control unit 46A in accordance with the reception output program 60 executed on the RAM 48.
[1189] Next, a description will be given of the specific processing performed by the specific processing unit 290 of the data processing device 12. In the following description, the data processing device 12 will be referred to as a "server" and the robot 414 will be referred to as a "terminal."
[1190] The system of the present invention uses artificial intelligence as a generation means to automatically generate programming problems based on the learning level of the learner and provide them to the learner's terminal. Below, a detailed description of an embodiment of the system of the present invention will be given.
[1191] First, we will explain the overall operation of the system. A learner requests a new programming problem using their own device. When the device sends the request to the server, the server checks the learner's learning level. The server uses artificial intelligence to generate programming problems appropriate for that learning level and sends them to the device. When the learner answers the problem and sends the results back from the device to the server, the server evaluates the accuracy of the answer and updates the learner's learning level.
[1192] Next, we will explain the specific operation of each process. The AI generator, which serves as the generation means, selects or generates appropriate questions according to the learner's learning level. The difficulty of the questions is divided into stages based on their complexity and the skills required.
[1193] When a learner requests a question, the server looks up the learner's current level in the database. The server generates a question appropriate to this level and sends it to the device. For example, a learner at level 1 is provided with a question that simply asks them to print "Hello, World!"
[1194] After the learner works on the questions and writes down the answers, the device sends the answers to the server. The server analyzes the received answers using an evaluation tool and determines whether they are correct. At this time, the server compares them with the correct answers set in advance. If the answer is correct, the server raises the learner's learning level by one.
[1195] Furthermore, the system is equipped with a means for providing feedback to the learner. The server sends the results of the correct or incorrect answer back to the terminal, and provides appropriate feedback to the learner. For example, if the answer is correct, it displays "Correct! Proceed to the next level," and if the answer is incorrect, it displays "Incorrect. Please study this part again."
[1196] As a concrete example, consider the case where learner A requests a new problem. If learner A's current level is 1, the server generates a level 1 problem and displays "print('Hello, World!') \n What does this code output?" on the terminal. When learner A enters the answer "Prints Hello, World!" and submits it from the terminal, the server determines this as the correct answer. The server raises learner A's level to 2 and provides feedback to advance to the next level.
[1197] In this way, the system of the present invention automatically generates programming problems according to the learner's learning level, evaluates the answers, and provides appropriate feedback, thereby effectively improving the learner's programming skills.
[1198] The processing flow will be explained below.
[1199] Step 1: Request a new issue
[1200] A user requests a new programming problem using a terminal, which accesses the URL "GET / get_problem / student_id".
[1201] Step 2: Accepting the request
[1202] The server receives the request and calls the get_problem function.
[1203] Step 3: Check your learning level
[1204] The server references the record corresponding to the student_id of the requested learner from the database and checks the learning level of that learner.
[1205] Step 4: Generate the problem
[1206] The server uses artificial intelligence to generate questions of a suitable difficulty level based on the learner's learning level. At this stage, questions are selected or generated.
[1207] Step 5: Return the issue
[1208] The server converts the generated questions into JSON format and sends it back to the terminal via an HTTP response.
[1209] Step 6: View the problem
[1210] The terminal displays the problem received from the server to the user, who then works on the problem.
[1211] Step 7: Prepare your answer
[1212] The user works through the questions and writes down the answers.
[1213] Step 8: Submit your answers
[1214] The user uses the terminal to submit the answer to the URL "POST / submit_answer / student_id". At this time, the answer and question content are included in the request body in JSON format.
[1215] Step 9: Accepting the Answer
[1216] The server receives the request and calls the submit_answer function.
[1217] Step 10: Extracting the Answer
[1218] The server extracts the answer and question from the request body.
[1219] Step 11: Determine the answer
[1220] The server determines whether the answer retrieved is correct by comparing it with a preset correct answer.
[1221] Step 12: Update the Level
[1222] If the answer is correct, the server raises the learner's learning level by one, specifically by incrementing the value of the level field in the database.
[1223] Step 13: Generate results
[1224] The server converts the answer result into JSON format.
[1225] Step 14: Returning the results
[1226] The server sends the results back to the device via an HTTP response, and the user can check the results on their own device.
[1227] Step 15: Viewing feedback
[1228] The device displays the results received from the server to the user. For example, if the answer is correct, it displays "Correct! Proceed to the next level.", and if the answer is incorrect, it displays "Incorrect. Please study this part again."
[1229] In this way, through a series of steps, learners can answer programming questions appropriate to their learning level and proceed to the next step based on the results.
[1230] Example 1
[1231] Next, a description will be given of Example 1. In the following description, the data processing device 12 will be referred to as a "server" and the robot 414 will be referred to as a "terminal."
[1232] In conventional educational systems, it is difficult to provide programming problems that correspond to the individual learning levels of students, which makes it difficult to expect improvements in learning effectiveness.In addition, there is also the issue of a heavy burden on teachers because the evaluation of answers and appropriate updating of learning levels are not automated.
[1233] The specific processing by the specific processing unit 290 of the data processing device 12 in the first embodiment is realized by the following means.
[1234] In this invention, the server includes means for requesting new programming problems from the learner's terminal, means for transmitting the request to the server, means for the server to confirm the user's learning level, means for the server to generate programming problems based on the learning level using a generative AI model, means for the learner to provide the generated problems to the learner's terminal, means for the learner to input answers into the terminal and transmit the answers to the server, means for evaluating the answers, and means for updating the learning level based on the learner's answers. This enables programming learning that is optimized for each learner, and also reduces the burden on teachers through automated answer evaluation and learning level updates.
[1235] "Means for requesting new programming problems from a learner's terminal" refers to a means for a learner to use his or her own terminal to request a new programming problem from the system.
[1236] The "means for sending a request to a server" is a means for sending a request for a new programming problem sent from a learner's terminal to a server via a communication protocol.
[1237] The "means for the server to check the learning level of the user" refers to the means by which the server refers to the database and obtains the current learning level of the user.
[1238] "Means for a server to utilize a generative AI model to generate programming problems based on learning level" means means for a server to utilize a generative AI model to automatically generate programming problems appropriate for a user's specific learning level.
[1239] The "means for providing the generated problem to the learner's terminal" is a means for transmitting the programming problem generated by the server to the learner's terminal and displaying it to the user.
[1240] "Means for a learner to input answers into a terminal and transmit the answers to a server" refers to means for a learner to input answers to displayed programming problems into a terminal and transmit the input answers to a server.
[1241] The "means for evaluating answers" is a means for analyzing the answers received by the server from the learner and determining whether they are correct or incorrect.
[1242] The "means for updating the learning level based on the learner's answer" is a means for the server to update the user's learning level based on whether the answer is correct or incorrect.
[1243] The system of the present invention utilizes a generative AI model to automatically generate programming problems based on the learner's learning level and provides them to the learner's terminal. Below, we will explain in detail the embodiments for implementing the system of the present invention.
[1244] First, as an overview of the entire system, a learner uses a device to request a new programming problem. The device sends the request to the server, which checks the learner's learning level and then uses a generative AI model to generate a programming problem appropriate to the learner's learning level and sends it to the device. The learner then answers the problem and sends the answer from the device to the server. The server evaluates the received answer and updates the learner's learning level. The server also provides appropriate feedback to the learner based on the evaluation results.
[1245] The specific hardware and software are as follows:
[1246] Hardware:
[1247] Devices: personal computers, tablets, smartphones, etc.
[1248] Server: High-Performance Computing Server
[1249] software:
[1250] Generative AI models: For example, GPT-4
[1251] Database: A database management system for managing learners' learning levels
[1252] Communication protocol: HTTP / HTTPS
[1253] As a concrete example, consider the case where learner A requests a new programming problem. Learner A's device operates as follows:
[1254] 1. User: Learner A launches the application and clicks the "Create a new question" button.
[1255] 2. Device: Receives Learner A's request and sends the request data in JSON format to the server by POSTing it to the API endpoint.
[1256] Server behavior:
[1257] 1. Server: Receives the request and retrieves Learner A's current learning level (e.g., LEVEL_1) from the database.
[1258] 2. Server: Sends a prompt to a generative AI model such as GPT-4. An example of a prompt would be "Please generate a programming problem for LEVEL_1."
[1259] 3. Server: Send the generated question (e.g., print('Hello, World!') \n What does this code output?) to the terminal as an HTTP response.
[1260] The process after learner A receives the questions is as follows:
[1261] 1. User: Learner A works on the problem, enters the answer (e.g., "Prints Hello, World!") into the terminal, and presses the "Submit" button.
[1262] 2. Terminal: Sends the answer to the server.
[1263] Server Actions (cont.):
[1264] 1. Server: Receives the answer and compares it with the pre-set correct answers to determine whether it is correct or incorrect.
[1265] 2. Server: If the answer is correct, update Learner A's learning level by one level (e.g., LEVEL_2) and reflect it in the database.
[1266] 3. Server: Generates a feedback message (e.g., "Correct! Proceed to the next level.") based on the evaluation results and sends it to the device.
[1267] In this way, learners can effectively improve their programming skills by answering questions at the appropriate level. Furthermore, the evaluation of answers and updating of learning levels are automated, allowing learners to progress smoothly and reducing the burden on teachers.
[1268] The flow of the identification process in the first embodiment will be described with reference to FIG.
[1269] Step 1: User requests a new programming problem
[1270] The user launches the learning application and clicks the "Please give me a new question" button.
[1271] Input: User request click
[1272] Output: Request data for a new issue
[1273] Step 2: The device sends a request to the server
[1274] The terminal receives the request data and sends it to the server using the HTTP protocol.
[1275] Input: Request data for a new issue
[1276] Output: HTTP request to the server
[1277] Step 3: The server checks the user's learning level
[1278] The server receives the request and accesses a database to obtain the user's learning level.
[1279] Input: HTTP request
[1280] Output: User learning level data
[1281] Step 4: The server uses the generative AI model to generate programming problems based on the learning level.
[1282] Based on the acquired learning level data, the server sends prompts to the generative AI model (e.g., GPT-4) to generate appropriate programming problems.
[1283] Input: User learning level data, prompt (e.g. "Generate programming problems for LEVEL_1")
[1284] Output: The generated programming problem
[1285] Step 5: Providing the server-generated problem to the device
[1286] The server sends the generated programming questions to the terminal as an HTTP response.
[1287] Input: Generated programming problem
[1288] Output: HTTP response to the device
[1289] Step 6: The user works on the problem and enters the answer into the device.
[1290] The user works through programming problems displayed on the terminal and enters the answers in the input fields.
[1291] Input: Generated programming problem
[1292] Output: User's answer data
[1293] Step 7: The device sends the answer to the server
[1294] The terminal transmits the answer data entered by the user to the server using the HTTP protocol.
[1295] Input: User's answer data
[1296] Output: HTTP request to the server
[1297] Step 8: The server evaluates the answer
[1298] The server analyzes the received answer data using an evaluation means to determine whether the answer is correct or not. The server compares the user's answer with a preset correct answer.
[1299] Input: User's answer data, preset correct answer data
[1300] Output: Evaluation result (correct or incorrect)
[1301] Step 9: The server updates the user's learning level.
[1302] If the answer is correct, the server raises the user's learning level by one and reflects this in the database. If the answer is incorrect, the level is not updated.
[1303] Input: Assessment result (correct or incorrect), user's current learning level data
[1304] Output: Updated learning level data
[1305] Step 10: The server sends feedback to the device
[1306] The server generates a feedback message based on the evaluation result and sends it to the terminal as an HTTP response. For example, if the answer is correct, it generates a message saying "That's right! Proceed to the next level."
[1307] Input: Evaluation result (correct or incorrect)
[1308] Output: Feedback message, HTTP response to the device
[1309] Step 11: User reviews feedback
[1310] The user checks the feedback message displayed on the terminal.
[1311] Input: Feedback message
[1312] Output: User's learning behavior (attempting the next problem, relearning, etc.)
[1313] In this way, by sequentially explaining the inputs and outputs and specific operations at each processing step, the flow of the entire system becomes clear.
[1314] (Application example 1)
[1315] Next, a description will be given of Application Example 1. In the following description, the data processing device 12 will be referred to as a "server" and the robot 414 will be referred to as a "terminal."
[1316] In conventional programming learning systems, it is difficult to provide problems appropriate to the learner's learning level, making it difficult to conduct effective learning. In addition, there is a lack of means for learners to learn in a real-time interactive environment, making it difficult to motivate learners and improve their understanding.
[1317] The specific processing by the specific processing unit 290 of the data processing device 12 in the application example 1 is realized by the following means.
[1318] In this invention, the server includes means for generating programming problems based on the learning level of a learner using a generation artificial intelligence as a generation means, means for providing the problems generated by the generation means to the learner's display device, means for evaluating answers received from the learner's display device, means for updating the learning level based on the learner's answers, and means for providing an environment in which the learner can interactively answer problems using virtual reality technology for constructing a virtual space, thereby enabling the learner to efficiently answer problems suited to their level and providing an interactive learning environment in real time.
[1319] "Generative AI as a generation means" refers to AI used to generate programming problems based on the learner's learning level.
[1320] "Student display device" means a device used by a learner to view and interact with content, such as smart glasses or a head-mounted display.
[1321] The "evaluation means" is a system that has the function of analyzing the answers received from the learner's terminal and determining whether they are correct or incorrect.
[1322] A "means for updating learning level" refers to a system that has the function of reevaluating a learner's current learning level based on the learner's answers and adjusting the level as necessary.
[1323] "Virtual space" refers to a virtual three-dimensional environment generated using computer technology, in which learners can engage in interactive activities using virtual reality technology.
[1324] "Virtual reality technology" refers to technology that allows users to interact in real time within a virtual environment, and includes head-mounted displays and sensor technology.
[1325] The system of the present invention uses artificial intelligence as a generation means to automatically generate programming problems based on the learner's learning level and provide them to the learner's display device. To implement this system, the following hardware, software, and procedures are used.
[1326] Hardware and Software
[1327] Display device: Use smart glasses (e.g., Oculus Quest 2) or a head-mounted display.
[1328] Server: Uses Python, Flask, and TensorFlow to run generative AI models.
[1329] Virtual reality technology: We use Unity to create a virtual space, providing an interactive learning environment for learners.
[1330] Specific operation of the system
[1331] 1. Question generation based on learner level:
[1332] The learner wears a display device and requests a new programming problem in the virtual space. This request is sent to the server, which checks the learner's current learning level and generates an appropriate problem using artificial intelligence (AI) as a generation means.
[1333] 2. Providing generated questions:
[1334] The server sends the generated questions to the learner's display device and displays them in the virtual space, allowing the learner to work on the questions interactively.
[1335] 3. Evaluation and feedback of answers:
[1336] When a learner enters an answer, the data is sent to the server, which compares it with the correct answers set in advance and evaluates whether the answer is correct. The result is fed back to the learner, and if the answer is correct, the learning level is updated.
[1337] Specific examples
[1338] For example, if a learner is at level 2, they would follow these steps:
[1339] 1. The learner verbally requests, "Show me a new question" in the virtual space.
[1340] 2. The server generates a prompt based on the learner's level 2:
[1341] Prompt: "User is level 2. Generate a question about basic Python loops."
[1342] 3. A question is displayed on the learner's display (e.g., "What is the output when you run the following Python code: for i in range(5): print(i)").
[1343] 4. Once the learner enters and submits their answer, the server evaluates the answer and provides appropriate feedback, such as "That's correct. Proceed to the next level."
[1344] In this way, the system of the present invention utilizes virtual reality technology to enable learners to interactively learn programming problems suited to their own level.
[1345] The flow of the specific processing in the application example 1 will be described with reference to FIG.
[1346] Step 1:
[1347] A user wears a display device (smart glasses or a head-mounted display) and requests a new programming problem in the virtual space. This request is sent from the user's device to the server.
[1348] Input: User's spoken request to "Show me new questions"
[1349] Output: The device sends the request data to the server
[1350] Step 2:
[1351] The server processes the received request and retrieves the user's current learning level from a database.
[1352] Input: User request data
[1353] Output: Learning level obtained from the database
[1354] Step 3:
[1355] The server generates appropriate prompt sentences for the generative AI model based on the learning level.
[1356] Input: Learning level
[1357] Output: Generated prompt (e.g. "User's learning level is 2. Please generate a question about basic Python loops.")
[1358] Step 4:
[1359] The generative AI model generates programming problems appropriate to the level based on the prompt text.
[1360] Input: prompt statement
[1361] Output: Generated programming questions (e.g., "What is the output when you run the following Python code: for i in range(5): print(i)")
[1362] Step 5:
[1363] The server sends the generated questions to the user's terminal, and the questions are displayed on the display device.
[1364] Input: Generated programming problem
[1365] Output: Programming questions sent to terminal
[1366] Step 6:
[1367] The user answers the questions displayed on the display device, and the answers are sent from the terminal to the server.
[1368] Input: User's answer to the question
[1369] Output: The device sends the answer data to the server
[1370] Step 7:
[1371] The server evaluates the received answer by comparing it with a predefined set of correct answers.
[1372] Input: User's answer data
[1373] Output: Correctness of answer
[1374] Step 8:
[1375] Based on the result of the correct / incorrect judgment, the server updates the user's learning level as necessary, generates appropriate feedback, and sends it to the user's terminal.
[1376] Input: Correct / incorrect result
[1377] Output: Feedback message and updated learning level
[1378] Step 9:
[1379] The user's terminal displays the received feedback on a display device to provide the feedback to the user.
[1380] Input: Feedback message
[1381] Output: Feedback message displayed on the display device
[1382] In this way, users can efficiently solve program problems appropriate to their level, providing a real-time interactive learning environment.
[1383] Furthermore, an emotion engine that estimates the user's emotion may be further combined. That is, the identification processing unit 290 may estimate the user's emotion using the emotion identification model 59, and perform identification processing using the user's emotion.
[1384] The present invention relates to a system that uses artificial intelligence as a generation means to automatically generate programming problems based on the learner's learning level and provides them to the learner's terminal. It also includes a function that combines an emotion engine that recognizes the user's emotions to provide the learner with appropriate feedback and assistance. Below, we will explain in detail the embodiments of the system of the present invention.
[1385] First, we will describe the overall operation of the system. When a learner requests a new programming problem, the device sends the request to the server. The server checks the learner's current learning level and uses generative artificial intelligence to generate programming problems appropriate for that level. These generated problems are provided to the learner via the device. When the learner answers the problem and sends the results from the device to the server, the server evaluates the correctness of the answer and updates the learner's learning level. The server also uses an emotion engine to recognize the learner's emotions and provides appropriate feedback based on those emotions.
[1386] Next, the specific operation of each process will be described in detail.
[1387] 1. Generating programming problems
[1388] When a learner requests a new problem using their device, the server references the learner's learning level in the database. The server then uses generative artificial intelligence to generate programming problems that match the learner's learning level. The difficulty of the problems is designed to gradually increase.
[1389] 2. Providing the problem
[1390] The generated programming problems are sent from the server to the terminal, which displays them to the learner, who then works on the displayed problems.
[1391] 3. Submitting and Evaluating Your Answers
[1392] After a learner answers a question, the answer is sent to the server via the device. The server evaluates the received answer and determines whether it is correct or incorrect. This determination is made by comparing it with a preset correct answer.
[1393] 4. Learning Level Update
[1394] If the answer is correct, the server raises the learner's learning level by one, which is achieved by incrementing the "learning level" field in the database.
[1395] 5. Emotion Recognition and Feedback
[1396] The server is equipped with an emotion engine that recognizes the learner's emotions. Specifically, emotions are identified by analyzing the learner's facial expressions, tone of voice, and input speed. For example, if the learner is having difficulty, the emotion engine will recognize this and report it to the server. The server will respond by sending the learner an encouraging message or lowering the difficulty of the questions. On the other hand, if the learner is enjoying the task, it will provide feedback by increasing the difficulty or sending a praising message.
[1397] As a concrete example, consider the case where Learner A requests a new problem. Let's assume Learner A's current level is 1. The server generates a level 1 problem and displays "print('Hello, World!') \n What does this code output?" on the terminal. When Learner A enters the answer "Prints Hello, World!" and sends it from the terminal, the server determines this to be the correct answer. The server raises Learner A's level to 2 and provides feedback such as "That's correct! Great!" to help Learner A tackle the next problem with confidence. Furthermore, if the emotion engine recognizes that Learner A is enjoying the task, it will raise the difficulty of the next problem appropriately.
[1398] In this way, the system of the present invention automatically generates programming problems that correspond to the individual learner's pace, evaluates the answers, and further uses an emotion engine to provide feedback that is adapted to the learner's emotions, thereby effectively improving the learner's programming skills.
[1399] The processing flow will be explained below.
[1400] Step 1: Request a new issue
[1401] A user requests a new programming problem from a terminal by accessing the URL "GET / get_problem / student_id" from the terminal.
[1402] Step 2: Accepting the request
[1403] The server receives the request and calls the get_problem function.
[1404] Step 3: Check your learning level
[1405] The server references the record corresponding to the student_id of the requested learner from the database and checks the learning level of the relevant learner.
[1406] Step 4: Generate the problem
[1407] The server uses artificial intelligence to generate programming problems of a corresponding level of difficulty based on the learner's learning level.
[1408] Step 5: Return the issue
[1409] The server converts the generated questions into JSON format and sends it back to the terminal as an HTTP response.
[1410] Step 6: View the problem
[1411] The terminal receives the programming problems from the server and displays them to the user, who then works on the problems.
[1412] Step 7: Prepare your answer
[1413] The user works through the questions and writes down the answers.
[1414] Step 8: Submit your answers
[1415] The user uses the terminal to submit the answer to the URL "POST / submit_answer / student_id", including the answer and question details in the JSON format request body.
[1416] Step 9: Accepting the Answer
[1417] The server receives the request and calls the submit_answer function.
[1418] Step 10: Extracting the Answer
[1419] The server extracts the answer and question from the request body.
[1420] Step 11: Determine the answer
[1421] The server determines whether the answer it retrieves is correct by comparing it with a preset correct answer.
[1422] Step 12: Update the Level
[1423] If the answer is correct, the server raises the learner's learning level by one, specifically by incrementing the value of the "learning level" field in the database.
[1424] Step 13: Generate results
[1425] The server converts the answer result into JSON format.
[1426] Step 14: Returning the results
[1427] The server returns the results to the terminal as an HTTP response, allowing the user to check their answers.
[1428] Step 15: Viewing feedback
[1429] The device displays the answer results received from the server to the user. For example, if the answer is correct, it displays "Correct! Proceed to the next level.", and if the answer is incorrect, it displays "Incorrect. Please study this part again."
[1430] Step 16: Recognizing User Emotions
[1431] The device analyzes the learner's facial expressions, tone of voice, and typing speed, and the emotion engine recognizes the learner's emotions. Specifically, it uses sensors such as a camera and microphone to capture emotional data in real time.
[1432] Step 17: Generate emotion-based feedback
[1433] The server generates appropriate feedback and assistance for the learner based on the emotional data received from the emotion engine. For example, if negative emotions are detected, it may send encouraging messages or adjust the difficulty of the questions.
[1434] Step 18: Provide emotion-based feedback
[1435] The server generates feedback and assistance, which is sent to the device, and the device displays it to the user. For example, it might say, "That was a bit difficult. Let's try an easier problem next time!"
[1436] In this way, the user, device, server, and emotion engine work together to provide a programming learning environment that responds to each learner's individual pace and emotions, supporting effective learning.
[1437] Example 2
[1438] Next, a description will be given of Example 2. In the following description, the data processing device 12 will be referred to as a "server" and the robot 414 will be referred to as a "terminal."
[1439] Current learning support systems lack the ability to automatically generate questions appropriate to the learner's level, or the ability to evaluate the answers. Furthermore, they lack the ability to grasp the learner's emotional state and provide feedback accordingly, making it difficult to efficiently improve the learner's skills while maintaining their motivation. These issues need to be addressed.
[1440] The specific processing by the specific processing unit 290 of the data processing device 12 in the second embodiment is realized by the following means.
[1441] In this invention, the server includes a means for generating programming problems based on the learner's learning level using a generation artificial intelligence as a generation means, a means for providing the problems generated by the generation means to the learner's information processing device, and a means for evaluating input received from the learner's information processing device. This enables automatic generation of problems appropriate to the learner's learning level and accurate evaluation of the answers. Furthermore, by including a means for recognizing the learner's emotions using an emotion recognition engine and providing appropriate feedback based on the recognition results, feedback can be provided according to the learner's emotional state, effectively supporting the learner's motivation to learn and the improvement of their skills.
[1442] "Generation means" refers to a generative artificial intelligence that generates programming problems based on the learning level of the learner.
[1443] "Student" means an individual who seeks to improve their skills by solving programming problems.
[1444] "Learning level" is an indicator that shows the learner's current level of programming skill.
[1445] "Information processing device" refers to the device on which learners answer questions and receive feedback.
[1446] "Input" refers to the answers to questions and other data that a learner sends to the server via an information processing device.
[1447] "Evaluation means" refers to the function that receives learner input, analyzes the content, and determines whether it is correct or incorrect.
[1448] A "database" refers to a storage device that stores information such as a learner's learning level and past answer history.
[1449] An "emotion recognition engine" refers to a function that identifies a learner's emotional state by analyzing their facial expressions, tone of voice, input speed, etc.
[1450] "Feedback" refers to messages or instructions provided to a learner based on their answers or emotional state.
[1451] This invention relates to a system that automatically generates programming problems based on the learner's learning level and provides them to the learner. This system uses generative artificial intelligence as a generation method to provide appropriate programming problems to the learner and evaluate their answers. It also includes a function that combines an emotion recognition engine to provide appropriate feedback and assistance to the learner.
[1452] First, let us explain the overall operation of the system. When a learner requests a new programming problem, the device sends the request to the server. At this stage, the device is the hardware that accepts user requests. The server receives the request and retrieves the learner's current learning level from a database. Based on this data, the server uses a generative AI (for example, OpenAI's GPT-3 model) to generate a programming problem appropriate for the learner's learning level. At this time, the server sends a prompt to the generative AI. An example of a prompt is, "Generate a programming problem appropriate for the learner's level 1. Create a problem that includes simple Python printed text."
[1453] The generated programming problems are sent from the server to the terminal, which displays them to the learner. The user works on the displayed problems and enters their answers into the terminal. The entered answers are then sent to the server via the terminal. The server evaluates the received answers and determines how they should be evaluated. This evaluation includes comparing the answers with a pre-defined list of correct answers. If the learner's answer is correct, the server updates the learner's learning level. Specifically, this is achieved by incrementing the learning level field in the database.
[1454] Furthermore, the server is equipped with an emotion recognition engine that can recognize the learner's emotions. Specifically, it analyzes data collected by the device, such as the learner's facial expressions, tone of voice, and typing speed, to identify the learner's emotional state. For example, if the learner is having difficulty, the emotion recognition engine analyzes it and reports it to the server, which can then send the learner an encouraging message. Also, if the learner is enjoying the lesson, it provides feedback by increasing the difficulty level or sending a praising message.
[1455] As a concrete example, consider the case where Learner A requests a new problem. If Learner A's learning level is 1, the server generates the problem "print('Hello, World!') \n What does this code output?" based on this level. When Learner A enters the answer "Prints Hello, World!" and sends it from the device, the server determines this answer as correct and raises Learner A's learning level to 2. Furthermore, if the emotion recognition engine recognizes that Learner A is enjoying the task, the server decides to appropriately increase the difficulty of the next problem, along with the feedback "That's correct! Great!"
[1456] The system of the present invention effectively improves learners' programming skills by automatically generating programming problems tailored to the learner and providing appropriate feedback. The main hardware used includes a terminal (information processing device) and a server, and the main software includes a generative artificial intelligence (generative AI model) and an emotion recognition engine.
[1457] The flow of the identification process in the second embodiment will be described with reference to FIG.
[1458] Step 1:
[1459] Programming Problem Request
[1460] The user operates the device and clicks the "Request a new problem" button.
[1461] The terminal sends this request to the server.
[1462] Input: User's "Request a new issue" action.
[1463] Output: A request to the server to create a new problem.
[1464] Step 2:
[1465] Viewing student information
[1466] When the server receives a request, it connects to the database.
[1467] The server retrieves the user's learning level from the database.
[1468] Input: New question creation request, learner ID.
[1469] Output: The learner's current learning level.
[1470] Step 3:
[1471] Generating programming problems
[1472] The server sends a prompt sentence to the generative artificial intelligence (e.g., generative AI model) based on the learner's learning level.
[1473] Example: "Generate programming problems appropriate for level 1 learners. Create problems that include simple Python print statements."
[1474] The generative AI model receives a prompt and generates programming problems that correspond to the learner's learning level.
[1475] The server receives the generated questions.
[1476] Input: learning level, prompt statement.
[1477] Output: The generated programming problem.
[1478] Step 4:
[1479] Submitting and Viewing Issues
[1480] The server transmits the generated programming questions to the terminal.
[1481] The terminal displays the problem to the user.
[1482] Input: The generated programming problem.
[1483] Output: The programming problem displayed for the user to see.
[1484] Step 5:
[1485] Submitting and grading answers
[1486] The user enters the answer to the displayed programming question and clicks the submit button.
[1487] The terminal sends the answer to the server.
[1488] The server evaluates the received answers by checking them against a pre-defined list of correct answers.
[1489] Input: The user's answer.
[1490] Output: The correctness of the answer.
[1491] Step 6:
[1492] Learning Level Update
[1493] If the answer is correct, the server raises the learner's learning level by one.
[1494] The server updates the learner's record in the database.
[1495] Input: Correct / incorrect rating of answer.
[1496] Output: Updated learning level.
[1497] Step 7:
[1498] Emotion Recognition and Feedback
[1499] The server uses an emotion recognition engine to analyze the learner's emotions.
[1500] The device sends collected data such as the learner's facial expressions, tone of voice, and typing speed to a server.
[1501] An emotion recognition engine analyzes the data to identify the learner's emotional state.
[1502] The server generates appropriate feedback based on the emotion recognition results.
[1503] The terminal displays the feedback to the user.
[1504] Input: Emotional data (facial expressions, tone of voice, typing speed).
[1505] Output: Feedback message depending on emotional state.
[1506] (Application example 2)
[1507] Next, a description will be given of Application Example 2. In the following description, the data processing device 12 will be referred to as a "server" and the robot 414 will be referred to as a "terminal."
[1508] Modern brick-and-mortar stores are required to understand the individual needs and emotions of customers and provide appropriate services accordingly. However, conventional systems have difficulty providing personalized services based on the learning level and emotions of individual customers. Furthermore, they lack a mechanism for recognizing emotions and providing appropriate feedback in real time.
[1509] The identification processing by the identification processing unit 290 of the data processing device 12 in Application Example 2 is realized by the following means. In this invention, the server includes: means for generating programming problems based on the learning level of a learner using a generation artificial intelligence as a generation means; means for providing the problems generated by the generation means to the learner's terminal; means for evaluating answers received from the learner's terminal; means for updating the learning level based on the learner's answers; means for suggesting products based on the customer's past purchase history and category information of interest; and means for using an emotion recognition engine that analyzes the customer's facial expressions and tone of voice. This makes it possible to provide services that meet the individual needs and emotions of customers and improve customer satisfaction.
[1510] definition statement
[1511] "Generative AI as a generation tool" is an artificial intelligence technology used to automatically generate appropriate programming problems based on the learner's learning level.
[1512] "Learning level" is an indicator that shows the depth of knowledge and skills that a learner has currently acquired.
[1513] A "terminal" refers to an electronic device that can be directly operated by a user, such as a personal computer or smartphone.
[1514] "Answer" refers to the answer that a learner enters to a programming question provided via a terminal.
[1515] An "assessment tool" is a mechanism used to accurately evaluate answers submitted by learners and determine whether they are correct or incorrect.
[1516] The "update means" is a process for updating the learning level to the latest state based on the learner's answer results.
[1517] "Purchase history" is a record of products and services that a customer has purchased in the past.
[1518] "Category information" is data about the categories of products or services in which a customer is interested.
[1519] "Proposal methods" are methods for providing optimal products and services based on customers' purchase history and category information.
[1520] An "emotion recognition engine" is a technology that analyzes a customer's facial expressions and tone of voice to identify their current emotions.
[1521] MODE FOR CARRYING OUT THE INVENTION
[1522] The present invention relates to a system that uses a generative AI model to provide personalized service based on the customer's learning level and emotions. This system is implemented via customer terminals or in-store robots, optimizing the customer experience. Detailed embodiments for implementing this system are described below.
[1523] System configuration
[1524] 1. Hardware
[1525] Device: Refers to the smartphone or computer used by the customer.
[1526] Robots: Robots that provide services to customers in stores, such as Pepper.
[1527] Camera and microphone: Devices that recognize the customer's facial expressions and voice. These are often built into the robot, but may also be attached to the terminal.
[1528] 2. Software
[1529] Generative AI model: An artificial intelligence that generates programming problems and suggestions based on the learner's learning level.
[1530] Emotion recognition engine: An engine that recognizes emotions by analyzing a customer's facial expressions and tone of voice. Examples include Google Cloud Vision API and Microsoft Azure Face API.
[1531] Database: Use MongoDB or SQL Server as a database to store customer purchase history and interest category information.
[1532] Program processing
[1533] The server performs the following process: First, when a customer enters a store and starts interacting with the robot, the robot's camera and microphone are activated and its emotion recognition engine analyzes the customer's facial expressions and tone of voice, thereby recognizing the customer's current emotions.
[1534] The server then retrieves the customer's past purchase history and category of interest information from a database and uses a generative AI model to suggest the most suitable products and services for the customer. The suggestions are then displayed on the robot's display or the customer's device.
[1535] For example, if a customer asks about a new product, the server will suggest the most suitable product based on the customer's past purchase history and current interests. As a specific example, if the database records that the customer has previously purchased entry-level products, the generative AI model will suggest new entry-level products.
[1536] Furthermore, the server utilizes an emotion recognition engine to generate feedback based on the customer's emotions. For example, if the server recognizes that the customer is having fun, it will provide a message such as "We're glad you're having fun!". On the other hand, if the customer is confused, it will generate a message such as "Are you in need of help? How can we help you?".
[1537] Prompt Sentence Examples
[1538] Generate the following Python program to enable an in-store robot to recognize customer emotions and provide appropriate feedback. It also suggests appropriate products based on the customer's learning level, as follows:
[1539] Beginner: ['Beginner Product A', 'Beginner Product B', 'Beginner Product C']
[1540] Intermediate: ['Intermediate Product A', 'Intermediate Product B', 'Intermediate Product C']
[1541] Advanced: ['Advanced Product A', 'Advanced Product B', 'Advanced Product C']
[1542] Emotion recognition is used to analyze the customer's facial expressions and tone of voice, and provide appropriate feedback based on the emotion: "Happy", "Confused", or "Other".
[1543] With the above-described configuration and processing, the present invention aims to improve customer satisfaction by providing suggestions and feedback in real time that meet the individual needs of customers.
[1544] The flow of the specific processing in the application example 2 will be described with reference to FIG.
[1545] Program processing flow
[1546] Step 1: Gather customer information
[1547] The server uses the robot's camera and microphone to collect the customer's facial expressions and tone of voice in real time. The camera captures the customer's facial expressions, and the microphone records their voice. This input data is sent to an emotion recognition engine, which analyzes the customer's emotions. The analysis results are output as emotions such as "enjoyed" or "confused."
[1548] Step 2: Get purchase history and category information
[1549] The server retrieves the customer's past purchase history and interest category information from the database. This database query inputs the purchase history and interest category data, and returns the results to the server as output.
[1550] Step 3: Generate programming problems
[1551] The server uses a generative AI model to generate optimal programming problems or product suggestions for each customer based on the acquired purchase history, category information, and analyzed emotional data. Here, the input is the customer's level, interest category, and emotional data, and the output is the generated programming problems or product information.
[1552] Step 4: Submitting suggestions and issues
[1553] The server sends the generated programming questions and product information to the terminal, which displays this information to the customer. The input is the generated content received from the server, and the output is that it is displayed on the customer's display.
[1554] Step 5: Evaluate and provide feedback on your answers
[1555] When a user inputs an answer to a provided programming problem, the answer is sent to the server via the terminal. The server then uses an evaluation means to determine the accuracy of the received answer. The input is the answer content, and the output is the evaluation result. After that, appropriate feedback is generated based on the emotions analyzed by the emotion recognition engine, and the feedback is again provided to the user.
[1556] Step 6: Update learning levels and customer information
[1557] The server updates the learner's learning level based on the user's answer. The server also records the purchase history and emotional changes in the database. The input is the latest answer and customer information, and the output is the updated learning level, new purchase history, and emotional records.
[1558] Through these steps, the server can provide personalized suggestions and feedback that correspond to the customer's individual needs and real-time emotions, which is expected to improve customer satisfaction.
[1559] 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.
[1560] The data generation model 58 is a so-called generative AI (Artificial Intelligence). An example of the data generation model 58 is ChatGPT (Internet Search<URL: https: / / openai.com / blog / chatgpt> ), Gemini (Internet search <url: https: gemini.google.com ?hl="ja">) and other generation AIs. The data generation model 58 is obtained by performing deep learning on a neural network. A prompt including an instruction is input to the data generation model 58, and inference data such as voice data indicating voice, text data indicating text, and image data indicating an image is also input. The data generation model 58 performs inference on the input inference data in accordance with the instruction indicated by the prompt, and outputs the inference result in a data format such as voice data and text data. Here, inference refers to, for example, analysis, classification, prediction, and / or summarization.
[1561] In the above embodiment, an example was given in which the specific processing is performed by the data processing device 12, but the technology of the present disclosure is not limited to this, and the specific processing may be performed by the robot 414.
[1562] 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.
[1563] FIG. 9 is a diagram illustrating an emotion map 400 on which multiple emotions are mapped. In the emotion map 400, emotions are arranged in concentric circles radiating from the center. Emotions closer to the center of the concentric circles are more primitive. Emotions representing states and actions arising from a state of mind are arranged on the outer edges of the concentric circles. The concept of emotion includes both affect and mental states. Emotions generally generated from reactions occurring in the brain are arranged on the left side of the concentric circles. Emotions generally induced by situational judgment are arranged on the right side of the concentric circles. Emotions generally generated from reactions occurring in the brain and induced by situational judgment are arranged on the upper and lower sides of the concentric circles. Furthermore, the emotion of "pleasure" is arranged on the upper side of the concentric circles, and the emotion of "discomfort" is arranged on the lower side. In this way, in the emotion map 400, multiple emotions are mapped based on the structure by which emotions are generated, and emotions that tend to occur simultaneously are mapped close to each other.
[1564] 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.
[1565] 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).
[1566] Human emotions are based on various balances, such as posture and blood sugar levels. When these balances deviate from the ideal, a state of discomfort is indicated, and when they approach the ideal, a state of pleasure is indicated. Emotions can also be created for robots, automobiles, and motorcycles, based on various balances, such as posture and remaining battery life. When these balances deviate from the ideal, a state of discomfort is indicated, and when they approach the ideal, a state of pleasure is indicated. An emotion map can be generated, for example, based on Dr. Mitsuyoshi's emotion map (Research on Voice Emotion Recognition and Emotional Brain Physiological Signal Analysis Systems, Tokushima University, Doctoral Dissertation: https: / / ci.nii.ac.jp / naid / 500000375379). The left half of the emotion map lists emotions belonging to the "reaction" domain, where sensation is dominant. The right half of the emotion map lists emotions belonging to the "situation" domain, where situational awareness is dominant.
[1567] 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."
[1568] 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.
[1569] The system according to the present disclosure has been described above mainly with respect to the functions of the data processing device 12, but the system according to the present disclosure is not necessarily implemented on a server. The system according to the present disclosure may be implemented as a general information processing system. The present disclosure may be implemented, for example, as a software program running on a personal computer or an application running on a smartphone, etc. The method according to the present disclosure may be provided to users in the form of SaaS (Software as a Service).
[1570] In the above embodiment, an example was given in which the specific processing is performed by one computer 22, but the technology of the present disclosure is not limited to this, and the specific processing may be distributed and performed by a plurality of computers including the computer 22. For example, the data generation model 58 may be provided in an external device of the data processing device 12, and data may be generated in the external device in accordance with input data.
[1571] 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.
[1572] 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.
[1573] 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.
[1574] The hardware resource for executing a specific process can be any of the following processors: An example of a processor is a CPU, which is a general-purpose processor that functions as a hardware resource for executing a specific process by executing software, i.e., a program. Another example of a processor is a dedicated electrical circuit, such as an FPGA (Field-Programmable Gate Array), a PLD (Programmable Logic Device), or an ASIC (Application Specific Integrated Circuit), which is a processor with a circuit configuration designed specifically for executing a specific process. Each processor has built-in or connected memory, and each processor uses the memory to execute the specific process.
[1575] The hardware resource that executes the specific processing may be configured with one of these various processors, or may be configured with a combination of two or more processors of the same or different types (for example, a combination of multiple FPGAs, or a combination of a CPU and an FPGA). Also, the hardware resource that executes the specific processing may be a single processor.
[1576] 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.
[1577] 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.
[1578] The above-described description and illustrations are a detailed explanation of the parts related to the technology of the present disclosure and are merely an example of the technology of the present disclosure. For example, the above description of the configuration, functions, actions, and effects is an explanation of an example of the configuration, functions, actions, and effects of the parts related to the technology of the present disclosure. Therefore, it goes without saying that unnecessary parts may be deleted, new elements may be added, or replacements may be made to the above-described description and illustrations within the scope of the gist of the technology of the present disclosure. Furthermore, to avoid confusion and facilitate understanding of the parts related to the technology of the present disclosure, the above-described description and illustrations omit explanations of common technical knowledge that do not require particular explanation to enable the implementation of the technology of the present disclosure.
[1579] 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.
[1580] The following is further disclosed regarding the above embodiment.
[1581] (Claim 1)
[1582] A means for generating programming problems based on the learning level of a learner using a generative artificial intelligence as a generation means;
[1583] a means for providing the questions generated by the generation means to a terminal of a learner;
[1584] means for evaluating answers received from the learner's terminal;
[1585] means for updating the learning level based on the learner's answers;
[1586] A system including:
[1587] (Claim 2)
[1588] 10. The system of claim 1, further comprising means for providing appropriate feedback to the learner's terminal.
[1589] (Claim 3)
[1590] 2. The system according to claim 1, wherein the evaluation means includes means for comparing the learner's answer with a predetermined correct answer to determine whether the answer is correct.
[1591] "Example 1"
[1592] (Claim 1)
[1593] A means for requesting new programming problems from the learner's device;
[1594] a means for sending a request to a server;
[1595] A means for the server to check the learning level of the user;
[1596] A means for the server to generate programming problems based on learning level using the generative AI model;
[1597] A means for providing the generated questions to a learner's terminal;
[1598] A means for the learner to input answers into a terminal and transmit the answers to a server;
[1599] a means of assessing the answers; and
[1600] means for updating the learning level based on the learner's answers;
[1601] A system including:
[1602] (Claim 2)
[1603] 10. The system of claim 1, further comprising means for providing appropriate feedback to the learner's terminal.
[1604] (Claim 3)
[1605] 2. The system according to claim 1, wherein the evaluation means includes means for comparing the learner's answer with a predetermined correct answer to determine whether the answer is correct.
[1606] "Application Example 1"
[1607] (Claim 1)
[1608] A means for generating programming problems based on the learning level of a learner using a generative artificial intelligence as a generation means;
[1609] means for providing the questions generated by said generating means to a display device of a learner;
[1610] means for evaluating answers received from the learner's display device;
[1611] means for updating the learning level based on the learner's answers;
[1612] A means of providing an environment in which learners can interactively answer questions using virtual reality technology to create a virtual space;
[1613] A system including:
[1614] (Claim 2)
[1615] 10. The system of claim 1, further comprising means for providing appropriate feedback to the learner's terminal.
[1616] (Claim 3)
[1617] 2. The system according to claim 1, wherein the evaluation means includes means for comparing the learner's answer with a preset correct answer to determine whether the answer is correct.
[1618] "Example 2: Combining Emotion Engines"
[1619] (Claim 1)
[1620] A means for generating programming problems based on the learning level of a learner using a generative artificial intelligence as a generation means;
[1621] a means for providing the questions generated by the generating means to an information processing device of a learner;
[1622] means for evaluating input received from the learner's information processing device;
[1623] means for updating the learning level based on learner input;
[1624] a means for recognizing the learner's emotions using an emotion recognition engine and providing appropriate feedback based on the recognition result;
[1625] A system including:
[1626] (Claim 2)
[1627] 10. The system of claim 1, further comprising means for providing appropriate feedback to the learner's information processing device.
[1628] (Claim 3)
[1629] 2. The system according to claim 1, wherein the evaluation means includes means for comparing the learner's input with a preset correct answer to determine whether the input is correct.
[1630] "Application example 2 when combining emotion engines"
[1631] Rewriting of claims
[1632] (Claim 1)
[1633] A means for generating programming problems based on the learning level of a learner using a generative artificial intelligence as a generation means;
[1634] a means for providing the questions generated by the generation means to a terminal of a learner;
[1635] means for evaluating answers received from the learner's terminal;
[1636] means for updating the learning level based on the learner's answers;
[1637] A way to suggest products based on a customer's past purchase history and category information of interest,
[1638] Using an emotion recognition engine that analyzes the customer's facial expressions and tone of voice,
[1639] A system including:
[1640] (Claim 2)
[1641] 10. The system of claim 1, further comprising means for providing appropriate feedback to the learner's terminal.
[1642] (Claim 3)
[1643] 2. The system according to claim 1, wherein the evaluation means includes means for comparing the learner's answer with a predetermined correct answer to determine whether the answer is correct. [Explanation of symbols]
[1644] 10, 210, 310, 410 Data Processing Systems 12 Data Processing Device 14 Smart Devices 214 Smart Glasses 314 Headset-type terminal 414 Robot< / url:> < / url:> < / url:> < / url:>
Claims
1. A means for generating programming problems based on the learning level of a learner using a generative artificial intelligence as a generation means; a means for providing the questions generated by the generation means to a terminal of a learner; means for evaluating answers received from the learner's terminal; means for updating the learning level based on the learner's answers; A system including:
2. The system of claim 1 further comprising means for providing appropriate feedback to the learner's terminal.
3. 2. The system according to claim 1, wherein the evaluation means includes means for checking the learner's answer against a preset correct answer to determine whether the answer is correct.
Citation Information
Patent Citations
Persona chatbot control method and system
JP2022180282A