Robotic program for monitoring

By processing user queries through a robot program and generating and providing robot queries, the accuracy and efficiency issues of chatbots under uncontrolled user input are solved, enabling a more efficient solution.

CN115238047BActive Publication Date: 2026-02-24INTERNATIONAL BUSINESS MACHINE CORPORATION
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202210422012.8
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2021-04-25
Filing Date
2022-04-21
Publication Date
2026-02-24
Estimated Expiration
2042-04-21

AI Technical Summary

Technical Problem

Chatbots require continuous tuning and testing when processing user queries, especially when user input is uncontrolled, leading to low accuracy and efficiency in understanding user queries.

Method used

The robot program processes user queries, including detecting status messages in the output data, generating robot queries, using a knowledge base to determine solutions, and providing them to the user, who can then confirm or modify the query to improve accuracy.

Benefits of technology

It improves the accuracy and efficiency of user queries, reduces misconfigurations and resource waste in the data processing system, and saves processing time.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115238047B_ABST
    Figure CN115238047B_ABST
Patent Text Reader

Abstract

The present disclosure relates to a robot program for monitoring. A user query is processed using a robot program by executing the robot program, wherein executing the robot program further comprises processing output data of an application, detecting a status message in the output data, generating a robot query related to the status message, providing the robot query to a user, receiving a user query from the user in response to providing the robot query to the user, wherein the user query is based at least in part on the robot query, determining one or more solutions to the user query using a knowledge base, and applying a selected one of the solutions.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to the field of digital computer systems, and more specifically, to a method for using a robot program to process user queries. Background Technology

[0002] A chatbot is a software application that conducts online chat conversations via text or text-to-voice instead of providing direct contact with the user. However, chatbots may require continuous tuning and testing, especially when the user-provided input is uncontrolled. Summary of the Invention

[0003] The following overview is presented to provide a basic understanding of one or more embodiments of this disclosure. This overview is not intended to identify key or essential elements or to depict any scope of a particular embodiment or any scope of the claims. Its sole purpose is to present concepts in a simplified form as a prelude to the more detailed description that follows. In one or more embodiments described herein, devices, systems, computer-implemented methods, apparatuses, and / or computer program products enable the processing of user queries using bot programs.

[0004] Various aspects of the present invention disclose methods, systems, and computer-readable media associated with processing user queries using a robot program by executing a robot program, wherein executing the robot program further includes: processing output data of an application; detecting a status message in the output data; generating a robot query related to the status message; providing the robot query to a user; and, in response to providing the robot query to the user, receiving a user query from the user, wherein the user query is at least partially based on the robot query, using a knowledge base to determine one or more solutions for the user query, and applying a selected solution from the solutions. Attached Figure Description

[0005] The above and other objects, features and advantages of this disclosure will become more apparent from the more detailed description of some embodiments thereof in the accompanying drawings, wherein the same reference numerals generally refer to the same parts in the embodiments of this disclosure.

[0006] Figure 1 A schematic diagram of a computing environment according to an embodiment of the present invention is provided.

[0007] Figure 2 A flowchart describing an operation sequence for processing user queries using a robot program according to an embodiment of the present invention is provided.

[0008] Figure 3A flowchart is provided to describe an operation sequence for processing output data of a running monitoring application according to an embodiment of the present invention.

[0009] Figure 4 A flowchart describing an operation sequence for generating robot queries according to an embodiment of the present invention is provided.

[0010] Figure 5 A flowchart describing an operation sequence for controlling user queries according to an embodiment of the present invention is provided.

[0011] Figure 6 A flowchart describing an operation sequence for processing user queries using a robot program according to an embodiment of the present invention is provided.

[0012] Figure 7 A computerized system suitable for implementing one or more method steps according to an embodiment of the present invention is described.

[0013] Figure 8 A cloud computing environment according to an embodiment of the present invention is described.

[0014] Figure 9 An abstract model layer according to an embodiment of the present invention is shown. Detailed Implementation

[0015] The description of various embodiments of the present invention is presented for illustrative purposes and is not intended to be exhaustive or limited to the disclosed embodiments. Many modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of the described embodiments. The terminology used herein is chosen to best explain the principles of the embodiments, their practical application, or improvements to existing technologies in the market, or to enable others skilled in the art to understand the embodiments disclosed herein.

[0016] An application can be, for example, a monitoring application. A monitoring application can be a computer program. Status messages can be the status of a system whose operation is controlled by the application. Status messages can be error messages, warning messages, or messages providing some information. The application can perform tasks, such as monitoring tasks. These tasks can include observing, adjusting, controlling, and / or verifying the operation of one or more data processing systems. These tasks can, for example, perform one or more controls. Different types of controls can be performed. For example, a control can measure the degree to which the security of a data processing system conforms to a set of established standards. Different types of applications can be provided depending on the type of control performed by the application. The application can be configured to provide output data indicating the results of the task. The output data can be provided periodically by the application. For example, the application can be an online monitoring program that performs monitoring tasks continuously or periodically. In another example, the application can perform monitoring tasks offline. In one example, the output data can be displayed on the application's user interface. The output data can be displayed in one or more panels on the application's user interface. The application user interface can, for example, include dashboards. The output data can include, for example, values ​​of specific key performance indicators (KPIs), the operational status of one or more computers in the data processing system, etc.

[0017] However, applications such as monitoring programs can be so complex that users cannot understand the application's output data. Investigating and fixing these problems can be a large part of the user's work. Embodiments of the present invention utilize robot programs to assist users in investigating and / or fixing identified problems in the output data. A robot program is a computer program. Before investigating or fixing the problem, the robot program receives a user query or user input and uses Natural Language Processing (NLP) to understand the user query. However, if the user query is not properly formulated, the robot program may not understand the user query and may not provide an answer, or may provide an incorrect answer to the user query, due to the limitations of NLP technology. For example, the user may not know how to describe the problem; for instance, the user may provide too much detail, which may be unimportant to the problem and may mislead the robot program's inference algorithm. This embodiment of the present invention addresses this problem by controlling or assisting the user in formulating the user query. As a result, technical advantages are provided by enabling the robot program to provide accurate solutions based on technical decisions that can be made, such as technical decisions that may require changes to the configuration of the data processing system based on solutions provided by the robot program. Therefore, embodiments of the present invention prevent misconfiguration of the data processing system, waste of processing resources, and potential disasters that may result from misconfiguration.

[0018] Another advantage of embodiments of the present invention is that any query received from the user is anticipated by pre-preparing the robot query based on the output data. As a result, processing time is saved by presenting the suggested robot query to the user, making the initial user query appropriate.

