Generation device and generation method
The RAG system enhances the rubber duck method by determining the programming consultation's status and generating tailored prompts for a generative AI model, improving problem-solving efficiency in programming.
Patent Information
- Application Number
- JP2024107494
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-07-03
- Publication Date
- 2026-01-16
AI Technical Summary
The rubber duck method, a debugging technique in programming, can be inefficient and cumbersome, as it relies heavily on human interaction and may not effectively facilitate problem-solving.
A generation device and method that utilizes a Retrieval-Augmented Generation (RAG) system to determine the status of a programming consultation and generate prompts for a generative AI model to ask questions or provide answers tailored to the consultation's content and user's status, thereby enhancing the rubber duck technique's effectiveness.
The system facilitates smoother and more effective problem-solving in programming by generating appropriate questions or answers based on the consultation's status, improving the accuracy and efficiency of the rubber duck method.
Smart Images

Figure 2026007544000001_ABST
Abstract
Description
[Technical Field]
[0001] One aspect of the present disclosure relates to a generating device and a generating method. [Background technology]
[0002] Patent Document 1 discloses a system that transmits and receives program error information to resolve the error. [Prior art documents] [Patent documents]
[0003] [Patent Document 1] Japanese Patent Application Publication No. 11-237977 Summary of the Invention [Problem to be solved by the invention]
[0004] One debugging technique in programming is the rubber duck method, which involves explaining code line by line in the hope of coming up with a solution in the process. The rubber duck method is an effective debugging technique because it is expected that the differences between the intended code and the actual code will become clear in the process of explaining the code.
[0005] One aspect of the present disclosure aims to provide a generation device and a generation method that can facilitate problem-solving in programming by performing the rubber duck method more smoothly. [Means for solving the problem]
[0006] A generation device according to one embodiment of the present invention includes a reception unit that receives consultation information from a user, including the content of a programming consultation; a determination unit that determines the status of the programming consultation based on the consultation information; a generation unit that generates a prompt based on the status to instruct the generation of a question or answer corresponding to the content of the consultation; and an input unit that inputs the prompt generated by the generation unit into a generation AI model that generates a question or answer based on the prompt.
[0007] A generation device according to one aspect of the present disclosure receives consultation information including the content of a programming consultation, determines the status of the consultation based on the consultation information, and generates a prompt for instructing the generation of a question or answer corresponding to the content of the consultation based on the status. With this configuration, the status is determined from the consultation information, and a prompt for instructing the generation of a question or answer corresponding to the content of the consultation is generated based on the status. By inputting the prompt into a generation AI model, questions or answers corresponding to the content of the consultation are generated while taking into account the status of the consultation. In this way, questions or answers corresponding to the content of the consultation are generated while taking into account the status of the consultation (e.g., whether the consultation is at the stage of recognizing the problem, the stage of not finding a solution to the problem, the stage of seeking a solution, etc.), thereby enabling appropriate questions or answers to be asked in response to the content of the consultation. By providing explanations (answers) to such appropriate questions, the user is more likely to come up with a solution to the content (problem) of the programming consultation during the explanation process. In other words, a generation device according to one aspect of the present invention can facilitate problem-solving in programming by more smoothly implementing the rubber duck technique. [Effects of the Invention]
[0008] According to one aspect of the present disclosure, the rubber duck technique can be performed more smoothly, thereby facilitating problem-solving in programming. [Brief explanation of the drawings]
[0009] [Figure 1]FIG. 1 is a diagram showing the device configuration of a rubber ducking BOT system according to this embodiment. [Figure 2] FIG. 2 is a diagram illustrating an example of a prompt generated by the RAG system. [Figure 3] Figure 3 shows an image of how the Rubber Ducking BOT system is used. [Figure 4] FIG. 4 is a flowchart showing the processing executed by the RAG system. [Figure 5] FIG. 5 is a diagram illustrating an example of a hardware configuration of the RAG system. DETAILED DESCRIPTION OF THE INVENTION
[0010] The present disclosure will be described with reference to the accompanying drawings. Whenever possible, the same parts are designated by the same reference numerals and redundant description will be omitted.
[0011] Figure 1 is a diagram showing the device configuration of a rubber ducking BOT system according to this embodiment. The rubber ducking BOT system shown in Figure 1 is a system that automatically performs rubber ducking, a debugging technique in programming, between a user (programmer) and the system. That is, the rubber ducking BOT system accepts consultations from users who are facing problems in the programming process, outputs questions related to the consultation to the user, and repeatedly requests the user to explain the questions, thereby automatically performing rubber ducking in the hope that the user will come up with a solution during the explanation process.
[0012] 1, the Rubber Ducking BOT system includes a terminal 10, a Retrieval-Augmented Generation (RAG) system 20, and a server device 30, which are configured to be able to communicate with each other via a network including a wireless communication network and a fixed communication network. The RAG system 20 constitutes a generation device that generates a prompt based on information received from the terminal 10. A prompt is information indicating an instruction or question input to an AI model in an interactive system such as a dialogue with an AI model or a command line interface (CLI).
[0013] The terminal 10 is a device used by a user (programmer) who is performing programming. The terminal 10 is, for example, a personal computer, a smartphone, a tablet terminal, a feature phone, a server device, a game console, or other device. Note that while only two terminals 10 are shown in FIG. 1, the rubber ducking BOT system may include any number of terminals 10 greater than or equal to two.
[0014] The server device 30 stores a generative AI model 31 and enables the provision of questions or answers to a user using the generative AI model 31. The generative AI model is a model that, in response to a prompt including input information, generates content according to any one or a combination of the instructions, context, question, and output format indicated by the prompt and returns the content as response information. The prompt may also include input information, in which case the generative AI model 31 generates response information targeted at the input information. The generative AI model 31 may be, for example, an interactive AI that includes a large-scale language model (LLM) and a user interface (UI) for interacting with the user and enables text or voice chat with the user. Examples of such generative AI models include ChatGPT, GPT (registered trademark)-3.5, GPT-4V, and PaLM2. In this embodiment, an example is described in which the server device 30 provides questions or the like using one generative AI model 31. However, the server device 30 may also provide questions or the like using multiple generative AI models. 1 shows only one server device 30, the rubber ducking BOT system may include multiple server devices 30. Furthermore, although the above describes an example of a large-scale language model, other AI models may also be used. The generative AI model 31 generates questions or answers for the user based on the prompts.
[0015] The RAG system 20 is configured to include, as functional components, a reception unit 21, a determination unit 22, a generation unit 23, an input unit 24, and a storage unit 25. The RAG system 20 inputs a prompt corresponding to input information from the terminal 10 to the server device 30, and relays response information from the server device 30 to the prompt to the terminal 10. The RAG system 20 also has a function to generate a prompt based on the input information from the terminal 10. The function of each functional unit of the RAG system 20 will be described in detail below.
[0016] The reception unit 21 receives consultation information including the content of a consultation regarding programming from a user. The reception unit 21 outputs the received information to the determination unit 22. The reception unit 21 receives the consultation information from a user, for example, via the terminal 10. The content of the consultation is information regarding a specific problem the user is facing in programming (a problem the user wants to solve), such as, for example, "I'm having trouble because an error has occurred in Python code." The consultation information may also include user attribute information (details will be described later), etc. The consultation information may be information that the user directly inputs to the terminal 10, or may be information that the terminal 10 determines and creates in response to user operations, etc.
[0017] The determination unit 22 determines the status of the programming-related consultation based on the consultation information. The determination unit 22 may determine, for example, which of the following three stages (stage 1, stage 2, stage 3) the status is in. Stage 1 is a stage where a programming problem is recognized (the problem is not currently recognized). Stage 2 is a stage where the problem is recognized and a solution is considered (the solution is not currently known). Stage 3 is a stage where a solution is known and a specific measure is awaited to be presented. Note that the above three stages are merely examples, and there may be two stages or four or more stages.
[0018] For example, if the content of the consultation included in the consultation information does not include information necessary for determining a solution, the determination unit 22 may determine that the status is at the first stage. The information necessary for determining a solution is, for example, the type of code, library information, etc. For example, if the content of the consultation is, "I'm having trouble because an error has occurred in the program I'm currently writing," the type of code, library information, etc. are completely unknown, so the determination unit 22 may determine that the status is at the first stage.
[0019] For example, the determination unit 22 may determine that the status is at the second stage when the content of the consultation included in the consultation information indicates information necessary for determining a solution and the solution is unknown. The case where the solution is unknown refers to a case where the policy on how the code should be modified has not been decided. For example, when the type of code, library information, etc. are clear and "information necessary for determining a solution" is indicated, but it has not been decided specifically how the code should be modified, the determination unit 22 may determine that the status is at the second stage.
[0020] The determination unit 22 may determine that the status is at the third stage, for example, when the content of the consultation included in the consultation information indicates information necessary for determining a solution and the solution has been specified. A case where a solution has been specified refers to a case where a policy has been decided on how the code should be modified. For example, the type of code, library information, etc. are clearly specified, and not only is "information necessary for determining a solution" indicated, but also the specific method of modifying the code has been determined, and the stage is now at where detailed modifications are being presented. The determination unit 22 may determine that the status is at the third stage.
[0021] The determination unit 22 may determine the status by further using attribute information of the user included in the consultation information. Alternatively, the determination unit 22 may determine the status by further using attribute information of the user estimated based on the consultation information, for example. Specifically, the determination unit 22 may identify the user related to the consultation information and estimate (identify) the attribute information of the user by, for example, acquiring attribute information for each user stored in advance, and determine the status by using the attribute information.
[0022] The user attribute information may include, for example, information about the user's programming level. Specifically, the user attribute information may be the number of years of programming experience, the qualifications held, the average number of lines that can be coded per hour, etc., or the programming level determined using these.
[0023] The generation unit 23 generates a prompt to instruct the generation of a question or answer corresponding to the content of the consultation based on the status determined by the determination unit 22. The prompt expresses, in text, for example, the command to be executed by the generation AI model 31 (interactive AI model), the task to be executed by the generation AI model 31, the background and context (e.g., role, condition) to be considered by the generation AI model 31, the question to be answered by the generation AI model 31, and the output format of the response information from the generation AI model 31. The prompt may also include input information to be used as the target of the command and task to be executed by the generation AI model 31. Examples of such input information include data files with file names including a predetermined extension, such as text data, image data, application-related data, audio data, video data, and still image data. Application-related data is data such as document data, table data, and graph data that can be processed by a default application program.
[0024] FIG. 2 is a diagram showing an example of a prompt generated by the RAG system 20. The prompt shown in FIG. 2 specifies a role, a task, a condition, and an example. The role is information that specifies what role the generative AI model 31 will play in outputting. In this example, the role is assumed to be an engineer who interacts with the user (enabling the user to rubber-duck), and is specified as "You are an engineer." The task is information that outlines the instructions given to the generative AI model 31. In this example, the task is specified as "Please ask questions based on the user's inquiry."
[0025] The condition is information indicating detailed conditions of the task, and is specified here as "Please do not give a clear answer. Please elicit the conditions from the other party." In this way, the generation unit 23 may generate a prompt that specifies content that prohibits the generation AI model 31 from giving a clear answer, so that rubber ducking can be performed smoothly.
[0026] The examples are example data of the content of questions, etc. for each status. In the example shown in FIG. 2, the status, consultation content, and question content are linked to each other and specified in the examples. The examples may be saved (stored in the storage unit 25) as information including at least any of the information used to generate the prompt, such as the status, consultation content, and question content. Specifically, one example of the examples is specified as "Status: 1, consultation content: I'm having trouble with an error, question content: What is the purpose of the code?" In this way, the generation unit 23 may generate a prompt using examples of questions or answers saved (stored in the storage unit 25) in association with each status. The generation unit 23 may generate a prompt that specifies examples of questions, etc. according to the user's programming level and status.
[0027] Furthermore, the generation unit 23 may generate a prompt to display information based on a solution. For example, if the solution is unknown, the generation unit 23 may generate a prompt to specify information for searching for a solution (e.g., a method for analyzing an error log, etc.), or if the solution is identified, the generation unit 23 may generate a prompt to specify information that is useful for further consideration of the solution (e.g., stack overflow information, specifically, description information of the relevant class, etc.).
[0028] The storage unit 25 stores information related to the generation of prompts by the generation unit 23. The storage unit 25 stores, for example, data of examples of the above-mentioned prompts (data associated with the status, consultation content, question content, etc.). The generation unit 23 may define the content of the prompts, such as examples, by referring to the storage unit 25.
[0029] The input unit 24 inputs the prompt generated by the generation unit 23 to the generative AI model 31. The generative AI model 31 generates and outputs a question or an answer in response to the input prompt.
[0030] Next, an image of actual use of the Rubber Ducking BOT system will be described with reference to Figure 3. Figure 3 is a diagram showing an image of use of the Rubber Ducking BOT system.
[0031] As shown in Figure 3, suppose that first, consultation information is received from a user, including the content of the consultation, "I'm having trouble with an error in the program I'm writing." In this case, RAG system 20 determines that the status is at the first stage, since it is still at the stage of recognizing the problem. Then, based on the prompt generated by RAG system 20 taking the status into consideration, generative AI model 31 outputs the question, "What are you stuck on in what you want to achieve?"
[0032] In response to this, suppose further consultation information is received from the user, including a response (further consultation content) such as, "I want to convert a color image to grayscale, but an error occurs." In this case, the RAG system 20 determines that it is still at the stage of recognizing the problem (the status is the first stage), and the generative AI model 31 outputs the question, "What language are you using?"
[0033] In response to this, suppose further consultation information is received from the user, including the answer (further consultation content) "Python." In this case, the RAG system 20 determines that it is still at the stage of recognizing the problem (the status is the first stage), and the generative AI model 31 outputs the question "Are any of the following libraries used for image processing? Numpy, OpenCV, Pillow."
[0034] In response to this, suppose further consultation information is received from the user, including the answer (further consultation content) "OpenCV and numpy." In this case, the RAG system 20 has already acquired the information necessary to determine a solution, and is at the stage of considering a solution, so it determines that the status is at the second stage. Then, based on the prompt generated by the RAG system 20 taking the status into consideration, the generative AI model 31 outputs the question, "OpenCV provides cvtColor() to convert images to grayscale. Are you using this?"
[0035] In response to this, suppose further consultation information is received from the user, including the answer "I'm using it" (further consultation content). In this case, the RAG system 20 determines that the status is still at the second stage, and the generative AI model 31 outputs the question, "cvtColor() requires the following as arguments: · An unsigned 8-bit, 16-bit, or 32-bit floating-point image (CV_32F) · A color space conversion code Are the arguments specified correctly?"
[0036] In response to this, suppose further consultation information is received from the user, including an answer (further consultation content) such as "I don't know how to check the first argument." In this case, the RAG system 20 determines that the status is still at the second stage, and the generative AI model 31 outputs a question (answer) such as "NumPy provides np.ndarray.dtype to check the type of array elements."
[0037] In response to this, suppose further consultation information is received from the user, including the answer "It was int32." (further consultation content). In this case, the RAG system 20 determines that the status is at the stage where a solution has been identified, and determines that the status is at stage 3. Then, based on the prompt generated by the RAG system 20 taking the status into consideration, the generative AI model 31 outputs the answer "To use cvtColor(), the image array type must be one of the following: · Unsigned 8-bit integer · Signed 16-bit integer · 32-bit floating-point number."
[0038] In response to this, suppose further consultation information is received from the user, including the response (further consultation content) "I don't know how to convert." In this case, the generative AI model 31 outputs the response "Numpy provides np.ndarray.astype to convert the type of column elements. One of the following must be specified as the argument: np.int16 np.uint8 np.float32." In this way, by using the rubber ducking BOT system to receive consultations from users who are facing some kind of problem in the programming process, output questions related to the consultation to the user, and repeatedly request the user to explain the questions, it is possible to solve programming problems.
[0039] Next, the processing executed by the RAG system 20 will be described with reference to Fig. 4. Fig. 4 is a flowchart showing the processing executed by the RAG system.
[0040] As shown in FIG. 4, first, in the RAG system 20, consultation information including the content of the consultation regarding programming is accepted from the user via the terminal 10 (step S1).
[0041] Next, the RAG system 20 determines the status of the programming consultation based on the consultation information (step S2).
[0042] Next, the RAG system 20 generates a prompt for instructing the creation of a question or answer according to the content of the consultation based on the status (step S3).
[0043] Finally, in the RAG system 20, the generated prompt is input to the generative AI model 31 (step S4).
[0044] Next, the effects of the RAG system 20 according to this embodiment will be described.
[0045] The RAG system 20 of this embodiment includes a reception unit 21 that receives consultation information from a user, including the content of the consultation regarding programming; a determination unit 22 that determines the status of the consultation regarding programming based on the consultation information; a generation unit 23 that generates a prompt to instruct the generation of a question or answer according to the content of the consultation based on the status; and an input unit 24 that inputs the prompt generated by the generation unit 23 into a generation AI model that generates a question or answer based on the prompt.
[0046] In the RAG system 20 according to the present embodiment, consultation information including the content of a programming consultation is received, the status of the consultation is determined based on the consultation information, and a prompt is generated based on the status to instruct the generation of a question or answer corresponding to the content of the consultation. With this configuration, the status is determined from the consultation information, and a prompt is generated based on the status to instruct the generation of a question or answer corresponding to the content of the consultation. By inputting the prompt into the generation AI model 31, questions or answers corresponding to the content of the consultation are generated while taking into account the status of the consultation. In this way, questions or answers corresponding to the content of the consultation are generated while taking into account the status of the consultation (e.g., whether the problem is recognized, a solution to the problem is unknown, or a solution is being sought), allowing appropriate questions or answers to be asked. By providing explanations (answers) to such appropriate questions, the user can more easily come up with solutions to the content (problems) of the programming consultation during the explanation process. In other words, the RAG system 20 according to the present embodiment can facilitate problem-solving in programming by more smoothly implementing the rubber duck technique.
[0047] The determination unit 22 may determine the status by further considering the user's attribute information included in the consultation information or estimated based on the consultation information. This allows the status of the consultation to be determined with high accuracy by considering not only the content of the consultation but also the type of user who is conducting the consultation.
[0048] The user attribute information may include information about the user's programming level, which allows the status of the consultation to be determined with high accuracy, taking into account not only the content of the consultation but also the programming level of the user making the consultation.
[0049] The determining unit 22 may determine the status as either the first stage, where a programming problem is recognized, the second stage, where the problem is recognized and a solution is being considered, or the third stage, where the solution is known and a specific measure is being waited for to be presented. By determining the status at these three stages, it is possible to generate appropriate questions for each stage.
[0050] The determination unit 22 may determine that the status is at Stage 1 when the information necessary for determining a solution is not indicated in the content of the consultation included in the consultation information. When the information necessary for determining a solution is not indicated in the content of the consultation, it is highly likely that the problem has not been accurately recognized, and therefore, by determining that the status is at Stage 1, the accuracy of subsequent questions can be improved.
[0051] The determination unit 22 may determine that the status is at the second stage when the content of the consultation indicates information necessary for determining a solution and the solution is unknown, and may determine that the status is at the third stage when the content of the consultation indicates information necessary for determining a solution and the solution is specified. This makes it possible to improve the accuracy of questions at the stage of considering a solution and questions (or answers) at the stage of presenting a specific solution to the user.
[0052] The generation unit 23 may generate a prompt that specifies examples of questions or answers according to the status, thereby improving the accuracy of questions and the like for each status output from the generation AI model 31.
[0053] The generator may generate the prompt specifying examples of questions or answers according to the user's programming level and status. In this way, by providing examples of questions according to the user's programming level and status, the accuracy of questions output from the generative AI model 31 can be improved.
[0054] The generating device and generating method of the present disclosure have the following configuration.
[0055] [1]
[0056] a reception unit that receives consultation information including the content of a consultation about programming from a user; a determination unit that determines a status of the programming consultation based on the consultation information; a generation unit that generates a prompt for instructing the user to generate a question or an answer according to the content of the consultation based on the status; an input unit that inputs the prompt generated by the generation unit into a generative AI model that generates a question or answer based on the prompt; A generating device comprising:
[0057] [2] The generation device according to [1], wherein the determination unit determines the status by further using attribute information of the user that is included in the consultation information or that is estimated based on the consultation information.
[0058] [3] The generating device according to [3], wherein the user attribute information includes information regarding the user's programming level.
[0059] [4] The generation device according to any one of [1] to [3], wherein the determination unit determines whether the status is at the first stage, where a programming problem is recognized, at the second stage, where the problem is recognized and a solution is being considered, or at the third stage, where the solution is known and specific measures are being awaited.
[0060] [5] The generation device described in [4], wherein the judgment unit judges that the status is the first stage when the content of the consultation included in the consultation information does not indicate the information necessary for determining a solution.
[0061] [6] The generation device described in [4] or [5], wherein the judgment unit judges the status to be the second stage when the content of the consultation indicates information necessary for determining a solution and the solution is unknown, and judges the status to be the third stage when the content of the consultation indicates information necessary for determining a solution and the solution is identified.
[0062] [7] The generating device according to any one of [1] to [6], wherein the generating unit generates the prompt using examples of questions or answers stored in association with each of the statuses.
[0063] [8] The generating device according to [3], wherein the generating unit generates the prompt that specifies examples of questions or answers according to the user's programming level and the status.
[0064] [9] 1. A method for generating a prompt by a generating device, comprising: Accepting consultation information including the content of a consultation regarding programming from a user; determining a status of the programming consultation based on the consultation information; generating a prompt for instructing the user to generate a question or answer according to the content of the consultation based on the status; inputting the prompt generated by the generation unit into a generative AI model that generates a question or answer based on the prompt; A generation method including:
[0065] The block diagrams used to explain the above embodiments show functional blocks. These functional blocks (components) are realized by any combination of hardware and / or software. Furthermore, the method for realizing each functional block is not particularly limited. That is, each functional block may be realized using a single device that is physically or logically coupled, or may be realized using two or more physically or logically separated devices that are connected directly or indirectly (for example, by wire, wirelessly, etc.) and these multiple devices. The functional block may also be realized by combining the single device or multiple devices with software.
[0066] Functions include, but are not limited to, judgment, determination, judgment, calculation, computation, processing, derivation, investigation, search, confirmation, reception, transmission, output, access, resolution, selection, election, establishment, comparison, assumption, expectation, consideration, broadcasting, notifying, communicating, forwarding, configuring, reconfiguring, allocation, mapping, and assignment. For example, a functional block (component) that performs transmission is called a transmitting unit or transmitter. As mentioned above, there are no particular limitations on how these functions are implemented.
[0067] For example, the RAG system 20 constituting the rubber ducking BOT system according to an embodiment of the present disclosure may function as a computer that performs processing of the control method of the present disclosure. FIG. 5 is a diagram illustrating an example of the hardware configuration of the RAG system 20 according to this embodiment. The RAG system 20 described above may be physically configured as a computer device including a processor 1001, a memory 1002, a storage device 1003, a communication device 1004, an input device 1005, an output device 1006, a bus 1007, and the like. Note that the RAG system 20 may be configured as a computer device including at least one processor such as a CPU or GPU, or may be configured as a computer device including multiple processors or may be configured to include multiple computer devices. The terminal 10 and the server device 30 may also have a similar hardware configuration.
[0068] In the following description, the term "apparatus" can be interpreted as a circuit, a device, a unit, etc. The hardware configuration of the RAG system 20 may be configured to include one or more of the apparatuses shown in the figure, or may be configured to exclude some of the apparatuses.
[0069] Each function in the RAG system 20 is realized by loading specified software (programs) onto hardware such as the processor 1001 and memory 1002, causing the processor 1001 to perform calculations, control communication via the communication device 1004, and control at least one of reading and writing data in the memory 1002 and storage 1003.
[0070] The processor 1001 controls the entire computer by running, for example, an operating system. The processor 1001 may be configured by a central processing unit (CPU) including an interface with peripheral devices, a control device, an arithmetic unit, a register, etc. For example, the above-mentioned reception unit 21, determination unit 22, generation unit 23, input unit 24, etc. may be realized by the processor 1001.
[0071] The processor 1001 also loads programs (program codes), software modules, data, etc. from at least one of the storage 1003 and the communication device 1004 into the memory 1002 and executes various processes in accordance with the programs. The programs used are those that cause a computer to execute at least some of the operations described in the above-described embodiments. For example, the reception unit 21, the determination unit 22, the generation unit 23, and the input unit 24 may be implemented by a control program stored in the memory 1002 and running on the processor 1001, and similar implementations may be made for other functional blocks. While the above-described various processes have been described as being executed by one processor 1001, they may also be executed simultaneously or sequentially by two or more processors 1001. The processor 1001 may be implemented by one or more chips. The programs may also be transmitted from a network via a telecommunications line.
[0072] The memory 1002 is a computer-readable recording medium and may be configured, for example, by at least one of a read-only memory (ROM), an erasable programmable ROM (EPROM), an electrically erasable programmable ROM (EEPROM), a random access memory (RAM), etc. The memory 1002 may also be called a register, a cache, a main memory (primary storage device), etc. The memory 1002 can store executable programs (program codes), software modules, etc. for implementing a control method according to an embodiment of the present disclosure.
[0073] Storage 1003 is a computer-readable recording medium, and may be, for example, at least one of an optical disk such as a CD-ROM (Compact Disc ROM), a hard disk drive, a flexible disk, a magneto-optical disk (e.g., a compact disk, a digital versatile disk, a Blu-ray disc), a smart card, a flash memory (e.g., a card, a stick, a key drive), a floppy disk, a magnetic strip, etc. Storage 1003 may also be referred to as an auxiliary storage device. The above-mentioned storage medium may be, for example, a database, a server, or other appropriate medium including at least one of memory 1002 and storage 1003.
[0074] The communication device 1004 is hardware (transmission / reception device) for communicating between computers via at least one of a wired network and a wireless network, and is also referred to as, for example, a network device, a network controller, a network card, or a communication module. The communication device 1004 may be configured to include a high-frequency switch, a duplexer, a filter, a frequency synthesizer, etc. to realize at least one of frequency division duplex (FDD) and time division duplex (TDD). For example, the above-mentioned reception unit 21, input unit 24, etc. may be realized by the communication device 1004.
[0075] The input device 1005 is an input device (for example, a keyboard, a mouse, a microphone, a switch, a button, a sensor, etc.) that receives input from the outside. The output device 1006 is an output device (for example, a display, a speaker, an LED lamp, etc.) that outputs to the outside. The input device 1005 and the output device 1006 may be integrated into one device (for example, a touch panel).
[0076] Furthermore, each device, such as the processor 1001 and the memory 1002, is connected by a bus 1007 for communicating information. The bus 1007 may be configured using a single bus, or may be configured using different buses between each device.
[0077] Furthermore, RAG system 20 may be configured to include hardware such as a microprocessor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a programmable logic device (PLD), or a field programmable gate array (FPGA), and some or all of the functional blocks may be realized by the hardware. For example, processor 1001 may be implemented using at least one of these pieces of hardware.
[0078] The notification of information is not limited to the aspects / embodiments described in the present disclosure and may be performed using other methods. For example, the notification of information may be performed by physical layer signaling (e.g., Downlink Control Information (DCI), Uplink Control Information (UCI)), higher layer signaling (e.g., Radio Resource Control (RRC) signaling, Medium Access Control (MAC) signaling, broadcast information (Master Information Block (MIB), System Information Block (SIB))), other signals, or a combination thereof. Furthermore, the RRC signaling may be referred to as an RRC message, and may be, for example, an RRC Connection Setup message, an RRC Connection Reconfiguration message, or the like.
[0079] The order of the procedures, sequences, flowcharts, etc. of each aspect / embodiment described in this disclosure may be changed unless it is consistent. For example, the methods described in this disclosure present elements of various steps using an example order, and are not limited to the particular order presented.
[0080] Input and output information may be stored in a specific location (for example, memory) or may be managed using a management table. Input and output information may be overwritten, updated, or added to. Output information may be deleted. Input information may be sent to another device.
[0081] The determination may be made based on a value represented by one bit (0 or 1), a Boolean value (true or false), or a numerical comparison (e.g., comparison with a predetermined value).
[0082] Each aspect / embodiment described in this disclosure may be used alone, in combination, or switched depending on the implementation. Furthermore, notification of predetermined information (e.g., notification that "X is true") is not limited to being done explicitly, but may be done implicitly (e.g., by not notifying the predetermined information).
[0083] Although the present disclosure has been described in detail above, it is clear to those skilled in the art that the present disclosure is not limited to the embodiments described herein. The present disclosure can be implemented in modified and altered forms without departing from the spirit and scope of the present disclosure as defined by the claims. Therefore, the description of the present disclosure is intended to be illustrative and does not have any limiting meaning on the present disclosure.
[0084] Software shall be construed broadly to mean instructions, instruction sets, code, code segments, program code, programs, subprograms, software modules, applications, software applications, software packages, routines, subroutines, objects, executable files, threads of execution, procedures, functions, etc., whether referred to as software, firmware, middleware, microcode, hardware description language, or otherwise.
[0085] Software, instructions, information, etc. may also be transmitted or received over a transmission medium. For example, if software is transmitted from a website, server, or other remote source using wired technologies (such as coaxial cable, fiber optic cable, twisted pair, Digital Subscriber Line (DSL)), and / or wireless technologies (such as infrared, microwave), these wired and / or wireless technologies are included within the definition of transmission media.
[0086] The information, signals, etc. described in this disclosure may be represented using any of a variety of different technologies. For example, data, instructions, commands, information, signals, bits, symbols, chips, etc. that may be referred to throughout the above description may be represented by voltages, currents, electromagnetic waves, magnetic fields or magnetic particles, optical fields or photons, or any combination thereof.
[0087] Note that terms explained in this disclosure and terms necessary for understanding this disclosure may be replaced with terms having the same or similar meanings. For example, at least one of a channel and a symbol may be a signal (signaling). Furthermore, a signal may be a message. Furthermore, a component carrier (CC) may be called a carrier frequency, a cell, a frequency carrier, etc.
[0088] Furthermore, the information, parameters, etc. described in the present disclosure may be expressed using absolute values, may be expressed using relative values from a predetermined value, or may be expressed using other corresponding information. For example, a radio resource may be indicated by an index.
[0089] The names used for the above-described parameters are not intended to be limiting in any way. Furthermore, the mathematical expressions using these parameters may differ from those explicitly disclosed in this disclosure. The various channels (e.g., PUCCH, PDCCH, etc.) and information elements may be identified by any suitable names, and therefore the various names assigned to these various channels and information elements are not intended to be limiting in any way.
[0090] In this disclosure, the terms "Mobile Station (MS)," "user terminal," "User Equipment (UE)," "terminal," etc. may be used interchangeably.
[0091] A mobile station may also be referred to by those skilled in the art as a subscriber station, mobile unit, subscriber unit, wireless unit, remote unit, mobile device, wireless device, wireless communication device, remote device, mobile subscriber station, access terminal, mobile terminal, wireless terminal, remote terminal, handset, user agent, mobile client, client, or some other suitable terminology.
[0092] As used in this disclosure, the terms "determining" and "determining" may encompass a wide variety of actions. "Determining" and "determining" may include, for example, judging, calculating, computing, processing, deriving, investigating, looking up, searching, inquiring (e.g., searching in a table, database, or other data structure), ascertaining, and the like. "Determining" and "determining" may also include receiving (e.g., receiving information), transmitting (e.g., sending information), input, output, accessing (e.g., accessing data in memory), and the like. Furthermore, "judgment" and "decision" can include regarding resolving, selecting, choosing, establishing, comparing, etc. as having been "judged" or "decided." In other words, "judgment" and "decision" can include regarding some action as having been "judged" or "decided." Furthermore, "judgment (decision)" can be interpreted as "assuming," "expecting," "considering," etc.
[0093] The terms "connected," "coupled," or any variation thereof, refer to any direct or indirect connection or coupling between two or more elements, and may include the presence of one or more intermediate elements between two elements that are "connected" or "coupled" to each other. The coupling or connection between elements may be physical, logical, or a combination thereof. For example, "connected" may be read as "access." As used in this disclosure, two elements may be considered to be "connected" or "coupled" to each other using one or more wires, cables, and / or printed electrical connections, as well as electromagnetic energy having wavelengths in the radio frequency range, microwave range, and optical (both visible and invisible) range, as some non-limiting and non-exhaustive examples.
[0094] As used in this disclosure, the phrase "based on" does not mean "based only on," unless expressly stated otherwise. In other words, the phrase "based on" means both "based only on" and "based at least on."
[0095] Any reference to an element using a designation such as "first," "second," etc., used in this disclosure does not generally limit the quantity or order of those elements. These designations may be used in this disclosure as a convenient way to distinguish between two or more elements. Thus, a reference to a first and a second element does not imply that only two elements may be employed or that the first element must in some way precede the second element.
[0096] When used in this disclosure, the terms "include," "including," and variations thereof are intended to be inclusive, similar to the term "comprising." Furthermore, when used in this disclosure, the term "or" is not intended to be an exclusive or.
[0097] In this disclosure, where articles are added by translation, such as a, an, and the in English, the disclosure may include that the nouns following these articles are in the plural form.
[0098] In the present disclosure, the term "A and B are different" may mean "A and B are different from each other." The term may also mean "A and B are each different from C." Terms such as "separate" and "coupled" may also be interpreted in the same way as "different." [Explanation of symbols]
[0099] 20...RAG system (generation device), 21...reception unit, 22...determination unit, 23...generation unit, 24...input unit, 31...generative AI model.
Claims
1. a reception unit that receives consultation information including the content of a consultation about programming from a user; a determination unit that determines a status of the programming consultation based on the consultation information; a generation unit that generates a prompt for instructing the user to generate a question or an answer according to the content of the consultation based on the status; an input unit that inputs the prompt generated by the generation unit into a generative AI model that generates a question or answer based on the prompt; A generating device comprising:
2. The generating device according to claim 1 , wherein the determining unit determines the status by further using attribute information of the user that is included in the consultation information or that is estimated based on the consultation information.
3. 3. The generating device according to claim 2, wherein the user attribute information includes information about the user's programming level.
4. The generation device of claim 1, wherein the determination unit determines whether the status is a first stage in which a programming problem is recognized, a second stage in which the problem is recognized and a solution is being considered, or a third stage in which the solution is known and specific measures are being waited for to be presented.
5. The generating device according to claim 4 , wherein the determining unit determines that the status is the first stage when the content of the consultation included in the consultation information does not include information necessary for determining a solution.
6. The generation device described in claim 4, wherein the judgment unit judges that the status is at the second stage when the content of the consultation indicates information necessary for determining a solution and the solution is unknown, and judges that the status is at the third stage when the content of the consultation indicates information necessary for determining a solution and a solution is identified.
7. The generating device according to claim 1 , wherein the generating unit generates the prompt using example questions or answers stored in association with each of the statuses.
8. The generating device according to claim 3 , wherein the generating unit generates the prompt specifying an example of a question or an answer according to the user's programming level and the status.
9. 1. A method for generating a prompt by a generating device, comprising: Accepting consultation information including the content of a consultation regarding programming from a user; determining a status of the programming consultation based on the consultation information; generating a prompt for instructing the user to generate a question or answer according to the content of the consultation based on the status; inputting the generated prompts into a generative AI model that generates questions or answers based on the prompts; A generation method including:
Citation Information
Patent Citations
Program generation error locating device
JP1999237977A