Electronic device, method, and storage medium for controlling IoT device

The electronic device and method enhance the control of IoT devices by processing user voice inputs to identify and execute appropriate control commands, addressing the limitations of current AI-based voice agents in understanding implicit meanings and multiple intents.

WO2025095359A1PCT designated stage expired Publication Date: 2025-05-08SAMSUNG ELECTRONICS CO LTD
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
PCT/KR2024/014759
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-12-12
Filing Date
2024-09-27
Publication Date
2025-05-08

AI Technical Summary

Technical Problem

Current AI-based voice agents struggle to understand and respond to user intentions, especially when the user's voice contains implicit meaning or multiple intents, leading to ineffective control of IoT devices.

Method used

An electronic device and method that utilize a storage medium to execute instructions that process user voice inputs, identify control commands for external devices, and confirm the execution of these commands based on device state information, using AI-based analysis systems to improve understanding and response accuracy.

Benefits of technology

The solution enables more accurate interpretation and execution of user voice commands, improving the control of IoT devices by confirming the feasibility of commands and sequencing them appropriately based on device capabilities and states.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure KR2024014759_08052025_PF_FP_ABST
    Figure KR2024014759_08052025_PF_FP_ABST
Patent Text Reader

Abstract

A computer-readable storage medium for storing at least one instruction may be provided according to an embodiment. The at least one instruction, when executed by at least one processor of an electronic device, may cause the electronic device to perform at least one operation. The at least one operation may include an operation for identifying text identified on the basis of a user speech. The at least one operation may include an operation for identifying, on the basis of the text, a first external electronic device and a first control command corresponding to the first external electronic device. The at least one operation may include an operation for confirming a simulation result for the execution of the first control command by the first external electronic device on the basis of the state information about the first external electronic device. The at least one operation may include an operation for providing the first control command to the first external electronic device on the basis of the simulation result. Various other embodiments are possible.
Need to check novelty before this filing date? Find Prior Art

Description

Electronic devices, methods and storage media for controlling IoT devices

[0001] The present disclosure relates to an electronic device, method and storage medium for controlling an Internet of Things (IoT) device.

[0002] An AI-based voice agent can perform a function associated with the intent of the voice based on the text corresponding to the user's voice. For example, if the voice agent identifies the text "Send a text message wishing Cheolsu a good weekend," it can be passed to the message module (also known as a capsule or goal), one of the pre-built modules within the platform. Among the multiple functions supported by the message module, the "send message" function, which matches the intent of the text, can be performed. Upon execution of this function, the phone number corresponding to "Cheolsu" can be identified among the contacts, and a message containing the message "Have a good weekend" can be sent to the identified phone number.

[0003] Within the platform, various modules need to be built-in to support various functions. For example, prediction of texts likely to be uttered by a user is required, and corresponding functions need to be defined for each text. Modules for processing texts and corresponding functions need to be built-in within the platform. To meet diverse user needs, a relatively large number of modules need to be developed and / or built-in. Meanwhile, current AI agents cannot support functions for user utterances that are not supported by the modules, resulting in responses such as "I don't understand what you mean." Furthermore, AI agents cannot provide corresponding functions for user utterances with multiple intents or implicit meanings, resulting in responses indicating that they do not understand.

[0004] The above information may be provided as background information to aid in understanding this document. None of the above is claimed to be prior art related to this document or can be used to determine prior art.

[0005] According to one embodiment, a storage medium storing at least one computer-readable instruction may be provided. The at least one instruction, when executed by at least one processor of an electronic device, may cause the electronic device to perform at least one operation. The at least one operation may include an operation of confirming a text identified based on a user's voice. The at least one operation may include an operation of confirming a first external electronic device and a first control command corresponding to the first external electronic device based on the text. The at least one operation may include an operation of confirming a simulation result of execution of the first control command by the first external electronic device based on status information of the first external electronic device. The at least one operation may include an operation of providing the first control command to the first external electronic device based on the simulation result.

[0006] According to one embodiment, the method may include an operation of confirming a text identified based on a user voice. The method may include an operation of confirming a first external electronic device and a first control command corresponding to the first external electronic device based on the text. The method may include an operation of confirming a simulation result of performance of the first control command by the first external electronic device based on status information of the first external electronic device. The method may include an operation of providing the first control command to the first external electronic device based on the simulation result.

[0007] According to one embodiment, an electronic device may include a memory and a processor. The memory may store at least one instruction. The at least one instruction, when executed by the processor, may cause the electronic device to perform at least one operation. The at least one operation may include an operation of confirming a text identified based on a user's voice. The at least one operation may include an operation of confirming a first external electronic device and a first control command corresponding to the first external electronic device based on the text. The at least one operation may include an operation of confirming a simulation result of execution of the first control command by the first external electronic device based on status information of the first external electronic device. The at least one operation may include an operation of providing the first control command to the first external electronic device based on the simulation result.

[0008] According to one embodiment, a storage medium storing at least one computer-readable instruction may be provided. The at least one instruction, when executed by at least one processor of an electronic device, may cause the electronic device to perform at least one operation. The at least one operation may include an operation of confirming a text identified based on a user's voice. The at least one operation may include an operation of confirming a first external electronic device and a first control command corresponding to the first external electronic device based on the text. The at least one operation may include an operation of confirming a first simulation result regarding the execution of the first control command by the first external electronic device based on status information of the first external electronic device. The at least one operation may include an operation of providing a first inquiry regarding whether the first control command has been performed based on the first simulation result to an artificial intelligence-based analysis system. The at least one operation may include an operation of confirming, from the artificial intelligence-based analysis system, a first response requesting execution of a second control command different from the first control command based on the impossibility of execution of the first control command in response to the first inquiry. The at least one operation may include an operation of confirming, based on the first response, a second simulation result for execution of the second control command by the first external electronic device based on the status information of the first external electronic device. The at least one operation may include an operation of providing, to the artificial intelligence-based analysis system, a second inquiry regarding whether to execute the second control command based on the second simulation result.The at least one operation may include an operation of confirming, from the artificial intelligence-based analysis system, a second response indicating that the second control command can be performed in response to the second inquiry. The at least one operation may include an operation of providing the second control command to the first external electronic device based on the second response.

[0009] According to one embodiment, the method may include an operation of confirming a text identified based on a user voice. The method may include an operation of confirming, based on the text, a first external electronic device and a first control command corresponding to the first external electronic device. The method may include an operation of confirming, based on status information of the first external electronic device, a first simulation result regarding execution of the first control command by the first external electronic device. The method may include an operation of providing, to an artificial intelligence-based analysis system, a first inquiry regarding whether the first control command has been performed based on the first simulation result. The method may include an operation of confirming, from the artificial intelligence-based analysis system, a first response requesting execution of a second control command different from the first control command based on impossibility of execution of the first control command in response to the first inquiry. The method may include an operation of confirming a second simulation result for execution of the second control command by the first external electronic device based on the status information of the first external electronic device, based on the first response. The method may include an operation of providing a second inquiry to the artificial intelligence-based analysis system regarding whether the second control command is executed based on the second simulation result. The method may include an operation of confirming a second response from the artificial intelligence-based analysis system, in response to the second inquiry, indicating that execution of the second control command is possible. The method may include an operation of providing the second control command to the first external electronic device based on the second response.

[0010] According to one embodiment, an electronic device may include a memory and a processor. The memory may store at least one instruction. The at least one instruction, when executed by the processor, may cause the electronic device to perform at least one operation. The at least one operation may include an operation of confirming a text identified based on a user's voice. The at least one operation may include an operation of confirming a first external electronic device and a first control command corresponding to the first external electronic device based on the text. The at least one operation may include an operation of confirming a first simulation result regarding the execution of the first control command by the first external electronic device based on status information of the first external electronic device. The at least one operation may include an operation of providing a first inquiry regarding whether the first control command has been performed based on the first simulation result to an artificial intelligence-based analysis system. The at least one operation may include an operation of confirming, from the artificial intelligence-based analysis system, a first response requesting execution of a second control command different from the first control command based on the impossibility of execution of the first control command in response to the first inquiry. The at least one operation may include an operation of confirming, based on the first response, a second simulation result for execution of the second control command by the first external electronic device based on the status information of the first external electronic device. The at least one operation may include an operation of providing, to the artificial intelligence-based analysis system, a second inquiry regarding whether to execute the second control command based on the second simulation result.The at least one operation may include an operation of confirming, from the artificial intelligence-based analysis system, a second response indicating that the second control command can be performed in response to the second inquiry. The at least one operation may include an operation of providing the second control command to the first external electronic device based on the second response.

[0011] According to one embodiment, a storage medium storing at least one computer-readable instruction may be provided. The at least one instruction, when executed by at least one processor of an electronic device, may cause the electronic device to perform at least one operation. The at least one operation may include: acquiring a user voice. The at least one operation may include: providing a first control command identified based on the user voice and a first user interface associated with at least one candidate electronic device to perform the first control command. The at least one operation may include: acquiring a first user command for selecting one of the at least one external electronic device through the first user interface. The at least one operation may include: transmitting the first user command. The at least one operation may include: providing a second user interface indicating that a second control command, different from the first control command, should be performed based on status information of the selected external device indicating that the first control command cannot be performed. The at least one operation may include obtaining a second user command via the second user interface, causing the selected external electronic device to perform the second control command. The at least one operation may include transmitting the second user command.

[0012] According to one embodiment, a method may include an operation of acquiring a user voice. The method may include an operation of providing a first control command identified based on the user voice and a first user interface associated with at least one candidate electronic device to perform the first control command. The method may include an operation of acquiring a first user command for selecting one of the at least one external electronic device through the first user interface. The method may include an operation of transmitting the first user command. The method may include an operation of providing a second user interface indicating that a second control command, different from the first control command, should be preceded based on status information of the selected external device indicating that the first control command cannot be performed. The method may include an operation of acquiring a second user command for causing the selected external electronic device to perform the second control command through the second user interface. The method may include an operation of transmitting the second user command.

[0013] According to one embodiment, an electronic device may include a memory and a processor. The memory may store at least one instruction. The at least one instruction, when executed by the processor, may cause the electronic device to perform at least one operation. The at least one operation may include an operation of acquiring a user voice. The at least one operation may include an operation of providing a first control command identified based on the user voice and a first user interface associated with at least one candidate electronic device to perform the first control command. The at least one operation may include an operation of acquiring a first user command for selecting one of the at least one external electronic device through the first user interface. The at least one operation may include an operation of transmitting the first user command. The at least one operation may include an operation of providing a second user interface indicating that a second control command, different from the first control command, should be performed based on status information of the selected external device indicating that the first control command cannot be performed. The at least one operation may include obtaining a second user command via the second user interface, causing the selected external electronic device to perform the second control command. The at least one operation may include transmitting the second user command.

[0014] FIG. 1 is a block diagram of an electronic device within a network environment, according to one embodiment.

[0015] FIG. 2A is a block diagram of a system for controlling an external electronic device according to one embodiment.

[0016] FIG. 2b is a block diagram of an orchestrator according to one embodiment.

[0017] FIG. 3A is a flowchart illustrating an operation method by an electronic device, a server, and an external electronic device according to one embodiment.

[0018] FIG. 3b is a block diagram illustrating the operation of a system according to one embodiment.

[0019] Figure 4a is a flowchart for explaining an operation method by a server according to one embodiment.

[0020] FIG. 4b is a flowchart for explaining an operation method by a server according to one embodiment.

[0021] FIG. 5A is a flowchart illustrating an operation method of an electronic device, a server, and an artificial intelligence-based analysis system according to one embodiment.

[0022] FIG. 5b is a drawing for explaining the operation of an electronic device according to embodiments.

[0023] Figure 6 is a flowchart for explaining an operation method by a server according to one embodiment.

[0024] Figure 7a is a block diagram of a simulator according to one embodiment.

[0025] Figure 7b is a flowchart illustrating an instance creation process according to one embodiment.

[0026] Figure 7c is a flowchart for explaining the processing process of a control command according to one embodiment.

[0027] Figure 7d is a block diagram of a simulator according to one embodiment.

[0028] FIG. 8 is a flowchart illustrating an operation method of an electronic device, a server, and an external electronic device according to one embodiment.

[0029] FIG. 9a is a flowchart illustrating an operation method of a server and an artificial intelligence-based analysis system according to one embodiment.

[0030] FIG. 9b is a diagram illustrating data transmission and reception between an electronic device, a server, and an artificial intelligence-based analysis system according to one embodiment.

[0031] Figure 10 is a flowchart for explaining a method of operating a server according to one embodiment.

[0032] Fig. 11 is a flowchart for explaining a method of operating a server according to one embodiment.

[0033] FIG. 12 is a diagram for explaining the operation of an electronic device and an external electronic device according to one embodiment.

[0034] Hereinafter, embodiments of the present disclosure will be described in detail with reference to the drawings so that those skilled in the art can easily implement the present disclosure. However, the present disclosure may be implemented in various different forms and is not limited to the embodiments described herein. In connection with the description of the drawings, the same or similar reference numerals may be used for identical or similar components. Furthermore, in the drawings and related descriptions, descriptions of well-known functions and configurations may be omitted for clarity and conciseness.

[0035] FIG. 1 is a block diagram of an electronic device (101) within a network environment (100), according to one embodiment. Referring to FIG. 1, in the network environment (100), the electronic device (101) may communicate with the electronic device (102) via a first network (198) (e.g., a short-range wireless communication network), or may communicate with the electronic device (104) or a server (108) via a second network (199) (e.g., a long-range wireless communication network). In one embodiment, the electronic device (101) may communicate with the electronic device (104) via the server (108). According to one embodiment, the electronic device (101) may include a processor (120), a memory (130), an input module (150), an audio output module (155), a display module (160), an audio module (170), a sensor module (176), an interface (177), a connection terminal (178), a haptic module (179), a camera module (180), a power management module (188), a battery (189), a communication module (190), a subscriber identification module (196), or an antenna module (197). In some embodiments, the electronic device (101) may omit at least one of these components (e.g., the connection terminal (178)), or may have one or more other components added. In some embodiments, some of these components (e.g., the sensor module (176), the camera module (180), or the antenna module (197)) may be integrated into one component (e.g., the display module (160)).