[0019] In one embodiment, the processing of output data includes: providing a call database containing data about different types of applications, wherein the data for a specific type of application includes procedures for that specific type of application and predefined queries associated with tokens associated with that specific type of application; performing identification of the type of application being run; searching the call database for procedures associated with the identified type; and analyzing the output data based on the procedures.

[0020] For example, the call database may include entries associated with different types of applications. Each entry may include a process representing the type of application represented by that entry. The entry may also include pairs of queries and tags, where the tags represent status messages indicating the type of application represented by the entry. For example, if the status message includes: “No data in computer A,” the call database may include the tags “No data” and “Computer A,” each tag associated with one or more queries. The tags and associated queries may be historical data collected based on previously processed questions by the data processing system. For example, the call database may be updated by this method by storing tags of detected status messages in association with generated robot queries and / or user queries received by the robot program.

[0021] An application can be configured to execute one or more controls, each of which can be performed using one or more corresponding procedures. For example, controls over the quality, accuracy, and integrity of input data in a data processing system can be associated with a data input procedure. In this embodiment, the data input procedure is processed to understand the inspection of the input data. Furthermore, it is determined whether the output data generated by the control includes status messages, and if so, what type of status message it is.

[0022] This implementation can be advantageous by increasing the accuracy of the queries and the corresponding solutions obtained.

[0023] In one embodiment, generating a robot query includes: tokenizing the detected status message and retrieving a query associated with the token from the call database, wherein the generated robot query is the retrieved query. This embodiment can be advantageous, particularly advantageous, by leveraging previously gained experience, as most status messages and issues may recur over time.

[0024] In one embodiment, the robot program can be configured to access the application programming interface of the application, wherein generating a robot query includes: generating a candidate robot query related to the detected status message, and specifying the candidate robot query according to a function and / or request of the application programming interface, wherein the generated robot query is the specified candidate robot query.

[0025] For example, a robot program can access the function and / or call history of an application programming interface (API). Candidate robot queries can be compared to this call history to identify possible modifications to the candidate robot query based on the calls; for example, the modification could include adding one or more words to the candidate robot query. This embodiment can further increase the accuracy of the generated robot queries and the resulting corresponding solutions.

[0026] In one embodiment, the method further includes: receiving an initial user query from a user via a robot program, prompting the user to confirm that the user query takes into account the robot query, wherein the user query is received in response to the prompt, and the user query is the initial user query or a modification of the initial user query. This is particularly advantageous by notifying or reminding the user of the existence of a template query provided by the robot program. If the initial query is not specific compared to the suggested robot query, the user can improve the initial query. In this way, the suggested and applied solution is accurate.

[0027] In one embodiment, the method further includes: displaying output data in an application user interface on a display, and displaying a robot query in a robot dialogue window on the display, wherein the robot dialogue window and the application user interface are displayed simultaneously, and the user query is received via the robot dialogue window.

[0028] In one embodiment, the application user interface includes any one of the following: a panel and a dashboard, wherein processing of the output data includes using the application user interface to process the displayed output data, which enables atomic monitoring of the content of the application user interface. Additionally, the bot program is enabled to anticipate and provide bot queries for a given status message before the user notices it. Once the user notices the status message, the user can immediately use the suggested bot query, which can accelerate the process of inspecting the data processing system.

[0029] In one embodiment, a bot query is a query used to find the root cause of a status message or a query used to provide details of a status message. The query can be, for example, a question. In one example, a bot query can be a specific query that a user can use as is to ask a question. In another example, a bot query can be a template that a user can adapt to a status message they have already detected, or a general question.

[0030] In one embodiment, the execution of the robot program includes: receiving a user query, determining a solution, and applying the selected solution. As a result, this can be advantageous because a single execution of the robot program can be used to both construct the problem and communicate with the user to provide a solution to the problem detected by the user.

[0031] In one embodiment, the method further includes initiating a user-bot chat session, during which the receiving of user queries, determination of solutions, and application of selected solutions are performed. In one example, the bot program may be executed first to construct a question. Another execution of the bot program may be executed to initiate the user-bot chat session, for example, in response to a user request. This can be advantageous because the bot program can detect status messages and construct questions in milliseconds, while the user may require more time to analyze output data and notice status messages. According to this embodiment, the bot program can be shut down during a time window defined by the difference in error detection times to conserve resources.

[0032] In one embodiment, the robot program is embedded in the application.

[0033] In one embodiment, the application is a client in a client-server configuration relating to an application server connected to the client, wherein the application is configured to use the services of the application server to output data, and the robot program is a client in a client-server configuration relating to a robot server connected to the robot program, wherein the robot program uses one or more services of the robot server to perform the method.

[0034] In one embodiment, the method further includes storing robot queries in association with detected status messages in a call database, enabling continuous updates or population of the call database.

[0035] In one embodiment, the method further includes repeating the method for the same application or for other applications to update the call database.

[0036] In one embodiment, providing robot queries also includes providing additional robot queries that call a database similar to the application being used.

[0037] In one embodiment, the application is either an asset management application or a network management application. Furthermore, determining the type of application so that the processing of the output data can be adapted accordingly can be advantageous. For example, status messages from a network management application may have a different format compared to status messages from another type of application.

[0038] Figure 1This is a schematic diagram of a computing environment 100 according to an embodiment of the present invention.

[0039] This invention may include various accessible data sources, such as database 115 and knowledge base 117, which may include personal data, content, or information that the user wishes not to be processed. Personal data includes personally identifiable information or sensitive personal information, as well as user information, such as tracking or geolocation information. Processing refers to any automated or non-automated operation or set of operations, such as the collection, recording, organization, construction, storage, adaptation, modification, retrieval, consultation, use, publication by transmission, dissemination, or otherwise making available, combined, restricted, erased, or destroyed of personal data. Application server 105 enables authorized and secure processing of personal data. Application server 105 provides informed consent upon notification of the collection of personal data, allowing the user to opt in or opt out of processing personal data. Consent may take several forms. Opting in consent compels the user to take an affirmative action before processing personal data. Alternatively, opting out consent compels the user to take an affirmative action to prevent processing of personal data before processing personal data. Application server 105 provides information about the nature of the personal data and processing (e.g., type, scope, purpose, duration, etc.). Application server 105 provides users with a copy of the stored personal data. Application server 105 allows correction or completion of incorrect or incomplete personal data. Application server 105 allows immediate deletion of personal data.

