WO2024096253A1 - 전자 장치 및 그 제어 방법 - Google Patents

전자 장치 및 그 제어 방법 Download PDF

Info

Publication number
WO2024096253A1
WO2024096253A1 PCT/KR2023/010241 KR2023010241W WO2024096253A1 WO 2024096253 A1 WO2024096253 A1 WO 2024096253A1 KR 2023010241 W KR2023010241 W KR 2023010241W WO 2024096253 A1 WO2024096253 A1 WO 2024096253A1
Authority
WO
WIPO (PCT)
Prior art keywords
additional information
information
user input
prompt
sample
Prior art date
Application number
PCT/KR2023/010241
Other languages
English (en)
French (fr)
Inventor
이강욱
박치연
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to US18/230,393 priority Critical patent/US20240143916A1/en
Publication of WO2024096253A1 publication Critical patent/WO2024096253A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/16Sound input; Sound output
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/183Speech classification or search using natural language modelling using context dependencies, e.g. language models
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/26Speech to text systems

Definitions

  • This disclosure relates to an electronic device and a control method thereof, and more specifically, to an electronic device that provides response information corresponding to user input based on a language model and a control method thereof.
  • the voice assistant function can be performed through the language model.
  • a voice assistant function may be a function that provides a response corresponding to user input.
  • the voice assistant device may provide a response corresponding to the user input.
  • a language model can be learned using training data. However, because learning operations do not occur in real time, it may be difficult for the language model to reflect changing information in real time. For example, the point in time when user input is received may be in the present, but the time point in learning may be in the past. Accordingly, a language model that provides a response corresponding to user input can generate output data based on past learning data.
  • the language model may not be able to provide response information depending on user input or learning level.
  • the information contained in the user input may be insufficient to generate a complete response.
  • the learned language model can process user input from fields in which it cannot provide accurate responses. In this case, the language model has a problem in that it cannot provide an accurate response to the user.
  • the user may be requested to re-input. However, if the user is asked to re-ignite the device, the user may feel uncomfortable. Additionally, when response information is provided only through user input, the informativeness or satisfaction of the response information may be low.
  • the present disclosure is designed to improve the above-mentioned problems, and the purpose of the present disclosure is to provide an electronic device that provides response information based on a user input and a prompt including additional information, and a control method thereof.
  • An electronic device includes a memory that stores a plurality of sample prompts, a communication interface that communicates with a server including a large language model, and a user's user input, and selects one of the stored sample prompts. Selecting a sample prompt corresponding to the user input, obtaining additional information corresponding to the user input, obtaining an input prompt based on the user input, the sample prompt, and the additional information, and using the communication interface , and at least one processor that transmits the input prompt to the server and provides the response information when response information corresponding to the input prompt is received from the server through the communication interface.
  • the sample prompt may include at least one of description information, example information, and response structure information indicating the sample prompt.
  • the at least one processor may identify a task corresponding to the user input and select the sample prompt based on the identified task.
  • the server is a first server, and the at least one processor determines whether additional information corresponding to the user input is needed, and when determining that the additional information is used, sends the second server using the communication interface.
  • a signal requesting the additional information may be transmitted, and the additional information may be received from the second server through the communication interface.
  • the at least one processor may obtain a first probability that a complete response will be generated based on the user input, and if the first probability is less than a threshold probability, obtain the additional information.
  • the at least one processor obtains a second probability that a complete response will be generated based on at least one sample side information among a plurality of sample side information and the user input, and if the second probability is greater than or equal to the threshold probability, the at least one processor
  • the additional information can be obtained based on one sample additional information.
  • the at least one processor may obtain the input prompt by combining the user input and the additional information with the sample prompt.
  • the at least one processor may obtain a user log corresponding to user activity within a threshold time, and select a sample prompt corresponding to the user input based on the user log and the user input.
  • the at least one processor may obtain a user log corresponding to user activity within a threshold time, and obtain the additional information based on the user log and the user input.
  • the user input may include at least one of audio information, text information, or image information.
  • the method includes obtaining a user input, the stored plurality of sample prompts Selecting a sample prompt corresponding to the user input, obtaining additional information corresponding to the user input, obtaining an input prompt based on the user input, the sample prompt, and the additional information, the server Transmitting the input prompt to the server and providing the response information upon receiving response information corresponding to the input prompt from the server.
  • the sample prompt may include at least one of description information, example information, and response structure information indicating the sample prompt.
  • the step of selecting the sample prompt may identify a task corresponding to the user input and select the sample prompt based on the identified task.
  • the server is a first server, and the step of obtaining the additional information determines whether additional information corresponding to the user input is needed, and if it is determined that the additional information is used, the additional information is requested from the second server.
  • a signal may be transmitted, and the additional information may be received from the second server.
  • the step of acquiring the additional information may include obtaining a first probability that a complete response will be generated based on the user input, and if the first probability is less than a threshold probability, the additional information may be obtained.
  • 1 is a diagram for explaining a system including an electronic device and at least one external server.
  • Figure 2 is a block diagram showing the configuration of an electronic device according to various embodiments.
  • FIG. 3 is a block diagram showing a specific configuration of the electronic device of FIG. 2.
  • Figure 4 is a diagram for explaining a plurality of modules used to provide response information corresponding to user input.
  • Figure 5 is a diagram for explaining a response information provision process according to various embodiments.
  • Figure 6 is a diagram for explaining a response information provision process according to various embodiments.
  • Figure 7 is a diagram for explaining a response information provision process according to various embodiments.
  • Figure 8 is a diagram for explaining a response information provision process according to various embodiments.
  • Figure 9 is a diagram for explaining a plurality of sample prompts.
  • Figure 10 is a diagram for explaining categories of sample prompts.
  • 11 is a diagram for explaining the operation of a task determination module according to various embodiments.
  • FIG. 12 is a diagram for explaining the operation of an additional information determination module according to various embodiments.
  • Figure 13 is a diagram for explaining the operation of an additional information receiving module according to various embodiments.
  • FIG. 14 is a diagram for explaining the operation of an additional information determination module according to various embodiments.
  • Figure 15 is a diagram for explaining the operation of acquiring additional information.
  • FIG. 16 is a diagram for explaining the operation of an additional information determination module according to various embodiments.
  • Figure 17 is a flowchart for explaining the operation of obtaining response information.
  • Figure 18 is a flowchart to explain the operation of obtaining response information using a server.
  • Figure 19 is a flow chart to explain an embodiment in which sample prompts are divided into separate groups.
  • Figure 20 is a flowchart for explaining the operation of acquiring additional information using a second server.
  • Figure 21 is a flowchart for explaining the operation of obtaining an input prompt based on the probability of generating a complete response.
  • Figure 22 is a flowchart for explaining determining additional information based on the probability of generating a complete response.
  • Figure 23 is a diagram for explaining the operation of a complete response determination module according to various embodiments.
  • Figure 24 is a flowchart for explaining the operation of obtaining an input prompt using a user log.
  • Figure 25 is a flowchart for explaining the operation of acquiring additional information.
  • Figure 26 is a diagram for explaining a UI (User Interface) for displaying information used to obtain an input prompt.
  • UI User Interface
  • Figure 27 is a diagram for explaining a UI (User Interface) for displaying input prompts and response information.
  • UI User Interface
  • Figure 28 is a flowchart for explaining a control method of an electronic device according to various embodiments.
  • expressions such as “have,” “may have,” “includes,” or “may include” refer to the presence of the corresponding feature (e.g., a numerical value, function, operation, or component such as a part). , and does not rule out the existence of additional features.
  • a or/and B should be understood as referring to either “A” or “B” or “A and B”.
  • expressions such as “first,” “second,” “first,” or “second,” can modify various components regardless of order and/or importance, and can refer to one component. It is only used to distinguish from other components and does not limit the components.
  • a component e.g., a first component
  • another component e.g., a second component
  • connection to it should be understood that a certain component can be connected directly to another component or connected through another component (e.g., a third component).
  • a “module” or “unit” performs at least one function or operation, and may be implemented as hardware or software, or as a combination of hardware and software. Additionally, a plurality of “modules” or a plurality of “units” are integrated into at least one module and implemented by at least one processor (not shown), except for “modules” or “units” that need to be implemented with specific hardware. It can be.
  • the term user may refer to a person using an electronic device or a device (eg, an artificial intelligence electronic device) using an electronic device.
  • a device eg, an artificial intelligence electronic device
  • FIG. 1 is a diagram for explaining a system including an electronic device 100 and at least one external server (a first server 200 and a second server 300).
  • the system 1000 may include at least one of an electronic device 100, a first server 200, or a second server 300.
  • the electronic device 100 may be a device that obtains user input.
  • the electronic device 100 may be a device that acquires a user's voice through a microphone.
  • the electronic device 100 may be a device that obtains text information input by a user through an operation interface.
  • the electronic device 100 may be a device that acquires images through a camera.
  • the electronic device 100 may provide response information corresponding to user input.
  • the electronic device 100 may be a smartphone, TV, tablet, laptop, etc.
  • the electronic device 100 may transmit user input to the first server 200. Additionally, response information corresponding to the user input may be received from the first server 200. The electronic device 100 may provide the received response information to the user.
  • the first server 200 may be a server that generates response information.
  • the first server 200 may include a large language understanding model (Large Language Model).
  • the first server 200 may generate response information corresponding to the user input transmitted from the electronic device 100 using a macrolanguage understanding model.
  • the first server 200 may transmit the generated response information to the electronic device 100.
  • the second server 300 may be a server that provides additional information necessary to generate response information corresponding to user input. Additional information required to generate response information may be, for example, information used for response information, information useful for generating response information, information determined to be used for response information, information determined to be useful for generating response information, etc.
  • the electronic device 100 may request additional information from the second server 300 and receive additional information through the second server 300.
  • the second server 300 may be a database server, search engine, calculator application, image processing application, etc.
  • FIG. 2 is a block diagram showing the configuration of an electronic device 100 according to various embodiments.
  • the electronic device 100 may include at least one of a memory 110, a communication interface 120, or at least one processor 130.
  • Memory 110 may store a plurality of sample prompts.
  • the communication interface 120 may communicate with the first server 200 including a large language model.
  • At least one processor 130 obtains a user input, selects (or identifies) a sample prompt corresponding to the user input from a plurality of stored sample prompts, obtains additional information corresponding to the user input, and selects a sample prompt corresponding to the user input and a sample prompt. Obtain an input prompt based on the prompt and additional information, transmit the input prompt to the first server 200 through the communication interface 120, and receive input from the first server 200 through the communication interface 120. When response information corresponding to the prompt is received, it may include at least one processor 130 that provides response information.
  • user input may include at least one of audio information, text information, or image information.
  • User input may include audio information.
  • Audio information may include audio data (or audio signal).
  • At least one processor 130 may obtain user input including audio information.
  • At least one processor 130 may convert audio data into text information through a voice recognition function. An embodiment in which audio information is included in user input is described in FIG. 14.
  • the voice recognition function may be performed on an external server.
  • At least one processor 130 may transmit audio data to an external server and receive text information corresponding to the audio data from the external server.
  • Text information may include character information.
  • User input may include image information.
  • Image information may include image data (or image signals).
  • At least one processor 130 may identify an object included in image information. And, response information corresponding to the user input can be obtained based on the object included in the image information. Embodiments in which image information is included in user input are described in FIGS. 8, 14, and 15.
  • At least one processor 130 may select one sample prompt corresponding to a user input from among a plurality of sample prompts stored in the memory 110.
  • the sample prompt may include at least one of description information, example information, and response structure information indicating the sample prompt.
  • the description information may include text indicating which task (or field) the sample prompt is for processing user input.
  • Example information may include arbitrary user input and response information corresponding to the arbitrary user input.
  • Example information may include sample input and sample responses.
  • Response structure information may include information about the format in which response information is displayed.
  • the weather sample prompt has a response of '1.
  • At least one processor 130 generates a response to the weather based on the response structure information as '1. It can be obtained as follows: ‘Today’s weather: Clear, 2. Today’s temperature: 20 degrees’.
  • a sample prompt may be a sample (or sample) of input data input to a Large Language Model. Additionally, the sample prompt may refer to form data, style data, form data, or structure data that are the basis of input data.
  • a large language model may be a language model that is used universally in various tasks.
  • a large language model can use various types of information in addition to user input to provide appropriate response information to the user.
  • a large language model can generate output data through a prompt, which is one unit of input data.
  • a sample prompt may be input data used to provide response information.
  • a sample prompt may include various information used to generate response information.
  • the sample prompt may be information used as input data to obtain response information.
  • the sample prompt may include at least one of description information indicating the sample prompt and sample data related to response information.
  • Sample data may be data representing the structure of a plurality of detailed information included in response information.
  • sample prompt may mean one data group containing a plurality of information. Accordingly, sample prompts can be written as sample groups or input groups. Additionally, sample prompts can provide some form of response information. Accordingly, the sample prompt may be described as response format information or response structure information. Examples related to sample prompts are described in Figures 9 and 10.
  • At least one processor 130 may obtain additional information corresponding to the user input. At least one processor 130 may additionally obtain additional information in addition to the user input in order to provide response information of great utility to the user.
  • additional information may be obtained from the electronic device 100.
  • At least one processor 130 may extract text information included in the user input and obtain additional information related to the text information based on the extracted text information.
  • additional information may be obtained from the first server 200.
  • At least one processor 130 may transmit a signal requesting additional information to the first server 200.
  • a signal requesting additional information may include user input.
  • the first server 200 may obtain additional information based on the user input received from the electronic device 100. And, the first server 200 may transmit additional information to the electronic device 100.
  • At least one processor 130 may generate an input prompt based on a sample prompt and a user input without obtaining additional information.
  • At least one processor 130 may obtain (or generate) an input prompt based on at least one of a user input, a sample prompt, or additional information.
  • the input prompt may be input data input to the large language model.
  • the large language model may be included in the first server 200. Accordingly, at least one processor 130 may transmit the generated input prompt to the first server 200. Additionally, the first server 200 may generate response information based on the input prompt received from at least one processor 130. The first server 200 may transmit the generated response information to the electronic device 100.
  • At least one processor 130 may receive response information from the first server 200. Additionally, at least one processor 130 may provide response information to the user. According to various embodiments, the electronic device 100 may display response information through the display 140. According to various embodiments, the electronic device 100 may output response information through the speaker 170.
  • At least one processor 130 may identify a task corresponding to a user input, and identify a sample prompt corresponding to the user input among a plurality of sample prompts based on the identified task.
  • At least one processor 130 may determine which field of work the user input corresponds to in order to select a sample prompt. At least one processor 130 may select a task corresponding to a user input from among a plurality of tasks stored in the memory 110. A detailed explanation related to this is shown in FIG. 11.
  • the at least one processor 130 determines (or identifies) whether additional information corresponding to the user input is needed, and when determining that the additional information is used, the at least one processor 130, through the communication interface 120, 2 A signal requesting additional information may be transmitted to the server 300, and additional information may be received from the second server 300 through the communication interface 120.
  • At least one processor 130 may determine whether response information can be generated only through user input. At least one processor 130 may determine whether a complete response corresponding to the user input can be generated through the complete response determination module 2300.
  • the complete response determination module 2300 is depicted in FIG. 23.
  • At least one processor 130 may determine that additional information is needed. Additionally, at least one processor 130 may request additional information from the second server 300. At least one processor 130 may transmit a control signal requesting additional information to the second server 300. The transmitted control signal may include user input.
  • the second server 300 may obtain additional information based on the control signal received from the electronic device 100. And, the second server 300 may transmit the acquired additional information back to the electronic device 100.
  • At least one processor 130 may receive additional information from the second server 300. Additionally, at least one processor 130 may generate an input prompt based on the received additional information, sample prompt, and user input.
  • At least one processor 130 may obtain a first probability that a complete response will be generated based on a user input, and if the first probability is less than a threshold probability, may obtain additional information.
  • At least one processor 130 may obtain the probability (or likelihood) that a complete response will be generated from the user input.
  • a complete response may represent a response that has a complete form or complete information based on information included in input data (user input).
  • At least one processor 130 may obtain the probability of generating a complete response through a complete response generation module. At least one processor 130 may input input data to the complete response generation module. And, the complete response generation module may output the probability of generating a complete response based on the input data as output data.
  • At least one processor 130 may determine whether response information for the user input ('What time is it?') can be generated. If the electronic device 100 stores information about the current time, at least one processor 130 may determine that a complete response can be generated. At least one processor 130 may determine that the probability of generating a complete response is 80% or more. However, if the electronic device 100 does not store information about the current time, at least one processor 130 may determine that a complete response cannot be generated. At least one processor 130 may determine that the probability of generating a complete response is less than 10%.
  • the probability value that is the output data may be written as the first probability value.
  • the probability value that is the output data may be written as the second probability value.
  • At least one processor 130 may preferentially obtain a first probability value using only the user input as input data. And, at least one processor 130 may identify whether the first probability value is less than the threshold probability value.
  • At least one processor 130 may determine that a complete response can be generated using only the user input. At least one processor 130 may generate response information based on user input. At least one processor 130 may provide the generated response information to the user.
  • At least one processor 130 may determine that a complete response cannot be generated with only the user input. If the first probability value is less than the threshold probability value, at least one processor 130 may determine that response information cannot be provided to the user only through user input. At least one processor 130 may determine that additional information is needed in addition to the user input. For example, at least one processor 130 may determine to use additional information in addition to the user input.
  • At least one processor 130 may identify what additional information is needed in addition to the user input.
  • the at least one processor 130 obtains a second probability that a complete response will be generated based on at least one sample additional information among a plurality of sample additional information and a user input, and the second probability is a threshold probability. If this is the case, additional information can be identified based on at least one sample additional information.
  • the electronic device 100 may store a plurality of sample additional information in the memory 110 .
  • Sample additional information may be input data used to obtain the probability of generating a complete response along with user input.
  • Sample additional information may be described as test information, test additional information, dummy information, or dummy additional information.
  • Sample additional information is not information used to generate response information, and sample additional information may simply be information used to obtain a probability value of generating a complete response.
  • At least one processor 130 may obtain a probability value by inputting each of the various sample additional information together with the user input into the complete response generation module.
  • At least one processor 130 may calculate the degree of relationship between each of the plurality of sample additional information and the user input. Additionally, at least one processor 130 may select sample additional information in order of increasing relevance. Additionally, at least one processor 130 may input the selected sample additional information and user input to the complete response generation module.
  • the complete response generation module may determine that the first probability value is 5%. Additionally, at least one processor 130 may determine that additional information is needed.
  • At least one processor 130 may obtain input data including time information (arbitrary time information, past time information) that is sample additional information and a user input. Additionally, at least one processor 130 may input sample additional information (arbitrary time information) and user input ('What time is it?') as input data to the complete response generation module. The complete response generation module may determine that the second probability value is 90%. At least one processor 130 may determine that time information is additionally needed in addition to the user input.
  • At least one processor 130 may obtain time information as additional information. At least one processor 130 may obtain current time information rather than sample side information as side information. Additionally, at least one processor 130 may generate response information based on additional information (current time information) and user input.
  • the threshold probability compared to the first probability value and the threshold probability compared to the second probability value may be the same.
  • the threshold probability compared to the first probability value and the threshold probability compared to the second probability value may be different.
  • each threshold probability can be written as a first threshold probability (or first threshold probability value) and a second threshold probability (or first threshold probability value).
  • first threshold probability or first threshold probability value
  • second threshold probability or first threshold probability value
  • the second critical probability may be a larger value than the first critical probability.
  • FIGS. 21 to 23 A detailed description of the first probability value and the second probability value is described in FIGS. 21 to 23.
  • At least one processor 130 may obtain an input prompt by combining a user input and additional information with a sample prompt.
  • Sample prompts can be form data input to the language model.
  • the sample prompt may include user input and storage location information for additional information.
  • At least one processor 130 may store user input and additional information in the sample prompt based on storage location information included in the sample prompt. After the save operation, at least one processor 130 may obtain a sample prompt including user input and additional information. Detailed descriptions related to this are shown in FIGS. 5 to 8.
  • At least one processor 130 may obtain a user log within a threshold time and identify a sample prompt corresponding to the user input based on the user log and the user input.
  • the user log is at least one of user input input from the electronic device 100, content information (audio, image, text, etc.) provided according to the user input, command information executed according to the user input, or application information executed according to the user input. may include.
  • User logs may be described as log information.
  • At least one processor 130 may select one sample prompt from a plurality of sample prompts based on the user log and user input. At least one processor 130 may select (or identify) the most relevant sample prompt based on user logs and user input.
  • At least one processor 130 may obtain a user log within a threshold time and obtain additional information based on the user log and user input.
  • At least one processor 130 may obtain additional information used to generate response information using the user log and user input. When the additional information is generated in the second server 300, at least one processor 130 may transmit the user log and user input to the second server 300.
  • the second server 300 may generate additional information based on the received user log and user input.
  • the second server 300 may transmit the generated additional information to the electronic device 100.
  • At least one processor 130 may generate an input prompt based on additional information received from the second server 300, a sample prompt, and a user input.
  • the electronic device 100 may obtain input data input to a macrolanguage understanding model.
  • Input data may additionally include various information in addition to user input.
  • the input data may be an input prompt including sample prompt information (explanatory information, example information, answer format information), user input, and additional information. Since various information in addition to user input is included in the input data, the completeness of response information can be improved. Accordingly, the electronic device 100 can provide a high level of response service to the user.
  • the electronic device 100 may acquire response information by additionally considering various information in addition to the user input. Therefore, even if the user inputs insufficient data to generate a complete response, the electronic device 100 can generate response information by additionally considering the sample prompt or additional information. Accordingly, the informativeness of response information may increase or the user's satisfaction may increase. Additionally, even if the language model used to generate response information is specialized for a specific category, high-level response information can be provided to the user by additionally considering sample prompts or additional information.
  • FIG. 3 is a block diagram showing a specific configuration of the electronic device 100 of FIG. 2.
  • the electronic device 100 includes a memory 110, a communication interface 120, at least one processor 130, a display 140, an operation interface 150, an input/output interface 160, and a speaker ( 170) or a microphone 180. Redundant description of the same operation as described above will be omitted.
  • the electronic device 100 may include, for example, at least one of a smartphone, a tablet PC, a mobile phone, a desktop PC, a laptop PC, a PDA, and a portable multimedia player (PMP). .
  • the electronic device 100 may include at least one of, for example, a television, a digital video disk (DVD) player, or a media box (e.g., Samsung HomeSyncTM, Apple TVTM, or Google TVTM).
  • a television a digital video disk (DVD) player
  • a media box e.g., Samsung HomeSyncTM, Apple TVTM, or Google TVTM.
  • the memory 110 is implemented as internal memory such as ROM (e.g., electrically erasable programmable read-only memory (EEPROM)) and RAM included in the processor 130, or is implemented by the processor 130 and the It may also be implemented as a separate memory.
  • the memory 110 may be implemented as a memory embedded in the electronic device 100 or as a memory detachable from the electronic device 100 depending on the data storage purpose. For example, in the case of data for driving the electronic device 100, it is stored in the memory embedded in the electronic device 100, and in the case of data for the expansion function of the electronic device 100, it is detachable from the electronic device 100. It can be stored in available memory.
  • the memory embedded in the electronic device 100 may include volatile memory (e.g., dynamic RAM (DRAM), static RAM (SRAM), or synchronous dynamic RAM (SDRAM), etc.), non-volatile memory (non-volatile memory), etc. volatile Memory) (e.g. one time programmable ROM (OTPROM), programmable ROM (PROM), erasable and programmable ROM (EPROM), electrically erasable and programmable ROM (EEPROM), mask ROM, flash ROM, flash memory (e.g.
  • volatile memory e.g., dynamic RAM (DRAM), static RAM (SRAM), or synchronous dynamic RAM (SDRAM), etc.
  • non-volatile memory non-volatile memory
  • volatile Memory e.g. one time programmable ROM (OTPROM), programmable ROM (PROM), erasable and programmable ROM (EPROM), electrically erasable and programmable ROM (EEPROM), mask ROM, flash ROM, flash memory (e.g
  • NAND flash NAND flash
  • NOR flash NOR flash
  • SSD solid state drive
  • a memory card e.g., compact flash (CF) ), SD (secure digital), Micro-SD (micro secure digital), Mini-SD (mini secure digital), xD (extreme digital), MMC (multi-media card), etc.
  • CF compact flash
  • SD secure digital
  • Micro-SD micro secure digital
  • Mini-SD mini secure digital
  • xD extreme digital
  • MMC multi-media card
  • external memory that can be connected to the USB port ( For example, it may be implemented in a form such as USB memory).
  • the communication interface 120 is a component that communicates with various types of external devices according to various types of communication methods.
  • the communication interface 120 may include a wireless communication module or a wired communication module.
  • each communication module may be implemented in the form of at least one hardware chip.
  • the wireless communication module may be a module that communicates wirelessly with an external device.
  • the wireless communication module may include at least one of a Wi-Fi module, a Bluetooth module, an infrared communication module, or other communication modules.
  • the Wi-Fi module and Bluetooth module can communicate using Wi-Fi and Bluetooth methods, respectively.
  • various connection information such as SSID (service set identifier) and session key are first transmitted and received, and various information can be transmitted and received after establishing a communication connection using this.
  • SSID service set identifier
  • the infrared communication module performs communication based on infrared communication (IrDA, infrared data association) technology, which transmits data wirelessly over a short distance using infrared rays that lie between visible light and millimeter waves.
  • IrDA infrared communication
  • other communication modules include zigbee, 3G (3rd Generation), 3GPP (3rd Generation Partnership Project), LTE (Long Term Evolution), LTE-A (LTE Advanced), 4G (4th Generation), and 5G. It may include at least one communication chip that performs communication according to various wireless communication standards such as (5th Generation).
  • the wired communication module may be a module that communicates with an external device by wire.
  • the wired communication module may include at least one of a local area network (LAN) module, an Ethernet module, a pair cable, a coaxial cable, an optical fiber cable, or an ultra wide-band (UWB) module.
  • LAN local area network
  • Ethernet Ethernet
  • UWB ultra wide-band
  • the processor 130 may be implemented as a digital signal processor (DSP), a microprocessor, or a time controller (TCON) that processes digital signals.
  • DSP digital signal processor
  • MCU micro controller unit
  • MPU micro processing unit
  • controller application processor
  • AP graphics-processing unit
  • CP communication processor
  • RISC advanced reduced instruction set computer
  • ARM advanced reduced instruction set computer
  • the processor 130 is a SoC (System) with a built-in processing algorithm. on Chip), may be implemented in the form of a large scale integration (LSI), or may be implemented in the form of a field programmable gate array (FPGA).
  • the processor 130 may execute computer executable instructions stored in memory. By executing it, various functions can be performed.
  • the display 140 may be implemented as various types of displays, such as a Liquid Crystal Display (LCD), Organic Light Emitting Diodes (OLED) display, or Plasma Display Panel (PDP).
  • the display 140 may also include a driving circuit and a backlight unit that can be implemented in the form of an amorphous silicon thin film transistor (a-si TFT), low temperature poly silicon (LTPS) TFT, organic TFT (OTFT), etc. .
  • a-si TFT amorphous silicon thin film transistor
  • LTPS low temperature poly silicon
  • OFT organic TFT
  • the display 140 may be implemented as a touch screen combined with a touch sensor, a flexible display, a three-dimensional display, etc.
  • the display 140 may include a bezel housing the display panel as well as a display panel that outputs an image.
  • the bezel may include a touch sensor (not shown) to detect user interaction.
  • the electronic device 100 may include a display 140. Specifically, the electronic device 100 can directly display the acquired image or content on the display 140.
  • the electronic device 100 may not include the display 140.
  • the electronic device 100 can be connected to an external display device and can transmit images or content stored in the electronic device 100 to the external display device.
  • the electronic device 100 may transmit an image or content to an external display device along with a control signal for controlling the display of the image or content on the external display device.
  • the external display device may be connected to the electronic device 100 through the communication interface 120 or the input/output interface 160.
  • the electronic device 100 may not include a display, such as a set top box (STB).
  • STB set top box
  • the electronic device 100 may include only a small display capable of displaying only simple information such as text information.
  • the electronic device 100 may transmit images or content to an external display device wired or wirelessly through the communication interface 120 or may transmit the image or content to an external display device through the input/output interface 160.
  • the manipulation interface 150 may be implemented as a device such as buttons, a touch pad, a mouse, and a keyboard, or as a touch screen that can also perform the display function and manipulation input function described above.
  • the button may be various types of buttons such as mechanical buttons, touch pads, wheels, etc. formed on any area of the exterior of the main body of the electronic device 100, such as the front, side, or back.
  • the input/output interface 160 includes HDMI (High Definition Multimedia Interface), MHL (Mobile High-Definition Link), USB (Universal Serial Bus), DP (Display Port), Thunderbolt, VGA (Video Graphics Array) port, It may be any one of an RGB port, D-SUB (D-subminiature), or DVI (Digital Visual Interface).
  • the input/output interface 160 can input and output at least one of audio and video signals.
  • the input/output interface 160 may include a port that inputs and outputs only audio signals and a port that inputs and outputs only video signals as separate ports, or may be implemented as a single port that inputs and outputs both audio signals and video signals.
  • the electronic device 100 may transmit at least one of an audio and video signal to an external device (eg, an external display device or an external speaker) through the input/output interface 160.
  • an external device eg, an external display device or an external speaker
  • the output port included in the input/output interface 160 may be connected to an external device, and the electronic device 100 may transmit at least one of an audio and video signal to the external device through the output port.
  • the input/output interface 160 may be connected to a communication interface.
  • the input/output interface 160 may transmit information received from an external device to a communication interface or transmit information received through a communication interface to an external device.
  • the speaker 170 may be a component that outputs not only various audio data but also various notification sounds or voice messages.
  • the microphone 180 is configured to receive a user's voice or other sounds and convert them into audio data.
  • the microphone 180 can receive the user's voice when activated.
  • the microphone 180 may be formed integrally with the electronic device 100, such as on the top, front, or side surfaces.
  • the microphone 180 includes a microphone that collects user voice in analog form, an amplifier circuit that amplifies the collected user voice, an A/D conversion circuit that samples the amplified user voice and converts it into a digital signal, and noise components from the converted digital signal. It may include various configurations such as a filter circuit to remove .
  • Figure 4 is a diagram for explaining a plurality of modules used to provide response information corresponding to user input.
  • the electronic device 100 includes a user input processing module 111, a user log storage module 112, a sample prompt determination module 113, an additional information acquisition module 114, and an input prompt generation module 115. ) or a response providing module 116.
  • the user input processing module 111 may be a module that receives user input.
  • the user input processing module 111 may include at least one of an audio processing module 111-1, a text processing module 111-2, or an image processing module 111-3.
  • the audio processing module 111-1 may be a module that processes audio data acquired through a microphone. Audio data may be an audio analog signal or an audio digital signal. Depending on embodiments, the audio processing module 111-1 may be or include a voice processing module. The audio processing module 111-1 can convert an audio signal into text information using a voice recognizer. The audio processing module 111-1 may determine whether the received audio data is voice data. If the audio data is voice data, the audio processing module 111-1 can convert the voice data into text data (or text information) using a voice recognizer.
  • the user input processing module 111 may determine text information converted using the audio processing module 111-1 as a user input.
  • the text processing module 111-2 may be a module that processes typing data obtained through the keyboard.
  • the text processing module 111-2 may be a module that acquires text information input by the user.
  • the user input processing module 111 may determine text information as user input using the text processing module 111-2.
  • the image processing module 111-3 may be a module that processes image data acquired through a camera.
  • the image processing module 111-3 may be a module that converts (or changes) image data into a form that can be used by other modules.
  • the image processing module 111-3 may extract specific information from image data using an optical character reader (OCR) function.
  • OCR optical character reader
  • the user input processing module 111 may determine information extracted using the image processing module 111-3 as a user input.
  • the image processing module 111-3 may change the resolution of image data.
  • the user input processing module 111 may determine image data whose resolution has been changed as the user input using the image processing module 111-3.
  • the image processing module 111-3 may determine the image data itself as user input without a conversion (or change) operation.
  • the user input processing module 111 may transmit the received user input to at least one of the sample prompt determination module 113, the additional information acquisition module 114, or the input prompt generation module 115.
  • the user log storage module 112 may be a module in which user logs related to user behavior are stored.
  • the user log is at least one of user input input from the electronic device 100, content information (audio, image, text, etc.) provided according to the user input, command information executed according to the user input, or application information executed according to the user input. may include.
  • the user log storage module 112 may transmit the user log to at least one of the sample prompt determination module 113 or the additional information acquisition module 114.
  • At least one of the sample prompt determination module 113 or the additional information acquisition module 114 may use the user log.
  • the sample prompt determination module 113 and the additional information acquisition module 114 may not use the user log.
  • the sample prompt determination module 113 may be a module that determines a sample prompt corresponding to a user input among a plurality of sample prompts.
  • the sample prompt determination module 113 may include at least one of a plurality of sample prompt storage modules 113-1, a task determination module 113-2, and a sample prompt selection module 113-3.
  • the sample prompt may include at least one of description information indicating the sample prompt and sample data related to response information.
  • Sample data may be data representing the structure of a plurality of detailed information included in response information.
  • the plurality of sample prompt storage modules 113-1 may store preset sample prompts.
  • each of a plurality of sample prompts may correspond to a preset task.
  • a first sample prompt corresponding to the first task and a second sample prompt corresponding to the second task may be stored in the plurality of sample prompt storage modules 113-1.
  • the job (task) determination module 113-2 may be a module that determines which job the user input is related to.
  • the task may be a conversation task, a query task, a device control task, etc. Additionally, the job (task) determination module 113-2 may identify a job corresponding to the user input by considering the user log and user input together.
  • the sample prompt selection module 113-3 may be a module that selects a sample prompt corresponding to a user input from among a plurality of sample prompts.
  • the sample prompt selection module 113-3 may select a sample prompt corresponding to the identified task.
  • the sample prompt determination module 113 may select (or identify) a sample prompt based on at least one of the user input received from the user input processing module 111 or the user log received from the user log storage module 112. .
  • the sample prompt determination module 113 may transmit the selected sample prompt to the input prompt generation module 115.
  • the additional information acquisition module 114 may be a module that acquires additional information corresponding to user input.
  • the additional information acquisition module 114 may include at least one of the additional information determination module 114-1, the additional information reception module 114-2, and the additional information analysis module 114-3.
  • the additional information determination module 114-1 may be a module that determines whether additional information corresponding to the user input is needed and what additional information is needed. The additional information determination module 114-1 may determine whether a complete response can be generated with only user input.
  • the additional information determination module 114-1 may identify that additional information is not needed. If it is determined that a complete response cannot be generated through user input alone, the additional information determination module 114-1 may identify that additional information is needed.
  • the additional information determination module 114-1 can determine whether any additional information is needed to generate a complete response.
  • the additional information determination module 114-1 may request the determined (or necessary) additional information from the additional information reception module 114-2.
  • the additional information receiving module 114-2 may be a module that obtains additional information requested from the additional information determining module 114-1.
  • the additional information receiving module 114-2 may obtain additional information using information inside the electronic device 100.
  • the additional information receiving module 114-2 may obtain additional information through the second server 300.
  • the additional information receiving module 114-2 may request the determined (or necessary) additional information from the second server 300.
  • the second server 300 may use the additional information acquisition module 114 to obtain (or generate) the additional information requested by the additional information reception module 114-2. And, the second server 300 may transmit additional information to the additional information receiving module 114-2.
  • the additional information acquisition module 114 may acquire additional information through the additional information reception module.
  • the additional information analysis module 114-3 may be a module that determines whether the acquired (or received) additional information is data suitable to be included in the input prompt.
  • the acquired additional information may be in an unsuitable form to be included in the input prompt. Additionally, the acquired additional information may be of a depth (or level) that is difficult to use for generating response information. Accordingly, the additional information analysis module 114-3 can analyze the received additional information. As a result of the analysis, the additional information analysis module can obtain processed (or specified) additional information.
  • the additional information acquisition module 114 may transmit additional information (or processed additional information) to the input prompt generation module 115.
  • the input prompt generation module 115 may be a module that generates an input prompt based on at least one of a user input, a sample prompt, or additional information.
  • the input prompt generation module 115 may include at least one of a module 115-1 that reflects user input in the sample prompt or a module 115-2 that reflects additional information in the sample prompt.
  • the module 115-1 that reflects the user input to the sample prompt may be a module that adds the user input (or information corresponding to the user input) to a specific sample prompt selected by the sample prompt determination module 113.
  • the module 115-2 that reflects additional information in the sample prompt may be a module that adds additional information (or processed additional information) to a specific sample prompt selected by the sample prompt determination module 113.
  • the input prompt generation module 115 may generate (or obtain) an input prompt that includes at least one of a user input or additional information in a specific sample prompt selected by the sample prompt determination module 113. And, the input prompt generation module 115 may transmit the generated input prompt to the first server 200.
  • the first server 200 may be a server that generates response information corresponding to input data.
  • the first server 200 may include a large language model 211.
  • the first server 200 may generate response information corresponding to the input prompt using a large language model.
  • the first server 200 may transmit the generated response information to the response providing module 116.
  • the response providing module 116 may receive response information from the first server 200.
  • the response providing module 116 may provide the received response information to the user.
  • the response providing module 116 may include a User Interface (UI) creation module 116-1.
  • the response providing module 116 may generate a response UI based on the received response information. Additionally, the response providing module 116 may provide the generated response UI to the user.
  • the response UI may include at least one of audio, text, or images.
  • Figure 5 is a diagram for explaining a response information provision process according to various embodiments.
  • the user input processing module 111 may receive a user input ('How's the weather?').
  • User input may be text information. If the user input is voice information, the user input processing module 111 may convert the voice information into text information.
  • the user input processing module 111 may transmit the user input ('How's the weather?') to at least one of the sample prompt determination module 113, the additional information acquisition module 114, or the input prompt generation module 115. .
  • the user log storage module 112 can acquire a user log ('Let's meet tomorrow at Gangnam Station, Seoul'). And, the user log storage module 112 stores the user log ('Let's meet tomorrow at Gangnam Station, Seoul') in at least one of the sample prompt determination module 113, the additional information acquisition module 114, and the input prompt generation module 115. can be transmitted to.
  • the sample prompt determination module 113 may receive a user input ('What's the weather like?') from the user input processing module 111. Additionally, the sample prompt determination module 113 may receive a user log ('Let's meet tomorrow at Gangnam Station, Seoul') from the user log storage module 112. The sample prompt determination module 113 may determine a sample prompt based on at least one of a user input ('How's the weather?') or a user log ('Let's meet tomorrow at Gangnam Station in Seoul'). The sample prompt determination module 113 may transmit the determined sample prompt to the input prompt generation module 115.
  • the additional information acquisition module 114 may receive a user input ('How's the weather?') from the user input processing module 111. Additionally, the additional information acquisition module 114 may receive a user log ('Let's meet tomorrow at Gangnam Station, Seoul') from the user log storage module 112. The additional information acquisition module 114 may acquire additional information based on at least one of a user input ('How's the weather?') or a user log ('Let's meet tomorrow at Gangnam Station in Seoul').
  • the additional information acquisition module 114 may determine additional information needed to generate response information corresponding to the user input.
  • the additional information acquisition module 114 may determine necessary additional information (tomorrow's weather data). Additionally, the additional information acquisition module 114 may request necessary additional information from the second server 300. Specifically, the additional information acquisition module 114 may transmit a control signal requesting additional information to the user log storage module 112.
  • the control signal may include information for requesting additional information and necessary additional information (tomorrow's weather data).
  • the second server 300 may acquire weather data based on the additional information request received from the additional information acquisition module 114.
  • the second server 300 may obtain necessary additional information (tomorrow's weather data) from the received control signal. And, the second server 300 may transmit information (today's weather data, tomorrow's weather data) corresponding to the necessary additional information (tomorrow's weather data) to the additional information acquisition module 114.
  • the second server 300 may transmit only information requested by the additional information acquisition module 114. However, the second server 300 may not have a module that selectively transmits only specific requested data.
  • the second server 300 may transmit all weather-related data to the additional information acquisition module 114.
  • the additional information acquisition module 114 may receive information (today's weather data, tomorrow's weather data) from the second server 300. Received information (today's weather data, tomorrow's weather data) may be described as acquired additional information.
  • the additional information acquisition module 114 may analyze the acquired additional information and obtain information corresponding to the necessary additional information.
  • the information finally acquired by the additional information acquisition module 114 may be described as analyzed additional information.
  • the additional information acquisition module 114 may acquire final additional information (tomorrow's weather data) by analyzing data transmitted from the second server 300. Additionally, the additional information acquisition module 114 may transmit the final additional information (tomorrow's weather data) to the input prompt creation module 115.
  • the input prompt generation module 115 may receive a user input ('What's the weather like?') from the user input processing module 111. Additionally, the input prompt generation module 115 may receive a user log ('Let's meet tomorrow at Gangnam Station, Seoul') from the user log storage module 112. Additionally, the input prompt generation module 115 may receive the determined sample prompt from the sample prompt determination module 113. Additionally, the input prompt creation module 115 may receive final additional information (tomorrow's weather data) from the additional information acquisition module 114.
  • the input prompt generation module 115 generates an input prompt based on at least one of a user input ('How's the weather?'), a user log ('Let's meet at Gangnam Station in Seoul tomorrow'), a determined sample prompt, or additional information (tomorrow's weather data). can be created.
  • the input prompt generation module 115 may transmit the generated input prompt to the first server 200.
  • the first server 200 may receive an input prompt from the input prompt generation module 115. And, the first server 200 may generate response information based on the received input prompt. The first server 200 may transmit the generated response information to the response providing module 116.
  • the first server 200 obtains at least one of a user input ('How's the weather?'), a user log ('Let's meet at Gangnam Station, Seoul tomorrow'), a determined sample prompt, or additional information (tomorrow's weather data) from an input prompt. You can. And, the first server 200 responds based on at least one of user input ('How's the weather?'), user log ('Let's meet tomorrow at Gangnam Station, Seoul'), a determined sample prompt, or additional information (tomorrow's weather data). Information can be generated.
  • the response providing module 116 may receive response information from the first server 200.
  • the response providing module 116 may provide response information received from the first server 200 to the user.
  • Figure 6 is a diagram for explaining a response information provision process according to various embodiments.
  • the user input processing module 111 may receive a user input ('How much is 500 satoshi?').
  • User input may be text information. If the user input is voice information, the user input processing module 111 may convert the voice information into text information.
  • the user input processing module 111 processes the user input ('How much is 500 satoshi?') to at least one of the sample prompt determination module 113, the additional information acquisition module 114, and the input prompt generation module 115. Can be transmitted.
  • the user log storage module 112 can obtain a user log ('Bitcoin application execution'). And, the user log storage module 112 stores the user log ('Bitcoin application execution') in at least one of the sample prompt determination module 113, the additional information acquisition module 114, and the input prompt generation module 115. Can be transmitted.
  • Sample prompt determination module 113 may receive user input ('How much is 500 satoshi?') from user input processing module 111. Additionally, the sample prompt determination module 113 may receive a user log ('Bitcoin application execution') from the user log storage module 112. The sample prompt determination module 113 may determine a sample prompt based on at least one of user input ('How much is 500 satoshi?') or user logs ('Run Bitcoin application'). The sample prompt determination module 113 may transmit the determined sample prompt to the input prompt generation module 115.
  • the additional information acquisition module 114 may receive a user input ('How much is 500 satoshi?') from the user input processing module 111. Additionally, the additional information acquisition module 114 may receive a user log ('Bitcoin application execution') from the user log storage module 112. The additional information acquisition module 114 may acquire additional information based on at least one of a user input ('How much is 500 satoshi?') or a user log ('Running Bitcoin application').
  • the additional information acquisition module 114 may determine additional information needed to generate response information corresponding to the user input.
  • the additional information acquisition module 114 can determine necessary additional information ('price of 1 Bitcoin' and 'relationship between Bitcoin and 1 Satoshi'). Additionally, the additional information acquisition module 114 may request necessary additional information from the second server 300. Specifically, the additional information acquisition module 114 may transmit a control signal requesting additional information to the user log storage module 112.
  • the control signal may include information for requesting additional information and necessary additional information ('price of 1 Bitcoin' and 'relationship between Bitcoin and 1 Satoshi').
  • the second server 300 may obtain the 'price of 1 Bitcoin' and 'the relationship between Bitcoin and 1 Satoshi' based on the additional information request received from the additional information acquisition module 114.
  • the second server 300 may obtain necessary additional information ('price of 1 Bitcoin' and 'relationship between Bitcoin and 1 Satoshi') from the received control signal.
  • the second server 300 provides information ('1 BTC: 20000 $' and '1 Satoshi: 0.00000001 BTC') corresponding to the necessary additional information ('price of 1 Bitcoin' and 'relationship between Bitcoin and 1 Satoshi'). ) can be transmitted to the additional information acquisition module 114.
  • the additional information acquisition module 114 may receive information ('1 BTC: 20000 $' and '1 satoshi: 0.00000001 BTC') from the second server 300.
  • the received information ('1BTC: 20000 $' and '1 Satoshi: 0.00000001 BTC') may be described as acquired additional information or final additional information.
  • the additional information acquisition module 114 may acquire final additional information ('1BTC: 20000 $' and '1 Satoshi: 0.00000001 BTC') by analyzing data transmitted from the second server 300. there is. Additionally, the additional information acquisition module 114 may transmit the final additional information ('1 BTC: 20000 $' and '1 satoshi: 0.00000001 BTC') to the input prompt generation module 115. For example, the additional information acquisition module 114 may receive Bitcoin-related web page information from the second server 300. Additionally, the additional information acquisition module 114 can acquire final additional information ('1 BTC: 20000 $' and '1 satoshi: 0.00000001 BTC') by analyzing the received web page information.
  • the input prompt generation module 115 may receive a user input ('How much is 500 satoshi?') from the user input processing module 111. Additionally, the input prompt generation module 115 may receive a user log ('Bitcoin application execution') from the user log storage module 112. Additionally, the input prompt generation module 115 may receive the determined sample prompt from the sample prompt determination module 113. Additionally, the input prompt generation module 115 may receive final additional information ('price of 1 Bitcoin' and 'relationship between Bitcoin and 1 Satoshi') from the additional information acquisition module 114.
  • the input prompt generation module 115 generates user input ('How much is 500 satoshi?'), user logs ('Run Bitcoin application'), and determined sample prompts or additional information ('Price of 1 Bitcoin' and 'Bitcoin An input prompt can be created based on at least one of the relationship between 'and 1 satoshi').
  • the input prompt generation module 115 may transmit the generated input prompt to the first server 200.
  • the first server 200 may receive an input prompt from the input prompt generation module 115. And, the first server 200 may generate response information based on the received input prompt. The first server 200 may transmit the generated response information to the response providing module 116.
  • the first server 200 receives user input ('How much is 500 satoshi?') from an input prompt, user log ('Run Bitcoin application'), and determined sample prompts or additional information ('Price of 1 Bitcoin' and ' You can obtain at least one of the following: ‘the relationship between Bitcoin and 1 Satoshi’). And, the first server 200 receives user input ('How much is 500 satoshi?'), user log ('Running Bitcoin application'), and determined sample prompts or additional information ('Price of 1 Bitcoin' and 'Bit Coin'). Response information can be generated based on at least one of the following: 'relationship between a coin and 1 satoshi').
  • the response providing module 116 may receive response information from the first server 200.
  • the response providing module 116 may provide response information received from the first server 200 to the user.
  • Figure 7 is a diagram for explaining a response information provision process according to various embodiments.
  • the user input processing module 111 may receive a user input ('Turn on the power at 7 p.m.').
  • User input may be text information. If the user input is voice information, the user input processing module 111 may convert the voice information into text information.
  • the user input processing module 111 transmits the user input ('Turn on the power at 7 p.m.') to at least one of the sample prompt determination module 113, the additional information acquisition module 114, and the input prompt generation module 115. Can be transmitted.
  • the user log storage module 112 can obtain a user log ('It's too hot when I get home these days'). And, the user log storage module 112 stores the user log ('It's too hot when I get home these days') to at least one of the sample prompt determination module 113, the additional information acquisition module 114, and the input prompt generation module 115. can be transmitted to the module.
  • the sample prompt determination module 113 may receive a user input ('Turn on the power at 7 p.m.') from the user input processing module 111. Additionally, the sample prompt determination module 113 may receive a user log ('It's too hot when I get home these days') from the user log storage module 112. The sample prompt determination module 113 may determine a sample prompt based on at least one of a user input ('Turn on the power at 7 PM') or a user log ('It's too hot when I get home these days'). The sample prompt determination module 113 may transmit the determined sample prompt to the input prompt generation module 115.
  • the additional information acquisition module 114 may receive a user input ('Turn on the power at 7 p.m.') from the user input processing module 111. Additionally, the additional information acquisition module 114 may receive a user log ('It's too hot when I get home these days') from the user log storage module 112. The additional information acquisition module 114 may acquire additional information based on at least one of a user input ('Turn on the power at 7 p.m.') or a user log ('It's too hot when I get home these days').
  • the additional information acquisition module 114 may determine additional information needed to generate response information corresponding to the user input.
  • the additional information acquisition module 114 may determine necessary additional information ('connected device' and 'control code'). Additionally, the additional information acquisition module 114 may request necessary additional information from the second server 300. Specifically, the additional information acquisition module 114 may transmit a control signal requesting additional information to the user log storage module 112.
  • the control signal may include information for requesting additional information and necessary additional information ('connected device' and 'control code').
  • the second server 300 may obtain a ‘connected device list’ and a ‘control code list’ based on the additional information request received from the additional information acquisition module 114.
  • the second server 300 may obtain necessary additional information ('connected device' and 'control code') from the received control signal. And, the second server 300 transmits information ('connected device list' and 'control code list') corresponding to the necessary additional information ('connected device' and 'control code') to the additional information acquisition module 114. You can.
  • the additional information acquisition module 114 may receive information ('connected device list' and 'control code list') from the second server 300.
  • the received information ('connected device list' and 'control code list') may be described as acquired additional information or final additional information.
  • the additional information acquisition module 114 may acquire final additional information ('connected device list' and 'control code list') by analyzing data transmitted from the second server 300. Additionally, the additional information acquisition module 114 may transmit the final additional information ('connected device list' and 'control code list') to the input prompt generation module 115. For example, the additional information acquisition module 114 may receive management device information from the second server 300. Additionally, the additional information acquisition module 114 can acquire final additional information ('connected device list' and 'control code list') by analyzing the received management device information.
  • the input prompt generation module 115 may receive a user input ('Turn on the power at 7 p.m.') from the user input processing module 111. Additionally, the input prompt generation module 115 may receive a user log ('It's too hot when I get home these days') from the user log storage module 112. Additionally, the input prompt generation module 115 may receive the determined sample prompt from the sample prompt determination module 113. Additionally, the input prompt creation module 115 may receive final additional information ('connected device list' and 'control code list') from the additional information acquisition module 114.
  • the input prompt generation module 115 generates user input ('Turn on the power at 7 p.m.'), user log ('It's too hot when I get home these days'), determined sample prompt or additional information ('List of connected devices' and 'Control An input prompt can be created based on at least one of the 'code list').
  • the input prompt generation module 115 may transmit the generated input prompt to the first server 200.
  • the first server 200 may receive an input prompt from the input prompt generation module 115. And, the first server 200 may generate response information based on the received input prompt. The first server 200 may transmit the generated response information to the response providing module 116. The first server 200 receives user input ('Turn on the power at 7 PM'), user log ('It's too hot when I get home these days'), and determined sample prompt or additional information ('List of connected devices' and At least one of the 'control code list') can be obtained.
  • the first server 200 processes user input ('Turn on the power at 7 p.m.'), user log ('It's too hot when I get home these days'), and determined sample prompts or additional information ('List of connected devices' and ' Response information ('command information for turning on the air conditioner') can be generated based on at least one of the 'control code list').
  • the response providing module 116 may receive response information ('command information for turning on the air conditioner') from the first server 200.
  • the response providing module 116 may provide response information ('command information for turning on the air conditioner') received from the first server 200 to the user.
  • the response providing module 116 may execute a reservation command to turn on the air conditioner at a time (7 p.m.) corresponding to the user input.
  • Figure 8 is a diagram for explaining a response information provision process according to various embodiments.
  • the user input processing module 111 may receive user input ('Can I go hiking wearing this?' and 'image data').
  • User input may be text information. If the user input is voice information, the user input processing module 111 may convert the voice information into text information. Additionally, user input may include image data (composition image).
  • the user input processing module 111 processes user input ('Can I go hiking in these?' and 'image data') into the sample prompt determination module 113, the additional information acquisition module 114, or the input prompt generation module 115. It can be transmitted to at least one module.
  • the user log storage module 112 can obtain a user log ('Let's go hiking in the Alps'). And, the user log storage module 112 stores the user log ('Let's go hiking in the Alps') in at least one of the sample prompt determination module 113, the additional information acquisition module 114, and the input prompt generation module 115. Can be transmitted.
  • the sample prompt determination module 113 may receive user input ('Can you go hiking in these?' and 'image data') from the user input processing module 111. Additionally, the sample prompt determination module 113 may receive a user log ('Let's go hiking in the Alps') from the user log storage module 112. The sample prompt determination module 113 may determine a sample prompt based on at least one of a user input ('Can I go hiking in these?' and 'Image data') or a user log ('Let's go hiking in the Alps'). The sample prompt determination module 113 may transmit the determined sample prompt to the input prompt generation module 115.
  • the additional information acquisition module 114 may receive user input ('Can I go hiking wearing this?' and 'image data') from the user input processing module 111. Additionally, the additional information acquisition module 114 may receive a user log ('Let's go hiking in the Alps') from the user log storage module 112. The additional information acquisition module 114 may acquire additional information based on at least one of user input ('Can I go mountain climbing wearing this?' and 'Image data') or user log ('Let's go hiking in the Alps'). .
  • the additional information acquisition module 114 may determine additional information needed to generate response information corresponding to the user input.
  • the additional information acquisition module 114 may determine necessary additional information ('mountain' and 'image object'). Additionally, the additional information acquisition module 114 may request necessary additional information from the second server 300. Specifically, the additional information acquisition module 114 may transmit a control signal requesting additional information to the user log storage module 112.
  • the control signal may include information for requesting additional information and necessary additional information ('mountain' and 'image object').
  • the second server 300 may acquire image analysis information ('high heels', 'black', 'street', ' woman') based on the additional information request received from the additional information acquisition module 114.
  • the second server 300 may obtain necessary additional information ('mountain' and 'image object') from the received control signal. And, the second server 300 sends information ('high heels', 'black', 'street', ' woman') corresponding to the necessary additional information ('mountain' and 'image object') to the additional information acquisition module 114. ) can be transmitted to.
  • the additional information acquisition module 114 may receive information ('high heels', 'black', 'street', ' woman') from the second server 300. Received information ('high heels', 'black', 'street', ' woman') can be described as acquired additional information.
  • the additional information acquisition module 114 may acquire final additional information ('high heels', ' woman') by analyzing data transmitted from the second server 300. Additionally, the additional information acquisition module 114 may transmit the final additional information ('high heels', ' woman') to the input prompt creation module 115. The additional information acquisition module 114 selects an object ('high heels') that is related to at least one of the user input or user log among the plurality of objects ('high heels', 'black', 'street', ' woman') included in the image. , ' woman') can be selected. The additional information acquisition module 114 may determine the selected object ('high heels', ' woman') as the final additional information.
  • the input prompt generation module 115 may receive user input ('Can I go hiking in these?' and 'image data') from the user input processing module 111. Additionally, the input prompt generation module 115 may receive a user log ('Let's go hiking in the Alps') from the user log storage module 112. Additionally, the input prompt generation module 115 may receive the determined sample prompt from the sample prompt determination module 113. Additionally, the input prompt creation module 115 may receive final additional information ('high heels', ' woman') from the additional information acquisition module 114.
  • the input prompt creation module 115 generates user input ('Can I go mountain climbing in these?' and 'Image data'), user log ('Let's go hiking in the Alps'), and determined sample prompts or additional information ('High heels', ' An input prompt can be created based on at least one of the following:
  • the input prompt generation module 115 may transmit the generated input prompt to the first server 200.
  • the first server 200 may receive an input prompt from the input prompt generation module 115. And, the first server 200 may generate response information based on the received input prompt. The first server 200 may transmit the generated response information to the response providing module 116.
  • the first server 200 receives user input ('Can I go mountain climbing in these?' and 'Image data') from an input prompt, a user log ('Let's go hiking in the Alps'), a determined sample prompt, or additional information ('High heels'). , ' woman') can be obtained.
  • the first server 200 receives user input ('Can I go mountain climbing in these?' and 'Image data'), user log ('Let's go hiking in the Alps'), and a determined sample prompt or additional information ('High heels', Response information ('It's dangerous! Can you recommend a place to go while wearing high heels?') can be generated based on at least one of the following: 'Woman').
  • the response providing module 116 may receive response information ('It's dangerous! Can you recommend a place to go while wearing high heels?') from the first server 200.
  • the response providing module 116 may provide response information ('It's dangerous! Can you recommend a place to go while wearing high heels?') received from the first server 200 to the user.
  • Figure 9 is a diagram for explaining a plurality of sample prompts.
  • Sample prompt 910 in Figure 9 represents a weather prompt.
  • the weather prompt may be a sample prompt that is selected when weather-related user input is received.
  • Sample prompt 910 may include answer structure information so that answers are provided regarding weather, temperature, and precautions.
  • Sample prompt 920 in Figure 9 represents a question and answer prompt.
  • a question-and-answer prompt may be a sample prompt that is selected when user input related to a question is received.
  • the sample prompt 920 may include explanatory information and answer structure information related to the question and answer.
  • Sample prompt 930 in Figure 9 represents a control code prompt.
  • the control code prompt may be a sample prompt that is selected when user input related to device control is received.
  • the sample prompt 930 may include descriptive information and answer structure information related to device control.
  • Sample prompt 940 in FIG. 9 represents a chat-bot prompt.
  • the chatbot prompt may be a sample prompt that is selected when user input related to the chatbot functionality is received.
  • the sample prompt 940 may include explanatory information and answer structure information related to the chatbot service.
  • Figure 10 is a diagram for explaining categories of sample prompts.
  • a plurality of sample prompts may be assigned to one category.
  • the categories of sample prompts are weather, Q&A, control code, chatbot, etc.
  • one sample prompt may exist in one category.
  • multiple sample prompts may exist in one category.
  • the weather category there may be sample prompts #01-1, #01-2, and #01-3.
  • Each sample prompt may have a different answer structure, etc.
  • the sample prompt in #01-1 can provide only the weather as response information.
  • the sample prompt in #01-2 can provide weather and temperature as response information.
  • the sample prompt in #01-3 can provide weather, temperature, and humidity as response information.
  • sample prompts #04-1, #04-2, and #04-3 may exist in the chatbot category. Each sample prompt can have a different response structure.
  • the sample prompt in #01-1 can only provide text as response information.
  • the sample prompt in #04-2 can provide text and emoticons as response information.
  • the sample prompt in #04-3 can provide control text, emoji, and other applications as response information.
  • 11 is a diagram for explaining the operation of a task determination module according to various embodiments.
  • the task determination module 113-2 may determine that the user input corresponds to a chatbot task.
  • the sample prompt determination module 113 may select a chatbot prompt from a plurality of sample prompts.
  • the task determination module 113-2 determines the user input. It can be determined that it corresponds to a question-answer task.
  • the sample prompt determination module 113 may select a weather prompt from a plurality of sample prompts.
  • the determination module 113-2 may determine that the user input corresponds to a device control task.
  • the sample prompt determination module 113 may select a control code prompt from a plurality of sample prompts.
  • FIG. 12 is a diagram for explaining the operation of an additional information determination module according to various embodiments.
  • the additional information determination module determines the Bitcoin price (Coin Market API, Application Program Interface), Bitcoin and Satoshi.
  • the relationship of (search term to be used in search engines) and Bitcoin price * Relationship of Satoshi to Bitcoin * 500 (calculation formula) can be determined as necessary additional information.
  • the additional information determination module determines the user location (UWB, Ultra Wide Band), light list (SmartThings API), user, and light. The distance between them (calculation formula) and the sorting method (sorting in ascending order and then deriving the first result) can be determined as necessary additional information.
  • the additional information determination module determines the user location (GPS, Global Positioning System), current time, user location, and weather at the current time. (Weather API) can be determined as necessary additional information.
  • Figure 13 is a diagram for explaining the operation of an additional information receiving module according to various embodiments.
  • the additional information receiving module 1310 may acquire additional information based on at least one of the search engine server 1311, database server 1312, API server 1313, or calculator application 1314. there is.
  • the additional information receiving module 1310 may correspond to the additional information receiving module 114-2 described above.
  • the additional information receiving module 1310 may request additional information from an external server or external application. Additionally, the additional information receiving module 1310 can receive additional information from an external server or external application.
  • the search engine server 1311 may obtain search results based on the keyword transmitted from the additional information receiving module 1310.
  • the search engine server 1311 may transmit search results to the additional information receiving module 1310.
  • the database server 1312 may obtain data corresponding to the additional information request transmitted from the additional information receiving module 1310.
  • the database server 1312 may transmit the acquired data to the additional information receiving module 1310.
  • the API server 1313 may obtain data corresponding to the API information transmitted from the additional information receiving module 1310.
  • the API server 1313 may transmit the acquired data to the additional information receiving module 1310.
  • the calculator application 1314 may obtain a calculation result corresponding to the calculation formula information transmitted from the additional information receiving module 1310. The calculator application 1314 may transmit the calculation result to the additional information receiving module 1310.
  • FIG. 14 is a diagram for explaining the operation of the additional information determination module 114-1 according to various embodiments.
  • the additional information determination module 114-1 when a user input (How much is a Galaxy S22?) is received, the additional information determination module 114-1 obtains request information (SELECT Price FROM GalaxyS22) corresponding to the user input. can do. Requested information may mean necessary additional information. The additional information determination module 114-1 may transmit the requested information to the database server. The additional information determination module 114-1 may obtain additional information (1 million won) from the database server 1312.
  • the additional information determination module 114-1 when a user input (if there are 5 bags of 6 candies, how many candies are there in total?), the additional information determination module 114-1 makes a request corresponding to the user input. You can obtain information (6 * 5). The additional information determination module 114-1 may transmit the request information to the calculator application 1314. The additional information determination module 114-1 may obtain additional information 30 from the calculator application 1314.
  • the additional information determination module 114-1 may obtain request information (data representing an image) corresponding to the user input. .
  • the additional information determination module 114-1 may transmit request information to the image interpreter application 1431.
  • the additional information determination module 114-1 may obtain additional information (apple object, red object, number of apple objects (3)) from the image interpreter application 1431.
  • the additional information determination module 114-1 acquires request information (data representing audio) corresponding to the user input. You can.
  • the additional information determination module 114-1 may transmit request information to the audio interpreter application 1441.
  • the additional information determination module 114-1 may obtain additional information (music information: Beatles, Hey Jude) from the audio interpreter application 1441.
  • Figure 15 is a diagram for explaining the operation of acquiring additional information.
  • the additional information determination module 114-1 provides request information ( 1510) can be obtained.
  • Request information 1510 may include mountains and image objects.
  • the additional information receiving module 114-2 may obtain additional information 1520 based on the request information 1510.
  • Additional information 1520 may include image analysis information (high heel object, black object, street object, woman object).
  • the additional information analysis module 114-3 may analyze the received additional information 1520 and the user log.
  • the additional information analysis module 114-3 may obtain additional information (high heel object, woman object) related to user input (or user log) as final additional information 1530 as an analysis result.
  • the additional information analysis module 114-3 may obtain Alps information as the final additional information 1530 based on the user log (Let's go hiking in the Alps).
  • FIG. 16 is a diagram for explaining the operation of an additional information determination module according to various embodiments.
  • the electronic device 100 can obtain user input (S1610).
  • the user input may be at least one of text information, image information, or audio information.
  • Text information can be obtained through the keyboard.
  • the electronic device 100 may obtain text information from image information using text recognition technology (eg, OCR, Optical Character Reader).
  • the electronic device 100 may obtain text information from audio information using text recognition technology (eg, voice recognition function).
  • the voice recognition function may be a function that converts audio signals into text information.
  • the electronic device 100 may select a sample prompt based on the user input (S1620).
  • the prompt may be sample data of input data used to provide response information.
  • a prompt may include various information used to generate response information.
  • the prompt may include structure information of a response corresponding to the user input.
  • the electronic device 100 may generate response information based on structural information included in the prompt.
  • the electronic device 100 may obtain additional information based on user input (S1630).
  • the electronic device 100 may obtain additional information related to user input.
  • the electronic device 100 may obtain various information related to words included in the user input.
  • the electronic device 100 may obtain an input prompt based on the user input, sample prompt, and additional information (S1640).
  • the electronic device 100 may generate an input prompt by adding user input and additional information to the sample prompt.
  • the electronic device 100 may provide response information based on the input prompt (S1650).
  • the electronic device 100 may obtain user input, sample prompt, and additional information included in the input prompt.
  • the electronic device 100 may obtain response information based on user input, sample prompt, and additional information.
  • the electronic device 100 may provide the obtained response information to the user.
  • step S1630 is performed after step S1620.
  • the electronic device 100 may perform step S1630 first and then step S1620. Additionally, according to various embodiments, the electronic device 100 may simultaneously perform steps S1620 and S1630.
  • the description of the sequence of the operation of selecting a sample prompt and the operation of obtaining additional information can be equally applied to the drawings below.
  • Figure 17 is a flowchart for explaining the operation of obtaining a response path.
  • Steps S1710, S1720, S1730, S1740, and S1750 of FIG. 17 may correspond to steps S1610, S1620, S1630, S1640, and S1650 of FIG. 16. Therefore, redundant description is omitted.
  • the electronic device 100 may transmit the input prompt to the first server 200 (S1741).
  • the first server 200 may obtain response information based on the input prompt received from the electronic device 100 (S1742). And, the first server 200 may transmit response information to the electronic device 100 (S1743).
  • the electronic device 100 may receive response information from the first server 200. And, the electronic device 100 may provide response information to the user (S1750). According to various embodiments, the electronic device 100 may display response information through the display 140. According to various embodiments, the electronic device 100 may output response information through the speaker 170.
  • Figure 18 is a flowchart for explaining the operation of obtaining response information using the server 200.
  • Steps S1810, S1830, S1840, S1841, S1842, S1843, and S1850 of FIG. 18 may correspond to steps S1710, S1730, S1740, S1741, S1742, S1743, and S1750 of FIG. 17. Therefore, redundant description is omitted.
  • the electronic device 100 may identify a task corresponding to the user input among a plurality of preset tasks (S1821). Operations related to this are described in FIG. 11.
  • the electronic device 100 may select a sample prompt based on the identified task (S1822).
  • the electronic device 100 may select a sample prompt corresponding to the identified task from among a plurality of sample prompts stored in the memory 110. Afterwards, the electronic device 100 may perform steps S1830 to S1850.
  • Figure 19 is a flow chart to explain an embodiment in which sample prompts are divided into separate groups.
  • Steps S1910, S1930, S1940, S1941, S1942, S1943, and S1950 of FIG. 19 may correspond to steps S1710, S1730, S1740, S1741, S1742, S1743, and S1750 of FIG. 17. Therefore, redundant description is omitted.
  • the electronic device 100 can identify whether the user input includes data other than text (S1921).
  • Data other than text may mean image data or audio data.
  • User input may include image data or audio data rather than text data.
  • the electronic device 100 may provide response information corresponding to user input including image data or audio data.
  • the electronic device 100 may distinguish and process user input containing only text data and user input containing image data or audio data.
  • the electronic device 100 may store a sample prompt corresponding to a user input containing only text data as a first group.
  • the first group may include a plurality of sample prompts, and the sample prompts included in the first group may be prompts for processing user input containing only text data.
  • the electronic device 100 may store sample prompts corresponding to user input including image data or audio data as a second group.
  • the second group may include a plurality of sample prompts, and the sample prompts included in the second group may be prompts for processing user input including image data or audio data.
  • the electronic device 100 may select a sample prompt corresponding to the user input from a plurality of sample prompts stored in the first group (S1922). If the user input includes only text data, the electronic device 100 may select a sample prompt from the first group.
  • the electronic device 100 may select a sample prompt corresponding to the user input from among a plurality of sample prompts stored in the second group (S1923). If the user input includes image data or audio data, the electronic device 100 may select a sample prompt from the second group. Afterwards, the electronic device 100 may perform steps S1930 to S1950.
  • FIG. 20 is a flowchart for explaining the operation of acquiring additional information using the second server 300.
  • Steps S2010, S2020, S2040, S2041, S2042, S2043, and S2050 of FIG. 20 may correspond to steps S1710, S1720, S1740, S1741, S1742, S1743, and S1750 of FIG. 17. Therefore, redundant description can be omitted.
  • the electronic device 100 may transmit a request for additional information and a user input to the second server 300 (S2031).
  • the electronic device 100 may generate a control signal including information requesting additional information and a user input. And, the electronic device 100 may transmit the generated control signal to the second server 300.
  • the second server 300 may receive a request for additional information and a user input from the electronic device 100. And, the second server 300 may generate additional information based on the user input (S2032). And, the second server 300 may transmit the generated additional information to the electronic device 100 (S2033).
  • the electronic device 100 may obtain (or receive) additional information from the second server 300 (S2034). Afterwards, the electronic device 100 may perform steps S2040 to S2050.
  • Figure 21 is a flowchart for explaining the operation of obtaining an input prompt based on the probability of generating a complete response.
  • Steps S2110, S2120, S2131, S2132, S2133, S2134, S2140, S2141, S2142, S2143, and S2150 in FIG. 20 are S2010, S2020, S2031, S2032, S2033, S2034, S2 041, S2042, S2043, S2050 It can correspond to steps. Therefore, redundant description is omitted.
  • the electronic device 100 may obtain a first probability that a complete response will be generated based on the user input (S2125).
  • a complete response may mean a response that can accurately convey information corresponding to user input.
  • the electronic device 100 may obtain (or calculate) a first probability indicating the possibility that a complete response will be generated based on the user input.
  • the electronic device 100 may identify whether the first probability is less than a threshold probability (or a preset probability) (S2126). If the first probability is less than the threshold probability (S2126-Y), the electronic device 100 may request additional information from the second server 300. If the first probability is less than the threshold probability, the electronic device 100 may determine that additional information is needed. Afterwards, the electronic device 100 may perform steps S2131 to S2140.
  • a threshold probability or a preset probability
  • the electronic device 100 may obtain an input prompt based on the user input and the sample prompt (S2127). If the first probability is not less than the threshold probability, the electronic device 100 may generate an input prompt using only the user input and sample prompt without separately obtaining additional information.
  • the electronic device 100 may perform steps S2141 to S2150.
  • Figure 22 is a flowchart for explaining determining additional information based on the probability of generating a complete response.
  • Steps S2210, S2220, S2225, S2226, S2227, S2233, S2234, S2240, S2241, S2242, S2243, and S2250 in Figure 21 are S2110, S2120, S2125, S2126, S2127, S2133, and 134, S2140, S2141, S2142 , S2143, and may correspond to steps S2150. Therefore, redundant description is omitted.
  • the electronic device 100 may obtain a second probability that a complete response will be generated based on the sample additional information and the user input (S2228).
  • Sample additional information may be written as dummy information or random information.
  • the electronic device 100 may randomly select any sample additional information from among a plurality of sample additional information stored in the memory 110.
  • the electronic device 100 may obtain a second probability that a complete response will be generated based on the selected sample additional information and the user input.
  • the electronic device 100 may identify a keyword included in a user input and select sample additional information that is related to the identified keyword. If there is a plurality of sample additional information that is related to the keyword, the electronic device 100 may select the sample additional information in order of greatest relevance. Additional descriptions related to sample additional information are provided in FIG. 23.
  • the first probability obtained in step S2225 may be the probability that a complete response is generated based on the user input alone, and the second probability obtained in step S2228 may be the probability that a complete response is generated based on the user input and selected sample additional information.
  • the electronic device 100 may identify whether the second probability is less than the threshold probability (S2229).
  • the critical probability of step S2226 and the critical probability of step S2229 may be the same.
  • the critical probability of step S2226 and the critical probability of step S2229 may be different.
  • each critical probability can be written as a first critical probability and a second critical probability.
  • the electronic device 100 may re-acquire the second probability that a complete response will be generated based on new sample additional information and user input.
  • the electronic device 100 may repeat steps S2228 to S2229 until the second probability becomes greater than or equal to the threshold probability.
  • the electronic device 100 may transmit sample additional information and user input to the second server 300 (S2231).
  • the electronic device 100 may request additional information corresponding to sample additional information from the second server 300.
  • the electronic device 100 may use sample additional information to determine whether any information is needed to generate a complete response. Accordingly, the electronic device 100 can obtain information of the same type as the sample additional information as of the current time.
  • the second server 300 may obtain additional information based on the sample additional information received from the electronic device 100 and the user input (S2232). And, the second server 300 may transmit additional information to the electronic device 100.
  • the electronic device 100 may obtain additional information from the second server 300 (S2234).
  • the electronic device 100 may obtain an input prompt based on the user input, sample prompt, and additional information (S2240).
  • the electronic device 100 may perform steps S2241 to S2250.
  • FIG. 23 is a diagram for explaining the operation of the complete response determination module 2300 according to various embodiments.
  • the complete response determination module 2300 may calculate the first probability as 10%.
  • the complete response determination module 2300 may calculate the second probability as 70%. there is. Assume that the critical probability associated with the second probability is 80%.
  • the electronic device 100 may determine that it is difficult to generate a complete response with only user input (how's the weather?) and sample additional information (weather news). The electronic device 100 may select new sample additional information.
  • the complete response determination module 2300 may calculate the second probability as 90%. there is. Assume that the critical probability associated with the second probability is 80%.
  • the electronic device 100 may determine that a complete response can be generated from the user input (how's the weather?) and sample additional information (weather data).
  • sample additional information mentioned in embodiments 2320 and 2330 may not be data at the time the user input is received, but may be data from a time in the past based on the time the user input is received.
  • Sample additional information is merely information used to determine the probability (possibility) of generating a complete response, and may not be information used to actually generate response information.
  • the electronic device 100 may request additional information.
  • the electronic device 100 can determine what additional information to request through sample additional information. If additional information of the same type as the sample additional information is obtained, the possibility of generating a complete response may be greater than or equal to a critical probability. Accordingly, the electronic device 100 can obtain additional information of the same type as the sample additional information. Sample additional information may be information obtained before the user input is received, and the additional information may be information obtained after the user input is received.
  • Figure 24 is a flowchart for explaining the operation of obtaining an input prompt using a user log.
  • Steps S2410, S2440, S2441, S2442, S2443, and S2450 of FIG. 24 may correspond to steps S1710, S1740, S1741, S1742, S1743, and S1750 of FIG. 17. Therefore, redundant description is omitted.
  • the electronic device 100 may obtain the user log (S2415).
  • the user log may refer to history information about the user's use of the electronic device 100.
  • the user log may include at least one of a user conversation list, a list of applications used by the user, or a list of commands executed in the electronic device 100.
  • the electronic device 100 may select a sample prompt based on the user log and user input (S2421).
  • the electronic device 100 may obtain additional information based on the user log and user input (S2431).
  • the electronic device 100 may perform steps S2440 to S2450.
  • Figure 25 is a flowchart for explaining the operation of acquiring additional information.
  • Steps S2510, S2520, S2540, S2541, S2542, S2543, and S2550 of FIG. 25 may correspond to steps S1710, S1720, S1740, S1741, S1742, S1743, and S1750 of FIG. 17.
  • the electronic device 100 can identify whether time information is needed for a complete response (S2531). If time information is required for a complete response (S2531-Y), the electronic device 100 may obtain time information through a time information extractor (S2532). After acquiring time information through the time information extractor, the electronic device 100 can identify whether location information is required for a complete response (S2533).
  • the electronic device 100 may identify whether location information is needed for a complete response (S2533).
  • the electronic device 100 may obtain the location information through the location information extractor (S2534). After acquiring location information through the location information extractor, the electronic device 100 can identify whether information from an external system is needed for a complete response (S2535).
  • the electronic device 100 may identify whether information from an external system is required for a complete response (S2535).
  • the electronic device 100 may obtain information from the external system through an information extractor from the external system (S2536). After acquiring the information of the external system through the information extractor of the external system, the electronic device 100 can identify whether multi-modal information is required for a complete response (S2537).
  • the electronic device 100 can identify whether multi-modal information is needed for a complete response (S2537).
  • the electronic device 100 may acquire the multi-modal information through a multi-modal information extractor (S2538). After acquiring multi-modal information through the multi-modal information extractor, the electronic device 100 can acquire additional information (S2539).
  • the electronic device 100 may obtain additional information (S2539).
  • the electronic device 100 may acquire additional information based on at least one of time information, location information, information from an external system, or multi-modal information.
  • the electronic device 100 may perform steps S2540 to S2550.
  • Figure 26 is a diagram for explaining a UI (User Interface) for displaying information used to obtain an input prompt.
  • UI User Interface
  • the electronic device 100 may provide a screen 2610 related to creating an input prompt to the user.
  • the screen 2610 includes a UI 2611 representing a voice recognition notification, a UI 2612 representing user input, a UI 2613 representing a user log, a UI 2614 representing a sample prompt, and a UI 2615 representing additional information.
  • it may include at least one of a UI 2616 for receiving user input for generating response information.
  • the electronic device 100 may receive a user command to re-enter the user input through the UI 2612. Additionally, the electronic device 100 may receive a user command for modifying the user log through the UI 2613. Additionally, the electronic device 100 may receive a user command for modifying additional information through the UI 2615.
  • Figure 27 is a diagram for explaining a UI (User Interface) for displaying input prompts and response information.
  • UI User Interface
  • the electronic device 100 may provide a screen 2710 related to response information to the user.
  • the screen 2710 may include at least one of a UI 2711 indicating a voice recognition notification, a UI 2712 indicating an input prompt, or a UI 2713 indicating response information.
  • the electronic device 100 may receive a user command for modifying the input prompt through the UI 2712. If the provided response information does not include the information the user wants, the user can request new response information by modifying the input prompt.
  • FIG. 28 is a flowchart illustrating a control method of the electronic device 100 according to various embodiments.
  • obtaining a user input S2805
  • the plurality of stored samples Among the prompts identifying a sample prompt corresponding to the user input (S2810), acquiring additional information corresponding to the user input (S2815), obtaining an input prompt based on the user input, sample prompt, and additional information ( S2820), transmitting an input prompt to the server (S2825), and upon receiving response information corresponding to the input prompt from the server, providing response information (S2830).
  • response information may be provided to the user.
  • the sample prompt may include at least one of description information, example information, and response structure information indicating the sample prompt.
  • the step of identifying a sample prompt may identify a task corresponding to a user input, and identify a sample prompt corresponding to the user input among a plurality of sample prompts based on the identified task.
  • the server is a first server
  • the step of acquiring additional information (S2815) identifies whether additional information corresponding to the user input is needed, and if it is determined that additional information is needed, the additional information is sent to the second server.
  • a request signal may be transmitted and additional information may be received from the second server.
  • the step of acquiring additional information may include obtaining a first probability that a complete response will be generated based on the user input, and if the first probability is less than a threshold probability, additional information may be obtained.
  • the step of acquiring additional information includes obtaining a second probability that a complete response will be generated based on at least one sample additional information and a user input among a plurality of sample additional information, and the second probability is a threshold. If it is greater than the probability, additional information can be obtained based on at least one sample additional information.
  • the step of obtaining an input prompt may obtain an input prompt by combining a user input and additional information with a sample prompt.
  • the step of identifying a sample prompt may include obtaining a user log within a threshold time and identifying a sample prompt corresponding to the user input based on the user log and the user input.
  • the step of acquiring additional information may include acquiring a user log within a threshold time and acquiring additional information based on the user log and user input.
  • user input may include at least one of audio information, text information, or image information.
  • control method of an electronic device as shown in FIG. 28 may be executed on an electronic device having the configuration of FIG. 2 or FIG. 3, and may also be executed on an electronic device having other configurations.
  • the methods according to various embodiments of the present disclosure described above may be implemented in the form of applications that can be installed on existing electronic devices.
  • the various embodiments of the present disclosure described above can also be performed through an embedded server provided in an electronic device or an external server of at least one of the electronic device and the display device.
  • various embodiments described above are software that includes instructions stored in a machine-readable storage media (e.g., a computer). It can be implemented as:
  • the device is a device capable of calling instructions stored from a storage medium and operating according to the called instructions, and may include an electronic device according to the disclosed embodiments.
  • the processor may perform the function corresponding to the instruction directly or using other components under the control of the processor.
  • Instructions may contain code generated or executed by a compiler or interpreter.
  • a storage medium that can be read by a device may be provided in the form of a non-transitory storage medium.
  • 'non-transitory' only means that the storage medium does not contain signals and is tangible, and does not distinguish whether the data is stored semi-permanently or temporarily in the storage medium.
  • the method according to the various embodiments described above may be included and provided in a computer program product.
  • Computer program products are commodities and can be traded between sellers and buyers.
  • the computer program product may be distributed on a machine-readable storage medium (e.g. compact disc read only memory (CD-ROM)) or online through an application store (e.g. Play StoreTM).
  • an application store e.g. Play StoreTM
  • at least a portion of the computer program product may be at least temporarily stored or created temporarily in a storage medium such as the memory of a manufacturer's server, an application store server, or a relay server.
  • each component e.g., module or program
  • each component may be composed of a single or multiple entities, and some of the sub-components described above may be omitted, or other sub-components may be omitted. Additional components may be included in various embodiments. Alternatively or additionally, some components (e.g., modules or programs) may be integrated into a single entity and perform the same or similar functions performed by each corresponding component prior to integration. According to various embodiments, operations performed by a module, program, or other component may be executed sequentially, in parallel, iteratively, or heuristically, or at least some operations may be executed in a different order, omitted, or other operations may be added. You can.

Landscapes

  • Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Acoustics & Sound (AREA)
  • Computational Linguistics (AREA)
  • Theoretical Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

본 전자 장치는 복수의 샘플 프롬프트를 저장하는 메모리, 거대 언어 모델(Large Language Model)을 포함하는 서버와 통신하는 통신 인터페이스 및 사용자의 사용자 입력을 획득하고, 저장된 복수의 샘플 프롬프트 중 사용자 입력에 대응되는 샘플 프롬프트를 선택하고, 사용자 입력에 대응되는 부가 정보를 획득하고, 사용자 입력, 샘플 프롬프트 및 부가 정보에 기초하여 입력 프롬프트를 획득하고, 통신 인터페이스를 이용하여, 서버에 입력 프롬프트를 전송하고, 통신 인터페이스를 통해, 서버로부터 입력 프롬프트에 대응되는 응답 정보를 수신하면, 응답 정보를 제공하는 적어도 하나의 프로세서를 포함한다.

Description

전자 장치 및 그 제어 방법
본 개시는 전자 장치 및 그 제어방법에 관한 것으로, 더욱 상세하게는 언어 모델에 기초하여 사용자 입력에 대응되는 응답 정보를 제공하는 전자 장치 및 그 제어방법에 대한 것이다.
언어 모델을 통해 음성 비서 기능을 수행할 수 있다. 음성 비서 기능은 사용자 입력에 대응되는 응답을 제공하는 기능일 수 있다. 텍스트 또는 음성을 통해 사용자 입력이 수신되면, 음성 비서 장치는 사용자 입력에 대응되는 응답을 제공할 수 있다.
언어 모델은 학습 데이터에 의해 학습될 수 있다. 다만, 학습 동작이 실시간으로 이루어지는 것은 아니라는 점에서 언어 모델은 변화하는 정보에 대한 실시간 반영이 어려울 수 있다. 예를 들어, 사용자 입력이 수신되는 시점은 현재 이지만 학습 시점은 과거일 수 있다. 따라서, 사용자 입력에 대응되는 응답을 제공하는 언어 모델이 과거의 학습 데이터에 기초하여 출력 데이터를 생성할 수 있다.
또한, 언어 모델이 학습 데이터를 통해 학습되었다고 하더라도 사용자 입력 또는 학습 정도에 따라 응답 정보를 제공하지 못할 수 있다. 사용자 입력에 포함된 정보가 완전 응답을 생성하는데 부족할 수 있다. 또한, 학습 데이터의 범위가 특정 분야에 국한되어, 학습된 언어 모델이 정확한 응답을 제공할 수 없는 분야의 사용자 입력을 처리할 수 있다. 이러한 경우, 언어 모델은 사용자에게 정확한 응답을 제공하지 못하는 문제점이 있다.
사용자 입력에 포함된 정보가 부족한 경우, 사용자에게 재발화를 요구할 수 있다. 하지만, 사용자에게 재발화를 요구하는 경우 사용자가 불편함을 느낄 수 있다. 또한, 사용자 입력만으로 응답 정보를 제공하는 경우, 응답 정보의 정보성 또는 만족도가 낮을 수 있다.
본 개시는 상술한 문제를 개선하기 위해 고안된 것으로, 본 개시의 목적은 사용자 입력, 부가 정보를 포함하는 프롬프트에 기초하여 응답 정보를 제공하는 전자 장치 및 그의 제어 방법을 제공함에 있다.
추가적인 측면은 다음의 설명에서 부분적으로 제시될 것이고, 부분적으로는 설명으로부터 명백해지거나 제시된 실시예의 실행에 의해 학습될 수 있다.
다양한 실시 예에 따른 전자 장치는 복수의 샘플 프롬프트를 저장하는 메모리, 거대 언어 모델(Large Language Model)을 포함하는 서버와 통신하는 통신 인터페이스 및 사용자의 사용자 입력을 획득하고, 상기 저장된 복수의 샘플 프롬프트 중 상기 사용자 입력에 대응되는 샘플 프롬프트를 선택하고, 상기 사용자 입력에 대응되는 부가 정보를 획득하고, 상기 사용자 입력, 상기 샘플 프롬프트 및 상기 부가 정보에 기초하여 입력 프롬프트를 획득하고, 상기 통신 인터페이스를 이용하여, 상기 서버에 상기 입력 프롬프트를 전송하고, 상기 통신 인터페이스를 통해, 상기 서버로부터 상기 입력 프롬프트에 대응되는 응답 정보를 수신하면, 상기 응답 정보를 제공하는 적어도 하나의 프로세서를 포함한다.
상기 샘플 프롬프트는 상기 샘플 프롬프트를 나타내는 설명 정보, 예시 정보, 응답 구조 정보 중 적어도 하나를 포함할 수 있다.
상기 적어도 하나의 프로세서는 상기 사용자 입력에 대응되는 작업을 식별하고, 상기 식별된 작업에 기초하여 상기 샘플 프롬프트를 선택할 수 있다.
상기 서버는 제1 서버이고, 상기 적어도 하나의 프로세서는 상기 사용자 입력에 대응되는 부가 정보가 필요한지 여부를 결정하고, 상기 부가 정보가 이용되는 것으로 결정하면, 상기 통신 인터페이스를 이용하여, 제2 서버에 상기 부가 정보를 요청하는 신호를 전송하고, 상기 통신 인터페이스를 통해, 상기 제2 서버로부터 상기 부가 정보를 수신할 수 있다.
상기 적어도 하나의 프로세서는 상기 사용자 입력에 기초하여 완전 응답이 생성될 제1 확률을 획득하고, 상기 제1 확률이 임계 확률 미만이면, 상기 부가 정보를 획득할 수 있다.
상기 적어도 하나의 프로세서는 복수의 샘플 부가 정보 중 적어도 하나의 샘플 부가 정보 및 상기 사용자 입력에 기초하여 완전 응답이 생성될 제2 확률을 획득하고, 상기 제2 확률이 상기 임계 확률 이상이면, 상기 적어도 하나의 샘플 부가 정보에 기초하여 상기 부가 정보를 획득할 수 있다.
상기 적어도 하나의 프로세서는 상기 샘플 프롬프트에 상기 사용자 입력 및 상기 부가 정보를 결합하여 상기 입력 프롬프트를 획득할 수 있다.
상기 적어도 하나의 프로세서는 임계 시간 이내의 사용자 활동에 대응되는 사용자 로그를 획득하고, 상기 사용자 로그 및 상기 사용자 입력에 기초하여 상기 사용자 입력에 대응되는 샘플 프롬프트를 선택할 수 있다.
상기 적어도 하나의 프로세서는 임계 시간 이내의 사용자 활동에 대응되는 사용자 로그를 획득하고, 상기 사용자 로그 및 상기 사용자 입력에 기초하여 상기 부가 정보를 획득할 수 있다.
상기 사용자 입력은 오디오 정보, 텍스트 정보 또는 이미지 정보 중 적어도 하나를 포함할 수 있다.
다양한 실시 예에 따른 복수의 샘플 프롬프트를 저장하고 거대 언어 모델(Large Language Model)을 포함하는 서버와 통신하는 전자 장치의 제어 방법에 있어서, 사용자의 사용자 입력을 획득하는 단계, 상기 저장된 복수의 샘플 프롬프트 중 상기 사용자 입력에 대응되는 샘플 프롬프트를 선택하는 단계, 상기 사용자 입력에 대응되는 부가 정보를 획득하는 단계, 상기 사용자 입력, 상기 샘플 프롬프트 및 상기 부가 정보에 기초하여 입력 프롬프트를 획득하는 단계, 상기 서버에 상기 입력 프롬프트를 전송하는 단계 및 상기 서버로부터 상기 입력 프롬프트에 대응되는 응답 정보를 수신하면, 상기 응답 정보를 제공하는 단계를 포함한다.
상기 샘플 프롬프트는 상기 샘플 프롬프트를 나타내는 설명 정보, 예시 정보, 응답 구조 정보 중 적어도 하나를 포함할 수 있다.
상기 샘플 프롬프트를 선택하는 단계는 상기 사용자 입력에 대응되는 작업을 식별하고, 상기 식별된 작업에 기초하여 상기 샘플 프롬프트를 선택할 수 있다.
상기 서버는 제1 서버이고, 상기 부가 정보를 획득하는 단계는 상기 사용자 입력에 대응되는 부가 정보가 필요한지 여부를 결정하고, 상기 부가 정보가 이용되는 것으로 결정하면, 제2 서버에 상기 부가 정보를 요청하는 신호를 전송하고, 상기 제2 서버로부터 상기 부가 정보를 수신할 수 있다.
상기 부가 정보를 획득하는 단계는 상기 사용자 입력에 기초하여 완전 응답이 생성될 제1 확률을 획득하고, 상기 제1 확률이 임계 확률 미만이면, 상기 부가 정보를 획득할 수 있다.
본 발명의 특정 실시예의 상기 및 다른 측면, 특징 및 이점은 첨부된 도면과 함께 다음의 설명으로부터 보다 명백해질 것이다.
도 1은 전자 장치 및 적어도 하나의 외부 서버를 포함하는 시스템을 설명하기 위한 도면이다.
도 2는 다양한 실시 예에 따른 전자 장치의 구성을 나타내는 블록도이다.
도 3은 도 2의 전자 장치의 구체적인 구성을 나타내는 블록도이다.
도 4는 사용자 입력에 대응되는 응답 정보를 제공하는데 이용되는 복수의 모듈을 설명하기 위한 도면이다.
도 5는 다양한 실시 예에 따른 응답 정보 제공 과정을 설명하기 위한 도면이다.
도 6은 다양한 실시 예에 따른 응답 정보 제공 과정을 설명하기 위한 도면이다.
도 7은 다양한 실시 예에 따른 응답 정보 제공 과정을 설명하기 위한 도면이다.
도 8은 다양한 실시 예에 따른 응답 정보 제공 과정을 설명하기 위한 도면이다.
도 9는 복수의 샘플 프롬프트를 설명하기 위한 도면이다.
도 10은 샘플 프롬프트의 카테고리를 설명하기 위한 도면이다.
도 11은 다양한 실시 예에 따른 작업 판단 모듈의 동작을 설명하기 위한 도면이다.
도 12는 다양한 실시 예에 따른 부가 정보 결정 모듈의 동작을 설명하기 위한 도면이다.
도 13은 다양한 실시 예에 따른 부가 정보 수신 모듈의 동작을 설명하기 위한 도면이다.
도 14는 다양한 실시 예에 따른 부가 정보 결정 모듈의 동작을 설명하기 위한 도면이다.
도 15는 부가 정보를 획득하는 동작을 설명하기 위한 도면이다.
도 16은 다양한 실시 예에 따른 부가 정보 결정 모듈의 동작을 설명하기 위한 도면이다.
도 17은 응답 정보를 획득하는 동작을 설명하기 위한 흐름도이다.
도 18은 서버를 이용하여 응답 정보를 획득하는 동작을 설명하기 위한 흐름도이다.
도 19는 샘플 프롬프트가 별개의 그룹으로 구분된 실시 예를 설명하기 위한 흐름도이다.
도 20은 제2 서버를 이용하여 부가 정보를 획득하는 동작을 설명하기 위한 흐름도이다.
도 21은 완전 응답이 생성될 확률에 기초하여 입력 프롬프트를 획득하는 동작을 설명하기 위한 흐름도이다.
도 22는 완전 응답이 생성될 확률에 기초하여 부가 정보를 결정하는 설명하기 위한 흐름도이다.
도 23은 다양한 실시 예에 따른 완전 응답 판단 모듈의 동작을 설명하기 위한 도면이다.
도 24는 사용자 로그를 이용하여 입력 프롬프트를 획득하는 동작을 설명하기 위한 흐름도이다.
도 25는 부가 정보를 획득하는 동작을 설명하기 위한 흐름도이다.
도 26은 입력 프롬프트를 획득하는데 이용되는 정보를 표시하기 위한 UI(User Interface)를 설명하기 위한 도면이다.
도 27은 입력 프롬프트 및 응답 정보를 표시하기 위한 UI(User Interface)를 설명하기 위한 도면이다.
도 28은 다양한 실시 예에 따른 전자 장치의 제어 방법을 설명하기 위한 흐름도이다.
이하에서는 첨부 도면을 참조하여 본 개시를 상세히 설명한다.
본 개시의 실시 예에서 사용되는 용어는 본 개시에서의 기능을 고려하면서 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 개시의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 개시에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다.
본 명세서에서, "가진다," "가질 수 있다," "포함한다," 또는 "포함할 수 있다" 등의 표현은 해당 특징(예: 수치, 기능, 동작, 또는 부품 등의 구성요소)의 존재를 가리키며, 추가적인 특징의 존재를 배제하지 않는다.
A 또는/및 B 중 적어도 하나라는 표현은 "A" 또는 "B" 또는 "A 및 B" 중 어느 하나를 나타내는 것으로 이해되어야 한다.
본 명세서에서 사용된 "제1," "제2," "첫째," 또는 "둘째,"등의 표현들은 다양한 구성요소들을, 순서 및/또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다.
어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "(기능적으로 또는 통신적으로) 연결되어((operatively or communicatively) coupled with/to)" 있다거나 "접속되어(connected to)" 있다고 언급된 때에는, 어떤 구성요소가 다른 구성요소에 직접적으로 연결되거나, 다른 구성요소(예: 제3 구성요소)를 통하여 연결될 수 있다고 이해되어야 할 것이다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "구성되다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
본 개시에서 "모듈" 혹은 "부"는 적어도 하나의 기능이나 동작을 수행하며, 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다. 또한, 복수의 "모듈" 혹은 복수의 "부"는 특정한 하드웨어로 구현될 필요가 있는 "모듈" 혹은 "부"를 제외하고는 적어도 하나의 모듈로 일체화되어 적어도 하나의 프로세서(미도시)로 구현될 수 있다.
본 명세서에서, 사용자라는 용어는 전자 장치를 사용하는 사람 또는 전자 장치를 사용하는 장치(예: 인공지능 전자 장치)를 지칭할 수 있다.
이하 첨부된 도면들을 참조하여 본 개시의 일 실시 예를 보다 상세하게 설명한다.
도 1은 전자 장치(100) 및 적어도 하나의 외부 서버(제1 서버 200, 제2 서버 300)를 포함하는 시스템을 설명하기 위한 도면이다.
도 1을 참조하면, 시스템(1000)은 전자 장치(100), 제1 서버(200) 또는 제2 서버(300) 중 적어도 하나를 포함할 수 있다.
전자 장치(100)는 사용자 입력을 획득하는 기기일 수 있다. 전자 장치(100)는 마이크를 통해 사용자 음성을 획득하는 기기일 수 있다. 전자 장치(100)는 조작 인터페이스를 통해 사용자가 입력하는 텍스트 정보를 획득하는 기기일 수 있다. 전자 장치(100)는 카메라를 통해 이미지를 획득하는 기기일 수 있다. 전자 장치(100)는 사용자 입력에 대응되는 응답 정보를 제공할 수 있다. 예를 들어, 전자 장치(100)는 스마트폰, TV, 태블릿, 노트북 등일 수 있다.
또한, 전자 장치(100)는 사용자 입력을 제1 서버(200)에 전송할 수 있다. 그리고, 제1 서버(200)로부터 사용자 입력에 대응되는 응답 정보를 수신할 수 있다. 전자 장치(100)는 수신된 응답 정보를 사용자에게 제공할 수 있다.
제1 서버(200)는 응답 정보를 생성하는 서버일 수 있다. 제1 서버(200)는 거대 언어 이해 모델(Large Language Model)을 포함할 수 있다. 제1 서버(200)는 거대 언어 이해 모델을 이용하여 전자 장치(100)에서 전송한 사용자 입력에 대응되는 응답 정보를 생성할 수 있다. 제1 서버(200)는 생성된 응답 정보를 전자 장치(100)에 전송할 수 있다.
제2 서버(300)는 사용자 입력에 대응되는 응답 정보를 생성하는데 필요한 부가 정보를 제공하는 서버일 수 있다. 응답 정보 생성에 필요한 추가 정보는, 예를 들어, 응답 정보에 사용되는 정보, 응답 정보 생성에 유용한 정보, 응답 정보에 사용된다고 판단되는 정보, 응답 정보 생성에 유용하다고 판단되는 등일 수 있다. 전자 장치(100)는 제2 서버(300)에 부가 정보를 요청할 수 있고, 제2 서버(300)를 통해 부가 정보를 수신할 수 있다. 제2 서버(300)는 데이터베이스 서버, 검색 엔진, 계산기 어플리케이션, 이미지 처리 어플리케이션 등일 수 있다.
도 2는 다양한 실시 예에 따른 전자 장치(100)의 구성을 나타내는 블록도이다.
도 2를 참조하면, 전자 장치(100)는 메모리(110), 통신 인터페이스(120) 또는 적어도 하나의 프로세서(130) 중 적어도 하나를 포함할 수 있다.
메모리(110)는 복수의 샘플 프롬프트를 저장할 수 있다.
통신 인터페이스(120)는 거대 언어 모델(Large Language Model)을 포함하는 제1 서버(200)와 통신할 수 있다.
적어도 하나의 프로세서(130)는 사용자 입력을 획득하고, 저장된 복수의 샘플 프롬프트 중 사용자 입력에 대응되는 샘플 프롬프트를 선택(또는 식별)하고, 사용자 입력에 대응되는 부가 정보를 획득하고, 사용자 입력, 샘플 프롬프트 및 부가 정보에 기초하여 입력 프롬프트를 획득하고, 통신 인터페이스(120)를 통해, 제1 서버(200)에 입력 프롬프트를 전송하고, 통신 인터페이스(120)를 통해, 제1 서버(200)로부터 입력 프롬프트에 대응되는 응답 정보를 수신하면, 응답 정보를 제공하는 적어도 하나의 프로세서(130)를 포함할 수 있다.
실시예들에 따라, 사용자 입력은 오디오 정보, 텍스트 정보 또는 이미지 정보 중 적어도 하나를 포함할 수 있다.
사용자 입력은 오디오 정보를 포함할 수 있다. 오디오 정보는 오디오 데이터(또는 오디오 신호)를 포함할 수 있다. 적어도 하나의 프로세서(130)는 오디오 정보를 포함하는 사용자 입력을 획득할 수 있다. 적어도 하나의 프로세서(130)는 음성 인식 기능을 통해 오디오 데이터를 텍스트 정보로 변환할 수 있다. 사용자 입력에 오디오 정보가 포함되는 실시 예는 도 14에서 기재한다.
다양한 실시 예에 따라, 음성 인식 기능이 외부 서버에서 수행될 수 있다. 적어도 하나의 프로세서(130)는 오디오 데이터를 외부 서버에 전송하고, 외부 서버로부터 오디오 데이터에 대응되는 텍스트 정보를 수신할 수 있다.
사용자 입력은 텍스트 정보를 포함할 수 있다. 텍스트 정보는 문자 정보를 포함할 수 있다.
사용자 입력은 이미지 정보를 포함할 수 있다. 이미지 정보는 이미지 데이터(또는 이미지 신호)를 포함할 수 있다. 적어도 하나의 프로세서(130)는 이미지 정보에 포함된 오브젝트를 식별할 수 있다. 그리고, 사용자 입력에 대응되는 응답 정보는 이미지 정보에 포함된 오브젝트에 기초하여 획득될 수 있다. 사용자 입력에 이미지 정보가 포함되는 실시 예는 도 8, 도 14, 도 15에서 기재한다.
적어도 하나의 프로세서(130)는 메모리(110)에 저장된 복수의 샘플 프롬프트 중 사용자 입력에 대응되는 하나의 샘플 프롬프트를 선택할 수 있다.
실시예들에 따라, 샘플 프롬프트는 샘플 프롬프트를 나타내는 설명 정보, 예시 정보, 응답 구조 정보 중 적어도 하나를 포함할 수 있다.
설명 정보는 샘플 프롬프트가 어떤 작업(또는 분야)에 해당하는 사용자 입력을 처리하기 위한 것인지를 나타내는 텍스트를 포함할 수 있다.
예시 정보는 임의의 사용자 입력과 임의의 사용자 입력에 대응되는 응답 정보를 포함할 수 있다. 예시 정보는 샘플 입력 및 샘플 응답을 포함할 수 있다.
응답 구조 정보는 응답 정보가 표시되는 형식에 대한 정보를 포함할 수 있다. 예를 들어, 날씨 샘플 프롬프트는 응답이 '1. 오늘 날씨: , 2. 오늘 온도: '로 생성되기 위한 구조 정보(또는 형식 구조)를 포함할 수 있다. 적어도 하나의 프로세서(130)는 응답 구조 정보에 기초하여 날씨에 대한 응답을 '1. 오늘 날씨: 맑음, 2. 오늘 온도: 20도'와 같이 획득할 수 있다.
샘플 프롬프트는 거대 언어 모델(Large Language Model)에 입력되는 입력 데이터의 샘플(또는 견본)일 수 있다. 또한, 샘플 프롬프트는 입력 데이터의 기본이 되는 양식 데이터, 스타일 데이터, 형태 데이터 또는 구조 데이터를 의미할 수 있다.
거대 언어 모델은 다양한 작업에서 범용적으로 활용되는 언어 모델일 수 있다. 거대 언어 모델은 사용자에게 적합한 응답 정보를 제공하기 위해 사용자 입력 이외에 다양한 형태의 정보를 이용할 수 있다. 거대 언어 모델은 하나의 입력 데이터 단위인 프롬프트를 통해 출력 데이터를 생성할 수 있다.
샘플 프롬프트는 응답 정보를 제공하는데 이용되는 입력 데이터일 수 있다. 샘플 프롬프트는 응답 정보를 생성하는데 이용되는 다양한 정보를 포함할 수 있다.
샘플 프롬프트는 응답 정보를 획득하기 위해 입력 데이터로 이용되는 정보일 수 있다. 샘플 프롬프트는 샘플 프롬프트를 나타내는 설명 정보, 응답 정보와 관련된 샘플 데이터 중 적어도 하나를 포함할 수 있다. 샘플 데이터는 응답 정보에 포함된 복수의 세부 정보의 구조를 나타내는 데이터일 수 있다.
샘플 프롬프트는 복수의 정보를 포함하는 하나의 데이터 그룹을 의미할 수 있다. 따라서, 샘플 프롬프트는 샘플 그룹 또는 입력 그룹으로 기재될 수 있다. 또한, 샘플 프롬프트는 응답 정보의 형태를 제공할 수 있다. 따라서, 샘플 프롬프트는 응답 형식 정보 또는 응답 구조 정보로 기재될 수 있다. 샘플 프롬프트와 관련된 실시 예는 도 9 내지 도 10에서 기재한다.
적어도 하나의 프로세서(130)는 사용자 입력에 대응되는 부가 정보를 획득할 수 있다. 적어도 하나의 프로세서(130)는 사용자에게 활용도가 큰 응답 정보를 제공하기 위해 사용자 입력 이외에 부가 정보를 추가로 획득할 수 있다.
다양한 실시 예에 따라, 부가 정보는 전자 장치(100)에서 획득될 수 있다. 적어도 하나의 프로세서(130)는 사용자 입력에 포함된 텍스트 정보를 추출하고, 추출된 텍스트 정보에 기초하여 텍스트 정보와 관련성이 있는 부가 정보를 획득할 수 있다.
다양한 실시 예에 따라, 부가 정보는 제1 서버(200)에서 획득될 수 있다. 적어도 하나의 프로세서(130)는 부가 정보를 요청하는 신호를 제1 서버(200)에 전송할 수 있다. 부가 정보를 요청하는 신호는 사용자 입력을 포함할 수 있다. 따라서, 제1 서버(200)는 전자 장치(100)로부터 수신된 사용자 입력에 기초하여 부가 정보를 획득할 수 있다. 그리고, 제1 서버(200)는 부가 정보를 전자 장치(100)에 전송할 수 있다.
다양한 실시 예에 따라, 적어도 하나의 프로세서(130)는 부가 정보를 획득하지 않고 샘플 프롬프트 및 사용자 입력에 기초하여 입력 프롬프트를 생성할 수 있다.
적어도 하나의 프로세서(130)는 사용자 입력, 샘플 프롬프트 또는 부가 정보 중 적어도 하나에 기초하여 입력 프롬프트를 획득(또는 생성)할 수 있다. 입력 프롬프트는 거대 언어 모델에 입력되는 입력 데이터일 수 있다. 입력 프롬프트를 생성하는 다양한 실시 예는 도 5 내지 도 8에서 기재한다.
거대 언어 모델은 제1 서버(200)에 포함될 수 있다. 따라서, 적어도 하나의 프로세서(130)는 생성된 입력 프롬프트를 제1 서버(200)에 전송할 수 있다. 그리고, 제1 서버(200)는 적어도 하나의 프로세서(130)로부터 수신한 입력 프롬프트에 기초하여 응답 정보를 생성할 수 있다. 제1 서버(200)는 생성된 응답 정보를 전자 장치(100)에 전송할 수 있다.
적어도 하나의 프로세서(130)는 제1 서버(200)로부터 응답 정보를 수신할 수 있다. 그리고, 적어도 하나의 프로세서(130)는 응답 정보를 사용자에게 제공할 수 있다. 다양한 실시 예에 따라, 전자 장치(100)는 디스플레이(140)를 통해 응답 정보를 표시할 수 있다. 다양한 실시 예에 따라, 전자 장치(100)는 스피커(170)를 통해 응답 정보를 출력할 수 있다.
실시예들에 따라, 적어도 하나의 프로세서(130)는 사용자 입력에 대응되는 작업을 식별하고, 식별된 작업에 기초하여 복수의 샘플 프롬프트 중 사용자 입력에 대응되는 샘플 프롬프트를 식별할 수 있다.
적어도 하나의 프로세서(130)는 샘플 프롬프트를 선택하기 위해 사용자 입력이 어느 분야의 작업에 해당하는지 판단할 수 있다. 적어도 하나의 프로세서(130)는 메모리(110)에 저장된 복수의 작업 중 사용자 입력에 대응되는 작업을 선택할 수 있다. 이와 관련된 구체적인 설명은 도 11에서 기재한다.
실시예들에 따라, 적어도 하나의 프로세서(130)는 사용자 입력에 대응되는 부가 정보가 필요한지 여부를 결정(또는 식별)하고, 부가 정보가 이용되는 것으로 결정하면, 통신 인터페이스(120)를 통해, 제2 서버(300)에 부가 정보를 요청하는 신호를 전송하고, 통신 인터페이스(120)를 통해, 제2 서버(300)로부터 부가 정보를 수신할 수 있다.
적어도 하나의 프로세서(130)는 사용자 입력만으로 응답 정보가 생성될 수 있는지 여부를 판단할 수 있다. 적어도 하나의 프로세서(130)는 완전 응답 판단 모듈(2300)을 통해 사용자 입력에 대응되는 완전 응답이 생성될 수 있는지 여부를 판단할 수 있다. 완전한 응답 결정 모듈(2300)은 도 23에서 기재한다.
사용자 입력만으로 완전 응답이 생성될 수 없으면, 적어도 하나의 프로세서(130)는 부가 정보가 필요하다고 판단할 수 있다. 그리고, 적어도 하나의 프로세서(130)는 부가 정보를 제2 서버(300)에 요청할 수 있다. 적어도 하나의 프로세서(130)는 부가 정보를 요청하는 제어 신호를 제2 서버(300)에 전송할 수 있다. 전송된 제어 신호에는 사용자 입력이 포함될 수 있다.
제2 서버(300)는 전자 장치(100)로부터 수신한 제어 신호에 기초하여 부가 정보를 획득할 수 있다. 그리고, 제2 서버(300)는 획득된 부가 정보를 다시 전자 장치(100)에 전송할 수 있다.
적어도 하나의 프로세서(130)는 제2 서버(300)로부터 부가 정보를 수신할 수 있다. 그리고, 적어도 하나의 프로세서(130)는 수신된 부가 정보, 샘플 프롬프트 및 사용자 입력에 기초하여 입력 프롬프트를 생성할 수 있다.
실시예들에 따라, 적어도 하나의 프로세서(130)는 사용자 입력에 기초하여 완전 응답이 생성될 제1 확률을 획득하고, 제1 확률이 임계 확률 미만이면, 부가 정보를 획득할 수 있다.
적어도 하나의 프로세서(130)는 사용자 입력으로 완전 응답이 생성될 확률(또는 가능성)을 획득할 수 있다. 완전 응답은 입력 데이터(사용자 입력)에 포함된 정보에 기초하여 완전한 형태 내지 완전한 정보성을 갖는 응답을 나타낼 수 있다.
적어도 하나의 프로세서(130)는 완전 응답 생성 모듈을 통해 완전 응답이 생성될 확률을 획득할 수 있다. 적어도 하나의 프로세서(130)는 입력 데이터를 완전 응답 생성 모듈에 입력할 수 있다. 그리고, 완전 응답 생성 모듈은 입력 데이터에 기초하여 완전 응답이 생성될 확률을 출력 데이터로써 출력할 수 있다.
예를 들어, '지금 몇시야?'에 대한 사용자 입력이 수신되면, 적어도 하나의 프로세서(130)는 사용자 입력('지금 몇시야?')에 대한 응답 정보가 생성될 수 있는지 판단할 수 있다. 전자 장치(100)가 현재 시간에 대한 정보를 저장하고 있다면, 적어도 하나의 프로세서(130)는 완전 응답이 생성될 수 있다고 판단할 수 있다. 적어도 하나의 프로세서(130)는 완전 응답을 생성할 확률값이 80% 이상이라고 판단할 수 있다. 하지만, 전자 장치(100)가 현재 시간에 대한 정보를 저장하고 있지 않다면, 적어도 하나의 프로세서(130)는 완전 응답이 생성될 수 없다고 판단할 수 있다. 적어도 하나의 프로세서(130)는 완전 응답을 생성할 확률값이 10% 미만이라고 판단할 수 있다.
완전 응답 생성 모듈에 입력되는 입력 데이터가 사용자 입력인 경우, 출력 데이터인 확률값을 제1 확률값으로 기재할 수 있다.
완전 응답 생성 모듈에 입력되는 입력 데이터가 사용자 입력 및 샘플 부가 정보인 경우, 출력 데이터인 확률값을 제2 확률값으로 기재할 수 있다.
적어도 하나의 프로세서(130)는 우선적으로 사용자 입력만을 입력 데이터로 하여 제1 확률값을 획득할 수 있다. 그리고, 적어도 하나의 프로세서(130)는 제1 확률값이 임계 확률값 미만인지 여부를 식별할 수 있다.
제1 확률값이 임계 확률값 이상이면, 적어도 하나의 프로세서(130)는 사용자 입력만으로 완전 응답을 생성할 수 있다고 판단할 수 있다. 적어도 하나의 프로세서(130)는 사용자 입력에 기초하여 응답 정보를 생성할 수 있다. 적어도 하나의 프로세서(130)는 생성된 응답 정보를 사용자에게 제공할 수 있다.
제1 확률값이 임계 확률값 미만이면, 적어도 하나의 프로세서(130)는 사용자 입력만으로 완전 응답을 생성할 수 없다고 판단할 수 있다. 제1 확률값이 임계 확률값 미만이면, 적어도 하나의 프로세서(130)는 사용자 입력만으로 사용자에게 응답 정보를 제공할 수 없다고 판단할 수 있다. 적어도 하나의 프로세서(130)는 사용자 입력 이외에 부가 정보가 필요하다고 판단할 수 있다. 예를 들어, 적어도 하나의 프로세서(130)는 사용자 입력 외에 추가 정보를 이용할 것으로 판단할 수 있다.
적어도 하나의 프로세서(130)는 사용자 입력 이외에 어떤 부가 정보가 필요한지 식별할 수 있다.
실시예들에 따라, 적어도 하나의 프로세서(130)는 복수의 샘플 부가 정보 중 적어도 하나의 샘플 부가 정보 및 사용자 입력에 기초하여 완전 응답이 생성될 제2 확률을 획득하고, 제2 확률이 임계 확률 이상이면, 적어도 하나의 샘플 부가 정보에 기초하여 부가 정보를 식별할 수 있다.
전자 장치(100)는 메모리(110)에 복수의 샘플 부가 정보를 저장하고 있을 수 있다. 샘플 부가 정보는 사용자 입력과 함께 완전 응답의 생성 확률을 획득하는데 이용되는 입력 데이터일 수 있다. 샘플 부가 정보는 테스트 정보, 테스트 부가 정보, 더미 정보 또는 더미 부가 정보로 기재될 수 있다. 샘플 부가 정보는 응답 정보를 생성하는데 이용되는 정보가 아니며, 샘플 부가 정보는 단순히 완전 응답이 생성될 확률값을 획득하는데 이용되는 정보일 수 있다. 적어도 하나의 프로세서(130)는 다양한 샘플 부가 정보 각각을 사용자 입력과 함께 완전 응답 생성 모듈에 입력하여 확률값을 획득할 수 있다.
다양한 샘플 부가 정보 중 어떤 샘플 부가 정보를 먼저 사용자 입력과 함께 완전 응답 생성 모듈에 입력할 것인지 문제될 수 있다. 적어도 하나의 프로세서(130)는 복수의 샘플 부가 정보 각각과 사용자 입력과의 관련도를 계산할 수 있다. 그리고, 적어도 하나의 프로세서(130)는 관련도가 높은 순서로 샘플 부가 정보를 선택할 수 있다. 그리고, 적어도 하나의 프로세서(130)는 선택된 샘플 부가 정보와 사용자 입력을 완전 응답 생성 모듈에 입력할 수 있다.
예를 들어, '지금 몇시야?'에 대한 사용자 입력이 수신되었으나 전자 장치(100)가 현재 시간에 대한 정보를 저장하고 있지 않음을 가정한다. 완전 응답 생성 모듈은 제1 확률값이 5% 라고 판단할 수 있다. 그리고, 적어도 하나의 프로세서(130)는 부가 정보가 필요하다고 판단할 수 있다.
예를 들어, 적어도 하나의 프로세서(130)는 샘플 부가 정보인 시간 정보(임의의 시간 정보, 과거의 시간 정보)와 사용자 입력을 포함하는 입력 데이터를 획득할 수 있다. 그리고, 적어도 하나의 프로세서(130)는 완전 응답 생성 모듈에 샘플 부가 정보(임의의 시간 정보) 및 사용자 입력('지금 몇시야?')을 입력 데이터로써 입력할 수 있다. 완전 응답 생성 모듈은 제2 확률값이 90% 인 것으로 판단할 수 있다. 적어도 하나의 프로세서(130)는 사용자 입력 이외에 시간 정보가 추가적으로 필요하다고 판단할 수 있다.
예를 들어, 적어도 하나의 프로세서(130)는 시간 정보를 부가 정보로써 획득할 수 있다. 적어도 하나의 프로세서(130)는 샘플 부가 정보가 아닌 현재 시점의 시간 정보를 부가 정보로써 획득할 수 있다. 그리고, 적어도 하나의 프로세서(130)는 부가 정보(현재 시점의 시간 정보) 및 사용자 입력에 기초하여 응답 정보를 생성할 수 있다.
다양한 실시 예에 따라 제1 확률값과 비교되는 임계 확률과 제2 확률값과 비교되는 임계 확률이 동일할 수 있다.
다양한 실시 예에 따라, 제1 확률값과 비교되는 임계 확률과 제2 확률값과 비교되는 임계 확률이 상이할 수 있다. 이때 각각의 임계 확률을 제1 임계 확률(또는 제1 임계 확률값) 및 제2 임계 확률(또는 제 임계 확률 값)로 기재할 수 있다. 사용자 입력 이외에 샘플 부가 정보를 추가 이용하여 제2 확률값을 계산하는 경우 더 높은 수준의 완전 응답을 요구할 수 있다. 따라서, 제1 임계 확률보다 제2 임계 확률이 더 큰 값일 수 있다.
제1 확률값 및 제2 확률값에 대한 구체적인 설명은 도 21 내지 도 23에서 기재한다.
실시예들에 따라, 적어도 하나의 프로세서(130)는 샘플 프롬프트에 사용자 입력 및 부가 정보를 결합하여 입력 프롬프트를 획득할 수 있다.
샘플 프롬프트는 언어 모델에 입력되는 양식 데이터일 수 있다. 샘플 프롬프트는 사용자 입력 및 부가 정보의 저장 위치 정보를 포함할 수 있다. 적어도 하나의 프로세서(130)는 샘플 프롬프트에 포함된 저장 위치 정보에 기초하여 사용자 입력 및 부가 정보를 샘플 프롬프트에 저장할 수 있다. 저장 동작 후, 적어도 하나의 프로세서(130)는 사용자 입력 및 부가 정보를 포함된 샘플 프롬프트를 획득할 수 있다. 이와 관련된 구체적인 설명은 도 5 내지 도 8에 기재한다.
실시예들에 따라, 적어도 하나의 프로세서(130)는 임계 시간 이내의 사용자 로그를 획득하고, 사용자 로그 및 사용자 입력에 기초하여 사용자 입력에 대응되는 샘플 프롬프트를 식별할 수 있다.
사용자 로그는 전자 장치(100)에서 입력된 사용자 입력, 사용자 입력에 따라 제공된 컨텐츠 정보(오디오, 이미지, 텍스트 등), 사용자 입력에 따라 실행된 명령어 정보 또는 사용자 입력에 따라 실행된 어플리케이션 정보 중 적어도 하나를 포함할 수 있다. 사용자 로그는 로그 정보로 기재될 수 있다.
적어도 하나의 프로세서(130)는 사용자 로그 및 사용자 입력에 기초하여 복수의 샘플 프롬프트 중 하나의 샘플 프롬프트를 선택할 수 있다. 적어도 하나의 프로세서(130)는 사용자 로그 및 사용자 입력에 기초하여 관련성이 가장 높은 샘플 프롬프트를 선택(또는 식별)할 수 있다.
실시예들에 따라, 적어도 하나의 프로세서(130)는 임계 시간 이내의 사용자 로그를 획득하고, 사용자 로그 및 사용자 입력에 기초하여 부가 정보를 획득할 수 있다.
적어도 하나의 프로세서(130)는 사용자 로그 및 사용자 입력을 이용하여 응답 정보를 생성하는데 이용되는 부가 정보를 획득할 수 있다. 부가 정보가 제2 서버(300)에서 생성되는 경우, 적어도 하나의 프로세서(130)는 사용자 로그 및 사용자 입력을 제2 서버(300)에 전송할 수 있다.
제2 서버(300)는 수신된 사용자 로그 및 사용자 입력에 기초하여 부가 정보를 생성할 수 있다. 제2 서버(300)는 생성된 부가 정보를 전자 장치(100)에 전송할 수 있다.
적어도 하나의 프로세서(130)는 제2 서버(300)로부터 수신한 부가 정보, 샘플 프롬프트 및 사용자 입력에 기초하여 입력 프롬프트를 생성할 수 있다.
사용자 로그와 관련된 설명은 도 11 및 도 24에서 기재한다.
다양한 실시 예에 따른 전자 장치(100)는 거대 언어 이해 모델에 입력되는 입력 데이터를 획득할 수 있다. 입력 데이터는 사용자 입력 이외에 다양한 정보를 추가로 포함할 수 있다. 입력 데이터는 샘플 프롬프트의 정보(설명 정보, 예시 정보, 답변 형식 정보), 사용자 입력 및 부가 정보를 포함하는 입력 프롬프트일 수 있다. 사용자 입력 이외에 다양한 정보가 입력 데이터에 포함되므로, 응답 정보의 완성도가 높아질 수 있다. 따라서, 전자 장치(100)는 사용자에게 높은 수준의 응답 서비스를 제공할 수 있다.
다양한 실시 예에 따라, 전자 장치(100)는 사용자 입력 이외에 다양한 정보를 추가적으로 고려하여 응답 정보를 획득할 수 있다. 따라서, 사용자가 완전 응답을 생성하는데 부족한 데이터를 입력하였더라도, 전자 장치(100)는 샘플 프롬프트 또는 부가 정보를 추가적으로 고려하여 응답 정보를 생성할 수 있다. 따라서, 응답 정보의 정보성이 높아지거나 사용자의 만족도가 높아질 수 있다. 또한, 응답 정보를 생성하는데 이용되는 언어 모델이 특정 카테고리에 특화되어 있다고 하더라도, 샘플 프롬프트 내지 부가 정보를 추가적으로 고려하여 높은 수준의 응답 정보를 사용자에게 제공할 수 있다.
실시예들에 따라, 이상에서는 전자 장치(100)를 구성하는 간단한 구성에 대해서만 도시하고 설명하였지만, 구현 시에는 다양한 구성이 추가로 구비될 수 있다. 이에 대해서는 도 3을 참조하여 이하에서 설명한다.
도 3은 도 2의 전자 장치(100)의 구체적인 구성을 나타내는 블록도이다.
도 3을 참조하면, 전자 장치(100)는 메모리(110), 통신 인터페이스(120), 적어도 하나의 프로세서(130), 디스플레이(140), 조작 인터페이스(150), 입출력 인터페이스(160), 스피커(170) 또는 마이크(180) 중 적어도 하나를 포함할 수 있다. 앞서 설명한 것과 동일한 동작에 대해서는 중복 설명은 생략한다.
본 명세서의 다양한 실시 예들에 따른 전자 장치(100)는, 예를 들면, 스마트폰, 태블릿 PC, 이동 전화기, 데스크탑 PC, 랩탑 PC, PDA, PMP(portable multimedia player) 중 적어도 하나를 포함할 수 있다. 어떤 실시 예들에서, 전자 장치(100)는, 예를 들면, 텔레비전, DVD(digital video disk) 플레이어, 미디어 박스(예: 삼성 HomeSyncTM, 애플TVTM, 또는 구글 TVTM)중 적어도 하나를 포함할 수 있다.
메모리(110)는 프로세서(130)에 포함된 롬(ROM)(예를 들어, EEPROM(electrically erasable programmable read-only memory)), 램(RAM) 등의 내부 메모리로 구현되거나, 프로세서(130)와 별도의 메모리로 구현될 수도 있다. 이 경우, 메모리(110)는 데이터 저장 용도에 따라 전자 장치(100)에 임베디드된 메모리 형태로 구현되거나, 전자 장치(100)에 탈부착이 가능한 메모리 형태로 구현될 수도 있다. 예를 들어, 전자 장치(100)의 구동을 위한 데이터의 경우 전자 장치(100)에 임베디드된 메모리에 저장되고, 전자 장치(100)의 확장 기능을 위한 데이터의 경우 전자 장치(100)에 탈부착이 가능한 메모리에 저장될 수 있다.
실시예들에 따라, 전자 장치(100)에 임베디드된 메모리의 경우 휘발성 메모리(예: DRAM(dynamic RAM), SRAM(static RAM), 또는 SDRAM(synchronous dynamic RAM) 등), 비휘발성 메모리(non-volatile Memory)(예: OTPROM(one time programmable ROM), PROM(programmable ROM), EPROM(erasable and programmable ROM), EEPROM(electrically erasable and programmable ROM), mask ROM, flash ROM, 플래시 메모리(예: NAND flash 또는 NOR flash 등), 하드 드라이브, 또는 솔리드 스테이트 드라이브(solid state drive(SSD)) 중 적어도 하나로 구현되고, 전자 장치(100)에 탈부착이 가능한 메모리의 경우 메모리 카드(예를 들어, CF(compact flash), SD(secure digital), Micro-SD(micro secure digital), Mini-SD(mini secure digital), xD(extreme digital), MMC(multi-media card) 등), USB 포트에 연결 가능한 외부 메모리(예를 들어, USB 메모리) 등과 같은 형태로 구현될 수 있다.
통신 인터페이스(120)는 다양한 유형의 통신 방식에 따라 다양한 유형의 외부 장치와 통신을 수행하는 구성이다. 통신 인터페이스(120)는 무선 통신 모듈 또는 유선 통신 모듈을 포함할 수 있다. 여기서, 각 통신 모듈은 적어도 하나의 하드웨어 칩 형태로 구현될 수 있다.
무선 통신 모듈은 무선으로 외부 장치와 통신하는 모듈일 수 있다. 예를 들어, 무선 통신 모듈은 와이파이 모듈, 블루투스 모듈, 적외선 통신 모듈 또는 기타 통신 모듈 중 적어도 하나의 모듈을 포함할 수 있다.
와이파이 모듈, 블루투스 모듈은 각각 와이파이 방식, 블루투스 방식으로 통신을 수행할 수 있다. 와이파이 모듈이나 블루투스 모듈을 이용하는 경우에는 SSID(service set identifier) 및 세션 키 등과 같은 각종 연결 정보를 먼저 송수신하여, 이를 이용하여 통신 연결한 후 각종 정보들을 송수신할 수 있다.
적외선 통신 모듈은 가시 광선과 밀리미터파 사이에 있는 적외선을 이용하여 근거리에 무선으로 데이터를 전송하는 적외선 통신(IrDA, infrared Data Association)기술에 따라 통신을 수행한다.
기타 통신 모듈은 상술한 통신 방식 이외에 지그비(zigbee), 3G(3rd Generation), 3GPP(3rd Generation Partnership Project), LTE(Long Term Evolution), LTE-A(LTE Advanced), 4G(4th Generation), 5G(5th Generation)등과 같은 다양한 무선 통신 규격에 따라 통신을 수행하는 적어도 하나의 통신 칩을 포함할 수 있다.
유선 통신 모듈은 유선으로 외부 장치와 통신하는 모듈일 수 있다. 예를 들어, 유선 통신 모듈은 LAN(Local Area Network) 모듈, 이더넷 모듈, 페어 케이블, 동축 케이블, 광섬유 케이블 또는 UWB(Ultra Wide-Band) 모듈 중 적어도 하나를 포함할 수 있다.
프로세서(130)는 디지털 신호를 처리하는 디지털 시그널 프로세서(digital signal processor(DSP), 마이크로 프로세서(microprocessor), TCON(Time controller)으로 구현될 수 있다. 다만, 이에 한정되는 것은 아니며, 중앙처리장치(central processing unit(CPU)), MCU(Micro Controller Unit), MPU(micro processing unit), 컨트롤러(controller), 어플리케이션 프로세서(application processor(AP)), GPU(graphics-processing unit) 또는 커뮤니케이션 프로세서(communication processor(CP)), ARM(advanced reduced instruction set computer (RISC) machines) 프로세서 중 하나 또는 그 이상을 포함하거나, 해당 용어로 정의될 수 있다. 또한, 프로세서(130)는 프로세싱 알고리즘이 내장된 SoC(System on Chip), LSI(large scale integration)로 구현될 수도 있고, FPGA(Field Programmable gate array) 형태로 구현될 수도 있다. 또한, 프로세서(130)는 메모리에 저장된 컴퓨터 실행가능 명령어(computer executable instructions)를 실행함으로써 다양한 기능을 수행할 수 있다.
디스플레이(140)는 LCD(Liquid Crystal Display), OLED(Organic Light Emitting Diodes) 디스플레이, PDP(Plasma Display Panel) 등과 같은 다양한 형태의 디스플레이로 구현될 수 있다. 디스플레이(140)내에는 a-si TFT(amorphous silicon thin film transistor), LTPS(low temperature poly silicon) TFT, OTFT(organic TFT) 등과 같은 형태로 구현될 수 있는 구동 회로, 백라이트 유닛 등도 함께 포함될 수 있다. 실시예들에 따라, 디스플레이(140)는 터치 센서와 결합된 터치 스크린, 플렉시블 디스플레이(flexible display), 3차원 디스플레이(3D display, three-dimensional dispaly) 등으로 구현될 수 있다. 또한, 본 개시의 일 실시 예에 따른, 디스플레이(140)는 이미지를을 출력하는 디스플레이 패널뿐만 아니라, 디스플레이 패널을 하우징하는 베젤을 포함할 수 있다. 특히, 본 개시의 일 실시 예에 따른, 베젤은 사용자 인터렉션을 감지하기 위한 터치 센서(미도시)를 포함할 수 있다.
다양한 실시 예에 따라, 전자 장치(100)는 디스플레이(140)를 포함할 수 있다. 구체적으로, 전자 장치(100)는 획득된 이미지 또는 컨텐츠를 디스플레이(140)에 직접 표시할 수 있다.
다양한 실시 예에 따라, 전자 장치(100)는 디스플레이(140)를 포함하지 않을 수 있다. 전자 장치(100)는 외부 디스플레이 장치와 연결될 수 있으며, 전자 장치(100)에 저장된 이미지 또는 컨텐츠를 외부 디스플레이 장치에 전송할 수 있다. 구체적으로, 전자 장치(100)는 외부 디스플레이 장치에서 이미지 또는 컨텐츠가 표시되도록 제어하기 위한 제어 신호와 함께 이미지 또는 컨텐츠를 외부 디스플레이 장치에 전송할 수 있다. 여기서, 외부 디스플레이 장치는 전자 장치(100)와 통신 인터페이스(120) 또는 입출력 인터페이스(160)를 통해 연결될 수 있다. 예를 들어, 전자 장치(100)는 STB(Set Top Box)와 같이 디스플레이를 포함하지 않을 수 있다. 또한, 전자 장치(100)는 텍스트 정보 등의 간단한 정보만을 표시할 수 있는 소형 디스플레이만을 포함할 수 있다. 여기서, 전자 장치(100)는 이미지 또는 컨텐츠를 통신 인터페이스(120)를 통해 유선 또는 무선으로 외부 디스플레이 장치에 전송하거나 입출력 인터페이스(160)를 통해 외부 디스플레이 장치에 전송할 수 있다.
조작 인터페이스(150)는 버튼, 터치 패드, 마우스 및 키보드와 같은 장치로 구현되거나, 상술한 디스플레이 기능 및 조작 입력 기능도 함께 수행 가능한 터치 스크린으로도 구현될 수 있다. 여기서, 버튼은 전자 장치(100)의 본체 외관의 전면부나 측면부, 배면부 등의 임의의 영역에 형성된 기계적 버튼, 터치 패드, 휠 등과 같은 다양한 유형의 버튼이 될 수 있다.
입출력 인터페이스(160)는 HDMI(High Definition Multimedia Interface), MHL (Mobile High-Definition Link), USB (Universal Serial Bus), DP(Display Port), 썬더볼트(Thunderbolt), VGA(Video Graphics Array)포트, RGB 포트, D-SUB(D-subminiature), DVI(Digital Visual Interface) 중 어느 하나의 인터페이스일 수 있다. 입출력 인터페이스(160)는 오디오 및 비디오 신호 중 적어도 하나를 입출력 할 수 있다. 구현 예에 따라, 입출력 인터페이스(160)는 오디오 신호만을 입출력하는 포트와 비디오 신호만을 입출력하는 포트를 별개의 포트로 포함하거나, 오디오 신호 및 비디오 신호를 모두 입출력하는 하나의 포트로 구현될 수 있다. 실시예들에 따라, 전자 장치(100)는 입출력 인터페이스(160)를 통해 오디오 및 비디오 신호 중 적어도 하나를 외부 장치(예를 들어, 외부 디스플레이 장치 또는 외부 스피커)에 전송할 수 있다. 구체적으로, 입출력 인터페이스(160)에 포함된 출력 포트가 외부 장치와 연결될 수 있으며, 전자 장치(100)는 오디오 및 비디오 신호 중 적어도 하나를 출력 포트를 통해 외부 장치에 전송할 수 있다.
여기서, 입출력 인터페이스(160)는 통신 인터페이스와 연결될 수 있다. 입출력 인터페이스(160)는 외부 기기로부터 수신되는 정보를 통신 인터페이스에 전송하거나 통신 인터페이스를 통해 수신되는 정보를 외부 기기에 전송할 수 있다.
스피커(170)는 각종 오디오 데이터뿐만 아니라 각종 알림 음이나 음성 메시지 등을 출력하는 구성요소일 수 있다.
마이크(180)는 사용자 음성이나 기타 소리를 입력 받아 오디오 데이터로 변환하기 위한 구성이다. 마이크(180)는 활성화 상태에서 사용자의 음성을 수신할 수 있다. 예를 들어, 마이크(180)는 전자 장치(100)의 상측이나 전면 방향, 측면 방향 등에 일체형으로 형성될 수 있다. 마이크(180)는 아날로그 형태의 사용자 음성을 수집하는 마이크, 수집된 사용자 음성을 증폭하는 앰프 회로, 증폭된 사용자 음성을 샘플링하여 디지털 신호로 변환하는 A/D 변환회로, 변환된 디지털 신호로부터 노이즈 성분을 제거하는 필터 회로 등과 같은 다양한 구성을 포함할 수 있다.
도 4는 사용자 입력에 대응되는 응답 정보를 제공하는데 이용되는 복수의 모듈을 설명하기 위한 도면이다.
도 4를 참조하면, 전자 장치(100)는 사용자 입력 처리 모듈(111), 사용자 로그 저장 모듈(112), 샘플 프롬프트 결정 모듈(113), 부가 정보 획득 모듈(114), 입력 프롬프트 생성 모듈(115) 또는 응답 제공 모듈(116) 중 적어도 하나를 포함할 수 있다.
사용자 입력 처리 모듈(111)은 사용자 입력을 수신하는 모듈일 수 있다. 사용자 입력 처리 모듈(111)은 오디오 처리 모듈(111-1), 텍스트 처리 모듈(111-2) 또는 이미지 처리 모듈(111-3) 중 적어도 하나를 포함할 수 있다.
오디오 처리 모듈(111-1)은 마이크를 통해 획득한 오디오 데이터를 처리하는 모듈일 수 있다. 오디오 데이터는 오디오 아날로그 신호 또는 오디오 디지털 신호일 수 있다. 실시 예들에 따라, 오디오 처리 모듈(111-1)은 음성 처리 모듈이거나 이를 포함할 수 있다. 오디오 처리 모듈(111-1)은 음성 인식기를 이용하여 오디오 신호를 텍스트 정보로 변환할 수 있다. 오디오 처리 모듈(111-1)은 수신된 오디오 데이터가 음성 데이터인지 여부를 판단할 수 있다. 오디오 데이터가 음성 데이터이면, 오디오 처리 모듈(111-1)은 음성 인식기를 이용하여 음성 데이터를 텍스트 데이터(또는 텍스트 정보)로 변환할 수 있다.
사용자 입력 처리 모듈(111)은 오디오 처리 모듈(111-1)을 이용하여 변환된 텍스트 정보를 사용자 입력으로 결정할 수 있다.
텍스트 처리 모듈(111-2)은 키보드를 통해 획득한 타이핑 데이터를 처리하는 모듈일 수 있다. 텍스트 처리 모듈(111-2)은 사용자에 의해 입력된 텍스트 정보를 획득하는 모듈일 수 있다. 사용자 입력 처리 모듈(111)은 텍스트 처리 모듈(111-2)을 이용하여 텍스트 정보를 사용자 입력으로 결정할 수 있다.
이미지 처리 모듈(111-3)은 카메라를 통해 획득한 이미지 데이터를 처리하는 모듈일 수 있다. 이미지 처리 모듈(111-3)은 타 모듈에서 이용될 수 있는 형태로 이미지 데이터를 변환(또는 변경)하는 모듈일 수 있다.
다양한 실시 예에 따라, 이미지 처리 모듈(111-3)은 OCR(Optical Character Reader) 기능을 이용하여 이미지 데이터에서 특정 정보를 추출할 수 있다. 사용자 입력 처리 모듈(111)은 이미지 처리 모듈(111-3)을 이용하여 추출된 정보를 사용자 입력으로 결정할 수 있다.
다양한 실시 예에 따라, 이미지 처리 모듈(111-3)은 이미지 데이터의 해상도를 변경할 수 있다. 사용자 입력 처리 모듈(111)은 이미지 처리 모듈(111-3)을 이용하여 해상도가 변경된 이미지 데이터를 사용자 입력으로 결정할 수 있다.
다양한 실시 예에 따라, 이미지 처리 모듈(111-3)은 변환(또는 변경) 동작 없이 이미지 데이터 자체를 사용자 입력으로 결정할 수 있다.
사용자 입력 처리 모듈(111)은 수신된 사용자 입력을 샘플 프롬프트 결정 모듈(113), 부가 정보 획득 모듈(114) 또는 입력 프롬프트 생성 모듈(115) 중 적어도 하나의 모듈에 사용자 입력을 전송할 수 있다.
사용자 로그 저장 모듈(112)은 사용자의 행동과 관련된 사용자 로그가 저장되는 모듈일 수 있다. 사용자 로그는 전자 장치(100)에서 입력된 사용자 입력, 사용자 입력에 따라 제공된 컨텐츠 정보(오디오, 이미지, 텍스트 등), 사용자 입력에 따라 실행된 명령어 정보 또는 사용자 입력에 따라 실행된 어플리케이션 정보 중 적어도 하나를 포함할 수 있다.
사용자 로그 저장 모듈(112)은 사용자 로그를 샘플 프롬프트 결정 모듈(113) 또는 부가 정보 획득 모듈(114) 중 적어도 하나의 모듈에 전송할 수 있다.
다양한 실시 예에 따라, 샘플 프롬프트 결정 모듈(113) 또는 부가 정보 획득 모듈(114) 중 적어도 하나의 모듈은 사용자 로그를 이용할 수 있다.
다양한 실시 예에 따라, 샘플 프롬프트 결정 모듈(113) 및 부가 정보 획득 모듈(114)은 사용자 로그를 이용하지 않을 수 있다.
샘플 프롬프트 결정 모듈(113)은 복수의 샘플 프롬프트 중 사용자 입력에 대응되는 샘플 프롬프트를 결정하는 모듈일 수 있다. 샘플 프롬프트 결정 모듈(113)은 복수의 샘플 프롬프트 저장 모듈(113-1), 작업 판단 모듈(113-2), 샘플 프롬프트 선택 모듈(113-3) 중 적어도 하나를 포함할 수 있다.
샘플 프롬프트는 샘플 프롬프트를 나타내는 설명 정보, 응답 정보와 관련된 샘플 데이터 중 적어도 하나를 포함할 수 있다. 샘플 데이터는 응답 정보에 포함된 복수의 세부 정보의 구조를 나타내는 데이터일 수 있다.
복수의 샘플 프롬프트 저장 모듈(113-1)은 기 설정된 샘플 프롬프트를 저장할 수 있다. 다양한 실시 예에 따라, 복수의 샘플 프롬프트 각각은 기 설정된 작업에 대응될 수 있다. 예를 들어, 제1 작업에 대응되는 제1 샘플 프롬프트, 제2 작업에 대응되는 제2 샘플 프롬프트가 복수의 샘플 프롬프트 저장 모듈(113-1)에 저장될 수 있다. 다양한 실시 예에 따라, 제1 작업(또는 제2 작업)에 대응되는 샘플 프롬프트가 복수 개일 수 있다.
작업(태스크) 판단 모듈(113-2)은 사용자 입력이 어느 작업에 관련된 것인지를 판단하는 모듈일 수 있다. 예를 들어, 작업은 대화 작업, 질의 작업, 기기 제어 작업 등일 수 있다. 또한, 작업(태스크) 판단 모듈(113-2)은 사용자 로그 및 사용자 입력을 함께 고려하여 사용자 입력에 대응되는 작업을 식별할 수 있다.
샘플 프롬프트 선택 모듈(113-3)은 복수의 샘플 프롬프트 중 사용자 입력에 대응되는 샘플 프롬프트를 선택하는 모듈일 수 있다. 작업 판단 모듈(113-2)이 사용자 입력에 대응되는 작업을 식별하면, 샘플 프롬프트 선택 모듈(113-3)이 식별된 작업에 대응되는 샘플 프롬프트를 선택할 수 있다.
샘플 프롬프트 결정 모듈(113)은 사용자 입력 처리 모듈(111)로부터 수신된 사용자 입력 또는 사용자 로그 저장 모듈(112)로부터 수신한 사용자 로그 중 적어도 하나에 기초하여 샘플 프롬프트를 선택(또는 식별)할 수 있다. 샘플 프롬프트 결정 모듈(113)은 선택된 샘플 프롬프트를 입력 프롬프트 생성 모듈(115)에 전송할 수 있다.
부가 정보 획득 모듈(114)은 사용자 입력에 대응되는 부가 정보를 획득하는 모듈일 수 있다. 부가 정보 획득 모듈(114)은 부가 정보 결정 모듈(114-1), 부가 정보 수신 모듈(114-2) 또는 부가 정보 분석 모듈(114-3) 중 적어도 하나를 포함할 수 있다.
부가 정보 결정 모듈(114-1)은 사용자 입력에 대응되는 부가 정보가 필요한지 여부를 판단하고, 어떤 부가 정보가 필요한지 여부를 판단하는 모듈일 수 있다. 부가 정보 결정 모듈(114-1)은 사용자 입력만으로 완전 응답이 생성될 수 있는지 여부를 판단할 수 있다.
사용자 입력만으로 완전 응답이 생성될 수 있다고 판단되면, 부가 정보 결정 모듈(114-1)은 부가 정보가 필요하지 않다고 식별할 수 있다. 사용자 입력만으로 완전 응답이 생성될 수 없다고 판단되면, 부가 정보 결정 모듈(114-1)은 부가 정보가 필요하다고 식별할 수 있다.
부가 정보가 필요하다고 식별되면, 부가 정보 결정 모듈(114-1)은 완전 응답을 생성하기 위해 어떤 부가 정보가 필요한지 여부를 결정할 수 있다. 부가 정보 결정 모듈(114-1)은 결정된(또는 필요한) 부가 정보를 부가 정보 수신 모듈(114-2)에 요청할 수 있다.
부가 정보 수신 모듈(114-2)은 부가 정보 결정 모듈(114-1)로부터 요청된 부가 정보를 획득하는 모듈일 수 있다.
다양한 실시 예에 따라, 부가 정보 수신 모듈(114-2)은 전자 장치(100) 내부의 정보를 이용하여 부가 정보를 획득할 수 있다.
다양한 실시 예에 따라, 부가 정보 수신 모듈(114-2)은 제2 서버(300)를 통해 부가 정보를 획득할 수 있다. 부가 정보 수신 모듈(114-2)은 결정된(또는 필요한) 부가 정보를 제2 서버(300)에 요청할 수 있다. 제2 서버(300)는 부가 정보 획득 모듈(114)을 이용하여 부가 정보 수신 모듈(114-2)이 요청한 부가 정보를 획득(또는 생성)할 수 있다. 그리고, 제2 서버(300)는 부가 정보를 부가 정보 수신 모듈(114-2)에 전송할 수 있다.
부가 정보 획득 모듈(114)은 부가 정보 수신 모듈을 통해 부가 정보를 획득할 수 있다.
부가 정보 분석 모듈(114-3)은 획득된(또는 수신된) 부가 정보가 입력 프롬프트에 포함되기에 적합한 데이터인지 여부를 판단하는 모듈일 수 있다. 획득된 부가 정보가 입력 프롬프트에 포함되기에 적합하지 않은 형태일 수 있다. 또한, 획득된 부가 정보가 응답 정보를 생성하는데 이용되기 어려운 뎁스(또는 레벨)일 수 있다. 따라서, 부가 정보 분석 모듈(114-3)은 수신된 부가 정보를 분석할 수 있다. 분석의 결과로써 부가 정보 분석 모듈은 가공된(또는 구체화된) 부가 정보를 획득할 수 있다.
부가 정보 획득 모듈(114)은 부가 정보(또는 가공된 부가 정보)를 입력 프롬프트 생성 모듈(115)에 전송할 수 있다.
입력 프롬프트 생성 모듈(115)은 사용자 입력, 샘플 프롬프트 또는 부가 정보 중 적어도 하나에 기초하여 입력 프롬프트를 생성하는 모듈일 수 있다. 입력 프롬프트 생성 모듈(115)는 샘플 프롬프트에 사용자 입력을 반영하는 모듈(115-1) 또는 샘플 프롬프트에 부가 정보를 반영하는 모듈(115-2) 중 적어도 하나를 포함할 수 있다.
샘플 프롬프트에 사용자 입력을 반영하는 모듈(115-1)은 샘플 프롬프트 결정 모듈(113)이 선택한 특정 샘플 프롬프트에 사용자 입력(또는 사용자 입력에 대응되는 정보)를 추가하는 모듈일 수 있다.
샘플 프롬프트에 부가 정보를 반영하는 모듈(115-2)은 샘플 프롬프트 결정 모듈(113)이 선택한 특정 샘플 프롬프트에 부가 정보(또는 가공된 부가 정보)를 추가하는 모듈일 수 있다.
입력 프롬프트 생성 모듈(115)은 샘플 프롬프트 결정 모듈(113)이 선택한 특정 샘플 프롬프트에 사용자 입력 또는 부가 정보 중 적어도 하나를 포함하는 입력 프롬프트를 생성(또는 획득)할 수 있다. 그리고, 입력 프롬프트 생성 모듈(115)은 생성된 입력 프롬프트를 제1 서버(200)에 전송할 수 있다.
제1 서버(200)는 입력 데이터에 대응되는 응답 정보를 생성하는 서버일 수 있다. 제1 서버(200)는 거대 언어 모델(211)을 포함할 수 있다. 제1 서버(200)는 거대 언어 모델을 이용하여 입력 프롬프트에 대응되는 응답 정보를 생성할 수 있다. 제1 서버(200)는 생성된 응답 정보를 응답 제공 모듈(116)에 전송할 수 있다.
응답 제공 모듈(116)은 제1 서버(200)로부터 응답 정보를 수신할 수 있다. 응답 제공 모듈(116)은 수신된 응답 정보를 사용자에게 제공할 수 있다. 응답 제공 모듈(116)은 UI(User Interface) 생성 모듈(116-1)을 포함할 수 있다. 응답 제공 모듈(116)은 수신된 응답 정보에 기초하여 응답 UI를 생성할 수 있다. 그리고, 응답 제공 모듈(116)은 생성된 응답 UI를 사용자에게 제공할 수 있다. 응답 UI는 오디오, 텍스트 또는 이미지 중 적어도 하나를 포함할 수 있다.
도 5는 다양한 실시 예에 따른 응답 정보 제공 과정을 설명하기 위한 도면이다.
도 5를 참조하면, 사용자 입력 처리 모듈(111)은 사용자 입력('날씨 어때?')을 수신할 수 있다. 사용자 입력은 텍스트 정보일 수 있다. 사용자 입력이 음성 정보이면, 사용자 입력 처리 모듈(111)은 음성 정보를 텍스트 정보로 변환할 수 있다.
사용자 입력 처리 모듈(111)은 사용자 입력('날씨 어때?')을 샘플 프롬프트 결정 모듈(113), 부가 정보 획득 모듈(114) 또는 입력 프롬프트 생성 모듈(115) 중 적어도 하나의 모듈에 전송할 수 있다.
사용자 로그 저장 모듈(112)은 사용자 로그('내일 서울 강남역에서 만나자')를 획득할 수 있다. 그리고, 사용자 로그 저장 모듈(112)은 사용자 로그('내일 서울 강남역에서 만나자')를 샘플 프롬프트 결정 모듈(113), 부가 정보 획득 모듈(114) 또는 입력 프롬프트 생성 모듈(115) 중 적어도 하나의 모듈에 전송할 수 있다.
샘플 프롬프트 결정 모듈(113)은 사용자 입력 처리 모듈(111)로부터 사용자 입력('날씨 어때?')을 수신할 수 있다. 또한, 샘플 프롬프트 결정 모듈(113)은 사용자 로그 저장 모듈(112)로부터 사용자 로그('내일 서울 강남역에서 만나자')를 수신할 수 있다. 샘플 프롬프트 결정 모듈(113)은 사용자 입력('날씨 어때?') 또는 사용자 로그('내일 서울 강남역에서 만나자') 중 적어도 하나에 기초하여 샘플 프롬프트를 결정할 수 있다. 샘플 프롬프트 결정 모듈(113)은 결정된 샘플 프롬프트를 입력 프롬프트 생성 모듈(115)에 전송할 수 있다.
부가 정보 획득 모듈(114)은 사용자 입력 처리 모듈(111)로부터 사용자 입력('날씨 어때?')을 수신할 수 있다. 또한, 부가 정보 획득 모듈(114)은 사용자 로그 저장 모듈(112)로부터 사용자 로그('내일 서울 강남역에서 만나자')를 수신할 수 있다. 부가 정보 획득 모듈(114)은 사용자 입력('날씨 어때?') 또는 사용자 로그('내일 서울 강남역에서 만나자') 중 적어도 하나에 기초하여 부가 정보를 획득할 수 있다.
부가 정보 획득 모듈(114)은 사용자 입력에 대응되는 응답 정보를 생성하는데 필요한 부가 정보를 결정할 수 있다. 부가 정보 획득 모듈(114)은 필요한 부가 정보(내일의 날씨 데이터)를 결정할 수 있다. 또한, 부가 정보 획득 모듈(114)은 제2 서버(300)에 필요한 부가 정보를 요청할 수 있다. 구체적으로, 부가 정보 획득 모듈(114)은 사용자 로그 저장 모듈(112)에 부가 정보를 요청하는 제어 신호를 전송할 수 있다. 제어 신호는 부가 정보를 요청하기 위한 정보, 필요한 부가 정보(내일의 날씨 데이터)가 포함할 수 있다.
제2 서버(300)는 부가 정보 획득 모듈(114)로부터 수신한 부가 정보 요청에 기초하여 날씨 데이터를 획득할 수 있다. 제2 서버(300)는 수신된 제어 신호에서 필요한 부가 정보(내일의 날씨 데이터)를 획득할 수 있다. 그리고, 제2 서버(300)는 필요한 부가 정보(내일의 날씨 데이터)에 대응되는 정보(오늘의 날씨 데이터, 내일의 날씨 데이터)를 부가 정보 획득 모듈(114)에 전송할 수 있다. 다양한 실시 예에 따라, 제2 서버(300)는 부가 정보 획득 모듈(114)에서 요청한 정보만 전송할 수 있다. 하지만, 제2 서버(300)에서는 요청된 특정 데이터만 선택적으로 전송하는 모듈이 존재하지 않을 수 있다. 제2 서버(300)는 날씨와 관련된 전체 데이터를 모두 부가 정보 획득 모듈(114)에 전송할 수 있다.
부가 정보 획득 모듈(114)은 제2 서버(300)로부터 정보(오늘의 날씨 데이터, 내일의 날씨 데이터)를 수신할 수 있다. 수신된 정보(오늘의 날씨 데이터, 내일의 날씨 데이터)는 획득된 부가 정보로 기재될 수 있다.
부가 정보 획득 모듈(114)은 획득된 부가 정보를 분석하여 필요한 부가 정보에 대응되는 정보를 획득할 수 있다. 부가 정보 획득 모듈(114)이 최종적으로 획득하는 정보는 분석된 부가 정보로 기재될 수 있다.
부가 정보 획득 모듈(114)은 제2 서버(300)에서 전송한 데이터를 분석하여 최종 부가 정보(내일의 날씨 데이터)를 획득할 수 있다. 그리고, 부가 정보 획득 모듈(114)은 최종 부가 정보(내일의 날씨 데이터)를 입력 프롬프트 생성 모듈(115)에 전송할 수 있다.
입력 프롬프트 생성 모듈(115)은 사용자 입력 처리 모듈(111)로부터 사용자 입력('날씨 어때?')을 수신을 수신할 수 있다. 또한, 입력 프롬프트 생성 모듈(115)은 사용자 로그 저장 모듈(112)로부터 사용자 로그('내일 서울 강남역에서 만나자')를 수신할 수 있다. 또한, 입력 프롬프트 생성 모듈(115)은 샘플 프롬프트 결정 모듈(113)로부터 결정된 샘플 프롬프트를 수신할 수 있다. 또한, 입력 프롬프트 생성 모듈(115)은 부가 정보 획득 모듈(114)로부터 최종 부가 정보(내일의 날씨 데이터)를 수신할 수 있다. 입력 프롬프트 생성 모듈(115)은 사용자 입력('날씨 어때?'), 사용자 로그('내일 서울 강남역에서 만나자'), 결정된 샘플 프롬프트 또는 부가 정보(내일의 날씨 데이터) 중 적어도 하나에 기초하여 입력 프롬프트를 생성할 수 있다. 입력 프롬프트 생성 모듈(115)은 생성된 입력 프롬프트를 제1 서버(200)에 전송할 수 있다.
제1 서버(200)는 입력 프롬프트 생성 모듈(115)로부터 입력 프롬프트를 수신할 수 있다. 그리고, 제1 서버(200)는 수신된 입력 프롬프트에 기초하여 응답 정보를 생성할 수 있다. 제1 서버(200)는 생성된 응답 정보를 응답 제공 모듈(116)에 전송할 수 있다. 제1 서버(200)는 입력 프롬프트로부터 사용자 입력('날씨 어때?'), 사용자 로그('내일 서울 강남역에서 만나자'), 결정된 샘플 프롬프트 또는 부가 정보(내일의 날씨 데이터) 중 적어도 하나를 획득할 수 있다. 그리고, 제1 서버(200)는 사용자 입력('날씨 어때?'), 사용자 로그('내일 서울 강남역에서 만나자'), 결정된 샘플 프롬프트 또는 부가 정보(내일의 날씨 데이터) 중 적어도 하나에 기초하여 응답 정보를 생성할 수 있다.
응답 제공 모듈(116)은 제1 서버(200)로부터 응답 정보를 수신할 수 있다. 응답 제공 모듈(116)은 제1 서버(200)로부터 수신한 응답 정보를 사용자에게 제공할 수 있다.
도 6은 다양한 실시 예에 따른 응답 정보 제공 과정을 설명하기 위한 도면이다.
도 6을 참조하면, 사용자 입력 처리 모듈(111)은 사용자 입력('500 사토시가 얼마야?')을 수신할 수 있다. 사용자 입력은 텍스트 정보일 수 있다. 사용자 입력이 음성 정보이면, 사용자 입력 처리 모듈(111)은 음성 정보를 텍스트 정보로 변환할 수 있다.
사용자 입력 처리 모듈(111)은 사용자 입력('500 사토시가 얼마야?')을 샘플 프롬프트 결정 모듈(113), 부가 정보 획득 모듈(114) 또는 입력 프롬프트 생성 모듈(115) 중 적어도 하나의 모듈에 전송할 수 있다.
사용자 로그 저장 모듈(112)은 사용자 로그('비트코인 어플리케이션 실행')를 획득할 수 있다. 그리고, 사용자 로그 저장 모듈(112)은 사용자 로그('비트코인 어플리케이션 실행')를 샘플 프롬프트 결정 모듈(113), 부가 정보 획득 모듈(114) 또는 입력 프롬프트 생성 모듈(115) 중 적어도 하나의 모듈에 전송할 수 있다.
샘플 프롬프트 결정 모듈(113)은 사용자 입력 처리 모듈(111)로부터 사용자 입력('500 사토시가 얼마야?')을 수신할 수 있다. 또한, 샘플 프롬프트 결정 모듈(113)은 사용자 로그 저장 모듈(112)로부터 사용자 로그('비트코인 어플리케이션 실행')를 수신할 수 있다. 샘플 프롬프트 결정 모듈(113)은 사용자 입력('500 사토시가 얼마야?') 또는 사용자 로그('비트코인 어플리케이션 실행') 중 적어도 하나에 기초하여 샘플 프롬프트를 결정할 수 있다. 샘플 프롬프트 결정 모듈(113)은 결정된 샘플 프롬프트를 입력 프롬프트 생성 모듈(115)에 전송할 수 있다.
부가 정보 획득 모듈(114)은 사용자 입력 처리 모듈(111)로부터 사용자 입력('500 사토시가 얼마야?')을 수신할 수 있다. 또한, 부가 정보 획득 모듈(114)은 사용자 로그 저장 모듈(112)로부터 사용자 로그('비트코인 어플리케이션 실행')를 수신할 수 있다. 부가 정보 획득 모듈(114)은 사용자 입력('500 사토시가 얼마야?') 또는 사용자 로그('비트코인 어플리케이션 실행') 중 적어도 하나에 기초하여 부가 정보를 획득할 수 있다.
부가 정보 획득 모듈(114)은 사용자 입력에 대응되는 응답 정보를 생성하는데 필요한 부가 정보를 결정할 수 있다. 부가 정보 획득 모듈(114)은 필요한 부가 정보('1 비트코인의 가격' 및 '비트코인과 1사토시의 관계')를 결정할 수 있다. 또한, 부가 정보 획득 모듈(114)은 제2 서버(300)에 필요한 부가 정보를 요청할 수 있다. 구체적으로, 부가 정보 획득 모듈(114)은 사용자 로그 저장 모듈(112)에 부가 정보를 요청하는 제어 신호를 전송할 수 있다. 제어 신호는 부가 정보를 요청하기 위한 정보, 필요한 부가 정보('1 비트코인의 가격' 및 '비트코인과 1사토시의 관계')가 포함할 수 있다.
제2 서버(300)는 부가 정보 획득 모듈(114)로부터 수신한 부가 정보 요청에 기초하여 '1 비트코인의 가격' 및 '비트코인과 1사토시의 관계'를 획득할 수 있다. 제2 서버(300)는 수신된 제어 신호에서 필요한 부가 정보('1 비트코인의 가격' 및 '비트코인과 1사토시의 관계')를 획득할 수 있다. 그리고, 제2 서버(300)는 필요한 부가 정보('1 비트코인의 가격' 및 '비트코인과 1사토시의 관계')에 대응되는 정보('1BTC: 20000 $' 및 '1 사토시: 0.00000001 BTC')를 부가 정보 획득 모듈(114)에 전송할 수 있다. 부가 정보 획득 모듈(114)은 제2 서버(300)로부터 정보('1BTC: 20000 $' 및 '1 사토시: 0.00000001 BTC')를 수신할 수 있다. 수신된 정보('1BTC: 20000 $' 및 '1 사토시: 0.00000001 BTC')는 획득된 부가 정보 또는 최종 부가 정보로 기재될 수 있다.
다양한 실시 예에 따라, 부가 정보 획득 모듈(114)은 제2 서버(300)에서 전송한 데이터를 분석하여 최종 부가 정보('1BTC: 20000 $' 및 '1 사토시: 0.00000001 BTC')를 획득할 수 있다. 그리고, 부가 정보 획득 모듈(114)은 최종 부가 정보('1BTC: 20000 $' 및 '1 사토시: 0.00000001 BTC')를 입력 프롬프트 생성 모듈(115)에 전송할 수 있다. 예를 들어, 부가 정보 획득 모듈(114)은 제2 서버(300)로부터 비트코인 관련 웹페이지 정보를 수신할 수 있다. 그리고, 부가 정보 획득 모듈(114)은 수신된 웹페이지 정보를 분석하여 최종 부가 정보('1BTC: 20000 $' 및 '1 사토시: 0.00000001 BTC')를 획득할 수 있다.
입력 프롬프트 생성 모듈(115)은 사용자 입력 처리 모듈(111)로부터 사용자 입력('500 사토시가 얼마야?')을 수신을 수신할 수 있다. 또한, 입력 프롬프트 생성 모듈(115)은 사용자 로그 저장 모듈(112)로부터 사용자 로그('비트코인 어플리케이션 실행')를 수신할 수 있다. 또한, 입력 프롬프트 생성 모듈(115)은 샘플 프롬프트 결정 모듈(113)로부터 결정된 샘플 프롬프트를 수신할 수 있다. 또한, 입력 프롬프트 생성 모듈(115)은 부가 정보 획득 모듈(114)로부터 최종 부가 정보('1 비트코인의 가격' 및 '비트코인과 1사토시의 관계')를 수신할 수 있다. 입력 프롬프트 생성 모듈(115)은 사용자 입력('500 사토시가 얼마야?'), 사용자 로그('비트코인 어플리케이션 실행'), 결정된 샘플 프롬프트 또는 부가 정보('1 비트코인의 가격' 및 '비트코인과 1사토시의 관계') 중 적어도 하나에 기초하여 입력 프롬프트를 생성할 수 있다. 입력 프롬프트 생성 모듈(115)은 생성된 입력 프롬프트를 제1 서버(200)에 전송할 수 있다.
제1 서버(200)는 입력 프롬프트 생성 모듈(115)로부터 입력 프롬프트를 수신할 수 있다. 그리고, 제1 서버(200)는 수신된 입력 프롬프트에 기초하여 응답 정보를 생성할 수 있다. 제1 서버(200)는 생성된 응답 정보를 응답 제공 모듈(116)에 전송할 수 있다. 제1 서버(200)는 입력 프롬프트로부터 사용자 입력('500 사토시가 얼마야?'), 사용자 로그('비트코인 어플리케이션 실행'), 결정된 샘플 프롬프트 또는 부가 정보('1 비트코인의 가격' 및 '비트코인과 1사토시의 관계') 중 적어도 하나를 획득할 수 있다. 그리고, 제1 서버(200)는 사용자 입력('500 사토시가 얼마야?'), 사용자 로그('비트코인 어플리케이션 실행'), 결정된 샘플 프롬프트 또는 부가 정보('1 비트코인의 가격' 및 '비트코인과 1사토시의 관계') 중 적어도 하나에 기초하여 응답 정보를 생성할 수 있다.
응답 제공 모듈(116)은 제1 서버(200)로부터 응답 정보를 수신할 수 있다. 응답 제공 모듈(116)은 제1 서버(200)로부터 수신한 응답 정보를 사용자에게 제공할 수 있다.
도 7은 다양한 실시 예에 따른 응답 정보 제공 과정을 설명하기 위한 도면이다.
도 7을 참조하면, 사용자 입력 처리 모듈(111)은 사용자 입력('저녁 7시에 전원 켜줘')을 수신할 수 있다. 사용자 입력은 텍스트 정보일 수 있다. 사용자 입력이 음성 정보이면, 사용자 입력 처리 모듈(111)은 음성 정보를 텍스트 정보로 변환할 수 있다.
사용자 입력 처리 모듈(111)은 사용자 입력('저녁 7시에 전원 켜줘')을 샘플 프롬프트 결정 모듈(113), 부가 정보 획득 모듈(114) 또는 입력 프롬프트 생성 모듈(115) 중 적어도 하나의 모듈에 전송할 수 있다.
사용자 로그 저장 모듈(112)은 사용자 로그('요즘 집에 도착하면 너무 더워')를 획득할 수 있다. 그리고, 사용자 로그 저장 모듈(112)은 사용자 로그('요즘 집에 도착하면 너무 더워')를 샘플 프롬프트 결정 모듈(113), 부가 정보 획득 모듈(114) 또는 입력 프롬프트 생성 모듈(115) 중 적어도 하나의 모듈에 전송할 수 있다.
샘플 프롬프트 결정 모듈(113)은 사용자 입력 처리 모듈(111)로부터 사용자 입력('저녁 7시에 전원 켜줘')을 수신할 수 있다. 또한, 샘플 프롬프트 결정 모듈(113)은 사용자 로그 저장 모듈(112)로부터 사용자 로그('요즘 집에 도착하면 너무 더워')를 수신할 수 있다. 샘플 프롬프트 결정 모듈(113)은 사용자 입력('저녁 7시에 전원 켜줘') 또는 사용자 로그('요즘 집에 도착하면 너무 더워') 중 적어도 하나에 기초하여 샘플 프롬프트를 결정할 수 있다. 샘플 프롬프트 결정 모듈(113)은 결정된 샘플 프롬프트를 입력 프롬프트 생성 모듈(115)에 전송할 수 있다.
부가 정보 획득 모듈(114)은 사용자 입력 처리 모듈(111)로부터 사용자 입력('저녁 7시에 전원 켜줘')을 수신할 수 있다. 또한, 부가 정보 획득 모듈(114)은 사용자 로그 저장 모듈(112)로부터 사용자 로그('요즘 집에 도착하면 너무 더워')를 수신할 수 있다. 부가 정보 획득 모듈(114)은 사용자 입력('저녁 7시에 전원 켜줘') 또는 사용자 로그('요즘 집에 도착하면 너무 더워') 중 적어도 하나에 기초하여 부가 정보를 획득할 수 있다.
부가 정보 획득 모듈(114)은 사용자 입력에 대응되는 응답 정보를 생성하는데 필요한 부가 정보를 결정할 수 있다. 부가 정보 획득 모듈(114)은 필요한 부가 정보('연결 기기' 및 '제어 코드')를 결정할 수 있다. 또한, 부가 정보 획득 모듈(114)은 제2 서버(300)에 필요한 부가 정보를 요청할 수 있다. 구체적으로, 부가 정보 획득 모듈(114)은 사용자 로그 저장 모듈(112)에 부가 정보를 요청하는 제어 신호를 전송할 수 있다. 제어 신호는 부가 정보를 요청하기 위한 정보, 필요한 부가 정보('연결 기기' 및 '제어 코드')가 포함할 수 있다.
제2 서버(300)는 부가 정보 획득 모듈(114)로부터 수신한 부가 정보 요청에 기초하여 '연결 기기 리스트' 및 '제어 코드 리스트'를 획득할 수 있다. 제2 서버(300)는 수신된 제어 신호에서 필요한 부가 정보('연결 기기' 및 '제어 코드')를 획득할 수 있다. 그리고, 제2 서버(300)는 필요한 부가 정보('연결 기기' 및 '제어 코드')에 대응되는 정보('연결 기기 리스트' 및 '제어 코드 리스트')를 부가 정보 획득 모듈(114)에 전송할 수 있다. 부가 정보 획득 모듈(114)은 제2 서버(300)로부터 정보('연결 기기 리스트' 및 '제어 코드 리스트')를 수신할 수 있다. 수신된 정보('연결 기기 리스트' 및 '제어 코드 리스트')는 획득된 부가 정보 또는 최종 부가 정보로 기재될 수 있다.
다양한 실시 예에 따라, 부가 정보 획득 모듈(114)은 제2 서버(300)에서 전송한 데이터를 분석하여 최종 부가 정보('연결 기기 리스트' 및 '제어 코드 리스트')를 획득할 수 있다. 그리고, 부가 정보 획득 모듈(114)은 최종 부가 정보('연결 기기 리스트' 및 '제어 코드 리스트')를 입력 프롬프트 생성 모듈(115)에 전송할 수 있다. 예를 들어, 부가 정보 획득 모듈(114)은 제2 서버(300)로부터 관리 기기 정보를 수신할 수 있다. 그리고, 부가 정보 획득 모듈(114)은 수신된 관리 기기 정보를 분석하여 최종 부가 정보('연결 기기 리스트' 및 '제어 코드 리스트')를 획득할 수 있다.
입력 프롬프트 생성 모듈(115)은 사용자 입력 처리 모듈(111)로부터 사용자 입력('저녁 7시에 전원 켜줘')을 수신을 수신할 수 있다. 또한, 입력 프롬프트 생성 모듈(115)은 사용자 로그 저장 모듈(112)로부터 사용자 로그('요즘 집에 도착하면 너무 더워')를 수신할 수 있다. 또한, 입력 프롬프트 생성 모듈(115)은 샘플 프롬프트 결정 모듈(113)로부터 결정된 샘플 프롬프트를 수신할 수 있다. 또한, 입력 프롬프트 생성 모듈(115)은 부가 정보 획득 모듈(114)로부터 최종 부가 정보('연결 기기 리스트' 및 '제어 코드 리스트')를 수신할 수 있다. 입력 프롬프트 생성 모듈(115)은 사용자 입력('저녁 7시에 전원 켜줘'), 사용자 로그('요즘 집에 도착하면 너무 더워'), 결정된 샘플 프롬프트 또는 부가 정보('연결 기기 리스트' 및 '제어 코드 리스트') 중 적어도 하나에 기초하여 입력 프롬프트를 생성할 수 있다. 입력 프롬프트 생성 모듈(115)은 생성된 입력 프롬프트를 제1 서버(200)에 전송할 수 있다.
제1 서버(200)는 입력 프롬프트 생성 모듈(115)로부터 입력 프롬프트를 수신할 수 있다. 그리고, 제1 서버(200)는 수신된 입력 프롬프트에 기초하여 응답 정보를 생성할 수 있다. 제1 서버(200)는 생성된 응답 정보를 응답 제공 모듈(116)에 전송할 수 있다. 제1 서버(200)는 입력 프롬프트로부터 사용자 입력('저녁 7시에 전원 켜줘'), 사용자 로그('요즘 집에 도착하면 너무 더워'), 결정된 샘플 프롬프트 또는 부가 정보('연결 기기 리스트' 및 '제어 코드 리스트') 중 적어도 하나를 획득할 수 있다. 그리고, 제1 서버(200)는 사용자 입력('저녁 7시에 전원 켜줘'), 사용자 로그('요즘 집에 도착하면 너무 더워'), 결정된 샘플 프롬프트 또는 부가 정보('연결 기기 리스트' 및 '제어 코드 리스트') 중 적어도 하나에 기초하여 응답 정보('에어컨의 전원을 켜는 명령어 정보')를 생성할 수 있다.
응답 제공 모듈(116)은 제1 서버(200)로부터 응답 정보('에어컨의 전원을 켜는 명령어 정보')를 수신할 수 있다. 응답 제공 모듈(116)은 제1 서버(200)로부터 수신한 응답 정보('에어컨의 전원을 켜는 명령어 정보')를 사용자에게 제공할 수 있다. 다양한 실시 예에 따라, 응답 제공 모듈(116)은 사용자 입력에 대응되는 시점(저녁7시)에 에어컨의 전원을 켜는 예약 명령어를 실행할 수 있다.
도 8은 다양한 실시 예에 따른 응답 정보 제공 과정을 설명하기 위한 도면이다.
도 8을 참조하면, 사용자 입력 처리 모듈(111)은 사용자 입력('이것을 신고 등산할 수 있나?' 및 '이미지 데이터')을 수신할 수 있다. 사용자 입력은 텍스트 정보일 수 있다. 사용자 입력이 음성 정보이면, 사용자 입력 처리 모듈(111)은 음성 정보를 텍스트 정보로 변환할 수 있다. 또한, 사용자 입력은 이미지 데이터(구도 이미지)를 포함할 수 있다.
사용자 입력 처리 모듈(111)은 사용자 입력('이것을 신고 등산할 수 있나?' 및 '이미지 데이터')을 샘플 프롬프트 결정 모듈(113), 부가 정보 획득 모듈(114) 또는 입력 프롬프트 생성 모듈(115) 중 적어도 하나의 모듈에 전송할 수 있다.
사용자 로그 저장 모듈(112)은 사용자 로그('알프스 등산하러 가자')를 획득할 수 있다. 그리고, 사용자 로그 저장 모듈(112)은 사용자 로그('알프스 등산하러 가자')를 샘플 프롬프트 결정 모듈(113), 부가 정보 획득 모듈(114) 또는 입력 프롬프트 생성 모듈(115) 중 적어도 하나의 모듈에 전송할 수 있다.
샘플 프롬프트 결정 모듈(113)은 사용자 입력 처리 모듈(111)로부터 사용자 입력('이것을 신고 등산할 수 있나?' 및 '이미지 데이터')을 수신할 수 있다. 또한, 샘플 프롬프트 결정 모듈(113)은 사용자 로그 저장 모듈(112)로부터 사용자 로그('알프스 등산하러 가자')를 수신할 수 있다. 샘플 프롬프트 결정 모듈(113)은 사용자 입력('이것을 신고 등산할 수 있나?' 및 '이미지 데이터') 또는 사용자 로그('알프스 등산하러 가자') 중 적어도 하나에 기초하여 샘플 프롬프트를 결정할 수 있다. 샘플 프롬프트 결정 모듈(113)은 결정된 샘플 프롬프트를 입력 프롬프트 생성 모듈(115)에 전송할 수 있다.
부가 정보 획득 모듈(114)은 사용자 입력 처리 모듈(111)로부터 사용자 입력('이것을 신고 등산할 수 있나?' 및 '이미지 데이터')을 수신할 수 있다. 또한, 부가 정보 획득 모듈(114)은 사용자 로그 저장 모듈(112)로부터 사용자 로그('알프스 등산하러 가자')를 수신할 수 있다. 부가 정보 획득 모듈(114)은 사용자 입력('이것을 신고 등산할 수 있나?' 및 '이미지 데이터') 또는 사용자 로그('알프스 등산하러 가자') 중 적어도 하나에 기초하여 부가 정보를 획득할 수 있다.
부가 정보 획득 모듈(114)은 사용자 입력에 대응되는 응답 정보를 생성하는데 필요한 부가 정보를 결정할 수 있다. 부가 정보 획득 모듈(114)은 필요한 부가 정보('산' 및 '이미지 오브젝트')를 결정할 수 있다. 또한, 부가 정보 획득 모듈(114)은 제2 서버(300)에 필요한 부가 정보를 요청할 수 있다. 구체적으로, 부가 정보 획득 모듈(114)은 사용자 로그 저장 모듈(112)에 부가 정보를 요청하는 제어 신호를 전송할 수 있다. 제어 신호는 부가 정보를 요청하기 위한 정보, 필요한 부가 정보('산' 및 '이미지 오브젝트')가 포함할 수 있다.
제2 서버(300)는 부가 정보 획득 모듈(114)로부터 수신한 부가 정보 요청에 기초하여 이미지 분석 정보('하이힐', '검정', '거리', '여자')를 획득할 수 있다. 제2 서버(300)는 수신된 제어 신호에서 필요한 부가 정보('산' 및 '이미지 오브젝트')를 획득할 수 있다. 그리고, 제2 서버(300)는 필요한 부가 정보('산' 및 '이미지 오브젝트')에 대응되는 정보('하이힐', '검정', '거리', '여자')를 부가 정보 획득 모듈(114)에 전송할 수 있다. 부가 정보 획득 모듈(114)은 제2 서버(300)로부터 정보('하이힐', '검정', '거리', '여자')를 수신할 수 있다. 수신된 정보('하이힐', '검정', '거리', '여자')는 획득된 부가 정보로 기재될 수 있다.
다양한 실시 예에 따라, 부가 정보 획득 모듈(114)은 제2 서버(300)에서 전송한 데이터를 분석하여 최종 부가 정보('하이힐', '여자')를 획득할 수 있다. 그리고, 부가 정보 획득 모듈(114)은 최종 부가 정보('하이힐', '여자')를 입력 프롬프트 생성 모듈(115)에 전송할 수 있다. 부가 정보 획득 모듈(114)은 이미지에 포함된 복수의 오브젝트('하이힐', '검정', '거리', '여자') 중 사용자 입력 또는 사용자 로그 중 적어도 하나와 관련성이 있는 오브젝트('하이힐', '여자')를 선택할 수 있다. 부가 정보 획득 모듈(114)은 선택된 오브젝트('하이힐', '여자')를 최종 부가 정보로 결정할 수 있다.
입력 프롬프트 생성 모듈(115)은 사용자 입력 처리 모듈(111)로부터 사용자 입력('이것을 신고 등산할 수 있나?' 및 '이미지 데이터')을 수신을 수신할 수 있다. 또한, 입력 프롬프트 생성 모듈(115)은 사용자 로그 저장 모듈(112)로부터 사용자 로그('알프스 등산하러 가자')를 수신할 수 있다. 또한, 입력 프롬프트 생성 모듈(115)은 샘플 프롬프트 결정 모듈(113)로부터 결정된 샘플 프롬프트를 수신할 수 있다. 또한, 입력 프롬프트 생성 모듈(115)은 부가 정보 획득 모듈(114)로부터 최종 부가 정보('하이힐', '여자')를 수신할 수 있다. 입력 프롬프트 생성 모듈(115)은 사용자 입력('이것을 신고 등산할 수 있나?' 및 '이미지 데이터'), 사용자 로그('알프스 등산하러 가자'), 결정된 샘플 프롬프트 또는 부가 정보('하이힐', '여자') 중 적어도 하나에 기초하여 입력 프롬프트를 생성할 수 있다. 입력 프롬프트 생성 모듈(115)은 생성된 입력 프롬프트를 제1 서버(200)에 전송할 수 있다.
제1 서버(200)는 입력 프롬프트 생성 모듈(115)로부터 입력 프롬프트를 수신할 수 있다. 그리고, 제1 서버(200)는 수신된 입력 프롬프트에 기초하여 응답 정보를 생성할 수 있다. 제1 서버(200)는 생성된 응답 정보를 응답 제공 모듈(116)에 전송할 수 있다. 제1 서버(200)는 입력 프롬프트로부터 사용자 입력('이것을 신고 등산할 수 있나?' 및 '이미지 데이터'), 사용자 로그('알프스 등산하러 가자'), 결정된 샘플 프롬프트 또는 부가 정보('하이힐', '여자') 중 적어도 하나를 획득할 수 있다. 그리고, 제1 서버(200)는 사용자 입력('이것을 신고 등산할 수 있나?' 및 '이미지 데이터'), 사용자 로그('알프스 등산하러 가자'), 결정된 샘플 프롬프트 또는 부가 정보('하이힐', '여자') 중 적어도 하나에 기초하여 응답 정보('위험해요! 하이힐을 신고 갈 곳을 추천해드릴까요?')를 생성할 수 있다.
응답 제공 모듈(116)은 제1 서버(200)로부터 응답 정보('위험해요! 하이힐을 신고 갈 곳을 추천해드릴까요?')를 수신할 수 있다. 응답 제공 모듈(116)은 제1 서버(200)로부터 수신한 응답 정보('위험해요! 하이힐을 신고 갈 곳을 추천해드릴까요?')를 사용자에게 제공할 수 있다.
도 9는 복수의 샘플 프롬프트를 설명하기 위한 도면이다.
도 9의 샘플 프롬프트(910)는 날씨 프롬프트를 나타낸다. 날씨 프롬프트는 날씨와 관련된 사용자 입력이 수신되면 선택되는 샘플 프롬프트일 수 있다. 샘플 프롬프트(910)는 날씨, 온도, 주의사항에 대한 답변이 제공되도록 답변 구조 정보를 포함할 수 있다.
도 9의 샘플 프롬프트(920)는 질의 응답 프롬프트를 나타낸다. 질의 응답 프롬프트는 질문과 관련된 사용자 입력이 수신되면 선택되는 샘플 프롬프트일 수 있다. 샘플 프롬프트(920)는 질의 응답과 관련된 설명 정보 및 답변 구조 정보를 포함할 수 있다.
도 9의 샘플 프롬프트(930)는 제어 코드 프롬프트를 나타낸다. 제어 코드 프롬프트는 기기 제어와 관련된 사용자 입력이 수신되면 선택되는 샘플 프롬프트일 수 있다. 샘플 프롬프트(930)는 기기 제어와 관련된 설명 정보 및 답변 구조 정보를 포함할 수 있다.
도 9의 샘플 프롬프트(940)는 챗봇(chat-bot) 프롬프트를 나타낸다. 챗봇 프롬프트는 챗봇 기능과 관련된 사용자 입력이 수신되면 선택되는 샘플 프롬프트일 수 있다. 샘플 프롬프트(940)는 챗봇 서비스와 관련된 설명 정보 및 답변 구조 정보를 포함할 수 있다.
도 10은 샘플 프롬프트의 카테고리를 설명하기 위한 도면이다.
도 10의 표(1010)를 참조하면, 샘플 프롬프트는 하나의 카테고리에 복수의 샘플 프롬프트가 할당될 수 있다. 예를 들어, 샘플 프롬프트의 카테고리가 날씨, 질의 응답, 제어 코드, 챗봇 등이라고 가정한다.
다양한 실시 예에 따라, 하나의 카테고리에 하나의 샘플 프롬프트가 존재할 수 있다. 예를 들어, 질의 응답 카테고리에 #02의 샘플 프롬프트가 존재할 수 있다.
다양한 실시 예에 따라, 하나의 카테고리에 복수의 샘플 프롬프트가 존재할 수 있다. 예를 들어, 날씨 카테고리에 #01-1, #01-2, #01-3의 샘플 프롬프트가 존재할 수 있다. 각각의 샘플 프롬프트는 답변 구조 등이 상이할 수 있다. #01-1의 샘플 프롬프트는 날씨만을 응답 정보로써 제공할 수 있다. #01-2의 샘플 프롬프트는 날씨 및 온도를 응답 정보로써 제공할 수 있다. #01-3의 샘플 프롬프트는 날씨, 온도 및 습도를 응답 정보로써 제공할 수 있다.
다른 예로, #04-1, #04-2, #04-3의 샘플 프롬프트가 챗봇 카테고리에 존재할 수 있다. 각 샘플 프롬프트는 다른 응답 구조를 가질 수 있다. #01-1의 샘플 프롬프트는 응답 정보로 텍스트만 제공할 수 있다. #04-2의 샘플 프롬프트는 응답 정보로 텍스트 및 이모티콘을 제공할 수 있다. #04-3의 샘플 프롬프트는 제어 텍스트, 이모지 및 다른 애플리케이션을 응답 정보로 제공할 수 있다.
도 11은 다양한 실시 예에 따른 작업 판단 모듈의 동작을 설명하기 위한 도면이다.
도 11의 실시 예(1110)를 참조하면, 사용자 입력(오늘 진짜 덥다)이 수신되면, 작업(태스크) 판단 모듈(113-2)은 사용자 입력이 챗봇 작업에 대응된다고 결정할 수 있다. 샘플 프롬프트 결정 모듈(113)은 복수의 샘플 프롬프트 중 챗봇 프롬프트를 선택할 수 있다.
도 11의 실시 예(1120)를 참조하면, 사용자 입력(지금 몇도야?) 및 사용자 로그(오늘 진짜 덥다, 정말 그렇네요)가 수신되면, 작업(태스크) 판단 모듈(113-2)은 사용자 입력이 질의 응답 작업에 대응된다고 결정할 수 있다. 샘플 프롬프트 결정 모듈(113)은 복수의 샘플 프롬프트 중 날씨 프롬프트를 선택할 수 있다.
도 11의 실시 예(1130)를 참조하면, 사용자 입력(에어컨 좀 켜줘?) 및 사용자 로그(오늘 진짜 덥다, 정말 그렇네요, 지금 몇도야?, 지금 서울 기온은 33도입니다.)가 수신되면, 작업(태스크) 판단 모듈(113-2)은 사용자 입력이 기기 제어 작업에 대응된다고 결정할 수 있다. 샘플 프롬프트 결정 모듈(113)은 복수의 샘플 프롬프트 중 제어 코드 프롬프트를 선택할 수 있다.
도 12는 다양한 실시 예에 따른 부가 정보 결정 모듈의 동작을 설명하기 위한 도면이다.
도 12의 실시 예(1210)를 참조하면, 사용자 입력(비트코인 500 사토시면 얼마야?)이 수신되면, 부가 정보 결정 모듈은 비트코인 가격(코인 마켓 API, Application Program Interface), 비트코인과 사토시의 관계 (검색 엔진에서 이용될 검색어) 및 비트코인 가격 * 비트코인 대비 사토시의 관계 * 500(계산 수식)을 필요한 부가 정보로 결정할 수 있다.
도 12의 실시 예(1220)를 참조하면, 사용자 입력(나랑 가장 가까운 불 꺼줘)이 수신되면, 부가 정보 결정 모듈은 사용자 위치(UWB, Ultra Wide Band), 전등 목록(SmartThings API), 사용자 및 전등 사이의 거리(계산 수식) 및 정렬 방식(오름차순 정렬 후 첫번째 결과 도출)를 필요한 부가 정보로 결정할 수 있다.
도 12의 실시 예(1230)를 참조하면, 사용자 입력(지금 날씨 어때?)이 수신되면, 부가 정보 결정 모듈은 사용자 위치(GPS, Global Positioning System), 현재 시간, 사용자 위치 및 현재 시간에서의 날씨(날씨 API)를 필요한 부가 정보로 결정할 수 있다.
도 13은 다양한 실시 예에 따른 부가 정보 수신 모듈의 동작을 설명하기 위한 도면이다.
도 13을 참조하면, 부가 정보 수신 모듈(1310)은 검색 엔진 서버(1311), 데이터베이스 서버(1312), API 서버(1313) 또는 계산기 어플리케이션(1314) 중 적어도 하나에 기초하여 부가 정보를 획득할 수 있다. 부가 정보 수신 모듈(1310)은 상술한 부가 정보 수신 모듈(114-2)에 대응할 수 있다.
부가 정보 수신 모듈(1310)은 외부 서버 내지 외부 어플리케이션에 부가 정보를 요청할 수 있다. 그리고, 부가 정보 수신 모듈(1310)은 외부 서버 내지 외부 어플리케이션에서 부가 정보를 수신할 수 있다.
검색 엔진 서버(1311)는 부가 정보 수신 모듈(1310)에서 전송한 키워드에 기초하여 검색 결과를 획득할 수 있다. 검색 엔진 서버(1311)는 검색 결과를 부가 정보 수신 모듈(1310)에 전송할 수 있다.
데이터베이스 서버(1312)는 부가 정보 수신 모듈(1310)에서 전송한 부가 정보 요청에 대응되는 데이터를 획득할 수 있다. 데이터베이스 서버(1312)는 획득된 데이터를 부가 정보 수신 모듈(1310)에 전송할 수 있다.
API 서버(1313)는 부가 정보 수신 모듈(1310)에서 전송한 API 정보에 대응되는 데이터를 획득할 수 있다. API 서버(1313)는 획득된 데이터를 부가 정보 수신 모듈(1310)에 전송할 수 있다.
계산기 어플리케이션(1314)은 부가 정보 수신 모듈(1310)에서 전송한 계산 수식 정보에 대응되는 계산 결과를 획득할 수 있다. 계산기 어플리케이션(1314)은 계산 결과를 부가 정보 수신 모듈(1310)에 전송할 수 있다.
도 14는 다양한 실시 예에 따른 부가 정보 결정 모듈(114-1)의 동작을 설명하기 위한 도면이다.
도 14의 실시 예(1410)를 참조하면, 사용자 입력(갤럭시 S22 얼마야?)이 수신되면, 부가 정보 결정 모듈(114-1)은 사용자 입력에 대응되는 요청 정보(SELECT Price FROM GalaxyS22)를 획득할 수 있다. 요청 정보는 필요한 부가 정보를 의미할 수 있다. 부가 정보 결정 모듈(114-1)은 요청 정보를 데이터 베이스 서버에 전송할 수 있다. 부가 정보 결정 모듈(114-1)은 데이터 베이스 서버(1312)로부터 부가 정보(100만원)을 획득할 수 있다.
도 14의 실시 예(1420)를 참조하면, 사용자 입력(6개 들이 사탕이 5봉지 있으면 사탕이 총 몇 개야?)이 수신되면, 부가 정보 결정 모듈(114-1)은 사용자 입력에 대응되는 요청 정보(6 * 5)를 획득할 수 있다. 부가 정보 결정 모듈(114-1)은 요청 정보를 계산기 어플리케이션(1314)에 전송할 수 있다. 부가 정보 결정 모듈(114-1)은 계산기 어플리케이션(1314)으로부터 부가 정보(30)을 획득할 수 있다.
도 14의 실시 예(1430)를 참조하면, 사용자 입력(이미지 데이터)이 수신되면, 부가 정보 결정 모듈(114-1)은 사용자 입력에 대응되는 요청 정보(이미지를 나타내는 데이터)를 획득할 수 있다. 부가 정보 결정 모듈(114-1)은 요청 정보를 이미지 해석기 어플리케이션(1431)에 전송할 수 있다. 부가 정보 결정 모듈(114-1)은 이미지 해석기 어플리케이션(1431)으로부터 부가 정보(사과 오브젝트, 빨강 오브젝트, 사과 오브젝트의 개수(3))을 획득할 수 있다.
도 14의 실시 예(1440)를 참조하면, 사용자 입력(오디오 데이터: 음악)이 수신되면, 부가 정보 결정 모듈(114-1)은 사용자 입력에 대응되는 요청 정보(오디오를 나타내는 데이터)를 획득할 수 있다. 부가 정보 결정 모듈(114-1)은 요청 정보를 오디오 해석기 어플리케이션(1441)에 전송할 수 있다. 부가 정보 결정 모듈(114-1)은 오디오 해석기 어플리케이션(1441)으로부터 부가 정보(음악 정보: Beatles, Hey Jude)을 획득할 수 있다.
도 15는 부가 정보를 획득하는 동작을 설명하기 위한 도면이다.
도 15를 참조하면, 사용자 입력(이것을 신고 등산할 수 있나?), 사용자 로그(알프스 등산하러 가자) 및 이미지 데이터(구두 이미지)을 수신되면, 부가 정보 결정 모듈(114-1)은 요청 정보(1510)를 획득할 수 있다. 요청 정보(1510)는 산 및 이미지 오브젝트를 포함할 수 있다.
부가 정보 수신 모듈(114-2)은 요청 정보(1510)에 기초하여 부가 정보(1520)를 획득할 수 있다. 부가 정보(1520)는 이미지 분석 정보(하이힐 오브젝트, 검정 오브젝트, 거리 오브젝트, 여자 오브젝트)를 포함할 수 있다.
부가 정보 분석 모듈(114-3)은 수신된 부가 정보(1520) 및 사용자 로그를 분석할 수 있다. 부가 정보 분석 모듈(114-3)은 분석 결과로써 사용자 입력(또는 사용자 로그)에 관련된 부가 정보(하이힐 오브젝트, 여자 오브젝트)를 최종 부가 정보(1530)로써 획득할 수 있다. 부가 정보 분석 모듈(114-3)은 사용자 로그(알프스 등산하러 가자)에 기초하여 알프스 정보를 최종 부가 정보(1530)로써 획득할 수 있다.
도 16은 다양한 실시 예에 따른 부가 정보 결정 모듈의 동작을 설명하기 위한 도면이다.
도 16을 참조하면, 전자 장치(100)는 사용자 입력을 획득할 수 있다 (S1610). 사용자 입력은 텍스트 정보, 이미지 정보 또는 오디오 정보 중 적어도 하나일 수 있다. 텍스트 정보는 키보드를 통해 획득될 수 있다. 또한, 전자 장치(100)는 이미지 정보에서 텍스트 인식 기술(예를 들어, OCR, Optical Character Reader)을 이용하여 텍스트 정보를 획득할 수 있다. 또한, 전자 장치(100)는 오디오 정보에서 텍스트 인식 기술(예를 들어, 음성 인식 기능)을 이용하여 텍스트 정보를 획득할 수 있다. 음성 인식 기능은 오디오 신호를 텍스트 정보로 변환하는 기능일 수 있다.
전자 장치(100)는 사용자 입력에 기초하여 샘플 프롬프트를 선택할 수 있다 (S1620). 프롬프트는 응답 정보를 제공하는데 이용되는 입력 데이터의 샘플 데이터일 수 있다. 프롬프트는 응답 정보를 생성하는데 이용되는 다양한 정보를 포함할 수 있다. 프롬프트는 사용자 입력에 대응되는 응답의 구조 정보를 포함할 수 있다. 전자 장치(100)는 프롬프트에 포함된 구조 정보에 기초하여 응답 정보를 생성할 수 있다.
전자 장치(100)는 사용자 입력에 기초하여 부가 정보를 획득할 수 있다 (S1630). 전자 장치(100)는 사용자 입력과 관련된 부가 정보를 획득할 수 있다. 전자 장치(100)는 사용자 입력에 포함된 단어와 관련된 다양한 정보를 획득할 수 있다.
전자 장치(100)는 사용자 입력, 샘플 프롬프트 및 부가 정보에 기초하여 입력 프롬프트를 획득할 수 있다 (S1640). 전자 장치(100)는 샘플 프롬프트에 사용자 입력 및 부가 정보를 추가함으로써 입력 프롬프트를 생성할 수 있다.
전자 장치(100)는 입력 프롬프트에 기초하여 응답 정보를 제공할 수 있다 (S1650). 전자 장치(100)는 입력 프롬프트에 포함된 사용자 입력, 샘플 프롬프트 및 부가 정보를 획득할 수 있다. 전자 장치(100)는 사용자 입력, 샘플 프롬프트 및 부가 정보에 기초하여 응답 정보를 획득할 수 있다. 전자 장치(100)는 획득된 응답 정보를 사용자에게 제공할 수 있다.
실시예들에 따라, 도 16에서는 S1620 단계 이후에 S1630 단계가 수행되는 것으로 기재하였다. 다양한 실시 예에 따라, 전자 장치(100)는 S1630 단계를 먼저 수행하고 S1620 단계를 수행할 수 있다. 또한, 다양한 실시 예에 따라, 전자 장치(100)는 S1620 단계 및 S1630 단계를 동시에 수행할 수 있다. 샘플 프롬프트를 선택하는 동작 및 부가 정보를 획득하는 동작에 대한 순서에 대한 설명이 아래의 도면들에서도 동일하게 적용될 수 있다.
도 17은 응답 정로를 획득하는 동작을 설명하기 위한 흐름도이다.
도 17의 S1710, S1720, S1730, S1740, S1750 단계는 도 16의 S1610, S1620, S1630, S1640, S1650 단계에 대응될 수 있다. 따라서, 중복 설명을 생략한다.
입력 프롬프트를 획득한 후, 전자 장치(100)는 입력 프롬프트를 제1 서버(200)에 전송할 수 있다 (S1741). 제1 서버(200)는 전자 장치(100)로부터 수신한 입력 프롬프트에 기초하여 응답 정보를 획득할 수 있다 (S1742). 그리고, 제1 서버(200)는 응답 정보를 전자 장치(100)에 전송할 수 있다 (S1743).
전자 장치(100)는 제1 서버(200)로부터 응답 정보를 수신할 수 있다. 그리고, 전자 장치(100)는 응답 정보를 사용자에게 제공할 수 있다 (S1750). 다양한 실시 예에 따라, 전자 장치(100)는 디스플레이(140)를 통해 응답 정보를 표시할 수 있다. 다양한 실시 예에 따라, 전자 장치(100)는 스피커(170)를 통해 응답 정보를 출력할 수 있다.
도 18은 서버(200)를 이용하여 응답 정보를 획득하는 동작을 설명하기 위한 흐름도이다.
도 18의 S1810, S1830, S1840, S1841, S1842, S1843, S1850 단계는 도 17의 S1710, S1730, S1740, S1741, S1742, S1743, S1750 단계에 대응될 수 있다. 따라서, 중복 설명을 생략한다.
사용자 입력을 획득한 후, 전자 장치(100)는 기 설정된 복수의 작업 중 사용자 입력에 대응되는 작업을 식별할 수 있다 (S1821). 이와 관련된 동작은 도 11에서 기재한다.
또한, 전자 장치(100)는 식별된 작업에 기초하여 샘플 프롬프트를 선택할 수 있다 (S1822). 전자 장치(100)는 메모리(110)에 저장된 복수의 샘플 프롬프트 중 식별된 작업에 대응되는 샘플 프롬프트를 선택할 수 있다. 이후, 전자 장치(100)는 S1830 내지 S1850 단계를 수행할 수 있다.
도 19는 샘플 프롬프트가 별개의 그룹으로 구분된 실시 예를 설명하기 위한 흐름도이다.
도 19의 S1910, S1930, S1940, S1941, S1942, S1943, S1950 단계는 도 17의 S1710, S1730, S1740, S1741, S1742, S1743, S1750 단계에 대응될 수 있다. 따라서, 중복 설명을 생략한다.
사용자 입력을 획득한 후, 전자 장치(100)는 사용자 입력에 텍스트 이외의 데이터가 포함되어 있는지 여부를 식별할 수 있다 (S1921). 텍스트 이외의 데이터는 이미지 데이터 또는 오디오 데이터를 의미할 수 있다. 사용자 입력은 텍스트 데이터가 아닌 이미지 데이터 또는 오디오 데이터를 포함할 수 있다. 전자 장치(100)는 이미지 데이터 또는 오디오 데이터를 포함하는 사용자 입력에 대응되는 응답 정보를 제공할 수 있다.
전자 장치(100)는 텍스트 데이터만을 포함하는 사용자 입력과 이미지 데이터 또는 오디오 데이터를 포함하는 사용자 입력을 구분하여 처리할 수 있다. 전자 장치(100)는 텍스트 데이터만을 포함하는 사용자 입력에 대응되는 샘플 프롬프트를 제1 그룹으로써 저장할 수 있다. 제1 그룹은 복수의 샘플 프롬프트를 포함할 수 있으며, 제1 그룹에 포함된 샘플 프롬프트는 텍스트 데이터만을 포함하는 사용자 입력을 처리하기 위한 프롬프트일 수 있다. 전자 장치(100)는 이미지 데이터 또는 오디오 데이터를 포함하는 사용자 입력에 대응되는 샘플 프롬프트를 제2 그룹으로써 저장할 수 있다. 제2 그룹은 복수의 샘플 프롬프트를 포함할 수 있으며, 제2 그룹에 포함된 샘플 프롬프트는 이미지 데이터 또는 오디오 데이터를 포함하는 사용자 입력을 처리하기 위한 프롬프트일 수 있다.
사용자 입력에 텍스트 이외의 데이터가 포함되어 있지 않으면 (S1921-N), 전자 장치(100)는 제1 그룹에 저장된 복수의 샘플 프롬프트 중 사용자 입력에 대응되는 샘플 프롬프트를 선택할 수 있다 (S1922). 사용자 입력에 텍스트 데이터만 포함되어 있으면, 전자 장치(100)는 제1 그룹에서 샘플 프롬프트를 선택할 수 있다.
사용자 입력에 텍스트 이외의 데이터가 포함되어 있으면 (S1921-Y), 전자 장치(100)는 제2 그룹에 저장된 복수의 샘플 프롬프트 중 사용자 입력에 대응되는 샘플 프롬프트를 선택할 수 있다 (S1923). 사용자 입력에 이미지 데이터 또는 오디오 데이터가 포함되어 있으면, 전자 장치(100)는 제2 그룹에서 샘플 프롬프트를 선택할 수 있다. 이후, 전자 장치(100)는 S1930 내지 S1950 단계를 수행할 수 있다.
도 20은 제2 서버(300)를 이용하여 부가 정보를 획득하는 동작을 설명하기 위한 흐름도이다.
도 20의 S2010, S2020, S2040, S2041, S2042, S2043, S2050 단계는 도 17의 S1710, S1720, S1740, S1741, S1742, S1743, S1750 단계에 대응될 수 있다. 따라서, 중복 설명을 생략할 수 있다.
사용자 입력을 획득한 후, 전자 장치(100)는 부가 정보 요청 및 사용자 입력을 제2 서버(300)에 전송할 수 있다 (S2031). 전자 장치(100)는 부가 정보를 요청하는 정보 및 사용자 입력을 포함하는 제어 신호를 생성할 수 있다. 그리고, 전자 장치(100)는 생성된 제어 신호를 제2 서버(300)에 전송할 수 있다.
제2 서버(300)는 전자 장치(100)로부터 부가 정보 요청 및 사용자 입력을 수신할 수 있다. 그리고, 제2 서버(300)는 사용자 입력에 기초하여 부가 정보를 생성할 수 있다 (S2032). 그리고, 제2 서버(300)는 생성된 부가 정보를 전자 장치(100)에 전송할 수 있다 (S2033).
전자 장치(100)는 제2 서버(300)로부터 부가 정보를 획득(또는 수신)할 수 있다 (S2034). 이후, 전자 장치(100)는 S2040 내지 S2050 단계를 수행할 수 있다.
도 21은 완전 응답이 생성될 확률에 기초하여 입력 프롬프트를 획득하는 동작을 설명하기 위한 흐름도이다.
도 21의 S2110, S2120, S2131, S2132, S2133, S2134, S2140, S2141, S2142, S2143, S2150 단계는 도 20의 S2010, S2020, S2031, S2032, S2033, S2034, S2040, S2041, S2042, S2043, S2050 단계에 대응될 수 있다. 따라서, 중복 설명을 생략한다.
사용자 입력을 획득한 후, 전자 장치(100)는 사용자 입력에 기초하여 완전 응답이 생성될 제1 확률을 획득할 수 있다 (S2125). 완전 응답은 사용자 입력에 대응되는 정보를 정확하게 전달할 수 있는 응답을 의미할 수 있다. 전자 장치(100)는 사용자 입력에 기초하여 완전 응답이 생성될 가능성을 나타내는 제1 확률을 획득(또는 계산)할 수 있다.
전자 장치(100)는 제1 확률이 임계 확률(또는 기 설정된 확률) 미만인지 여부를 식별할 수 있다 (S2126). 제1 확률이 임계 확률 미만이면 (S2126-Y), 전자 장치(100)는 부가 정보를 제2 서버(300)에 요청할 수 있다. 제1 확률이 임계 확률 미만이면, 전자 장치(100)는 부가 정보가 필요하다고 판단할 수 있다. 이후, 전자 장치(100)는 S2131 내지 S2140 단계를 수행할 수 있다.
제1 확률이 임계 확률 미만이 아니면 (S2126-N), 전자 장치(100)는 사용자 입력 및 샘플 프롬프트에 기초하여 입력 프롬프트를 획득할 수 있다 (S2127). 제1 확률이 임계 확률 미만이 아니면, 전자 장치(100)는 부가 정보를 별도로 획득하지 않고 사용자 입력 및 샘플 프롬프트만으로 입력 프롬프트를 생성할 수 있다.
이후, 전자 장치(100)는 S2141 내지 S2150 단계를 수행할 수 있다.
도 22는 완전 응답이 생성될 확률에 기초하여 부가 정보를 결정하는 설명하기 위한 흐름도이다.
도 22의 S2210, S2220, S2225, S2226, S2227, S2233, S2234, S2240, S2241, S2242, S2243, S2250 단계는 도 21의 S2110, S2120, S2125, S2126, S2127, S2133, S2134, S2140, S2141, S2142, S2143, S2150 단계에 대응될 수 있다. 따라서, 중복 설명을 생략한다.
제1 확률이 임계 확률이 미만인 것으로 식별되면 (S2226-Y), 전자 장치(100)는 샘플 부가 정보와 사용자 입력에 기초하여 완전 응답이 생성될 제2 확률을 획득할 수 있다 (S2228). 샘플 부가 정보는 더미 정보 또는 임의 정보로 기재될 수 있다. 전자 장치(100)는 메모리(110)에 저장된 복수의 샘플 부가 정보 중 임의의 샘플 부가 정보를 무작위로 선택할 수 있다. 전자 장치(100)는 선택된 샘플 부가 정보와 사용자 입력에 기초하여 완전 응답이 생성될 제2 확률을 획득할 수 있다.
다양한 실시 예에 따라, 전자 장치(100)는 사용자 입력에 포함된 키워드를 식별하고, 식별된 키워드와 관련성이 있는 샘플 부가 정보를 선택할 수 있다. 만약, 키워드와 관련성이 있는 샘플 부가 정보가 복수 개이면, 전자 장치(100)는 관련성이 큰 순서로 샘플 부가 정보를 선택할 수 있다. 샘플 부가 정보와 관련된 추가 설명은 도 23에서 기재한다.
S2225 단계에서 획득한 제1 확률은 사용자 입력만으로 완전 응답이 생성될 확률이며, S2228 단계에서 획득한 제2 확률은 사용자 입력 및 선택된 샘플 부가 정보에 기초하여 완전 응답이 생성될 확률일 수 있다.
전자 장치(100)는 제2 확률이 임계 확률 미만인지 여부를 식별할 수 있다 (S2229). 다양한 실시 예에 따라 S2226 단계의 임계 확률과 S2229 단계의 임계 확률이 동일할 수 있다. 다양한 실시 예에 따라 S2226 단계의 임계 확률과 S2229 단계의 임계 확률이 상이할 수 있다. 이때 각각의 임계 확률을 제1 임계 확률 및 제2 임계 확률로 기재할 수 있다.
제2 확률이 임계 확률 미만이면 (S2229-Y), 전자 장치(100)는 새로운 샘플 부가 정보와 사용자 입력에 기초하여 완전 응답이 생성될 제2 확률을 다시 획득할 수 있다. 전자 장치(100)는 제2 확률이 임계 확률 이상이 될 때까지 S2228 내지 S2229 단계를 반복할 수 있다.
제2 확률이 임계 확률 미만이 아니면 (S2229-N), 전자 장치(100)는 샘플 부가 정보 및 사용자 입력을 제2 서버(300)에 전송할 수 있다 (S2231). 전자 장치(100)는 샘플 부가 정보에 대응되는 부가 정보를 제2 서버(300)에 요청할 수 있다. 전자 장치(100)는 샘플 부가 정보를 이용하여 완전 응답을 생성하기 위해 어떤 정보가 필요한지 여부를 판단할 수 있다. 따라서, 전자 장치(100)는 샘플 부가 정보와 동일한 형태의 정보를 현재 시점 기준으로 획득할 수 있다.
제2 서버(300)는 전자 장치(100)로부터 수신된 샘플 부가 정보 및 사용자 입력에 기초하여 부가 정보를 획득할 수 있다 (S2232). 그리고, 제2 서버(300)는 부가 정보를 전자 장치(100)에 전송할 수 있다.
전자 장치(100)는 제2 서버(300)로부터 부가 정보를 획득할 수 있다 (S2234). 전자 장치(100)는 사용자 입력, 샘플 프롬프트 및 부가 정보에 기초하여 입력 프롬프트를 획득할 수 있다 (S2240).
이후, 전자 장치(100)는 S2241 내지 S2250 단계를 수행할 수 있다.
도 23은 다양한 실시 예에 따른 완전 응답 판단 모듈(2300)의 동작을 설명하기 위한 도면이다.
도 23의 실시 예(2310)를 참조하면, 사용자 입력(날씨 어때?)이 수신되면, 완전 응답 판단 모듈(2300)은 제1 확률을 10%로 계산할 수 있다.
도 23의 실시 예(2320)를 참조하면, 사용자 입력(날씨 어때?)이 수신되고 샘플 부가 정보(날씨 뉴스)가 선택되면, 완전 응답 판단 모듈(2300)은 제2 확률을 70%로 계산할 수 있다. 제2 확률과 관련된 임계 확률이 80%라고 가정한다. 전자 장치(100)는 사용자 입력(날씨 어때?) 및 샘플 부가 정보(날씨 뉴스)만으로 완전 응답의 생성이 어렵다고 판단할 수 있다. 전자 장치(100)는 새로운 샘플 부가 정보를 선택할 수 있다.
도 23의 실시 예(2330)를 참조하면, 사용자 입력(날씨 어때?)이 수신되고 샘플 부가 정보(날씨 데이터)가 선택되면, 완전 응답 판단 모듈(2300)은 제2 확률을 90%로 계산할 수 있다. 제2 확률과 관련된 임계 확률이 80%라고 가정한다. 전자 장치(100)는 사용자 입력(날씨 어때?) 및 샘플 부가 정보(날씨 데이터)로 완전 응답이 생성될 수 있다고 판단할 수 있다.
실시예들에 따라, 실시 예(2320, 2330)에서 언급한 샘플 부가 정보는 사용자 입력이 수신된 시점의 데이터가 아니며, 사용자 입력이 수신된 시점을 기준으로 과거 시점의 데이터일 수 있다. 샘플 부가 정보는 단어 그 자체의 의미대로 완전 응답의 생성 확률(가능성)을 판단하는데 이용되는 정보일 뿐이며, 실제로 응답 정보를 생성하는데 이용되는 정보가 아닐 수 있다.
따라서, 사용자 입력 및 샘플 부가 정보에 기초하여 획득된 제2 확률이 임계 확률 이상이더라도, 전자 장치(100)는 부가 정보를 요청할 수 있다. 전자 장치(100)는 샘플 부가 정보를 통해 어떤 부가 정보를 요청할지 결정할 수 있다. 샘플 부가 정보와 동일한 형태의 부가 정보가 획득되면, 완전 응답이 생성될 가능성이 임계 확률 이상일 수 있다. 따라서, 전자 장치(100)는 샘플 부가 정보와 동일한 형태의 부가 정보를 획득할 수 있다. 샘플 부가 정보는 사용자 입력이 수신되기 이전에 획득된 정보이며, 부가 정보는 사용자 입력이 수신된 이후 획득된 정보일 수 있다.
도 24는 사용자 로그를 이용하여 입력 프롬프트를 획득하는 동작을 설명하기 위한 흐름도이다.
도 24의 S2410, S2440, S2441, S2442, S2443, S2450 단계는 도 17의 S1710, S1740, S1741, S1742, S1743, S1750 단계에 대응될 수 있다. 따라서, 중복 설명을 생략한다.
사용자 입력을 획득한 후, 전자 장치(100)는 사용자 로그를 획득할 수 있다 (S2415). 사용자 로그는 사용자가 전자 장치(100)를 이용한 히스토리 정보를 의미할 수 있다. 사용자 로그는 사용자 대화 리스트, 사용자가 이용한 어플리케이션 리스트 또는 전자 장치(100)에서 실행된 명령어 리스트 중 적어도 하나를 포함할 수 있다.
전자 장치(100)는 사용자 로그 및 사용자 입력에 기초하여 샘플 프롬프트를 선택할 수 있다 (S2421). 전자 장치(100)는 사용자 로그 및 사용자 입력에 기초하여 부가 정보를 획득할 수 있다 (S2431).
이후, 전자 장치(100)는 S2440 내지 S2450 단계를 수행할 수 있다.
도 25는 부가 정보를 획득하는 동작을 설명하기 위한 흐름도이다.
도 25의 S2510, S2520, S2540, S2541, S2542, S2543, S2550 단계는 도 17의 S1710, S1720, S1740, S1741, S1742, S1743, S1750 단계에 대응될 수 있다.
사용자 입력을 획득한 후, 전자 장치(100)는 완전 응답을 위해 시간 정보가 필요한지 여부를 식별할 수 있다 (S2531). 완전 응답을 위해 시간 정보가 필요하면 (S2531-Y), 전자 장치(100)는 시간 정보 추출기를 통해 시간 정보를 획득할 수 있다 (S2532). 시간 정보 추출기를 통해 시간 정보를 획득한 후, 전자 장치(100)는 완전 응답을 위해 위치 정보가 필요한지 여부를 식별할 수 있다 (S2533).
또한, 완전 응답을 위해 시간 정보가 필요하지 않으면 (S2531-N), 전자 장치(100)는 완전 응답을 위해 위치 정보가 필요한지 여부를 식별할 수 있다 (S2533).
완전 응답을 위해 위치 정보가 필요하면 (S2533-Y), 전자 장치(100)는 위치 정보 추출기를 통해 위치 정보를 획득할 수 있다 (S2534). 위치 정보 추출기를 통해 위치 정보를 획득한 후, 전자 장치(100)는 완전 응답을 위해 외부 시스템의 정보가 필요한지 여부를 식별할 수 있다 (S2535).
또한, 완전 응답을 위해 위치 정보가 필요하지 않으면 (S2533-N), 전자 장치(100)는 완전 응답을 위해 외부 시스템의 정보가 필요한지 여부를 식별할 수 있다 (S2535).
완전 응답을 위해 외부 시스템의 정보가 필요하면 (S2535-Y), 전자 장치(100)는 외부 시스템의 정보 추출기를 통해 외부 시스템의 정보를 획득할 수 있다 (S2536). 외부 시스템의 정보 추출기를 통해 외부 시스템의 정보를 획득한 후, 전자 장치(100)는 완전 응답을 위해 멀티 모달(Multi-Modal) 정보가 필요한지 여부를 식별할 수 있다 (S2537).
또한, 완전 응답을 위해 외부 시스템의 정보가 필요하지 않으면 (S2535-N), 전자 장치(100)는 완전 응답을 위해 멀티 모달 정보가 필요한지 여부를 식별할 수 있다 (S2537).
완전 응답을 위해 멀티 모달 정보가 필요하면 (S2537-Y), 전자 장치(100)는 멀티 모달 정보 추출기를 통해 멀티 모달 정보를 획득할 수 있다 (S2538). 멀티 모달 정보 추출기를 통해 멀티 모달 정보를 획득한 후, 전자 장치(100)는 부가 정보를 획득할 수 있다 (S2539).
또한, 완전 응답을 위해 멀티 모달 정보가 필요하지 않으면 (S2537-N), 전자 장치(100)는 부가 정보를 획득할 수 있다 (S2539).
구체적으로, 전자 장치(100)는 시간 정보, 위치 정보, 외부 시스템의 정보 또는 멀티 모달 정보 중 적어도 하나에 기초하여 부가 정보를 획득할 수 있다.
이후, 전자 장치(100)는 S2540 내지 S2550 단계를 수행할 수 있다.
도 26은 입력 프롬프트를 획득하는데 이용되는 정보를 표시하기 위한 UI(User Interface)를 설명하기 위한 도면이다.
도 26을 참조하면, 전자 장치(100)는 입력 프롬프트를 생성과 관련된 화면(2610)을 사용자에게 제공할 수 있다. 화면(2610)은 음성 인식 알림을 나타내는 UI(2611), 사용자 입력을 나타내는 UI(2612), 사용자 로그를 나타내는 UI(2613), 샘플 프롬프트를 나타내는 UI(2614), 부가 정보를 나타내는 UI(2615) 또는 응답 정보를 생성하기 위한 사용자 입력을 수신하기 위한 UI(2616) 중 적어도 하나를 포함할 수 있다.
전자 장치(100)는 UI(2612)를 통해 사용자 입력을 재입력하기 위한 사용자 명령을 수신할 수 있다. 또한, 전자 장치(100)는 UI(2613)를 통해 사용자 로그를 수정하기 위한 사용자 명령을 수신할 수 있다. 또한, 전자 장치(100)는 UI(2615)를 통해 부가 정보를 수정하기 위한 사용자 명령을 수신할 수 있다.
도 27은 입력 프롬프트 및 응답 정보를 표시하기 위한 UI(User Interface)를 설명하기 위한 도면이다.
도 27을 참조하면, 전자 장치(100)는 응답 정보와 관련된 화면(2710)을 사용자에게 제공할 수 있다. 화면(2710)은 음성 인식 알림을 나타내는 UI(2711), 입력 프롬프트를 나타내기 위한 UI(2712) 또는 응답 정보를 나타내는 UI(2713) 중 적어도 하나를 포함할 수 있다.
또한, 전자 장치(100)는 UI(2712)를 통해 입력 프롬프트를 수정하기 위한 사용자 명령을 수신할 수 있다. 제공된 응답 정보에 사용자가 원한 정보가 포함되어 있지 않은 경우, 사용자는 입력 프롬프트를 수정하여 새로운 응답 정보를 요청할 수 있다.
도 28은 다양한 실시 예에 따른 전자 장치(100)의 제어 방법을 설명하기 위한 흐름도이다.
도 28을 참조하면, 복수의 샘플 프롬프트를 저장하고 거대 언어 모델(Large Language Model)을 포함하는 서버와 통신하는 전자 장치의 제어 방법에 있어서, 사용자 입력을 획득하는 단계 (S2805), 저장된 복수의 샘플 프롬프트 중 사용자 입력에 대응되는 샘플 프롬프트를 식별하는 단계 (S2810), 사용자 입력에 대응되는 부가 정보를 획득하는 단계 (S2815), 사용자 입력, 샘플 프롬프트 및 부가 정보에 기초하여 입력 프롬프트를 획득하는 단계 (S2820), 서버에 입력 프롬프트를 전송하는 단계 (S2825) 및 서버로부터 입력 프롬프트에 대응되는 응답 정보를 수신하면, 응답 정보를 제공하는 단계 (S2830)를 포함한다. 예를 들어, 응답 정보는 사용자에게 제공될 수 있다.
실시 예들에 따라, 샘플 프롬프트는 샘플 프롬프트를 나타내는 설명 정보, 예시 정보, 응답 구조 정보 중 적어도 하나를 포함할 수 있다.
실시 예들에 따라, 샘플 프롬프트를 식별하는 단계 (S2810)는 사용자 입력에 대응되는 작업을 식별하고, 식별된 작업에 기초하여 복수의 샘플 프롬프트 중 사용자 입력에 대응되는 샘플 프롬프트를 식별할 수 있다.
실시 예들에 따라, 서버는 제1 서버이고, 부가 정보를 획득하는 단계 (S2815)는 사용자 입력에 대응되는 부가 정보가 필요한지 여부를 식별하고, 부가 정보가 필요한 것으로 결정하면, 제2 서버에 부가 정보를 요청하는 신호를 전송하고, 제2 서버로부터 부가 정보를 수신할 수 있다.
실시 예들에 따라, 부가 정보를 획득하는 단계 (S2815)는 사용자 입력에 기초하여 완전 응답이 생성될 제1 확률을 획득하고, 제1 확률이 임계 확률 미만이면, 부가 정보를 획득할 수 있다.
실시 예들에 따라, 부가 정보를 획득하는 단계 (S2815)는 복수의 샘플 부가 정보 중 적어도 하나의 샘플 부가 정보 및 사용자 입력에 기초하여 완전 응답이 생성될 제2 확률을 획득하고, 제2 확률이 임계 확률 이상이면, 적어도 하나의 샘플 부가 정보에 기초하여 부가 정보를 획득할 수 있다.
실시 예들에 따라, 입력 프롬프트를 획득하는 단계 (S2820)는 샘플 프롬프트에 사용자 입력 및 부가 정보를 결합하여 입력 프롬프트를 획득할 수 있다.
실시 예들에 따라, 샘플 프롬프트를 식별하는 단계 (S2810)는 임계 시간 이내의 사용자 로그를 획득하고, 사용자 로그 및 사용자 입력에 기초하여 사용자 입력에 대응되는 샘플 프롬프트를 식별할 수 있다.
실시 예들에 따라, 부가 정보를 획득하는 단계 (S2815)는 임계 시간 이내의 사용자 로그를 획득하고, 사용자 로그 및 사용자 입력에 기초하여 부가 정보를 획득할 수 있다.
실시 예들에 따라, 사용자 입력은 오디오 정보, 텍스트 정보 또는 이미지 정보 중 적어도 하나를 포함할 수 있다.
실시 예들에 따라, 도 28과 같은 전자 장치의 제어 방법은 도 2 또는 도 3의 구성을 가지는 전자 장치 상에서 실행될 수 있으며, 그 밖의 구성을 가지는 전자 장치 상에서도 실행될 수 있다.
실시 예들에 따라, 상술한 본 개시의 다양한 실시 예들에 따른 방법들은, 기존 전자 장치에 설치 가능한 어플리케이션 형태로 구현될 수 있다.
또한, 상술한 본 개시의 다양한 실시 예들에 따른 방법들은, 기존 전자 장치에 대한 소프트웨어 업그레이드, 또는 하드웨어 업그레이드 만으로도 구현될 수 있다.
또한, 상술한 본 개시의 다양한 실시 예들은 전자 장치에 구비된 임베디드 서버, 또는 전자 장치 및 디스플레이 장치 중 적어도 하나의 외부 서버를 통해 수행되는 것도 가능하다.
실시 예들에 따라, 본 개시의 일시 예에 따르면, 이상에서 설명된 다양한 실시 예들은 기기(machine)(예: 컴퓨터)로 읽을 수 있는 저장 매체(machine-readable storage media)에 저장된 명령어를 포함하는 소프트웨어로 구현될 수 있다. 기기는, 저장 매체로부터 저장된 명령어를 호출하고, 호출된 명령어에 따라 동작이 가능한 장치로서, 개시된 실시 예들에 따른 전자 장치를 포함할 수 있다. 명령이 프로세서에 의해 실행될 경우, 프로세서가 직접, 또는 프로세서의 제어 하에 다른 구성요소들을 이용하여 명령에 해당하는 기능을 수행할 수 있다. 명령은 컴파일러 또는 인터프리터에 의해 생성 또는 실행되는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장 매체는, 비일시적(non-transitory) 저장 매체의 형태로 제공될 수 있다. 여기서, '비일시적'은 저장 매체가 신호(signal)를 포함하지 않으며 실재(tangible)한다는 것을 의미할 뿐 데이터가 저장 매체에 반영구적 또는 임시적으로 저장됨을 구분하지 않는다.
또한, 본 개시의 일 실시 예에 따르면, 이상에서 설명된 다양한 실시 예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 온라인으로 배포될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
또한, 상술한 다양한 실시 예들에 따른 구성 요소(예: 모듈 또는 프로그램) 각각은 단수 또는 복수의 개체로 구성될 수 있으며, 전술한 해당 서브 구성 요소들 중 일부 서브 구성 요소가 생략되거나, 또는 다른 서브 구성 요소가 다양한 실시 예에 더 포함될 수 있다. 대체적으로 또는 추가적으로, 일부 구성 요소들(예: 모듈 또는 프로그램)은 하나의 개체로 통합되어, 통합되기 이전의 각각의 해당 구성 요소에 의해 수행되는 기능을 동일 또는 유사하게 수행할 수 있다. 다양한 실시 예들에 따른, 모듈, 프로그램 또는 다른 구성 요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱하게 실행되거나, 적어도 일부 동작이 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.
이상에서는 본 개시의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 개시는 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 개시의 요지를 벗어남이 없이 당해 개시에 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형 실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 개시의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.

Claims (15)

  1. 전자 장치에 있어서,
    복수의 샘플 프롬프트를 저장하는 메모리;
    거대 언어 모델(Large Language Model)을 포함하는 서버와 통신하는 통신 인터페이스; 및
    사용자의 사용자 입력을 획득하고,
    상기 저장된 복수의 샘플 프롬프트 중 상기 사용자 입력에 대응되는 샘플 프롬프트를 선택하고,
    상기 사용자 입력에 대응되는 부가 정보를 획득하고,
    상기 사용자 입력, 상기 샘플 프롬프트 및 상기 부가 정보에 기초하여 입력 프롬프트를 획득하고,
    상기 통신 인터페이스를 이용하여, 상기 서버에 상기 입력 프롬프트를 전송하고,
    상기 통신 인터페이스를 통해, 상기 서버로부터 상기 입력 프롬프트에 대응되는 응답 정보를 수신하면, 상기 응답 정보를 제공하는, 적어도 하나의 프로세서;를 포함하는, 전자 장치.
  2. 제1항에 있어서,
    상기 샘플 프롬프트는,
    상기 샘플 프롬프트를 나타내는 설명 정보, 예시 정보, 응답 구조 정보 중 적어도 하나를 포함하는, 전자 장치.
  3. 제1항에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 사용자 입력에 대응되는 작업을 식별하고,
    상기 식별된 작업에 기초하여 상기 샘플 프롬프트를 선택하는, 전자 장치.
  4. 제1항에 있어서,
    상기 서버는 제1 서버이고,
    상기 적어도 하나의 프로세서는,
    상기 사용자 입력에 대응되는 부가 정보가 필요한지 여부를 결정하고,
    상기 부가 정보가 이용되는 것으로 결정하면, 상기 통신 인터페이스를 이용하여, 제2 서버에 상기 부가 정보를 요청하는 신호를 전송하고,
    상기 통신 인터페이스를 통해, 상기 제2 서버로부터 상기 부가 정보를 수신하는, 전자 장치.
  5. 제1항에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 사용자 입력에 기초하여 완전 응답이 생성될 제1 확률을 획득하고,
    상기 제1 확률이 임계 확률 미만이면, 상기 부가 정보를 획득하는, 전자 장치.
  6. 제5항에 있어서,
    상기 적어도 하나의 프로세서는,
    복수의 샘플 부가 정보 중 적어도 하나의 샘플 부가 정보 및 상기 사용자 입력에 기초하여 완전 응답이 생성될 제2 확률을 획득하고,
    상기 제2 확률이 상기 임계 확률 이상이면, 상기 적어도 하나의 샘플 부가 정보에 기초하여 상기 부가 정보를 획득하는, 전자 장치.
  7. 제1항에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 샘플 프롬프트에 상기 사용자 입력 및 상기 부가 정보를 결합하여 상기 입력 프롬프트를 획득하는, 전자 장치.
  8. 제1항에 있어서,
    상기 적어도 하나의 프로세서는,
    임계 시간 이내의 사용자 활동에 대응되는 사용자 로그를 획득하고,
    상기 사용자 로그 및 상기 사용자 입력에 기초하여 상기 사용자 입력에 대응되는 샘플 프롬프트를 선택하는, 전자 장치.
  9. 제1항에 있어서,
    상기 적어도 하나의 프로세서는,
    임계 시간 이내의 사용자 활동에 대응되는 사용자 로그를 획득하고,
    상기 사용자 로그 및 상기 사용자 입력에 기초하여 상기 부가 정보를 획득하는, 전자 장치.
  10. 제1항에 있어서,
    상기 사용자 입력은,
    오디오 정보, 텍스트 정보 또는 이미지 정보 중 적어도 하나를 포함하는, 전자 장치.
  11. 복수의 샘플 프롬프트를 저장하고 거대 언어 모델(Large Language Model)을 포함하는 서버와 통신하는 전자 장치의 제어 방법에 있어서,
    사용자의 사용자 입력을 획득하는 단계;
    상기 저장된 복수의 샘플 프롬프트 중 상기 사용자 입력에 대응되는 샘플 프롬프트를 선택하는 단계;
    상기 사용자 입력에 대응되는 부가 정보를 획득하는 단계;
    상기 사용자 입력, 상기 샘플 프롬프트 및 상기 부가 정보에 기초하여 입력 프롬프트를 획득하는 단계;
    상기 서버에 상기 입력 프롬프트를 전송하는 단계; 및
    상기 서버로부터 상기 입력 프롬프트에 대응되는 응답 정보를 수신하면, 상기 응답 정보를 제공하는 단계;를 포함하는, 제어 방법.
  12. 제11항에 있어서,
    상기 샘플 프롬프트는,
    상기 샘플 프롬프트를 나타내는 설명 정보, 예시 정보, 응답 구조 정보 중 적어도 하나를 포함하는, 제어 방법.
  13. 제11항에 있어서,
    상기 샘플 프롬프트를 선택하는 단계는,
    상기 사용자 입력에 대응되는 작업을 식별하고,
    상기 식별된 작업에 기초하여 상기 샘플 프롬프트를 선택하는, 제어 방법.
  14. 제11항에 있어서,
    상기 서버는 제1 서버이고,
    상기 부가 정보를 획득하는 단계는,
    상기 사용자 입력에 대응되는 부가 정보가 필요한지 여부를 결정하고,
    상기 부가 정보가 이용되는 것으로 결정하면, 제2 서버에 상기 부가 정보를 요청하는 신호를 전송하고,
    상기 제2 서버로부터 상기 부가 정보를 수신하는, 제어 방법.
  15. 제11항에 있어서,
    상기 부가 정보를 획득하는 단계는,
    상기 사용자 입력에 기초하여 완전 응답이 생성될 제1 확률을 획득하고,
    상기 제1 확률이 임계 확률 미만이면, 상기 부가 정보를 획득하는, 제어 방법.
PCT/KR2023/010241 2022-11-01 2023-07-18 전자 장치 및 그 제어 방법 WO2024096253A1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US18/230,393 US20240143916A1 (en) 2022-11-01 2023-08-04 Electronic apparatus and controlling method thereof

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2022-0143966 2022-11-01
KR1020220143966A KR20240062495A (ko) 2022-11-01 2022-11-01 전자 장치 및 그 제어 방법

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US18/230,393 Continuation US20240143916A1 (en) 2022-11-01 2023-08-04 Electronic apparatus and controlling method thereof

Publications (1)

Publication Number Publication Date
WO2024096253A1 true WO2024096253A1 (ko) 2024-05-10

Family

ID=90930779

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2023/010241 WO2024096253A1 (ko) 2022-11-01 2023-07-18 전자 장치 및 그 제어 방법

Country Status (2)

Country Link
KR (1) KR20240062495A (ko)
WO (1) WO2024096253A1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004145014A (ja) * 2002-10-24 2004-05-20 Fujitsu Ltd 自動音声応答装置及び自動音声応答方法
JP2010507153A (ja) * 2006-10-18 2010-03-04 アリババ グループ ホールディング リミテッド 迷惑情報の判定方法およびシステム
KR20150006116A (ko) * 2013-07-08 2015-01-16 네이버 주식회사 검색 결과를 통한 애플리케이션 실행 제공 시스템, 방법 및 컴퓨터 판독 가능한 기록 매체
KR20170032114A (ko) * 2015-09-14 2017-03-22 삼성전자주식회사 음성 인식 장치 및 그의 제어방법
US11348694B2 (en) * 2017-05-05 2022-05-31 Canary Speech, Inc. Medical assessment based on voice

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004145014A (ja) * 2002-10-24 2004-05-20 Fujitsu Ltd 自動音声応答装置及び自動音声応答方法
JP2010507153A (ja) * 2006-10-18 2010-03-04 アリババ グループ ホールディング リミテッド 迷惑情報の判定方法およびシステム
KR20150006116A (ko) * 2013-07-08 2015-01-16 네이버 주식회사 검색 결과를 통한 애플리케이션 실행 제공 시스템, 방법 및 컴퓨터 판독 가능한 기록 매체
KR20170032114A (ko) * 2015-09-14 2017-03-22 삼성전자주식회사 음성 인식 장치 및 그의 제어방법
US11348694B2 (en) * 2017-05-05 2022-05-31 Canary Speech, Inc. Medical assessment based on voice

Also Published As

Publication number Publication date
KR20240062495A (ko) 2024-05-10

Similar Documents

Publication Publication Date Title
WO2016018004A1 (en) Method, apparatus, and system for providing translated content
WO2018012719A1 (en) Electronic apparatus having a hole area within screen and control method thereof
WO2017123077A1 (en) Electronic device and hardware diagnosis result-based process execution method thereof
WO2014030962A1 (en) Method of recommending friends, and server and terminal therefor
WO2018110968A1 (en) Display apparatus and method of controlling the same
WO2015122608A1 (ko) 포스 주변기기 컨트롤러, 모바일 호스트 디바이스 및 그들의 제어방법
WO2014129864A1 (en) An apparatus for providing a cursor in electronic devices and a method thereof
WO2017146437A1 (en) Electronic device and method for operating the same
WO2016108407A1 (ko) 주석 제공 방법 및 장치
WO2014021567A1 (ko) 메시지 서비스 제공 방법, 이를 위한 장치 및 시스템
WO2017034180A1 (ko) 애플리케이션 리스트를 제공하는 시스템 및 그 방법
WO2020076014A1 (en) Electronic apparatus and method for controlling the electronic apparatus
WO2016143962A1 (en) Terminal and operating method thereof
WO2021162320A1 (en) Electronic device and method for operating high speed screen of electronic device
WO2020017827A1 (ko) 전자 장치, 및 전자 장치의 제어 방법
WO2020218686A1 (en) Display device and controlling method of display device
WO2021167210A1 (ko) 서버, 전자 장치 및 그들의 제어 방법
WO2024096253A1 (ko) 전자 장치 및 그 제어 방법
WO2018097504A2 (en) Electronic device and method for updating channel map thereof
WO2020045858A1 (en) Electronic apparatus and method of controlling the same
WO2019093706A1 (ko) 전자 장치, 그 제어 방법, 원격 제어 장치 및 그 제어 방법
WO2023017939A1 (ko) 전자 장치 및 그 제어 방법
WO2021080154A1 (ko) 전자 장치 및 그 제어 방법
WO2021172648A1 (ko) 필기 입력에 기초하여, 동작을 수행하는 전자 장치 및 그 동작 방법
WO2019124775A1 (ko) 전자 장치 및 전자 장치에서 방송 콘텐트와 관련된 서비스 정보 제공 방법