[0036] The processor (120) may, for example, execute software (e.g., a program (140)) to control at least one other component (e.g., a hardware or software component) of the electronic device (101) connected to the processor (120) and perform various data processing or operations. According to one embodiment, as at least a part of the data processing or operations, the processor (120) may store commands or data received from other components (e.g., a sensor module (176) or a communication module (190)) in a volatile memory (132), process the commands or data stored in the volatile memory (132), and store result data in a non-volatile memory (134). According to one embodiment, the processor (120) may include a main processor (121) (e.g., a central processing unit or an application processor) or an auxiliary processor (123) (e.g., a graphics processing unit, a neural processing unit (NPU), an image signal processor, a sensor hub processor, or a communication processor) that can operate independently or together with the main processor (121). For example, when the electronic device (101) includes the main processor (121) and the auxiliary processor (123), the auxiliary processor (123) may be configured to use less power than the main processor (121) or to be specialized for a given function. The auxiliary processor (123) may be implemented separately from the main processor (121) or as a part thereof.

[0037] The auxiliary processor (123) may control at least a portion of functions or states associated with at least one component (e.g., a display module (160), a sensor module (176), or a communication module (190)) of the electronic device (101), for example, on behalf of the main processor (121) while the main processor (121) is in an inactive (e.g., sleep) state, or together with the main processor (121) while the main processor (121) is in an active (e.g., application execution) state. In one embodiment, the auxiliary processor (123) (e.g., an image signal processor or a communication processor) may be implemented as a part of another functionally related component (e.g., a camera module (180) or a communication module (190)). In one embodiment, the auxiliary processor (123) (e.g., a neural network processing unit) may include a hardware structure specialized for processing artificial intelligence models. The artificial intelligence models may be generated through machine learning. This learning can be performed, for example, in the electronic device (101) itself where artificial intelligence is performed, or can be performed through a separate server (e.g., server (108)). The learning algorithm can include, for example, supervised learning, unsupervised learning, semi-supervised learning, or reinforcement learning, but is not limited to the examples described above. The artificial intelligence model can include multiple artificial neural network layers.The artificial neural network may be one of a deep neural network (DNN), a convolutional neural network (CNN), a recurrent neural network (RNN), a restricted Boltzmann machine (RBM), a deep belief network (DBN), a bidirectional recurrent deep neural network (BRDNN), a deep Q-network, or a combination of two or more of the above, but is not limited to the examples described above. In addition to, or alternatively to, a hardware structure, an artificial intelligence model may include a software structure.

[0038] The memory (130) can store various data used by at least one component (e.g., processor (120) or sensor module (176)) of the electronic device (101). The data can include, for example, software (e.g., program (140)) and input data or output data for commands related thereto. The memory (130) can include volatile memory (132) or non-volatile memory (134).

[0039] The program (140) may be stored as software in the memory (130) and may include, for example, an operating system (142), middleware (144), or an application (146).

[0040] The input module (150) can receive commands or data to be used in a component of the electronic device (101) (e.g., a processor (120)) from an external source (e.g., a user) of the electronic device (101). The input module (150) can include, for example, a microphone, a mouse, a keyboard, a key (e.g., a button), or a digital pen (e.g., a stylus pen).

[0041] The audio output module (155) can output audio signals to the outside of the electronic device (101). The audio output module (155) can include, for example, a speaker or a receiver. The speaker can be used for general purposes, such as multimedia playback or recording playback. The receiver can be used to receive incoming calls. In one embodiment, the receiver can be implemented separately from the speaker or as part of the speaker.

[0042] The display module (160) can visually provide information to an external party (e.g., a user) of the electronic device (101). The display module (160) may include, for example, a display, a holographic device, or a projector and a control circuit for controlling the device. According to one embodiment, the display module (160) may include a touch sensor configured to detect a touch, or a pressure sensor configured to measure the intensity of a force generated by the touch.

[0043] The audio module (170) can convert sound into an electrical signal, or vice versa, convert an electrical signal into sound. According to one embodiment, the audio module (170) can acquire sound through the input module (150), output sound through the sound output module (155), or an external electronic device (e.g., electronic device (102)) (e.g., speaker or headphone) directly or wirelessly connected to the electronic device (101).

[0044] The sensor module (176) can detect the operating status (e.g., power or temperature) of the electronic device (101) or the external environmental status (e.g., user status) and generate an electrical signal or data value corresponding to the detected status. According to one embodiment, the sensor module (176) can include, for example, a gesture sensor, a gyro sensor, a barometric pressure sensor, a magnetic sensor, an acceleration sensor, a grip sensor, a proximity sensor, a color sensor, an IR (infrared) sensor, a biometric sensor, a temperature sensor, a humidity sensor, or an illuminance sensor.

[0045] The interface (177) may support one or more designated protocols that may be used to directly or wirelessly connect the electronic device (101) with an external electronic device (e.g., the electronic device (102)). In one embodiment, the interface (177) may include, for example, a high definition multimedia interface (HDMI), a universal serial bus (USB) interface, an SD card interface, or an audio interface.

[0046] The connection terminal (178) may include a connector through which the electronic device (101) may be physically connected to an external electronic device (e.g., electronic device (102)). According to one embodiment, the connection terminal (178) may include, for example, an HDMI connector, a USB connector, an SD card connector, or an audio connector (e.g., a headphone connector).

[0047] The haptic module (179) can convert electrical signals into mechanical stimuli (e.g., vibration or movement) or electrical stimuli that a user can perceive through tactile or kinesthetic sensations. According to one embodiment, the haptic module (179) can include, for example, a motor, a piezoelectric element, or an electrical stimulation device.

[0048] The camera module (180) can capture still images and videos. According to one embodiment, the camera module (180) may include one or more lenses, image sensors, image signal processors, or flashes.

[0049] The power management module (188) can manage power supplied to the electronic device (101). According to one embodiment, the power management module (188) can be implemented as, for example, at least a part of a power management integrated circuit (PMIC).

[0050] A battery (189) may power at least one component of the electronic device (101). In one embodiment, the battery (189) may include, for example, a non-rechargeable primary battery, a rechargeable secondary battery, or a fuel cell.

[0051] The communication module (190) may support the establishment of a direct (e.g., wired) communication channel or a wireless communication channel between the electronic device (101) and an external electronic device (e.g., electronic device (102), electronic device (104), or server (108)), and the performance of communication through the established communication channel. The communication module (190) may operate independently from the processor (120) (e.g., application processor) and may include one or more communication processors that support direct (e.g., wired) communication or wireless communication. According to one embodiment, the communication module (190) may include a wireless communication module (192) (e.g., a cellular communication module, a short-range wireless communication module, or a global navigation satellite system (GNSS) communication module) or a wired communication module (194) (e.g., a local area network (LAN) communication module, or a power line communication module). Among these communication modules, the corresponding communication module can communicate with an external electronic device (104) via a first network (198) (e.g., a short-range communication network such as Bluetooth, wireless fidelity (WiFi) direct, or infrared data association (IrDA)) or a second network (199) (e.g., a long-range communication network such as a legacy cellular network, a 5G network, a next-generation communication network, the Internet, or a computer network (e.g., a LAN or WAN)). These various types of communication modules can be integrated into a single component (e.g., a single chip) or implemented as multiple separate components (e.g., multiple chips). The wireless communication module (192) can verify or authenticate the electronic device (101) within a communication network such as the first network (198) or the second network (199) by using subscriber information (e.g., an international mobile subscriber identity (IMSI)) stored in the subscriber identification module (196).

[0052] The wireless communication module (192) can support 5G networks and next-generation communication technologies following the 4G network, such as NR access technology (new radio access technology). The NR access technology can support high-speed transmission of high-capacity data (eMBB (enhanced mobile broadband)), minimization of terminal power and connection of multiple terminals (mMTC (massive machine type communications)), or high reliability and low latency (URLLC (ultra-reliable and low-latency communications)). The wireless communication module (192) can support, for example, a high-frequency band (e.g., mmWave band) to achieve a high data transmission rate. The wireless communication module (192) can support various technologies for securing performance in a high-frequency band, such as beamforming, massive multiple-input and multiple-output (MIMO), full dimensional MIMO (FD-MIMO), array antenna, analog beam-forming, or large scale antenna. The wireless communication module (192) can support various requirements specified in the electronic device (101), an external electronic device (e.g., the electronic device (104)), or a network system (e.g., the second network (199)). According to one embodiment, the wireless communication module (192) can support a peak data rate (e.g., 20 Gbps or more) for eMBB realization, a loss coverage (e.g., 164 dB or less) for mMTC realization, or a U-plane latency (e.g., 0.5 ms or less for downlink (DL) and uplink (UL), or 1 ms or less for round trip) for URLLC realization.

[0053] The antenna module (197) can transmit or receive signals or power to or from an external device (e.g., an external electronic device). In one embodiment, the antenna module (197) may include an antenna including a radiator formed of a conductor or a conductive pattern formed on a substrate (e.g., a PCB). In one embodiment, the antenna module (197) may include a plurality of antennas (e.g., an array antenna). In this case, at least one antenna suitable for a communication method used in a communication network, such as the first network (198) or the second network (199), may be selected from the plurality of antennas, for example, by the communication module (190). A signal or power may be transmitted or received between the communication module (190) and an external electronic device via the at least one selected antenna. In some embodiments, in addition to the radiator, another component (e.g., a radio frequency integrated circuit (RFIC)) may be additionally formed as a part of the antenna module (197).

[0054] In one embodiment, the antenna module (197) may form a mmWave antenna module. In one embodiment, the mmWave antenna module may include a printed circuit board, an RFIC disposed on or adjacent a first side (e.g., a bottom side) of the printed circuit board and capable of supporting a designated high-frequency band (e.g., a mmWave band), and a plurality of antennas (e.g., an array antenna) disposed on or adjacent a second side (e.g., a top side or a side side) of the printed circuit board and capable of transmitting or receiving signals in the designated high-frequency band.

[0055] At least some of the above components can be interconnected and exchange signals (e.g., commands or data) with each other via a communication method between peripheral devices (e.g., a bus, GPIO (general purpose input and output), SPI (serial peripheral interface), or MIPI (mobile industry processor interface)).

[0056] According to one embodiment, commands or data may be transmitted or received between the electronic device (101) and an external electronic device (104) via a server (108) connected to a second network (199). Each of the external electronic devices (102 or 104) may be the same or a different type of device as the electronic device (101). According to one embodiment, all or part of the operations executed in the electronic device (101) may be executed in one or more of the external electronic devices (102, 104, or 108). For example, when the electronic device (101) is to perform a certain function or service automatically or in response to a request from a user or another device, the electronic device (101) may, instead of or in addition to executing the function or service itself, request one or more external electronic devices to perform the function or at least a part of the service. One or more external electronic devices that receive the request may execute at least a portion of the requested function or service, or an additional function or service related to the request, and transmit the result of the execution to the electronic device (101). The electronic device (101) may process the result as is or additionally and provide it as at least a portion of a response to the request. For this purpose, cloud computing, distributed computing, mobile edge computing (MEC), or client-server computing technology may be used, for example. The electronic device (101) may provide an ultra-low latency service by using distributed computing or mobile edge computing, for example. In another embodiment, the external electronic device (104) may include an Internet of Things (IoT) device. The server (108) may be an intelligent server utilizing machine learning and / or a neural network. According to one embodiment, the external electronic device (104) or the server (108) may be included in the second network (199).The electronic device (101) can be applied to intelligent services (e.g., smart home, smart city, smart car, or healthcare) based on 5G communication technology and IoT-related technology.

[0057] FIG. 2a is a block diagram of a system for controlling an external electronic device according to one embodiment.

[0058] According to one embodiment, the electronic device (101) may transmit and / or receive data to and from a server (108). The server (108) may include an orchestrator (200), a simulator (220), and / or an IoT server (230). Here, it is merely exemplary that the orchestrator (200), the simulator (220), and the IoT server (230) are implemented to be included in a single entity, the server (108), and at least one of the orchestrator (200), the simulator (220), and the IoT server (230) may not be included in a single server (108). For example, the orchestrator (200), the simulator (220), and the IoT server (230) may all be implemented as different entities. Alternatively, at least two of the orchestrator (200), the simulator (220), and the IoT server (230) may be implemented as a single entity. For example, one entity may be implemented to include another entity. The orchestrator (200), the simulator (220), and the IoT server (230) may not be included in the system, in which case the operations by the corresponding entity described in the present disclosure may be performed by at least one of the remaining entities. The orchestrator (200), the simulator (220), and the IoT server (230) may be implemented as, for example, a cloud server, but those skilled in the art will understand that there is no limitation on the form of implementation.

[0059] According to one embodiment, a server (108) (which may be, but is not limited to, an orchestrator (200)) may transmit and / or receive data to and / or from an artificial intelligence-based analysis system (210). Here, the artificial intelligence-based analysis system (210) may store and / or execute a large language model (LLM). An LLM may be, for example, an artificial intelligence model trained to understand language and / or generate language, and it will be understood by those skilled in the art that the term LLM is merely exemplary and is not limited to a model that can generate responses to specific requests and / or queries. A large language model (LLM) may refer to a language model comprised of an artificial neural network pre-trained with a large amount of text data. The LLM may use a transformer artificial neural network architecture based on an attention mechanism. The attention mechanism may be used to process sequence inputs such as natural language inputs. The attention mechanism can control the weighting of the parts that require attention (attention) to multiple time-series input data, enabling more efficient output prediction. The transformer can be implemented based on, for example, a generative pre-trained transformer (GPT) or a bidirectional encoder representation form transformer (BERT), and there are no restrictions on the implementation method. The LLM can be trained in two stages: pre-training and fine-tuning. Pre-training refers to the process of enabling the LLM to process a large amount of text data and acquire general linguistic knowledge. Fine-tuning refers to the process of training the LLM to be suitable for a specific domain (e.g., chatbot, translation, summary, Q&A) or task.LLMs can perform tasks based on natural language text input, called prompts. LLMs can also be called chatbots, AI assistants, or other such terms, as they provide responses to inquiries and / or requests. There are no restrictions on the terminology used.