[0040] The computing environment 100 includes a monitoring device 101, a robot server 103, and an application server 105. The monitoring device 101 can be, for example, a desktop computing device, a smart display, a tablet computing device, a laptop computing device, or other suitable form of client computing device. The robot server 103 can be provided as a single server device or multiple server devices operating in a cloud computing configuration. The application server 105 can be provided as a single server device or multiple server devices operating in a cloud computing configuration. Although shown as separate components, in another example, the robot server 103 and the application server 105 can be implemented on the same server.

[0041] Monitoring device 101 can be configured to communicate with robot server 103 and application server 105 via a communication network. The communication network may include, for example, the Internet, a local area network (LAN), a wide area network (WAN), and / or a wireless network. Monitoring device 101 includes robot program 109 and application program 107, such as a monitoring application. Application program 107 includes instructions that, when executed, generate an application user interface on display device 111. Application program 107 can be configured to display output data on the application user interface indicating the results of predefined controls. The purpose of these controls may be, for example, to ensure the proper development and implementation of the application, the integrity of program and data files, and the operation of the computer. These controls may include, for example, system development lifecycle controls, program change management controls, physical security controls for the data processing system, computer operation controls, etc. Each control may be executed using one or more procedures. Application program 107 provides an application programming interface (API) 113. Robot program 109 includes instructions that, when executed, perform at least a portion of embodiments of the present invention. For example, robot program 109 includes instructions that, when executed, generate a dialog canvas on display device 111. The dialog canvas includes a graphical user interface that displays a dialog box containing user queries from user 120 and responses determined by robot program 109. The application user interface and the dialog canvas can be displayed simultaneously. Robot program 109 can access application programming interface 113 of application 107 and determine calls executed via API 113. In one example, robot program 109 is a separate program that executes independently of application 107. In another example, robot program 109 is a module of application 107 that can execute concurrently with application 107; for example, robot program 109 can be embedded within application 107. Robot program 109 can access call database 115 and knowledge base 117. Call database 115 includes data about different types of applications. Data for a specific type of application includes procedures for that specific type of application and predefined queries associated with tags associated with that specific type of application. For example, if the type of application is a network management application, the data stored for that type in call database 115 could include procedures for controlling network functions (e.g., network traffic) and queries related to network problems, where queries are associated with tags involving network status messages.

[0042] Figure 2 This is a flowchart illustrating a method for processing user queries using a robot program, as exemplified by an embodiment of the present invention. For illustrative purposes, Figure 2 The method described in [the document] can be used in [the following context] Figure 1 The system shown in the diagram is implemented, but is not limited to this implementation. Figure 2 The method can be performed by monitoring device 101, for example.

[0043] In one embodiment, the method processes the output data of the running application 107 in step 201. For example, the method can utilize a robot program 109 to process the output data while the application 107 is executing. In this example, the robot program 109 can be automatically launched when the application 107 begins execution. As a result, the method is able to provide continuous assistance to the user. In another example, the robot program 109 can be launched at any time during the execution of the application 107. As a result, the method provides on-demand assistance via the robot program 109.

[0044] The output data may include, for example, attribute values, where attributes describe the results of control performed by application 107. For instance, an attribute might be named "Accessible," indicating whether the computer is accessible or inaccessible. By reading the value of the "Accessible" attribute associated with a given computer, robot program 109 can determine whether the computer is accessible. In one scenario, if the computer is inaccessible, the value of the "Accessible" attribute can be considered a status message. In another example, the output data may also include values ​​for one or more Key Performance Indicators (KPIs), where each KPI is associated with a flag or other indicator indicating whether the KPI's value is normal or an error / problem value. By reading the indicator associated with each KPI, robot program can determine if there is a problem related to the KPI. If the associated KPI's value is not expected, the value of that indicator can be considered a status message. In another example, the output data may display messages indicating the status of each control, where a status message can be provided if a problem is detected by the control. Status messages may include a specific format (e.g., starting with the word "ERROR" in the case of an error message). In this case, robot program 109 can parse the displayed messages and search for messages that begin with "ERROR."

[0045] In one example, robot program 109 uses the controlled process being executed to determine whether any displayed information associated with each control is an error. For example, robot program 109 can parse the process's code to identify output calls or output functions, and use, for example, NLP techniques to identify messages as status messages. Additionally, by comparing output data with those identified messages, robot program 109 can determine whether a status message exists.

[0046] In one embodiment, the method detects one or more status messages in the output data in step 203. Status messages can be error messages, warning messages, or messages providing some knowledge. In one scenario, for each detected status message, the user may need to find a solution or at least understand the status message. In such a scenario, the user can communicate with the robot program 109 and ask questions related to the status message in order to obtain a response. However, formulating questions that can be processed by a computer presents a challenging task because the user may provide insufficient detail, for example, too little detail or more detail irrelevant to the status message. Embodiments of the invention address this problem by anticipating user queries and providing suggestions. To this end, the method enables the robot program 109 to generate one or more robot queries related to each detected status message in step 205.

[0047] In a first query determination example, the method uses robot program 109 to parse detected status message tags into tags. In this example, the method uses robot program 109 to search the call database 115 for each tag in order to identify the query associated with the tag. The method uses the identified query as the generated query in step 205.

[0048] In a second query determination example, the method utilizes robot program 109 to consider the output process associated with the status message to infer the robot query, for example, using NLP techniques. In this example, robot program 109 may compare documents or comments associated with the output process to generate the robot query.

[0049] In one embodiment, the method provides a robot query to the user in step 207. For example, the robot query can be displayed on the same application user interface or in a separate dialog window of the robot program 109. The robot query can be provided in association with a corresponding status message. In this way, the user can access the status message and the suggested robot query. As a result, the user can thus formulate more precise user queries that can be processed more efficiently by the robot program 109.

[0050] In one embodiment, in response to providing a robot query to the user in step 207, the method utilizes robot program 109 to receive a user query from the user in step 209, wherein the user query is based on the robot query of step 205. For example, the user query may be related to each detected status message among the status messages detected by robot program 109 (i.e., the user has detected the same status message as the status message detected by robot program 109). In another example, the user query may be related to a subset of the detected status messages; for example, the user may only notice or understand that a portion of the detected status messages is indeed a status message. In both cases, the user query may be a question of understanding the status message or finding the root cause and thus a solution to the status message.

[0051] In one embodiment, in step 211, the method utilizes robot program 109 to determine one or more solutions to a user query using a knowledge base. For example, robot program 109 may use natural language understanding (NLU), natural language generation (NLG), machine learning, deep learning, or other artificial techniques to determine the solutions.

