Determining diagnostic information using program code
Patent Information
- Application Number
- JP2023518436
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2020-09-24
- Filing Date
- 2021-07-20
- Publication Date
- 2025-03-05
- Estimated Expiration
- 2041-07-20
Smart Images

Figure 0007640207000001 
Figure 0007640207000002 
Figure 0007640207000003
Abstract
Description
[Technical field]
[0001] The present invention relates generally to the field of data analysis, and more particularly to diagnostic methods and services. [Background technology]
[0002] Messaging applications (e.g. social messaging, chat applications, etc.) are applications and platforms that allow messaging over the Internet on a wide range of platforms. Messaging applications exist for social networking platforms or other instant messaging services and are also developed for specific uses, such as chatbots, payments, e-commerce chat, etc. Messaging applications are some of the most widely used applications on smartphones.
[0003] A dialogue system or conversational agent (CA) is a computer system intended to converse with humans. Dialogue systems employ one or more of text, voice, graphics, haptics, gestures, and other methods for communication in both input and output channels. A chatbot is a piece of software that conducts a conversation through auditory or textual methods. Such programs are often designed to plausibly simulate how a human would behave as a conversational partner. Chatbots are typically used in dialogue systems for a variety of practical purposes, including customer service or information retrieval. Some chatbots use advanced natural language processing (NLP) systems, while others may utilize simpler methods (e.g., responses based on keyword identification).
[0004] In computer programming, an error code (or return code) is a numbered or alphanumeric code used to determine the nature of an error and the reason an error occurred. Error codes are also commonly found in home electronics and consumer devices when a device attempts to do something that the device cannot perform. The error code may also be passed to an error handler, which determines what action to take. Summary of the Invention
[0005] Aspects of the present invention disclose methods, computer program products, and systems for determining a response to a query from a user. The method includes one or more processors receiving a query related to a software product. The query includes an indication of an error. The method further includes the one or more processors determining whether a response to the query is available within an accessible knowledge base. The method further includes the one or more processors identifying content within a program code of the software product that corresponds to the indicated error of the received query in response to determining that a response to the query is not available. The method further includes the one or more processors determining a response to the query based on the identified content within the program code. The determined response to the query includes diagnostic information corresponding to the indicated error. [Brief description of the drawings]
[0006] [Figure 1] 1 is a functional block diagram of a data processing environment in accordance with an embodiment of the present invention. [Diagram 2] 4 is a flowchart illustrating the operational steps of a program for determining and providing a response to a user query related to a software product, in accordance with an embodiment of the present invention. [Diagram 3]2 is a block diagram illustrating components of a computer system representing the client device and server of FIG. 1 according to an embodiment of the present invention. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0007] Embodiments of the present invention can provide a chatbot to automatically review the source code of a software product and identify information relevant to formulating an answer to a received inquiry. Thus, embodiments of the present invention can operate and provide a chatbot (or other question answering systems and methods) that do not require comprehensive documentation (e.g., documentation and instructions prepared by a human operator) about the supported software product to determine a response to a query, and can operate to reduce system costs and increase system speed and throughput.
[0008] Some embodiments of the present invention recognize that chatbots (e.g., virtual assistants) are commonly used to support software products. In various situations, chatbots can operate by utilizing knowledge contained in product documentation, such as manuals, guides, technical notes, other support cases (e.g., tickets), lists of frequently asked questions (FAQs), etc. Embodiments of the present invention recognize that creating such a knowledge base is time consuming and requires dedicated effort. Thus, embodiments of the present invention recognize that in many situations, the knowledge base is not complete and up-to-date, which may limit or reduce the accuracy of answers from the chatbot. A common type of question received by a product support chatbot concerns the meaning of error codes reported by a software product. Embodiments of the present invention recognize that while it is obvious for a chatbot to provide such an answer if the error code is explained in the documentation, difficulties arise when the error code is not clearly presented and explained in the documentation.
[0009] An embodiment of the present invention may be operable to receive a query related to a software product. In response to determining that a response to the query is not readily available (e.g., in an existing knowledge base related to the software product), an embodiment of the present invention may identify program code of the software product and identify content within the program code from the received query. An embodiment of the present invention may then be operable to determine a response to the query based on the identified content and provide the response to a corresponding requesting user (e.g., a user who submitted the query).
[0010] Implementations of embodiments of the present invention may take a variety of forms, and exemplary implementation details are described below with reference to the figures.
[0011] The present invention will now be described in detail with reference to the figures. Figure 1 is a functional block diagram illustrating a distributed data processing environment, generally designated 100, in accordance with one embodiment of the present invention. Figure 1 provides only one example implementation and is not intended to imply any limitations with respect to the environments in which different embodiments may be implemented. Many modifications to the depicted environment may be made by one skilled in the art without departing from the scope of the present invention as recited in the claims.
[0012] An embodiment of data processing environment 100 includes a computing device 110 and a server 120 interconnected via network 105. In the example embodiment, server 120 represents a computing device (e.g., one or more management servers) that provides customer support and troubleshooting services (e.g., support chatbots, virtual assistants, etc.) to one or more organizations and users, such as a user associated with computing device 110. In other embodiments, data processing environment 100 may include additional instances of computing devices (not shown) that may interface with server 120 in accordance with various embodiments of the present invention.
[0013] Network 105 may be, for example, a local area network (LAN), a telecommunications network, a wide area network (WAN) such as the Internet, or any combination of the three, and may include wired, wireless, or fiber optic connections. In general, network 105 may be any combination of connections and protocols that support communication between computing devices 110 and servers 120 in accordance with embodiments of the present invention. In various embodiments, network 105 facilitates communication between a plurality of networked computing devices (e.g., computing devices 110 and other devices not shown), corresponding users (e.g., users of computing devices 110, servers 120, etc.), and corresponding management services and / or network accessible resources (e.g., servers 120 and data resources 130).
[0014] In various embodiments of the present invention, computing device 110 may be a workstation, a personal computer, a personal digital assistant, a mobile phone, or any other device capable of executing computer-readable program instructions in accordance with embodiments of the present invention. In general, computing device 110 represents any electronic device or combination of electronic devices capable of executing computer-readable program instructions. Computing device 110 may include components as shown and described in further detail with respect to FIG. 3 in accordance with embodiments of the present invention.
[0015] In an example embodiment, computing device 110 is a personal workstation or mobile device associated with (e.g., registered to) a user utilizing a software product (e.g., software product 116) that sends a query to server 120. For example, a user of computing device 110 encounters an error while utilizing software product 116 and sends a query (to server 120) regarding the error that occurred.
[0016] Computing device 110 includes user interface 112, applications 114, and software products 116. User interface 112 is a program that provides an interface between a user of computing device 110 and multiple applications (e.g., applications 114) present on the device. A user interface, such as user interface 112, refers to the information (e.g., graphics, text, and sound) that a program presents to a user and the control sequences that the user uses to control the program. There are various types of user interfaces. In one embodiment, user interface 112 is a graphical user interface. A graphical user interface (GUI) is a type of user interface that allows a user to interact with information using electronic devices such as a computer keyboard and mouse through graphical icons and visual indicators, such as secondary notations, as opposed to text-based interfaces, typed command labels, or text navigation. In computer use, GUIs were introduced in response to the perceived steep learning curve of command line interfaces, which require entering commands at a keyboard. Actions in a GUI are often performed by direct manipulation of graphical elements. In another embodiment, the user interface 112 is a script or an application programming interface (API).
[0017] The application 114 may represent one or more applications (e.g., a suite of applications) running on the computing device 110. In various example embodiments, the application 114 may be an application utilized by a user of the computing device 110 to transmit and / or receive data to and from the server 120. In another example embodiment, the application 114 may be an application associated with utilizing the software product 116. In one example, the application 114 is a web browser that may be accessed and utilized by a user of the computing device 110. In another example, the application 114 may be an enterprise-specific application associated with the server 120 and / or a corresponding organization (e.g., associated with a product offered by the enterprise). In an example situation, a user of the computing device 110 may utilize the application 114 to establish a chat session with the server 120 (e.g., a chatbot and / or chatbot program 200 of the server 120) and communicate regarding the software product 116.
[0018] Software product 116 may represent a program or application operating on computing device 110 that is available to a user of computing device 110 according to various embodiments of the present invention. In an additional aspect, software product 116 corresponds to program code 124 on server 120 (i.e., program code 124 includes source code for software product 116).
[0019] In example embodiments, server 120 can be a desktop computer, a computer server, or any other computer system known in the art. In particular embodiments, server 120 represents a computer system utilizing clustered computers and components (e.g., database server computers, application server computers, etc.) that function as a single pool of seamless resources when accessed by elements of data processing environment 100 (e.g., computing device 110 and other devices not shown). In general, server 120 represents any electronic device or combination of electronic devices capable of executing computer-readable program instructions. Server 120 may include components as shown and described in further detail with respect to FIG. 3 in accordance with an embodiment of the present invention.
[0020] The server 120 includes the chatbot program 200 and a storage device 122 including program code 124 and a knowledge base 126. In various example embodiments, the server 120 operates as a computing system that provides customer support and troubleshooting services (e.g., a support chatbot, a virtual assistant, etc.) to one or more organizations and users, such as a user associated with the computing device 110. For example, the server 120 hosts a chatbot service including the chatbot program 200. In additional embodiments, the server 120 may include or have access to syntactic and semantic analysis capabilities for use in accordance with various aspects of the present invention (e.g., in conjunction with the operation of the chatbot program 200). In another embodiment, the server 120 may include or have access to natural language processing (NLP) capabilities for use in accordance with various aspects of the present invention (e.g., in conjunction with the operation of the chatbot program 200).
[0021] In an example embodiment, the chatbot program 200 automatically determines and provides a response to a user query related to a software product in accordance with an embodiment of the present invention. In various embodiments, the server 120 can utilize the chatbot program 200 to manage some of the operations of a chatbot related to the software product 116. The chatbot program 200 receives a query related to the software product. In response to determining that a response to the query is not readily available (e.g., in an existing knowledge base related to the software product), the chatbot program 200 identifies the program code of the software product and identifies content within the program code from the received query. The chatbot program 200 then determines a response to the query based on the identified content and provides the response to the corresponding requesting user (e.g., the user who submitted the query).
[0022] In various embodiments of the present invention, a user of the computing device 110 may register with the server 120 (e.g., via a corresponding application). For example, the user completes a registration process, provides information, and permits (i.e., opts in) the server 120 to collect and analyze at least the relevant data provided by the computing device 110 (e.g., user profile information, user contact information, authentication information, software product usage information, user preferences, or the type of information that the server 120 utilizes with the chatbot program 200). In various embodiments, the user may opt in or out of certain categories of data collection. For example, the user may opt in to provide all requested information, or a subset of requested information, or to provide no information. In additional embodiments, the user of the computing device 110 may define what information the server 120 may utilize in determining responses to inquiries from the computing device 110 in accordance with embodiments of the present invention.
[0023] Storage device 122 may be implemented using any type of storage device capable of storing data that may be accessed and utilized by server 120, such as a database server, hard disk drive, or flash memory, e.g., persistent storage 305. In other embodiments, storage device 122 may represent a collection of multiple storage devices and data within server 120. In various embodiments, server 120 may utilize storage device 122 to store information and data related to software products 116 (e.g., software running on an external device, such as computing device 110).
[0024] Program code 124 represents computer code corresponding to software product 116 (e.g., on computing device 110). In another embodiment, server 120 may host a product or service that includes program code 124 and software product 116. In this embodiment, computing device 110 may download software product 116 from server 120, while server 120 maintains a respective copy of program code 124 that directly corresponds to software product 116 on computing device 110. In an example embodiment, program code 124 includes source code for software product 116. In an additional embodiment, the creator of software product 116 may permit server 120 to utilize program code 124 in processing steps of chatbot program 200 (shown in FIG. 2 ) according to various embodiments of the present invention.
[0025] In an example embodiment, knowledge base 126 includes accumulated data corresponding to software product 116 and program code 124. For example, knowledge base 126 may include available, known data related to software product 116 and program code 124, such as product documentation, manuals, guides, technical notes, other support cases (e.g., tickets), a list of frequently asked questions (FAQs), etc. In additional embodiments, knowledge base 126 may include information determined by execution of chatbot program 200. For example, in response to determining a response to a query that was not present in knowledge base 126, chatbot program 200 may add the determined response to knowledge base 126 for future use. In an example embodiment, knowledge base 126 may include a plurality of error codes corresponding to software product 116 (and program code 124), and corresponding meanings (and troubleshooting instructions) of the error codes.
[0026] Data resource 130 represents one or more locations of information that are network accessible to server 120 (e.g., via network 105). In one embodiment, data resource 130 is a public data source that includes information related to the use of software product 116 and program code 124. For example, data resource 130 can be a website that includes questions and answers related to software product 116 (and program code 124). In additional embodiments, data resource 130 can include debug information related to one or more software products, such as software product 116. In further embodiments, data resource 130 can include a database of code comments, corresponding explanations of code comments, error information, questions and answers, and the like. In various embodiments, server 120 can search data resource 130 utilizing NLP analysis, syntactic analysis, semantic analysis, or other analysis functions available to server 120 in accordance with various embodiments of the present invention.
[0027] 2 is a flow chart illustrating operational steps of a chatbot program 200, which is a program for determining and providing a response to a user inquiry related to a software product, according to an embodiment of the present invention. In one embodiment, the chatbot program 200 is initiated in response to receiving an inquiry (e.g., from a user of the computing device 110). In another embodiment, the chatbot program 200 can operate as a background process (on the server 120) waiting for a user inquiry. For example, the chatbot program 200 operates as an aspect of a chatbot and troubleshooting service facilitated by the server 120 according to various embodiments of the present invention.
[0028] At step 202, the chatbot program 200 receives a query related to the software product. In one embodiment, the chatbot program 200 receives a query related to the software product 116 from the computing device 110. In an example embodiment, the chatbot program 200 operates as a question-answering chatbot on the server 120. In this example embodiment, the chatbot program 200 (and the corresponding chatbot) receives a query (e.g., a question) from a user of the computing device 110. In another embodiment, the chatbot program 200 receives the query in natural language and may utilize NLP analysis techniques to identify content within the query (e.g., intent of the question, keywords, error codes, etc.). In various embodiments, the chatbot program 200 (and the server 120) may receive different query types (and other forms of data requests) based on the behavior and interaction of the software product 116.
[0029] In an exemplary situation, a user of the computing device 110 is utilizing the software product 116 and encounters an error. In response, the software product 116 presents an error message that includes "ERROR: A44Z." In this exemplary situation, the user of the computing device 110 initiates a messaging session with a chatbot on the server 120 and sends a query that includes the presented error code. For example, the user of the computing device 110 can submit a natural language query to the chatbot stating, "What does ERROR: A44Z mean?", and the chatbot program 200 receives the submitted natural language query.
[0030] At a decision step 204, the chatbot program 200 determines whether a response to the query is available. In one embodiment, the chatbot program 200 determines whether the knowledge base 126 includes a response corresponding to the received query (received at step 202). In an example embodiment, the knowledge base 126 includes accumulated data corresponding to the software product 116 and the program code 124. For example, the knowledge base 126 may include available known data related to the software product 116 and the program code 124, such as product documentation, manuals, guides, technical notes, other support cases (e.g., tickets), a list of frequently asked questions (FAQs), etc. In an additional embodiment, the knowledge base 126 may include information determined by execution of the chatbot program 200. In an example embodiment, the knowledge base 126 may include a plurality of error codes corresponding to the software product 116 (and the program code 124) and corresponding meanings (and troubleshooting instructions) of the error codes.
[0031] In one embodiment, the chatbot program 200 parses and analyzes the received query to identify keywords and phrases for use in searching for a response to the query. The chatbot program 200 can then search available resources (e.g., the knowledge base 126) for existing responses to the query. For example, the chatbot program 200 searches the knowledge base 126 for an explanation or troubleshooting instructions corresponding to "Error: A44Z."
[0032] In one aspect, the chatbot program 200 searches a knowledge base to identify a response to the query received in step 202. In this aspect, in response to determining that a response to the query is available (the "Yes" branch of decision step 204), the chatbot program 200 provides the response (step 212).
[0033] In another aspect, the chatbot program 200 does not search the knowledge base to identify a response to the query received in step 202. For example, the chatbot program 200 searches the knowledge base 126 (and other accessible information resources related to the software product 116) and does not find instructions (e.g., explanations, troubleshooting instructions, etc.) for a response to the query. With respect to the exemplary situation described above, the chatbot program 200 determines that the knowledge base 126 does not contain an explanation or troubleshooting instructions corresponding to "Error: A44Z." In this aspect, in response to determining that a response to the query is not available (the "No" branch of decision step 204), the chatbot program 200 identifies the program code of the software product (step 206).
[0034] At step 206, the chatbot program 200 identifies program code for the software product. More specifically, in response to determining that a response to the query (received at step 202) is not available (the "No" branch of decision step 204), the chatbot program 200 identifies program code 124 corresponding to the software product 116 (step 206). In various embodiments, the program code 124 stored on the storage device 122 represents computer code corresponding to the software product 116 (e.g., on the computing device 110). In an example embodiment, the program code 124 includes source code for the software product 116.
[0035] At step 208, the chatbot program 200 identifies content within the program code from the received query. In one embodiment, the chatbot program 200 searches the program code 124 for information contained in the received query (e.g., error codes, keywords from the query, or other requests / issues contained in the received query). In various embodiments, the chatbot program 200 can analyze and search the program code 124 using NLP analysis, syntactic analysis, semantic analysis, or other analysis functions available to the server 120 in accordance with various embodiments of the present invention.
[0036] In an example embodiment, the chatbot program 200 may utilize a hook-to-static program analysis engine to perform semantic and / or syntactic analysis on the program code 124 to search for information within the program code 124 relevant to resolving the query. In another embodiment, the chatbot program 200 may identify comments within the program code 124 that contain information relevant to the received query (e.g., referencing an error code within the query). In this embodiment, the chatbot program 200 may search a network-accessible resource (e.g., data resource 130) for information (e.g., explanations, troubleshooting instructions, etc.) contained within the identified comment. For example, the chatbot program 200 may use NLP analysis / understanding and tone analysis of the comment to identify relevant information contained within the data resource 130.
[0037] In the exemplary situation described above, a user of the computing device 110 submits a query referencing “Error: A44Z.” In this exemplary situation, the chatbot program 200 reviews the program code 124 searching for the error code “Error: A44Z.” The chatbot program 200 may identify the error code in the program code 124 and then identify and analyze comments proximate the location of the error code in the program code 124. In the exemplary situation, the chatbot program 200 may analyze the identified comments (e.g., using NLP analysis, syntactic analysis, semantic analysis, etc.) to identify information related to the meaning of the error code. Additionally, the chatbot program 200 may access and analyze additional data sources (e.g., data source 130, or other related files and text resources and text repositories) containing information related to the software product 116 and the program code 124 for information related to the error code.
[0038] At step 210, the chatbot program 200 determines a response to the query. In one embodiment, the chatbot program 200 determines a response to the query that includes corresponding diagnostic information based on the content identified in the program code 124. For example, the chatbot program 200 determines a response that includes a comment explaining the meaning of an error code (e.g., based on the comment identified in the program code 124). In another embodiment, the chatbot program 200 can generate a set of diagnostic information to include in the response information determined from the program code 124 (e.g., data listed in the source code comments) and information from the data resources 130 (e.g., an explanation of the error code, corresponding troubleshooting information, etc.).
[0039] In an example embodiment, the chatbot program 200 searches the program code 124 for a response to a received query related to the software product 116. For example, the chatbot program 200 searches the program code 1224 for information related to “Error: A44Z.” The chatbot program 200 may identify comments in the program code 124 related to “Error: A44Z” (e.g., comments that reference an error code, comments that are near program code that displays an error code, etc.). In this example embodiment, the chatbot program 200 may analyze the program code 124 and the identified comments (e.g., using NLP analysis, syntactic analysis, semantic analysis, etc.) to identify diagnostic information for inclusion in a response to the query to a user of the computing device 110.
[0040] In another example embodiment, the chatbot program 200 searches and / or queries the data resource 130 (or another accessible information resource) for information related to a response to a received query related to the software product 116. For example, the chatbot program 200 searches the data resource 130 for information related to “Error: A44Z”. In one example, if the chatbot program 200 determines that analyzing the content of the program code 124 (e.g., semantic / syntactic analysis) does not yield a response to the query, the chatbot program 200 may search the data resource 130. In another example aspect, the chatbot program 200 may search the data resource (e.g., for further clarification) in addition to analyzing the content of the program code 124. In this example embodiment, the chatbot program 200 identifies a comment in the program code 124 related to “Error: A44Z” and then compares the identified comment (and error code) to an accessible resource, such as the data resource 130. Thus, the chatbot program 200 may identify “Error: A44Z” and diagnostic information within the data resource 130 that corresponds to the software product 116 .
[0041] In various embodiments, the chatbot program 200 generates a response to the query to include diagnostic information for the user. In the exemplary situation previously described, the chatbot program 200 receives a query from a user of the computing device 110 regarding the software product 116 including "Error: A44Z." The chatbot program 200 can generate diagnostic information including information describing the meaning of the error and / or information related to resolving the error based on analyzing the program code 124 and / or the data resources 130. For example, the chatbot program 200 determines that "Error: A44Z" corresponds to "Insufficient disk space on partition." The chatbot program 200 can determine a response to the query that includes an error code definition of "Insufficient disk space on partition." In an additional aspect, the chatbot program 200 can determine a response to the query that includes troubleshooting instructions to assist the user of the computing device 110 in resolving the "Insufficient disk space on partition" error.
[0042] At step 212, the chatbot program 200 provides a response. In one embodiment, the chatbot program 200 provides the response (determined at step 210) to the query (received at step 202) to the user of the computing device 110. In an example embodiment, the chatbot program 200 can provide the generated diagnostic information in a messaging session between the server 120 and the user of the computing device 110. For example, the chatbot program 200 can provide a response indicating that "Error: A44Z" corresponds to "Insufficient disk space on partition." Additionally, the chatbot program 200 can provide a response to the query that includes troubleshooting instructions to assist the user of the computing device 110 in resolving the "Insufficient disk space on partition" error.
[0043] In another embodiment, the chatbot program 200 can add the determined response to the query to the knowledge base 126 for future use in supporting the software product 116 (and execution of the chatbot program 200). For example, the chatbot program 200 can receive feedback from a user of the computing device 110 that the response to the query was accurate and satisfactory. Thus, the chatbot program 200 can then add the allowed response to the knowledge base 126 for utilization in future instances and operations of the chatbot program 200 (performing the determining step 204).
[0044] In one aspect, the chatbot program 200 searches a knowledge base (at decision step 204) to identify a response to the query received in step 202. In this aspect, in response to determining that a response to the query is available (the "Yes" branch of decision step 204), the chatbot program 200 provides a response (step 212).
[0045] FIG. 3 illustrates a computer system 300 representing a computing device 110 and a server 120 in accordance with an example embodiment of the invention. It should be understood that FIG. 3 provides merely one example implementation and does not imply any limitation with respect to the environments in which various embodiments may be implemented. Many modifications to the illustrated environment may be made. Computer system 300 includes a processor 301, a cache 303, a memory 302, persistent storage 305, a communication unit 307, an input / output (I / O) interface 306, and a communication structure 304. Communication structure 304 provides communication between cache 303, memory 302, persistent storage 305, communication unit 307, and input / output (I / O) interface 306. Communication structure 304 may be implemented using any architecture designed to pass data and / or control information between a processor (such as a microprocessor, communication processor, and network processor), system memory, peripherals, and any other hardware components in the system. For example, the communications fabric 304 may be implemented using one or more buses or crossbar switches.
[0046] Memory 302 and persistent storage 305 are computer-readable storage media. In this embodiment, memory 302 includes random access memory (RAM). In general, memory 302 may include any suitable volatile or non-volatile computer-readable storage media. Cache 303 is a high-speed memory that improves the performance of processor 301 by holding recently accessed data and data near recently accessed data from memory 302.
[0047] Program instructions and data (e.g., software and data 310) used to practice embodiments of the present invention may be stored in persistent storage 305 and memory 302 for execution by one or more of the processors 301 via cache 303. In an embodiment, persistent storage 305 includes a magnetic hard disk drive. As an alternative or in addition to a magnetic hard disk drive, persistent storage 305 may include a solid-state hard drive, a solid-state storage device, a read-only memory (ROM), an erasable programmable read-only memory (EPROM), a flash memory, or any other computer-readable storage medium capable of storing program instructions or digital information.
[0048] The media used by persistent storage 305 may be removable. For example, a removable hard drive may be used for persistent storage 305. Other examples include optical and magnetic disks, thumb drives, and smart cards that are inserted into a drive for transfer to another computer-readable storage medium that is also part of persistent storage 305. Software and data 310 may be stored in persistent storage 305 for access and / or execution by one or more of each processor 301 via cache 303. With respect to computing device 110, software and data 310 includes user interface 112 and application 114. With respect to server 120, software and data 410 includes chatbot program 200, program code 124, and knowledge base 126.
[0049] In these examples, the communications unit 307 provides for communication with other data processing systems or devices. In these examples, the communications unit 307 includes one or more network interface cards. The communications unit 307 may provide for communication using either or both physical and wireless communications links. Program instructions and data (e.g., software and data 310) used to practice embodiments of the present invention may be downloaded to persistent storage 305 via the communications unit 307.
[0050] The I / O interface 306 allows for the input and output of data with other devices that may be connected to each computer system. For example, the I / O interface 306 may provide a connection to external devices 308, such as a keyboard, keypad, touch screen, or other suitable input device, or a combination thereof. The external devices 308 may also include portable computer-readable storage media, such as thumb drives, portable optical or magnetic disks, and memory cards. Program instructions and data (e.g., software and data 310) used to practice embodiments of the present invention may be stored on such portable computer-readable storage media and loaded into persistent storage 305 via the I / O interface 306. The I / O interface 306 is also connected to a display 309.
[0051] Display 309 provides a mechanism for displaying data to a user and may be, for example, a computer monitor.
[0052] The programs described herein are identified based on the application and, in particular embodiments of the invention, are implemented in relation to that application, although it should be understood that the names of specific programs herein are used merely for convenience, and thus the invention should not be limited to use with only the particular application identified and / or implied by such names.
[0053] The present invention may be a system, method, and / or computer program product at any possible level of technical detail of integration. The computer program product may include a computer readable storage medium including computer readable program instructions for causing a processor to perform aspects of the present invention.
[0054] A computer readable storage medium can be a tangible device that can hold and store instructions for use by an instruction execution device. A computer readable storage medium can be, for example, but not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination thereof. A non-exhaustive list of more specific examples of computer readable storage media includes portable floppy 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 compact disk read only memory (CD-ROM), digital versatile disk (DVD), memory stick, floppy disk, mechanically encoded devices such as punch cards or ridge structures in grooves on which instructions are recorded, and any suitable combination thereof. As used herein, a computer-readable storage medium should not itself be construed as a transitory signal, such as an electric wave or other freely propagating electromagnetic wave, an electromagnetic wave propagating through a waveguide or other transmission medium (e.g., a light pulse passing through a fiber optic cable), or an electrical signal transmitted over a wire.
[0055] The computer readable program instructions described herein may be downloaded from a computer readable storage medium to each computing device / processing device or to an external computer or storage device over a network (e.g., the Internet, a local area network, a wide area network, or a wireless network, or a combination thereof) that may include copper transmission cables, optical transmission fiber, wireless transmission, routers, firewalls, switches, gateway computers, and / or edge servers. A network adapter card or network interface within each computing device / processing device receives the computer readable program instructions from the network and transfers the computer readable program instructions for storage on a computer readable storage medium within each computing device / processing device.
[0056] The computer readable program instructions for carrying out the operations of the present invention may be source or object code written in any combination of one or more programming languages, including assembler instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state setting data, configuration data for an integrated circuit, or object-oriented programming languages, such as Smalltalk®, C++, and procedural programming languages, such as the “C” programming language or similar programming languages. The computer readable program instructions may execute entirely on the user's computer, partially on the user's computer as a standalone software package, partially on the user's computer and on a remote computer, or entirely on a remote computer or server. In the latter scenario, 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 the connection may be to an external computer (e.g., via the Internet using an Internet Service Provider). In some embodiments, to carry out aspects of the invention, electronic circuitry including, for example, programmable logic circuits, field-programmable gate arrays (FPGAs), or programmable logic arrays (PLAs), may execute computer readable program instructions to customize the electronic circuitry by utilizing state information of the computer readable program instructions.
[0057] 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 included in the flowchart illustrations and / or block diagrams, can be implemented by computer readable program instructions.
[0058] 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, executed by a processor of the computer or other programmable data processing apparatus, produce means for implementing the functions / operations specified in one or more blocks of the flowcharts and / or block diagrams. These computer readable program instructions may be stored on a computer readable storage medium and capable of directing a computer, programmable data processing apparatus, or other device, or combination thereof, to function in a particular manner, such that the computer readable storage medium on which the instructions are stored comprises an article of manufacture containing instructions implementing aspects of the functions / operations specified in one or more blocks of the flowcharts and / or block diagrams.
[0059] Computer-readable program instructions may be loaded into a computer, other programmable data processing apparatus, or other device such that the instructions, which execute on the computer, other programmable apparatus, or other device, perform the functions / acts specified in one or more blocks of the flowcharts and / or block diagrams, thereby causing a series of operable steps to be performed on the computer, other programmable apparatus, or other device to produce a computer-implemented process.
[0060] The flowcharts and block diagrams in the figures 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 the 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 implementations, the functions shown in the blocks may occur in a different order than the order shown in the figures. For example, two blocks shown in succession may in fact be executed simultaneously as one step, or may be executed substantially simultaneously in a partially or fully overlapping manner in time, or may be executed in reverse order, depending on the functionality involved. It is also noted that each block in the block diagrams and / or flowchart illustrations, as well as combinations of blocks included in the block diagrams and / or flowchart illustrations, may be implemented by a dedicated hardware-based system that executes the specified functions or operations, or executes a combination of dedicated hardware and computer instructions.
[0061] The description of various embodiments of the present invention is presented for illustrative purposes, but is not intended to be exhaustive and is not limited to the disclosed embodiments. It is obvious to those skilled in the art that many changes and modifications are possible without departing from the scope of the present invention. The terms used in this specification are selected to best explain the principles of the embodiments, practical applications, or technical improvements beyond the technology found in the market, or to allow other skilled in the art to understand the embodiments disclosed herein.
Claims
1. 1. A computer system implemented method, comprising: receiving a query related to the software product, the query including an indication of an error; determining whether a response to said query is available within an accessible knowledge base; in response to determining that a response to the query is not available within an accessible knowledge base, identifying content within a program code of the software product that corresponds to the indicated error of the received query; determining a response to the query based on the identified content in the program code, the determined response to the query including diagnostic information corresponding to the indicated error; A method for causing an action to be performed, including
2. The method of claim 1, further comprising sending the determined response to a user who sent the inquiry, wherein the diagnostic information included in the determined response includes troubleshooting instructions corresponding to the indicated error.
3. identifying a comment within the program code of the software product that is related to the indicated error contained in the query; 3. The method of claim 1, further comprising: generating diagnostic information corresponding to the indicated error based on analyzing the identified comments in the program code.
4. determining a response to the query based on the identified content within the program code; identifying, within a network-accessible data resource, information related to said identified content within the program code; The method of any one of claims 1 to 3, further comprising: generating diagnostic information corresponding to the indicated error based on analyzing the identified information related to the identified content in program code within the network-accessible data resource.
5. The method of any one of claims 1 to 4, wherein the program code of the software product comprises source code of the software product.
6. Receiving inquiries related to our software products The method of any one of claims 1 to 5, further comprising receiving, by one or more processors, a message to a virtual assistant chatbot including the query.
7. identifying content within a program code of the software product that corresponds to the indicated error of the received query; 7. The method of claim 1, further comprising identifying, by one or more processors, a comment in the program code that includes an error code that corresponds to the indicated error in the received query.
8. A computer program for causing a computer system to execute the method according to any one of claims 1 to 7.
9. 1. A computer system comprising: means for receiving a query related to the software product, the query including an indication of an error; means for determining whether a response to said query is available within an accessible knowledge base; means for identifying content within a program code of said software product which corresponds to said indicated error of said received query in response to determining that a response to said query is not available within an accessible knowledge base; means for determining a response to the query based on the identified content within the program code, the determined response to the query including diagnostic information corresponding to the indicated error; 1. A computer system comprising:
10. 10. The computer system of claim 9, further comprising means for transmitting the determined response to a user that sent the query, and wherein the diagnostic information included in the determined response includes troubleshooting instructions corresponding to the indicated error.
11. means for identifying comments within the program code of the software product that are related to the indicated errors included in the query; means for generating diagnostic information corresponding to the indicated error based on analyzing the identified comments in the program code; 11. The computer system of claim 9 or 10, further comprising:
12. said means for determining a response to said query based on said identified content in said program code, means for identifying, within a network-accessible data resource, information related to said identified content within the program code; means for generating diagnostic information corresponding to the indicated error based on analyzing the identified information related to the identified content in program code within the network-accessible data resource; Also includes A computer system according to any one of claims 9 to 11.
13. The computer system of any one of claims 9 to 12, wherein the program code of the software product comprises source code of the software product.
14. The means for receiving a query related to a software product, and means for receiving a message to the virtual assistant chatbot including the query. A computer system according to any one of claims 9 to 13.
15. said means for identifying content within a program code of said software product which corresponds to said indicated error of said received query, 15. The computer system of claim 9, further comprising identifying a comment in the program code that includes an error code that corresponds to the indicated error in the received query.
16. A computer-readable recording medium storing a computer program for causing a computer system to execute the methods described in claims 1 to 7.
Citation Information
Patent Citations
Method for addressing fault
JP2002074520A
Information providing system, device, and method
JP2007122429A
Bot system and program of bot system
JP2019185203A