[0060] According to one embodiment, the orchestrator (200) may transmit and / or receive data with an AI-based analytics system (210). The orchestrator (200) may use a conversation template to generate messages to be provided to the AI-based analytics system (210) and / or may use external information for prompting. Prompting may refer to the act of transmitting and / or receiving a conversation (or, as may be designated, multiple texts) between the LLM and a user before a direct inquiry and / or request is made, in order for the LLM to provide a more accurate response.

[0061] According to one embodiment, a server (108) (which may be, for example, but is not limited to, an IoT server (230)) may transmit and / or receive data to and / or from an artificial intelligence-based analysis system (210). The IoT server (230) may transmit and / or receive data to and / or from at least one external electronic device (241, 242, 243, 244) registered and linked to a user's account, for example. For example, the IoT server (230) may store and / or manage status information of each of the at least one external electronic device (241, 242, 243, 244). The IoT server (230) may provide status information for at least some of the at least one external electronic device (241, 242, 243, 244) to another entity. The IoT server (230) may provide control commands to, for example, the at least one external electronic device (241, 242, 243, 244). At least one external electronic device (241, 242, 243, 244) that receives a control command from the IoT server (230) may perform at least one operation corresponding to the control command. The external electronic device (241, 242, 243, 244) may provide the IoT server (230) with a result (e.g., a message, an error, a notification, but there is no limitation) after performing the at least one operation. For example, the IoT server (230) may confirm (e.g., receive or be provided with) a first control command (e.g., automatic cleaning) for the first external electronic device (241) confirmed by the orchestrator (200). The IoT server (230) may transmit the first control command (or information for identifying the first control command) to the first external electronic device (241). The first external electronic device (241) can perform at least one operation (e.g., at least one operation for automatic cleaning) corresponding to the first control command based on the received first control command.

[0062] According to one embodiment, the orchestrator (200) may verify a text corresponding to a user voice acquired by, for example, the electronic device (101). The orchestrator (200) may verify (or identify, or select) at least one controllable electronic device among a plurality of external electronic devices (241, 242, 243, 244) based on the text corresponding to the user voice. The orchestrator (200) may verify at least one control command corresponding to at least some of the at least one controllable electronic device based on the text. The orchestrator (200) may, but is not limited to, verify at least one controllable electronic device and / or at least one control command in conjunction with the artificial intelligence-based analysis system (210). The orchestrator (200) can identify at least one control target electronic device and / or at least one control command, for example, based on information associated with text and / or a plurality of external electronic devices (241, 242, 243, 244). For example, the orchestrator (200) can use at least some of the information associated with text and / or a plurality of external electronic devices (241, 242, 243, 244) for an operation for prompting with the artificial intelligence-based analysis system (210). After the operation for prompting is performed, the orchestrator (200) can inquire of the at least one control target electronic device and / or at least one control command to the artificial intelligence-based analysis system (210), and in response, can identify at least one control target electronic device and / or at least one control command, but there is no limitation on the method of identification. Meanwhile, for example, the orchestrator (200) may also verify at least one control target electronic device and / or at least one control command without linking with an artificial intelligence-based analysis system (210).

[0063] According to one embodiment, the orchestrator (200) may verify whether the identified control command by the identified control target electronic device is executable. For example, the orchestrator (200) may request the simulator (220) to verify whether the identified control command by the identified control target electronic device is executable. The simulator (220) may provide a simulation result that provides at least one output for at least one input of the identified control target electronic device, for example. The simulator (220) may store, manage, and / or execute simulation code that can mock the operation of at least one control target electronic device, for example. The simulator (220) may also be referred to as a mock device farm. For example, the simulator (220) may execute a simulation code that provides an output value corresponding to an input value (e.g., a control command) for the first external electronic device (241), and the execution result of the simulation code corresponding to the first external electronic device (241) may be named an instance. The simulation code may be set to provide an output corresponding to the input of the first external electronic device (241). For example, when the first external electronic device (241) receives a control command of “automatic cleaning” in a state where a map is configured, the first external electronic device (241) may provide an output value corresponding to “OK” in response thereto. In addition, when the first external electronic device (241) receives a control command of “automatic cleaning” in a state where a map is not configured, the first external electronic device (241) may provide an output value corresponding to “error” in response thereto. The simulation code corresponding to the first external electronic device (241) may be set to receive “map configuration status” as status information and, when a control command of “automatic cleaning” is received, to provide an output value corresponding to “OK.”In addition, the simulation code corresponding to the first external electronic device (241) may be set to receive “a state in which a map is not configured” as state information, and to provide an output value corresponding to “error” when a control command for “automatic cleaning” is input. As described above, the simulation code may be set to provide an output value in response to a specific input value in a specific state of the external electronic device. The simulation code may be interfaced based on a standard defined by an operating system, such as a restful API or an Intent, but this is exemplary and there is no limitation on the method of its implementation. The simulation code may be different from the control code of an actual external electronic device, for example, and may be implemented as an executable file or an image file, but there is no limitation on the form of its implementation. For example, the simulation code may be written by extracting a part of the actual code of the external electronic device that inputs / provides input / output values, but there is no limitation. The simulation code may be created and registered, for example, by the manufacturer of an external electronic device, but there are no restrictions on who created it. For example, the manufacturer may create and register the entire simulation code, or the simulation code may be completed by inputting some information into the system, for example, through JSON or a datasheet. However, there are no restrictions on the method of registration and / or creation. Meanwhile, those skilled in the art will understand that the simulator (220) may provide simulation results by referencing information (e.g., a lookup table) related to input and output values ​​in a specific state, instead of the simulation code.

[0064] According to one embodiment, the simulator (220) may confirm (or receive or acquire) status information of a control target electronic device identified from, for example, the orchestrator (200) and / or the IoT server (230). For example, assume that a first external electronic device (241) is identified as a control target electronic device, and that the first external electronic device (241) is a robot vacuum cleaner. The status information of the first external electronic device (241) may be, for example, a turned-on state in which no map information for the first region is configured. In addition, assume that “automatic cleaning” is identified as a control command for the first external electronic device (241). The simulator (220) may provide a simulation result of whether the control command of “automatic cleaning” can be executed in a state in which the first external electronic device (241) is turned on and no map information for the first region is configured. The result provided by the simulator (220) may be implemented in the form of a flag such as, for example, “executable” or “non-executable,” but is not limited thereto. For example, as a result provided by the simulator (220), a code corresponding to a negative response may be provided, and according to the code, for example, a control command that must precede the execution of the control command may be confirmed, which will be described later. The status information may be expressed by a turned-on state, a turned-off state, an operation mode, sensing information, and / or stored information, but there are no limitations on the expression method and / or the type of data used for the expression.

[0065] According to one embodiment, if the orchestrator (200) determines, for example based on the simulation results, that the control command can be performed by the first external electronic device (241), the orchestrator (200) may provide the control command to the first external electronic device (241) either directly or through the IoT server (230). For example, the orchestrator (200) may provide the control command to the first external electronic device (241) based on the simulation results. Alternatively, the orchestrator (200) may inquire of the artificial intelligence-based analysis system (210) as to whether to transmit the control command based on the simulation results, and may provide the control command to the first external electronic device (241) based on a positive response being received.

[0066] According to one embodiment, if the orchestrator (200) determines, for example based on the simulation results, that another control command must be executed before the control command is executed by the first external electronic device (241), the orchestrator (200) may provide the determined other control command to the first external electronic device (241) either directly or through the IoT server (230). For example, the orchestrator (200) may provide the other control command determined based on the simulation results to the first external electronic device (241). Alternatively, the orchestrator (200) may inquire of the AI-based analysis system (210) as to whether to transmit the control command based on the simulation results, and may provide the other control command determined based on a negative response to the first external electronic device (241). For example, it is assumed that it is determined that another control command of “map information configuration” must be performed before the control command of “automatic cleaning” is executed. The first external electronic device (241) may perform another control command received. For example, the first external electronic device (241) may perform at least one operation for another control command, “configure map information.” If it is confirmed that the received another control command is performed by the first external electronic device (241), the orchestrator (200) may provide the control command to the first external electronic device (241) via the IoT server (230) or directly. The first external electronic device (241) may perform at least one operation for the received control command (e.g., “automatic cleaning”). According to one embodiment, the electronic device (101) and / or the server (108) may receive a message related to preemptive control, such as “Map information must be configured first before cleaning” as a simulation result for the “automatic cleaning” command, and may use the message to inquire the artificial intelligence-based analysis system (210).The artificial intelligence-based analysis system (210) may also generate and provide a control command for at least one operation for “configuring map information”.

[0067] As described above, the server (108) can check the simulation result for the execution of the control command by the identified external electronic device (for example, the first external electronic device (241) described above). The server (108) can provide the identified control command to the identified external electronic device based on the simulation result, or can provide the external electronic device with a control command that must be performed prior to the execution of the control command. For example, as described above, if map information has already been configured by the first external electronic device (241), the server (108) can provide the control command of “automatic cleaning” to the first external electronic device (241). Alternatively, if map information has not been configured by the first external electronic device (241), the server (108) can first provide the control command of “map information configuration” before providing the control command of “automatic cleaning.” In contrast to the present embodiment, if a control command for “automatic cleaning” is provided to a first external electronic device (241) that does not configure map information, the first external electronic device (241) may not be able to perform the control command. In contrast, as in the present embodiment, since whether or not to provide a control command is determined based on the simulation results by the control command, the possibility of errors in remote control may be reduced.

[0068] In addition, as will be described later, the server (108) can obtain a control command by making a query to the artificial intelligence analysis-based system. However, the artificial intelligence analysis-based system may not be able to provide accurate control commands for recently provided external electronic devices because it performs training based on training data accumulated relatively in the past. Alternatively, if the artificial intelligence analysis-based system uses a generative artificial intelligence model, it may provide false answers (hallucination). Since the server (108) can determine whether to provide a control command using the simulation result, the accuracy of control by a control command linked with the artificial intelligence analysis-based system can also be improved.

[0069] Meanwhile, at least some of the operations described as being performed by the server (108) may also be performed by the electronic device (101). Depending on the implementation, all of the operations described as being performed by the server (108) may also be performed by the electronic device (101), in which case the electronic device (101) may, without being connected to the server (108), identify an external electronic device, a control command, and / or at least one control command requiring precedence in conjunction with the artificial intelligence-based analysis system (210).

[0070] FIG. 2b is a block diagram of an orchestrator according to one embodiment.

[0071] According to one embodiment, the orchestrator (200) may include and / or execute a mediator (201), a device control agent (202), at least one other agent (204a to 204n), and / or a cache (203).

[0072] The mediator (201) can verify a text corresponding to a user voice acquired from, for example, the electronic device (101). For example, automatic speech recognition (ASR) for verifying a text corresponding to the user voice can be performed by the server (108) or can be performed by the electronic device (101). The mediator (201) can verify (or select) one of a plurality of agents (202, 204a, …, 204n) based on, for example, a random forest method using the verified text. Meanwhile, the random forest method is merely exemplary, and there is no limitation on the method for verifying one of a plurality of agents (202, 204a, …, 204n) based on text, and those skilled in the art will understand that an agent can be selected based on NLU (natural language understanding). For example, the mediator (201) can identify (or select) a device control agent (202) based on applying the text to a random forest. The mediator (201) can provide the text to the device control agent (202). Meanwhile, by applying the random forest to the text, any one of the agents (202a, …, 204n) other than the device control agent (202) may be selected.

[0073] The device control agent (202) can transmit and / or receive data with the artificial intelligence-based analysis system (210). The device control agent (202) can, for example, perform at least one operation for prompting with the artificial intelligence-based analysis system (210). The device control agent (202) can, for example, identify a text-based control target electronic device and / or a control command from the artificial intelligence-based analysis system (210), but there is no limitation on the method of identification. The device control agent (202) can request a simulation of the execution of a control command by the identified control target electronic device from the simulator (220). Based on the simulation result, the device control agent (202) can provide the control command to the control target electronic device through the IoT server (230), or can provide another control command to the control target electronic device through the IoT server (230). The device control agent (202) can obtain status information of an external electronic device from, for example, an IoT server (230) and provide it to an artificial intelligence-based analysis system (210) and / or a simulator (220).

[0074] According to one embodiment, the cache (203) may store data for prompting with the artificial intelligence-based analysis system (210), text, identification information of an external electronic device, status information of the external electronic device, a control command, and / or at least one control command that requires precedence before execution of the control command. For example, the server (108) may identify the external electronic device, the control command, and / or at least one control command that requires precedence based at least in part on the information stored in the cache (203) when identical (or similar) text is identified. The at least one control command that requires precedence and the identified control command may be referred to as a control command chain.

[0075] FIG. 3A is a flowchart illustrating an operation method by an electronic device, a server, and an external electronic device according to one embodiment. The embodiment of FIG. 3A will be described with reference to FIG. 3B. FIG. 3B is a block diagram illustrating the operation of a system according to one embodiment. In the following embodiments, each operation may be performed sequentially, but is not necessarily performed sequentially. For example, the order of each operation may be changed, and at least two operations may be performed in parallel.

[0076] Referring to FIG. 3A, according to one embodiment, the electronic device (101) can, in operation 301, verify data (343) corresponding to a user voice (342) uttered by the user (341) of FIG. 3B. For example, the electronic device (101) can obtain data (or, an acoustic signal, or a signal in which an acoustic signal is pre-processed (e.g., noise removal and / or amplification)) (343) corresponding to the user voice through a microphone. The electronic device (101) can, in operation 303, transmit the data (343) corresponding to the user voice (342) to the server (108). The server (108), in operation 305, can verify text corresponding to the user voice based on the data (343) corresponding to the user voice. For example, in the embodiment of FIG. 3, the server (108) may support the ASR function and thus verify text by applying the ASR function to data, but this is exemplary only. In other implementations, the electronic device (101) may verify text by applying the ASR function to data (343) corresponding to the user's voice, and those skilled in the art will understand that the electronic device (101) may provide the text to the server (108).