[0052] In one embodiment, the method utilizes robot program 109 in step 213 to apply at least one selected solution from the solutions. In one example, the method provides a prompt to a user to select at least one solution from the solutions. In response to the prompt, robot program 109 can receive a selection of at least one solution. In another example, robot program 109 can automatically select one of the solutions; for example, robot program 109 can use different kinds of selection algorithms, including selection algorithms for selecting the most commonly offered solution or for random selection of one of the solutions.

[0053] Figure 3 This is a flowchart illustrating a method for processing output data of a running monitoring application, as exemplified by a current embodiment of the present invention. For illustrative purposes, Figure 3 The method described in [the document] can be used in [the following context] Figure 1 The system shown in the diagram is implemented, but is not limited to this implementation. Figure 3 The method can be performed by monitoring device 101, for example.

[0054] In one embodiment, in step 301, the method utilizes robot program 109 to determine the type of the running monitoring application. In one example, robot program 109 may use application metadata describing the monitoring application (e.g., application 107) to determine the type of the monitoring application. In another example, robot program 109 may identify user interface characteristics of the application's user interface displayed by the monitoring application. User interface characteristics may indicate the type of monitoring application; for example, robot program 109 may identify a panel of the monitoring application as an "application for license management - dashboard," indicating that the monitoring application is an asset management application.

[0055] In one embodiment, the method in step 303 searches the database 115 for processes associated with the identified types. For example, these processes may include input processes that check whether input data is accurate, complete, and correct. For example, these processes may include output processes that check whether output is accurate and complete. Each process may output a message indicating the processing result. These messages may include status messages. Each type of message may have a format. For example, a status message may have a format that begins with, for example, the word "ERROR". By analyzing these processes and / or their metadata, the method can utilize robot program 109 to identify the format of the status messages and / or error codes associated with different errors.

[0056] In one embodiment, the method analyzes output data based on the process in step 305. For example, the method utilizes robot program 109 to search for messages in the application user interface that have a format of status messages for the determined process. In another example, the robot program may search for error codes in the application user interface.

[0057] Figure 4 This is a flowchart illustrating an example of a method for generating robot queries according to a current embodiment of the present invention. For illustrative purposes, Figure 4 The method described in [the document] can be used in [the following context] Figure 1 The system shown in the diagram is implemented, but is not limited to this implementation. Figure 4 The method can be performed by monitoring device 101, for example.

[0058] In one embodiment, the method generates candidate robot queries related to the detected state message in step 401. For example, the candidate robot queries may be as described in reference... Figure 2As described, this is determined by parsing the detected status messages with tags, where candidate robot queries can be queries associated with these tags in the call database 115. For example, if the detected status message indicates "No data in computer A," the tags could include "No data" and "Computer A." Searching the call database 115 for possible questions against the tags can identify candidate robot queries such as: "How to check if the software scan has been completed," "How to check the last successful import date," and "How to check if XXX is started and running."

[0059] In one embodiment, the method specifies candidate robot queries in step 403 based on functions and / or requests from the application programming interface. Following the example above, three queries can be specified as follows: In one scenario, since the API has previously checked whether computer A is running Windows, the query "How to check if the software scan has been completed" can be specified as "How to check if the software scan has been completed on Windows". In another scenario, since the API has previously checked whether computer A belongs to computer group X, the query "How to check the last successful import date" can be specified as "How to check the last successful import date of computer group X". In yet another scenario, since the API has previously checked that computer A is running the APP agent, the query "How to check if XXX is started and running" can be specified as "How to check if the APP agent is started and running".

[0060] In one embodiment, the method provides a specified candidate robot query in step 405. For example, the method utilizes robot program 109 to display the specified candidate robot query on the application user interface or in a dialog window.

[0061] Figure 5 This is a flowchart illustrating an example of a method for controlling user queries according to a current embodiment of the present invention. For illustrative purposes, Figure 5 The method described in [the document] can be used in [the following context] Figure 1 The system shown in the diagram is implemented, but is not limited to this implementation. Figure 5 The method can be performed by monitoring device 101, for example.

[0062] In one embodiment, in step 501, the method receives an initial user query from the user. (Following...) Figure 4 For example, a user can select the question "How do I check if a software scan has been completed on Windows?" and modify the question to begin a conversation with robot program 109. In this scenario, the user knows that computer A is running Windows 2012, and because the machine is managed by the user, the question can be refined as follows: "How do I check if a software scan has been completed on Windows 2012?".

[0063] In one embodiment, in step 503, the method prompts the user to confirm that the user query considered, for example, Figure 4 The robot query is defined in [the document]. This can be advantageous because the user may not see the robot query provided by robot program 109.

[0064] In one embodiment, in step 505, the method receives a user query in response to the suggestion. The user query can be an initial user query or a modification of the initial user query. For example, if the suggested query appears to be more accurate, the user can change the initial query. However, the user can confirm that the initial query is indeed accurate, for example, because he / she used a bot query to formulate the initial query.

[0065] Following the example above, this method can find a solution to the problem "How do I check if a software scan has been completed on Windows 2012?". In this example, the robot program 109 can, for example, provide three links (L1, L2, and L3) to a document that can answer the user's question: L1) known "No Data" scan errors on Windows 2012, L2) software scan output verification, and L3) the health check process of the agent running on Windows.

[0066] Figure 6 This is a flowchart illustrating an example of a method for processing user queries using a robot program, according to an embodiment of the present invention. For illustrative purposes, Figure 6 The method described in [the document] can be used in [the following context] Figure 1 The system shown in the diagram is implemented, but is not limited to this implementation.

[0067] In step 601, user 620 opens application 107. Bot program 109 can be embedded within application 107. This step can result in the display of application panel 621. In step 603, bot program 109 (also called a chatbot) detects application panel 621. In step 603, bot program 109 can use the application API of application 107 (e.g., API 113) to process the output data of application 107 and use a database 622 to construct a question list 623. The constructed question list 623 can be provided to user 620. In step 605, user 620 can initiate a conversation with bot program 109 using a preliminary question. In step 607, bot program 109 can analyze the preliminary question and use a knowledge base 624 to suggest one or more solutions 625 to user 620. A solution can be, for example, configuring application server 627. User 620 can select a solution from the suggested solutions or confirm the suggested solution in step 609. In step 611, robot program 109 may apply the selected or confirmed solution, for example, by configuring application server 627.

[0068] Figure 7 This refers to a general computerized system 700 suitable for implementing at least a portion of the method steps included in this disclosure.

