system
The system addresses the challenge of providing quick and accurate answers across multiple systems by receiving, verifying, and sending user queries to internal systems and knowledge databases, enhancing customer satisfaction and operational efficiency.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-09-30
- Publication Date
- 2026-04-09
AI Technical Summary
Conventional inquiry response systems face challenges in providing quick and accurate answers to customer inquiries, particularly in searching information across multiple in-house systems and databases, leading to decreased customer satisfaction and inefficient support operations.
A system that includes means for receiving, verifying, and sending user queries to internal systems, searching knowledge databases for appropriate answers, and returning results, utilizing a server, internal systems, and a knowledge database to ensure accurate and efficient information retrieval.
Enables users to quickly and accurately obtain necessary information, improving customer satisfaction and support operation efficiency by providing accurate answers and diverse responses.
Smart Images

Figure 2026062301000001_ABST
Abstract
Description
Technical Field
[0001] The technology of the present disclosure relates to a system.
Background Art
[0002] Patent Document 1 discloses a method for controlling a persona chatbot, which is performed by at least one processor, including steps of receiving a user utterance, adding the user utterance to a prompt including an instruction sentence related to an explanation of a chatbot character, encoding the prompt, and inputting the encoded prompt into a language model to generate a chatbot utterance in response to the user utterance.
Prior Art Documents
Patent Documents
[0003]
Patent Document 1
Summary of the Invention
Problems to be Solved by the Invention
[0004] In a conventional inquiry response system, it has been difficult to provide a quick and accurate answer to an inquiry from a customer. In particular, it has been a problem to search information distributed in a plurality of in-house systems and databases in a unified manner and provide an appropriate answer. Furthermore, depending on the type of inquiry, there have been problems such as inability to quickly search for appropriate information or inappropriate processing of queries. As a result, there has been a concern that customer satisfaction will decrease and the efficiency of support operations will also deteriorate.
Means for Solving the Problems
[0005] The present invention solves the above problems by providing a system that includes means for receiving queries from users, verifying them, and sending them to a search API of an internal system; means for receiving responses from the internal system; means for searching a knowledge database when the internal system does not return valid results; and means for returning search results to the user. This system can improve customer satisfaction and the efficiency of support operations by quickly providing accurate answers corresponding to queries. Furthermore, by including means for searching for IDs that match queries, in which the knowledge database consists of ID-answer pairs, the system achieves further improvements in the accuracy of information retrieval and diversity of answers.
[0006] Of course. Now, let's create definitions for the key words included in the patent claims.
[0007] "User" refers to a person who uses this system to submit queries.
[0008] A "query" refers to the data or information that a user enters as part of an inquiry.
[0009] A "server" refers to a computer system that receives queries from users, processes them, and returns the necessary information.
[0010] "Means of receiving" refers to the functions or devices that allow a server to receive queries sent by users.
[0011] "Means of verification" refers to the process or function of checking whether an received query is valid.
[0012] An "internal system" refers to an information management system operated within a company, specifically a system that holds data and information related to inquiries.
[0013] A "search API" refers to the interface for the search function provided by an internal company system, and is a means of searching for information by entering a query.
[0014] "Response" refers to the search results or response data provided by the search API.
[0015] "Knowledge database" refers to a pre - constructed database of questions and answers, and a database that holds stereotypical answers to queries.
[0016] "Means for searching" refers to the process or function for retrieving necessary information from a knowledge database or other databases.
[0017] "Means for returning" refers to the function or process for returning search results or responses to the user.
[0018] "Pair" refers to a combination of a pair of IDs and the corresponding answers within the knowledge database.
[0019] "ID" refers to a unique identifier corresponding to a specific question or inquiry.
[0020] "Answer" refers to text data for providing information or explanations corresponding to a query.
Brief Description of Drawings
[0021] [Figure 1] It is a conceptual diagram showing an example of the configuration of a data processing system according to the first embodiment. [Figure 2] It is a conceptual diagram showing an example of the main functions of a data processing device and a smart device according to the first embodiment. [Figure 3] It is a conceptual diagram showing an example of the configuration of a data processing system according to the second embodiment. [Figure 4] It is a conceptual diagram showing an example of the main functions of a data processing device and smart glasses according to the second embodiment. [Figure 5] It is a conceptual diagram showing an example of the configuration of a data processing system according to the third embodiment. [Figure 6]It is a conceptual diagram showing an example of the main functions of a data processing device and a headset-type terminal according to the third embodiment. [Figure 7] It is a conceptual diagram showing an example of the configuration of a data processing system according to the fourth embodiment. [Figure 8] It is a conceptual diagram showing an example of the main functions of a data processing device and a robot according to the fourth embodiment. [Figure 9] It shows an emotion map to which multiple emotions are mapped. [Figure 10] It shows an emotion map to which multiple emotions are mapped. [Figure 11] It is a sequence diagram showing the processing flow of the data processing system in Example 1. [Figure 12] It is a sequence diagram showing the processing flow of the data processing system in Application Example 1. [Figure 13] It is a sequence diagram showing the processing flow of the data processing system in Example 2 when an emotion engine is combined. [Figure 14] It is a sequence diagram showing the processing flow of the data processing system in Application Example 2 when an emotion engine is combined.
Embodiments for Carrying Out the Invention
[0022] Hereinafter, an example of an embodiment of a system according to the technology of the present disclosure will be described with reference to the accompanying drawings.
[0023] First, the language used in the following description will be explained.
[0024] In the following embodiments, the signed processor (hereinafter simply referred to as "processor") may be a single arithmetic unit or a combination of multiple arithmetic units. Furthermore, the processor may be a single type of arithmetic unit or a combination of multiple types of arithmetic units. Examples of arithmetic units include CPU (Central Processing Unit), GPU (Graphics Processing Unit), GPGPU (General-Purpose computing on Graphics Processing Units), and APU (Accelerated Processing Unit).
[0025] In the following embodiments, signed RAM (Random Access Memory) is a memory that temporarily stores information and is used as work memory by the processor.
[0026] In the following embodiments, the signed storage is one or more non-volatile storage devices that store various programs and various parameters. Examples of non-volatile storage devices include flash memory (SSD (Solid State Drive)), magnetic disks (e.g., hard disks), or magnetic tapes.
[0027] In the following embodiments, the signed communication interface (I / F) is an interface that includes a communication processor and an antenna, etc. The communication interface manages communication between multiple computers. Examples of communication standards applicable to the communication interface include wireless communication standards such as 5G (5th Generation Mobile Communication System), Wi-Fi (registered trademark), or Bluetooth (registered trademark).
[0028] In the following embodiments, "A and / or B" is synonymous with "at least one of A and B." That is, "A and / or B" means that it may be A alone, or B alone, or a combination of A and B. Furthermore, in this specification, the same concept as "A and / or B" applies when expressing three or more things linked by "and / or."
[0029] [First Embodiment]
[0030] Figure 1 shows an example of the configuration of the data processing system 10 according to the first embodiment.
[0031] As shown in Figure 1, the data processing system 10 includes a data processing device 12 and a smart device 14. An example of the data processing device 12 is a server.
[0032] The data processing device 12 comprises a computer 22, a database 24, and a communication interface 26. The computer 22 is an example of a "computer" related to the technology of this disclosure. The computer 22 comprises a processor 28, RAM 30, and storage 32. The processor 28, RAM 30, and storage 32 are connected to a bus 34. The database 24 and the communication interface 26 are also connected to the bus 34. The communication interface 26 is connected to a network 54. An example of the network 54 is a WAN (Wide Area Network) and / or a LAN (Local Area Network).
[0033] The smart device 14 comprises a computer 36, a reception device 38, an output device 40, a camera 42, and a communication interface 44. The computer 36 comprises a processor 46, RAM 48, and storage 50. The processor 46, RAM 48, and storage 50 are connected to a bus 52. The reception device 38, output device 40, and camera 42 are also connected to the bus 52.
[0034] The reception device 38 is equipped with a touch panel 38A and a microphone 38B, etc., and receives user input. The touch panel 38A receives user input by detecting contact with an object (e.g., a pen or finger). The microphone 38B receives user input by detecting the user's voice. The control unit 46A transmits data indicating the user input received by the touch panel 38A and microphone 38B to the data processing device 12. In the data processing device 12, the specific processing unit 290 acquires the data indicating the user input.
[0035] The output device 40 includes a display 40A and a speaker 40B, and presents data to the user 20 by outputting the data in a form perceptible to the user 20 (e.g., audio and / or text). The display 40A displays visible information such as text and images according to instructions from the processor 46. The speaker 40B outputs audio according to instructions from the processor 46. The camera 42 is a small digital camera equipped with an optical system such as a lens, aperture, and shutter, and an image sensor such as a CMOS (Complementary Metal-Oxide-Semiconductor) image sensor or a CCD (Charge Coupled Device) image sensor.
[0036] Communication interface 44 is connected to network 54. Communication interfaces 44 and 26 are responsible for the exchange of various types of information between processor 46 and processor 28 via network 54.
[0037] Figure 2 shows an example of the main functions of the data processing device 12 and the smart device 14.
[0038] As shown in Figure 2, in the data processing device 12, a specific processing is performed by the processor 28. A specific processing program 56 is stored in the storage 32. The specific processing program 56 is an example of a "program" related to the technology of this disclosure. The processor 28 reads the specific processing program 56 from the storage 32 and executes the read specific processing program 56 on the RAM 30. The specific processing is realized by the processor 28 operating as a specific processing unit 290 according to the specific processing program 56 executed on the RAM 30.
[0039] The storage 32 stores the data generation model 58 and the emotion identification model 59. The data generation model 58 and the emotion identification model 59 are used by the identification processing unit 290.
[0040] In the smart device 14, the processor 46 performs the reception output processing. The storage 50 stores the reception output program 60. The reception output program 60 is used in conjunction with a specific processing program 56 by the data processing system 10. The processor 46 reads the reception output program 60 from the storage 50 and executes the read reception output program 60 on the RAM 48. The reception output processing is realized by the processor 46 operating as a control unit 46A according to the reception output program 60 executed on the RAM 48.
[0041] Next, the specific processing performed by the specific processing unit 290 of the data processing device 12 will be described. In the following description, the data processing device 12 will be referred to as the "server" and the smart device 14 as the "terminal".
[0042] This invention relates to a system that searches internal systems and a knowledge database based on user queries and automatically provides appropriate answers. To implement this system, a server, user terminals, internal systems, and a knowledge database are required.
[0043] 1. Receiving queries
[0044] The user sends their inquiry to the server as a query from their device. The query is sent to the server as a POST request in JSON format.
[0045] 2. Query validation
[0046] The server parses the received query data and verifies whether the query is properly provided. If the query does not exist, the server returns an error message to the user. This process prevents invalid requests from being processed.
[0047] 3. Sending queries to internal systems
[0048] If the query is deemed valid, the server sends the query to the internal system's search API. The internal system searches its internal database based on the retrieved query and returns the relevant results.
[0049] 4. Processing responses from internal systems
[0050] The server receives responses from the internal system. If the internal system returns a valid result, the server returns that result to the user. For example, in response to an inquiry about delivery status, the server might return the response, "Please check the delivery status here."
[0051] 5. Searching the Knowledge Database
[0052] If the internal system fails to return a valid result, the server searches the knowledge database. The knowledge database holds pairs of IDs corresponding to queries and their corresponding answers. The server searches for an ID that matches the query and retrieves the corresponding answer.
[0053] 6. Providing responses to users
[0054] The server returns results from internal systems or knowledge databases to the user in JSON format. For example, a query like "01" might return the response, "Regarding shipping status, you can check the delivery status of your products on the system."
[0055] Specific example:
[0056] Suppose a user sends the query "01" to the server. The server receives this query and verifies that it is valid. Next, it sends the query to the internal system's search API. If the internal system does not return a valid answer, the server searches the knowledge database. If the query "01" finds the result "Regarding shipping status, you can check the delivery status of your products on the system," the server returns that result to the user.
[0057] This invention enables users to quickly and accurately obtain the information they need. Furthermore, it improves the efficiency of support operations and contributes to increased customer satisfaction.
[0058] The following describes the processing flow.
[0059] Step 1:
[0060] The user sends their inquiry to the server as a query from their device. The query is sent to the server as a POST request in JSON format.
[0061] Step 2:
[0062] The server accepts POST requests at the Flask application's endpoint / api / query. The server parses the received request data (in JSON format) and extracts the provided query.
[0063] Step 3:
[0064] The server verifies whether the query exists. If the query does not exist, the server returns a JSON response with status code 400 to the user, containing the error message "No query provided."
[0065] Step 4:
[0066] If a query exists, the server sends it to the internal system's search API. This is done by making a POST request to a predefined URL of the internal system. The server sends JSON data containing the query.
[0067] Step 5:
[0068] The server waits for a response from the internal system. If the internal system returns a valid result with status code 200, the server extracts the result in JSON format. Specifically, it retrieves the search results (e.g., "Please check the delivery status here") from the response body.
[0069] Step 6:
[0070] If the internal system returns a valid result, the server returns that result to the user in JSON format. The response is returned as JSON data containing the result, along with the key "response".
[0071] Step 7:
[0072] If the internal system fails to return a valid result, the server searches the knowledge database. The server retrieves the ID corresponding to the query from the predefined knowledge database.
[0073] Step 8:
[0074] If a matching ID is found in the knowledge database, the server retrieves the answer corresponding to that ID. For example, for a query like "01", the server retrieves the answer "Regarding shipping status, you can check the delivery status of your products on the system."
[0075] Step 9:
[0076] The server returns the results from the knowledge database to the user in JSON format. The response is returned as JSON data containing the answer, along with the key "response".
[0077] Step 10:
[0078] If the server cannot obtain valid results from either the internal system or the knowledge database, it returns a JSON response to the user that includes the error message "Sorry, we couldn't find that information."
[0079] (Example 1)
[0080] Next, we will describe Example 1. In the following description, the data processing device 12 will be referred to as the "server," and the smart device 14 will be referred to as the "terminal."
[0081] For users to quickly obtain useful information, it is necessary to efficiently retrieve information from multiple systems and databases. However, with conventional systems, user queries were sometimes not processed properly, resulting in users not being able to obtain the necessary information. Furthermore, efficient query management and result return for linking multiple systems were challenges. In addition, there was a lack of means to search other databases when the internal system did not return valid results. As a result, user satisfaction decreased and the efficiency of support operations deteriorated.
[0082] The identification process performed by the identification processing unit 290 of the data processing device 12 in Example 1 is realized by the following means.
[0083] In this invention, the server includes means for receiving queries from users, means for verifying whether queries are properly provided, and means for sending queries deemed appropriate to the search API of the internal system. This enables users to quickly obtain appropriate information. Furthermore, the server includes means for receiving responses from the internal system, means for searching the knowledge database if no valid results are returned, and means for returning the search results to the user. This allows the server to obtain appropriate information from the knowledge database and provide it to the user even if the internal system does not return valid results.
[0084] A "query" is the content of an inquiry sent by a user, and it is a data format used by the system for processing.
[0085] "Verification" is the process of checking whether the query the system has received is appropriate.
[0086] "Internal systems" refer to information processing systems and databases used within a company or organization.
[0087] A "search API" is an interface that a system provides to search a database based on specific criteria.
[0088] A "knowledge database" is a database that holds answers to queries, and is where information is accumulated.
[0089] An "identifier" refers to a unique ID or code used to uniquely identify data.
[0090] A "response" is the response data that a server returns in response to a query, and includes the results of the query.
[0091] "Receiving" refers to the process by which a system receives data sent from an external source.
[0092] "Transmission" refers to the process by which a system sends data outwards.
[0093] "Searching" is the process of finding relevant data from a database or information source based on specific conditions or queries.
[0094] JSON format is a lightweight data exchange format for structuring and describing data.
[0095] This invention relates to a system that searches internal systems and knowledge databases based on user queries and automatically provides appropriate answers. To implement this system, a server, user terminals, internal systems, and a knowledge database are required.
[0096] Hardware and software to be used
[0097] The server will be built using Apache(registered trademark) Tomcat.
[0098] User terminal: Use a common computing device including Windows PCs, Macs, and Linux (registered trademarks).
[0099] Internal systems: We use Oracle Database and MySQL® Database.
[0100] Knowledge database: Use PostgreSQL or MongoDB.
[0101] Explanation of the program's processing
[0102] 1. Receiving queries
[0103] The user sends a query from their device. The query is natural language text, such as "Please tell me the shipping status of order number 123," and is sent to the server as a POST request in JSON format. When the user enters the query in their browser and presses the submit button, the data is sent from their device to the server.
[0104] 2. Query validation
[0105] The server validates the received query. To ensure the query is properly provided, it checks the query's format and whether all required fields are present. For example, it checks if the query is not empty and if all required fields are filled in, and returns an error message if it is inappropriate.
[0106] 3. Sending queries to internal systems
[0107] If deemed appropriate, the server sends a query to the internal system's search API. The internal system receives the request and searches its internal database for the relevant data. For example, if the server sends the query "Please tell me the shipping status of order number 123," the internal system will search its database.
[0108] 4. Processing the response
[0109] The server receives responses from the internal system. If the internal system returns a valid result, it returns that result to the user. For example, if it receives the response "Order number 123 is in transit," it sends that back to the user.
[0110] 5. Searching the Knowledge Database
[0111] If no valid results are returned from the internal system, the server searches the knowledge database. The knowledge database stores identifiers and their corresponding answers in pairs. The server searches for identifiers that match the query and retrieves the corresponding answers.
[0112] 6. Providing responses to users
[0113] Finally, the server returns the results to the user in JSON format. For example, if the response is "Regarding shipping status, you can check the delivery status of your product on the system," it sends this back to the user. The user's device receives this JSON data and displays it on the screen.
[0114] Specific example
[0115] A user sends a query to the server asking, "What is the shipping status of order number 123?" The server receives the query and validates it. If it is deemed appropriate, it sends the query to the internal system's API endpoint. If the internal system does not return a valid answer, the server searches the knowledge database. For example, if the knowledge database returns the answer, "Regarding shipping status, you can check the delivery status of your product on the system," it sends that information back to the user.
[0116] Example of a prompt
[0117] 1. "Please tell me the delivery status."
[0118] 2. "I want to check the status of my order."
[0119] 3. "I want to know when the product will arrive."
[0120] The flow of the specific processing in Example 1 will be explained using Figure 11.
[0121] Step 1: Receiving the query
[0122] The user sends a query from their device. The query is natural language text, such as "Please tell me the shipping status of order number 123," and is sent to the server as a POST request in JSON format.
[0123] Specifically, the user enters "Please tell me the shipping status of order number 123" into a form in their browser and clicks the submit button. The device converts this input into JSON format and sends it to the server via an HTTP request.
[0124] Input: Query sent by the user from their device: "Please tell me the shipping status of order number 123."
[0125] Output: JSON format data delivered to the server
[0126] Step 2: Validate the query
[0127] The server validates the received query. It checks the query format and whether all required fields are present to ensure the query is properly submitted. If it is incorrect, it returns an error message.
[0128] Specifically, the server parses the query "Please tell me the shipping status of order number 123" and checks whether the format and content are appropriate. For example, it checks whether the query is empty and whether all required fields are filled in.
[0129] Input: Received query data in JSON format
[0130] Output: Verification result (valid or invalid) and error message (only if invalid)
[0131] Step 3: Sending queries to the internal system
[0132] If the query is deemed valid, the server sends the query to the internal system's search API. The internal system receives this request and searches its internal database.
[0133] Specifically, the server sends a request to the internal system's API endpoint containing the query, "Please tell me the shipping status of order number 123." The internal system then searches its database for the relevant data.
[0134] Input: Validated query "Please tell me the shipping status of order number 123"
[0135] Output: API request to internal system
[0136] Step 4: Processing responses from internal systems
[0137] The server receives responses from the internal system. If the internal system returns a valid result, it returns that result to the user. For example, if it receives the response "Order number 123 is in transit," it sends that back to the user.
[0138] Specifically, if the internal system returns a response stating "Order number 123 is in transit," the server converts this information into JSON format and sends it to the user's terminal.
[0139] Input: Response data from the internal system
[0140] Output: JSON format data to be sent back to the user
[0141] Step 5: Search the knowledge database
[0142] If the internal system fails to return a valid result, the server searches the knowledge database. The knowledge database stores identifiers and their corresponding answers in pairs. The server searches for identifiers that match the query and retrieves the corresponding answer.
[0143] Specifically, the server sends a query to the knowledge database asking "What is the shipping status of order number 123?" and searches for a matching identifier. It then retrieves the relevant response.
[0144] Input: Query for invalid results: "Please tell me the shipping status of order number 123"
[0145] Output: Answers retrieved from the knowledge database
[0146] Step 6: Providing responses to users
[0147] The server returns results obtained from the internal system or knowledge database to the user in JSON format. For example, if it receives the response, "Regarding shipping status, you can check the delivery status of your product on the system," it will send that response back to the user.
[0148] Specifically, the server generates a result stating, "Regarding the shipping status, you can check the delivery status of your product on the system," and sends it back to the user's terminal. The user's terminal receives this JSON data and displays it on the screen.
[0149] Input: Results from internal systems or knowledge databases
[0150] Output: JSON data to be sent back to the user's device.
[0151] (Application Example 1)
[0152] Next, we will explain Application Example 1. In the following explanation, the data processing device 12 will be referred to as the "server," and the smart device 14 will be referred to as the "terminal."
[0153] In recent years, with the diversification of content distribution services, users are required to quickly search for and obtain appropriate information from a vast amount of content. Traditional systems often had problems such as inaccurate search results for user queries or inability to quickly retrieve relevant information from a large knowledge database, resulting in a poor user experience. Furthermore, the insufficient content recommendation function based on user preferences meant that the system failed to adequately provide users with the information they were looking for.
[0154] The specific processing performed by the specific processing unit 290 of the data processing device 12 in Application Example 1 is realized by the following means.
[0155] In this invention, the server includes means for receiving queries from users, means for verifying whether the query is included, and means for sending the verified query to the search API of the internal system. This ensures the validity of the query and enables rapid retrieval of search results from the database of the internal system. The server also includes means for receiving responses from the internal system, means for searching the knowledge database if the internal system does not return valid results, and means for returning the search results to the user. This enables the server to provide appropriate answers from the knowledge database even when the internal system does not have a response. Furthermore, the server includes means for searching for the most suitable content from a content provider server based on the query, and means for providing recommended content based on the user's preferences. This improves the accuracy of the user's search results and enables the provision of content that matches the user's preferences, thereby improving the user experience.
[0156] "Means for receiving queries from users" refers to a function that allows the server to receive inquiry content (queries) sent from the user's terminal.
[0157] "Means for verifying whether a query is included" refers to a function that checks whether an incoming query is in the correct format and filters out invalid requests.
[0158] "Means for sending validated queries to the internal system's search API" refers to a function that sends queries deemed appropriate to the search API of an information system within a company and retrieves the results.
[0159] "Means for receiving responses from internal systems" refers to a function that allows a server to receive search results returned from an information system within a company.
[0160] "Means for searching the knowledge database when the internal system does not return valid results" refers to a function that searches a separately constructed knowledge database to obtain the necessary information when the response from the internal system is missing or invalid.
[0161] "Means of returning search results to the user" refers to a function that sends the search results acquired by the server to the user's terminal for display.
[0162] "Means for searching for the most suitable content from a content provider server based on a query" refers to a function that searches for relevant content from a content provider server based on the query content and obtains the most suitable results.
[0163] "Means of providing recommended content based on user preferences" refers to a function that recommends appropriate content to users based on their past viewing history and set preferences.
[0164] An "internal system" is a collection of information systems and databases managed within a company, which provides APIs for searching various types of data.
[0165] A "knowledge database" is a database that stores answers to various queries and is used as an alternative data source when the internal system fails to return valid results.
[0166] This invention relates to a system that searches internal systems and knowledge databases based on user queries and automatically provides appropriate answers. This system consists of a server, user terminals, internal systems, a knowledge database, and a content provision server.
[0167] The server receives queries sent from user terminals and verifies whether the queries are in the correct format. The verified queries are sent to the internal system's search API, and search results are retrieved from the internal system's database. If the internal system does not return valid results, the server searches the knowledge database to retrieve relevant information. Finally, the search results are returned to the user. The server also searches for appropriate content from content providers based on the query content and provides recommended content based on the user's preferences.
[0168] This system operates using the following hardware and software:
[0169] Hardware: Servers, users' smartphones or tablets, internal corporate information systems (internal systems), knowledge databases, and content delivery servers.
[0170] Software: Programs written in programming languages such as Python and JavaScript (registered trademark), API communication using the HTTP protocol, database search engines (e.g., ElasticSearch (registered trademark)), and generative AI models.
[0171] For example, if a user sends a query from a smartphone application to search for "latest movies," the server performs the following processes: First, it receives the query and verifies its contents. After verification, it queries the internal system's search API based on that query. If the internal system does not return a valid result, it searches the knowledge database and retrieves relevant information. Meanwhile, it retrieves the latest movie information from the content provider server based on the user's query. Then, based on the retrieved results, it generates recommended content tailored to the user's viewing history and preferences and returns it to the user's device.
[0172] In this way, the present invention enables users to quickly and accurately obtain the information they need, while simultaneously providing optimal content based on their preferences. A specific example of a prompt statement is, "Tell me about the latest movies." This improves the quality of the user experience and makes it possible to provide a more satisfying service.
[0173] The flow of a specific process in Application Example 1 will be explained using Figure 12.
[0174] Step 1:
[0175] Users enter queries such as "latest movies" from a smartphone or tablet application and submit them.
[0176] Input: User query ("Tell me about the latest movies")
[0177] Output: Query data sent to the server
[0178] Step 2:
[0179] The server receives queries sent from the user's terminal.
[0180] Input: Query data from the user
[0181] Output: Internally processable query object
[0182] Specifically, it parses the HTTP request and extracts the query portion.
[0183] Step 3:
[0184] The server validates the data from the received query.
[0185] Input: Query object
[0186] Output: Verification result (valid or invalid), error message if invalid.
[0187] Specifically, the system checks the query format and whether required fields are present, and returns an error message to the user if any are invalid.
[0188] Step 4:
[0189] The server sends the validated query to the internal system's search API.
[0190] Input: Validated query object
[0191] Output: Response from the internal system (search results)
[0192] Specifically, the process involves making an HTTP POST request to the API endpoint of the internal system.
[0193] Step 5:
[0194] The server receives responses from internal systems and analyzes the results.
[0195] Input: Response data from the internal system
[0196] Output: Analyzed search results
[0197] In terms of specific operations, the response data is parsed and search results are extracted.
[0198] Step 6:
[0199] If the internal system does not return a valid result, the server searches the knowledge database.
[0200] Input: Query object
[0201] Output: Search results from the knowledge database
[0202] In terms of specific operations, it executes SQL queries against a knowledge database and retrieves the corresponding answers.
[0203] Step 7:
[0204] The server returns search results to the user.
[0205] Input: Final search results (obtained from an internal system or knowledge database)
[0206] Output: Search results displayed on the user's terminal
[0207] Specifically, the process involves converting the search results into JSON format and sending it back to the user's terminal as an HTTP response.
[0208] Step 8:
[0209] The server searches for the most suitable content from the content provider server based on the query content.
[0210] Input: Query object
[0211] Output: Content data from the content provider server
[0212] In terms of specific operations, the system sends a query to the content provider server's API and retrieves relevant content information.
[0213] Step 9:
[0214] The server generates recommended content based on the user's preferences.
[0215] Input: Viewing history, preference data, content data
[0216] Output: Recommended Content
[0217] Specifically, the system uses a generative AI model that references viewing history and preference data to select highly relevant content.
[0218] Step 10:
[0219] The server sends recommended content back to the user's device.
[0220] Input: Recommended content
[0221] Output: Recommended content displayed on the user's terminal
[0222] Specifically, the system formats recommended content and returns it to the user in an appropriate format.
[0223] Furthermore, an emotion engine that estimates the user's emotions may be incorporated. That is, the identification processing unit 290 may use the emotion identification model 59 to estimate the user's emotions and perform identification processing using the user's emotions.
[0224] This invention combines a system that searches internal systems and knowledge databases based on user queries and provides appropriate answers with an emotion engine that recognizes user emotions. To implement this system, a server, user terminals, an emotion engine, internal systems, and a knowledge database are used.
[0225] 1. Receiving queries
[0226] The user sends their inquiry to the server as a query from their device. The query is sent to the server as a POST request in JSON format.
[0227] 2. Query validation
[0228] The server parses the received query data and verifies whether the query is properly provided. If the query does not exist, the server returns an error message to the user. This process prevents invalid requests from being processed.
[0229] 3. Emotion recognition by an emotion engine
[0230] The server sends the query text data to the emotion engine to recognize the user's emotions. The emotion engine uses a text analysis algorithm to identify the user's emotions (e.g., joy, sadness, anger).
[0231] 4. Sending queries to internal systems
[0232] The server sends the query, along with the sentiment information identified by the sentiment engine, to the internal system's search API. The server makes a POST request to the internal system's URL, sending JSON data containing the query and sentiment information.
[0233] 5. Processing responses from internal systems
[0234] The server receives a response from the internal system. If the internal system returns a valid result, the server extracts the result in JSON format. The server then adjusts the response based on the perceived sentiment and returns it to the user in an appropriate tone and style.
[0235] 6. Searching the Knowledge Database
[0236] If the internal system fails to return a valid result, the server searches the knowledge database. The server searches the predefined knowledge database for the ID corresponding to the query.
[0237] 7. Emotion-based response adjustment
[0238] If a matching ID is found in the knowledge database, the server retrieves the corresponding response and adjusts it based on the sentiment information recognized by the sentiment engine. For example, if the user is expressing dissatisfaction, the response may include words of encouragement or apology.
[0239] 8. Providing responses to users
[0240] The server returns the refined search results or answers from the knowledge database to the user in JSON format. For example, a query like "01" might return the answer, "Regarding shipping status, you can check the delivery status of your product in the system. We apologize for the delay."
[0241] Specific example:
[0242] Suppose a user sends a query to the server saying "My delivery is delayed." The server receives this query and its sentiment engine recognizes the emotion as "dissatisfied." Next, it sends this query and sentiment information to the internal system's search API. If the internal system does not return a valid answer, the server searches the knowledge database and retrieves an answer for "My delivery is delayed." It returns the answer "You can check the delivery status of your order on the system," adding "We apologize for the delay" based on the sentiment information.
[0243] This allows users to obtain information quickly and accurately, improves the efficiency of support operations, and increases customer satisfaction.
[0244] The following describes the processing flow.
[0245] Step 1:
[0246] The user sends their inquiry to the server as a query from their device. The query is sent to the server as a POST request in JSON format. For example, consider a case where a user sends a query saying "My delivery is delayed."
[0247] Step 2:
[0248] The server accepts a POST request at the Flask application's endpoint / api / query. The server parses the received request data (in JSON format) and extracts the provided query. The extracted query is "Delivery is delayed".
[0249] Step 3:
[0250] The server verifies whether the query exists. If the query does not exist, the server returns a JSON response with status code 400 to the user, containing the error message "No query provided." If the query is determined to be valid, the server proceeds to the next step.
[0251] Step 4:
[0252] The server sends the query's text data to the sentiment engine to recognize the user's emotions. The sentiment engine uses a text analysis algorithm to identify the emotion "dissatisfaction" from the query "delivery is delayed."
[0253] Step 5:
[0254] The server sends the emotion information identified by the emotion engine, along with the query, to the internal system's search API. The server makes a POST request to a predefined internal system URL, sending JSON data containing the query "Delivery is delayed" and the emotion "Dissatisfied".
[0255] Step 6:
[0256] The server waits for a response from the internal system. If the internal system returns a valid result with status code 200, the server extracts the result in JSON format. For example, it might retrieve a search result such as "Please check the delivery status here" from the response body.
[0257] Step 7:
[0258] If the internal system fails to return a valid result, the server searches the knowledge database. The server searches the predefined knowledge database for an ID corresponding to the query. For example, it searches for ID "1001" for the query "Delivery is delayed".
[0259] Step 8:
[0260] If a matching ID is found in the knowledge database, the server retrieves the answer corresponding to that ID. For example, for ID "1001", it retrieves the answer "Regarding shipping status, you can check the delivery status of your product on the system."
[0261] Step 9:
[0262] The server adjusts the retrieved response based on the emotional information recognized by the emotion engine. If the user is expressing "dissatisfaction," comforting or supplementary information such as "Sorry for the wait" is added to the response.
[0263] Step 10:
[0264] The server returns the refined search results or answers from the knowledge database to the user in JSON format. For example, in response to the query "Delivery is delayed," the server might return the answer "Regarding the shipping status, you can check the delivery status of your product in the system. We apologize for the delay."
[0265] In this way, users can obtain information quickly and accurately, the efficiency of support operations improves, and customer satisfaction increases.
[0266] (Example 2)
[0267] Next, we will describe Example 2. In the following description, the data processing device 12 will be referred to as the "server" and the smart device 14 as the "terminal".
[0268] Traditional internal systems and information retrieval systems utilizing knowledge databases simply provided relevant information in response to user queries, but were unable to generate answers that took user emotions into account. As a result, responses adapted to user feelings were lacking, and consequently, user satisfaction could not be sufficiently increased. In particular, when users were feeling dissatisfied or angry, appropriate responses to those emotions were often not provided.
[0269] The identification process performed by the identification processing unit 290 of the data processing device 12 in Example 2 is realized by the following means.
[0270] In this invention, the server includes means for receiving queries from users, means for verifying whether a query is included, means for sending the query's text data to an emotion recognition engine and recognizing the user's emotion, means for sending the verified query along with the recognized emotion information to the internal system's search API, means for receiving responses from the internal system, means for searching a knowledge database if the internal system does not return a valid result, means for adjusting the response obtained from the knowledge database based on the user's emotion information, and means for returning the adjusted search results or the response from the knowledge database to the user. This enables responses that appropriately consider the user's emotions and can increase user satisfaction.
[0271] A "user" refers to a person who uses a system to input queries and retrieve information.
[0272] A "query" refers to the content or question that a user sends to a system.
[0273] A "server" refers to a computer system that receives, validates, processes, and provides appropriate responses to queries.
[0274] "Verification" refers to the process by which a server checks whether the received query is in the correct format and contains the necessary information.
[0275] An "emotion recognition engine" refers to software that uses an algorithm to analyze text data and identify the user's emotions.
[0276] "Internal systems" refer to databases and business applications used within a company, and include systems that provide search APIs.
[0277] A "search API" refers to an application programming interface that allows an internal system to search for information in response to external queries and return the results.
[0278] "Response" refers to the content of the response that an internal system returns to a query.
[0279] A "knowledge database" refers to a database that stores predefined pairs of questions and their answers.
[0280] "Emotional information" refers to the emotional state of a user as identified by an emotion recognition engine.
[0281] "Adjustment" refers to the process of changing the format and tone of the acquired responses to suit the user's emotions.
[0282] "Search results" refer to information obtained from internal systems or knowledge databases.
[0283] "JSON format" is an abbreviation for JavaScript Object Notation, which is a data exchange format used for representing structured data.
[0284] This invention combines an emotion engine that recognizes the user's emotions with a system that searches internal systems and knowledge databases based on queries from users and provides appropriate answers. To implement this system, a server, user terminals, an emotion recognition engine, internal systems, and a knowledge database are used.
[0285] Specific examples of hardware and software to be used
[0286] Server: Executes tasks such as receiving, verifying, processing queries, and returning search results. As specific examples, Apache, Nginx, etc. are used.
[0287] User terminal: A device for query input and result display. As specific examples, Windows PCs, iPhones (registered trademark), etc. are used.
[0288] Emotion recognition engine: Performs text analysis to identify the user's emotions. As a specific example, IBM Watson (registered trademark) Tone Analyzer is used.
[0289] Internal system: Connects to databases and business applications within the enterprise. As specific examples, SAP, Oracle, etc. are used.
[0290] Knowledge database: A database in which pre-defined questions and answers are stored in pairs. As specific examples, Elasticsearch, MongoDB, etc. are used.
[0291] Specific operations of the system
[0292] 1. Receiving queries:
[0293] The user enters their inquiry details from their terminal and clicks the submit button. The query is sent to the server in JSON format.
[0294] Example: A user sends a query saying "My item hasn't arrived."
[0295] 2. Query validation:
[0296] The server parses the received query data and verifies whether the query is provided in the correct format. If the query is empty, an error message is returned.
[0297] 3. Emotion recognition using an emotion recognition engine:
[0298] The server sends the query text data to the emotion recognition engine. The emotion recognition engine uses a text analysis algorithm to recognize the user's emotions.
[0299] For example, the query "product not arrived" is associated with emotions such as "anger" and "dissatisfaction."
[0300] 4. Sending queries to internal systems:
[0301] The server sends the query, along with the recognized sentiment information, to the internal system's search API. It also makes a POST request to the specified URL in the internal system, sending JSON data containing the query and sentiment information.
[0302] Example: Send the query "product not received" and the emotion information "anger".
[0303] 5. Handling responses from internal systems:
[0304] The server receives the response from the in-house system and adjusts the response based on the recognized emotion. For example, it adjusts the response "The product is in transit" to "We apologize for the delay. The product is currently in transit."
[0305] 6. Search of Knowledge Database:
[0306] If the in-house system does not return a valid result, the server searches the knowledge database. It searches for the ID corresponding to the query and obtains an appropriate answer.
[0307] Example: For the query "The product does not arrive", obtain the relevant FAQ from the knowledge database.
[0308] [[ID=第十五]] 7. Answer Adjustment Based on Emotion:
[0309] Adjust the answer based on the user's emotion information. For example, if the user is feeling dissatisfied, add "We apologize for the delay." to the standard answer.
[0310] 8. Providing Answer to User:
[0311] Return the adjusted search result or the answer from the knowledge database to the user in JSON format.
[0312] Example: For the query "The delivery is delayed", return the answer "We apologize for the delay. The product is currently in transit."
[0313] Specific Examples of Prompt Sentences:
[0314] "Query: The delivery is delayed. Emotion: Dissatisfaction. Please generate an appropriate answer."
[0315] "The user has inquired 'The delivery is delayed'. The emotion is dissatisfaction. Please generate an appropriate answer in this case."
[0316] This allows us to provide appropriate, emotion-conscious answers to user queries, thereby increasing user satisfaction.
[0317] The flow of the specific processing in Example 2 will be explained using Figure 13.
[0318] Step 1: Receiving the query
[0319] The user enters a query (inquiry content) from their terminal and clicks the submit button. For example, they might enter "My product hasn't arrived."
[0320] Input: The query entered by the user into the terminal.
[0321] Processing: The user's terminal converts the query into JSON format and sends an HTTP POST request to the server.
[0322] Output: The server receives the query in JSON format.
[0323] Step 2: Validate the query
[0324] The server parses the received query data and verifies that the query is not empty and that it meets the required format.
[0325] Input: Query data in JSON format.
[0326] Processing: Performs syntax checks on the query and verifies the presence of required fields.
[0327] Output: If the query is valid, proceed to the next processing step. If the query is invalid, the server generates an error message and returns it to the user.
[0328] Step 3: Emotion recognition by emotion recognition engine
[0329] The server sends valid query text data to an emotion recognition engine (e.g., IBM Watson Tone Analyzer) to analyze the user's emotions.
[0330] Input: Query text data.
[0331] Processing: The emotion recognition engine uses a text analysis algorithm to identify the user's emotions (e.g., joy, sadness, anger, etc.).
[0332] Output: Emotion recognition result (e.g., "anger").
[0333] Step 4: Sending queries to the internal system
[0334] The server combines the query and sentiment recognition results and sends them to the company's internal system's search API.
[0335] Input: Query text data and sentiment recognition results.
[0336] Processing: The server combines the query and sentiment recognition results into JSON format and sends an HTTP POST request to the company's internal system's search API.
[0337] Output: The server receives a response from the internal system.
[0338] Step 5: Processing responses from internal systems
[0339] The server receives responses from internal systems and adjusts those responses based on emotions.
[0340] Input: Response data from the company's internal system.
[0341] Processing: The server analyzes the response data and adjusts the tone appropriately based on the sentiment recognition results. For example, it might adjust it to say, "We apologize for the delay. Your item is currently being shipped."
[0342] Output: Adjusted response data.
[0343] Step 6: Search the knowledge database
[0344] If the internal system fails to return a valid result, the server searches the knowledge database.
[0345] Input: Query text data.
[0346] Processing: The server searches the knowledge database for IDs that match the query and retrieves the relevant information.
[0347] Output: Answer data retrieved from the knowledge database.
[0348] Step 7: Emotion-Based Response Adjustment
[0349] The server adjusts the answers retrieved from the knowledge database based on the user's sentiment information.
[0350] Input: Response data and sentiment recognition results obtained from a knowledge database.
[0351] Processing: The server analyzes the response data and adjusts the tone and style to suit the emotion. For example, it might add "Sorry to keep you waiting."
[0352] Output: Adjusted response data.
[0353] Step 8: Providing responses to users
[0354] The server returns a refined search result or an answer from the knowledge database to the user.
[0355] Input: Adjusted response data.
[0356] Processing: The server converts the response data into JSON format and returns an HTTP response to the user's terminal.
[0357] Output: The response data displayed to the user on their device.
[0358] The above outlines the specific processing steps of this system's program. This allows for the provision of appropriate responses that take user emotions into consideration, thereby increasing user satisfaction.
[0359] (Application Example 2)
[0360] Next, we will explain application example 2. In the following explanation, the data processing device 12 will be referred to as a "server" and the smart device 14 as a "terminal".
[0361] Modern customer support in brick-and-mortar stores requires prompt and accurate responses to inquiries from diverse users. However, traditional methods often fail to consider user emotions, resulting in inadequate handling of dissatisfied customers. This leads to a decline in customer satisfaction. This invention aims to improve customer satisfaction and streamline support operations by recognizing user emotions and providing appropriately adjusted responses.
[0362] In Application Example 2, the specific processing performed by the specific processing unit 290 of the data processing device 12 is realized by the following means. In this invention, the server includes means for receiving queries from users, means for verifying whether a query is included, means for using an emotion engine to recognize the user's emotions from the text data of the query, means for sending the verified query and emotion information to the search API of the internal system, means for receiving a response from the internal system, means for searching the knowledge database if the internal system does not return a valid result, and means for adjusting the results from the knowledge database or the internal system based on the recognized emotion information and returning them to the user. This makes it possible to quickly and accurately provide an adjusted response based on the user's emotions.
[0363] "Means of receiving queries from users" refers to a function that allows the system to receive inquiries in text data format sent by users.
[0364] "Means of verifying whether a query is included" refers to the process of checking whether the received text data is in the correct query format.
[0365] "Using an emotion engine to recognize user emotions from query text data" refers to the process of using natural language processing algorithms to identify a user's emotional state (e.g., joy, frustration, sadness, etc.) from text.
[0366] "Means for sending verified queries and sentiment information to the search API of internal systems" refers to a function that sends verified queries and recognized sentiment data as search requests to internal databases and information systems.
[0367] "Means for receiving responses from internal systems" refers to functions that receive answers and information provided by internal systems and are used for further processing.
[0368] "A means of searching the knowledge database when the internal system does not return a valid result" refers to the process of searching for relevant information by referring to the knowledge database, which is an alternative source of information, when a valid answer cannot be obtained from the internal system.
[0369] "A means of adjusting the results of a knowledge database or internal system based on recognized emotional information and returning them to the user" refers to a function that automatically generates and returns a response with adjusted wording and tone according to the user's emotional state.
[0370] This invention provides a system that combines sentiment recognition with user queries to provide appropriate answers. This system utilizes a server, user terminals, a sentiment engine, an internal system, and a knowledge database.
[0371] To implement this invention, the following flow is required:
[0372] A query is sent from the user's terminal to the server, which then receives it. The received query is sent back to the server as a POST request in JSON format. The server verifies whether the query is included and can also return an error message to prevent invalid requests from being processed.
[0373] Next, the server sends the query text data to the emotion engine to recognize the user's emotions. The emotion engine uses natural language processing algorithms to identify the user's emotions (e.g., joy, sadness, anger). For emotion recognition technology, emotion analysis APIs such as IBM Watson or Azure® Text Analytics can be used.
[0374] The recognized sentiment information and queries are sent to the internal system's search API. The server makes a POST request to the internal system's URL, sending JSON data containing the queries and sentiment information. When a response is received from the internal system and a valid result is returned, the server extracts the result in JSON format.
[0375] If the internal system fails to return a valid result, the server searches the knowledge database. The knowledge database consists of ID-response pairs, and the server retrieves the response by searching for the corresponding ID. The retrieved response is then adjusted based on the sentiment information recognized by the sentiment engine. For example, if the user is expressing dissatisfaction, the response will include words of encouragement and apology.
[0376] Ultimately, the server provides the user with a refined response in JSON format. For example, if a user sends the query "I want to know how many more days until my item arrives," the sentiment recognition engine recognizes the emotion "dissatisfaction" and generates a response such as "Your item will arrive within 3 days. We apologize for the delay."
[0377] As an example of a prompt, let's assume the user typed "I want to change my payment method." We can generate code that returns an appropriate response considering this query and the user's sentiment. For example, set the prompt as follows:
[0378] Example of a prompt:
[0379] "Let's assume the user enters 'I want to change my payment method.' Generate code that returns an appropriate response, taking this query and the user's sentiment into consideration."
[0380] As described above, the present invention can realize a system that provides the optimal answer while taking into account the user's emotions. This system makes it possible to increase user satisfaction and improve the efficiency of customer support operations.
[0381] The flow of a specific process in Application Example 2 will be explained using Figure 14.
[0382] Step 1:
[0383] The server receives queries from user terminals. Users input text-based queries using devices such as smartphones and PCs, and these queries are sent to the server as JSON-formatted POST requests. The input is the user's text query, and the output is the received query data.
[0384] Step 2:
[0385] The server verifies whether the received query is valid. This verification process checks whether the query data is empty and in the correct format, and if invalid, it generates an error message and returns it to the user terminal. The input is the received query data, and the output is the verification result or error message.
[0386] Step 3:
[0387] The server sends the received query to the sentiment engine to recognize the user's emotions. At this stage, natural language processing algorithms are used to identify the user's emotions (e.g., joy, frustration, anger) from the text. Specific sentiment engines that can be used include IBM Watson and Azure Text Analytics. The input is the query text, and the output is the recognized emotion information.
[0388] Step 4:
[0389] The server sends the validated query and sentiment information to the internal system's search API. At this time, a JSON data containing the query and sentiment information is POSTed to the internal system's API. The input is the validated query and sentiment information, and the output is the search results from the internal system.
[0390] Step 5:
[0391] The server receives a response from the internal system. If the internal system returns valid information, that data is received by the server and further processed. The input is the response from the internal system, and the output is a flag indicating valid search results or invalid results.
[0392] Step 6:
[0393] The server searches the knowledge database if the internal system fails to return a valid result. At this stage, it searches for the corresponding ID in the predefined knowledge database and retrieves the appropriate answer. The input is a flag for invalid search results, and the output is the answer from the knowledge database.
[0394] Step 7:
[0395] The server adjusts the results from the knowledge database or internal system based on the recognized sentiment information. For example, if the sentiment is "dissatisfied," the system adds encouraging or apologetic phrases to the response. The input is the results and sentiment information from the knowledge database or internal system, and the output is the adjusted response.
[0396] Step 8:
[0397] The server returns the adjusted response to the user. The adjusted response data is sent to the user's terminal in JSON format, allowing the user to verify the information. The input is the adjusted response, and the output is the information provided to the user.
[0398] In this way, it becomes possible to provide prompt and emotionally sensitive responses to user inquiries.
[0399] The specific processing unit 290 transmits the result of the specific processing to the smart device 14. In the smart device 14, the control unit 46A causes the output device 40 to output the result of the specific processing. The microphone 38B acquires audio indicating user input for the result of the specific processing. The control unit 46A transmits the audio data indicating user input acquired by the microphone 38B to the data processing device 12. In the data processing device 12, the specific processing unit 290 acquires the audio data.
[0400] Data generation model 58 is a so-called generative AI (Artificial Intelligence). An example of data generation model 58 is ChatGPT (registered trademark) (Internet search).<URL: https: / / openai.com / blog / chatgpt> ), Gemini (registered trademark) (Internet search) <url: https: gemini.google.com ?hl="ja">Examples of generative AI include the following. The data generation model 58 is obtained by performing deep learning on a neural network. The data generation model 58 is input with prompts containing instructions, and with inference data such as audio data representing speech, text data representing text, and image data representing images. The data generation model 58 infers from the input inference data according to the instructions indicated by the prompts, and outputs the inference results in data formats such as audio data and text data. Here, inference refers to, for example, analysis, classification, prediction, and / or summarization.
[0401] In the above embodiment, an example was given in which specific processing is performed by the data processing device 12, but the technology of this disclosure is not limited thereto, and the specific processing may also be performed by the smart device 14.
[0402] [Second Embodiment]
[0403] Figure 3 shows an example of the configuration of the data processing system 210 according to the second embodiment.
[0404] As shown in Figure 3, the data processing system 210 includes a data processing device 12 and smart glasses 214. An example of the data processing device 12 is a server.
[0405] The data processing device 12 comprises a computer 22, a database 24, and a communication interface 26. The computer 22 is an example of a "computer" related to the technology of this disclosure. The computer 22 comprises a processor 28, RAM 30, and storage 32. The processor 28, RAM 30, and storage 32 are connected to a bus 34. The database 24 and the communication interface 26 are also connected to the bus 34. The communication interface 26 is connected to a network 54. An example of the network 54 is a WAN (Wide Area Network) and / or a LAN (Local Area Network).
[0406] The smart glasses 214 include a computer 36, a microphone 238, a speaker 240, a camera 42, and a communication interface 44. The computer 36 includes a processor 46, RAM 48, and storage 50. The processor 46, RAM 48, and storage 50 are connected to a bus 52. The microphone 238, speaker 240, and camera 42 are also connected to the bus 52.
[0407] The microphone 238 receives voice signals from the user 20 and receives instructions from the user 20. The microphone 238 captures the voice signals from the user 20, converts the captured voice into audio data, and outputs it to the processor 46. The speaker 240 outputs audio according to the instructions from the processor 46.
[0408] Camera 42 is a small digital camera equipped with an optical system including a lens, aperture, and shutter, and an image sensor such as a CMOS (Complementary Metal-Oxide-Semiconductor) image sensor or a CCD (Charge Coupled Device) image sensor, and captures images of the area around the user 20 (for example, an imaging range defined by a field of view equivalent to the width of a typical healthy person's field of vision).
[0409] Communication interface 44 is connected to network 54. Communication interfaces 44 and 26 are responsible for the exchange of various information between processor 46 and processor 28 via network 54. The exchange of various information between processor 46 and processor 28 using communication interfaces 44 and 26 is performed in a secure manner.
[0410] Figure 4 shows an example of the main functions of the data processing device 12 and the smart glasses 214. As shown in Figure 4, the data processing device 12 performs specific processing using the processor 28. The storage 32 stores the specific processing program 56.
[0411] The specific processing program 56 is an example of a "program" relating to the technology of this disclosure. The processor 28 reads the specific processing program 56 from the storage 32 and executes the read specific processing program 56 on the RAM 30. The specific processing is realized by the processor 28 operating as a specific processing unit 290 in accordance with the specific processing program 56 executed on the RAM 30.
[0412] The storage 32 stores the data generation model 58 and the emotion identification model 59. The data generation model 58 and the emotion identification model 59 are used by the identification processing unit 290.
[0413] In the smart glasses 214, the processor 46 performs the reception output processing. The storage 50 stores the reception output program 60. The processor 46 reads the reception output program 60 from the storage 50 and executes the read reception output program 60 on the RAM 48. The reception output processing is realized by the processor 46 operating as a control unit 46A according to the reception output program 60 executed on the RAM 48.
[0414] Next, the identification processing performed by the identification processing unit 290 of the data processing device 12 will be described. In the following description, the data processing device 12 will be referred to as the "server" and the smart glasses 214 will be referred to as the "terminal".
[0415] This invention relates to a system that searches internal systems and a knowledge database based on user queries and automatically provides appropriate answers. To implement this system, a server, user terminals, internal systems, and a knowledge database are required.
[0416] 1. Receiving queries
[0417] The user sends their inquiry to the server as a query from their device. The query is sent to the server as a POST request in JSON format.
[0418] 2. Query validation
[0419] The server parses the received query data and verifies whether the query is properly provided. If the query does not exist, the server returns an error message to the user. This process prevents invalid requests from being processed.
[0420] 3. Sending queries to internal systems
[0421] If the query is deemed valid, the server sends the query to the internal system's search API. The internal system searches its internal database based on the retrieved query and returns the relevant results.
[0422] 4. Processing responses from internal systems
[0423] The server receives responses from the internal system. If the internal system returns a valid result, the server returns that result to the user. For example, in response to an inquiry about delivery status, the server might return the response, "Please check the delivery status here."
[0424] 5. Searching the Knowledge Database
[0425] If the internal system fails to return a valid result, the server searches the knowledge database. The knowledge database holds pairs of IDs corresponding to queries and their corresponding answers. The server searches for an ID that matches the query and retrieves the corresponding answer.
[0426] 6. Providing responses to users
[0427] The server returns results from internal systems or knowledge databases to the user in JSON format. For example, a query like "01" might return the response, "Regarding shipping status, you can check the delivery status of your products on the system."
[0428] Specific example:
[0429] Suppose a user sends the query "01" to the server. The server receives this query and verifies that it is valid. Next, it sends the query to the internal system's search API. If the internal system does not return a valid answer, the server searches the knowledge database. If the query "01" finds the result "Regarding shipping status, you can check the delivery status of your products on the system," the server returns that result to the user.
[0430] This invention enables users to quickly and accurately obtain the information they need. Furthermore, it improves the efficiency of support operations and contributes to increased customer satisfaction.
[0431] The following describes the processing flow.
[0432] Step 1:
[0433] The user sends their inquiry to the server as a query from their device. The query is sent to the server as a POST request in JSON format.
[0434] Step 2:
[0435] The server accepts POST requests at the Flask application's endpoint / api / query. The server parses the received request data (in JSON format) and extracts the provided query.
[0436] Step 3:
[0437] The server verifies whether the query exists. If the query does not exist, the server returns a JSON response with status code 400 to the user, containing the error message "No query provided."
[0438] Step 4:
[0439] If a query exists, the server sends it to the internal system's search API. This is done by making a POST request to a predefined URL of the internal system. The server sends JSON data containing the query.
[0440] Step 5:
[0441] The server waits for a response from the internal system. If the internal system returns a valid result with status code 200, the server extracts the result in JSON format. Specifically, it retrieves the search results (e.g., "Please check the delivery status here") from the response body.
[0442] Step 6:
[0443] If the internal system returns a valid result, the server returns that result to the user in JSON format. The response is returned as JSON data containing the result, along with the key "response".
[0444] Step 7:
[0445] If the internal system fails to return a valid result, the server searches the knowledge database. The server retrieves the ID corresponding to the query from the predefined knowledge database.
[0446] Step 8:
[0447] If a matching ID is found in the knowledge database, the server retrieves the answer corresponding to that ID. For example, for a query like "01", the server retrieves the answer "Regarding shipping status, you can check the delivery status of your products on the system."
[0448] Step 9:
[0449] The server returns the results from the knowledge database to the user in JSON format. The response is returned as JSON data containing the answer, along with the key "response".
[0450] Step 10:
[0451] If the server cannot obtain valid results from either the internal system or the knowledge database, it returns a JSON response to the user that includes the error message "Sorry, we couldn't find that information."
[0452] (Example 1)
[0453] Next, we will describe Example 1. In the following description, the data processing device 12 will be referred to as the "server," and the smart glasses 214 will be referred to as the "terminal."
[0454] For users to quickly obtain useful information, it is necessary to efficiently retrieve information from multiple systems and databases. However, with conventional systems, user queries were sometimes not processed properly, resulting in users not being able to obtain the necessary information. Furthermore, efficient query management and result return for linking multiple systems were challenges. In addition, there was a lack of means to search other databases when the internal system did not return valid results. As a result, user satisfaction decreased and the efficiency of support operations deteriorated.
[0455] The identification process performed by the identification processing unit 290 of the data processing device 12 in Example 1 is realized by the following means.
[0456] In this invention, the server includes means for receiving queries from users, means for verifying whether queries are properly provided, and means for sending queries deemed appropriate to the search API of the internal system. This enables users to quickly obtain appropriate information. Furthermore, the server includes means for receiving responses from the internal system, means for searching the knowledge database if no valid results are returned, and means for returning the search results to the user. This allows the server to obtain appropriate information from the knowledge database and provide it to the user even if the internal system does not return valid results.
[0457] A "query" is the content of an inquiry sent by a user, and it is a data format used by the system for processing.
[0458] "Verification" is the process of checking whether the query the system has received is appropriate.
[0459] "Internal systems" refer to information processing systems and databases used within a company or organization.
[0460] A "search API" is an interface that a system provides to search a database based on specific criteria.
[0461] A "knowledge database" is a database that holds answers to queries, and is where information is accumulated.
[0462] An "identifier" refers to a unique ID or code used to uniquely identify data.
[0463] A "response" is the response data that a server returns in response to a query, and includes the results of the query.
[0464] "Receiving" refers to the process by which a system receives data sent from an external source.
[0465] "Transmission" refers to the process by which a system sends data outwards.
[0466] "Searching" is the process of finding relevant data from a database or information source based on specific conditions or queries.
[0467] JSON format is a lightweight data exchange format for structuring and describing data.
[0468] This invention relates to a system that searches internal systems and knowledge databases based on user queries and automatically provides appropriate answers. To implement this system, a server, user terminals, internal systems, and a knowledge database are required.
[0469] Hardware and software to be used
[0470] Server: Built using Apache Tomcat.
[0471] User terminal: Use a common computing device including Windows PCs, Macs, and Linux systems.
[0472] Internal systems: Use Oracle Database or MySQL Database.
[0473] Knowledge database: Use PostgreSQL or MongoDB.
[0474] Explanation of the program's processing
[0475] 1. Receiving queries
[0476] The user sends a query from their device. The query is natural language text, such as "Please tell me the shipping status of order number 123," and is sent to the server as a POST request in JSON format. When the user enters the query in their browser and presses the submit button, the data is sent from their device to the server.
[0477] 2. Query validation
[0478] The server validates the received query. To ensure the query is properly provided, it checks the query's format and whether all required fields are present. For example, it checks if the query is not empty and if all required fields are filled in, and returns an error message if it is inappropriate.
[0479] 3. Sending queries to internal systems
[0480] If deemed appropriate, the server sends a query to the internal system's search API. The internal system receives the request and searches its internal database for the relevant data. For example, if the server sends the query "Please tell me the shipping status of order number 123," the internal system will search its database.
[0481] 4. Processing the response
[0482] The server receives responses from the internal system. If the internal system returns a valid result, it returns that result to the user. For example, if it receives the response "Order number 123 is in transit," it sends that back to the user.
[0483] 5. Searching the Knowledge Database
[0484] If no valid results are returned from the internal system, the server searches the knowledge database. The knowledge database stores identifiers and their corresponding answers in pairs. The server searches for identifiers that match the query and retrieves the corresponding answers.
[0485] 6. Providing responses to users
[0486] Finally, the server returns the results to the user in JSON format. For example, if the response is "Regarding shipping status, you can check the delivery status of your product on the system," it sends this back to the user. The user's device receives this JSON data and displays it on the screen.
[0487] Specific example
[0488] A user sends a query to the server asking, "What is the shipping status of order number 123?" The server receives the query and validates it. If it is deemed appropriate, it sends the query to the internal system's API endpoint. If the internal system does not return a valid answer, the server searches the knowledge database. For example, if the knowledge database returns the answer, "Regarding shipping status, you can check the delivery status of your product on the system," it sends that information back to the user.
[0489] Example of a prompt
[0490] 1. "Please tell me the delivery status."
[0491] 2. "I want to check the status of my order."
[0492] 3. "I want to know when the product will arrive."
[0493] The flow of the specific processing in Example 1 will be explained using Figure 11.
[0494] Step 1: Receiving the query
[0495] The user sends a query from their device. The query is natural language text, such as "Please tell me the shipping status of order number 123," and is sent to the server as a POST request in JSON format.
[0496] Specifically, the user enters "Please tell me the shipping status of order number 123" into a form in their browser and clicks the submit button. The device converts this input into JSON format and sends it to the server via an HTTP request.
[0497] Input: Query sent by the user from their device: "Please tell me the shipping status of order number 123."
[0498] Output: JSON format data delivered to the server
[0499] Step 2: Validate the query
[0500] The server validates the received query. It checks the query format and whether all required fields are present to ensure the query is properly submitted. If it is incorrect, it returns an error message.
[0501] Specifically, the server parses the query "Please tell me the shipping status of order number 123" and checks whether the format and content are appropriate. For example, it checks whether the query is empty and whether all required fields are filled in.
[0502] Input: Received query data in JSON format
[0503] Output: Verification result (valid or invalid) and error message (only if invalid)
[0504] Step 3: Sending queries to the internal system
[0505] If the query is deemed valid, the server sends the query to the internal system's search API. The internal system receives this request and searches its internal database.
[0506] Specifically, the server sends a request to the internal system's API endpoint containing the query, "Please tell me the shipping status of order number 123." The internal system then searches its database for the relevant data.
[0507] Input: Validated query "Please tell me the shipping status of order number 123"
[0508] Output: API request to internal system
[0509] Step 4: Processing responses from internal systems
[0510] The server receives responses from the internal system. If the internal system returns a valid result, it returns that result to the user. For example, if it receives the response "Order number 123 is in transit," it sends that back to the user.
[0511] Specifically, if the internal system returns a response stating "Order number 123 is in transit," the server converts this information into JSON format and sends it to the user's terminal.
[0512] Input: Response data from the internal system
[0513] Output: JSON format data to be sent back to the user
[0514] Step 5: Search the knowledge database
[0515] If the internal system fails to return a valid result, the server searches the knowledge database. The knowledge database stores identifiers and their corresponding answers in pairs. The server searches for identifiers that match the query and retrieves the corresponding answer.
[0516] Specifically, the server sends a query to the knowledge database asking "What is the shipping status of order number 123?" and searches for a matching identifier. It then retrieves the relevant response.
[0517] Input: Query for invalid results: "Please tell me the shipping status of order number 123"
[0518] Output: Answers retrieved from the knowledge database
[0519] Step 6: Providing responses to users
[0520] The server returns results obtained from the internal system or knowledge database to the user in JSON format. For example, if it receives the response, "Regarding shipping status, you can check the delivery status of your product on the system," it will send that response back to the user.
[0521] Specifically, the server generates a result stating, "Regarding the shipping status, you can check the delivery status of your product on the system," and sends it back to the user's terminal. The user's terminal receives this JSON data and displays it on the screen.
[0522] Input: Results from internal systems or knowledge databases
[0523] Output: JSON data to be sent back to the user's device.
[0524] (Application Example 1)
[0525] Next, we will explain Application Example 1. In the following explanation, the data processing device 12 will be referred to as the "server," and the smart glasses 214 will be referred to as the "terminal."
[0526] In recent years, with the diversification of content distribution services, users are required to quickly search for and obtain appropriate information from a vast amount of content. Traditional systems often had problems such as inaccurate search results for user queries or inability to quickly retrieve relevant information from a large knowledge database, resulting in a poor user experience. Furthermore, the insufficient content recommendation function based on user preferences meant that the system failed to adequately provide users with the information they were looking for.
[0527] The specific processing performed by the specific processing unit 290 of the data processing device 12 in Application Example 1 is realized by the following means.
[0528] In this invention, the server includes means for receiving queries from users, means for verifying whether the query is included, and means for sending the verified query to the search API of the internal system. This ensures the validity of the query and enables rapid retrieval of search results from the database of the internal system. The server also includes means for receiving responses from the internal system, means for searching the knowledge database if the internal system does not return valid results, and means for returning the search results to the user. This enables the server to provide appropriate answers from the knowledge database even when the internal system does not have a response. Furthermore, the server includes means for searching for the most suitable content from a content provider server based on the query, and means for providing recommended content based on the user's preferences. This improves the accuracy of the user's search results and enables the provision of content that matches the user's preferences, thereby improving the user experience.
[0529] "Means for receiving queries from users" refers to a function that allows the server to receive inquiry content (queries) sent from the user's terminal.
[0530] "Means for verifying whether a query is included" refers to a function that checks whether an incoming query is in the correct format and filters out invalid requests.
[0531] "Means for sending validated queries to the internal system's search API" refers to a function that sends queries deemed appropriate to the search API of an information system within a company and retrieves the results.
[0532] "Means for receiving responses from internal systems" refers to a function that allows a server to receive search results returned from an information system within a company.
[0533] "Means for searching the knowledge database when the internal system does not return valid results" refers to a function that searches a separately constructed knowledge database to obtain the necessary information when the response from the internal system is missing or invalid.
[0534] "Means of returning search results to the user" refers to a function that sends the search results acquired by the server to the user's terminal for display.
[0535] "Means for searching for the most suitable content from a content provider server based on a query" refers to a function that searches for relevant content from a content provider server based on the query content and obtains the most suitable results.
[0536] "Means of providing recommended content based on user preferences" refers to a function that recommends appropriate content to users based on their past viewing history and set preferences.
[0537] An "internal system" is a collection of information systems and databases managed within a company, which provides APIs for searching various types of data.
[0538] A "knowledge database" is a database that stores answers to various queries and is used as an alternative data source when the internal system fails to return valid results.
[0539] This invention relates to a system that searches internal systems and knowledge databases based on user queries and automatically provides appropriate answers. This system consists of a server, user terminals, internal systems, a knowledge database, and a content provision server.
[0540] The server receives queries sent from user terminals and verifies whether the queries are in the correct format. The verified queries are sent to the internal system's search API, and search results are retrieved from the internal system's database. If the internal system does not return valid results, the server searches the knowledge database to retrieve relevant information. Finally, the search results are returned to the user. The server also searches for appropriate content from content providers based on the query content and provides recommended content based on the user's preferences.
[0541] This system operates using the following hardware and software:
[0542] Hardware: Servers, users' smartphones or tablets, internal corporate information systems (internal systems), knowledge databases, and content delivery servers.
[0543] Software: Programs written in programming languages such as Python and JavaScript, API communication using the HTTP protocol, database search engines (e.g., Elasticsearch), and generative AI models.
[0544] For example, if a user sends a query from a smartphone application to search for "latest movies," the server performs the following processes: First, it receives the query and verifies its contents. After verification, it queries the internal system's search API based on that query. If the internal system does not return a valid result, it searches the knowledge database and retrieves relevant information. Meanwhile, it retrieves the latest movie information from the content provider server based on the user's query. Then, based on the retrieved results, it generates recommended content tailored to the user's viewing history and preferences and returns it to the user's device.
[0545] In this way, the present invention enables users to quickly and accurately obtain the information they need, while simultaneously providing optimal content based on their preferences. A specific example of a prompt statement is, "Tell me about the latest movies." This improves the quality of the user experience and makes it possible to provide a more satisfying service.
[0546] The flow of a specific process in Application Example 1 will be explained using Figure 12.
[0547] Step 1:
[0548] Users enter queries such as "latest movies" from a smartphone or tablet application and submit them.
[0549] Input: User query ("Tell me about the latest movies")
[0550] Output: Query data sent to the server
[0551] Step 2:
[0552] The server receives queries sent from the user's terminal.
[0553] Input: Query data from the user
[0554] Output: Internally processable query object
[0555] Specifically, it parses the HTTP request and extracts the query portion.
[0556] Step 3:
[0557] The server validates the data from the received query.
[0558] Input: Query object
[0559] Output: Verification result (valid or invalid), error message if invalid.
[0560] Specifically, the system checks the query format and whether required fields are present, and returns an error message to the user if any are invalid.
[0561] Step 4:
[0562] The server sends the validated query to the internal system's search API.
[0563] Input: Validated query object
[0564] Output: Response from the internal system (search results)
[0565] Specifically, the process involves making an HTTP POST request to the API endpoint of the internal system.
[0566] Step 5:
[0567] The server receives responses from internal systems and analyzes the results.
[0568] Input: Response data from the internal system
[0569] Output: Analyzed search results
[0570] In terms of specific operations, the response data is parsed and search results are extracted.
[0571] Step 6:
[0572] If the internal system does not return a valid result, the server searches the knowledge database.
[0573] Input: Query object
[0574] Output: Search results from the knowledge database
[0575] In terms of specific operations, it executes SQL queries against a knowledge database and retrieves the corresponding answers.
[0576] Step 7:
[0577] The server returns search results to the user.
[0578] Input: Final search results (obtained from an internal system or knowledge database)
[0579] Output: Search results displayed on the user's terminal
[0580] Specifically, the process involves converting the search results into JSON format and sending it back to the user's terminal as an HTTP response.
[0581] Step 8:
[0582] The server searches for the most suitable content from the content provider server based on the query content.
[0583] Input: Query object
[0584] Output: Content data from the content provider server
[0585] In terms of specific operations, the system sends a query to the content provider server's API and retrieves relevant content information.
[0586] Step 9:
[0587] The server generates recommended content based on the user's preferences.
[0588] Input: Viewing history, preference data, content data
[0589] Output: Recommended Content
[0590] Specifically, the system uses a generative AI model that references viewing history and preference data to select highly relevant content.
[0591] Step 10:
[0592] The server sends recommended content back to the user's device.
[0593] Input: Recommended content
[0594] Output: Recommended content displayed on the user's terminal
[0595] Specifically, the system formats recommended content and returns it to the user in an appropriate format.
[0596] Furthermore, an emotion engine that estimates the user's emotions may be incorporated. That is, the identification processing unit 290 may use the emotion identification model 59 to estimate the user's emotions and perform identification processing using the user's emotions.
[0597] This invention combines a system that searches internal systems and knowledge databases based on user queries and provides appropriate answers with an emotion engine that recognizes user emotions. To implement this system, a server, user terminals, an emotion engine, internal systems, and a knowledge database are used.
[0598] 1. Receiving queries
[0599] The user sends their inquiry to the server as a query from their device. The query is sent to the server as a POST request in JSON format.
[0600] 2. Query validation
[0601] The server parses the received query data and verifies whether the query is properly provided. If the query does not exist, the server returns an error message to the user. This process prevents invalid requests from being processed.
[0602] 3. Emotion recognition by an emotion engine
[0603] The server sends the query text data to the emotion engine to recognize the user's emotions. The emotion engine uses a text analysis algorithm to identify the user's emotions (e.g., joy, sadness, anger).
[0604] 4. Sending queries to internal systems
[0605] The server sends the query, along with the sentiment information identified by the sentiment engine, to the internal system's search API. The server makes a POST request to the internal system's URL, sending JSON data containing the query and sentiment information.
[0606] 5. Processing responses from internal systems
[0607] The server receives a response from the internal system. If the internal system returns a valid result, the server extracts the result in JSON format. The server then adjusts the response based on the perceived sentiment and returns it to the user in an appropriate tone and style.
[0608] 6. Searching the Knowledge Database
[0609] If the internal system fails to return a valid result, the server searches the knowledge database. The server searches the predefined knowledge database for the ID corresponding to the query.
[0610] 7. Emotion-based response adjustment
[0611] If a matching ID is found in the knowledge database, the server retrieves the corresponding response and adjusts it based on the sentiment information recognized by the sentiment engine. For example, if the user is expressing dissatisfaction, the response may include words of encouragement or apology.
[0612] 8. Providing responses to users
[0613] The server returns the refined search results or answers from the knowledge database to the user in JSON format. For example, a query like "01" might return the answer, "Regarding shipping status, you can check the delivery status of your product in the system. We apologize for the delay."
[0614] Specific example:
[0615] Suppose a user sends a query to the server saying "My delivery is delayed." The server receives this query and its sentiment engine recognizes the emotion as "dissatisfied." Next, it sends this query and sentiment information to the internal system's search API. If the internal system does not return a valid answer, the server searches the knowledge database and retrieves an answer for "My delivery is delayed." It returns the answer "You can check the delivery status of your order on the system," adding "We apologize for the delay" based on the sentiment information.
[0616] This allows users to obtain information quickly and accurately, improves the efficiency of support operations, and increases customer satisfaction.
[0617] The following describes the processing flow.
[0618] Step 1:
[0619] The user sends their inquiry to the server as a query from their device. The query is sent to the server as a POST request in JSON format. For example, consider a case where a user sends a query saying "My delivery is delayed."
[0620] Step 2:
[0621] The server accepts a POST request at the Flask application's endpoint / api / query. The server parses the received request data (in JSON format) and extracts the provided query. The extracted query is "Delivery is delayed".
[0622] Step 3:
[0623] The server verifies whether the query exists. If the query does not exist, the server returns a JSON response with status code 400 to the user, containing the error message "No query provided." If the query is determined to be valid, the server proceeds to the next step.
[0624] Step 4:
[0625] The server sends the query's text data to the sentiment engine to recognize the user's emotions. The sentiment engine uses a text analysis algorithm to identify the emotion "dissatisfaction" from the query "delivery is delayed."
[0626] Step 5:
[0627] The server sends the emotion information identified by the emotion engine, along with the query, to the internal system's search API. The server makes a POST request to a predefined internal system URL, sending JSON data containing the query "Delivery is delayed" and the emotion "Dissatisfied".
[0628] Step 6:
[0629] The server waits for a response from the internal system. If the internal system returns a valid result with status code 200, the server extracts the result in JSON format. For example, it might retrieve a search result such as "Please check the delivery status here" from the response body.
[0630] Step 7:
[0631] If the internal system fails to return a valid result, the server searches the knowledge database. The server searches the predefined knowledge database for an ID corresponding to the query. For example, it searches for ID "1001" for the query "Delivery is delayed".
[0632] Step 8:
[0633] If a matching ID is found in the knowledge database, the server retrieves the answer corresponding to that ID. For example, for ID "1001", it retrieves the answer "Regarding shipping status, you can check the delivery status of your product on the system."
[0634] Step 9:
[0635] The server adjusts the retrieved response based on the emotional information recognized by the emotion engine. If the user is expressing "dissatisfaction," comforting or supplementary information such as "Sorry for the wait" is added to the response.
[0636] Step 10:
[0637] The server returns the refined search results or answers from the knowledge database to the user in JSON format. For example, in response to the query "Delivery is delayed," the server might return the answer "Regarding the shipping status, you can check the delivery status of your product in the system. We apologize for the delay."
[0638] In this way, users can obtain information quickly and accurately, the efficiency of support operations improves, and customer satisfaction increases.
[0639] (Example 2)
[0640] Next, we will describe Example 2. In the following description, the data processing device 12 will be referred to as the "server" and the smart glasses 214 will be referred to as the "terminal".
[0641] Traditional internal systems and information retrieval systems utilizing knowledge databases simply provided relevant information in response to user queries, but were unable to generate answers that took user emotions into account. As a result, responses adapted to user feelings were lacking, and consequently, user satisfaction could not be sufficiently increased. In particular, when users were feeling dissatisfied or angry, appropriate responses to those emotions were often not provided.
[0642] The identification process performed by the identification processing unit 290 of the data processing device 12 in Example 2 is realized by the following means.
[0643] In this invention, the server includes means for receiving queries from users, means for verifying whether a query is included, means for sending the query's text data to an emotion recognition engine and recognizing the user's emotion, means for sending the verified query along with the recognized emotion information to the internal system's search API, means for receiving responses from the internal system, means for searching a knowledge database if the internal system does not return a valid result, means for adjusting the response obtained from the knowledge database based on the user's emotion information, and means for returning the adjusted search results or the response from the knowledge database to the user. This enables responses that appropriately consider the user's emotions and can increase user satisfaction.
[0644] A "user" refers to a person who uses a system to input queries and retrieve information.
[0645] A "query" refers to the content or question that a user sends to a system.
[0646] A "server" refers to a computer system that receives, validates, processes, and provides appropriate responses to queries.
[0647] "Verification" refers to the process by which a server checks whether the received query is in the correct format and contains the necessary information.
[0648] An "emotion recognition engine" refers to software that uses an algorithm to analyze text data and identify the user's emotions.
[0649] "Internal systems" refer to databases and business applications used within a company, and include systems that provide search APIs.
[0650] A "search API" refers to an application programming interface that allows an internal system to search for information in response to external queries and return the results.
[0651] "Response" refers to the content of the response that an internal system returns to a query.
[0652] A "knowledge database" refers to a database that stores predefined pairs of questions and their answers.
[0653] "Emotional information" refers to the emotional state of a user as identified by an emotion recognition engine.
[0654] "Adjustment" refers to the process of changing the format and tone of the acquired responses to suit the user's emotions.
[0655] "Search results" refer to information obtained from internal systems or knowledge databases.
[0656] "JSON format" is an abbreviation for JavaScript Object Notation, and it is a data exchange format used to represent structured data.
[0657] This invention combines a system that searches internal systems and knowledge databases based on user queries and provides appropriate answers with an emotion engine that recognizes user emotions. To implement this system, a server, user terminals, an emotion recognition engine, internal systems, and a knowledge database are used.
[0658] Specific examples of hardware and software to be used
[0659] Server: Performs tasks such as receiving, validating, and processing queries, and returning search results. Specific examples include Apache and Nginx.
[0660] User terminal: A device used for query input and displaying results. Specific examples include Windows PCs and iPhones.
[0661] Emotion recognition engine: Performs text analysis to identify the user's emotions. A specific example is the use of IBM Watson Tone Analyzer.
[0662] Internal systems: These systems integrate with databases and business applications within the company. Examples include SAP and Oracle.
[0663] Knowledge database: A database where predefined questions and answers are stored in pairs. Examples include Elasticsearch and MongoDB.
[0664] Specific operation of the system
[0665] 1. Receiving queries:
[0666] The user enters their inquiry details from their terminal and clicks the submit button. The query is sent to the server in JSON format.
[0667] Example: A user sends a query saying "My item hasn't arrived."
[0668] 2. Query validation:
[0669] The server parses the received query data and verifies whether the query is provided in the correct format. If the query is empty, an error message is returned.
[0670] 3. Emotion recognition using an emotion recognition engine:
[0671] The server sends the query text data to the emotion recognition engine. The emotion recognition engine uses a text analysis algorithm to recognize the user's emotions.
[0672] For example, the query "product not arrived" is associated with emotions such as "anger" and "dissatisfaction."
[0673] 4. Sending queries to internal systems:
[0674] The server sends the query, along with the recognized sentiment information, to the internal system's search API. It also makes a POST request to the specified URL in the internal system, sending JSON data containing the query and sentiment information.
[0675] Example: Send the query "product not received" and the emotion information "anger".
[0676] 5. Handling responses from internal systems:
[0677] The server receives responses from internal systems and adjusts them based on the perceived sentiment. For example, it might adjust a response like "Your item is being shipped" to "We apologize for the delay. Your item is currently being shipped."
[0678] 6. Searching the knowledge database:
[0679] If the internal system fails to return a valid result, the server searches the knowledge database. It searches for the ID corresponding to the query and retrieves the appropriate answer.
[0680] Example: For the query "My product hasn't arrived," retrieve relevant FAQs from the knowledge database.
[0681] 7. Emotion-based response adjustment:
[0682] Adjust responses based on user sentiment information. For example, if a user is dissatisfied, add "Sorry for the wait" to the standard response.
[0683] 8. Providing responses to users:
[0684] The system returns the adjusted search results or answers from the knowledge database to the user in JSON format.
[0685] Example: In response to the query "Delivery is delayed," the system returns the answer, "We apologize for the delay. Your item is currently being delivered."
[0686] Examples of prompt statements:
[0687] "Query: Delivery is delayed. Sentiment: Dissatisfied. Generate an appropriate response."
[0688] "A user has inquired about a delayed delivery. Their emotion is one of dissatisfaction. Please generate an appropriate response for this situation."
[0689] This allows us to provide appropriate, emotion-conscious answers to user queries, thereby increasing user satisfaction.
[0690] The flow of the specific processing in Example 2 will be explained using Figure 13.
[0691] Step 1: Receiving the query
[0692] The user enters a query (inquiry content) from their terminal and clicks the submit button. For example, they might enter "My product hasn't arrived."
[0693] Input: The query entered by the user into the terminal.
[0694] Processing: The user's terminal converts the query into JSON format and sends an HTTP POST request to the server.
[0695] Output: The server receives the query in JSON format.
[0696] Step 2: Validate the query
[0697] The server parses the received query data and verifies that the query is not empty and that it meets the required format.
[0698] Input: Query data in JSON format.
[0699] Processing: Performs syntax checks on the query and verifies the presence of required fields.
[0700] Output: If the query is valid, proceed to the next processing step. If the query is invalid, the server generates an error message and returns it to the user.
[0701] Step 3: Emotion recognition by emotion recognition engine
[0702] The server sends valid query text data to an emotion recognition engine (e.g., IBM Watson Tone Analyzer) to analyze the user's emotions.
[0703] Input: Query text data.
[0704] Processing: The emotion recognition engine uses a text analysis algorithm to identify the user's emotions (e.g., joy, sadness, anger, etc.).
[0705] Output: Emotion recognition result (e.g., "anger").
[0706] Step 4: Sending queries to the internal system
[0707] The server combines the query and sentiment recognition results and sends them to the company's internal system's search API.
[0708] Input: Query text data and sentiment recognition results.
[0709] Processing: The server combines the query and sentiment recognition results into JSON format and sends an HTTP POST request to the company's internal system's search API.
[0710] Output: The server receives a response from the internal system.
[0711] Step 5: Processing responses from internal systems
[0712] The server receives responses from internal systems and adjusts those responses based on emotions.
[0713] Input: Response data from the company's internal system.
[0714] Processing: The server analyzes the response data and adjusts the tone appropriately based on the sentiment recognition results. For example, it might adjust it to say, "We apologize for the delay. Your item is currently being shipped."
[0715] Output: Adjusted response data.
[0716] Step 6: Search the knowledge database
[0717] If the internal system fails to return a valid result, the server searches the knowledge database.
[0718] Input: Query text data.
[0719] Processing: The server searches the knowledge database for IDs that match the query and retrieves the relevant information.
[0720] Output: Answer data retrieved from the knowledge database.
[0721] Step 7: Emotion-Based Response Adjustment
[0722] The server adjusts the answers retrieved from the knowledge database based on the user's sentiment information.
[0723] Input: Response data and sentiment recognition results obtained from a knowledge database.
[0724] Processing: The server analyzes the response data and adjusts the tone and style to suit the emotion. For example, it might add "Sorry to keep you waiting."
[0725] Output: Adjusted response data.
[0726] Step 8: Providing responses to users
[0727] The server returns a refined search result or an answer from the knowledge database to the user.
[0728] Input: Adjusted response data.
[0729] Processing: The server converts the response data into JSON format and returns an HTTP response to the user's terminal.
[0730] Output: The response data displayed to the user on their device.
[0731] The above outlines the specific processing steps of this system's program. This allows for the provision of appropriate responses that take user emotions into consideration, thereby increasing user satisfaction.
[0732] (Application Example 2)
[0733] Next, we will explain application example 2. In the following explanation, the data processing device 12 will be referred to as the "server," and the smart glasses 214 will be referred to as the "terminal."
[0734] Modern customer support in brick-and-mortar stores requires prompt and accurate responses to inquiries from diverse users. However, traditional methods often fail to consider user emotions, resulting in inadequate handling of dissatisfied customers. This leads to a decline in customer satisfaction. This invention aims to improve customer satisfaction and streamline support operations by recognizing user emotions and providing appropriately adjusted responses.
[0735] In Application Example 2, the specific processing performed by the specific processing unit 290 of the data processing device 12 is realized by the following means. In this invention, the server includes means for receiving queries from users, means for verifying whether a query is included, means for using an emotion engine to recognize the user's emotions from the text data of the query, means for sending the verified query and emotion information to the search API of the internal system, means for receiving a response from the internal system, means for searching the knowledge database if the internal system does not return a valid result, and means for adjusting the results from the knowledge database or the internal system based on the recognized emotion information and returning them to the user. This makes it possible to quickly and accurately provide an adjusted response based on the user's emotions.
[0736] "Means of receiving queries from users" refers to a function that allows the system to receive inquiries in text data format sent by users.
[0737] "Means of verifying whether a query is included" refers to the process of checking whether the received text data is in the correct query format.
[0738] "Using an emotion engine to recognize user emotions from query text data" refers to the process of using natural language processing algorithms to identify a user's emotional state (e.g., joy, frustration, sadness, etc.) from text.
[0739] "Means for sending verified queries and sentiment information to the search API of internal systems" refers to a function that sends verified queries and recognized sentiment data as search requests to internal databases and information systems.
[0740] "Means for receiving responses from internal systems" refers to functions that receive answers and information provided by internal systems and are used for further processing.
[0741] "A means of searching the knowledge database when the internal system does not return a valid result" refers to the process of searching for relevant information by referring to the knowledge database, which is an alternative source of information, when a valid answer cannot be obtained from the internal system.
[0742] "A means of adjusting the results of a knowledge database or internal system based on recognized emotional information and returning them to the user" refers to a function that automatically generates and returns a response with adjusted wording and tone according to the user's emotional state.
[0743] This invention provides a system that combines sentiment recognition with user queries to provide appropriate answers. This system utilizes a server, user terminals, a sentiment engine, an internal system, and a knowledge database.
[0744] To implement this invention, the following flow is required:
[0745] A query is sent from the user's terminal to the server, which then receives it. The received query is sent back to the server as a POST request in JSON format. The server verifies whether the query is included and can also return an error message to prevent invalid requests from being processed.
[0746] Next, the server sends the query text data to the emotion engine to recognize the user's emotions. The emotion engine uses natural language processing algorithms to identify the user's emotions (e.g., joy, sadness, anger). For emotion recognition technology, emotion analysis APIs such as IBM Watson or Azure Text Analytics can be used.
[0747] The recognized sentiment information and queries are sent to the internal system's search API. The server makes a POST request to the internal system's URL, sending JSON data containing the queries and sentiment information. When a response is received from the internal system and a valid result is returned, the server extracts the result in JSON format.
[0748] If the internal system fails to return a valid result, the server searches the knowledge database. The knowledge database consists of ID-response pairs, and the server retrieves the response by searching for the corresponding ID. The retrieved response is then adjusted based on the sentiment information recognized by the sentiment engine. For example, if the user is expressing dissatisfaction, the response will include words of encouragement and apology.
[0749] Ultimately, the server provides the user with a refined response in JSON format. For example, if a user sends the query "I want to know how many more days until my item arrives," the sentiment recognition engine recognizes the emotion "dissatisfaction" and generates a response such as "Your item will arrive within 3 days. We apologize for the delay."
[0750] As an example of a prompt, let's assume the user typed "I want to change my payment method." We can generate code that returns an appropriate response considering this query and the user's sentiment. For example, set the prompt as follows:
[0751] Example of a prompt:
[0752] "Let's assume the user enters 'I want to change my payment method.' Generate code that returns an appropriate response, taking this query and the user's sentiment into consideration."
[0753] As described above, the present invention can realize a system that provides the optimal answer while taking into account the user's emotions. This system makes it possible to increase user satisfaction and improve the efficiency of customer support operations.
[0754] The flow of a specific process in Application Example 2 will be explained using Figure 14.
[0755] Step 1:
[0756] The server receives queries from user terminals. Users input text-based queries using devices such as smartphones and PCs, and these queries are sent to the server as JSON-formatted POST requests. The input is the user's text query, and the output is the received query data.
[0757] Step 2:
[0758] The server verifies whether the received query is valid. This verification process checks whether the query data is empty and in the correct format, and if invalid, it generates an error message and returns it to the user terminal. The input is the received query data, and the output is the verification result or error message.
[0759] Step 3:
[0760] The server sends the received query to the sentiment engine to recognize the user's emotions. At this stage, natural language processing algorithms are used to identify the user's emotions (e.g., joy, frustration, anger) from the text. Specific sentiment engines that can be used include IBM Watson and Azure Text Analytics. The input is the query text, and the output is the recognized emotion information.
[0761] Step 4:
[0762] The server sends the validated query and sentiment information to the internal system's search API. At this time, a JSON data containing the query and sentiment information is POSTed to the internal system's API. The input is the validated query and sentiment information, and the output is the search results from the internal system.
[0763] Step 5:
[0764] The server receives a response from the internal system. If the internal system returns valid information, that data is received by the server and further processed. The input is the response from the internal system, and the output is a flag indicating valid search results or invalid results.
[0765] Step 6:
[0766] The server searches the knowledge database if the internal system fails to return a valid result. At this stage, it searches for the corresponding ID in the predefined knowledge database and retrieves the appropriate answer. The input is a flag for invalid search results, and the output is the answer from the knowledge database.
[0767] Step 7:
[0768] The server adjusts the results from the knowledge database or internal system based on the recognized sentiment information. For example, if the sentiment is "dissatisfied," the system adds encouraging or apologetic phrases to the response. The input is the results and sentiment information from the knowledge database or internal system, and the output is the adjusted response.
[0769] Step 8:
[0770] The server returns the adjusted response to the user. The adjusted response data is sent to the user's terminal in JSON format, allowing the user to verify the information. The input is the adjusted response, and the output is the information provided to the user.
[0771] In this way, it becomes possible to provide prompt and emotionally sensitive responses to user inquiries.
[0772] The specific processing unit 290 transmits the result of the specific processing to the smart glasses 214. In the smart glasses 214, the control unit 46A causes the speaker 240 to output the result of the specific processing. The microphone 238 acquires audio indicating user input for the result of the specific processing. The control unit 46A transmits the audio data indicating user input acquired by the microphone 238 to the data processing unit 12. In the data processing unit 12, the specific processing unit 290 acquires the audio data.
[0773] Data generation model 58 is a type of so-called generative AI (Artificial Intelligence). One example of data generation model 58 is ChatGPT (Internet search<URL: https: / / openai.com / blog / chatgpt> ), Gemini (Internet search) <url: https: gemini.google.com ?hl="ja">Examples of generative AI include the following. The data generation model 58 is obtained by performing deep learning on a neural network. The data generation model 58 is input with prompts containing instructions, and with inference data such as audio data representing speech, text data representing text, and image data representing images. The data generation model 58 infers from the input inference data according to the instructions indicated by the prompts, and outputs the inference results in data formats such as audio data and text data. Here, inference refers to, for example, analysis, classification, prediction, and / or summarization.
[0774] In the above embodiment, an example was given in which specific processing is performed by the data processing device 12, but the technology of this disclosure is not limited thereto, and the specific processing may also be performed by the smart glasses 214.
[0775] [Third Embodiment]
[0776] Figure 5 shows an example of the configuration of the data processing system 310 according to the third embodiment.
[0777] As shown in Figure 5, the data processing system 310 includes a data processing device 12 and a headset terminal 314. An example of the data processing device 12 is a server.
[0778] The data processing device 12 comprises a computer 22, a database 24, and a communication interface 26. The computer 22 is an example of a "computer" related to the technology of this disclosure. The computer 22 comprises a processor 28, RAM 30, and storage 32. The processor 28, RAM 30, and storage 32 are connected to a bus 34. The database 24 and the communication interface 26 are also connected to the bus 34. The communication interface 26 is connected to a network 54. An example of the network 54 is a WAN (Wide Area Network) and / or a LAN (Local Area Network).
[0779] The headset terminal 314 includes a computer 36, a microphone 238, a speaker 240, a camera 42, a communication interface 44, and a display 343. The computer 36 includes a processor 46, RAM 48, and storage 50. The processor 46, RAM 48, and storage 50 are connected to a bus 52. The microphone 238, speaker 240, camera 42, and display 343 are also connected to the bus 52.
[0780] The microphone 238 receives voice signals from the user 20 and receives instructions from the user 20. The microphone 238 captures the voice signals from the user 20, converts the captured voice into audio data, and outputs it to the processor 46. The speaker 240 outputs audio according to the instructions from the processor 46.
[0781] Camera 42 is a small digital camera equipped with an optical system including a lens, aperture, and shutter, and an image sensor such as a CMOS (Complementary Metal-Oxide-Semiconductor) image sensor or a CCD (Charge Coupled Device) image sensor, and captures images of the area around the user 20 (for example, an imaging range defined by a field of view equivalent to the width of a typical healthy person's field of vision).
[0782] Communication interface 44 is connected to network 54. Communication interfaces 44 and 26 are responsible for the exchange of various information between processor 46 and processor 28 via network 54. The exchange of various information between processor 46 and processor 28 using communication interfaces 44 and 26 is performed in a secure manner.
[0783] Figure 6 shows an example of the main functions of the data processing device 12 and the headset terminal 314. As shown in Figure 6, the data processing device 12 performs specific processing using the processor 28. The storage 32 stores the specific processing program 56.
[0784] The specific processing program 56 is an example of a "program" relating to the technology of this disclosure. The processor 28 reads the specific processing program 56 from the storage 32 and executes the read specific processing program 56 on the RAM 30. The specific processing is realized by the processor 28 operating as a specific processing unit 290 in accordance with the specific processing program 56 executed on the RAM 30.
[0785] The storage 32 stores the data generation model 58 and the emotion identification model 59. The data generation model 58 and the emotion identification model 59 are used by the identification processing unit 290.
[0786] In the headset terminal 314, the processor 46 performs the reception output processing. The storage 50 stores the reception output program 60. The processor 46 reads the reception output program 60 from the storage 50 and executes the read reception output program 60 on the RAM 48. The reception output processing is realized by the processor 46 operating as a control unit 46A according to the reception output program 60 executed on the RAM 48.
[0787] Next, the specific processing performed by the specific processing unit 290 of the data processing device 12 will be described. In the following description, the data processing device 12 will be referred to as the "server" and the headset terminal 314 will be referred to as the "terminal".
[0788] This invention relates to a system that searches internal systems and a knowledge database based on user queries and automatically provides appropriate answers. To implement this system, a server, user terminals, internal systems, and a knowledge database are required.
[0789] 1. Receiving queries
[0790] The user sends their inquiry to the server as a query from their device. The query is sent to the server as a POST request in JSON format.
[0791] 2. Query validation
[0792] The server parses the received query data and verifies whether the query is properly provided. If the query does not exist, the server returns an error message to the user. This process prevents invalid requests from being processed.
[0793] 3. Sending queries to internal systems
[0794] If the query is deemed valid, the server sends the query to the internal system's search API. The internal system searches its internal database based on the retrieved query and returns the relevant results.
[0795] 4. Processing responses from internal systems
[0796] The server receives responses from the internal system. If the internal system returns a valid result, the server returns that result to the user. For example, in response to an inquiry about delivery status, the server might return the response, "Please check the delivery status here."
[0797] 5. Searching the Knowledge Database
[0798] If the internal system fails to return a valid result, the server searches the knowledge database. The knowledge database holds pairs of IDs corresponding to queries and their corresponding answers. The server searches for an ID that matches the query and retrieves the corresponding answer.
[0799] 6. Providing responses to users
[0800] The server returns results from internal systems or knowledge databases to the user in JSON format. For example, a query like "01" might return the response, "Regarding shipping status, you can check the delivery status of your products on the system."
[0801] Specific example:
[0802] Suppose a user sends the query "01" to the server. The server receives this query and verifies that it is valid. Next, it sends the query to the internal system's search API. If the internal system does not return a valid answer, the server searches the knowledge database. If the query "01" finds the result "Regarding shipping status, you can check the delivery status of your products on the system," the server returns that result to the user.
[0803] This invention enables users to quickly and accurately obtain the information they need. Furthermore, it improves the efficiency of support operations and contributes to increased customer satisfaction.
[0804] The following describes the processing flow.
[0805] Step 1:
[0806] The user sends their inquiry to the server as a query from their device. The query is sent to the server as a POST request in JSON format.
[0807] Step 2:
[0808] The server accepts POST requests at the Flask application's endpoint / api / query. The server parses the received request data (in JSON format) and extracts the provided query.
[0809] Step 3:
[0810] The server verifies whether the query exists. If the query does not exist, the server returns a JSON response with status code 400 to the user, containing the error message "No query provided."
[0811] Step 4:
[0812] If a query exists, the server sends it to the internal system's search API. This is done by making a POST request to a predefined URL of the internal system. The server sends JSON data containing the query.
[0813] Step 5:
[0814] The server waits for a response from the internal system. If the internal system returns a valid result with status code 200, the server extracts the result in JSON format. Specifically, it retrieves the search results (e.g., "Please check the delivery status here") from the response body.
[0815] Step 6:
[0816] If the internal system returns a valid result, the server returns that result to the user in JSON format. The response is returned as JSON data containing the result, along with the key "response".
[0817] Step 7:
[0818] If the internal system fails to return a valid result, the server searches the knowledge database. The server retrieves the ID corresponding to the query from the predefined knowledge database.
[0819] Step 8:
[0820] If a matching ID is found in the knowledge database, the server retrieves the answer corresponding to that ID. For example, for a query like "01", the server retrieves the answer "Regarding shipping status, you can check the delivery status of your products on the system."
[0821] Step 9:
[0822] The server returns the results from the knowledge database to the user in JSON format. The response is returned as JSON data containing the answer, along with the key "response".
[0823] Step 10:
[0824] If the server cannot obtain valid results from either the internal system or the knowledge database, it returns a JSON response to the user that includes the error message "Sorry, we couldn't find that information."
[0825] (Example 1)
[0826] Next, we will describe Example 1. In the following description, the data processing device 12 will be referred to as the "server," and the headset-type terminal 314 will be referred to as the "terminal."
[0827] For users to quickly obtain useful information, it is necessary to efficiently retrieve information from multiple systems and databases. However, with conventional systems, user queries were sometimes not processed properly, resulting in users not being able to obtain the necessary information. Furthermore, efficient query management and result return for linking multiple systems were challenges. In addition, there was a lack of means to search other databases when the internal system did not return valid results. As a result, user satisfaction decreased and the efficiency of support operations deteriorated.
[0828] The identification process performed by the identification processing unit 290 of the data processing device 12 in Example 1 is realized by the following means.
[0829] In this invention, the server includes means for receiving queries from users, means for verifying whether queries are properly provided, and means for sending queries deemed appropriate to the search API of the internal system. This enables users to quickly obtain appropriate information. Furthermore, the server includes means for receiving responses from the internal system, means for searching the knowledge database if no valid results are returned, and means for returning the search results to the user. This allows the server to obtain appropriate information from the knowledge database and provide it to the user even if the internal system does not return valid results.
[0830] A "query" is the content of an inquiry sent by a user, and it is a data format used by the system for processing.
[0831] "Verification" is the process of checking whether the query the system has received is appropriate.
[0832] "Internal systems" refer to information processing systems and databases used within a company or organization.
[0833] A "search API" is an interface that a system provides to search a database based on specific criteria.
[0834] A "knowledge database" is a database that holds answers to queries, and is where information is accumulated.
[0835] An "identifier" refers to a unique ID or code used to uniquely identify data.
[0836] A "response" is the response data that a server returns in response to a query, and includes the results of the query.
[0837] "Receiving" refers to the process by which a system receives data sent from an external source.
[0838] "Transmission" refers to the process by which a system sends data outwards.
[0839] "Searching" is the process of finding relevant data from a database or information source based on specific conditions or queries.
[0840] JSON format is a lightweight data exchange format for structuring and describing data.
[0841] This invention relates to a system that searches internal systems and knowledge databases based on user queries and automatically provides appropriate answers. To implement this system, a server, user terminals, internal systems, and a knowledge database are required.
[0842] Hardware and software to be used
[0843] Server: Built using Apache Tomcat.
[0844] User terminal: Use a common computing device including Windows PCs, Macs, and Linux systems.
[0845] Internal systems: Use Oracle Database or MySQL Database.
[0846] Knowledge database: Use PostgreSQL or MongoDB.
[0847] Explanation of the program's processing
[0848] 1. Receiving queries
[0849] The user sends a query from their device. The query is natural language text, such as "Please tell me the shipping status of order number 123," and is sent to the server as a POST request in JSON format. When the user enters the query in their browser and presses the submit button, the data is sent from their device to the server.
[0850] 2. Query validation
[0851] The server validates the received query. To ensure the query is properly provided, it checks the query's format and whether all required fields are present. For example, it checks if the query is not empty and if all required fields are filled in, and returns an error message if it is inappropriate.
[0852] 3. Sending queries to internal systems
[0853] If deemed appropriate, the server sends a query to the internal system's search API. The internal system receives the request and searches its internal database for the relevant data. For example, if the server sends the query "Please tell me the shipping status of order number 123," the internal system will search its database.
[0854] 4. Processing the response
[0855] The server receives responses from the internal system. If the internal system returns a valid result, it returns that result to the user. For example, if it receives the response "Order number 123 is in transit," it sends that back to the user.
[0856] 5. Searching the Knowledge Database
[0857] If no valid results are returned from the internal system, the server searches the knowledge database. The knowledge database stores identifiers and their corresponding answers in pairs. The server searches for identifiers that match the query and retrieves the corresponding answers.
[0858] 6. Providing responses to users
[0859] Finally, the server returns the results to the user in JSON format. For example, if the response is "Regarding shipping status, you can check the delivery status of your product on the system," it sends this back to the user. The user's device receives this JSON data and displays it on the screen.
[0860] Specific example
[0861] A user sends a query to the server asking, "What is the shipping status of order number 123?" The server receives the query and validates it. If it is deemed appropriate, it sends the query to the internal system's API endpoint. If the internal system does not return a valid answer, the server searches the knowledge database. For example, if the knowledge database returns the answer, "Regarding shipping status, you can check the delivery status of your product on the system," it sends that information back to the user.
[0862] Example of a prompt
[0863] 1. "Please tell me the delivery status."
[0864] 2. "I want to check the status of my order."
[0865] 3. "I want to know when the product will arrive."
[0866] The flow of the specific processing in Example 1 will be explained using Figure 11.
[0867] Step 1: Receiving the query
[0868] The user sends a query from their device. The query is natural language text, such as "Please tell me the shipping status of order number 123," and is sent to the server as a POST request in JSON format.
[0869] Specifically, the user enters "Please tell me the shipping status of order number 123" into a form in their browser and clicks the submit button. The device converts this input into JSON format and sends it to the server via an HTTP request.
[0870] Input: Query sent by the user from their device: "Please tell me the shipping status of order number 123."
[0871] Output: JSON format data delivered to the server
[0872] Step 2: Validate the query
[0873] The server validates the received query. It checks the query format and whether all required fields are present to ensure the query is properly submitted. If it is incorrect, it returns an error message.
[0874] Specifically, the server parses the query "Please tell me the shipping status of order number 123" and checks whether the format and content are appropriate. For example, it checks whether the query is empty and whether all required fields are filled in.
[0875] Input: Received query data in JSON format
[0876] Output: Verification result (valid or invalid) and error message (only if invalid)
[0877] Step 3: Sending queries to the internal system
[0878] If the query is deemed valid, the server sends the query to the internal system's search API. The internal system receives this request and searches its internal database.
[0879] Specifically, the server sends a request to the internal system's API endpoint containing the query, "Please tell me the shipping status of order number 123." The internal system then searches its database for the relevant data.
[0880] Input: Validated query "Please tell me the shipping status of order number 123"
[0881] Output: API request to internal system
[0882] Step 4: Processing responses from internal systems
[0883] The server receives responses from the internal system. If the internal system returns a valid result, it returns that result to the user. For example, if it receives the response "Order number 123 is in transit," it sends that back to the user.
[0884] Specifically, if the internal system returns a response stating "Order number 123 is in transit," the server converts this information into JSON format and sends it to the user's terminal.
[0885] Input: Response data from the internal system
[0886] Output: JSON format data to be sent back to the user
[0887] Step 5: Search the knowledge database
[0888] If the internal system fails to return a valid result, the server searches the knowledge database. The knowledge database stores identifiers and their corresponding answers in pairs. The server searches for identifiers that match the query and retrieves the corresponding answer.
[0889] Specifically, the server sends a query to the knowledge database asking "What is the shipping status of order number 123?" and searches for a matching identifier. It then retrieves the relevant response.
[0890] Input: Query for invalid results: "Please tell me the shipping status of order number 123"
[0891] Output: Answers retrieved from the knowledge database
[0892] Step 6: Providing responses to users
[0893] The server returns results obtained from the internal system or knowledge database to the user in JSON format. For example, if it receives the response, "Regarding shipping status, you can check the delivery status of your product on the system," it will send that response back to the user.
[0894] Specifically, the server generates a result stating, "Regarding the shipping status, you can check the delivery status of your product on the system," and sends it back to the user's terminal. The user's terminal receives this JSON data and displays it on the screen.
[0895] Input: Results from internal systems or knowledge databases
[0896] Output: JSON data to be sent back to the user's device.
[0897] (Application Example 1)
[0898] Next, we will explain Application Example 1. In the following explanation, the data processing device 12 will be referred to as the "server," and the headset-type terminal 314 will be referred to as the "terminal."
[0899] In recent years, with the diversification of content distribution services, users are required to quickly search for and obtain appropriate information from a vast amount of content. Traditional systems often had problems such as inaccurate search results for user queries or inability to quickly retrieve relevant information from a large knowledge database, resulting in a poor user experience. Furthermore, the insufficient content recommendation function based on user preferences meant that the system failed to adequately provide users with the information they were looking for.
[0900] The specific processing performed by the specific processing unit 290 of the data processing device 12 in Application Example 1 is realized by the following means.
[0901] In this invention, the server includes means for receiving queries from users, means for verifying whether the query is included, and means for sending the verified query to the search API of the internal system. This ensures the validity of the query and enables rapid retrieval of search results from the database of the internal system. The server also includes means for receiving responses from the internal system, means for searching the knowledge database if the internal system does not return valid results, and means for returning the search results to the user. This enables the server to provide appropriate answers from the knowledge database even when the internal system does not have a response. Furthermore, the server includes means for searching for the most suitable content from a content provider server based on the query, and means for providing recommended content based on the user's preferences. This improves the accuracy of the user's search results and enables the provision of content that matches the user's preferences, thereby improving the user experience.
[0902] "Means for receiving queries from users" refers to a function that allows the server to receive inquiry content (queries) sent from the user's terminal.
[0903] "Means for verifying whether a query is included" refers to a function that checks whether an incoming query is in the correct format and filters out invalid requests.
[0904] "Means for sending validated queries to the internal system's search API" refers to a function that sends queries deemed appropriate to the search API of an information system within a company and retrieves the results.
[0905] "Means for receiving responses from internal systems" refers to a function that allows a server to receive search results returned from an information system within a company.
[0906] "Means for searching the knowledge database when the internal system does not return valid results" refers to a function that searches a separately constructed knowledge database to obtain the necessary information when the response from the internal system is missing or invalid.
[0907] "Means of returning search results to the user" refers to a function that sends the search results acquired by the server to the user's terminal for display.
[0908] "Means for searching for the most suitable content from a content provider server based on a query" refers to a function that searches for relevant content from a content provider server based on the query content and obtains the most suitable results.
[0909] "Means of providing recommended content based on user preferences" refers to a function that recommends appropriate content to users based on their past viewing history and set preferences.
[0910] An "internal system" is a collection of information systems and databases managed within a company, which provides APIs for searching various types of data.
[0911] A "knowledge database" is a database that stores answers to various queries and is used as an alternative data source when the internal system fails to return valid results.
[0912] This invention relates to a system that searches internal systems and knowledge databases based on user queries and automatically provides appropriate answers. This system consists of a server, user terminals, internal systems, a knowledge database, and a content provision server.
[0913] The server receives queries sent from user terminals and verifies whether the queries are in the correct format. The verified queries are sent to the internal system's search API, and search results are retrieved from the internal system's database. If the internal system does not return valid results, the server searches the knowledge database to retrieve relevant information. Finally, the search results are returned to the user. The server also searches for appropriate content from content providers based on the query content and provides recommended content based on the user's preferences.
[0914] This system operates using the following hardware and software:
[0915] Hardware: Servers, users' smartphones or tablets, internal corporate information systems (internal systems), knowledge databases, and content delivery servers.
[0916] Software: Programs written in programming languages such as Python and JavaScript, API communication using the HTTP protocol, database search engines (e.g., Elasticsearch), and generative AI models.
[0917] For example, if a user sends a query from a smartphone application to search for "latest movies," the server performs the following processes: First, it receives the query and verifies its contents. After verification, it queries the internal system's search API based on that query. If the internal system does not return a valid result, it searches the knowledge database and retrieves relevant information. Meanwhile, it retrieves the latest movie information from the content provider server based on the user's query. Then, based on the retrieved results, it generates recommended content tailored to the user's viewing history and preferences and returns it to the user's device.
[0918] In this way, the present invention enables users to quickly and accurately obtain the information they need, while simultaneously providing optimal content based on their preferences. A specific example of a prompt statement is, "Tell me about the latest movies." This improves the quality of the user experience and makes it possible to provide a more satisfying service.
[0919] The flow of a specific process in Application Example 1 will be explained using Figure 12.
[0920] Step 1:
[0921] Users enter queries such as "latest movies" from a smartphone or tablet application and submit them.
[0922] Input: User query ("Tell me about the latest movies")
[0923] Output: Query data sent to the server
[0924] Step 2:
[0925] The server receives queries sent from the user's terminal.
[0926] Input: Query data from the user
[0927] Output: Internally processable query object
[0928] Specifically, it parses the HTTP request and extracts the query portion.
[0929] Step 3:
[0930] The server validates the data from the received query.
[0931] Input: Query object
[0932] Output: Verification result (valid or invalid), error message if invalid.
[0933] Specifically, the system checks the query format and whether required fields are present, and returns an error message to the user if any are invalid.
[0934] Step 4:
[0935] The server sends the validated query to the internal system's search API.
[0936] Input: Validated query object
[0937] Output: Response from the internal system (search results)
[0938] Specifically, the process involves making an HTTP POST request to the API endpoint of the internal system.
[0939] Step 5:
[0940] The server receives responses from internal systems and analyzes the results.
[0941] Input: Response data from the internal system
[0942] Output: Analyzed search results
[0943] In terms of specific operations, the response data is parsed and search results are extracted.
[0944] Step 6:
[0945] If the internal system does not return a valid result, the server searches the knowledge database.
[0946] Input: Query object
[0947] Output: Search results from the knowledge database
[0948] In terms of specific operations, it executes SQL queries against a knowledge database and retrieves the corresponding answers.
[0949] Step 7:
[0950] The server returns search results to the user.
[0951] Input: Final search results (obtained from an internal system or knowledge database)
[0952] Output: Search results displayed on the user's terminal
[0953] Specifically, the process involves converting the search results into JSON format and sending it back to the user's terminal as an HTTP response.
[0954] Step 8:
[0955] The server searches for the most suitable content from the content provider server based on the query content.
[0956] Input: Query object
[0957] Output: Content data from the content provider server
[0958] In terms of specific operations, the system sends a query to the content provider server's API and retrieves relevant content information.
[0959] Step 9:
[0960] The server generates recommended content based on the user's preferences.
[0961] Input: Viewing history, preference data, content data
[0962] Output: Recommended Content
[0963] Specifically, the system uses a generative AI model that references viewing history and preference data to select highly relevant content.
[0964] Step 10:
[0965] The server sends recommended content back to the user's device.
[0966] Input: Recommended content
[0967] Output: Recommended content displayed on the user's terminal
[0968] Specifically, the system formats recommended content and returns it to the user in an appropriate format.
[0969] Furthermore, an emotion engine that estimates the user's emotions may be incorporated. That is, the identification processing unit 290 may use the emotion identification model 59 to estimate the user's emotions and perform identification processing using the user's emotions.
[0970] This invention combines a system that searches internal systems and knowledge databases based on user queries and provides appropriate answers with an emotion engine that recognizes user emotions. To implement this system, a server, user terminals, an emotion engine, internal systems, and a knowledge database are used.
[0971] 1. Receiving queries
[0972] The user sends their inquiry to the server as a query from their device. The query is sent to the server as a POST request in JSON format.
[0973] 2. Query validation
[0974] The server parses the received query data and verifies whether the query is properly provided. If the query does not exist, the server returns an error message to the user. This process prevents invalid requests from being processed.
[0975] 3. Emotion recognition by an emotion engine
[0976] The server sends the query text data to the emotion engine to recognize the user's emotions. The emotion engine uses a text analysis algorithm to identify the user's emotions (e.g., joy, sadness, anger).
[0977] 4. Sending queries to internal systems
[0978] The server sends the query, along with the sentiment information identified by the sentiment engine, to the internal system's search API. The server makes a POST request to the internal system's URL, sending JSON data containing the query and sentiment information.
[0979] 5. Processing responses from internal systems
[0980] The server receives a response from the internal system. If the internal system returns a valid result, the server extracts the result in JSON format. The server then adjusts the response based on the perceived sentiment and returns it to the user in an appropriate tone and style.
[0981] 6. Searching the Knowledge Database
[0982] If the internal system fails to return a valid result, the server searches the knowledge database. The server searches the predefined knowledge database for the ID corresponding to the query.
[0983] 7. Emotion-based response adjustment
[0984] If a matching ID is found in the knowledge database, the server retrieves the corresponding response and adjusts it based on the sentiment information recognized by the sentiment engine. For example, if the user is expressing dissatisfaction, the response may include words of encouragement or apology.
[0985] 8. Providing responses to users
[0986] The server returns the refined search results or answers from the knowledge database to the user in JSON format. For example, a query like "01" might return the answer, "Regarding shipping status, you can check the delivery status of your product in the system. We apologize for the delay."
[0987] Specific example:
[0988] Suppose a user sends a query to the server saying "My delivery is delayed." The server receives this query and its sentiment engine recognizes the emotion as "dissatisfied." Next, it sends this query and sentiment information to the internal system's search API. If the internal system does not return a valid answer, the server searches the knowledge database and retrieves an answer for "My delivery is delayed." It returns the answer "You can check the delivery status of your order on the system," adding "We apologize for the delay" based on the sentiment information.
[0989] This allows users to obtain information quickly and accurately, improves the efficiency of support operations, and increases customer satisfaction.
[0990] The following describes the processing flow.
[0991] Step 1:
[0992] The user sends their inquiry to the server as a query from their device. The query is sent to the server as a POST request in JSON format. For example, consider a case where a user sends a query saying "My delivery is delayed."
[0993] Step 2:
[0994] The server accepts a POST request at the Flask application's endpoint / api / query. The server parses the received request data (in JSON format) and extracts the provided query. The extracted query is "Delivery is delayed".
[0995] Step 3:
[0996] The server verifies whether the query exists. If the query does not exist, the server returns a JSON response with status code 400 to the user, containing the error message "No query provided." If the query is determined to be valid, the server proceeds to the next step.
[0997] Step 4:
[0998] The server sends the query's text data to the sentiment engine to recognize the user's emotions. The sentiment engine uses a text analysis algorithm to identify the emotion "dissatisfaction" from the query "delivery is delayed."
[0999] Step 5:
[1000] The server sends the emotion information identified by the emotion engine, along with the query, to the internal system's search API. The server makes a POST request to a predefined internal system URL, sending JSON data containing the query "Delivery is delayed" and the emotion "Dissatisfied".
[1001] Step 6:
[1002] The server waits for a response from the internal system. If the internal system returns a valid result with status code 200, the server extracts the result in JSON format. For example, it might retrieve a search result such as "Please check the delivery status here" from the response body.
[1003] Step 7:
[1004] If the internal system fails to return a valid result, the server searches the knowledge database. The server searches the predefined knowledge database for an ID corresponding to the query. For example, it searches for ID "1001" for the query "Delivery is delayed".
[1005] Step 8:
[1006] If a matching ID is found in the knowledge database, the server retrieves the answer corresponding to that ID. For example, for ID "1001", it retrieves the answer "Regarding shipping status, you can check the delivery status of your product on the system."
[1007] Step 9:
[1008] The server adjusts the retrieved response based on the emotional information recognized by the emotion engine. If the user is expressing "dissatisfaction," comforting or supplementary information such as "Sorry for the wait" is added to the response.
[1009] Step 10:
[1010] The server returns the refined search results or answers from the knowledge database to the user in JSON format. For example, in response to the query "Delivery is delayed," the server might return the answer "Regarding the shipping status, you can check the delivery status of your product in the system. We apologize for the delay."
[1011] In this way, users can obtain information quickly and accurately, the efficiency of support operations improves, and customer satisfaction increases.
[1012] (Example 2)
[1013] Next, we will describe Example 2. In the following description, the data processing device 12 will be referred to as the "server," and the headset-type terminal 314 will be referred to as the "terminal."
[1014] Traditional internal systems and information retrieval systems utilizing knowledge databases simply provided relevant information in response to user queries, but were unable to generate answers that took user emotions into account. As a result, responses adapted to user feelings were lacking, and consequently, user satisfaction could not be sufficiently increased. In particular, when users were feeling dissatisfied or angry, appropriate responses to those emotions were often not provided.
[1015] The identification process performed by the identification processing unit 290 of the data processing device 12 in Example 2 is realized by the following means.
[1016] In this invention, the server includes means for receiving queries from users, means for verifying whether a query is included, means for sending the query's text data to an emotion recognition engine and recognizing the user's emotion, means for sending the verified query along with the recognized emotion information to the internal system's search API, means for receiving responses from the internal system, means for searching a knowledge database if the internal system does not return a valid result, means for adjusting the response obtained from the knowledge database based on the user's emotion information, and means for returning the adjusted search results or the response from the knowledge database to the user. This enables responses that appropriately consider the user's emotions and can increase user satisfaction.
[1017] A "user" refers to a person who uses a system to input queries and retrieve information.
[1018] A "query" refers to the content or question that a user sends to a system.
[1019] A "server" refers to a computer system that receives, validates, processes, and provides appropriate responses to queries.
[1020] "Verification" refers to the process by which a server checks whether the received query is in the correct format and contains the necessary information.
[1021] An "emotion recognition engine" refers to software that uses an algorithm to analyze text data and identify the user's emotions.
[1022] "Internal systems" refer to databases and business applications used within a company, and include systems that provide search APIs.
[1023] A "search API" refers to an application programming interface that allows an internal system to search for information in response to external queries and return the results.
[1024] "Response" refers to the content of the response that an internal system returns to a query.
[1025] A "knowledge database" refers to a database that stores predefined pairs of questions and their answers.
[1026] "Emotional information" refers to the emotional state of a user as identified by an emotion recognition engine.
[1027] "Adjustment" refers to the process of changing the format and tone of the acquired responses to suit the user's emotions.
[1028] "Search results" refer to information obtained from internal systems or knowledge databases.
[1029] "JSON format" is an abbreviation for JavaScript Object Notation, and it is a data exchange format used to represent structured data.
[1030] This invention combines a system that searches internal systems and knowledge databases based on user queries and provides appropriate answers with an emotion engine that recognizes user emotions. To implement this system, a server, user terminals, an emotion recognition engine, internal systems, and a knowledge database are used.
[1031] Specific examples of hardware and software to be used
[1032] Server: Performs tasks such as receiving, validating, and processing queries, and returning search results. Specific examples include Apache and Nginx.
[1033] User terminal: A device used for query input and displaying results. Specific examples include Windows PCs and iPhones.
[1034] Emotion recognition engine: Performs text analysis to identify the user's emotions. A specific example is the use of IBM Watson Tone Analyzer.
[1035] Internal systems: These systems integrate with databases and business applications within the company. Examples include SAP and Oracle.
[1036] Knowledge database: A database where predefined questions and answers are stored in pairs. Examples include Elasticsearch and MongoDB.
[1037] Specific operation of the system
[1038] 1. Receiving queries:
[1039] The user enters their inquiry details from their terminal and clicks the submit button. The query is sent to the server in JSON format.
[1040] Example: A user sends a query saying "My item hasn't arrived."
[1041] 2. Query validation:
[1042] The server parses the received query data and verifies whether the query is provided in the correct format. If the query is empty, an error message is returned.
[1043] 3. Emotion recognition using an emotion recognition engine:
[1044] The server sends the query text data to the emotion recognition engine. The emotion recognition engine uses a text analysis algorithm to recognize the user's emotions.
[1045] For example, the query "product not arrived" is associated with emotions such as "anger" and "dissatisfaction."
[1046] 4. Sending queries to internal systems:
[1047] The server sends the query, along with the recognized sentiment information, to the internal system's search API. It also makes a POST request to the specified URL in the internal system, sending JSON data containing the query and sentiment information.
[1048] Example: Send the query "product not received" and the emotion information "anger".
[1049] 5. Handling responses from internal systems:
[1050] The server receives responses from internal systems and adjusts them based on the perceived sentiment. For example, it might adjust a response like "Your item is being shipped" to "We apologize for the delay. Your item is currently being shipped."
[1051] 6. Searching the knowledge database:
[1052] If the internal system fails to return a valid result, the server searches the knowledge database. It searches for the ID corresponding to the query and retrieves the appropriate answer.
[1053] Example: For the query "My product hasn't arrived," retrieve relevant FAQs from the knowledge database.
[1054] 7. Emotion-based response adjustment:
[1055] Adjust responses based on user sentiment information. For example, if a user is dissatisfied, add "Sorry for the wait" to the standard response.
[1056] 8. Providing responses to users:
[1057] The system returns the adjusted search results or answers from the knowledge database to the user in JSON format.
[1058] Example: In response to the query "Delivery is delayed," the system returns the answer, "We apologize for the delay. Your item is currently being delivered."
[1059] Examples of prompt statements:
[1060] "Query: Delivery is delayed. Sentiment: Dissatisfied. Generate an appropriate response."
[1061] "A user has inquired about a delayed delivery. Their emotion is one of dissatisfaction. Please generate an appropriate response for this situation."
[1062] This allows us to provide appropriate, emotion-conscious answers to user queries, thereby increasing user satisfaction.
[1063] The flow of the specific processing in Example 2 will be explained using Figure 13.
[1064] Step 1: Receiving the query
[1065] The user enters a query (inquiry content) from their terminal and clicks the submit button. For example, they might enter "My product hasn't arrived."
[1066] Input: The query entered by the user into the terminal.
[1067] Processing: The user's terminal converts the query into JSON format and sends an HTTP POST request to the server.
[1068] Output: The server receives the query in JSON format.
[1069] Step 2: Validate the query
[1070] The server parses the received query data and verifies that the query is not empty and that it meets the required format.
[1071] Input: Query data in JSON format.
[1072] Processing: Performs syntax checks on the query and verifies the presence of required fields.
[1073] Output: If the query is valid, proceed to the next processing step. If the query is invalid, the server generates an error message and returns it to the user.
[1074] Step 3: Emotion recognition by emotion recognition engine
[1075] The server sends valid query text data to an emotion recognition engine (e.g., IBM Watson Tone Analyzer) to analyze the user's emotions.
[1076] Input: Query text data.
[1077] Processing: The emotion recognition engine uses a text analysis algorithm to identify the user's emotions (e.g., joy, sadness, anger, etc.).
[1078] Output: Emotion recognition result (e.g., "anger").
[1079] Step 4: Sending queries to the internal system
[1080] The server combines the query and sentiment recognition results and sends them to the company's internal system's search API.
[1081] Input: Query text data and sentiment recognition results.
[1082] Processing: The server combines the query and sentiment recognition results into JSON format and sends an HTTP POST request to the company's internal system's search API.
[1083] Output: The server receives a response from the internal system.
[1084] Step 5: Processing responses from internal systems
[1085] The server receives responses from internal systems and adjusts those responses based on emotions.
[1086] Input: Response data from the company's internal system.
[1087] Processing: The server analyzes the response data and adjusts the tone appropriately based on the sentiment recognition results. For example, it might adjust it to say, "We apologize for the delay. Your item is currently being shipped."
[1088] Output: Adjusted response data.
[1089] Step 6: Search the knowledge database
[1090] If the internal system fails to return a valid result, the server searches the knowledge database.
[1091] Input: Query text data.
[1092] Processing: The server searches the knowledge database for IDs that match the query and retrieves the relevant information.
[1093] Output: Answer data retrieved from the knowledge database.
[1094] Step 7: Emotion-Based Response Adjustment
[1095] The server adjusts the answers retrieved from the knowledge database based on the user's sentiment information.
[1096] Input: Response data and sentiment recognition results obtained from a knowledge database.
[1097] Processing: The server analyzes the response data and adjusts the tone and style to suit the emotion. For example, it might add "Sorry to keep you waiting."
[1098] Output: Adjusted response data.
[1099] Step 8: Providing responses to users
[1100] The server returns a refined search result or an answer from the knowledge database to the user.
[1101] Input: Adjusted response data.
[1102] Processing: The server converts the response data into JSON format and returns an HTTP response to the user's terminal.
[1103] Output: The response data displayed to the user on their device.
[1104] The above outlines the specific processing steps of this system's program. This allows for the provision of appropriate responses that take user emotions into consideration, thereby increasing user satisfaction.
[1105] (Application Example 2)
[1106] Next, we will explain application example 2. In the following explanation, the data processing device 12 will be referred to as the "server," and the headset-type terminal 314 will be referred to as the "terminal."
[1107] Modern customer support in brick-and-mortar stores requires prompt and accurate responses to inquiries from diverse users. However, traditional methods often fail to consider user emotions, resulting in inadequate handling of dissatisfied customers. This leads to a decline in customer satisfaction. This invention aims to improve customer satisfaction and streamline support operations by recognizing user emotions and providing appropriately adjusted responses.
[1108] In Application Example 2, the specific processing performed by the specific processing unit 290 of the data processing device 12 is realized by the following means. In this invention, the server includes means for receiving queries from users, means for verifying whether a query is included, means for using an emotion engine to recognize the user's emotions from the text data of the query, means for sending the verified query and emotion information to the search API of the internal system, means for receiving a response from the internal system, means for searching the knowledge database if the internal system does not return a valid result, and means for adjusting the results from the knowledge database or the internal system based on the recognized emotion information and returning them to the user. This makes it possible to quickly and accurately provide an adjusted response based on the user's emotions.
[1109] "Means of receiving queries from users" refers to a function that allows the system to receive inquiries in text data format sent by users.
[1110] "Means of verifying whether a query is included" refers to the process of checking whether the received text data is in the correct query format.
[1111] "Using an emotion engine to recognize user emotions from query text data" refers to the process of using natural language processing algorithms to identify a user's emotional state (e.g., joy, frustration, sadness, etc.) from text.
[1112] "Means for sending verified queries and sentiment information to the search API of internal systems" refers to a function that sends verified queries and recognized sentiment data as search requests to internal databases and information systems.
[1113] "Means for receiving responses from internal systems" refers to functions that receive answers and information provided by internal systems and are used for further processing.
[1114] "A means of searching the knowledge database when the internal system does not return a valid result" refers to the process of searching for relevant information by referring to the knowledge database, which is an alternative source of information, when a valid answer cannot be obtained from the internal system.
[1115] "A means of adjusting the results of a knowledge database or internal system based on recognized emotional information and returning them to the user" refers to a function that automatically generates and returns a response with adjusted wording and tone according to the user's emotional state.
[1116] This invention provides a system that combines sentiment recognition with user queries to provide appropriate answers. This system utilizes a server, user terminals, a sentiment engine, an internal system, and a knowledge database.
[1117] To implement this invention, the following flow is required:
[1118] A query is sent from the user's terminal to the server, which then receives it. The received query is sent back to the server as a POST request in JSON format. The server verifies whether the query is included and can also return an error message to prevent invalid requests from being processed.
[1119] Next, the server sends the query text data to the emotion engine to recognize the user's emotions. The emotion engine uses natural language processing algorithms to identify the user's emotions (e.g., joy, sadness, anger). For emotion recognition technology, emotion analysis APIs such as IBM Watson or Azure Text Analytics can be used.
[1120] The recognized sentiment information and queries are sent to the internal system's search API. The server makes a POST request to the internal system's URL, sending JSON data containing the queries and sentiment information. When a response is received from the internal system and a valid result is returned, the server extracts the result in JSON format.
[1121] If the internal system fails to return a valid result, the server searches the knowledge database. The knowledge database consists of ID-response pairs, and the server retrieves the response by searching for the corresponding ID. The retrieved response is then adjusted based on the sentiment information recognized by the sentiment engine. For example, if the user is expressing dissatisfaction, the response will include words of encouragement and apology.
[1122] Ultimately, the server provides the user with a refined response in JSON format. For example, if a user sends the query "I want to know how many more days until my item arrives," the sentiment recognition engine recognizes the emotion "dissatisfaction" and generates a response such as "Your item will arrive within 3 days. We apologize for the delay."
[1123] As an example of a prompt, let's assume the user typed "I want to change my payment method." We can generate code that returns an appropriate response considering this query and the user's sentiment. For example, set the prompt as follows:
[1124] Example of a prompt:
[1125] "Let's assume the user enters 'I want to change my payment method.' Generate code that returns an appropriate response, taking this query and the user's sentiment into consideration."
[1126] As described above, the present invention can realize a system that provides the optimal answer while taking into account the user's emotions. This system makes it possible to increase user satisfaction and improve the efficiency of customer support operations.
[1127] The flow of a specific process in Application Example 2 will be explained using Figure 14.
[1128] Step 1:
[1129] The server receives queries from user terminals. Users input text-based queries using devices such as smartphones and PCs, and these queries are sent to the server as JSON-formatted POST requests. The input is the user's text query, and the output is the received query data.
[1130] Step 2:
[1131] The server verifies whether the received query is valid. This verification process checks whether the query data is empty and in the correct format, and if invalid, it generates an error message and returns it to the user terminal. The input is the received query data, and the output is the verification result or error message.
[1132] Step 3:
[1133] The server sends the received query to the sentiment engine to recognize the user's emotions. At this stage, natural language processing algorithms are used to identify the user's emotions (e.g., joy, frustration, anger) from the text. Specific sentiment engines that can be used include IBM Watson and Azure Text Analytics. The input is the query text, and the output is the recognized emotion information.
[1134] Step 4:
[1135] The server sends the validated query and sentiment information to the internal system's search API. At this time, a JSON data containing the query and sentiment information is POSTed to the internal system's API. The input is the validated query and sentiment information, and the output is the search results from the internal system.
[1136] Step 5:
[1137] The server receives a response from the internal system. If the internal system returns valid information, that data is received by the server and further processed. The input is the response from the internal system, and the output is a flag indicating valid search results or invalid results.
[1138] Step 6:
[1139] The server searches the knowledge database if the internal system fails to return a valid result. At this stage, it searches for the corresponding ID in the predefined knowledge database and retrieves the appropriate answer. The input is a flag for invalid search results, and the output is the answer from the knowledge database.
[1140] Step 7:
[1141] The server adjusts the results from the knowledge database or internal system based on the recognized sentiment information. For example, if the sentiment is "dissatisfied," the system adds encouraging or apologetic phrases to the response. The input is the results and sentiment information from the knowledge database or internal system, and the output is the adjusted response.
[1142] Step 8:
[1143] The server returns the adjusted response to the user. The adjusted response data is sent to the user's terminal in JSON format, allowing the user to verify the information. The input is the adjusted response, and the output is the information provided to the user.
[1144] In this way, it becomes possible to provide prompt and emotionally sensitive responses to user inquiries.
[1145] The specific processing unit 290 transmits the result of the specific processing to the headset terminal 314. In the headset terminal 314, the control unit 46A causes the speaker 240 and display 343 to output the result of the specific processing. The microphone 238 acquires audio indicating user input for the result of the specific processing. The control unit 46A transmits the audio data indicating user input acquired by the microphone 238 to the data processing unit 12. In the data processing unit 12, the specific processing unit 290 acquires the audio data.
[1146] Data generation model 58 is a type of so-called generative AI (Artificial Intelligence). One example of data generation model 58 is ChatGPT (Internet search<URL: https: / / openai.com / blog / chatgpt> ), Gemini (Internet search) <url: https: gemini.google.com ?hl="ja">Examples of generative AI include the following. The data generation model 58 is obtained by performing deep learning on a neural network. The data generation model 58 is input with prompts containing instructions, and with inference data such as audio data representing speech, text data representing text, and image data representing images. The data generation model 58 infers from the input inference data according to the instructions indicated by the prompts, and outputs the inference results in data formats such as audio data and text data. Here, inference refers to, for example, analysis, classification, prediction, and / or summarization.
[1147] In the above embodiment, an example was given in which specific processing is performed by the data processing device 12, but the technology of this disclosure is not limited thereto, and specific processing may also be performed by the headset terminal 314.
[1148] [Fourth Embodiment]
[1149] Figure 7 shows an example of the configuration of the data processing system 410 according to the fourth embodiment.
[1150] As shown in Figure 7, the data processing system 410 includes a data processing device 12 and a robot 414. An example of the data processing device 12 is a server.
[1151] The data processing device 12 comprises a computer 22, a database 24, and a communication interface 26. The computer 22 is an example of a "computer" related to the technology of this disclosure. The computer 22 comprises a processor 28, RAM 30, and storage 32. The processor 28, RAM 30, and storage 32 are connected to a bus 34. The database 24 and the communication interface 26 are also connected to the bus 34. The communication interface 26 is connected to a network 54. An example of the network 54 is a WAN (Wide Area Network) and / or a LAN (Local Area Network).
[1152] The robot 414 includes a computer 36, a microphone 238, a speaker 240, a camera 42, a communication interface 44, and a controlled object 443. The computer 36 includes a processor 46, RAM 48, and storage 50. The processor 46, RAM 48, and storage 50 are connected to a bus 52. The microphone 238, speaker 240, camera 42, and controlled object 443 are also connected to the bus 52.
[1153] The microphone 238 receives voice signals from the user 20 and receives instructions from the user 20. The microphone 238 captures the voice signals from the user 20, converts the captured voice into audio data, and outputs it to the processor 46. The speaker 240 outputs audio according to the instructions from the processor 46.
[1154] Camera 42 is a small digital camera equipped with an optical system including a lens, aperture, and shutter, and an image sensor such as a CMOS (Complementary Metal-Oxide-Semiconductor) image sensor or a CCD (Charge Coupled Device) image sensor, and captures images of the area around the user 20 (for example, an imaging range defined by a field of view equivalent to the width of a typical healthy person's field of vision).
[1155] Communication interface 44 is connected to network 54. Communication interfaces 44 and 26 are responsible for the exchange of various information between processor 46 and processor 28 via network 54. The exchange of various information between processor 46 and processor 28 using communication interfaces 44 and 26 is performed in a secure manner.
[1156] The controlled object 443 includes a display device, LEDs in the eyes, and motors that drive the arms, hands, and feet. The posture and gestures of the robot 414 are controlled by controlling the motors of the arms, hands, and feet. Some of the robot 414's emotions can be expressed by controlling these motors. Furthermore, the robot 414's facial expressions can also be expressed by controlling the illumination state of the LEDs in its eyes.
[1157] Figure 8 shows an example of the main functions of the data processing device 12 and the robot 414. As shown in Figure 8, the data processing device 12 performs specific processing using the processor 28. The storage 32 stores the specific processing program 56.
[1158] The specific processing program 56 is an example of a "program" relating to the technology of this disclosure. The processor 28 reads the specific processing program 56 from the storage 32 and executes the read specific processing program 56 on the RAM 30. The specific processing is realized by the processor 28 operating as a specific processing unit 290 in accordance with the specific processing program 56 executed on the RAM 30.
[1159] The storage 32 stores the data generation model 58 and the emotion identification model 59. The data generation model 58 and the emotion identification model 59 are used by the identification processing unit 290.
[1160] In robot 414, the processor 46 performs the reception output processing. The storage 50 stores the reception output program 60. The processor 46 reads the reception output program 60 from the storage 50 and executes the read reception output program 60 on the RAM 48. The reception output processing is realized by the processor 46 operating as a control unit 46A according to the reception output program 60 executed on the RAM 48.
[1161] Next, the specific processing performed by the specific processing unit 290 of the data processing device 12 will be described. In the following description, the data processing device 12 will be referred to as the "server" and the robot 414 as the "terminal".
[1162] This invention relates to a system that searches internal systems and a knowledge database based on user queries and automatically provides appropriate answers. To implement this system, a server, user terminals, internal systems, and a knowledge database are required.
[1163] 1. Receiving queries
[1164] The user sends their inquiry to the server as a query from their device. The query is sent to the server as a POST request in JSON format.
[1165] 2. Query validation
[1166] The server parses the received query data and verifies whether the query is properly provided. If the query does not exist, the server returns an error message to the user. This process prevents invalid requests from being processed.
[1167] 3. Sending queries to internal systems
[1168] If the query is deemed valid, the server sends the query to the internal system's search API. The internal system searches its internal database based on the retrieved query and returns the relevant results.
[1169] 4. Processing responses from internal systems
[1170] The server receives responses from the internal system. If the internal system returns a valid result, the server returns that result to the user. For example, in response to an inquiry about delivery status, the server might return the response, "Please check the delivery status here."
[1171] 5. Searching the Knowledge Database
[1172] If the internal system fails to return a valid result, the server searches the knowledge database. The knowledge database holds pairs of IDs corresponding to queries and their corresponding answers. The server searches for an ID that matches the query and retrieves the corresponding answer.
[1173] 6. Providing responses to users
[1174] The server returns results from internal systems or knowledge databases to the user in JSON format. For example, a query like "01" might return the response, "Regarding shipping status, you can check the delivery status of your products on the system."
[1175] Specific example:
[1176] Suppose a user sends the query "01" to the server. The server receives this query and verifies that it is valid. Next, it sends the query to the internal system's search API. If the internal system does not return a valid answer, the server searches the knowledge database. If the query "01" finds the result "Regarding shipping status, you can check the delivery status of your products on the system," the server returns that result to the user.
[1177] This invention enables users to quickly and accurately obtain the information they need. Furthermore, it improves the efficiency of support operations and contributes to increased customer satisfaction.
[1178] The following describes the processing flow.
[1179] Step 1:
[1180] The user sends their inquiry to the server as a query from their device. The query is sent to the server as a POST request in JSON format.
[1181] Step 2:
[1182] The server accepts POST requests at the Flask application's endpoint / api / query. The server parses the received request data (in JSON format) and extracts the provided query.
[1183] Step 3:
[1184] The server verifies whether the query exists. If the query does not exist, the server returns a JSON response with status code 400 to the user, containing the error message "No query provided."
[1185] Step 4:
[1186] If a query exists, the server sends it to the internal system's search API. This is done by making a POST request to a predefined URL of the internal system. The server sends JSON data containing the query.
[1187] Step 5:
[1188] The server waits for a response from the internal system. If the internal system returns a valid result with status code 200, the server extracts the result in JSON format. Specifically, it retrieves the search results (e.g., "Please check the delivery status here") from the response body.
[1189] Step 6:
[1190] If the internal system returns a valid result, the server returns that result to the user in JSON format. The response is returned as JSON data containing the result, along with the key "response".
[1191] Step 7:
[1192] If the internal system fails to return a valid result, the server searches the knowledge database. The server retrieves the ID corresponding to the query from the predefined knowledge database.
[1193] Step 8:
[1194] If a matching ID is found in the knowledge database, the server retrieves the answer corresponding to that ID. For example, for a query like "01", the server retrieves the answer "Regarding shipping status, you can check the delivery status of your products on the system."
[1195] Step 9:
[1196] The server returns the results from the knowledge database to the user in JSON format. The response is returned as JSON data containing the answer, along with the key "response".
[1197] Step 10:
[1198] If the server cannot obtain valid results from either the internal system or the knowledge database, it returns a JSON response to the user that includes the error message "Sorry, we couldn't find that information."
[1199] (Example 1)
[1200] Next, we will describe Example 1. In the following description, the data processing device 12 will be referred to as the "server" and the robot 414 as the "terminal".
[1201] For users to quickly obtain useful information, it is necessary to efficiently retrieve information from multiple systems and databases. However, with conventional systems, user queries were sometimes not processed properly, resulting in users not being able to obtain the necessary information. Furthermore, efficient query management and result return for linking multiple systems were challenges. In addition, there was a lack of means to search other databases when the internal system did not return valid results. As a result, user satisfaction decreased and the efficiency of support operations deteriorated.
[1202] The identification process performed by the identification processing unit 290 of the data processing device 12 in Example 1 is realized by the following means.
[1203] In this invention, the server includes means for receiving queries from users, means for verifying whether queries are properly provided, and means for sending queries deemed appropriate to the search API of the internal system. This enables users to quickly obtain appropriate information. Furthermore, the server includes means for receiving responses from the internal system, means for searching the knowledge database if no valid results are returned, and means for returning the search results to the user. This allows the server to obtain appropriate information from the knowledge database and provide it to the user even if the internal system does not return valid results.
[1204] A "query" is the content of an inquiry sent by a user, and it is a data format used by the system for processing.
[1205] "Verification" is the process of checking whether the query the system has received is appropriate.
[1206] "Internal systems" refer to information processing systems and databases used within a company or organization.
[1207] A "search API" is an interface that a system provides to search a database based on specific criteria.
[1208] A "knowledge database" is a database that holds answers to queries, and is where information is accumulated.
[1209] An "identifier" refers to a unique ID or code used to uniquely identify data.
[1210] A "response" is the response data that a server returns in response to a query, and includes the results of the query.
[1211] "Receiving" refers to the process by which a system receives data sent from an external source.
[1212] "Transmission" refers to the process by which a system sends data outwards.
[1213] "Searching" is the process of finding relevant data from a database or information source based on specific conditions or queries.
[1214] JSON format is a lightweight data exchange format for structuring and describing data.
[1215] This invention relates to a system that searches internal systems and knowledge databases based on user queries and automatically provides appropriate answers. To implement this system, a server, user terminals, internal systems, and a knowledge database are required.
[1216] Hardware and software to be used
[1217] Server: Built using Apache Tomcat.
[1218] User terminal: Use a common computing device including Windows PCs, Macs, and Linux systems.
[1219] Internal systems: Use Oracle Database or MySQL Database.
[1220] Knowledge database: Use PostgreSQL or MongoDB.
[1221] Explanation of the program's processing
[1222] 1. Receiving queries
[1223] The user sends a query from their device. The query is natural language text, such as "Please tell me the shipping status of order number 123," and is sent to the server as a POST request in JSON format. When the user enters the query in their browser and presses the submit button, the data is sent from their device to the server.
[1224] 2. Query validation
[1225] The server validates the received query. To ensure the query is properly provided, it checks the query's format and whether all required fields are present. For example, it checks if the query is not empty and if all required fields are filled in, and returns an error message if it is inappropriate.
[1226] 3. Sending queries to internal systems
[1227] If deemed appropriate, the server sends a query to the internal system's search API. The internal system receives the request and searches its internal database for the relevant data. For example, if the server sends the query "Please tell me the shipping status of order number 123," the internal system will search its database.
[1228] 4. Processing the response
[1229] The server receives responses from the internal system. If the internal system returns a valid result, it returns that result to the user. For example, if it receives the response "Order number 123 is in transit," it sends that back to the user.
[1230] 5. Searching the Knowledge Database
[1231] If no valid results are returned from the internal system, the server searches the knowledge database. The knowledge database stores identifiers and their corresponding answers in pairs. The server searches for identifiers that match the query and retrieves the corresponding answers.
[1232] 6. Providing responses to users
[1233] Finally, the server returns the results to the user in JSON format. For example, if the response is "Regarding shipping status, you can check the delivery status of your product on the system," it sends this back to the user. The user's device receives this JSON data and displays it on the screen.
[1234] Specific example
[1235] A user sends a query to the server asking, "What is the shipping status of order number 123?" The server receives the query and validates it. If it is deemed appropriate, it sends the query to the internal system's API endpoint. If the internal system does not return a valid answer, the server searches the knowledge database. For example, if the knowledge database returns the answer, "Regarding shipping status, you can check the delivery status of your product on the system," it sends that information back to the user.
[1236] Example of a prompt
[1237] 1. "Please tell me the delivery status."
[1238] 2. "I want to check the status of my order."
[1239] 3. "I want to know when the product will arrive."
[1240] The flow of the specific processing in Example 1 will be explained using Figure 11.
[1241] Step 1: Receiving the query
[1242] The user sends a query from their device. The query is natural language text, such as "Please tell me the shipping status of order number 123," and is sent to the server as a POST request in JSON format.
[1243] Specifically, the user enters "Please tell me the shipping status of order number 123" into a form in their browser and clicks the submit button. The device converts this input into JSON format and sends it to the server via an HTTP request.
[1244] Input: Query sent by the user from their device: "Please tell me the shipping status of order number 123."
[1245] Output: JSON format data delivered to the server
[1246] Step 2: Validate the query
[1247] The server validates the received query. It checks the query format and whether all required fields are present to ensure the query is properly submitted. If it is incorrect, it returns an error message.
[1248] Specifically, the server parses the query "Please tell me the shipping status of order number 123" and checks whether the format and content are appropriate. For example, it checks whether the query is empty and whether all required fields are filled in.
[1249] Input: Received query data in JSON format
[1250] Output: Verification result (valid or invalid) and error message (only if invalid)
[1251] Step 3: Sending queries to the internal system
[1252] If the query is deemed valid, the server sends the query to the internal system's search API. The internal system receives this request and searches its internal database.
[1253] Specifically, the server sends a request to the internal system's API endpoint containing the query, "Please tell me the shipping status of order number 123." The internal system then searches its database for the relevant data.
[1254] Input: Validated query "Please tell me the shipping status of order number 123"
[1255] Output: API request to internal system
[1256] Step 4: Processing responses from internal systems
[1257] The server receives responses from the internal system. If the internal system returns a valid result, it returns that result to the user. For example, if it receives the response "Order number 123 is in transit," it sends that back to the user.
[1258] Specifically, if the internal system returns a response stating "Order number 123 is in transit," the server converts this information into JSON format and sends it to the user's terminal.
[1259] Input: Response data from the internal system
[1260] Output: JSON format data to be sent back to the user
[1261] Step 5: Search the knowledge database
[1262] If the internal system fails to return a valid result, the server searches the knowledge database. The knowledge database stores identifiers and their corresponding answers in pairs. The server searches for identifiers that match the query and retrieves the corresponding answer.
[1263] Specifically, the server sends a query to the knowledge database asking "What is the shipping status of order number 123?" and searches for a matching identifier. It then retrieves the relevant response.
[1264] Input: Query for invalid results: "Please tell me the shipping status of order number 123"
[1265] Output: Answers retrieved from the knowledge database
[1266] Step 6: Providing responses to users
[1267] The server returns results obtained from the internal system or knowledge database to the user in JSON format. For example, if it receives the response, "Regarding shipping status, you can check the delivery status of your product on the system," it will send that response back to the user.
[1268] Specifically, the server generates a result stating, "Regarding the shipping status, you can check the delivery status of your product on the system," and sends it back to the user's terminal. The user's terminal receives this JSON data and displays it on the screen.
[1269] Input: Results from internal systems or knowledge databases
[1270] Output: JSON data to be sent back to the user's device.
[1271] (Application Example 1)
[1272] Next, we will explain Application Example 1. In the following explanation, the data processing device 12 will be referred to as the "server" and the robot 414 as the "terminal".
[1273] In recent years, with the diversification of content distribution services, users are required to quickly search for and obtain appropriate information from a vast amount of content. Traditional systems often had problems such as inaccurate search results for user queries or inability to quickly retrieve relevant information from a large knowledge database, resulting in a poor user experience. Furthermore, the insufficient content recommendation function based on user preferences meant that the system failed to adequately provide users with the information they were looking for.
[1274] The specific processing performed by the specific processing unit 290 of the data processing device 12 in Application Example 1 is realized by the following means.
[1275] In this invention, the server includes means for receiving queries from users, means for verifying whether the query is included, and means for sending the verified query to the search API of the internal system. This ensures the validity of the query and enables rapid retrieval of search results from the database of the internal system. The server also includes means for receiving responses from the internal system, means for searching the knowledge database if the internal system does not return valid results, and means for returning the search results to the user. This enables the server to provide appropriate answers from the knowledge database even when the internal system does not have a response. Furthermore, the server includes means for searching for the most suitable content from a content provider server based on the query, and means for providing recommended content based on the user's preferences. This improves the accuracy of the user's search results and enables the provision of content that matches the user's preferences, thereby improving the user experience.
[1276] "Means for receiving queries from users" refers to a function that allows the server to receive inquiry content (queries) sent from the user's terminal.
[1277] "Means for verifying whether a query is included" refers to a function that checks whether an incoming query is in the correct format and filters out invalid requests.
[1278] "Means for sending validated queries to the internal system's search API" refers to a function that sends queries deemed appropriate to the search API of an information system within a company and retrieves the results.
[1279] "Means for receiving responses from internal systems" refers to a function that allows a server to receive search results returned from an information system within a company.
[1280] "Means for searching the knowledge database when the internal system does not return valid results" refers to a function that searches a separately constructed knowledge database to obtain the necessary information when the response from the internal system is missing or invalid.
[1281] "Means of returning search results to the user" refers to a function that sends the search results acquired by the server to the user's terminal for display.
[1282] "Means for searching for the most suitable content from a content provider server based on a query" refers to a function that searches for relevant content from a content provider server based on the query content and obtains the most suitable results.
[1283] "Means of providing recommended content based on user preferences" refers to a function that recommends appropriate content to users based on their past viewing history and set preferences.
[1284] An "internal system" is a collection of information systems and databases managed within a company, which provides APIs for searching various types of data.
[1285] A "knowledge database" is a database that stores answers to various queries and is used as an alternative data source when the internal system fails to return valid results.
[1286] This invention relates to a system that searches internal systems and knowledge databases based on user queries and automatically provides appropriate answers. This system consists of a server, user terminals, internal systems, a knowledge database, and a content provision server.
[1287] The server receives queries sent from user terminals and verifies whether the queries are in the correct format. The verified queries are sent to the internal system's search API, and search results are retrieved from the internal system's database. If the internal system does not return valid results, the server searches the knowledge database to retrieve relevant information. Finally, the search results are returned to the user. The server also searches for appropriate content from content providers based on the query content and provides recommended content based on the user's preferences.
[1288] This system operates using the following hardware and software:
[1289] Hardware: Servers, users' smartphones or tablets, internal corporate information systems (internal systems), knowledge databases, and content delivery servers.
[1290] Software: Programs written in programming languages such as Python and JavaScript, API communication using the HTTP protocol, database search engines (e.g., Elasticsearch), and generative AI models.
[1291] For example, if a user sends a query from a smartphone application to search for "latest movies," the server performs the following processes: First, it receives the query and verifies its contents. After verification, it queries the internal system's search API based on that query. If the internal system does not return a valid result, it searches the knowledge database and retrieves relevant information. Meanwhile, it retrieves the latest movie information from the content provider server based on the user's query. Then, based on the retrieved results, it generates recommended content tailored to the user's viewing history and preferences and returns it to the user's device.
[1292] In this way, the present invention enables users to quickly and accurately obtain the information they need, while simultaneously providing optimal content based on their preferences. A specific example of a prompt statement is, "Tell me about the latest movies." This improves the quality of the user experience and makes it possible to provide a more satisfying service.
[1293] The flow of a specific process in Application Example 1 will be explained using Figure 12.
[1294] Step 1:
[1295] Users enter queries such as "latest movies" from a smartphone or tablet application and submit them.
[1296] Input: User query ("Tell me about the latest movies")
[1297] Output: Query data sent to the server
[1298] Step 2:
[1299] The server receives queries sent from the user's terminal.
[1300] Input: Query data from the user
[1301] Output: Internally processable query object
[1302] Specifically, it parses the HTTP request and extracts the query portion.
[1303] Step 3:
[1304] The server validates the data from the received query.
[1305] Input: Query object
[1306] Output: Verification result (valid or invalid), error message if invalid.
[1307] Specifically, the system checks the query format and whether required fields are present, and returns an error message to the user if any are invalid.
[1308] Step 4:
[1309] The server sends the validated query to the internal system's search API.
[1310] Input: Validated query object
[1311] Output: Response from the internal system (search results)
[1312] Specifically, the process involves making an HTTP POST request to the API endpoint of the internal system.
[1313] Step 5:
[1314] The server receives responses from internal systems and analyzes the results.
[1315] Input: Response data from the internal system
[1316] Output: Analyzed search results
[1317] In terms of specific operations, the response data is parsed and search results are extracted.
[1318] Step 6:
[1319] If the internal system does not return a valid result, the server searches the knowledge database.
[1320] Input: Query object
[1321] Output: Search results from the knowledge database
[1322] In terms of specific operations, it executes SQL queries against a knowledge database and retrieves the corresponding answers.
[1323] Step 7:
[1324] The server returns search results to the user.
[1325] Input: Final search results (obtained from an internal system or knowledge database)
[1326] Output: Search results displayed on the user's terminal
[1327] Specifically, the process involves converting the search results into JSON format and sending it back to the user's terminal as an HTTP response.
[1328] Step 8:
[1329] The server searches for the most suitable content from the content provider server based on the query content.
[1330] Input: Query object
[1331] Output: Content data from the content provider server
[1332] In terms of specific operations, the system sends a query to the content provider server's API and retrieves relevant content information.
[1333] Step 9:
[1334] The server generates recommended content based on the user's preferences.
[1335] Input: Viewing history, preference data, content data
[1336] Output: Recommended Content
[1337] Specifically, the system uses a generative AI model that references viewing history and preference data to select highly relevant content.
[1338] Step 10:
[1339] The server sends recommended content back to the user's device.
[1340] Input: Recommended content
[1341] Output: Recommended content displayed on the user's terminal
[1342] Specifically, the system formats recommended content and returns it to the user in an appropriate format.
[1343] Furthermore, an emotion engine that estimates the user's emotions may be incorporated. That is, the identification processing unit 290 may use the emotion identification model 59 to estimate the user's emotions and perform identification processing using the user's emotions.
[1344] This invention combines a system that searches internal systems and knowledge databases based on user queries and provides appropriate answers with an emotion engine that recognizes user emotions. To implement this system, a server, user terminals, an emotion engine, internal systems, and a knowledge database are used.
[1345] 1. Receiving queries
[1346] The user sends their inquiry to the server as a query from their device. The query is sent to the server as a POST request in JSON format.
[1347] 2. Query validation
[1348] The server parses the received query data and verifies whether the query is properly provided. If the query does not exist, the server returns an error message to the user. This process prevents invalid requests from being processed.
[1349] 3. Emotion recognition by an emotion engine
[1350] The server sends the query text data to the emotion engine to recognize the user's emotions. The emotion engine uses a text analysis algorithm to identify the user's emotions (e.g., joy, sadness, anger).
[1351] 4. Sending queries to internal systems
[1352] The server sends the query, along with the sentiment information identified by the sentiment engine, to the internal system's search API. The server makes a POST request to the internal system's URL, sending JSON data containing the query and sentiment information.
[1353] 5. Processing responses from internal systems
[1354] The server receives a response from the internal system. If the internal system returns a valid result, the server extracts the result in JSON format. The server then adjusts the response based on the perceived sentiment and returns it to the user in an appropriate tone and style.
[1355] 6. Searching the Knowledge Database
[1356] If the internal system fails to return a valid result, the server searches the knowledge database. The server searches the predefined knowledge database for the ID corresponding to the query.
[1357] 7. Emotion-based response adjustment
[1358] If a matching ID is found in the knowledge database, the server retrieves the corresponding response and adjusts it based on the sentiment information recognized by the sentiment engine. For example, if the user is expressing dissatisfaction, the response may include words of encouragement or apology.
[1359] 8. Providing responses to users
[1360] The server returns the refined search results or answers from the knowledge database to the user in JSON format. For example, a query like "01" might return the answer, "Regarding shipping status, you can check the delivery status of your product in the system. We apologize for the delay."
[1361] Specific example:
[1362] Suppose a user sends a query to the server saying "My delivery is delayed." The server receives this query and its sentiment engine recognizes the emotion as "dissatisfied." Next, it sends this query and sentiment information to the internal system's search API. If the internal system does not return a valid answer, the server searches the knowledge database and retrieves an answer for "My delivery is delayed." It returns the answer "You can check the delivery status of your order on the system," adding "We apologize for the delay" based on the sentiment information.
[1363] This allows users to obtain information quickly and accurately, improves the efficiency of support operations, and increases customer satisfaction.
[1364] The following describes the processing flow.
[1365] Step 1:
[1366] The user sends their inquiry to the server as a query from their device. The query is sent to the server as a POST request in JSON format. For example, consider a case where a user sends a query saying "My delivery is delayed."
[1367] Step 2:
[1368] The server accepts a POST request at the Flask application's endpoint / api / query. The server parses the received request data (in JSON format) and extracts the provided query. The extracted query is "Delivery is delayed".
[1369] Step 3:
[1370] The server verifies whether the query exists. If the query does not exist, the server returns a JSON response with status code 400 to the user, containing the error message "No query provided." If the query is determined to be valid, the server proceeds to the next step.
[1371] Step 4:
[1372] The server sends the query's text data to the sentiment engine to recognize the user's emotions. The sentiment engine uses a text analysis algorithm to identify the emotion "dissatisfaction" from the query "delivery is delayed."
[1373] Step 5:
[1374] The server sends the emotion information identified by the emotion engine, along with the query, to the internal system's search API. The server makes a POST request to a predefined internal system URL, sending JSON data containing the query "Delivery is delayed" and the emotion "Dissatisfied".
[1375] Step 6:
[1376] The server waits for a response from the internal system. If the internal system returns a valid result with status code 200, the server extracts the result in JSON format. For example, it might retrieve a search result such as "Please check the delivery status here" from the response body.
[1377] Step 7:
[1378] If the internal system fails to return a valid result, the server searches the knowledge database. The server searches the predefined knowledge database for an ID corresponding to the query. For example, it searches for ID "1001" for the query "Delivery is delayed".
[1379] Step 8:
[1380] If a matching ID is found in the knowledge database, the server retrieves the answer corresponding to that ID. For example, for ID "1001", it retrieves the answer "Regarding shipping status, you can check the delivery status of your product on the system."
[1381] Step 9:
[1382] The server adjusts the retrieved response based on the emotional information recognized by the emotion engine. If the user is expressing "dissatisfaction," comforting or supplementary information such as "Sorry for the wait" is added to the response.
[1383] Step 10:
[1384] The server returns the refined search results or answers from the knowledge database to the user in JSON format. For example, in response to the query "Delivery is delayed," the server might return the answer "Regarding the shipping status, you can check the delivery status of your product in the system. We apologize for the delay."
[1385] In this way, users can obtain information quickly and accurately, the efficiency of support operations improves, and customer satisfaction increases.
[1386] (Example 2)
[1387] Next, we will describe Example 2. In the following description, the data processing device 12 will be referred to as the "server" and the robot 414 as the "terminal".
[1388] Traditional internal systems and information retrieval systems utilizing knowledge databases simply provided relevant information in response to user queries, but were unable to generate answers that took user emotions into account. As a result, responses adapted to user feelings were lacking, and consequently, user satisfaction could not be sufficiently increased. In particular, when users were feeling dissatisfied or angry, appropriate responses to those emotions were often not provided.
[1389] The identification process performed by the identification processing unit 290 of the data processing device 12 in Example 2 is realized by the following means.
[1390] In this invention, the server includes means for receiving queries from users, means for verifying whether a query is included, means for sending the query's text data to an emotion recognition engine and recognizing the user's emotion, means for sending the verified query along with the recognized emotion information to the internal system's search API, means for receiving responses from the internal system, means for searching a knowledge database if the internal system does not return a valid result, means for adjusting the response obtained from the knowledge database based on the user's emotion information, and means for returning the adjusted search results or the response from the knowledge database to the user. This enables responses that appropriately consider the user's emotions and can increase user satisfaction.
[1391] A "user" refers to a person who uses a system to input queries and retrieve information.
[1392] A "query" refers to the content or question that a user sends to a system.
[1393] A "server" refers to a computer system that receives, validates, processes, and provides appropriate responses to queries.
[1394] "Verification" refers to the process by which a server checks whether the received query is in the correct format and contains the necessary information.
[1395] An "emotion recognition engine" refers to software that uses an algorithm to analyze text data and identify the user's emotions.
[1396] "Internal systems" refer to databases and business applications used within a company, and include systems that provide search APIs.
[1397] A "search API" refers to an application programming interface that allows an internal system to search for information in response to external queries and return the results.
[1398] "Response" refers to the content of the response that an internal system returns to a query.
[1399] A "knowledge database" refers to a database that stores predefined pairs of questions and their answers.
[1400] "Emotional information" refers to the emotional state of a user as identified by an emotion recognition engine.
[1401] "Adjustment" refers to the process of changing the format and tone of the acquired responses to suit the user's emotions.
[1402] "Search results" refer to information obtained from internal systems or knowledge databases.
[1403] "JSON format" is an abbreviation for JavaScript Object Notation, and it is a data exchange format used to represent structured data.
[1404] This invention combines a system that searches internal systems and knowledge databases based on user queries and provides appropriate answers with an emotion engine that recognizes user emotions. To implement this system, a server, user terminals, an emotion recognition engine, internal systems, and a knowledge database are used.
[1405] Specific examples of hardware and software to be used
[1406] Server: Performs tasks such as receiving, validating, and processing queries, and returning search results. Specific examples include Apache and Nginx.
[1407] User terminal: A device used for query input and displaying results. Specific examples include Windows PCs and iPhones.
[1408] Emotion recognition engine: Performs text analysis to identify the user's emotions. A specific example is the use of IBM Watson Tone Analyzer.
[1409] Internal systems: These systems integrate with databases and business applications within the company. Examples include SAP and Oracle.
[1410] Knowledge database: A database where predefined questions and answers are stored in pairs. Examples include Elasticsearch and MongoDB.
[1411] Specific operation of the system
[1412] 1. Receiving queries:
[1413] The user enters their inquiry details from their terminal and clicks the submit button. The query is sent to the server in JSON format.
[1414] Example: A user sends a query saying "My item hasn't arrived."
[1415] 2. Query validation:
[1416] The server parses the received query data and verifies whether the query is provided in the correct format. If the query is empty, an error message is returned.
[1417] 3. Emotion recognition using an emotion recognition engine:
[1418] The server sends the query text data to the emotion recognition engine. The emotion recognition engine uses a text analysis algorithm to recognize the user's emotions.
[1419] For example, the query "product not arrived" is associated with emotions such as "anger" and "dissatisfaction."
[1420] 4. Sending queries to internal systems:
[1421] The server sends the query, along with the recognized sentiment information, to the internal system's search API. It also makes a POST request to the specified URL in the internal system, sending JSON data containing the query and sentiment information.
[1422] Example: Send the query "product not received" and the emotion information "anger".
[1423] 5. Handling responses from internal systems:
[1424] The server receives responses from internal systems and adjusts them based on the perceived sentiment. For example, it might adjust a response like "Your item is being shipped" to "We apologize for the delay. Your item is currently being shipped."
[1425] 6. Searching the knowledge database:
[1426] If the internal system fails to return a valid result, the server searches the knowledge database. It searches for the ID corresponding to the query and retrieves the appropriate answer.
[1427] Example: For the query "My product hasn't arrived," retrieve relevant FAQs from the knowledge database.
[1428] 7. Emotion-based response adjustment:
[1429] Adjust responses based on user sentiment information. For example, if a user is dissatisfied, add "Sorry for the wait" to the standard response.
[1430] 8. Providing responses to users:
[1431] The system returns the adjusted search results or answers from the knowledge database to the user in JSON format.
[1432] Example: In response to the query "Delivery is delayed," the system returns the answer, "We apologize for the delay. Your item is currently being delivered."
[1433] Examples of prompt statements:
[1434] "Query: Delivery is delayed. Sentiment: Dissatisfied. Generate an appropriate response."
[1435] "A user has inquired about a delayed delivery. Their emotion is one of dissatisfaction. Please generate an appropriate response for this situation."
[1436] This allows us to provide appropriate, emotion-conscious answers to user queries, thereby increasing user satisfaction.
[1437] The flow of the specific processing in Example 2 will be explained using Figure 13.
[1438] Step 1: Receiving the query
[1439] The user enters a query (inquiry content) from their terminal and clicks the submit button. For example, they might enter "My product hasn't arrived."
[1440] Input: The query entered by the user into the terminal.
[1441] Processing: The user's terminal converts the query into JSON format and sends an HTTP POST request to the server.
[1442] Output: The server receives the query in JSON format.
[1443] Step 2: Validate the query
[1444] The server parses the received query data and verifies that the query is not empty and that it meets the required format.
[1445] Input: Query data in JSON format.
[1446] Processing: Performs syntax checks on the query and verifies the presence of required fields.
[1447] Output: If the query is valid, proceed to the next processing step. If the query is invalid, the server generates an error message and returns it to the user.
[1448] Step 3: Emotion recognition by emotion recognition engine
[1449] The server sends valid query text data to an emotion recognition engine (e.g., IBM Watson Tone Analyzer) to analyze the user's emotions.
[1450] Input: Query text data.
[1451] Processing: The emotion recognition engine uses a text analysis algorithm to identify the user's emotions (e.g., joy, sadness, anger, etc.).
[1452] Output: Emotion recognition result (e.g., "anger").
[1453] Step 4: Sending queries to the internal system
[1454] The server combines the query and sentiment recognition results and sends them to the company's internal system's search API.
[1455] Input: Query text data and sentiment recognition results.
[1456] Processing: The server combines the query and sentiment recognition results into JSON format and sends an HTTP POST request to the company's internal system's search API.
[1457] Output: The server receives a response from the internal system.
[1458] Step 5: Processing responses from internal systems
[1459] The server receives responses from internal systems and adjusts those responses based on emotions.
[1460] Input: Response data from the company's internal system.
[1461] Processing: The server analyzes the response data and adjusts the tone appropriately based on the sentiment recognition results. For example, it might adjust it to say, "We apologize for the delay. Your item is currently being shipped."
[1462] Output: Adjusted response data.
[1463] Step 6: Search the knowledge database
[1464] If the internal system fails to return a valid result, the server searches the knowledge database.
[1465] Input: Query text data.
[1466] Processing: The server searches the knowledge database for IDs that match the query and retrieves the relevant information.
[1467] Output: Answer data retrieved from the knowledge database.
[1468] Step 7: Emotion-Based Response Adjustment
[1469] The server adjusts the answers retrieved from the knowledge database based on the user's sentiment information.
[1470] Input: Response data and sentiment recognition results obtained from a knowledge database.
[1471] Processing: The server analyzes the response data and adjusts the tone and style to suit the emotion. For example, it might add "Sorry to keep you waiting."
[1472] Output: Adjusted response data.
[1473] Step 8: Providing responses to users
[1474] The server returns a refined search result or an answer from the knowledge database to the user.
[1475] Input: Adjusted response data.
[1476] Processing: The server converts the response data into JSON format and returns an HTTP response to the user's terminal.
[1477] Output: The response data displayed to the user on their device.
[1478] The above outlines the specific processing steps of this system's program. This allows for the provision of appropriate responses that take user emotions into consideration, thereby increasing user satisfaction.
[1479] (Application Example 2)
[1480] Next, we will explain application example 2. In the following explanation, the data processing device 12 will be referred to as the "server" and the robot 414 as the "terminal".
[1481] Modern customer support in brick-and-mortar stores requires prompt and accurate responses to inquiries from diverse users. However, traditional methods often fail to consider user emotions, resulting in inadequate handling of dissatisfied customers. This leads to a decline in customer satisfaction. This invention aims to improve customer satisfaction and streamline support operations by recognizing user emotions and providing appropriately adjusted responses.
[1482] In Application Example 2, the specific processing performed by the specific processing unit 290 of the data processing device 12 is realized by the following means. In this invention, the server includes means for receiving queries from users, means for verifying whether a query is included, means for using an emotion engine to recognize the user's emotions from the text data of the query, means for sending the verified query and emotion information to the search API of the internal system, means for receiving a response from the internal system, means for searching the knowledge database if the internal system does not return a valid result, and means for adjusting the results from the knowledge database or the internal system based on the recognized emotion information and returning them to the user. This makes it possible to quickly and accurately provide an adjusted response based on the user's emotions.
[1483] "Means of receiving queries from users" refers to a function that allows the system to receive inquiries in text data format sent by users.
[1484] "Means of verifying whether a query is included" refers to the process of checking whether the received text data is in the correct query format.
[1485] "Using an emotion engine to recognize user emotions from query text data" refers to the process of using natural language processing algorithms to identify a user's emotional state (e.g., joy, frustration, sadness, etc.) from text.
[1486] "Means for sending verified queries and sentiment information to the search API of internal systems" refers to a function that sends verified queries and recognized sentiment data as search requests to internal databases and information systems.
[1487] "Means for receiving responses from internal systems" refers to functions that receive answers and information provided by internal systems and are used for further processing.
[1488] "A means of searching the knowledge database when the internal system does not return a valid result" refers to the process of searching for relevant information by referring to the knowledge database, which is an alternative source of information, when a valid answer cannot be obtained from the internal system.
[1489] "A means of adjusting the results of a knowledge database or internal system based on recognized emotional information and returning them to the user" refers to a function that automatically generates and returns a response with adjusted wording and tone according to the user's emotional state.
[1490] This invention provides a system that combines sentiment recognition with user queries to provide appropriate answers. This system utilizes a server, user terminals, a sentiment engine, an internal system, and a knowledge database.
[1491] To implement this invention, the following flow is required:
[1492] A query is sent from the user's terminal to the server, which then receives it. The received query is sent back to the server as a POST request in JSON format. The server verifies whether the query is included and can also return an error message to prevent invalid requests from being processed.
[1493] Next, the server sends the query text data to the emotion engine to recognize the user's emotions. The emotion engine uses natural language processing algorithms to identify the user's emotions (e.g., joy, sadness, anger). For emotion recognition technology, emotion analysis APIs such as IBM Watson or Azure Text Analytics can be used.
[1494] The recognized sentiment information and queries are sent to the internal system's search API. The server makes a POST request to the internal system's URL, sending JSON data containing the queries and sentiment information. When a response is received from the internal system and a valid result is returned, the server extracts the result in JSON format.
[1495] If the internal system fails to return a valid result, the server searches the knowledge database. The knowledge database consists of ID-response pairs, and the server retrieves the response by searching for the corresponding ID. The retrieved response is then adjusted based on the sentiment information recognized by the sentiment engine. For example, if the user is expressing dissatisfaction, the response will include words of encouragement and apology.
[1496] Ultimately, the server provides the user with a refined response in JSON format. For example, if a user sends the query "I want to know how many more days until my item arrives," the sentiment recognition engine recognizes the emotion "dissatisfaction" and generates a response such as "Your item will arrive within 3 days. We apologize for the delay."
[1497] As an example of a prompt, let's assume the user typed "I want to change my payment method." We can generate code that returns an appropriate response considering this query and the user's sentiment. For example, set the prompt as follows:
[1498] Example of a prompt:
[1499] "Let's assume the user enters 'I want to change my payment method.' Generate code that returns an appropriate response, taking this query and the user's sentiment into consideration."
[1500] As described above, the present invention can realize a system that provides the optimal answer while taking into account the user's emotions. This system makes it possible to increase user satisfaction and improve the efficiency of customer support operations.
[1501] The flow of a specific process in Application Example 2 will be explained using Figure 14.
[1502] Step 1:
[1503] The server receives queries from user terminals. Users input text-based queries using devices such as smartphones and PCs, and these queries are sent to the server as JSON-formatted POST requests. The input is the user's text query, and the output is the received query data.
[1504] Step 2:
[1505] The server verifies whether the received query is valid. This verification process checks whether the query data is empty and in the correct format, and if invalid, it generates an error message and returns it to the user terminal. The input is the received query data, and the output is the verification result or error message.
[1506] Step 3:
[1507] The server sends the received query to the sentiment engine to recognize the user's emotions. At this stage, natural language processing algorithms are used to identify the user's emotions (e.g., joy, frustration, anger) from the text. Specific sentiment engines that can be used include IBM Watson and Azure Text Analytics. The input is the query text, and the output is the recognized emotion information.
[1508] Step 4:
[1509] The server sends the validated query and sentiment information to the internal system's search API. At this time, a JSON data containing the query and sentiment information is POSTed to the internal system's API. The input is the validated query and sentiment information, and the output is the search results from the internal system.
[1510] Step 5:
[1511] The server receives a response from the internal system. If the internal system returns valid information, that data is received by the server and further processed. The input is the response from the internal system, and the output is a flag indicating valid search results or invalid results.
[1512] Step 6:
[1513] The server searches the knowledge database if the internal system fails to return a valid result. At this stage, it searches for the corresponding ID in the predefined knowledge database and retrieves the appropriate answer. The input is a flag for invalid search results, and the output is the answer from the knowledge database.
[1514] Step 7:
[1515] The server adjusts the results from the knowledge database or internal system based on the recognized sentiment information. For example, if the sentiment is "dissatisfied," the system adds encouraging or apologetic phrases to the response. The input is the results and sentiment information from the knowledge database or internal system, and the output is the adjusted response.
[1516] Step 8:
[1517] The server returns the adjusted response to the user. The adjusted response data is sent to the user's terminal in JSON format, allowing the user to verify the information. The input is the adjusted response, and the output is the information provided to the user.
[1518] In this way, it becomes possible to provide prompt and emotionally sensitive responses to user inquiries.
[1519] The specific processing unit 290 transmits the result of the specific processing to the robot 414. In the robot 414, the control unit 46A causes the speaker 240 and the controlled object 443 to output the result of the specific processing. The microphone 238 acquires audio indicating user input for the result of the specific processing. The control unit 46A transmits the audio data indicating user input acquired by the microphone 238 to the data processing unit 12. In the data processing unit 12, the specific processing unit 290 acquires the audio data.
[1520] Data generation model 58 is a type of so-called generative AI (Artificial Intelligence). One example of data generation model 58 is ChatGPT (Internet search<URL: https: / / openai.com / blog / chatgpt> ), Gemini (Internet search) <url: https: gemini.google.com ?hl="ja">Examples of generative AI include the following. The data generation model 58 is obtained by performing deep learning on a neural network. The data generation model 58 is input with prompts containing instructions, and with inference data such as audio data representing speech, text data representing text, and image data representing images. The data generation model 58 infers from the input inference data according to the instructions indicated by the prompts, and outputs the inference results in data formats such as audio data and text data. Here, inference refers to, for example, analysis, classification, prediction, and / or summarization.
[1521] In the above embodiment, an example was given in which specific processing is performed by the data processing device 12, but the technology of this disclosure is not limited thereto, and the specific processing may also be performed by the robot 414.
[1522] Furthermore, the emotion identification model 59, acting as an emotion engine, may determine the user's emotion according to a specific mapping. Specifically, the emotion identification model 59 may determine the user's emotion according to a specific mapping, which is an emotion map (see Figure 9). Similarly, the emotion identification model 59 may also determine the robot's emotion, and the identification processing unit 290 may perform identification processing using the robot's emotion.
[1523] Figure 9 shows an emotion map 400 in which multiple emotions are mapped. In the emotion map 400, emotions are arranged in concentric circles radiating from the center. The closer to the center of the concentric circles, the more primitive the emotions are located. Further out of the concentric circles, emotions representing states and actions arising from mental states are located. Emotion is a concept that includes feelings and mental states. On the left side of the concentric circles, emotions that are generally generated from reactions occurring in the brain are located. On the right side of the concentric circles, emotions that are generally induced by situational judgment are located. Above and below the concentric circles, emotions that are generally generated from reactions occurring in the brain and induced by situational judgment are located. In addition, the emotion of "pleasure" is located on the upper side of the concentric circles, and the emotion of "displeasure" is located on the lower side. Thus, in the emotion map 400, multiple emotions are mapped based on the structure in which emotions arise, and emotions that are likely to occur simultaneously are mapped close together.
[1524] These emotions are distributed at the 3 o'clock position on the Emotion Map 400, and usually fluctuate between feelings of security and anxiety. In the right half of the Emotion Map 400, situational awareness takes precedence over internal feelings, resulting in a calm impression.
[1525] The inside of the Emotion Map 400 represents inner thoughts, while the outside represents actions. Therefore, the further you go from the outside of the Emotion Map 400, the more visible (expressed in actions) your emotions become.
[1526] Here, human emotions are based on various balances, such as posture and blood sugar levels. When these balances deviate from the ideal, it results in discomfort, and when they approach the ideal, it results in pleasure. Similarly, in robots, cars, motorcycles, etc., emotions can be created based on various balances, such as posture and battery level. When these balances deviate from the ideal, it results in discomfort, and when they approach the ideal, it results in pleasure. The emotion map can be generated, for example, based on Dr. Mitsuyoshi's emotion map (Research on a system for analyzing brain physiological signals of speech emotion recognition and emotion, Tokushima University, doctoral dissertation: https: / / ci.nii.ac.jp / naid / 500000375379). The left half of the emotion map contains emotions belonging to a region called "response," where sensation is dominant. The right half of the emotion map contains emotions belonging to a region called "situation," where situational awareness is dominant.
[1527] The emotion map defines two emotions that promote learning. One is the emotion around the middle of the negative "repentance" and "reflection" on the situation side. In other words, it is when the robot experiences negative emotions such as "I never want to feel this way again" or "I don't want to be scolded again." The other is the emotion around the positive "desire" on the reaction side. In other words, it is when the robot has positive feelings such as "I want more" or "I want to know more."
[1528] The emotion identification model 59 inputs user input into a pre-trained neural network, obtains emotion values representing each emotion shown in the emotion map 400, and determines the user's emotion. This neural network is pre-trained based on multiple training data sets, which are combinations of user input and emotion values representing each emotion shown in the emotion map 400. Furthermore, this neural network is trained so that emotions located close together have similar values, as shown in the emotion map 900 in Figure 10. Figure 10 shows an example where multiple emotions such as "reassured," "calm," and "confident" have similar emotion values.
[1529] The above description primarily focuses on the functions of the data processing device 12 in relation to this disclosure. However, the system related to this disclosure is not necessarily implemented on a server. The system related to this disclosure may be implemented as a general information processing system. This disclosure may be implemented, for example, as a software program that runs on a personal computer or as an application that runs on a smartphone. The method related to this disclosure may be provided to users in SaaS (Software as a Service) format.
[1530] In the above embodiment, an example was given in which a specific process is performed by a single computer 22. However, the technology of this disclosure is not limited thereto, and a distributed processing of the specific process may be performed by multiple computers, including computer 22. For example, a data generation model 58 may be provided in an external device of the data processing device 12, and the external device may generate data according to the input data.
[1531] In the above embodiment, an example was given in which the specific processing program 56 is stored in the storage 32, but the technology of this disclosure is not limited thereto. For example, the specific processing program 56 may be stored in a portable, computer-readable, non-temporary storage medium such as a USB (Universal Serial Bus) memory. The specific processing program 56 stored in the non-temporary storage medium is installed in the computer 22 of the data processing device 12. The processor 28 executes specific processing according to the specific processing program 56.
[1532] Alternatively, the specific processing program 56 may be stored in a storage device such as a server connected to the data processing device 12 via the network 54, and the specific processing program 56 may be downloaded and installed on the computer 22 in response to a request from the data processing device 12.
[1533] Furthermore, it is not necessary to store the entirety of the specific processing program 56 in a storage device such as a server connected to the data processing device 12 via the network 54, or to store the entirety of the specific processing program 56 in the storage 32; it is acceptable to store only a portion of the specific processing program 56.
[1534] The following types of processors can be used as hardware resources to perform specific processing. Examples of processors include a CPU, a general-purpose processor that functions as a hardware resource to perform specific processing by executing software, i.e., a program. Other examples of processors include dedicated electrical circuits, such as FPGAs (Field-Programmable Gate Arrays), PLDs (Programmable Logic Devices), or ASICs (Application Specific Integrated Circuits), which have circuit configurations specifically designed to perform specific processing. All of these processors have built-in or connected memory, and all of them perform specific processing by using memory.
[1535] The hardware resource that performs a specific process may consist of one of these various processors, or it may consist of a combination of two or more processors of the same or different types (for example, a combination of multiple FPGAs, or a combination of a CPU and an FPGA). Alternatively, the hardware resource that performs a specific process may consist of a single processor.
[1536] Examples of configurations using a single processor include, firstly, a configuration in which one or more CPUs and software are combined to form a single processor, and this processor functions as a hardware resource that performs a specific process. Secondly, there is a configuration using a processor that realizes the functions of the entire system, including multiple hardware resources that perform a specific process, on a single IC chip, as exemplified by SoCs (System-on-a-chip). In this way, a specific process is realized using one or more of the above types of processors as hardware resources.
[1537] Furthermore, the hardware structure of these various processors can more specifically utilize electrical circuits that combine circuit elements such as semiconductor devices. Also, the specific processing described above is merely an example. Therefore, it goes without saying that unnecessary steps can be deleted, new steps added, or the processing order rearranged, as long as it does not deviate from the main purpose.
[1538] The descriptions and illustrations presented above are detailed explanations of the technical aspects of this disclosure and are merely examples of the technical aspects. For example, the above descriptions of the structure, function, operation, and effect are examples of the structure, function, operation, and effect of the technical aspects of this disclosure. Therefore, it goes without saying that you may delete unnecessary parts, add new elements, or replace elements in the descriptions and illustrations presented above, as long as you do not deviate from the essence of the technical aspects of this disclosure. Furthermore, in order to avoid confusion and facilitate understanding of the technical aspects of this disclosure, explanations of common technical knowledge and the like that do not require special explanation to enable the implementation of the technical aspects of this disclosure have been omitted from the descriptions and illustrations presented above.
[1539] All documents, patent applications, and technical standards described herein are incorporated by reference to the same extent as if each individual document, patent application, and technical standard were specifically and individually noted to be incorporated by reference.
[1540] The following is further disclosed regarding the embodiments described above.
[1541] (Claim 1)
[1542] A means of receiving queries from users,
[1543] A means of verifying whether the query is included,
[1544] A means of sending the validated query to the internal system's search API,
[1545] A means of receiving responses from internal systems,
[1546] A means of searching the knowledge database when the internal system does not return valid results,
[1547] A system that includes a means of returning search results to the user.
[1548] (Claim 2)
[1549] The system according to claim 1, which returns a valid result to the user when the internal system returns a valid result.
[1550] (Claim 3)
[1551] The system according to claim 1, wherein the knowledge database consists of pairs of IDs and answers, and includes means for searching for IDs that match a query.
[1552] "Example 1"
[1553] (Claim 1)
[1554] A means of receiving queries from users,
[1555] A means to verify whether the query is provided correctly,
[1556] A means of sending queries deemed appropriate to the internal system's search API,
[1557] A means of receiving responses from internal systems,
[1558] A means of searching the knowledge database when no valid results are returned,
[1559] A system that includes a means of returning search results to the user.
[1560] (Claim 2)
[1561] The system according to claim 1, which verifies that the response from the internal system is valid and returns the result to the user.
[1562] (Claim 3)
[1563] The system according to claim 1, wherein the knowledge database consists of pairs of identifiers and answers, and includes means for searching for identifiers that match a query and retrieving the corresponding answers.
[1564] "Application Example 1"
[1565] (Claim 1)
[1566] A means of receiving queries from users,
[1567] A means of verifying whether the query is included,
[1568] A means of sending the validated query to the internal system's search API,
[1569] A means of receiving a response from an internal system,
[1570] A means of searching the knowledge database when the internal system does not return a valid result,
[1571] A means of returning search results to the user,
[1572] A means of searching for the most suitable content from a content provider server based on a query,
[1573] A means of providing recommended content based on user preferences,
[1574] A system that includes this.
[1575] (Claim 2)
[1576] The system according to claim 1, which returns a valid result to the user if the internal system returns a valid result.
[1577] (Claim 3)
[1578] The system according to claim 1, wherein the knowledge database consists of pairs of identifiers and answers, and includes means for searching for identifiers that match a query.
[1579] "Example 2 of combining an emotion engine"
[1580] (Claim 1)
[1581] A means of receiving queries from users,
[1582] A means of verifying whether the query is included,
[1583] A means of sending query text data to an emotion recognition engine to recognize the user's emotions,
[1584] A means of sending verified queries along with recognized emotion information to the internal system's search API,
[1585] A means of receiving responses from internal systems,
[1586] A means of searching the knowledge database when the internal system does not return valid results,
[1587] A means of adjusting answers obtained from a knowledge database based on user sentiment information,
[1588] A system that includes means of returning adjusted search results or answers from a knowledge database to the user.
[1589] (Claim 2)
[1590] The system according to claim 1, which, when an internal system returns a valid result, adjusts that result based on the user's sentiment information and returns it to the user.
[1591] (Claim 3)
[1592] The system according to claim 1, wherein the knowledge database consists of pairs of IDs and answers, and includes means for searching for IDs that match a query.
[1593] "Application example 2 when combining with an emotional engine"
[1594] (Claim 1)
[1595] A means of receiving queries from users,
[1596] A means of verifying whether the query is included,
[1597] A means of using an emotion engine to recognize user sentiment from query text data,
[1598] A means of sending verified queries and sentiment information to the internal system's search API,
[1599] A means of receiving responses from internal systems,
[1600] A means of searching the knowledge database when the internal system does not return valid results,
[1601] A system that includes means of adjusting the results of a knowledge database or internal system based on recognized sentiment information and returning them to the user.
[1602] (Claim 2)
[1603] The system according to claim 1, which, when an internal system returns a valid result, adjusts that result based on sentiment information and returns it to the user.
[1604] (Claim 3)
[1605] The system according to claim 1, wherein the knowledge database consists of ID-response pairs, and includes means for adjusting the responses based on IDs and sentiment information that match the query. [Explanation of Symbols]
[1606] 10, 210, 310, 410 Data Processing Systems 12 Data Processing Devices 14 Smart Devices 214 Smart Glasses 314 Headset-type terminal 414 Robots< / url:> < / url:> < / url:> < / url:>
Claims
1. A means of receiving queries from users, A means of verifying whether the query is included, A means of sending the validated query to the internal system's search API, A means of receiving responses from internal systems, A means of searching the knowledge database when the internal system does not return valid results, A system that includes a means of returning search results to the user.
2. The system according to claim 1, which returns a valid result to the user when the internal system returns a valid result.
3. The system according to claim 1, wherein the knowledge database consists of pairs of IDs and answers, and includes means for searching for IDs that match a query.
Citation Information
Patent Citations
Persona chatbot control method and system
JP2022180282A