[0077] According to one embodiment, the server (108), in operation 307, may identify a first external electronic device (241) among a plurality of external electronic devices (241, 242, 243, 244) registered based on a user account based on text as a control target external electronic device, and may identify a first control command corresponding to the first external electronic device (241). For example, the server (108) may identify the first external electronic device (241) and the first control command based on text and / or information about the plurality of external electronic devices (241, 242, 243, 244). In one example, the server (108) may, in conjunction with an artificial intelligence-based analysis system (210), identify the first external electronic device (241) and the first control command based on text and / or information about the plurality of external electronic devices (241, 242, 243, 244), but this is exemplary. In another example, the server (108) may, without being associated with an artificial intelligence-based analysis system (210), identify the first external electronic device (241) and the first control command based on text and / or information about the plurality of external electronic devices (241, 242, 243, 244).

[0078] According to one embodiment, the server (108) may, in operation 309, verify a simulation result for the execution of the first control command by the first external electronic device (241) based on the current state information of the first external electronic device (241). For example, the server (108) (e.g., the simulator (220)) may execute a simulation code capable of simulating the operation of the first external electronic device (241), and may name this a first instance corresponding to the first external electronic device (241). The server (108) may copy (or write, or overwrite) the state information (347) of the first external electronic device (241) to some setting value of the first instance, or may set the state information (347) through a setting function of the first instance. For example, in FIG. 3b, the orchestrator (200) can check the status information (235) of at least some of the plurality of external electronic devices (241, 242, 243, 244) from the IoT server (230) and provide the status information (347) of the first external electronic device (241) to the simulator (220), but this is exemplary. The simulator (220) can also obtain the status information (347) of the first external electronic device (241) from the IoT server (230). The server (108) can input (or apply) a first control command to the first instance for which the status information is set. The server (108) can check the output value provided from the first instance as a simulation result (349).

[0079] According to one embodiment, the server (108) may, in operation 311, determine whether the first control command can be performed by the first external electronic device (241) based on the simulation result (349). For example, the orchestrator (200) may determine the simulation result (349) from the simulator (220). In one example, the server (108) may provide the artificial intelligence-based analysis system (210) with an inquiry (351) regarding whether or not to perform the command based on the simulation result (349). The inquiry (351) regarding whether or not to perform the command may be a text understandable to LLM, such as, for example, “Can the first control command be provided to the first external electronic device (241) based on the simulation result A?”, but there is no limitation on the form of implementation thereof. The server (108) can determine whether the first control command can be performed by the first external electronic device (241) based on a response (353) to an inquiry (351) provided from the artificial intelligence-based analysis system (210). In another example, the server (108) can also determine whether the first control command can be performed by the first external electronic device (241) based on a simulation result without being connected to the artificial intelligence-based analysis system (210). Based on determining that the first control command can be performed by the first external electronic device (241), the server (108) can provide the first control command (355) to the first external electronic device (241) in operation 313. The first external electronic device (241) can perform the first control command (355) in operation 315. Meanwhile, the server (108) can confirm that the first control command (355) cannot be performed by the first external electronic device (241) and that the second control command must be performed before performing the first control command (355).In this case, the server (108) may provide execution of the second control command to the first external electronic device (241), which will be described later.

[0080] Figure 4a is a flowchart illustrating a server operation method according to one embodiment. In the following embodiments, each operation may be performed sequentially, but is not necessarily performed sequentially. For example, the order of each operation may be changed, and at least two operations may be performed in parallel.

[0081] Referring to FIG. 4A, the server (108) may, in operation 401, verify information and text regarding at least one external electronic device. For example, the server (108) may verify identification information of at least one external electronic device stored in response to a user account, type information of at least one external electronic device, capability information of at least one external electronic device, information regarding control commands supported by at least one external electronic device, and / or status information of at least one external electronic device as information regarding at least one external electronic device, but the type thereof is not limited. For example, the identification information of at least one external electronic device may be expressed as a device identification number, an identifier such as a universally unique identifier (UUID), and / or a nickname (or name) registered by a user, but the type thereof is not limited. For example, the type information of at least one external electronic device may be expressed as a model name and / or a category based on a user selection, but the type thereof is not limited. For example, information about the capability information and / or control commands of at least one external electronic device may be expressed as at least one function that can be provided and / or a control command that can be performed, but there is no limitation on the type thereof. For example, status information of at least one external electronic device may be expressed as whether it is on / off, status information of an application that is being executed, an operation status notification variable of the external electronic device, a variable value of an executed program, a physical arrangement status of a component or part, and / or stored information, but there is no limitation on the type thereof.

[0082] According to one embodiment, the server (108), in operation 403, may identify a first external electronic device to be controlled and a first control command based on information about at least one external electronic device and text. For example, the server (108) may identify the first external electronic device and the first control command corresponding to the text by referring to information about at least one external electronic device based on a pre-defined rule and / or an artificial intelligence model. As an example, the server (108) may identify the first external electronic device and the first control command associated with the word “cleaning” included in the text “clean me”, but there is no limitation on the identification method. For example, the server (108) may identify the first external electronic device (241) as a robot vacuum cleaner having capability information of a “cleaning function” including the word “cleaning”, and may identify the first control command of “automatic cleaning” including the word “cleaning”, but this is exemplary and there is no limitation on the identification method. After confirming the first external electronic device and the first control command, the server (108) can confirm the simulation result associated with the execution of the first control command by the first external electronic device, which will be described later. As described above, the server (108) can confirm the first external electronic device and the first control command by using rules and / or artificial intelligence models stored (or managed) by the server (108) without linking with an external artificial intelligence-based analysis system (e.g., a chatbot system using LLM). Meanwhile, this is exemplary, and in another implementation, the server (108) can confirm the first external electronic device and the first control command by linking with an external artificial intelligence-based analysis system (e.g., a chatbot system using LLM), which will be described with reference to FIG. 4b.

[0083] Figure 4b is a flowchart illustrating a server-based operating method according to one embodiment. In the following embodiments, the operations may be performed sequentially, but are not necessarily sequential. For example, the order of the operations may be changed, and at least two operations may be performed in parallel.

[0084] According to one embodiment, referring to FIG. 4B, the server (108) may perform at least one operation for prompting with the AI-based analysis system (210) in operation 411. The server (108) may open a session for prompting with the AI-based analysis system (210) and may perform at least one operation for prompting through the opened session. For example, the server (108) may perform at least one operation for prompting using information about at least one external electronic device. For example, the server (108) may provide the AI-based analysis system (210) with information for setting roles (or, which may be referred to as personas) of each of the server (108) and the AI-based analysis system (210). For example, the server (108) may provide information for role setting, such as “I am a system agent that can run the user’s IoT device with device commands. You are the IoT agent that receives the user’s speech from me and makes device control commands and send me.” to the artificial intelligence-based analysis system (210), but this is exemplary. The artificial intelligence-based analysis system (210) may understand the roles of each of the speaker (e.g., the server (108)) and the artificial intelligence-based analysis system (210) based on information such as the example. For example, the server (108) may provide information related to the properties and processing rules of data transmitted / received between the server (108) and the artificial intelligence-based analysis system (210), to the artificial intelligence-based analysis system (210).For example, the server (108) may provide information associated with data attributes such as “The device control command can be a single command or a chain of multiple commands.” For example, the server (108) may provide information associated with processing rules such as “If you send me a command, I can send you a response of that command execution result. I can also notify you of a device event during a conversation when a user's device async event arrives. If you finish building and send me a device command or a chain of device commands, you must inform the user of the response to that user's voice. If you let me know the response to be delivered to the user, I'll deliver it to the user through the TTS engine. If you think all requests have been finished, you should notify the user using speak_response_touser().” For example, the server (108) may provide information on commands that the role of the artificial intelligence-based analysis system (210) can use. Information about commands may include, but is not limited to, information describing at least one command and its function, purpose, and / or usage. For example, the server (108) may provide information about a command such as, “I will tell you which commands you can use;.”For example, the available command “show_room_list()” may be associated with providing a list of rooms in which external electronic devices are placed. The available command “show_device_list()” may be associated with providing a list of external electronic devices registered for a user account, for example. The available command “show_room_list_by_room(device_id)” may be associated with providing a list of external electronic devices by room. The available command “get_device_status(device_id)” may be associated with obtaining status information of an external electronic device. The available command “get_device_command_list(device_id)” may be associated with obtaining a list of control commands that an external electronic device can perform. The available command “post_device_command(device_id,command)” may be associated with providing a control command for a specific external electronic device. The available command, “ask_question_to_user(question_text),” may be associated with an inquiry regarding specific content for the user. There are no limitations on the types and / or number of available commands. For example, after providing the above-described information, the server (108) may receive information indicating completion of understanding from the artificial intelligence-based analysis system (210), such as “Understood. Let’s proceed with providing assistance for your IoT device control needs. Feel free to ask me anything about your devices.” The information transmitted and received for the above-described prompting is merely exemplary.

[0085] According to one embodiment, the server (108) may, in operation 413, check information and text regarding at least one external electronic device. The server (108) may, in operation 415, provide information and text regarding at least one external electronic device to the artificial intelligence-based analysis system (210). The artificial intelligence-based analysis system (210) may, in operation 417, receive information regarding a first external electronic device to be controlled and a first control command from the artificial intelligence-based analysis system (210). For example, the server (108) may provide information regarding each of a plurality of external electronic devices (241, 242, 243, 244) and the text “clean it” to the artificial intelligence-based analysis system (210). The server (108) may provide information about each of a plurality of external electronic devices (241, 242, 243, 244) and the text “Clean up” as one or more transmission messages to the artificial intelligence-based analysis system (210). For example, the server (108) may provide information indicating that a text such as “User speech arrived: “Clean up”” has been confirmed to the artificial intelligence-based analysis system (210).

[0086] According to one embodiment, the AI-based analysis system (210) may request additional information from the server (108), for example, to verify the first external electronic device and the first control command. For example, after transmitting information of “User speech arrived: “Clean up”,” the server (108) may request information about at least one external electronic device from the AI-based analysis system (210). For example, the AI-based analysis system (210) may request a list of external electronic devices from the server (108) to verify the external electronic devices corresponding to “Clean up,” in which case the AI-based analysis system (210) may use the command of “show_device_list()” shared during the prompting process. Table 1 is an example of information (or request) provided from the AI-based analysis system (210) to the server (108).

[0087] Based on the user's speech, it seems like the user wants to start a cleaning action. This could likely be related to a smart vacuum cleaner. Let's first identify if the user has a vacuum cleaner device.So, I will first use the show_deivce_list() command to get the list of all devices. Then, I can identify if there is a vacuum cleaner in the list and get its device id. Once I have the device id, I can use the post_device_command(device_id, command) to start the cleaning action.Let's start the first step.show_device_list()

[0088] The information (or request) in Table 1 may include the results understood by the artificial intelligence-based analysis system (210) and the content that additional information related to external electronic devices is required based on the results. In addition, the information in Table 1 may include, for example, that "show_device_list()" may be used for the additional requested information, and that "post_device_command(device_id, command)" may be used once the external electronic device is identified. In addition, the information in Table 1 may include the content that "show_device_list()" will be used.

[0089] The server (108) may execute a command of "show_device_list()" based on information (or a request) such as Table 1, for example, and provide information on registered external electronic devices corresponding to a user account identified according to the result of executing the command to the artificial intelligence-based analysis system (210). For example, Table 2 may be information (or a response) provided by the server (108) in response to information (or a request) such as Table 1.