[0069] It should be understood that the methods described herein are at least partially non-interactive and are automated by computerized systems such as servers or embedded systems. However, in exemplary embodiments, the methods described herein can be implemented in (partially) interactive systems. These methods can also be implemented in software 712, 722 (including firmware 722), hardware (processor) 705, or combinations thereof. In exemplary embodiments, the methods described herein are implemented in software as an executable program and executed by a dedicated or general-purpose digital computer such as a personal computer, workstation, minicomputer, or mainframe computer. Thus, the most general system 700 includes a general-purpose computer 701.

[0070] In an exemplary embodiment, in terms of hardware architecture, such as Figure 7As shown, computer 701 includes processor 705, memory (main memory) 710 coupled to memory controller 715, and one or more input and / or output (I / O) devices (or peripherals) 10, 745 communicatively coupled via local input / output controller 735. Input / output controller 735 may be (but is not limited to) one or more buses or other wired or wireless connections, as known in the art. Input / output controller 735 may have additional elements to enable communication, which are omitted for simplicity, such as controllers, buffers (caches), drivers, repeaters, and receivers. Furthermore, the local interface may include address, control, and / or data connections to enable proper communication between the aforementioned components. As described herein, I / O devices 10, 745 may generally include any general-purpose encryption card or smart card known in the art.

[0071] Processor 705 is a hardware device for executing software (particularly software stored in memory 710). Processor 705 can be any custom or commercially available processor, central processing unit (CPU), auxiliary processor among several processors associated with computer 701, semiconductor-based microprocessor (in the form of a microchip or chipset), or any device generally used for executing software instructions.

[0072] Memory 710 may include any one or a combination of volatile memory elements (e.g., random access memory (RAM, such as DRAM, SRAM, SDRAM, etc.)) and non-volatile memory elements (e.g., ROM, erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), programmable read-only memory (PROM)). Note that memory 710 may have a distributed architecture, in which various components are geographically separated but can be accessed by processor 705.

[0073] The software in memory 710 may include one or more separate programs, each program including an ordered list of executable instructions for implementing logical functions (particularly those involved in embodiments of the invention). Figure 7 In the example, the software in memory 710 includes instructions 712, such as instructions for managing a database, like a database management system.

[0074] The software in memory 710 typically also includes a suitable operating system (OS) 711. OS 711 essentially controls the execution of other computer programs (such as software 712, which may be used to implement the methods described herein).

[0075] The method described herein can be in the form of a source program 712, an executable program 712 (object code), a script, or any other entity including an instruction set 712 to be executed. When it is a source program, it needs to be translated by a compiler, assembler, interpreter, etc., to operate correctly in conjunction with the OS 711. The compiler, assembler, interpreter, etc., may or may not be included in memory 710. Furthermore, the method can be written in an object-oriented programming language with classes of data and methods, or in a procedural programming language with routines, subroutines, and / or functions.

[0076] In an exemplary embodiment, a conventional keyboard 750 and mouse 755 may be coupled to an input / output controller 735. Other output devices, such as I / O device 745, may include input devices, such as, but not limited to, printers, scanners, microphones, etc. Finally, I / O devices 10, 745 may also include devices that communicate with input and output, such as, but not limited to, network interface cards (NICs) or modulators / demodulators (for accessing other files, devices, systems, or networks), radio frequency (RF) or other transceivers, telephone interfaces, bridges, routers, etc. I / O devices 10, 745 may be any general-purpose encryption card or smart card known in the art. System 700 may also include a display controller 725 coupled to a display 730. In an exemplary embodiment, system 700 may also include a network interface for coupling to a network 765. Network 765 may be an IP-based network for communication between computer 701 and any external server, client, etc., via a broadband connection. Network 765 sends and receives data between computer 701 and external system 30, and may be included to perform some or all of the steps of the methods discussed herein. In an exemplary embodiment, network 765 may be a managed IP network managed by a service provider. Network 765 may be implemented wirelessly, for example using wireless protocols and technologies such as WiFi, WiMax, etc. Network 765 may also be a packet-switched network, such as a local area network (LAN), wide area network (WAN), metropolitan area network (MAN), the Internet, or other similar network environments. Network 765 may be a fixed wireless network, wireless local area network (WLAN), wireless wide area network (WWAN), personal area network (PAN), virtual private network (VPN), intranet, or other suitable network system, and includes devices for receiving and transmitting signals.

[0077] If the computer 701 is a PC, workstation, intelligent device, etc., the software in the memory 710 may also include a Basic Input / Output System (BIOS) 722. The BIOS is a set of necessary software routines that initialize and test the hardware at startup, boot the OS 711, and support data transfer between hardware devices. The BIOS is stored in ROM so that it can be executed when the computer 701 is activated.

[0078] When the computer 701 is running, the processor 705 is configured to execute software 712 stored in memory 710, transfer data to and from memory 710, and typically control the operation of the computer 701 according to the software. The methods and OS 711 described herein are read, in whole or in part (but usually the latter), by the processor 705, possibly buffered within the processor 705, and then executed.

[0079] When implementing the system and methods described herein in software 712, such as Figure 7 As shown, the method can be stored on any computer-readable medium, such as storage device 720, for use by or in conjunction with any computer-related system or method. Storage device 720 may include a disk storage device such as an HDD storage device.

[0080] It should be understood that although this disclosure includes a detailed description of cloud computing, the implementation of the teachings set forth herein is not limited to a cloud computing environment. Rather, embodiments of the invention can be implemented in conjunction with any other type of computing environment now known or developed hereafter.

[0081] Cloud computing is a service delivery model for enabling convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, network bandwidth, servers, processing, memory, storage, applications, virtual machines, and services) that can be rapidly provisioned and released with minimal management effort or interaction with service providers. This cloud model may include at least five features, at least three service models, and at least four deployment models.

[0082] The characteristics are as follows:

[0083] On-demand self-service: Cloud consumers can unilaterally and automatically provide computing power, such as server time and network storage, as needed, without requiring manual interaction with the service provider.

[0084] Broadband network access: Capabilities are available on the network and accessed through standard mechanisms that facilitate the use of heterogeneous thin or thick client platforms (e.g., mobile phones, laptops, and PDAs).

[0085] Resource pooling: A provider's computing resources are pooled to serve multiple consumers using a multi-tenant model, where different physical and virtual resources are dynamically allocated and reallocated based on demand. Location independence has significance because consumers typically do not control or know the exact location of the resources provided, but can specify the location at a higher level of abstraction (e.g., country, state, or data center).

[0086] Rapid Flexibility: In some cases, the ability to scale outwards and inwards quickly and flexibly can be provided. For consumers, the available capacity often appears unlimited and can be purchased in any quantity at any time.

