Incorporating Internet of Things (IoT) data into chat robot text input data
By integrating IoT data with chatbot text input data and rewording the input data to meet specificity thresholds, the question that chatbots have difficulty in providing accurate answers is solved, achieving a more efficient and accurate answering process.
Patent Information
- Application Number
- CN202411454185.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-10-17
- Filing Date
- 2024-10-17
- Publication Date
- 2025-04-25
AI Technical Summary
Existing chatbots have difficulty providing relatively accurate answers because the input questions are inappropriately worded or lack context, and lack of real-time IoT data access, resulting in the inability to accurately explain the problem.
By integrating IoT data with text input data, rewording the input data to meet specificity thresholds, sent to a definite chatbot server to generate relatively accurate answers.
Reduces network services, improves the accuracy and relevance of answers, reduces the need for additional clarification processing operations, retains processing resources, and improves the communication efficiency between user equipment and chatbots.
Smart Images

Figure CN119884289A_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to chatbots, and more particularly, the present invention relates to incorporating Internet of Things (IoT) data into chatbot text entry data. Background Art
[0002] Artificial Intelligence (AI) chatbots are relatively intelligent virtual agents designed to simulate human-like conversations. These chatbots employ natural language processing (NLP), machine learning, and other AI techniques to understand user queries, generate appropriate responses, and provide valuable information or assistance when interacting with user devices and / or inputs.
[0003] On the other hand, IoT includes a network of physical objects embedded with sensors, software, and connectivity, enabling the collection and exchange of data within the network. These physical objects can include various devices such as smart appliances, wearable devices, environmental sensors, security cameras, etc. The data generated by these sensors provides valuable insights into the physical world, including temperature, humidity, motion, energy consumption, and other environmental factors. Summary of the invention
[0004] According to various methods, a computer-implemented method includes parsing a first data set into a plurality of elements. A first subset of the elements includes text input data, and a second subset of the elements includes IoT data. In response to determining that the text input data does not meet a predetermined threshold of specificity, the first data set is rephrased into a second data set. The method also includes causing the second data set to be sent to a determined chatbot server, and causing a first output of the determined chatbot server to be returned to a first user device. The first output is a response to the second data set.
[0005] According to various methods, a computer program product includes a computer-readable storage medium having program instructions embodied therewith. The program instructions can be read and / or executed by a computer to cause the computer to perform any combination of the features of the aforementioned method.
[0006] According to various methods, a system includes a processor and logic integrated with the processor, executable by the processor, or integrated with the processor and executable by the processor. The logic is configured to perform any combination of features of the aforementioned methods.
[0007] Other aspects and methods of the present invention will become apparent from the following detailed description, which, when taken in conjunction with the accompanying drawings, illustrate by way of example the principles of the invention. BRIEF DESCRIPTION OF THE DRAWINGS
[0008] Figure 1 is a diagram of a computing environment according to a method of the present invention.
[0009] Figure 2 is a flow chart of a method according to a method of the present invention.
[0010] Figure 3 is the infrastructure of a method according to the invention.
[0011] Figure 4 is the infrastructure of a method according to the invention.
[0012] Figure 5 is a table of a method according to the present invention.
[0013] Figure 6 is a flow chart of a method according to a method of the present invention. DETAILED DESCRIPTION
[0014] The following description is for the purpose of illustrating the general principles of the present invention and is not meant to limit the inventive concept claimed herein.In addition, the specific features described herein can be used in combination with other described features in each of the various possible combinations and permutations.
[0015] Unless otherwise specifically defined herein, all terms should be given their broadest possible interpretation, including the meaning implied from the specification and the meaning understood by those skilled in the art and / or the meaning as defined in dictionaries, treatises, etc.
[0016] It must also be noted that, as used in the specification and the appended claims, the singular forms "a", "an", and "the" include plural referents unless otherwise indicated. It will be further understood that, when used in this specification, the terms "include" and / or "comprise" specify the presence of stated features, integers, steps, operations, elements, and / or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and / or groups thereof.
[0017] The following description discloses several preferred approaches to systems, methods, and computer program products for incorporating IoT data into chatbot text input data.
[0018] In one general method, a computer-implemented method includes parsing a first data set into a plurality of elements. A first subset of the elements includes text input data, and a second subset of the elements includes IoT data. In response to determining that the text input data does not meet a predetermined specificity threshold, rephrase the first data set into a second data set. Cause the second data set to be sent to a determined chatbot server. The method also includes causing a first output of the determined chatbot server to be returned to a first user device, wherein the first output is a response to the second data set.
[0019] As a result of the parsing, IoT data is identified and can be used to optionally supplement the text input data. The parsing consumes much less processing resources than the processing resources that would otherwise be consumed by outputting and processing additional queries (e.g., to supplement the text input data). Therefore, the processing potential of the processing circuit that performs the method operation is improved by keeping these processing resources available. By rewording the first data set into the second data set, no additional query is output to supplement the context determined to be missing in the first data set. Therefore, the technical effect of the rewording includes reducing network traffic in a network that includes a first user device on which text input data is input. In addition, the rewording provides a chatbot server (at least some of the data in the first data set is routed to the chatbot server) with a certain amount of data, for example, a second data set, from which a relatively accurate answer can be generated. Sending the second data set to the determined chatbot server enables the chatbot server to generate an answer to the question of the second data set. Because the second data set includes data that is reworded to meet a predetermined specificity threshold, an accurate (onpoint) answer can be generated. This alleviates the need for additional clarification processing operations to be performed. The first chatbot output is returned to the first user device to provide the user who inputs at least some of the text input data with an answer to the question of the text input data. In this way, the processing that would otherwise be consumed by manually trying to determine the answer on the first user device is retained.
[0020] In some methods, the text input data is a question entered into a chatbot interface of a first user device. Processing the text input data, and more specifically, processing the question entered into the chatbot interface of the first user device, potentially provides at least partial context for content to be answered.
[0021] In some methods, the IoT data includes metrics and device information generated based on measurements performed by sensors. Obtaining different types of IoT data increases the likelihood that at least some of the IoT data is correlated with at least some of the text input data. For context, correlating at least some of the IoT data with at least some of the text input data enables the text input data to be supplemented by the IoT data in response to determining that the text input data does not meet a predetermined specificity threshold. The supplementation can be performed without having to rely on performing additional queries using the first user device, thereby alleviating network communication operations that might otherwise be performed to supplement the context determined to be missing in the text input data. This relative reduction in network communication operations has the technical effect of increasing the throughput of a network including the first user device and / or devices performing operations of the chatbot server of the method and / or determination.
[0022] Rephrasing the first data set as the second data set may include: identifying a first element in the second subset of elements, the first element including IoT data related to the text input data, and integrating the IoT data of the first element in the text input data. By integrating the IoT data into the associated text elements in the text input data, it is ensured that context is present in the second data set that was originally intended but not included in the question of the first data set. This context is generated without having to additionally output and process additional queries to obtain additional information for the second data set.
[0023] In some methods, in response to determining that the text input data satisfies a predetermined specificity threshold, the text input data is caused to be sent to the determined chatbot server. Causing the text input data determined to satisfy the predetermined specificity threshold to be sent to the determined chatbot server ensures that processing is not otherwise spent on rewording a data set that includes a sufficient amount of context.
[0024] A second output of the determined chatbot server may be caused to be returned to the first user device, wherein the second output is an answer to the text input data. The second output is caused to be returned to the first user device to provide an answer to the question of the text input data to a user who input at least some of the text input data. Processing that would otherwise be consumed by manually attempting to determine the answer on the first user device is preserved.
[0025] In some methods, the method also includes determining whether the text input data meets a predetermined specificity threshold. Determining whether the text input data meets the predetermined specificity threshold may include: determining whether there is an answer with at least a predetermined level of detail for the text input data. The determination of whether the text input data meets the predetermined specificity threshold is performed to ensure that supplementary processing is not performed when the text input data already includes a sufficient amount of context (e.g., meets the predetermined specificity threshold). In addition, the determination is performed to relatively reduce the amount of time it takes to return the answer to the first user device, thereby improving network throughput. This is because the determination allows identification of situations where supplementary processing is not performed. These situations are situations where the text input data meets the predetermined specificity threshold.
[0026] In some methods, in response to determining that an answer with at least a predetermined level of detail exists for the text input data, the method includes determining that a predetermined specificity threshold is met. Determining whether the predetermined level of detail exists for the text input data ensures that IoT data is only added to a data set that lacks context. This selective supplementation has a technical effect of ensuring that processing resources are not consumed to process a data set that includes an insufficient amount of context. Instead, processing is delayed until supplementation is performed to generate a data set that includes at least the predetermined specificity threshold. Questions that do not have at least the predetermined level of specificity would otherwise waste processing resources by the AI chatbot server because the answers returned by the AI chatbot server may not be precise, for example, based on the lack of details provided in the text input data, not answering the expected context of the question that is not discernible in the question.
[0027] In some methods, returning the determined output of the chatbot server to the first user device includes: rendering the determined output of the chatbot server into a predetermined sentence structure, and outputting the rendered output to the first user device. The rendering allows the output to be delivered to the user device in a form that can be presented to the user, and the output inputs at least some of the text input data into the chatbot interface of the first user device. In the case where the rendering cuts off at least some of the output that is determined not to be in a form that can be presented on the first user device, the rendering reduces the amount of data ultimately sent to the first user device. In addition, the rendering alleviates device processing operations that would otherwise potentially be performed to clarify the meaning of the output (e.g., a clarification request returned by the first user device).
[0028] In some methods, the method also includes receiving feedback about the first output from the first user device, and determining whether the feedback is positive feedback. In response to determining that the feedback is not positive feedback, a predetermined specificity threshold is increased. This selective adjustment of the predetermined specificity threshold ensures that the user is satisfied with the output returned to the first user device, and if not satisfied, adjustments are made to attempt to obtain such satisfaction. These adjustments ensure that the answer provided in the output returned to the first user device accurately answers the question previously input into the first user device, thereby reducing the likelihood that subsequent questions must be processed (e.g., to clarify a relatively inaccurate answer).
[0029] The interaction with the first user device may be monitored by a plurality of sensors, wherein the information obtained as a result of the monitoring is IoT data. The IoT data obtained as a result of the monitoring of the interaction may be used to supplement the text input data entered on the first user device. In this way, for a received data set, the text input data of the data set may be optionally supplemented with the obtained IoT data, without having to otherwise output and process additional queries to obtain the additional information for supplementation. These avoided queries reduce the amount of processing that would otherwise be performed if the IoT data were not monitored and obtained.
[0030] In some methods, the method includes determining a chatbot server from a plurality of potential chatbot servers. Considering a plurality of potential chatbot servers increases the likelihood that a chatbot server is available for processing the data set described herein at any given time. Therefore, the delay in the process of returning an answer to the first user device is relatively reduced. In some methods, the chatbot server is determined based on preference information of a user who enters text input data on the first user device. Incorporating the user preferences identified in the preference information into the determination of the chatbot server ensures that the data set is not otherwise processed by a chatbot server that the user does not want to use to process the data set. The incorporation also reduces the likelihood of performing additional iterative processing on the first data set in response to receiving feedback that the data set is processed by a chatbot server that does not match the user preferences.
[0031] In various preferred methods, a computer-implemented method includes parsing a first data set into a plurality of elements, wherein a first subset of the elements includes text input data and a second subset of the elements includes IoT data. In response to determining that the text input data does not meet a predetermined specificity threshold, the first data set is rephrased into a second data set. A chatbot server is determined from a plurality of potential chatbot servers based on preference information of a user who inputs the text input data on a first user device. The second data set is caused to be sent to the determined chatbot server. A first output of the determined chatbot server is caused to be returned to the first user device, wherein the first output is a response to the second data set.
[0032] The preferred method described above enables efficiency to be improved in the process of determining answers to questions input on the chatbot interface of a user device by a determined chatbot server. For example, the processing resources consumed by the above-mentioned parsing for determining multiple elements are relatively much less than the processing resources that would otherwise be consumed by outputting and processing additional queries (to supplement the text input data) in order to expand the context provided in the text input data. Therefore, the processing potential of the processing circuit that performs the method operation is improved by keeping these processing resources available. Similarly, by rewording the first data set into the second data set, no additional queries are output to supplement the context determined to be missing in the first data set. Therefore, the technical effect of the rewording includes reducing network traffic in a network including a first user device on which the text input data is input. In addition, the rewording provides the chatbot server with a data volume that can generate a relatively accurate answer based on, for example, the range of context in the data provided to the chatbot server. The context is ensured to be present in the data set by supplementing the text input data with IoT data during the rewording, without having to rely on the output of the supplementary query to the first user device. More specifically, the rephrasing alleviates the need for additional clarification processing operations to be performed thereafter, which might otherwise be performed in response to an irrelevant answer being returned to the first user device. Thus, processing resources are preserved throughout the network. The first chatbot output is caused to be returned to the first user device to provide an answer to a question about the text input data to a user who input at least some of the text input data. In this way, processing and time that would otherwise be consumed by manually attempting to generate an answer on the first user device is preserved. In addition, due to the operation of the various methods described above, the quality of the answer output by the determined chatbot server is relatively more accurate. This has the technical effect of reducing the overhead caused by otherwise processing subsequent questions after an inaccurate answer is returned to the first user device.
[0033] One use case of the preferred method described above includes deploying operations in a network where user devices host user-friendly applications with narrative help chat features. Users of narrative chat windows typically aim to get answers to their questions relatively quickly, and therefore typically fail to disclose enough information about the context in the questions of their text input data. In addition, these users may not know one or more potential technical issues of one or more of their devices, such as, for example, how to solve problems with their phones. In this use case, the operations described herein use the obtained IoT data to rephrase the text input data without having to rely on the user to provide the missing context. Therefore, this rephrasing eliminates the processing of additional query operations that would otherwise be performed in an attempt to determine the missing context. Therefore, a relatively refined data set (e.g., a data set including at least a predetermined specificity threshold) is provided to a determined chatbot server, enabling the generation of relatively accurate answers.
[0034] In another general method, a computer program product includes a computer-readable storage medium having program instructions embodied therewith. The program instructions can be read and / or executed by a computer to cause the computer to perform any combination of the features of the aforementioned method. A similar technical effect is obtained.
[0035] In another general method, a system includes a processor, and logic integrated with the processor, executable by the processor, or integrated with the processor and executable by the processor. The logic is configured to perform any combination of the features of the aforementioned method. A similar technical effect is obtained.
[0036] Various aspects of the present disclosure are described by narrative text, flow charts, block diagrams of computer systems, and / or block diagrams of machine logic included in computer program products (CPP) methods. With respect to any flow chart, depending on the technology involved, the operations may be performed in an order different from the order shown in a given flow chart. For example, again depending on the technology involved, two operations shown in successive flow chart blocks may be performed in reverse order, as a single integrated step, simultaneously, or in a manner that at least partially overlaps in time.
[0037] A computer program product method ("CPP method" or "CPP") is a term used in this disclosure to describe any collection of one or more storage media (also referred to as "media") collectively included in a collection of one or more storage devices that collectively include machine-readable code corresponding to instructions and / or data for performing the computer operations specified in a given CPP claim. A "storage device" is any tangible device that can retain and store instructions for use by a computer processor. Without limitation, a computer-readable storage medium may be an electronic storage medium, a magnetic storage medium, an optical storage medium, an electromagnetic storage medium, a semiconductor storage medium, a mechanical storage medium, or any suitable combination of the foregoing. Some known types of storage devices that include these media include: a magnetic disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), a static random access memory (SRAM), a compact disk read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanical encoding device (such as a punch card or pits / ridges formed in a major surface of a disk), or any suitable combination of the foregoing. As the term is used in this disclosure, computer-readable storage media should not be construed as storage in the form of transient signals themselves, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through waveguides, light pulses through fiber-optic cables, electrical signals transmitted through wires, and / or other transmission media. As will be appreciated by those skilled in the art, data is typically moved at some occasional point in time during the normal operation of the storage device, such as during access, defragmentation, or garbage collection, but this does not make the storage device transient because the data is not transient when stored.
[0038] The computing environment 100 includes an example of an environment for executing at least some of the computer codes involved in performing the method of the present invention, such as the data evaluation and rewording code of block 150 for incorporating Internet of Things (IoT) data into chatbot text input data. In addition to block 150, the computing environment 100 includes, for example, a computer 101, a wide area network (WAN) 102, an end-user device (EUD) 103, a remote server 104, a public cloud 105, and a private cloud 106. In the method, the computer 101 includes a processor set 110 (including processing circuits 120 and caches 121), a communication structure 111, a volatile memory 112, a persistent storage device 113 (including an operating system 122 and block 150, as described above), a peripheral device set 114 (including a user interface (UI) device set 123, a storage device 124, and an Internet of Things (IoT) sensor set 125) and a network module 115. The remote server 104 includes a remote database 130. The public cloud 105 includes a gateway 140 , a cloud orchestration module 141 , a host physical machine set 142 , a virtual machine set 143 , and a container set 144 .
[0039] Computer 101 may take the form of a desktop computer, laptop computer, tablet computer, smart phone, smart watch or other wearable computer, mainframe computer, quantum computer, or any other form of computer or mobile device now known or to be developed in the future that is capable of running programs, accessing a network, or querying a database (such as remote database 130). As is well understood in the field of computer technology, and depending on the technology, the execution of the computer-implemented method may be distributed among multiple computers and / or among multiple locations. On the other hand, in this presentation of computing environment 100, the detailed discussion focuses on a single computer (specifically, computer 101) to keep the presentation as simple as possible. Computer 101 may be located in the cloud, even if it is not in the cloud. Figure 1 On the other hand, except to any extent that may be indicated with certainty, computer 101 need not be in the cloud.
[0040] Processor set 110 includes one or more computer processors of any type known now or developed in the future. Processing circuit 120 can be distributed over multiple packages (e.g., multiple coordinated integrated circuit chips). Processing circuit 120 can implement multiple processor threads and / or multiple processor cores. Cache 121 is a memory located in the processor chip package, and is generally used for data or code that should be available for fast access by threads or cores running on processor set 110. Cache memory is generally organized into multiple levels according to relative proximity to the processing circuit. Alternatively, some or all of the caches for the processor set may be located "off chip". In some computing environments, processor set 110 may be designed to work with quantum bits and perform quantum computing.
[0041] Computer-readable program instructions are typically loaded onto computer 101 to cause processor set 110 of computer 101 to perform a series of operating steps to implement a computer-implemented method, such that the instructions so executed will instantiate the method specified in the flowchart and / or narrative description of the computer-implemented method included in this document (collectively referred to as the "inventive method"). These computer-readable program instructions are stored in various types of computer-readable storage media, such as cache 121 and other storage media discussed below. The program instructions and associated data are accessed by processor set 110 to control and direct the execution of the inventive method. In computing environment 100, at least some of the instructions for performing the inventive method may be stored in persistent storage device 113 in block 150.
[0042] Communications fabric 111 is the signaling pathways that allow the various components of computer 101 to communicate with each other. Typically, the fabric is made of switches and conductive pathways, such as those that make up a bus, a bridge, physical input / output ports, etc. Other types of signal communication pathways may be used, such as fiber optic communication pathways and / or wireless communication pathways.
[0043] The volatile memory 112 is any type of volatile memory now known or developed in the future. Examples include dynamic type random access memory (RAM) or static type RAM. Typically, the volatile memory 112 is characterized by random access, but this is not required unless explicitly indicated. In the computer 101, the volatile memory 112 is located in a single package and is internal to the computer 101, but alternatively or additionally, the volatile memory can be distributed over multiple packages and / or located externally relative to the computer 101.
[0044] Persistent storage 113 is any form of non-volatile storage for computers known now or to be developed in the future. The non-volatility of the storage means that the stored data is maintained regardless of whether power is supplied to computer 101 and / or directly to persistent storage 113. Persistent storage 113 may be a read-only memory (ROM), but typically at least a portion of the persistent storage allows data to be written, deleted, and rewritten. Some common forms of persistent storage include disks and solid-state storage devices. Operating system 122 may take several forms, such as various known proprietary operating systems or open source portable operating system interface type operating systems using a kernel. The code included in block 150 typically includes at least some of the computer code involved in executing the method of the present invention.
[0045] The peripheral device set 114 includes a peripheral device set of the computer 101. The data communication connection between the peripheral device and other components of the computer 101 can be implemented in various ways, such as a Bluetooth connection, a near field communication (NFC) connection, a connection by a cable (such as a universal serial bus (USB) type cable), a plug-in type connection (e.g., a secure digital (SD) card), a connection through a local area network, and even a connection through a wide area network (such as the Internet). In various methods, the UI device set 123 may include components such as display screens, speakers, microphones, wearable devices (such as goggles and smart watches), keyboards, mice, printers, touchpads, game controllers, and tactile devices. The storage device 124 is an external storage device (such as an external hard drive) or a pluggable storage device (such as an SD card). The storage device 124 can be persistent and / or volatile. In some methods, the storage device 124 can take the form of a quantum computing storage device for storing data in the form of quantum bits. In approaches that require computer 101 to have a large amount of storage (e.g., where computer 101 locally stores and manages a large database), the storage may be provided by a peripheral storage device designed to store very large amounts of data, such as a storage area network (SAN) shared by multiple geographically distributed computers. IoT sensor set 125 consists of sensors that can be used in IoT applications. For example, one sensor may be a thermometer, while another sensor may be a motion detector.
[0046] The network module 115 is a collection of computer software, hardware, and firmware that allows the computer 101 to communicate with other computers via the WAN 102. The network module 115 may include hardware such as a modem or a Wi-Fi signal transceiver, software for packetizing and / or depacketizing data for communication network transmission, and / or web browser software for transmitting data via the Internet. In some methods, the network control function and the network forwarding function of the network module 115 are executed on the same physical hardware device. In other methods (e.g., methods using software defined networks (SDN)), the control function and the forwarding function of the network module 115 are executed on physically separated devices, so that the control function manages several different network hardware devices. Computer-readable program instructions for executing the method of the present invention can generally be downloaded to the computer 101 from an external computer or an external storage device via a network adapter card or a network interface included in the network module 115.
[0047] WAN 102 is any wide area network (e.g., the Internet) capable of transmitting computer data over non-local distances by any technology now known or to be developed in the future for transmitting computer data. In some approaches, WAN 102 may be replaced and / or supplemented by a local area network (LAN) designed to transmit data between devices located in a local area (such as a Wi-Fi network). WANs and / or LANs typically include computer hardware such as copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers, and edge servers.
[0048] End-user device (EUD) 103 is any computer system used and controlled by an end-user (e.g., a customer of an enterprise operating computer 101), and may take any of the forms discussed above in connection with computer 101. EUD 103 typically receives helpful and useful data from the operation of computer 101. For example, in the hypothetical case where computer 101 is designed to provide recommendations to an end-user, the recommendations would typically be transmitted from network module 115 of computer 101 to EUD 103 via WAN 102. In this manner, EUD 103 may display or otherwise present the recommendations to the end-user. In some approaches, EUD 103 may be a client device, such as a thin client, a heavy client, a mainframe computer, a desktop computer, etc.
[0049] Remote server 104 is any computer system that provides at least some data and / or functionality to computer 101. Remote server 104 may be controlled and used by the same entity that operates computer 101. Remote server 104 represents a machine(s) that collects and stores helpful and useful data for use by other computers, such as computer 101. For example, in the hypothetical case where computer 101 is designed and programmed to provide recommendations based on historical data, then that historical data may be provided to computer 101 from remote database 130 of remote server 104.
[0050] The public cloud 105 is any computer system that is available to multiple entities and provides on-demand availability of computer system resources and / or other computer capabilities, particularly data storage (cloud storage) and computing capabilities, without direct active management by users. Cloud computing typically utilizes the sharing of resources to achieve consistency and economies of scale. The direct and active management of the computing resources of the public cloud 105 is performed by the computer hardware and / or software of the cloud orchestration module 141. The computing resources provided by the public cloud 105 are typically implemented by virtual computing environments running on various computers that constitute the host physical machine set 142, which is the totality of physical computers in and / or available for the public cloud 105. The virtual computing environment (VCE) is typically in the form of a virtual machine from a virtual machine set 143 and / or a container from a container set 144. It should be understood that these VCEs can be stored as images and can be transferred between various physical machine hosts as images or after instantiation of the VCE. The cloud orchestration module 141 manages the transmission and storage of images, deploys new instantiations of VCEs, and manages active instantiations of VCE deployments. Gateway 140 is a collection of computer software, hardware, and firmware that allows public cloud 105 to communicate over WAN 102 .
[0051] Some further explanation of virtualized computing environments (VCEs) will now be provided. A VCE can be stored as an "image". A new active instance of a VCE can be instantiated from an image. Two common types of VCEs are virtual machines and containers. Containers are VCEs that use operating system-level virtualization. This refers to an operating system feature in which the kernel allows the existence of multiple isolated user space instances called containers. From the perspective of the programs running in them, these isolated user space instances typically behave like real computers. Computer programs running on a normal operating system can utilize all of the resources of that computer, such as connected devices, files and folders, network shares, CPU capabilities, and quantifiable hardware capabilities. However, programs running within a container can only use the contents of the container and the devices assigned to the container, a feature known as containerization.
[0052] The private cloud 106 is similar to the public cloud 105, except that the computing resources are only available to a single enterprise. Although the private cloud 106 is depicted as communicating with the WAN 102, in other approaches, the private cloud can be completely disconnected from the Internet and accessible only through a local / private network. A hybrid cloud is a combination of multiple clouds of different types (e.g., private, community, or public cloud types), typically implemented by different vendors. Each of the multiple clouds remains a separate and discrete entity, but the larger hybrid cloud architecture is tied together by standardized or proprietary technologies that enable orchestration, management, and / or data / application portability between the multiple constituent clouds. In this approach, both the public cloud 105 and the private cloud 106 are part of a larger hybrid cloud.
[0053] In some aspects, a system according to various approaches may include a processor and logic integrated with and / or executable by the processor, the logic being configured to perform one or more process steps described herein. The processor may be any configuration as described herein, such as a discrete processor or a processing circuit including many components (such as processing hardware, memory, I / O interfaces, etc.). Integrated with means that the processor has logic embedded therein as hardware logic, such as an application specific integrated circuit (ASIC), FPGA, etc. By executable by the processor, it is meant that the logic is hardware logic; software logic, such as a part of firmware, an operating system, a part of an application; etc., or some combination of hardware and software logic, which is accessible by the processor and is configured to cause the processor to perform a certain function when executed by the processor. The software logic may be stored on local and / or remote memory of any memory type known in the art. Any processor known in the art, such as a software processor module and / or a hardware processor, such as an ASIC, FPGA, a central processing unit (CPU), an integrated circuit (IC), a graphics processing unit (GPU), etc., may be used.
[0054] Of course, according to various methods, the logic may be implemented as a method or computer program product on any device and / or system.
[0055] As described elsewhere in this article, AI chatbots are relatively intelligent virtual agents designed to simulate human-like conversations. These chatbots employ NLP, machine learning, and other AI techniques to understand user queries, generate appropriate responses, and provide valuable information or assistance when interacting with user devices and / or inputs.
[0056] On the other hand, IoT includes a network of physical objects embedded with sensors, software, and connectivity, enabling the collection and exchange of data within the network. These physical objects can include various devices such as smart appliances, wearable devices, environmental sensors, security cameras, etc. The data generated by these sensors provides valuable insights into the physical world, including temperature, humidity, motion, energy consumption, and other environmental factors.
[0057] Although AI chatbots provide practicality, several factors often contribute to the AI chatbot not providing relatively accurate answers to user devices in response to questions and / or data entered into the AI chatbot application of the user device. One of such factors is the "wording" of the input questions and / or data. More specifically, in some use cases, in response to questions being incorrectly entered into the AI chatbot and / or questions including fuzzy language, such as unclear questions, non-specific questions, etc., the AI chatbot may not be able to determine the intended meaning of the question. Therefore, the AI chatbot may return a response that does not solve and / or does not even involve the intended meaning of the question. For example, the user question "How can I fix my phone?" provides relatively few details about the surrounding environment of the problem that the user has with their phone. In other words, the user question is somewhat vague because the type of the problem is undefined, such as hardware problems, software problems, firmware problems, etc., and the cause of the problem is undefined, such as the phone falling, the phone being exposed to moisture during a weather event, etc.
[0058] Another factor that often causes AI chatbots to not provide relatively accurate responses includes comprehension limitations. AI chatbots have certain limitations in understanding complex or subtle questions. For example, in some cases where the questions are relatively complex or require a relatively deep understanding of IoT data in real time, the AI chatbot may have difficulty fully grasping the question and therefore provide inaccurate or incomplete responses. For example, the AI chatbot may not be able to accurately answer the question "What is the best laptop for gaming and work?" if it is not configured to analyze and balance computer performance metrics associated with gaming and work held by the user who entered the question.
[0059] Another factor that often causes AI chatbots to not provide relatively accurate answers includes the AI chatbot's access (in real time) to a lack of IoT data that can be called upon to provide answers. This lack of access to IoT data prevents the AI chatbot from accurately interpreting questions. In addition, without access to this background information, the AI chatbot makes assumptions and / or provides generic answers that do not address specific queries. For example, a traditional AI chatbot does not have access to a sufficient amount of IoT data (in real time) in order to generate a detailed answer to the question "How do I fix my car". In other words, a traditional AI chatbot cannot provide detailed and relatively accurate answers to these questions without real-time access to additional data (e.g., such as human-computer interaction (HCI) data and / or IoT data).
[0060] Ultimately, the above factors prevent traditional AI chatbots from relatively accurately identifying the overall context of questions and / or data in AI chatbot applications input to user devices. Therefore, the answers generated by the engine of the AI chatbot and returned to the questioning user device usually do not solve and / or even involve the intended meaning of the question. In order to compensate for this inaccuracy, additional questions can be generated and submitted to the AI chatbot on the user device, which ultimately consumes additional processing resources of both the user device and the AI chatbot, frustrating the user of the user device, spending additional time, etc. Therefore, there has long been a need to define technologies that alleviate the problems in the above-mentioned AI chatbot environment and deployment. More specifically, there is a need for technologies that bridge modern AI and IoT technologies to facilitate immersive conversations, integrate IoT data into AI chatbot requests to enhance interaction with AI chatbots, and create immersive AI chatbot interfaces with integrated IoT networks in real time to improve the AI chatbot conversation experience.
[0061] In sharp contrast to the above-mentioned deficiencies, the technology of the method described in this article provides a human-computer interaction layer on top of multiple AI chatbots, bridges IoT networks and AI chatbots in real time to relatively enhance immersive chat services, integrates IoT data into user device AI chatbot requests through interactive analysis, and creates an immersive AI chatbot interface with an integrated IoT network in real time to relatively improve the AI chatbot conversation experience. These novel technologies improve the efficiency of devices used for communication between user devices and AI chatbots by reducing the amount of questions that are ultimately generated and submitted to the AI chatbot. This reduces the relative consumption of processing resources of both the user device and the AI chatbot, as well as the time it takes to return a relatively accurate response to the inquiring user device.
[0062] Reference now Figure 2, shows a flow chart of a method 200 according to a method. The method 200 can be performed according to the present invention. Figures 1 to 6 Of course, as those skilled in the art will appreciate upon reading this specification, method 200 may include more Figure 2 More or fewer operations may be performed as specifically described in .
[0063] Each step of method 200 may be performed by any suitable component of an operating environment. For example, in various approaches, method 200 may be performed in part or in whole by a computer or some other device having one or more processors therein. A processor (e.g., a processing circuit, chip, and / or module) implemented in hardware and / or software and preferably having at least one hardware component may be used in any device to perform one or more steps of method 200. Illustrative processors include, but are not limited to, a central processing unit (CPU), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), etc., combinations thereof, or any other suitable computing device known in the art.
[0064] It may be noted that method 200 may be performed in a network environment in which one or more user devices (e.g., laptops, tablets, phones, etc.) are configured to host a predetermined AI chatbot application, and the user devices are configured to output information associated with the AI chatbot application to a predetermined AI chatbot server, which is configured to perform one or more operations of method 200 to analyze the information using the techniques described herein. In some other approaches, a first user device hosting a predetermined AI chatbot application is configured to perform the operations of method 200. The network environment may additionally and / or alternatively include multiple additional AI chatbot servers, and one or more of such AI chatbot servers are preferably configured to determine answers to questions input into the AI chatbot server. The infrastructure of components associated with such a network environment is described in further detail elsewhere herein, for example, see. Figure 3 to Figure 4 .
[0065] It should be noted that any monitoring of user actions and / or behaviors described herein is preferably obtained only after obtaining permission from the associated user. For example, operation 202 includes obtaining permission to monitor interactions with the first user device. The permission is preferably explicitly granted and can be revoked by the associated user at any time and for any reason.
[0066] Operation 204 includes causing the interaction with the first user device to be monitored by a plurality of sensors. These sensors may include, for example, a thermometer, a motion detector, a voltage measuring instrument, a current measuring instrument, or any other type of sensor available in a network environment including an AI chatbot, which will become apparent to a person skilled in the art after reading this disclosure. The interaction with the first user device may depend on the method. In some methods, the interaction with the first user device may include text input on the first device. In one or more such methods, the text entered on the first device may be text input data, which includes a question entered into a chatbot interface of the first user device, for example, a portal window for typing a question so that the question is answered by an AI service. In some other methods, the interaction with the first user device may result in the generation of IoT data. For context, IoT data may include any type of data generated by a physical object in a network environment including an AI chatbot. In some methods, IoT data includes a metric associated with the first user device and / or another predetermined device, wherein the metric is generated based on the output of the sensor (e.g., based on a reading performed by the sensor). For example, in some methods, the metric may include temperature data generated based on one or more sensors that measure temperature. A digital representation of the temperature reading may be generated, thereby establishing a metric that may be included in the IoT data. More specifically, the temperature may be, for example, the temperature of a component of the first user device, the temperature of the environment in which the first user device is located, the estimated temperature of the environment in which the predetermined user and / or device and / or event is scheduled to occur, etc. In some other methods, the metric may include a measured amount of reclaimable storage space present on the first user device, a measured current data write rate of a data storage drive, etc. In one or more of these methods, the IoT data may include the generated metric, timestamp information about the measurements performed, information about the sensors used to perform the measurements, etc. For example, a software version of a predetermined device (which may be the first user device), a model of the predetermined device, power usage measurements associated with the predetermined device (the number of times the battery of the user device has been charged and / or discharged within a twenty-four hour period, whether an abnormal battery usage event has occurred, etc.), damage event information (impact and / or drop events of the first user device), etc. By being configured to process and analyze different sets of data types, the methods described herein enable the techniques of method 200 to be deployed in different sets of environments.
[0067] Obtain a first data set, e.g., see operation 206. As a result of performing monitoring of a first user device, obtain at least some information of the first data set. This may include a first data set that includes text input data and / or IoT data. In some methods where the first data set includes both text input data and IoT data, the IoT data may be integrated with the text input data by an IoT data integrator component of the first user device. For context, in some methods, the IoT data integrator component may be a module for integrating IoT data with request content (e.g., a text question) of the text input data. For example, data from a sensor in a user device may be integrated in a request output by the first user device as collected IoT data in a predetermined format (e.g., IoTList[IoTID][IoTData]).
[0068] In some other methods, information is obtained directly from one or more sensors. The information may be additionally and / or alternatively received from a first user device, for example, in one or more methods, wherein the operation of method 200 is not performed by the first user device, but by an AI chatbot server. In yet other methods, IoT data may be additionally and / or alternatively obtained by direct monitoring and measurement performed by an AI chatbot server, and text input data may be received from a first user device that inputs text, for example, via a chatbot interface of a first user device. By obtaining a first data set that preferably includes text input data and IoT data, the surrounding context of the text input data may be determined based on an analysis of the first data set. In this way, in the case where the text input data does not provide enough details (e.g., relatively sufficiently detailed questions) to generate a detailed answer, IoT data may be used to determine the missing context without having to request that additional information be entered into the AI chatbot application of the first user device.
[0069] Operation 208 includes parsing the first data set into a plurality of elements. In some methods, text parsing techniques that will become apparent to a person of ordinary skill in the art after reading the description herein can be used to parse at least some of the data of the first data set into different elements. In some methods, these text parsing techniques can include applying NLP to the text of the first data set. Word relational techniques that will become apparent to a person of ordinary skill in the art after reading the description herein can be used to group words that have at least a predetermined similarity to each other in the element grouping. For context, in some preferred methods, a first subset of elements preferably includes text input data, and a second subset of elements preferably includes IoT data. In other words, in one or more such methods, text input data can be distinguished and maintained in elements different from IoT data. In some methods, this separation of text input data and IoT data can be established and maintained at least initially to determine whether the text input data constitutes a question with at least a predetermined degree of specificity, or whether IoT should be used to supplement the question, so as to establish a question with both text input data and IoT data with at least a predetermined degree of specificity. Questions that do not have at least a predetermined degree of specificity to be processed by the AI chatbot server would otherwise waste processing resources because the answers returned by the AI chatbot server are relatively likely to be inaccurate, e.g., not answering the intended context of the question because the context is not discernible based on the lack of details provided in the textual input data.
[0070] As described above, in some methods, it is determined whether the text input data (of the first subset of elements) meets the predetermined specificity threshold, e.g., see decision 210. In some preferred methods, determining whether the text input data of the first subset of elements meets the predetermined specificity threshold includes determining whether there is an answer with at least a predetermined level of detail for the text input data. In some other methods, determining whether the text input data of the first subset of elements meets the predetermined specificity threshold includes determining, for example, whether the text input data includes at least a predetermined number of words, whether the text input data includes at least a predetermined number of words that are not non-descriptive nominal words (e.g., "the", "one", "a kind", etc.), whether the text input data includes at least a predetermined number of words from a predetermined list, etc.
[0071] In response to determining that there are answers with at least the predetermined level of detail for the text input data, it is determined that the predetermined specificity threshold is met, e.g., as shown by the “yes” logic path of decision 210. Conversely, in response to determining that there are no answers with at least the predetermined level of detail for the text input data, it is determined that the predetermined specificity threshold is not met, e.g., as shown by the “no” logic path of decision 210. It should be noted that the predetermined specificity threshold may additionally and / or alternatively be determined to be met or not met based on the results of any of the other factors described above (e.g., a predetermined number of words, a predetermined number of words that are not non-descriptive nominal words, etc.).
[0072] In response to determining that the text input data of the first subset of elements does not satisfy the predetermined specificity threshold, the first data set is rephrased as a second data set, e.g., see operation 212. In other words, in order to provide the chatbot server (to which at least some of the data in the first data set will be routed) with an amount of data from which a relatively accurate answer can be generated, in response to determining that the text input data of the first subset of elements does not satisfy the predetermined specificity threshold, the second data set is generated.
[0073] In some preferred methods, rewording the first data set as the second data set includes identifying at least a first element in a second subset of elements, the first element including IoT data related to at least some of the text input data. In one or more such methods, the first element in the second subset of elements is one or more words and / or values that further define at least some of the text input data. Thus, in some methods, identifying includes using relevant techniques that will become apparent to a person of ordinary skill in the art after reading this specification to determine whether one or more words and / or values of the text input data are further defined by the IoT data of the first element in the second subset of elements. For example, assuming that the text input data includes the text "How can I fix my phone?", IoT data that further defines a portion of (and is thereby related to) the text input data "phone" can be determined, including, for example, the software version of the phone, the model of the phone, the temperature of the phone, and the like.
[0074] Identification of at least a first element in the second subset of elements that includes IoT data that is related to at least some of the text input data establishes context that may not exist when the text input data is considered alone. In other words, if the chatbot only considers the text "How can I fix my phone?", the chatbot server will not understand the relatively specific and detailed context added by the IoT data (e.g., the software version of the phone, the model of the phone, the temperature of the phone, etc.).
[0075] Rephrasing the first data set into a second data set using at least some IoT data associated with at least some of the identified text input data may additionally and / or alternatively include integrating at least some of the IoT data into at least some of the text input data in the text input data. For example, in some methods, the rephrasing may include using sentence structuring techniques and / or NLP techniques, which will become apparent to a person of ordinary skill in the art after reading the description herein, to place words and / or values of the IoT data into a question including the text input data. Note that in one or more such methods, the rephrasing may additionally and / or alternatively include adding some words to the first data set, thereby establishing a second data set. For example, the text "How can I fix my phone?" may be rephrased into a second data set that includes "How can I fix a battery charging problem with abnormal temperature (60 degrees C) in my phone type 1 with operating system type 1?". Without such rephrasing, a chatbot server that would otherwise process the text input data could potentially generate and return relatively inaccurate answers, such as how to replace the screen of phone type 2, and / or relatively general answers that are not helpful, such as providing a generic customer support number. The rephrasing may additionally and / or alternatively include removing some words from the first data set, thereby establishing a second data set. For example, IoT data that is determined to be unrelated to any text input data may be optionally removed from the first data set, thereby establishing the second data set. In some preferred methods, the second data set is a question to be answered by the chatbot server.
[0076] Operation 216 includes causing a second data set to be sent to a determined chatbot server. Depending on the infrastructure for executing method 200, in some methods, multiple potential chatbot servers may be available to complete the collection of data provided to the chatbot server. Therefore, method 200 optionally includes determining a chatbot server from multiple potential chatbot servers. In some methods, determining a chatbot server from multiple potential chatbot servers may be based on preference information of a user who enters text input data on a first user device. In some methods, the preference information is included in the first data set, while in some other methods, the preference information is obtained from a query output and / or presented to the user via an AI chatbot application of the first user device. The preference information may detail the user preferences to be applied during the implementation of the questions contained in the first information set and / or generated using the first information set. For example, the preference information may include, for example, one or more chatbot servers among multiple potential chatbot servers that the user prefers to use, one or more chatbot servers among multiple potential chatbot servers that the user prefers not to use, the total number of chatbot servers to be used, whether to randomly select one of the potential chatbot servers to be used, whether to randomly select one of the potential chatbot servers not to be used, etc. The preference information is preferably used to determine the chatbot server to which the second data set is sent.
[0077] The second data set is sent to the determined chatbot server so as to cause the determined chatbot server to generate answers to the questions of the second data set. Therefore, in some methods, the second data set is sent to the determined chatbot server together with instructions to determine and / or return answers.
[0078] Operation 220 includes returning a first output of the determined chatbot server to the first user device. For context, in some preferred methods, the first output is an answer to the second data set. The first output is output to the first user device to provide an answer to a question about the text input data to a user who inputs at least some text input data. In some methods in which method 200 is performed by the first user device, returning the first output of the determined chatbot server to the first user device may include adding an instruction in the second data set sent to the determined chatbot server to return the first output to the first user device. In some other methods in which method 200 is performed by another device (e.g., a server different from the first user device and different from the determined chatbot server), returning the first output of the determined chatbot server to the first user device may include receiving the first output from the determined chatbot server and outputting the first output to the first user device.
[0079] In some methods, returning the determined first output of the chatbot server to the first user device includes rendering the determined first output of the chatbot server as a predetermined sentence structure. For example, in some methods, NLP can be used to determine that at least some of the first output is not a readable user text. In response to such a determination, the first output can be rendered as a readable user text using a technique that will become apparent to a person of ordinary skill in the art, for example, a sentence structuring technique can be applied to render the first output as a readable user text. Rendering allows the first output to be delivered to the user device in a form that can be presented to the user, and the first output inputs at least some of the text input into the chatbot interface of the first user device. In the case where the rendering cuts off at least some of the first output that is determined not to be presentable to the user, the rendering reduces the amount of data ultimately transmitted to the first user device. In addition, the rendering alleviates device processing operations that otherwise may be performed to clarify the meaning of the first output, for example, a clarification request returned by the first user device. Returning the determined first output of the chatbot server to the first user device may additionally and / or alternatively include outputting the rendered first output to the first user device.
[0080] Referring back to decision 210, in response to determining that the text input data of the first subset of elements meets the predetermined specificity threshold, e.g., see the logic path "yes" of decision 210, method 200 includes not rewording the first data set as the second data set, but causing the text input data of the first data set to be sent to the determined chatbot server, e.g., see operation 214. Operation 218 includes causing a second output of the determined chatbot server (e.g., an output based on the first data set) to be returned to the first user device. Note that in some preferred methods, the second output is a response to the text input data of the first data set. By causing only the text input data of the first data set to be sent to the determined chatbot server in response to determining that the text input data of the first subset of elements meets the predetermined specificity threshold, processing resources that would otherwise be consumed in generating and outputting the second data set are preserved.
[0081] In some methods, method 200 includes receiving and using user feedback to relatively improve the accuracy of answers generated during subsequent iterations of processing the data set. For example, operation 222 includes receiving feedback about the first output from a first user device. In order to determine whether the threshold used in the process of generating the first output should be adjusted, for example, based on the threshold of one or more instances of unsatisfactory feedback, method 200 may include determining whether the feedback is positive feedback, for example, see decision 224. Determining whether the feedback is positive feedback may include using NLP techniques to parse the feedback about the first output to determine whether the feedback about the first output includes one or more predetermined words associated with negative feedback, for example, unhappy, disagree, annoyed, what does this mean, I don't understand, etc. On the contrary, determining whether the feedback is positive feedback may additionally and / or alternatively include using NLP techniques to parse the feedback about the first output to determine whether the feedback about the first output includes one or more predetermined words associated with positive feedback, for example, happy, yeah, approve, good, I understand, perfect, thank you, etc. In response to determining (e.g., see the “no” logic path of decision 224) that the feedback is not positive feedback, e.g., a complaint, consumer dissatisfaction, etc., method 200 includes increasing the predetermined specificity threshold, e.g., see operation 226. Conversely, in response to determining (e.g., see the “yes” logic path of decision 224) that the feedback is positive feedback, e.g., a positive review, consumer satisfaction, etc., method 200 includes maintaining the current predetermined specificity threshold, e.g., see operation 228.
[0082] As a result of implementing the techniques described herein in a network environment including an AI chatbot, various performance benefits are achieved. Although several of these performance benefits are described above in the overall operation of method 200, additional performance benefits are described in detail below. For example, the described operations enable real-time contextual information to be selectively integrated into the AI chatbot interface and supplement queries entered into the AI chatbot interface. IoT sensors make this integration possible and enable the chatbot server to access real-time data from the physical environment on which the question is based. This also provides up-to-date and contextual information to enhance the accuracy and relevance of the responses generated by the chatbot server.
[0083] Personalized interaction between users and AI chatbot interfaces is also achieved by implementing the techniques described herein. More specifically, by leveraging and analyzing IoT sensor data, the chatbot server generates personalized recommendations, suggestions, and actions based on the specific needs and preferences of individual users. This creates a relatively more customized and engaging conversational experience than the user would otherwise experience when processing chatbot text input without considering IoT.
[0084] Several efficiencies are also achieved using the technology described herein. More specifically, the combination of AI chatbot capabilities and IoT sensors achieves a simplified and efficient process that would otherwise not be obtained by considering text input data alone. This enables user devices to obtain information, control devices, and / or perform tasks relatively quickly and conveniently through natural language conversations, thereby eliminating the need for manual operation. A relatively improved decision-making process is also achieved. The operation described herein enables the IoT chatbot to analyze data from IoT sensors and provide users with valuable insights and recommendations that are relatively more accurate than traditional chatbot responses that do not consider IoT data. This helps make wise decisions related to energy optimization, security, maintenance, or other areas that utilize IoT data.
[0085] As a result of deploying the techniques described herein, automation and control of the process of meeting the problem is also achieved. Various actions and control strategies can be automated based on data from IoT sensors. This allows proactive monitoring, automatic adjustments, and timely intervention, thereby reducing manual effort and optimizing operations.
[0086] The use of the technology described herein also promotes user participation, because the immersive and real-time nature of the automated processing operations described herein promotes participation and interactive conversations. This enables users to receive real-time updates. In addition, scalability and flexibility are achieved using the technology described herein. Specifically, these technologies can be deployed in a variety of environments and scaled to accommodate different IoT sensor networks containing a wide range of sensors. This establishes a relatively flexible solution for different industries and use cases while enhancing the credibility and accuracy of AI chats.
[0087] Figure 3 An infrastructure 300 according to one method is depicted. As an option, the present infrastructure 300 may be implemented in conjunction with features from any other method listed herein, such as those described with reference to other figures. However, of course, such an infrastructure 300 and other infrastructures presented herein may be used in a variety of applications and / or arrangements that may or may not be specifically described in the illustrative methods listed herein. Furthermore, the infrastructure 300 presented herein may be used in any desired environment.
[0088] It can be started that the infrastructure 300 includes components associated with a network environment in which the operations of the method 200 can be performed. The infrastructure 300 includes an IoT-enabled chatbot (IoTCBot) that can be deployed via a chatbot server application (IoTCBot server), multiple potential chatbot servers ("chatbot servers") for answering data sets, and user devices and / or plug-ins and / or applications (e.g., "chatbot clients"). In some methods, the IoTCBot server is a server application for supporting the IoTCBot client as a HCI layer above the AIChatbot service that bridges IoT network analysis and an AI-Chatbot for supporting immersive chat sessions.
[0089] The manager component of the IoTCBot server may include a user interface for allowing a user to indicate IoTCBot setting preferences (e.g., authentication of AI-chatbot servers, authorized IoT networks, etc.) and standards (e.g., access restrictions to IoT sensors and IoT data, supported chatbot server lists, etc.). A configuration file (e.g., see IoTCBot service configuration file) may be a configuration file for saving configured IoTCBot settings, and an IoTCBot data structure may be a data structure with an associated algorithm for tracking and editing the content in the current window. In some methods, the data (IoTCBot_Data) of the IoTCBot data structure may include, for example, UserID, ChatBotID, QuestionID, IoTList[IoTID][IoTData], OriginalRequest, IoTEnhancedRequest, OriginalAnswer, iotEnhancedAnswer, etc. The user profile may be used to determine user preferences to be applied during problem solving, as described elsewhere herein, for example, see method 200.
[0090] In some methods, the IoT chatbot standard (IoTCBot standard) is a set of configuration rules for, for example, connecting to IoT networks, types of IoT devices and sensors, collecting IoT data, a list of supported chatbot servers, etc. Administrators and users can provide input for defining and / or customizing the IoTCBot standard to meet preferences and needs. For example, such input may include the time and place at which data from a location sensor can be defined and controlled by the user. In some methods, the IoTCBot parser can be a module for parsing user requests and integrating IoT context information into different elements (e.g., original questions, IoT data, etc.) in approximately real time. In addition, an IoT data identifier can be a module for identifying useful IoT data related to a request.
[0091] The IoTCBot analyzer is a module for analyzing the identified IoT data to determine whether to rephrase the original request of the first data set. Based on this determination, a rephrase agent can be selectively used, which is a module for rephrasing and converting user requests to include relatively more specific questions (e.g., text input data with integrated IoT data). The IoTCBot requester is a module configured to send the rephrased request to the AI-chatbot requested by the user. The IoTCBot receiver is configured to receive a response from the AI-chatbot and pass the response to the IoTCBot client. The IoTCBot adjuster is a module for adjusting the IoTCBot standard and related settings based on user feedback.
[0092] The IoT network is configured to connect multiple sensors in different devices (e.g., vehicles, mobile phones, wearable devices, smart homes, smart buildings, smart roads, smart cities, etc.). In some methods, the IoTCBot client can be a plug-in and / or application that can be installed at the application / application level to support immersive chat. The IoTCBot monitor is a module for monitoring human-computer interactions in AI chats (e.g., input buffers, viewed content, feedback, etc.). For example, information that can be monitored and determined from the client application may include, for example, a new user request "How can I fix my phone?", the phone has been charged more than three times in 12 hours, the battery status has changed abnormally, the phone version, the phone software version, the IoT message: "Charging on Hold", the battery temperature: 60C, etc.
[0093] The IoT data integrator is a module for integrating IoT data (e.g., data from sensors in user devices) with request content. For example, the collected IoT data can be integrated with the user's original request "How can I fix my phone?" in a predetermined format "IoTList[IoTID][IoTData]", and the resulting integrated request can be sent to the IoTCBot server. The IoTCBot rendering is a module for rendering the returned AI-chatbot response (from the IoTCBot) in the IoTCBot client.
[0094] Figure 4An infrastructure 400 according to one method is depicted. As an option, the present infrastructure 400 may be implemented in conjunction with features from any other method listed herein, such as those described with reference to other figures. However, of course, such an infrastructure 400 and other infrastructures presented herein may be used in a variety of applications and / or arrangements that may or may not be specifically described in the illustrative methods listed herein. Furthermore, the infrastructure 400 presented herein may be used in any desired environment.
[0095] The infrastructure 400 includes an IoT chatbot client 402 (IoTCBot client), which can be, for example, a user device, an interface, etc., and is configured to receive input from a user (e.g., a user) on an AI chat interface 404 (e.g., such as a web browser). The AI chat interface 404 is configured to monitor human-computer interactions that are recorded as data (e.g., metadata). The monitoring can be performed in a network (e.g., see IoT network) and / or by one or more predetermined monitoring devices (e.g., see IoTCBot monitors). Text input can be received on the interface in addition and / or alternatively, for example, see AI chatbot requests. The data obtained by monitoring and the text input data can be added to a first data set by a predetermined integrator component (e.g., see IoT data integrator), which is output to one or more predetermined targets, for example, see "to IoTCBot adjuster" and "to IoTCBot parser" of IoT server 406 (IoTCBot server).
[0096] The IoT server 406 may parse the first data set into a plurality of elements (via an IoTCBot parser), the plurality of elements comprising a first subset of elements containing text input data and a second subset of elements containing IoT data. The identifier component (IoT data identifier) and / or the analyzer component (IoTCBot analyzer) may be used to determine whether the text input data of the first subset of elements meets a predetermined specificity threshold, e.g., see the decision "needs to be rephrased", and in response to determining that the predetermined specificity threshold is not met, the first data set is rephrased into a second data set by a rephrasing component (e.g., see the rephrasing agent). Conversely, in response to determining that the predetermined specificity threshold is met, the first data set is maintained and submitted to a determined chatbot server in a plurality of potential chatbot servers, e.g., see IoTCBot requester submission to a chatbot server. It should be noted that in some methods, the determination may be based on user preferences. For example, the IoTCBot adjuster component may be configured to input the received preference information and input the information into a predetermined storage module, e.g., see IoTCBot manager, and / or relay the information to a predetermined administrator device, e.g., see administrator. In some methods, the predetermined storage module includes an organized information table for logic executed to determine which chatbot server to send the first data set and / or the second data set to. For example, in some methods, the predetermined storage module includes, for example, referring to an IoTCBot service configuration file, an IoTCBot data table, a user configuration file, and an IoTCBot standard.
[0097] The output of the determined chatbot server is received, e.g., see IoT robot receiver, and returned to the IoT chatbot client 402. In some methods, the output is rendered by the IoT server 406 before being output, while in some other methods, the IoT server 406 causes a rendering component of the IoT server 406 to render the output for display on the interface, e.g., see IoTCBot rendering.
[0098] Figure 5 A table 500 is depicted according to one method. As an option, the present table 500 may be implemented in conjunction with features from any other method listed herein, such as those described with reference to other figures. However, of course, such table 500 and other tables presented herein may be used in a variety of applications and / or arrangements that may or may not be specifically described in the illustrative methods listed herein. Furthermore, the table 500 presented herein may be used in any desired environment.
[0099] Table 500 includes multiple timestamp entries. In a first timestamp, for example, see time-1, no data set was received and therefore, processing of the data set was not performed, for example, see empty. Thereafter, in a second timestamp (e.g., see time-2), a first data set associated with a first user (e.g., see user01) is received. The first data set is indexed by an ID in the table, for example, see Q001. The first data set is parsed into a plurality of elements, the plurality of elements comprising a first subset of elements containing text input data and a second subset of elements containing IoT data. For example, the text input data comprises an original question entered into a chatbot window (Chatbot01), for example, see “How can I fix my phone?”. It can be determined that the original question does not meet a predetermined specificity threshold and therefore, the first data set can be rephrased as a second data set. More specifically, at least some of the IoT data of the first data set (e.g., see “Phone type 1, operating system type 1 message:'Charging on Hold'; Battery Temperature:60 degrees C”) can be incorporated into the text input data to define a second data set. The second data set includes significantly more context, for example, see the IoT enhancement request “How can I fix a battery charging problem with abnormal temperature (60 degrees C) in my phone type 1, operating system type 1?”. The output of the chatbot server includes relatively significantly more detail than the output would include if the second data set was not created. For example, the IoT enhancement answer specifies “Yes, this is a known problem because of defect XYZ in operating system type 1. Please update your operating system to type 2,” while the output answer typically only specifies “Are you using phone type 1 or type 2? Please call an 800 number to get customer support” without the additional context provided in the second data set.
[0100] Chatbot use cases vary depending on the approach. For example, a user may be asking for troubleshooting steps to solve a specific problem with their phone, a user may be seeking advice on repairing a physically damaged phone, a user may be referring to software or application-related issues, etc., but without incorporating IoT information, these details may be unclear. In other words, in the case where the user's text input data is not supplemented with IoT data, it may be difficult for the chatbot server to provide an accurate answer customized for the user's specific situation. In another use case, the text input data may ask "What is the best laptop for gaming and work?", but this question lacks details. Therefore, the question of the first data set can be rephrased as a relatively more accurate question that includes different HCI and IoT data in real time. This rephrasing can elaborate on the user's intended question, such as the user may have intended to ask for a recommendation for a laptop computer that can effectively handle gaming and work-related tasks. Without the added IoT data, it may be difficult for the chatbot server to understand the user's preferences, budget constraints, and specific requirements for gaming and work. This makes it challenging to provide an accurate answer that suits the user's needs. In yet another use case, text input data lacking sufficient specificity may include the query “How do I fix my car?”, where the user may be seeking guidance on troubleshooting a specific issue with their car, looking for general maintenance tips, asking for advice on finding a reliable mechanic, etc. The missing context may be provided by rewording the original text input data into a relatively more accurate request by incorporating different HCI and IoT data in real time.
[0101] Reference now Figure 6 , shows a flow chart of a method 609 according to a method. The method 609 can be performed according to the present invention. Figures 1 to 6 Of course, as will be understood by those skilled in the art upon reading this specification, method 609 may include more Figure 6 More or fewer operations may be performed as specifically described in .
[0102] Each step of method 609 may be performed by any suitable component of an operating environment. For example, in various approaches, method 609 may be performed in part or in whole by a computer or some other device having one or more processors therein. A processor (e.g., a processing circuit, chip, and / or module) implemented in hardware and / or software and preferably having at least one hardware component may be used in any device to perform one or more steps of method 609. Illustrative processors include, but are not limited to, a central processing unit (CPU), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), etc., combinations thereof, or any other suitable computing device known in the art.
[0103] Although it should be understood that the processing software for incorporating IoT data into the chatbot text input data can be deployed by manually loading it directly into the client, server, and agent computers via a storage medium such as a CD, DVD, etc., the processing software can also be automatically or semi-automatically deployed to the computer system by sending the processing software to a central server or a group of central servers. The processing software is then downloaded to the client computer that will execute the processing software. Alternatively, the processing software is sent directly to the client system via email. Then, the processing software is separated into a directory or loaded into a directory by executing a set of program instructions that separate the processing software into a directory. Another option is to send the processing software directly to a directory on the client computer hard drive. When there is a proxy server, the process will select the proxy server code, determine which computers to place the proxy server code on, send the proxy server code, and then install the proxy server code on the agent computer. The processing software will be sent to the proxy server and then stored on the proxy server.
[0104] Step 600 begins the deployment of the process software. The initial step is to determine if there are any programs that will reside on one or more servers when the process software is executed (601). If this is the case, the server that will contain the executable file is identified (709). The process software for the one or more servers is transferred directly to the server's storage via FTP or some other protocol or by copying using a shared file system (710). The process software is then installed on the server (711).
[0105] Next, a determination is made as to whether the process software is to be deployed by having the user access the process software on one or more servers (602). If the user is to access the process software on a server, the server address where the process software will be stored is identified (603).
[0106] A determination is made as to whether to establish a proxy server (700) to store the process software. A proxy server is a server that sits between a client application such as a web browser and a real server. It intercepts all requests to the real server to see if it can satisfy the request itself. If not, it forwards the request to the real server. Two main advantages of a proxy server are improved performance and filtering requests. If a proxy server is needed, the proxy server is installed (701). The process software is sent to the server(s) via a protocol such as FTP, or copied directly from the source file to the server file via file sharing (702). Another method involves sending a transaction to the server(s) containing the process software and having the server process the transaction, then receiving the process software and copying it to the server's file system. Once the process software is stored at the server, the user accesses the process software on the server through his client computer and copies the file system to his client computer (703). Another method is to have the server automatically copy the process software to each client and then run an installer for the process software on each client computer. The user executes a program to install the process software on his client computer (712) and then exits the process (608).
[0107] In step 604, a determination is made whether to deploy the process software by sending the process software to the users via email. A group of users to whom the process software is to be deployed is identified (605) along with the addresses of the users' client computers. The process software is sent to each user's client computer via email (704). The user then receives the email (705) and then detaches the process software from the email to a directory on his client computer (706). The user executes a program to install the process software on his client computer (712) and then exits the process (608).
[0108] Finally, it is determined whether the process software will be sent directly to the user's directory on their client computer (606). If so, the user directory is identified (607). The process software is transferred directly to the user's client computer directory (707). This can be done in several ways, such as but not limited to sharing a file system directory and then copying from the sender's file system to the receiving user's file system, or alternatively, using a transfer protocol such as File Transfer Protocol (FTP). The user accesses a directory on their client file system in preparation for installing the process software (708). The user executes a program to install the process software on his client computer (712) and then exits the process (608).
[0109] It will be apparent that the various features of the foregoing systems and / or methods may be combined in any manner, creating multiple combinations from the description presented above.
[0110] It should also be appreciated that the method of the present invention may be provided as a service deployed on behalf of a client to provide services on demand.
[0111] The description of various methods of the present invention has been presented for the purpose of illustration, but is not intended to be exhaustive or limited to the disclosed methods. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described methods. The terminology used herein is selected to best explain the principles of the methods, practical applications, or technical improvements to technologies found in the marketplace, or to enable other persons of ordinary skill in the art to understand the methods disclosed herein.
Claims
1. A computer-implemented method comprising: Parsing a first set of data into a plurality of elements, wherein a first subset of the elements comprises text input data and a second subset of the elements comprises Internet of Things (IoT) data; In response to determining that the text input data does not satisfy a predetermined specificity threshold, rewording the first set of data into a second set of data; causing the second data set to be sent to a determined chatbot server; and Returning a first output of the determined chatbot server to a first user device, wherein the first output is a response to the second set of data.
2. The computer-implemented method of claim 1 , wherein: The text input data is a question entered into the chatbot interface of the first user device.
3. The computer-implemented method of claim 2, wherein: The IoT data includes metrics generated based on measurements performed by sensors, wherein the IoT data includes device information.
4. The computer-implemented method of claim 1 , wherein: Rephrasing the first data set as the second data set includes identifying a first element in the second subset of elements, the first element including IoT data related to the text input data; and integrating the IoT data of the first element in the text input data.
5. The computer-implemented method of claim 1 , comprising: In response to determining that the text input data satisfies the predetermined specificity threshold, causing the text input data to be sent to the determined chatbot server; and returning a second output of the determined chatbot server to the first user device, wherein the second output is a response to the text input data.
6. The computer-implemented method of claim 1 , comprising: Determine whether the text input data satisfies the predetermined specificity threshold, wherein determining whether the text input data satisfies the predetermined specificity threshold comprises: determining whether there is an answer with at least a predetermined level of detail for the text input data; and in response to determining that there is an answer with at least the predetermined level of detail for the text input data, determining that the predetermined specificity threshold is satisfied.
7. The computer-implemented method of claim 1 , wherein: Returning the determined first output of the chatbot server to the first user device includes rendering the determined first output of the chatbot server into a predetermined sentence structure, and outputting the rendered first output to the first user device.
8. The computer-implemented method of claim 1 , comprising: receiving feedback from the first user device regarding the first output; determining whether the feedback is positive feedback; as well as In response to determining that the feedback is not positive feedback, the predetermined specificity threshold is increased.
9. The computer-implemented method of claim 1 , comprising: causing interaction with the first user device to be monitored by a plurality of sensors, wherein information obtained as a result of the monitoring is the IoT data; and The chatbot server is determined from a plurality of potential chatbot servers, wherein the chatbot server is determined based on preference information of a user who inputs the text input data on the first user device.
10. A computer program product, comprising program instructions, wherein the program instructions can be read and / or executed by a computer to enable the computer to implement the method according to any one of claims 1 to 9.
11. A system comprising: processor; as well as Logic, the logic is integrated with the processor, can be executed by the processor, or is integrated with the processor and can be executed by the processor, the logic is configured to implement the method according to any one of claims 1-9.