[0090] System: Response of show_device_list()[{"name":"stick vacuum claner","device_id"L"aaaa-aaaa-aaaa-aaaa","room_id":"1111-1111-1111-1111""device_type":"oic.d.cleaner"}{"name":"robot vacuum claner","device_id":"bbbb-bbbb-bbbb-bbbb","room_id":"1111-1111-1111-1111""device_type":"oic.robot.cleane r"}{"name":"TV","device_id":"cccc-cccc-cccc-cccc","room_id":"1111-1111-1111-1111""device_type":"oic.d.tv"

[0091] The information (or response) of Table 2 may be the execution result of the command “show_device_list()” requested by the artificial intelligence-based analysis system (210). The execution result of the command may include external electronic devices (e.g., stick vacuum cleaner, robot vacuum cleaner, TV) registered in response to the user account and related identification information (e.g., device identifier, space identifier, and / or type), but is not limited thereto. The artificial intelligence-based analysis system (210) may confirm that the stick vacuum cleaner, robot vacuum cleaner, and TV are registered in response to the user account based on the information (or response) of Table 2.

[0092] Meanwhile, for automatic response of the server (108), the server (108) may request the AI-based analysis system (210) to respond with only commands in response to information (or requests) such as Table 1. For example, the server (108) may provide information such as “Your answer must always be a function with parameters (or no parameters)” to the AI-based analysis system (210) in response to information (or requests) such as Table 1. The AI-based analysis system (210) may exclude parts such as understanding results and / or intentions from the information in Table 1 and provide only commands (or functions). In this case, the AI-based analysis system (210) may replace information such as Table 1 and provide only commands that require execution, such as “show_device_list().” The server (108) can execute the command “show_device_list()” and provide information (or response) such as Table 2, which is the result of executing the command, to the artificial intelligence-based analysis system (210).

[0093] According to one embodiment, the AI-based analysis system (210) may, based on the information (or response) in Table 2, determine that a stick vacuum cleaner, a robot vacuum cleaner, and a TV are registered in response to a user account, and select any one of them. For example, the AI-based analysis system (210) may inquire of the user about a control target, and may select a control target based on the user's selection of the result of the inquiry. The inquiry of the user about the control target will be described with reference to FIGS. 5A and 5B. Alternatively, the AI-based analysis system (210) may select any one of at least one identified external electronic device without separate interaction with the user. For example, the artificial intelligence-based analysis system (210) may primarily confirm that a stick vacuum cleaner or a robot vacuum cleaner is related to cleaning, and may confirm that the one that supports the “automatic cleaning” function among them is a robot vacuum cleaner based on semantic analysis, or may additionally confirm by receiving information about the capability of an external electronic device and / or information about a control command from a server (108), and there is no limitation on the confirmation method.

[0094] According to one embodiment, as described above, the artificial intelligence-based analysis system (210) can identify (or select) a first external electronic device (241) to be controlled (e.g., a robot vacuum cleaner). In order to identify the first control command, the artificial intelligence-based analysis system (210) can request a list of control commands supported by the first external electronic device (241) from the server (108). Table 3 is an example of information (or requests) provided from the artificial intelligence-based analysis system (210) to the server (108).

[0095] The user has chosen the robot vacuum cleaner for cleaning. Therefore, we need to execute the cleaning command for the robot vacuum cleaner.The device_id for the robot vacuum cleaner from the device list is "bbbb-bbbb-bbbb-bbbb". Now, we need to check the possible commands for the robot vacuum cleaner using the get_device_command_list(device_id) command.get_device_command_list("bbbb-bbbb-bbbb-bbbb")

[0096] The information in Table 3 may include, for example, a request for a list of control commands supported by a robot vacuum cleaner (e.g., an external electronic device with an identifier of bbbb-bbbb-bbbb-bbbb), based on the determination of a robot vacuum cleaner. Accordingly, the information in Table 3 may include a request for execution of a command of "get_device_command_list(device_id)" defined in the prompting process, and a request for execution of a command of "get_device_command_list(bbbb-bbbb-bbbb-bbbb)".

[0097] The server (108) may execute the command "get_device_command_list(bbbb-bbbb-bbbb-bbbb)" based on information (or request) such as Table 3, for example, and provide a list of control commands supported by the robot vacuum cleaner, which is confirmed based on the result of executing the command, to the artificial intelligence-based analysis system (210). For example, Table 4 may be information (or response) provided by the server (108) in response to information (or request) such as Table 3.

[0098] System: Response of get_device_command_list("bbbb-bbbb-bbbb-bbbb")[{"name":" / command / startBuildMap"},{"name":" / capability / switch", "supportedValue":["on","off"]}{"name":" / capability / mode, "supportedValue": ["Charging", "AutoCleaning","returnToHome","Cleaning"'},{"name":" / command / targetLocatoin", "supportedValue": "any room name"}]

[0099] The information (or response) in Table 4 may be the execution result of the command "get_device_command_list(bbbb-bbbb-bbbb-bbbb)" requested by the artificial intelligence-based analysis system (210). The execution result of the command may include a list of control commands supported by the robot vacuum cleaner, but is not limited thereto. The artificial intelligence-based analysis system (210) may check the list of control commands supported by the robot vacuum cleaner based on the information (or response) in Table 4.

[0100] Meanwhile, for automatic response of the server (108), the server (108) may request the AI-based analysis system (210) to respond with only commands in response to information (or requests) such as Table 3. For example, the server (108) may provide information such as "Your answer must always be a function with parameters (or no parameters)" to the AI-based analysis system (210) in response to information (or requests) such as Table 3. The AI-based analysis system (210) may exclude parts such as understanding results and / or intentions from the information in Table 3 and provide only commands (or functions). In this case, the AI-based analysis system (210) may replace information such as Table 3 and provide only commands that require execution, such as "get_device_command_list(bbbb-bbbb-bbbb-bbbb)". The server (108) can execute the command of "get_device_command_list(bbbb-bbbb-bbbb-bbbb)" and can also provide information (or response) such as Table 4, which is the result of executing the command, to the artificial intelligence-based analysis system (210).

[0101] According to one embodiment, the artificial intelligence-based analysis system (210) may identify a first control command (e.g., “autocleaning”) corresponding to a text (e.g., “clean up”) based on information (or responses) as shown in Table 4. The artificial intelligence-based analysis system (210) may provide information about the identified first external electronic device (241) and the first control command to the server (108). For example, the artificial intelligence-based analysis system (210) may provide the command of "post_device_command("bbbb-bbbb-bbbb-bbbb", {"name":" / capability / mode", "value":"AutoCleaning"}" to the server (108). Accordingly, the server (108) may check information about the first external electronic device (241) and the first control command. Meanwhile, the server (108) may not directly transmit the first control command to the first external electronic device (241), but may check the simulation result for the execution of the first control command by the first external electronic device (241). The server (108) may perform an operation for transmitting the first control command to the first external electronic device (241) based on the simulation result, or may perform an operation for transmitting a second control command that must be preceded by the first control command to the first external electronic device (241). It may also be the case. As described above, it is merely exemplary that the server (108) and the artificial intelligence-based analysis system (210) first check the first external electronic device (241) to be controlled, and then check the first control command. Those skilled in the art will understand that the order may be changed, or at least the information may be checked simultaneously.

[0102] FIG. 5A is a flowchart illustrating an operation method of an electronic device, a server, and an artificial intelligence-based analysis system according to one embodiment. The embodiment of FIG. 5A will be described with reference to FIG. 5B . FIG. 5B is a diagram illustrating the operation of an electronic device according to embodiments. In the following embodiments, each operation may be performed sequentially, but is not necessarily performed sequentially. For example, the order of each operation may be changed, and at least two operations may be performed in parallel.

[0103] According to one embodiment, the electronic device (101) may, in operation 501, identify data corresponding to the user's voice. The electronic device (101) may, in operation 503, transmit data corresponding to the user's voice. The server (108), in operation 505, may identify text corresponding to the user's voice based on the data corresponding to the user's voice. Operations 501, 503, and / or 505 have been described above with reference to FIG. 3A, and therefore, detailed descriptions thereof will not be repeated herein.

[0104] According to one embodiment, the server (108) may, in operation 507, provide text and information about at least one external electronic device to the AI-based analysis system (210). In operation 509, the server (108) may receive information about a plurality of candidate external electronic devices and / or information about a plurality of candidate control commands from the AI-based analysis system (210). For example, after providing information (or responses) as in Table 2, the server (108) may receive information (or requests) as in Table 5 from the AI-based analysis system (210).

[0105] ask_question_to_user("Which vacuum cleaner would you like to use for cleaning, the stick vacuum cleaner or the robot cavuum cleaner?)

[0106] The information (or request) of Table 5 may include content requesting execution of the “ask_question_to_user” command. The server (108) may execute the “ask_question_to_user” command. The server (108) may inquire the user about the content of “which vacuum cleaner would like to use for cleaning, the stick vacuum or the robot vacuum cleaner?” included in the “ask_question_to_user” command. Accordingly, the server (108) may, in operation 511, provide information that causes provision of a user interface to the electronic device (101). The information that causes provision of a user interface may be, for example, information that causes display of the text “which vacuum cleaner would like to use for cleaning, the stick vacuum or the robot vacuum cleaner?” and / or output of a text-to-speech conversion result. Alternatively, the information that causes the provision of a user interface may be information that causes the provision of user interfaces (551, 561) provided in examples (550, 560) of FIG. 5B. For example, the electronic device (101) may, in operation 513 of FIG. 5A, confirm information about the first external electronic device (241) and / or a first control command through the user interface. For example, referring to FIG. 5B, the electronic device (101) may provide a first user interface (551) as in the first example (550). The first user interface (551) may include text (552) for guiding the selection of an external electronic device and elements (553, 554, 555) for the selection of candidate external electronic devices, but there is no limitation on the implementation thereof.Alternatively, the electronic device (101) may confirm the user's selection based on a voice-based user interface rather than a visual user interface. For example, the electronic device (101) may output a voice such as, "Should the robot vacuum cleaner or the stick vacuum cleaner process the 'clean' command?" and then provide data and / or text corresponding to the user's voice (e.g., information regarding the robot vacuum cleaner's selection) to the server (108).

[0107] For example, the electronic device (101) may provide a second user interface (561) as in the second example (560). The second user interface (561) may include text (562) for guiding selection of a control command and elements (563, 564, 565) for selection of candidate control commands, but there is no limitation on its implementation. Alternatively, the electronic device (101) may confirm a user selection based on a voice-based user interface rather than a visual user interface. For example, the electronic device (101) may output a voice such as “Should I perform “house cleaning” or “laundry” in response to the command “clean”, and thereafter provide data and / or text corresponding to the user’s voice (e.g., information about the selection of “house cleaning”) to the server (108).

[0108] According to one embodiment, the electronic device (101) may, in operation 515, provide information about the first external electronic device (241) and / or a first control command to the server (108). The server (108), in operation 517, may perform at least one operation for providing the first control command to the first external electronic device (241). For example, the server (108) may check a simulation result based on the result of execution of the first control command by the first external electronic device (241). The server (108) may provide the first control command to the first external electronic device (241) based on the simulation result. Alternatively, the server (108) may provide the second control command, which should be preceded by the first control command, to the first external electronic device (241) based on the simulation result.

[0109] Figure 6 is a flowchart illustrating a server operation method according to one embodiment. In the following embodiments, each operation may be performed sequentially, but is not necessarily performed sequentially. For example, the order of each operation may be changed, and at least two operations may be performed in parallel.

[0110] According to one embodiment, the server (108) may, in operation 601, verify a simulation result for the execution of the first control command based on the status information of the first external electronic device (241). For example, the orchestrator (200) may verify the first external electronic device (241) and the first control command, and request a simulation for the execution of the first control command from the simulator (220) based on the status information of the first external electronic device (241). The simulator (220) may, for example, verify the status information of the first external electronic device (241) and provide a simulation result of the first control command in the status information. The server (108) may, in operation 603, request an analysis of the simulation result from the artificial intelligence analysis system (210). For example, it may be assumed that the simulation result is “success.” The simulator (220) can output a result of “success” based on whether the simulation result of executing the first control command is successful in the status information of the first external electronic device (241). For example, if the status information of the robot vacuum cleaner, which is the first external electronic device (241), is in a state where it constitutes map information, the simulator (220) can output a result of “success” based on whether the simulation result is successful. The server (108) can request an analysis of the simulation result “success” to the artificial intelligence analysis system (210). Table 6 is an example of a request for analysis of the simulation result “success.”

[0111] I can predict the response to a command by sending the result to the simulator before sending the command to the real device.This is expected response of post_device_command("bbbb-bbbb-bbbb-bbbb", { "name": " / command / Autocleaning"}){"result": "success"}Are you want to send command?

[0112] The information in Table 6 may include information about executing a simulation before providing the first control command (Autoclean) to the first external electronic device (241), information about the execution result (result) of the first control command being “success,” and information about whether the first control command can be transmitted to the first external electronic device (241). The artificial intelligence-based analysis system (210) may receive information such as Table 6 and analyze whether the first control command can be transmitted to the first external electronic device (241). For example, the artificial intelligence-based analysis system (210) may analyze that the first control command can be transmitted to the first external electronic device (241) based on the simulation result of “success.”

[0113] According to one embodiment, the artificial intelligence-based analysis system (210) may, in operation 605, provide the analysis result to the server (108). If the artificial intelligence-based analysis system (210) analyzes that the first control command can be transmitted to the first external electronic device (241) based on the simulation result of “success,” the artificial intelligence-based analysis system (210) may transmit a positive response to the server (108). The positive response may be a command for providing the first control command to the first external electronic device (241), such as, for example, “post_device_command("bbbb-bbbb-bbbb-bbbb", { "name": " / command / Autocleaning"})”, but this is exemplary and there is no limitation on the implementation method thereof. The server (108), in operation 607, may provide the first control command to the first external electronic device (241) based on the analysis result being a positive response. Meanwhile, the artificial intelligence-based analysis system (210) may also provide a negative response, which will be described with reference to FIG. 9A. As described above, the server (108), in conjunction with the artificial intelligence-based analysis system (210), may ultimately determine whether to transmit the first control command to the first external electronic device (241), and thus, there may be no need to build rules and / or artificial intelligence models for analyzing the analysis results in the server (108). Meanwhile, this is exemplary, and those skilled in the art will understand that in another implementation, the server (108) may determine whether to transmit the first control command based on the simulation result based on rules and / or artificial intelligence models that it manages (or stores).

[0114] Figure 7a is a block diagram of a simulator according to one embodiment.

[0115] According to one embodiment, the simulator (220) may include, manage, and / or execute a gateway (221), an instance manager (222), a repository (223), a first instance (224), and / or a second instance (225).

[0116] According to one embodiment, the gateway (221) may be a module that receives an external request, for example, in the form of a Restful API, and returns it in the form of JSON. The gateway (221) may also be called a mock device farm API gateway. The gateway (221) may be implemented as a server using a back-end library, for example, or may be implemented as a receiving module that receives an intent based on a mobile environment.

[0117] According to one embodiment, the instance manager (222) may create (or execute) a runtime instance based on information from the repository (223). The instance may also execute simulation code for simulation. In a cloud environment, the simulation code may be executed based on sub-processes and / or microservices, for example, and in an embedded environment, the simulation code may be executed based on sub-processes and / or threads, but there is no limitation on the execution method.

[0118] According to one embodiment, the storage (223) may store code (or an executable file or an image file) for the simulation. As described above, the manufacturer of the external electronic device may, for example, create code for the simulation and register it with the server (108). Those skilled in the art will understand that the code for the simulation may be created entirely by the manufacturer, or may be created based on a server-friendly SDK (software development kit), such as a web user interface. For example, the code for the simulation may be managed by model name (or may be named model identification information), but those skilled in the art will understand that there is no limitation on the identification information for the management.

[0119] According to one embodiment, the instance manager (222) can create (or execute) a first instance (224) by executing a simulation code corresponding to a first external electronic device (241) stored in a storage (223). The instance manager (222) can create (or execute) a second instance (225) by executing a simulation code corresponding to a second external electronic device (242) stored in a storage (223). The instances (224, 225) (or child processes) can have a life cycle of creation, execution, and destruction. For example, the instances (224, 225) can operate based on a Javascript engine or Python, but there is no limitation and can also include a runtime. The instances (224, 225) can, for example, receive a control command and provide a result of its execution. Instances (224, 225) may be created and maintained, for example, while a session is maintained, and may be destroyed when the session ends, but there are no restrictions on the triggers for their creation and / or destruction. Meanwhile, the unique IDs of the instances (224, 225) may be provided to the orchestrator (200). The orchestrator (200) can manage the unique IDs and control that control commands are provided to instances with specific unique IDs.

[0120] Figure 7b is a flowchart illustrating an instance creation process according to one embodiment. In the following embodiments, each operation may be performed sequentially, but is not necessarily sequential. For example, the order of each operation may be changed, and at least two operations may be performed in parallel.

[0121] According to one embodiment, the orchestrator (200) may, in operation 711, provide an instance creation request. For example, the orchestrator (220) may provide an instance creation request including a model name identified as a control target; however, as described above, the model name is merely exemplary and those skilled in the art will understand that there is no limitation on information for identifying an instance. The gateway (221) may, in operation 713, provide the received instance creation request to the instance manager (222). The instance manager (222) may, in operation 715, obtain instance creation information from the repository (223) based on the instance creation request. For example, the instance manager (222) may obtain instance creation information corresponding to identification information (e.g., model name) included in the instance creation request. The instance manager (222) can create a first instance (224) based on the acquired instance creation information in operation 717, and execute the first instance (224) in operation 719. The first instance (224) can request status information of the first external electronic device (241) from the IoT server (230) in operation 721. The IoT server (230) can provide the status information of the first external electronic device (241) to the first instance (224) in operation 723. The first instance (224) can store the provided status information of the first external electronic device (241) in operation 725. The first instance (224) can notify the instance manager (222) of the completion of instance creation in operation 727. The instance manager (222) may, in operation 729, notify the gateway (221) of the completion of instance creation. The gateway (221), in operation 731, may notify the orchestrator (200) of the completion of instance creation. As described above, the orchestrator (200) may be provided with a unique ID of the first instance (224).

[0122] Figure 7c is a flowchart illustrating a control command processing process according to one embodiment. In the following embodiments, each operation may be performed sequentially, but is not necessarily performed sequentially. For example, the order of each operation may be changed, and at least two operations may be performed in parallel.

[0123] According to one embodiment, the orchestrator (200) may provide a first control command to the gateway (221) as in operation 741 after being notified of the completion of instance creation, for example, as in FIG. 7B. The gateway (221) may provide the first control command to the instance manager (222) as in operation 743. For example, the orchestrator (200) may request that the first control command be provided to an instance corresponding to a pre-stored unique ID. The instance manager (222) may provide the first control command to the first instance (224). For example, the instance manager (222) may provide the first control command to the first instance (224), which is an instance having a specific unique ID, but there is no limitation on the method of identifying the instance by the instance manager (222). The first instance (224) may be in a state where the state information of the first external electronic device (241) is stored, for example, as described in FIG. 7B. Accordingly, the first instance (224) may, in operation 747, confirm the execution result of the first control command based on the state information of the first external electronic device (241). The first instance (224) may, in operation 749, provide the execution result to the instance manager (222). The instance manager (222) may, in operation 751, provide the execution result to the gateway (221). The gateway (221) may, in operation 753, provide the execution result to the orchestrator (200). The orchestrator may confirm the execution result as a simulation result.

[0124] Figure 7d is a block diagram of a simulator according to one embodiment.

[0125] According to one embodiment, the simulator (220) may include and / or execute a gateway (221), an instance manager (222), a first instance (224), and a filter (227). The gateway (221) may provide a first control command (760) to the instance manager (222). The instance manager (222) may provide the first control command (760) to the first instance (224). The first instance (224) may be in a state where the state information of the first external electronic device (241) is stored, for example, as described in FIG. 7B. Accordingly, the first instance (224) may check the execution result (761) of the first control command (760) based on the state information of the first external electronic device (241). The first instance (224) can provide the execution result (761) to the instance manager (222). The instance manager (222) can provide the execution result (761) to the filter (227). The filter (227) can adjust the input execution result (761) and provide the adjusted execution result (762) to the orchestrator (200) via the gateway (221).

[0126] For example, the filter (227) can receive an execution result (761) as shown in Table 7 from the instance manager (222).

[0127] {"result":"error","resultCode: 4444"}

[0128] The filter (227) can perform adjustments to add text for analysis by the artificial intelligence-based analysis system (210) to the execution result (761) as shown in Table 7. The adjusted execution result (762) can be as shown in Table 8.

[0129] {"result":"error","resultCode: 4444,"error":{"msg":"CANT_START_DEVICE_COMMAND_BY_MAP_BUILDING"}}

[0130] For example, as in Table 8, an adjustment may be performed to add the content of “CANT_START_DEVICE_COMMAND_BY_MAP_BUILDING” for analysis by the artificial intelligence-based analysis system (210). The artificial intelligence-based analysis system (210) may not be able to provide information such as, for example, Table 7 alone, whether or not to transmit a control command and / or a control command that must precede the control command. For example, if the external electronic device is an old model, a detailed reason such as “CANT_START_DEVICE_COMMAND_BY_MAP_BUILDING” may not be provided, in which case analysis by the artificial intelligence-based analysis system (210) may be impossible or inaccurate. The manufacturer may additionally register a code such as a filter (227) for old models, thereby enabling more accurate analysis by the artificial intelligence-based analysis system (210). Meanwhile, the fact that the filter (227) operates (or executes) separately from the simulation code (or instance) is merely exemplary, and the manufacturer may update the simulation code so that detailed reasons may be included in the simulation results.

[0131] FIG. 8 is a flowchart illustrating an operating method of an electronic device, a server, and an external electronic device according to one embodiment. In the following embodiments, each operation may be performed sequentially, but is not necessarily performed sequentially. For example, the order of each operation may be changed, and at least two operations may be performed in parallel.

[0132] According to one embodiment, the electronic device (101) may, in operation 801, identify data corresponding to the user's voice. The electronic device (101) may, in operation 803, transmit data corresponding to the user's voice. The server (108), in operation 805, may identify text corresponding to the user's voice based on the data corresponding to the user's voice. Operations 801, 803, and / or 805 have been described above with reference to FIG. 3A, and therefore, detailed descriptions thereof will not be repeated herein.

[0133] According to one embodiment, the server (108) can, in operation 807, identify the first external electronic device (241) and the first control command based on the text. In operation 809, the server (108) can identify a simulation result for the execution of the first command by the first external electronic device (241) based on the status information of the first external electronic device (241). In operation 811, the server (108) can identify whether the first control command can be performed by the first external electronic device (241) based on the simulation result. If it is identified that the first control command can be performed by the first external electronic device (241) (operation 811 - Yes), the server (108) can provide the first control command to the first external electronic device (241) in operation 813. The first external electronic device (241) can perform the first control command in operation 815.

[0134] Meanwhile, if it is determined that the first control command cannot be performed by the first external electronic device (241) (Operation 811 - No), the server (108) may perform at least one operation associated with the inability to execute in operation 817. For example, the server (108) may determine a second control command that must be performed before the first control command is performed. The server (108) may provide the second control command to the first external electronic device (241). For example, the server (108) may determine that the first control command cannot be performed because the first control command is “automatic cleaning” and the status information of the first external electronic device (241) does not configure “map information.” The server (108) may determine that “configuring map information” must be performed before “automatic cleaning.” For example, the server (108) may determine that “map information configuration” should be performed before “automatic cleaning” based on rules and / or artificial intelligence models managed and / or executed by the server (108). Alternatively, the server (108) may determine that “map information configuration” should be performed before “automatic cleaning” based on a connection with an artificial intelligence-based analysis system (210), which will be described with reference to FIGS. 9A and 9B. When the server (108) provides a second control command (e.g., “map information configuration”) to the first external electronic device (241), the first external electronic device (241) may configure map information based on the second control command. Thereafter, the server (108) may provide a first control command to the first external electronic device (241), and the first external electronic device (241) may perform automatic cleaning based on the first control command. Alternatively, the server (108) may provide information indicating that the first control command cannot be performed to the electronic device (101).The electronic device (101) may output information indicating that the first control command cannot be performed, thereby allowing the user to understand that the first control command cannot be performed. For example, the server (108) may provide the electronic device (101) with a reason why the first control command cannot be performed (e.g., map information is not configured). The electronic device (101) may also output a reason why the first control command cannot be performed (e.g., map information is not configured), thereby allowing the user to understand the reason why the first control command cannot be performed and perform an operation to perform the first control command.

[0135] FIG. 9A is a flowchart illustrating an operation method of a server and an artificial intelligence-based analysis system according to one embodiment. The embodiment of FIG. 9A will be described with reference to FIG. 9B. FIG. 9B is a diagram illustrating data transmission and reception between an electronic device (101), a server (108), and an artificial intelligence-based analysis system (210) according to one embodiment. In the following embodiments, each operation may be performed sequentially, but is not necessarily performed sequentially. For example, the order of each operation may be changed, and at least two operations may be performed in parallel.

[0136] According to one embodiment, the server (108) may, in operation 901, verify a simulation result for the execution of the first control command based on the status information of the first external electronic device (241). The server (108) may provide simulation information (935) to the simulator (220), for example, as in FIG. 9B , and the simulation information (935) may include, but is not limited to, identification information of the first external electronic device (241), status information of the first external electronic device (241), and / or the first control command. The simulator (220) may, based on the provided information (935), execute a simulation code corresponding to the first external electronic device (241), and provide a simulation result (937) by providing at least a part of the information (935) to the simulation code, but is not limited to.

[0137] Referring back to FIG. 9A, according to one embodiment, the server (108) may, at operation 903, transmit an analysis request for the simulation results to the AI-based analysis system (210). The AI-based analysis system (210) may, at operation 905, provide the analysis results to the server (108). For example, as in FIG. 9B, the orchestrator (200) may transmit an analysis request (931) for the simulation results to the AI-based analysis system (210). The AI-based analysis system (210) may provide an analysis result (933) by applying the analysis request (931) for the simulation results to, for example, an LLM.

[0138] Referring back to FIG. 9A, the server (108) may, in operation 907, provide a second control command to the first external electronic device (241) based on the analysis result (933) being a negative response. For example, the server (108) may receive a simulation result (937) as in Table 8 from the artificial intelligence-based analysis system (210). The server (108) may transmit an analysis request (931) for the simulation result (937) as in Table 8 to the artificial intelligence-based analysis system (210), and the artificial intelligence-based analysis system (210) may analyze whether to transmit the first control command based on the simulation result (937) as in Table 8. Table 9 is an example of an analysis request (931) provided to the artificial intelligence-based analysis system (210).

[0139] I can predict the response to a command by sending the result to the simulator before sending the command to the real device.This is expected response of post_device_command("bbbb-bbbb-bbbb-bbbb", { "name": " / capability / mode", "value": "AutoCleaning"}){"result": "error","resultCode: 4444,"error": {"msg": " CANT_START_DEVICE_COMMAND_WITHOUT_MAP_BUILDING "}}Are you still want to send command to real device?

[0140] The analysis request (931) of Table 9 may include information about executing a simulation before providing the first control command (Autocleaning) to the first external electronic device (241), information about the execution result (result) of the first control command being information as shown in Table 8, and information about whether the first control command can be transmitted to the first external electronic device (241). The artificial intelligence-based analysis system (210) may receive the analysis request (931) of Table 9 and analyze whether the first control command can be transmitted to the first external electronic device (241). For example, the artificial intelligence-based analysis system (210) may provide an analysis result (933) indicating that the first control command cannot be performed and that the second control command (map configuration) must be performed before performing the first control command. Depending on the implementation, the artificial intelligence system (210) may provide the analysis result (933) immediately in response to the analysis request (931), or the artificial intelligence system (210) may provide the analysis result (933) through additional data transmission / reception with the server (108) after receiving the analysis request (931). For example, the artificial intelligence system (210) may first provide content indicating that the first control command cannot be transmitted in response to the analysis request (931). Table 10 is an example of a response to the analysis request (931).

[0141] Apologies for the misunderstanding. Let me check the available commands for the robotic vacuum cleaner.get_device_command_list("bbbb-bbbb-bbbb-bbbb")

[0142] The response of Table 10 may include, for example, a content indicating that the first control command cannot be transmitted and a command requesting a list of control commands supported by the first external electronic device (241). In response, the server (108) may provide information such as Table 4 to the artificial intelligence-based analysis system (210). The artificial intelligence-based analysis system (210) may provide information requesting the execution of a second control command that must be performed before the first control command such as Table 11 is performed, for example.

[0143] post_device_command("bbbb-bbbb-bbbb-bbbb", { "name": " / command / startBuildMap"})

[0144] Referring to FIG. 9B, the orchestrator (200) can determine, based on the analysis result (933), that the second control command must be executed before the first control command is executed. The orchestrator (200) can provide the second control command (939) to the first external electronic device (241), for example, via the IoT server (230) or directly. The first external electronic device (241) can execute the second control command (939). For example, the first external electronic device (241) can perform map configuration. Thereafter, the server (108) can provide the first control command to the first external electronic device (241), and accordingly, the first external electronic device (241) can provide the first control command. Alternatively, the server (108) may instruct the first external electronic device (241) to perform the second control command first while providing the first control command and the second control command. Although not illustrated, the server (108) may also perform a simulation for the second control command according to information such as Table 11, and may determine whether to transmit the second control command based on the simulation result. For example, the server (108) may assume that a simulation result of “success” has been confirmed for the second control command. In this case, the server (108) may store the simulation result of “success” and / or analyze it based on the executed rule and / or artificial intelligence model, and provide the second control command to the first external electronic device (241) based on the analysis result. Alternatively, the server (108) may request an analysis of the simulation result of “success” to the artificial intelligence-based analysis system (210). For example, Table 12 is an example of an analysis request for the simulation result of “success.”

[0145] I can predict the response to a command by sending the result to the simulator before sending the command to the real device.This is expected response of post_device_command("bbbb-bbbb-bbbb-bbbb", { "name": " / command / startBuildMap"}){"result": "success"}Are you still want to send command?

[0146] The analysis request of Table 12 may include content that a simulation is executed before providing a second control command (startBuildMap) to the first external electronic device (241), content that the execution result (result) of the second control command is “success,” and content that inquires whether the second control command can be transmitted to the first external electronic device (241). The artificial intelligence-based analysis system (210) may receive the analysis request of Table 12 and analyze whether the second control command can be transmitted to the first external electronic device (241). For example, the artificial intelligence-based analysis system (210) may analyze that the second control command can be performed. Based on confirming that the second control command can be performed, the artificial intelligence-based analysis system (210) may provide an analysis result, such as, for example, Table 11. The server (108) can provide a second control command to the first external electronic device (241) based on the analysis results as shown in Table 11.

[0147] Figure 10 is a flowchart illustrating a server operation method according to one embodiment. In the following embodiments, each operation may be performed sequentially, but is not necessarily performed sequentially. For example, the order of each operation may be changed, and at least two operations may be performed in parallel.

[0148] According to one embodiment, the server (108) may, in operation 1001, verify the first external electronic device (241) and the first control command based on text. In operation 1003, the server (108) may verify a simulation result for the execution of the first control command by the first external electronic device (241) based on status information of the first external electronic device (241). In operation 1005, the server (108) may verify that the second control command must be executed before the first control command is executed by the first external electronic device (241) based on the simulation result. For example, the server (108) may receive information such as Table 11 from the artificial intelligence-based analysis system (210) and verify the second control command, but there is no limitation on the verification method. The server (108) may provide a second control command to the first external electronic device (241) in operation 1007. The server (108) may confirm that the second control command is executed in operation 1009. For example, the server (108) may confirm information for identifying the first external electronic device (241) (e.g., "device_id": "bbbb-bbbb-bbbb-bbbb") and information about the event content (e.g., "Map building has been finished"). The server (108) may provide a first control command to the first external electronic device (241) in operation 1011. Based on confirming that the second control command is executed, the server (108) may immediately provide the first control command to the first external electronic device (241). Alternatively, the server (108) may request the AI-based analysis system (210) to analyze information indicating that the second control command is being performed, and may provide the first control command to the first external electronic device (241) based on receiving a response indicating that the first control command can be transmitted from the AI-based analysis system (210).For example, the server (108) may provide an analysis request such as Table 13 to the artificial intelligence-based analysis system (210).

[0149] New device event arrived{"device_id": "bbbb-bbbb-bbbb-bbbb","eventMsg": "Map building has been finished"}

[0150] According to one embodiment, the artificial intelligence-based analysis system (210) may provide the analysis result to the server (108) in response to an analysis request as in Table 13. For example, the artificial intelligence-based analysis system (210) may provide the analysis result as in Table 13. The analysis result in Table 13 may be a command to provide the control command of “autocleaning” to the first external electronic device (241), as described above. The server (108) may provide the control command of “autocleaning” to the first external electronic device (241) based on Table 13.

[0151] As shown in FIG. 10, the server (108) may first provide the second control command, and then provide the first control command once it is confirmed that the second control command has been executed. However, this is merely exemplary, and those skilled in the art will understand that the server (108) may be implemented to instruct the second control command to be executed first while providing both the first and second control commands.

[0152] Figure 11 is a flowchart illustrating a server operation method according to one embodiment. In the following embodiments, each operation may be performed sequentially, but is not necessarily performed sequentially. For example, the order of each operation may be changed, and at least two operations may be performed in parallel.

[0153] According to one embodiment, the server (108) may, in operation 1101, verify text corresponding to the user's voice. In operation 1103, the server (108) may, based on the text, verify that there is a previously performed analysis history with the artificial intelligence-based analysis system (210). For example, the server (108) may store the analysis history as shown in Table 14.

[0154] TextControl target external electronic deviceExternal electronic device statusConversation historyLast command"Clean it"deviceId:"bbbb-bbbb-bbbb-bbbb",deviceType:"oic.d.robot"deviceModel: "DA-RVC-MAP-01001"Maps: NoneSwitch: onMode: chargingSystem: "user speech arrived: "Clean it"쪋-Post_device_command("bbbb-bbbb-bbbb-bbbb", "name": " / command / startBuildMap"))-Post_device_command("bbbb-bbbb-bbbb-bbbb", "name": " / capability / mode", "value":"AutoCleaning"))

[0155] As shown in Table 14, the server (108) may store the text, the external electronic device to be controlled, status information, the conversation history with the AI-based analysis system (210), and / or the final command confirmed through the above-described process. Thereafter, the server (108) may confirm that information on the same text (or text having a similarity level greater than a threshold similarity) as the text confirmed in operation 1101 is already stored. The server (108) may provide the analysis history to the AI-based analysis system (210) in operation 1105. The server (108) may provide at least some of the information as shown in Table 14 to the AI-based analysis system (210). The AI-based analysis system (210) may provide relatively accurate analysis results based on the information received from the server (108). For example, at least some of the information in Table 14 may be used for prompting with the AI-based analysis system (210). The server (108) may, in operation 1107, request an analysis from the artificial intelligence-based analysis system (210) based on information about the text and the external electronic device. The server (108) may, in operation 1109, receive information about the first external electronic device (241) and at least one control command from the artificial intelligence-based analysis system (210). Alternatively, in another example, the server (108) may provide the stored final command (e.g., a second control command for map configuration and a first control command for automatic cleaning) to the first external electronic device (241) as information about the same text (or text having a similarity greater than a threshold similarity) as the text identified in operation 1101 is stored.For example, not only when the test of “clean me” is confirmed, but also when similar tests such as “clean” and “will you clean me?” are confirmed, the server (108) may provide the stored final command (e.g., the second control command of map configuration and the first control command of automatic cleaning) to the first external electronic device (241).

[0156] Meanwhile, the server (108) may provide related pre-stored information to the artificial intelligence-based analysis system (210) to help the artificial intelligence-based analysis system (210) understand the situation in advance, even if the situation is not completely identical to the pre-stored information.

[0157] FIG. 12 is a diagram for explaining the operation of an electronic device and an external electronic device according to one embodiment.

[0158] According to one embodiment, the electronic device (101) can check data corresponding to a user voice (1202) spoken by a user (341). The electronic device (101) can check data corresponding to the user voice (1202), for example, while providing a first execution screen (1203). The electronic device (101) and / or the server (108) can check text corresponding to the user voice (1202). The electronic device (101) and / or the server (108) can check the first external electronic device (241) and the first control command (e.g., automatic cleaning) based on the text. The electronic device (101) and / or the server (108) can check a simulation result for the execution of the first control command in the status information of the first external electronic device (241). Based on the simulation results, the electronic device (101) and / or the server (108) can determine that a second control command (e.g., map configuration) must be performed before the first control command is performed. The electronic device (101) and / or the server (108) can provide a second control command (1205) to the first external electronic device (241). The first external electronic device (241) can perform at least one operation, for example, for map configuration, according to the second control command (1205). Meanwhile, the electronic device (101) can output a message (1213) indicating that the second control command is performed before the first control command is performed. For example, the electronic device (101) can output a message (1213) indicating that "the map is not configured, so automatic cleaning will start after the map is configured," but there is no limitation. The first external electronic device (241) may provide information indicating completion (1211) to the electronic device (101) and / or the server (108) as the map configuration according to the second control command (1205) is completed.The electronic device (101) and / or the server (108) may provide a first control command to the first external electronic device (241) based on confirmation that the operation according to the second control command has been completed. The first external electronic device (241) may perform an operation corresponding to the first control command, for example, automatic cleaning.

[0159] According to one embodiment, a storage medium storing at least one computer-readable instruction may be provided. The at least one instruction, when executed by a processor of an electronic device (101, 108), may cause the electronic device (101, 108) to perform at least one operation. The at least one operation may include an operation of confirming a text identified based on a user voice. The at least one operation may include an operation of confirming a first external electronic device and a first control command corresponding to the first external electronic device based on the text. The at least one operation may include an operation of confirming a simulation result of execution of the first control command by the first external electronic device based on status information of the first external electronic device. The at least one operation may include an operation of providing the first control command to the first external electronic device based on the simulation result.

[0160] According to one embodiment, the operation of providing the first control command to the first external electronic device based on the simulation result may provide the first control command to the first external electronic device based on confirmation that the first command can be performed by the first external electronic device based on the simulation result.

[0161] According to one embodiment, the operation of confirming the first external electronic device and the first control command corresponding to the first external electronic device based on the text may include the operation of providing information about at least one external electronic device registered in correspondence with a user account and the text to an artificial intelligence-based analysis system. The operation of confirming the first external electronic device and the first control command corresponding to the first external electronic device based on the text may include the operation of receiving information about the first external electronic device among the at least one external electronic device and the first control command corresponding to the first external electronic device from the artificial intelligence-based analysis system.

[0162] According to one embodiment, the operation of receiving information about a first external electronic device among the at least one external electronic device and the first control command corresponding to the first external electronic device from the AI-based analysis system may include the operation of receiving information about a plurality of candidate external electronic devices among the at least one external electronic device and / or information about a plurality of candidate control commands from the AI-based analysis system. The operation of confirming the first external electronic device and the first control command corresponding to the first external electronic device may include the operation of selecting any one of the plurality of candidate external electronic devices and / or providing information that causes provision of a user interface for selecting any one of the plurality of control commands. The operation of confirming the first external electronic device and the first control command corresponding to the first external electronic device may include the operation of confirming the first external electronic device among the plurality of candidate external electronic devices selected through the user interface and / or the first control command among the plurality of candidate commands selected through the user interface.

[0163] According to one embodiment, the operation of confirming a simulation result for execution of the first control command by the first external electronic device based on the status information of the first external electronic device may include an operation of confirming the simulation result provided by inputting the first control command to the first external electronic device and a simulator corresponding to the status information of the first external electronic device.

[0164] According to one embodiment, the operation of providing the first control command to the first external electronic device based on the simulation result may include providing the simulation result to an artificial intelligence-based analysis system. The operation of providing the first control command to the first external electronic device based on the simulation result may include receiving, from the artificial intelligence-based analysis system, an affirmative response indicating that the first command can be performed by the first external electronic device based on the simulation result. The operation of providing the first control command to the first external electronic device based on the simulation result may include providing the first control command to the first external electronic device based on reception of the affirmative response.

[0165] According to one embodiment, the operation of providing the first control command to the first external electronic device based on the simulation result may include providing the first control command to the first external electronic device based on the simulation result indicating that the first command can be performed by the first external electronic device.

[0166] In one embodiment, the at least one operation may include providing the second control command to the first external electronic device based on the simulation result, wherein it is determined that the second control command, which is different from the first control command, must be performed before the first control command is performed.

[0167] According to one embodiment, the operation of providing the second control command to the first external electronic device based on the simulation result may include providing the simulation result to an artificial intelligence-based analysis system. The operation of providing the second control command to the first external electronic device based on the simulation result may include receiving a negative response from the artificial intelligence-based analysis system indicating that the second control command should be performed before the first control command is performed based on the simulation result. The operation of providing the second control command to the first external electronic device based on the simulation result may include providing the second control command to the first external electronic device based on receiving the negative response.

[0168] According to one embodiment, the operation of providing the second control command to the first external electronic device based on reception of the negative response may include providing the negative response to the artificial intelligence-based analysis system. The operation of providing the second control command to the first external electronic device based on reception of the negative response may include receiving, from the artificial intelligence-based analysis system, information indicating the second control command confirmed based on the negative response. The operation of providing the second control command to the first external electronic device based on reception of the negative response may include transmitting, to the first external electronic device, the second control command based on reception of the information indicating the second control command.

[0169] According to one embodiment, the at least one operation may include an operation of confirming information indicating that the second control command has been performed by the first external electronic device. The at least one operation may include an operation of providing the first control command to the first external electronic device based on confirmation of the information indicating that the second control command has been performed.

[0170] According to one embodiment, the method may include an operation of confirming a text identified based on a user voice. The method may include an operation of confirming, based on the text, a first external electronic device and a first control command corresponding to the first external electronic device. The method may include an operation of confirming, based on status information of the first external electronic device, a simulation result of performance of the first control command by the first external electronic device. The method may include an operation of providing the first control command to the first external electronic device based on the simulation result.

[0171] According to one embodiment, the operation of providing the first control command to the first external electronic device based on the simulation result may provide the first control command to the first external electronic device based on confirmation that the first command can be performed by the first external electronic device based on the simulation result.

[0172] According to one embodiment, the operation of confirming the first external electronic device and the first control command corresponding to the first external electronic device based on the text may include the operation of providing information about at least one external electronic device registered in correspondence with a user account and the text to an artificial intelligence-based analysis system. The operation of confirming the first external electronic device and the first control command corresponding to the first external electronic device based on the text may include the operation of receiving information about the first external electronic device among the at least one external electronic device and the first control command corresponding to the first external electronic device from the artificial intelligence-based analysis system.

[0173] According to one embodiment, the operation of receiving information about a first external electronic device among the at least one external electronic device and the first control command corresponding to the first external electronic device from the AI-based analysis system may include the operation of receiving information about a plurality of candidate external electronic devices among the at least one external electronic device and / or information about a plurality of candidate control commands from the AI-based analysis system. The operation of confirming the first external electronic device and the first control command corresponding to the first external electronic device may include the operation of selecting any one of the plurality of candidate external electronic devices and / or providing information that causes provision of a user interface for selecting any one of the plurality of control commands. The operation of confirming the first external electronic device and the first control command corresponding to the first external electronic device may include the operation of confirming the first external electronic device among the plurality of candidate external electronic devices selected through the user interface and / or the first control command among the plurality of candidate commands selected through the user interface.

[0174] According to one embodiment, the operation of confirming a simulation result for execution of the first control command by the first external electronic device based on the status information of the first external electronic device may include an operation of confirming the simulation result provided by inputting the first control command to the first external electronic device and a simulator corresponding to the status information of the first external electronic device.

[0175] According to one embodiment, the operation of providing the first control command to the first external electronic device based on the simulation result may include providing the simulation result to an artificial intelligence-based analysis system. The operation of providing the first control command to the first external electronic device based on the simulation result may include receiving, from the artificial intelligence-based analysis system, an affirmative response indicating that the first command can be performed by the first external electronic device based on the simulation result. The operation of providing the first control command to the first external electronic device based on the simulation result may include providing the first control command to the first external electronic device based on reception of the affirmative response.

[0176] According to one embodiment, the operation of providing the first control command to the first external electronic device based on the simulation result may include providing the first control command to the first external electronic device based on the simulation result indicating that the first command can be performed by the first external electronic device.

[0177] According to one embodiment, the method may include providing the second control command to the first external electronic device based on the simulation result, wherein it is determined that the second control command, which is different from the first control command, must be preceded before the first control command is performed.

[0178] According to one embodiment, the operation of providing the second control command to the first external electronic device based on the simulation result may include providing the simulation result to an artificial intelligence-based analysis system. The operation of providing the second control command to the first external electronic device based on the simulation result may include receiving a negative response from the artificial intelligence-based analysis system indicating that the second control command should be performed before the first control command is performed based on the simulation result. The operation of providing the second control command to the first external electronic device based on the simulation result may include providing the second control command to the first external electronic device based on receiving the negative response.

[0179] According to one embodiment, the operation of providing the second control command to the first external electronic device based on reception of the negative response may include providing the negative response to the artificial intelligence-based analysis system. The operation of providing the second control command to the first external electronic device based on reception of the negative response may include receiving, from the artificial intelligence-based analysis system, information indicating the second control command confirmed based on the negative response. The operation of providing the second control command to the first external electronic device based on reception of the negative response may include transmitting, to the first external electronic device, the second control command based on reception of the information indicating the second control command.

[0180] According to one embodiment, the method may include an operation of confirming information indicating that the second control command has been performed by the first external electronic device. The method may include an operation of providing the first control command to the first external electronic device based on the confirmation of the information indicating that the second control command has been performed.

[0181] According to one embodiment, an electronic device may include a memory and a processor. The memory may store at least one instruction. The at least one instruction, when executed by the processor, may cause the electronic device to perform at least one operation. The at least one operation may include an operation of confirming a text identified based on a user's voice. The at least one operation may include an operation of confirming a first external electronic device and a first control command corresponding to the first external electronic device based on the text. The at least one operation may include an operation of confirming a simulation result of execution of the first control command by the first external electronic device based on status information of the first external electronic device. The at least one operation may include an operation of providing the first control command to the first external electronic device based on the simulation result.

[0182] According to one embodiment, a storage medium storing at least one computer-readable instruction may be provided. The at least one instruction, when executed by a processor of an electronic device (101, 108), may cause the electronic device (101, 108) to perform at least one operation. The at least one operation may include an operation of confirming a text identified based on a user voice. The at least one operation may include an operation of confirming a first external electronic device and a first control command corresponding to the first external electronic device based on the text. The at least one operation may include an operation of confirming a first simulation result of performance of the first control command by the first external electronic device based on status information of the first external electronic device. The at least one operation may include an operation of providing a first inquiry to an artificial intelligence-based analysis system regarding whether the first control command has been performed based on the first simulation result. The at least one operation may include an operation of confirming, from the artificial intelligence-based analysis system, a first response requesting execution of a second control command different from the first control command based on the impossibility of execution of the first control command in response to the first inquiry. The at least one operation may include an operation of confirming, based on the first response, a second simulation result for execution of the second control command by the first external electronic device based on the status information of the first external electronic device. The at least one operation may include an operation of providing, to the artificial intelligence-based analysis system, a second inquiry regarding whether to execute the second control command based on the second simulation result.The at least one operation may include an operation of confirming, from the artificial intelligence-based analysis system, a second response indicating that the second control command can be performed in response to the second inquiry. The at least one operation may include an operation of providing the second control command to the first external electronic device based on the second response.

[0183] According to one embodiment, a storage medium storing at least one computer-readable instruction may be provided. The at least one instruction, when executed by a processor of an electronic device (101, 108), may cause the electronic device (101, 108) to perform at least one operation. The at least one operation may include an operation of acquiring a user voice. The at least one operation may include an operation of providing a first control command identified based on the user voice and a first user interface associated with at least one candidate electronic device (101, 108) that will perform the first control command. The at least one operation may include an operation of acquiring a first user command for selecting one of the at least one external electronic device through the first user interface. The at least one operation may include an operation of transmitting the first user command. The at least one operation may include providing a second user interface indicating that a second control command, different from the first control command, should be preceded based on status information of the selected external device indicating that the first control command cannot be performed. The at least one operation may include obtaining a second user command through the second user interface that causes the selected external electronic device to perform the second control command. The at least one operation may include transmitting the second user command.

[0184] Electronic devices according to the embodiments disclosed in this document may take various forms. Electronic devices may include, for example, portable communication devices (e.g., smartphones), computer devices, portable multimedia devices, portable medical devices, cameras, wearable devices, or home appliances. Electronic devices according to the embodiments disclosed in this document are not limited to the aforementioned devices.

[0185] The embodiments of this document and the terminology used herein are not intended to limit the technical features described in this document to specific embodiments, but should be understood to include various modifications, equivalents, or substitutes of the embodiments. In connection with the description of the drawings, similar reference numerals may be used for similar or related components. The singular form of a noun corresponding to an item may include one or more of the items, unless the context clearly indicates otherwise. In this document, each of the phrases "A or B", "at least one of A and B", "at least one of A or B", "A, B, or C", "at least one of A, B, and C", and "at least one of A, B, or C" can include any one of the items listed together in the corresponding phrase among those phrases, or all possible combinations thereof. Terms such as "first," "second," or "first" or "second" may be used merely to distinguish one component from another, and do not limit the components in any other respect (e.g., importance or order). When a component (e.g., a first component) is referred to as "coupled" or "connected" to another (e.g., a second component), with or without the terms "functionally" or "communicatively," it means that the component can be connected to the other component directly (e.g., wired), wirelessly, or through a third component.

[0186] The term "module" used in the embodiments of this document may include a unit implemented in hardware, software, or firmware, and may be used interchangeably with terms such as logic, logic block, component, or circuit. A module may be an integral component, or a minimum unit or part of such a component that performs one or more functions. For example, according to one embodiment, a module may be implemented in the form of an application-specific integrated circuit (ASIC).

[0187] One embodiment of the present document may be implemented as software (e.g., a program (140)) including one or more instructions stored in a storage medium (e.g., an internal memory (136) or an external memory (138)) readable by a machine (e.g., an electronic device (101)). For example, a processor (e.g., a processor (120)) of the machine (e.g., an electronic device (101)) may call at least one instruction among the one or more instructions stored from the storage medium and execute it. This enables the machine to operate to perform at least one function according to the at least one called instruction. The one or more instructions may include code generated by a compiler or code executable by an interpreter. The machine-readable storage medium may be provided in the form of a non-transitory storage medium. Here, 'non-transitory' simply means that the storage medium is a tangible device and does not contain signals (e.g., electromagnetic waves), and the term does not distinguish between cases where data is stored semi-permanently or temporarily on the storage medium.

[0188] According to one embodiment, the method according to one embodiment disclosed in this document may be provided as included in a computer program product. The computer program product may be traded as a product between a seller and a buyer. The computer program product may be distributed in the form of a machine-readable storage medium (e.g., compact disc read-only memory (CD-ROM)), or may be distributed online (e.g., downloaded or uploaded) via an application store (e.g., Play Store™) or directly between two user devices (e.g., smart phones). In the case of online distribution, at least a portion of the computer program product may be temporarily stored or temporarily generated in a machine-readable storage medium, such as the memory of a manufacturer's server, an application store's server, or an intermediary server.

[0189] According to one embodiment, each component (e.g., a module or a program) of the above-described components may include one or more entities, and some of the entities may be separated and arranged in other components. According to one embodiment, one or more components or operations of the aforementioned components may be omitted, or one or more other components or operations may be added. Alternatively or additionally, a plurality of components (e.g., a module or a program) may be integrated into a single component. In this case, the integrated component may perform one or more functions of each of the plurality of components identically or similarly to those performed by the corresponding component among the plurality of components prior to the integration. According to one embodiment, the operations performed by a module, program, or other component may be executed sequentially, in parallel, iteratively, or heuristically, or one or more of the operations may be executed in a different order, omitted, or one or more other operations may be added.

Claims

1. A storage medium storing at least one computer-readable instruction, wherein the at least one instruction, when executed by at least one processor of an electronic device (101, 108), causes the electronic device (101, 108) to perform at least one operation, At least one of the above actions: Action to verify text based on user's voice; An operation of identifying a first external electronic device and a first control command corresponding to the first external electronic device based on the above text; An operation of confirming a simulation result for execution of the first control command by the first external electronic device based on the status information of the first external electronic device; An operation of providing the first control command to the first external electronic device based on the above simulation results. A storage medium containing.

2. In paragraph 1, A storage medium for providing the first control command to the first external electronic device based on the simulation result, wherein the operation of providing the first control command to the first external electronic device is based on confirmation that the first command can be performed by the first external electronic device according to the simulation result.

3. In any one of paragraphs 1 and 2, Based on the above text, the operation of verifying the first external electronic device and the first control command corresponding to the first external electronic device is: An action of providing information about at least one external electronic device registered in response to a user account and said text to an artificial intelligence-based analysis system; and An operation of receiving information about a first external electronic device among the at least one external electronic device and a first control command corresponding to the first external electronic device from the artificial intelligence-based analysis system; A storage medium containing.

4. In any one of paragraphs 1 to 3, An operation of receiving information about a first external electronic device among the at least one external electronic device and a first control command corresponding to the first external electronic device from the artificial intelligence-based analysis system is: An operation of receiving information about a plurality of candidate external electronic devices and / or information about a plurality of candidate control commands from the artificial intelligence-based analysis system, The operation of verifying the first external electronic device and the first control command corresponding to the first external electronic device is: An action providing information that causes selection of any one of the plurality of candidate external electronic devices and / or provision of a user interface for selecting any one of the plurality of control commands; and A storage medium including an operation of confirming the first external electronic device selected through the user interface from among the plurality of candidate external electronic devices and / or the first control command selected through the user interface from among the plurality of candidate commands.

5. In any one of paragraphs 1 to 4, An operation of verifying a simulation result for execution of the first control command by the first external electronic device based on the status information of the first external electronic device is: A storage medium including an operation of confirming the simulation result provided by inputting the first control command to the first external electronic device and a simulator corresponding to the status information of the first external electronic device.

6. In any one of paragraphs 1 to 5, Based on the above simulation results, the operation of providing the first control command to the first external electronic device is: An action of providing the above simulation results to an artificial intelligence-based analysis system; An operation of receiving a positive response from the artificial intelligence-based analysis system indicating that the first command can be performed by the first external electronic device according to the simulation result; and An operation of providing the first control command to the first external electronic device based on receipt of the positive response. A storage medium containing.

7. In any one of paragraphs 1 to 6, Based on the above simulation results, the operation of providing the first control command to the first external electronic device is: An operation of providing the first control command to the first external electronic device based on the above simulation results indicating that the first command can be performed by the first external electronic device. A storage medium containing.

8. In any one of paragraphs 1 to 7, At least one of the above actions: Based on the above simulation results, it is confirmed that the second control command, which is different from the first control command, must be performed before the first control command is performed, and therefore, an operation of providing the second control command to the first external electronic device A storage medium further comprising:

9. In any one of paragraphs 1 to 8, Based on the above simulation results, the operation of providing the second control command to the first external electronic device is: An action of providing the above simulation results to an artificial intelligence-based analysis system; An operation of receiving a negative response from the artificial intelligence-based analysis system indicating that the second control command should be performed before the first control command is performed according to the simulation result; and An operation of providing the second control command to the first external electronic device based on receipt of the negative response. A storage medium containing.

10. In any one of paragraphs 1 to 9, Based on receipt of the negative response, the operation of providing the second control command to the first external electronic device comprises: An action of providing the above negative response to the above artificial intelligence-based analysis system; An operation of receiving information indicating the second control command confirmed based on the negative response from the artificial intelligence-based analysis system; and An operation of transmitting the second control command to the first external electronic device based on the reception of information indicating the second control command. A storage medium containing.

11. In any one of paragraphs 1 to 10, At least one of the above actions: An operation of confirming information indicating that the second control command has been performed by the first external electronic device; and An operation of providing the first control command to the first external electronic device based on the information indicating that the second control command has been performed. A storage medium containing.

12. In the operating method of an electronic device (101, 108), Action to verify text based on user's voice; An operation of identifying a first external electronic device and a first control command corresponding to the first external electronic device based on the above text; An operation of confirming a simulation result for execution of the first control command by the first external electronic device based on the status information of the first external electronic device; An operation of providing the first control command to the first external electronic device based on the above simulation results. A method of operation comprising:

13. In paragraph 12, An operation of providing the first control command to the first external electronic device based on the simulation result is an operation method of providing the first control command to the first external electronic device based on confirmation that the first command can be performed by the first external electronic device according to the simulation result.

14. In any one of paragraphs 12 to 13, Based on the above text, the operation of verifying the first external electronic device and the first control command corresponding to the first external electronic device is: An action of providing information about at least one external electronic device registered in response to a user account and said text to an artificial intelligence-based analysis system; and An operation of receiving information about a first external electronic device among the at least one external electronic device and a first control command corresponding to the first external electronic device from the artificial intelligence-based analysis system; A method of operation comprising:

15. In any one of paragraphs 12 to 14, An operation of receiving information about a first external electronic device among the at least one external electronic device and a first control command corresponding to the first external electronic device from the artificial intelligence-based analysis system is: An operation of receiving information about a plurality of candidate external electronic devices and / or information about a plurality of candidate control commands from the artificial intelligence-based analysis system, The operation of verifying the first external electronic device and the first control command corresponding to the first external electronic device is: An action providing information that causes selection of any one of the plurality of candidate external electronic devices and / or provision of a user interface for selecting any one of the plurality of control commands; and An operating method including an operation of confirming the first external electronic device selected through the user interface from among the plurality of candidate external electronic devices and / or the first control command selected through the user interface from among the plurality of candidate commands.

Citation Information

Patent Citations

  • Method and apparatus for controlling devices connectedwith home network

    KR100434545B1

  • Apparatus for sensing environments integrated with Internet of Things, System having the same, and Method thereof

    KR1020230020216A

  • Unsupervised learning method and learning device for fraud detection system based on graph, and testing method and testing device using the same

    KR102336035B1

  • Mobile home robot and controlling method of the mobile home robot

    KR102385263B1

  • Light condition recorder system and method

    US20090284187A1