[0087] Measuring services: Cloud systems automatically control and optimize resource usage by leveraging metering capabilities at a level of abstraction appropriate to the service type (e.g., storage, processing, bandwidth, and active user accounts). Resource usage can be monitored, controlled, and reported, providing transparency to both the providers and consumers of the services being utilized.

[0088] The service model is as follows:

[0089] Software as a Service (SaaS): The capability offered to consumers is the ability to use the provider's applications running on cloud infrastructure. Applications can be accessed from various client devices through thin client interfaces such as web browsers (e.g., web-based email). Consumers do not manage or control the underlying cloud infrastructure, including the network, servers, operating system, storage, or even individual application capabilities, with the possible exception of limited user-specific application configuration settings.

[0090] Platform as a Service (PaaS): This provides consumers with the ability to deploy consumer-created or acquired applications onto cloud infrastructure using programming languages ​​and tools supported by the provider. Consumers do not manage or control the underlying cloud infrastructure, including networks, servers, operating systems, or storage, but they have control over the deployed applications and the configuration of any application hosting environments.

[0091] Infrastructure as a Service (IaaS): This provides consumers with the capability to deliver processing, storage, networking, and other basic computing resources that enable them to deploy and run arbitrary software, which may include operating systems and applications. Consumers do not manage or control the underlying cloud infrastructure, but they do have control over the operating system, storage, deployed applications, and possibly limited control over selected networking components (e.g., host firewalls).

[0092] The deployment model is as follows:

[0093] Private cloud: Cloud infrastructure operated solely by an organization. It can be managed by the organization or a third party and can exist inside or outside a building.

[0094] Community cloud: Cloud infrastructure shared by several organizations and supporting a specific community with shared concerns (e.g., tasks, security requirements, policies, and compliance considerations). It can be managed by an organization or a third party and can exist on-site or off-site.

[0095] Public cloud: Cloud infrastructure available to the general public or large industrial groups and owned by organizations that sell cloud services.

[0096] Hybrid cloud: A cloud infrastructure is a combination of two or more clouds (private, community, or public) that remain a single entity but are bound together by standardized or proprietary technologies that enable data and applications to be ported together (e.g., cloud bursting for load balancing between clouds).

[0097] Cloud computing environments are service-oriented, focusing on statelessness, loose coupling, modularity, and semantic interoperability. At the heart of cloud computing is the infrastructure of a network of interconnected nodes.

[0098] Now for reference Figure 8 The illustration depicts a cloud computing environment 1050. As shown, the cloud computing environment 1050 includes one or more cloud computing nodes 1010 to which local computing devices used by cloud consumers can communicate, such as personal digital assistants (PDAs) or cellular phones 1054A, desktop computers 1054B, laptop computers 1054C, and / or automotive computer systems 54N. The nodes 1010 can communicate with each other. They can be physically or virtually grouped (not shown) in one or more networks, such as private clouds, community clouds, public clouds, or hybrid clouds, or combinations thereof, as described above. This allows the cloud computing environment 1050 to provide infrastructure, platform, and / or software as a service, without requiring cloud consumers to maintain resources on their local computing devices. It is understood that... Figure 8 The types of computing devices 1054A-N shown are for illustrative purposes only, and computing node 1010 and cloud computing environment 1050 can communicate with any type of computerized device via any type of network and / or network-addressable connection (e.g., using a web browser).

[0099] Now for reference Figure 9 This demonstrates the 1050 cloud computing environment ( Figure 8 This provides a set of functional abstractions. It should be understood beforehand that... Figure 9 The components, layers, and functions shown are for illustrative purposes only, and embodiments of the invention are not limited thereto. As depicted, the following layers and corresponding functions are provided:

[0100] The hardware and software layer 1060 includes hardware and software components. Examples of hardware components include: a host 1061; a server 1062 based on a RISC (Reduced Instruction Set Computer) architecture; a server 1063; a blade server 1064; a storage device 1065; and a network and networking component 1066. In some embodiments, the software components include network application server software 1067 and database software 1068.

[0101] The virtualization layer 1070 provides an abstraction layer from which the following examples of virtual entities can be provided: virtual server 1071; virtual storage 1072; virtual network 1073, including virtual private network; virtual application and operating system 1074; and virtual client 1075.

[0102] In one example, management layer 1080 may provide the functionality described below: Resource Provisioning 1081 provides dynamic procurement of computing resources and other resources used to perform tasks within the cloud computing environment. Metering and Pricing 1082 provides cost tracking when utilizing resources in the cloud computing environment, as well as billing or invoicing for the consumption of these resources. In one example, these resources may include application software licenses. Security provides authentication for cloud consumers and tasks, as well as protection for data and other resources. User Portal 1083 provides access to the cloud computing environment for consumers and system administrators. Service Level Management 1084 provides cloud resource allocation and management to ensure that required service levels are met. Service Level Agreement (SLA) Planning and Fulfillment 1085 provides pre-scheduling and procurement of cloud resources, where future needs are anticipated according to the SLA.

[0103] Workload layer 1090 provides examples of functionalities that can leverage a cloud computing environment. Examples of workloads and functionalities that can be provided from this layer include: map creation and navigation 1091; software development and lifecycle management 1092; virtual classroom education delivery 1093; data analysis and processing 1094; transaction processing 1095; and query processing performed by a bot program (QPBP) 1096 according to this topic, for example, as referenced. Figure 2 , 3 As described in 4, 5, or 6.

[0104] This topic may include the following terms.

[0105] Clause 1. A computer-implemented method comprising: executing a robot program, including: processing output data of a running application; detecting a status message in the output data; generating a robot query associated with the status message; providing the robot query to a user; in response to providing the robot query to the user, receiving a user query from the user by the robot program, the user query being based on the robot query; determining one or more solutions for the user query by the robot program using a knowledge base; and applying a solution selected from the solutions by the robot program.

[0106] Clause 2. The method according to Clause 1, wherein processing of the output data includes: providing a call database comprising data on different types of applications, wherein the data for a particular type of application includes procedures of the particular type of application and predefined queries associated with tags associated with the particular type of application; performing identification of the type of the running application; searching the call database for procedures associated with the identified type; and analyzing the output data based on the procedures.

[0107] Clause 3. The method according to Clause 2, wherein generating a robot query includes: performing a tag parsing on the detected status message and retrieving a query associated with the tag from the invoked database, wherein the generated robot query is the retrieved query.

[0108] Clause 4. The robot program is configured to access the application programming interface of the application according to any one of Clauses 1 to 3 above, wherein generating a robot query includes: generating a candidate robot query related to a detected status message; specifying the candidate robot query according to a function and / or request of the application programming interface; wherein the generated robot query is the specified candidate robot query.

[0109] Clause 5. The method according to any one of Clauses 1 to 4 above further includes: receiving an initial user query from the user by the robot program; prompting the user to confirm that the user query takes the robot query into account; wherein the user query is received in response to the prompt, the user query being the initial user query or a modification of the initial user query.

[0110] Clause 6. The method according to any one of Clauses 1 to 5 above further includes: displaying the output data in an application user interface on a display; displaying the robot query in a robot dialogue window on the display, wherein the robot dialogue window and the application user interface are displayed simultaneously; wherein the user query is received via the robot dialogue window.

[0111] Clause 7. The method according to Clause 6 includes any one of the following: panels and dashboards, wherein processing of the output data includes using the application user interface to process the displayed output data.

[0112] Clause 8. The robot query, according to any one of Clauses 1 to 7 above, is a query used to find the root cause of a status message or a query used to provide details of a status message.

[0113] Clause 9. The execution of the robot program according to any one of Clauses 1 to 8 above includes: receiving user queries, determining solutions, and applying the selected solutions.

[0114] Clause 10. The method according to any one of Clauses 1 to 8 above further includes initiating a user-bot chat session, wherein during the session, the receiving of user queries, the determination of solutions, and the application of selected solutions are performed.

[0115] Clause 11. The method according to any one of Clauses 1 to 10 above, wherein the robot program is embedded in the application.

[0116] Clause 12. The method according to any one of Clauses 1 to 11 above, wherein the application is a client in a client-server configuration relating to an application server connected to the client, wherein the application is configured to use the services of the application server to output data; and the robot program is a client in a client-server configuration relating to a robot server connected to the robot program, wherein the robot program uses one or more services of the robot server to perform the method.

[0117] Clause 13. The method according to any one of Clauses 2 to 12 above further includes storing the robot query in the invoke database.

[0118] Clause 14. The method according to Clause 13 also includes repeating the method for the same application or for other applications to update the robot database.

[0119] Clause 15. The method according to Clause 14, wherein providing robot queries also includes providing additional robot queries from a calling database for applications similar to the application described.

[0120] Clause 16. The application is any one of the following: an asset management application and a network management application, according to any one of Clauses 1 to 15 above.

[0121] This invention can be a system, method, and / or computer program product at any possible level of technical detail integration. The computer program product may include a computer-readable storage medium having computer-readable program instructions thereon for causing a processor to perform aspects of the invention.

[0122] Computer-readable storage media can be tangible devices capable of retaining and storing instructions for use by an instruction execution device. Computer-readable storage media can be, for example, but not limited to, electronic storage devices, magnetic storage devices, optical storage devices, electromagnetic storage devices, semiconductor storage devices, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of computer-readable storage media includes the following: portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), portable optical disc read-only memory (CD-ROM), digital multifunction disc (DVD), memory sticks, floppy disks, mechanical encoding devices such as punch cards or recessed structures with instructions recorded thereon, and any suitable combination of the foregoing. As used herein, computer-readable storage media should not be construed as transient signals themselves, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through waveguides or other transmission media (e.g., light pulses through fiber optic cables), or electrical signals transmitted through wires.

[0123] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to a suitable computing / processing device, or via a network, such as the Internet, a local area network (LAN), a wide area network (WAN), and / or a wireless network, to an external computer or external storage device. The network may include copper cables, optical fibers, wireless transmission, routers, firewalls, switches, gateway computers, and / or edge servers. A network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and forwards them to a computer-readable storage medium within the respective computing / processing device.

[0124] Computer-readable program instructions used to perform the operations of this invention may be assembly instructions, instruction set architecture (ISA) instructions, machine-dependent instructions, microcode, firmware instructions, status setting data, integrated circuit configuration data, or source code or object code written in any combination of one or more programming languages ​​(including object-oriented programming languages ​​such as Smalltalk, C++, etc.) and procedural programming languages ​​(such as the "C" programming language or similar programming languages). The computer-readable program instructions may be executed entirely on the user's computer, partially on the user's computer, as a standalone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In the latter case, the remote computer may be connected to the user's computer via any type of network, including a local area network (LAN) or a wide area network (WAN), or may be connected to an external computer (e.g., via the Internet using an Internet service provider). In some embodiments, to perform aspects of this invention, electronic circuits, including, for example, programmable logic circuits, field-programmable gate arrays (FPGAs), or programmable logic arrays (PLAs), may execute computer-readable program instructions to personalize the electronic circuits by utilizing the status information of the computer-readable program instructions.

[0125] Various aspects of the present invention are described herein with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer-readable program instructions.

[0126] These computer-readable program instructions may be provided to a processor of a computer or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions / actions specified in one or more blocks of a flowchart and / or block diagram. These computer-readable program instructions may also be stored in a computer-readable storage medium that can direct a computer, programmable data processing apparatus, and / or other devices to operate in a particular manner, such that the computer-readable storage medium in which the instructions are stored includes an article of writing comprising instructions for implementing aspects of the functions / actions specified in one or more blocks of a flowchart and / or block diagram.

[0127] Computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus or other device to produce a computer-implemented process, such that the instructions, which execute on the computer, other programmable apparatus or other device, perform the functions / actions specified in one or more boxes of a flowchart and / or block diagram.

[0128] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of instructions comprising one or more executable instructions for implementing a specified logical function. In some alternative embodiments, the functions indicated in the blocks may occur in a different order than indicated in the figures. For example, two blocks shown consecutively may actually be implemented as a single step, executed simultaneously, substantially simultaneously, with partial or complete time overlap, or these blocks may sometimes be executed in reverse order, depending on the functions involved. It will also be noted that each block in the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, may be implemented by a dedicated hardware-based system that performs the specified function or action or executes a combination of dedicated hardware and computer instructions.

[0129] References to "an embodiment," "an embodiment," "an exemplary embodiment," etc., in this specification indicate that the described embodiment may include a particular feature, structure, or characteristic, but each embodiment may not necessarily include that particular feature, structure, or characteristic. Furthermore, these phrases do not necessarily refer to the same embodiment. Additionally, when a particular feature, structure, or characteristic is described in connection with an embodiment, it is believed that incorporating other embodiments to affect that feature, structure, or characteristic is within the knowledge of those skilled in the art, regardless of whether it is explicitly described.

[0130] The terminology used herein is for the purpose of describing particular embodiments only and is not intended to limit the invention. As used herein, the singular forms “a,” “an,” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will also be understood that the terms “comprising” and / or “including” as used in this specification designate the presence of stated features, integers, steps, operations, elements, and / or components, but do not exclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and / or groups thereof.

[0131] Various embodiments of the invention have been described for illustrative purposes, but are not intended to be exhaustive or limited to the disclosed embodiments. Many modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of the invention. The terminology used herein is chosen to best explain the principles of the embodiments, their practical application, or improvements to existing technologies in the market, or to enable others skilled in the art to understand the embodiments disclosed herein.

Claims

1. A computer-implemented method for processing user queries using a robot program, the method comprising: Executing the robot program, wherein executing the robot program further includes: Process the application's output data; Detect the status message in the output data; The status message markers detected from the output data are parsed into multiple markers; Search each of the plurality of tags within the database to identify one or more queries associated with the plurality of tags; Generate a robot query related to the status message, the robot query coming from one or more queries identified as being associated with the plurality of tags; Provide the robot query to the user; In response to providing the robot query to the user, a user query is received from the user, wherein the user query is at least partially based on the robot query; Use the knowledge base to determine one or more solutions for the user's query; and The application is the solution selected by the user from one or more determined solutions.

2. The method of claim 1, wherein processing the output data of the application further comprises: Provides a calling database that includes data corresponding to different types of applications, wherein the data for a specific type of application includes procedures of that specific type of application and predefined queries associated with tags associated with that specific type of application; Perform the identification of the type of the application; The process of searching the call database for the type associated with the application; as well as The output data is analyzed at least in part based on the process associated with the identified type.

3. The method of claim 2, wherein generating the robot query related to the status message further comprises: The database is retrieved to retrieve queries associated with the plurality of tags, wherein the generated robot query is the retrieved query.

4. The method according to claim 2, further comprising: The robot query is stored in the call database; as well as The call database is updated at least in part based on the robot query.

5. The method of claim 4, wherein providing the robot query further comprises: Additional robot queries for applications associated with the application are provided from the database.

6. The method according to claim 1, further comprising: Configure the robot program to access the application's application interface, wherein generating the robot query further includes: Generate candidate robot queries related to the detected state messages; and The candidate robot query is specified at least in part based on a request from the application programming interface, wherein the generated robot query is the specified candidate robot query.

7. The method according to claim 1, further comprising: The user is prompted to confirm that the user query took the robot query into account.

8. The method according to claim 1, further comprising: The output data is displayed in the application user interface on the monitor; as well as The robot query is displayed in a robot dialogue window on the display, wherein the robot dialogue window and the application user interface are displayed simultaneously, and wherein the user query is received via the robot dialogue window.

9. The method of claim 8, wherein the application user interface includes a panel and a dashboard, and wherein the processing of the output data includes processing the displayed output data using the application user interface.

10. The method of claim 1, wherein the robot query comprises a first query for finding the root cause of the status message and a second query for providing details of the status message.

11. The method according to claim 1, further comprising: Initiate a user-bot chat session, wherein the receipt of the user query, the determination of one or more solutions, and the application of the selected solution occur during the user-bot chat session.

12. The method according to claim 1, further comprising: Embed the robot program into the application.

13. The method according to claim 1, further comprising: Configure the application to use the service output data of the application server, wherein the application is a client in a first client-server configuration involving the application server connecting to the client. as well as The robot program is configured as a client in a second client-server configuration, which involves a robot server connected to the robot program.

14. The method of claim 1, wherein the application is selected from the group consisting of asset management applications and network management applications.

15. A computer program product for processing user queries using a robot program, the computer program product comprising stored program instructions, the stored program instructions including: Program instructions for executing a robot program, wherein executing the robot program further includes program instructions for the following operations: Process the application's output data; Detect the status message in the output data; The status message markers detected from the output data are parsed into multiple markers; Search each of the plurality of tags within the database to identify one or more queries associated with the plurality of tags; Generate a robot query related to the status message, the robot query coming from one or more queries identified as being associated with the plurality of tags; Provide the robot query to the user; A program instruction for receiving a user query from the user in response to providing the robot query to the user, wherein the user query is at least partially based on the robot query; Program instructions for using a knowledge base to determine one or more solutions to a user query; as well as Program instructions for applying a solution selected by the user from one or more determined solutions.

16. The computer program product according to claim 15, wherein the stored program instructions further include: Program instructions for providing access to a database, the database including data corresponding to different types of applications, wherein the data for a specific type of application includes procedures of that specific type of application and predefined queries associated with tags associated with that specific type of application; and program instructions for performing type identification of the application. Program instructions for searching the call database for a process associated with the identified type; as well as Program instructions for analyzing the output data based at least in part on the process associated with the type of the application.

17. The computer program product according to claim 15, wherein the stored program instructions further include: Program instructions for displaying the output data in the application user interface on the display; as well as Program instructions for displaying the robot query in a robot dialogue window on the display, wherein the robot dialogue window and the application user interface are displayed simultaneously, and wherein the user query is received via the robot dialogue window.

18. A computer system for processing user queries using a robot program, the computer system comprising: One or more computer processors; One or more computer-readable storage devices; as well as Program instructions stored on the one or more computer-readable storage devices, for execution by the one or more computer processors, the stored program instructions including: Program instructions for executing a robot program, wherein executing the robot program further includes program instructions for the following operations: Process the application's output data; Detect the status message in the output data; The status message markers detected from the output data are parsed into multiple markers; Search each of the plurality of tags within the database to identify one or more queries associated with the plurality of tags; Generate a robot query related to the status message, the robot query coming from one or more queries identified as being associated with the plurality of tags; Provide the robot query to the user; A program instruction for receiving a user query from the user in response to providing the robot query to the user, wherein the user query is at least partially based on the robot query; Program instructions for using a knowledge base to determine one or more solutions to the user's query; and Program instructions for applying a solution selected by the user from one or more determined solutions.

19. The computer system according to claim 18, wherein the stored program instructions further include: Program instructions for providing access to a database, the database including data corresponding to different types of applications, wherein the data for a specific type of application includes procedures of that specific type of application and predefined queries associated with tags associated with that specific type of application; and program instructions for performing type identification of the application. Program instructions for searching the call database for a process associated with the identified type; as well as Program instructions for analyzing the output data based at least in part on the process associated with the type of the application.

20. The computer system according to claim 18, wherein the stored program instructions further include: Program instructions for displaying the output data in the application user interface on the display; as well as Program instructions for displaying the robot query in a robot dialogue window on the display, wherein the robot dialogue window and the application user interface are displayed simultaneously, and wherein the user query is received via the robot dialogue window.

Citation Information

Patent Citations

  • Database cluster fault self-healing method and device

    CN111459698A

  • Systems and methods for automating customer interactions with enterprises

    WO2019245943A1