Providing data from multiple sources through interactive chat

The computing system addresses the inefficiency of accessing multiple data sources by implementing an interactive chat interface that utilizes computational models to summarize client information and provides navigation elements, thereby enhancing user interaction and data accessibility.

WO2025137695A1PCT designated stage expired Publication Date: 2025-06-26INTEGRITY LLC
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
PCT/US2024/061713
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-12-21
Filing Date
2024-12-23
Publication Date
2025-06-26

AI Technical Summary

Technical Problem

Users face challenges in accessing and consolidating information from multiple sources efficiently, leading to time-consuming interactions with various interface screens and burdensome data analysis.

Method used

A computing system provides an interactive chat interface that analyzes user messages and routes them to different data sources, utilizing computational models to summarize client contact records and voice conversations, and embedding navigation elements to access relevant data.

Benefits of technology

The system enhances user interaction efficiency by providing data from multiple sources through a single chat interface, reducing the need for navigating multiple screens and improving data accessibility.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure US2024061713_26062025_PF_FP_ABST
    Figure US2024061713_26062025_PF_FP_ABST
Patent Text Reader

Abstract

Subject matter of this disclosure can be embodied in technologies for providing data from multiple sources through interactive chat. A computing system receives a first message through a chat interface; determines that the first message requests a contact record summary; and in response provides the contact record summary in the chat interface. The computing system receives a second user message through the chat interface; determines that the second user message requests a voice conversation summary; and in response provides the voice conversation summary in the chat interface. The computing system receives a third user message provided through the chat interface; determines that the third user message does not request any of a specified set of services; and in response provides the response to the third user message in the chat interface.
Need to check novelty before this filing date? Find Prior Art

Description

PROVIDING DATA FROM MULTIPLE SOURCES THROUGH INTERACTIVE CHATTECHNICAL FIELD

[0001] This document describes technologies to provide data from multiple sources through an interactive, computer-implemented chat interface.BACKGROUND

[0002] Individuals that work with many client contacts may regularly access stored information on those contacts, to facilitate work on projects for the client contacts and conversations with the client contacts. Accessing such information may be time consuming, requiring user interaction with multiple different interface screens to access desired information. Client contacts may also request information that requires comparing information from multiple different data sets, which may require detailed and time-consuming analysis of data. Accessing relevant information regarding the client contact may be burdensome and limit both the quality and productivity of user interactions with client contacts.SUMMARY

[0003] A computing system may provide a user device with an interactive chat interface that enables a user to access information from multiple different sources of data. The computing system may analyze a content of messages typed by the user into the interactive chat interface, and route the messages to various different systems with access to different sources of data, based on the content of the messages. A first source of data may be a computational model that is configured to analyze client contact records and provide summaries of those contact records, for presentation in the chat interface. Another source of data may be a computational model that is configured to analyze voice conversations in which client contacts participate (e.g., previous telephone calls between a user of the computing system and the client contact), and provide text summaries of those conversations in the chat interface. The computingsystem may interact with other dataset-specific computational models, and provide corresponding responses in the chat interface.

[0004] The computing system may embed, within the chat interface, user-selectable elements that provide a user with navigation from the chat interface to data that is relevant to a user message or a response thereto. For example, should a user message request a summary of a client contact record for a particular client contact, the computing system may control the chat interface to present not only a summary of the contact record for the relevant client contact, but also an interface element that upon user selection causes the user device at which the chat interface is presented to transition from presenting the chat interface to presenting a full contact record for the relevant client contact. The computing system may also respond to such a user message by controlling the chat interface to present, accompanying the summary of the contact record, an interface element that is user selectable to cause the user device to present a voice conversation summary in the chat interface.

[0005] The computing system may also interact with a computational model that is configured to process queries related to a wide variety of topics. Should a user interact with the chat interface to specify a message that is not determined to be answerable by one of the topic-specific computational models, the computing system may thereafter send the user message to the computational model that is configured to process queries related to the wide variety of topics. Each prompt that is sent to such a multipurpose computational model may include, in addition to the user message, additional prompt statements that are hidden from the user and that are configured to guide operation of the multi-purpose computational model. As such, queries sent to the multipurpose computational model can define a scope of user messages for which the multipurpose computational model is to provide a substantive response (e.g., a natural language response that answers a question stated in the user message, rather than a pre-specified message).

[0006] For example, queries sent to the multi-purpose computational model may specify particular data tables that the multi-purpose computational model is to consider in addressing the user message. Such queries may specify that the multi-purposecomputational model is to provide a pre-specified response message when user messages request information that is not provided by the data tables, with an example response message requesting that the user submit another message and providing suggested messages that the computational model is configured to answer. The suggested messages may be user-selectable, with user-selection causing the computing system to input the user-selected suggested message into the chat interface as if the user had typed the message themselves. Queries to the multi-purpose computational model may specify, in addition to the user message, how data in the tables is to be compared, guiding the multi-purpose computational model to respond to user messages with pre-determined constrains imposed on operation of the multipurpose computational model receiving the user message as an input. Other mechanisms may be implemented to control operation of the multi-purpose computational model using prompt statements that are hidden from the user.

[0007] By supporting a single chat interface with multiple different computational models, user interaction with their computing device may be more efficient and produce data that otherwise would be user-accessible only after user interaction with various interface screens. A computing system may provide different computational models with access to different sets of data within a larger software environment, increasing security of data stored by the software environment and helping guide the computational models to provide relevant responses. Computational models that access potentially-confidential client data may be limited to operating on specific portions of such client data, while a multi-purpose computational model that is able to operate on wide amounts of public data may be guided by hidden prompt statements to focus operation of the multi-purpose computational model to designated data sets.

[0008] The details of one or more embodiments are set forth in the accompanying drawings and the description below. Other features and advantages will be apparent from the description and drawings, and from the claims.BRIEF DESCRIPTION OF THE DRAWINGS

[0009] FIG. 1 shows an example system of computing devices.

[0010] FIG. 2 shows an example user interface provided by a user device.

[0011] FIG. 3 shows an example chat interface that provides data from multiple sources.

[0012] FIG. 4 shows a swim-lane diagram that illustrates actions performed to provide data from multiple sources through an interactive chat interface.

[0013] FIG. 5 shows a chat window that presents suggested questions.

[0014] FIG. 6 shows a flowchart of operations for processing a user message that requests a contact record summary.

[0015] FIGS. 7A-B show chat windows that present contact record summaries.

[0016] FIG. 8 shows a flowchart of operations for determining an identified user contact.

[0017] FIG. 9 shows a chat window that presents multiple candidate user contacts.

[0018] FIG. 10 shows a flowchart of operations for processing a user message that requests a voice conversation summary.

[0019] FIG. 11 shows a flowchart of operations for processing a user message with a multi-purpose computational model.

[0020] FIG. 12 shows a chat window that presents user messages and corresponding responses provided by a multi-purpose computational model.

[0021] FIG. 13 is a conceptual diagram of a system that may be used to implement the systems and methods described in this document.

[0022] FIG. 14 is a block diagram of computing devices that may be used to implement the systems and methods described in this document, as either a client or as a server or plurality of servers.

[0023] Like reference symbols in the various drawings indicate like elements.DETAILED DESCRIPTION OF ILLUSTRATIVE EMBODIMENTS

[0024] This document generally relates to technologies to provide data from multiple sources through interactive, computer-implemented chat systems. Such a chat system may be integrated into a larger ecosystem of computer processes that provide data for consideration by computational models that support operations of the chat interface.The larger ecosystem of computer processes may track and manage stored contact and transaction information for multiple client contacts. Example types of data accessible to the computer processes may include client biographical information, recordings of voice conversations with client contacts, indications of user interactions with the client contacts, and products assigned to the client contacts. FIGS. 1 and 2, and the description thereof, provide detail regarding this larger ecosystem of computer processes, while the subsequent figures and description focus on operation of the chat interface and supporting systems.

[0025] FIG. 1 shows an example system 100 of computing devices that provide for execution of multiple different computer processes. The system may store a large quantity of historical data on client contacts, with portions of the data accessible to computational models that are leveraged to provide custom responses to user messages in a chat interface. The system 100 includes a computing system 102, one or more user computing devices 104, one or more client contact computing devices 106, product-provider computing systems 108, and a network 118 enabling communications between various components of system 100.

[0026] Network 118 facilitates wireless or wired communications between components of the system 100 (e.g., between the backend system 102, the user computing devices(s) 104, and the client contact computing devices 106), as well as with other potential local or remote computers, such as additional mobile devices, clients, servers, or other devices communicably coupled to network 118. In the illustrated environment, the network 118 is depicted as a single network, but can comprise multiple networks communicating with each other.

[0027] Each of the user computing devices 104 and client contact computing devices 106 can be a mobile phone, laptop, desktop computer, tablet, wearable device, or a combination thereof. In general, the user computing devices 104 and the client computing devices 106 can communicate with the computing system 102 using network 118. The computing system 102 enables a user interacting with a user computing device 104 to access data stored by or accessible to the computing system 102 and interact with computer processes provided by the computing system 102.

[0028] The computing system 102 can include one or more computing servers and / or storage systems. As an example, the computing system 102 illustrated in FIG. 1 includes multiple servers 117 and data repositories 112. In some embodiments, one or more of the components mentioned above can be separate from, but accessible to, the computing system 102 via communication over the network 118. Computing system 102 includes an interface 114, which the computing system 102 is adapted to use to communicate with other systems in a distributed environment, including within the system 100.

[0029] The computing system 102 can be configured to provide information to the user computing devices 104 and the client contact computing devices to cause such devices to present a user interface specified by the provided information. For example, the computing system 102 can send webpage code, or code that specifies user interface aspects of an application program, for receipt by the user computing devices 104 and the client contact computing devices 106.

[0030] The data repository 112 represents one or more memory storage systems / devices, for example, a data store, a database, and / or cloud-based storage, or any combination thereof. The data repository 112 can be configured to store information regarding system users and client contacts. Example types of information include user profiles, client contact profiles, client contact demographic / biographic information, products assigned to client contacts, dates of enrollment in such products, and recordings of inbound and outbound voice conversations between a user and a client contact.

[0031] Computing system 102 can process information stored within data repository 112. As an example, the backend system 102 can use natural language processing technologies or other types of processes to transform recorded voice conversations stored in data repository 112 from encoded audio to text transcripts of the conversations.

[0032] The computing system 102 supports interaction between users and client contacts (e.g., between the user computing devices 104 and the client contact computing devices 106), via mobile applications and / or web pages installed on oraccessible to the respective computing devices 104 and 106. For example, a mobile application may provide users and / or client contacts with selectable options to contact (e.g., call, email, message) the other party. The computing system 102 can interact with the voice conversation service system 110 to record calls between a user and one of their client contacts.

[0033] As an illustration, during a voice conversation between a user and one of their client contacts, the voice conversation service system 110 can temporarily store a recording of the conversation in local storage. Once the voice conversation ends, the computing system 102 can retrieve the recording of the voice conversation from local storage of the voice conversation service system 110 and store the recording in the data repository 112 for long-term storage. The voice conversation service system 110 can be implemented as a server system that is configured to record and store inbound and outbound client calls.

[0034] The voice conversation service system 110 can be configured to assign a call routing number to a phone number of each client contact. As a result, whenever a user places a call with their phone number or they receive a call to their phone number, the call can be (i) automatically routed, via the call routing number, to a phone number of the user, and (ii) automatically recorded and saved, for example, in the data repository 112. Each system user may be assigned different sets of client contacts, such that an incoming call from a client contact is routed to a system user to which the client contact is assigned. Although the voice conversation service system 110 is shown as a separate component from the computing system 102, the voice conversation service system 110 may be integrated with the computing system 102.

[0035] The computing system 102 may be configured to identify client contacts that a corresponding user is to contact, for example, due to the client contact submitting a request for contact. For example, when a user is online and designated as available to interact with client contacts, the computing system 102 may transmit a message (e.g., push notification, alert) for presentation to the user, with the message indicating a client contact for which action is able to be performed. In response, the user may initiatecommunication with the client contact, for example, a voice conversation, email, or text message.

[0036] The product providers computing systems 108 may be operated by entities other than an entity that operates the computing system 102. The product provider computing systems 108 may provide information on products of potential interest to client contacts (e.g., physical devices, computerized subscription services, insurance plans). Such information may specify, for example, features provided by the products, dates of product availability, and expenses associated with such products.

[0037] As an illustration, a user at the user computing device 104 can select an option in a user interface presented at the user computing device 104 (e.g., based on information sent from computing system 102) to view products for which a particular client contact is eligible, with computing system 102 or user device 104 retrieving the relevant product information from the product providers computing system 108 upon user selection. User contacts may be able to interact with interfaces provided at the computing device 106 (e.g., based on information sent from computing system 102) to enroll in a particular product provided by one of the product providers. The user contacts may interact with such interfaces to sign, pay, and execute documentation involved in such enrollment processes.

[0038] FIG. 2 shows an example user interface 200 provided by a user device 104. The user interface 200 may be specified by information sent from computing system 102, for example, in response to a user selecting an interface element configured to cause presentation of user contacts and accompanying status. The user interface 200 may be presented in a mobile application, web page, or other application executing at least partially at the user computing device 104.

[0039] The user interface 200 can present names of multiple client contacts along with a status identifier for each such client contact. As illustrated by FIG. 2, information presented for the top-listed client contact includes a name 204 (“John Doe”) and a status identifier 206 (“Call Recorded”). The status identifier 206 may indicate a status of the associated client contact, such as a most-recent activity or a next activity to perform in a relationship between the client contact and the user assigned to that client contact.

[0040] FIG. 2 illustrates additional information 208 for the John Doe client contact, responsive to user input selecting a region of the user interface 200 at which the display of the user computing device 104 presents the name 204 and / or the status 206. For example, the additional information 208 may present additional information on the status 206, such as data regarding a recently recorded voice conversation between the user and the client contact. For a voice conversation, this additional information can include a date of the conversation, a length of the conversation, a phone number from which the call originated and / or was directed, an interface element to download a recording of the call, and one or more interface elements to add a note regarding the call. Some such information is shown in the FIG. 2 illustration.

[0041] The user interface 200 may also provide a mechanism to navigate to a presentation of a full contact record for a selected user contact. A full contact record may be a contract record listing that includes additional information regarding the client contact, such as one or more of a date of birth, data indicating a last date and type of communication with the client contact, a date at which the computing system is to send the user a reminder to contact the client contact, a preferred primary contact method, and / or one or more selectable controls / options to view, modify, and / or change information about the particular client.

[0042] The user interface 200 also includes a chat interface element 202, which is user selectable to cause the user computing device 104 to present a chat interface. The chat interface may be presented by a different interface screen, or a pop-up window that is presented over the interface 200. An example chat interface is illustrated by FIG. 3.

[0043] FIG. 3 shows an example chat interface that provides data from multiple sources. The chat interface 300 includes an input field 302, a display field 304, a send button 306, and a reset button 308. The display field 304 shows messages provided by user input in boxes aligned with a right side of the display field 304, and messages provided by the computing system 102 in boxes aligned with a left side of the display field 304. The display field 304 may be scrollable, such that user input may be provided to scroll up and down to view different portions of the chat history.

[0044] The input field 302 allows the user to provide user messages for consideration by the computing system 102 (e.g., portions thereof that handle natural language statements and route such statements to appropriate computational processes). User messages may be provided to the input field 302 via a virtual or physical keyboard. In some implementations, the computing system implements speech-to-text functionality that can be used to provide user messages for consideration by the computing system. Once a user message has been provided into the input field 302, the user can select the send button 306 to transmit the user message to the computing system 102 and to cause the user message to appear in the display field 304 as a most-recent user-specified message. A reset button 308 can be provided which can clear the conversation history, or otherwise refresh the context, allowing the user to retry different prompts or investigate another, unrelated user message.

[0045] In the illustrated example, the user has requested that the chat system “Provide a summary of the call with Mr. Hernandez.” The chat interface provides an initial computer-specified response of “Sure, one moment” while the computing system 102 accesses a call summary for the specified individual. A few moments later, the chat interface updates with an additional message that provides a summary of a most-recent call involving the specified individual. At this stage, the user could ask additional follow- on questions, or could reset the conversation and ask an unrelated question.

[0046] FIG. 4 shows a swim-lane diagram that illustrates actions performed by a user device and a computing system in providing data from multiple sources through an interactive chat interface.

[0047] At box 410, the user device displays a chat interface. For example, the user device 104 may display the chat interface 300 that is shown in FIG. 3. In some examples, upon a user navigating to the chat interface 300, the chat interface 300 may display the introductory content shown in chat window 500, which is shown in FIG. 5. The introductory content includes a greeting 510 (e.g., “Hi Rachel Swanson, how can I help you?”); a prompt 520 (e.g., “I’ve got a few suggestions below:”); and multiple suggested questions 530a-c (e.g., “Tell me about my client”, “Give me a call summary for my client”, and “Give me a summary for my contact”). Each of the suggestedquestions 530a-c may be displayed overlaid a corresponding selectable interface element, with the user computing device 104 configured to enter a user-selected one of the questions 530a-c into the chat interface 300 upon user selection. In some implementations, user selection can include, for example, a press on a touch screen at a location of display of the interface element, a mouse click, a keyboard selection, or other action taken by the user.

[0048] The user device 104 may display the chat interface 300 as a web page presented by a web browser application program, or as part of a non-browser downloadable mobile-device application program. In web page embodiments, instructions for rendering the web page may be provided by computing system 102. In downloadable application program embodiments, the application program may have been developed by an entity that operates the computing system 102. In both embodiments, the user device 104 is in communication with the computing system 102 to exchange user messages and responses thereto, both for presentation in the chat interface 300.

[0049] At box 420, the user device 104 determines whether a user message has been specified. For example, the user device 104 may monitor whether user input has typed a user message into the input field 302 and selected an enter key or the “Send” button 306 (see FIG. 3), or whether user input has selected one of the suggested questions 530a-c (see FIG. 5). If a user message has been provided, the user device 104 sends the user message for receipt by the computing system 102, as indicated by the left-pointing arrow labelled “Yes.” If no user message has been provided, the user device 104 continues to await an instruction indicating that a user message has been provided, as indicated by the downward-pointing arrow labelled “No.” In some implementations, after a predetermined period of time, the user interface may display an additional prompt. For example, if no input is received from the user in two minutes, a message stating, “Is there anything I can help you with?” may appear in the chat interface 300.

[0050] At box 430, the computing system receives the user message from the user device 104. For example, the computing system 102 receives a user message sentfrom the user device 104, with the user message having been specified through user interaction with the chat interface 300.

[0051] At box 440, the computing system determines whether the user message requests a contact record summary. For example, the computing system 102 may analyze a content of the user message to determine whether a structure of words in the user message match criteria for requesting a contact record summary. The message analysis may include natural language processing and / or phrase matching technologies. If the computing system determines that the user message requests a contact record summary, the computing system performs the operations illustrated by the flowchart of FIG. 6.

[0052] FIG. 6 shows a flowchart of operations for processing a user message that requests a contact record summary. The operations may be performed by a computing system (e.g., the computing system 102).

[0053] At box 800, the computing system determines an identified user contact. Operations for determining the identified user contact are illustrated in the flowchart of FIG. 8, which begins with box 810.

[0054] At box 810 (see FIG. 8) the computing system identifies whether the user message includes a user name. For example, the computing system may perform natural language processing and / or phrase matching technologies to determine whether any one or more words in the user message reference a user name.

[0055] Responsive to the computing system determining that a name as been identified in the user message, the computing system performs the operations of box 820, as illustrated by the “Name Identified” arrow in FIG. 8.

[0056] At box 820, the computing system determines whether the name from the user message matches a name of a contact record. For example, the computing system may perform one or more name-comparisons processes to compare the name from the user message to a collection of names for client contact records that are assigned to a user account that is signed into the computing system 102 and that submitted the user message.

[0057] Responsive to the computing system determining that a single matching name from a corresponding matching contact record has been determined to match the name from the user message, the computing system performs the operations of box 840.

[0058] At box 840, the computing system assigns the matching contact record as the identified user contact. The matching contact record may be a contact record with a client contact name that matches the name from the user message. Upon such assignment, the computing system may proceed to the operations of box 610 (see FIG. 6).

[0059] Returning to the operations of box 820 in FIG. 8, should the computing system determine that the name from the user message matches multiple names from contact records, the computing system proceeds to the operations of box 860.

[0060] At box 850, the computing system causes the user device 104 to present identifying information for the multiple matching names. For example, the computing system 102 may send information to the user device 104 to cause the chat interface 300 to present content from chat window 900 (see FIG. 9). Chat window 900 illustrates how the computing system 102 determined that the user is assigned two client contacts with the name “Jake Davis,” and caused the user device 104 to present information on each such user in the chat interface. The matching names may be those that are similar to a user-entered name, and need not be exact matching names. For example, a user message that only specifies “Jake” may return results for Jakes with different last names and / or Jacobs.

[0061] In some examples, user input selects one of the candidate names by typing information into the chat interface that specifies the relevant user name (e.g., by typing “The first-listed Jake” or “The Jake bom in 1945”). In some examples, the presentation of the matching client contact names are overlaid selectable interface elements 910a-b, which are user-selectable to instruct the system which “Jake Davis” the system is to assign as the identified user contact.

[0062] At box 860, the identifying information includes a name and date of birth for each contact. For example, the chat window 900 shows an address, a birthday, and an email address for each “Jake Davis” within the selectable interface elements 910a-b.

[0063] At box 870, the computing system assigns the user-specified client contact as the identified client contact. Upon such assignment, the computing system may proceed to the operations of box 610 (see FIG. 6).

[0064] Returning to the operations of box 820 in FIG. 8, should the computing system determine that the name from the user message does not match any name from the contact records assigned to the user account, the computing system proceeds to the operations of box 830.

[0065] At box 830, the computing causes the user device 104 to request that user input specify a name. For example, the computing system 102 may send information to the user device 104 to cause the user device 104 to present, in the chat interface 300, a system-generated message that states: “I could not find a matching contact record. Please enter the name of the client contact for which you would like to generate a contact summary.” Upon presentation of such a message, the computing system 102 may perform the operations of box 820 to determine whether the entered name matches a name of a contact record.

[0066] Returning to the operations of box 810, should the computing system not identify a name in the user message, the computing system 102 may perform the operations of box 830. For example, should a user message specify “Please generate a client contact summary” without specifying a name, the computing system may perform the operations of box 830 to prompt the user to specify a name of a client contact.

[0067] Returning to FIG. 6, upon having determined an identified user contact for which to generate a contact summary, the computing system proceeds to the operations of box 610, at which the computing system retrieves a contact record summary for the identified user contact.

[0068] At box 620, the computing system determines whether a stored copy of the contact record summary for the identified individual is available. For example, thecomputing system 102 may perform the operations of box 620 if the computing system is configured to pre-store (e.g., cache) contact record summaries. Responsive to the computing system determining that a stored copy of the contact record summary is not available, the computing system 102 performs the operations of box 640, as illustrated by the “No” arrow.

[0069] At box 640, the computing system sends the user message to a computational model that is configured to generate contact record summaries. In some examples, the computational model is hosted and executed by the computing system 102. In some examples, the computational model is hosted and executed by a third- party system. In some examples, the computational model is a machine-learning model trained on a dataset of contact records to generate summaries of such records. The machine-learning model may be implemented as a neural network. The machinelearning model may be implemented as a large language model. The machine-learning model may be a single-purpose computational model that is configured to receive a single contact record (e.g., data that populates contact record fields for a single client contact) and outputs one or more natural language phrase that summarizes information from the single contact record.

[0070] At box 650, the computing system receives the contact record summary from the computational model. For example, the computing system 102 receives the one or more natural language phrases that summarize the contact record information for the identified user contact.

[0071] At box 660, the computing system stores a copy of the contact record summary for the identified user contact. For example, the computing system may cache a copy of the contact record summary, to enable faster retrieval of such information upon a subsequent user request for such information. In some examples, the computing system does not pre-store or otherwise cache contact record summaries, such that box 610 does not perform the operations of boxes 620, 630, and 660.

[0072] Returning to box 620, responsive to the computing system determining that a stored copy of the contact record summary for the identified individual is available, the computing system performs the operations of box 630, by accessing the previously-stored copy of the contact record summary for the identified individual (e.g., from a cache or other type of memory structure).

[0073] At box 470a, the computing system sends information to the user device to cause the user device to present the contact record summary for the identified user contact. For example, the computing system 102 may send information to the user device 104 to cause the user device to present a contact record summary in the chat interface 300. Box 470a (see FIG. 6) is an example instance of the response described by box 470 (see FIG. 7) that is specific to the “contact record summary” branch of the flowchart in FIG. 4. Other instances of box 470 include box 470b (see FIG. 10) and box 470c (see FIG. 11), both of which are described in additional detail below with respect to the flowcharts of their corresponding figures.

[0074] At box 480 (see FIG. 4), the user device presents a response to the user message in the chat interface. For example, the user device 104 receives the system response from computing system 102, and presents the response in the chat interface 300. Example contact record summaries are illustrated in FIGS. 7A-B with chat windows 700 and 750. These chat windows include system-generated responses 710 and 760, which present multi-sentence, natural-language statements that were generated by the above-described computational model. Such contact record summaries may indicate client contact ages, dates of birth, home addresses, lists of enrolled products, and indications of recent activity between the system user and the specified client contact.

[0075] At box 670, the computing system causes presentation, in association with the contact record summary, of an interface element that is user selectable to present a contact record for the identified user contact. For example, the computing system 102 may send information to the user device 104 that causes the chat interface 300 to present a “View Contact” element, as illustrated by element 730 and 770 in FIGS. 7A-B. User selection of a “View Contact” element may cause the user device 104 to present a contact record for the identified individual, for example, by switching from the chat interface 300 to an interface for the contact record, or by presenting the interface for the contact record in a pop-up window overlaid the chat interface 300. The presentation ofthe contact record may include additional information regarding the identified individual (e.g., all information specified in the contact record summary, with additional details such as additional biographic and / or product history information).

[0076] At box 680, the computing system causes presentation, in association with the contact record summary, of an interface element that is user selectable to present a voice conversation summary for the identified user contact. For example, the computing system 102 may send information to the user device 104 that causes the chat interface 300 to present a “View Call Summary” element. Such an interface element is not shown in the chat windows of FIGS. 7A-B, but may be presented along with the “Ask Something Else” and “View Contact” buttons that are presented after the illustrated contact record summaries 710 and 760. User selection of a “View Call Summary” element may cause the chat interface 300 to present a call summary, as discussed in additional detail below with respect to FIG. 10.

[0077] Once the user device 104 has presented the system-generated response to the user message in the chat interface (see box 480), the user device 104 performs the operations of box 420 by determining whether another user message has been specified and acting accordingly upon receipt of such a message, for example, as described above beginning with the operations of box 430.

[0078] Returning to the operations illustrated in FIG. 4, should the computing system 102 not determine that the user message requests a contact record summary, the computing system 102 performs the operations of box 450.

[0079] At box 450, the computing system determines whether the user message requests a voice conversation summary. For example, the computing system 102 may analyze a content of the user message to determine whether a structure of words in the user message match criteria for requesting a voice conversation summary. The message analysis may include natural language processing and / or phrase matching technologies. If the computing system determines that the user message requests a contact record summary, the computing system performs the operations illustrated by the flowchart of FIG. 10.

[0080] FIG. 10 shows a flowchart of operations for processing a user message that requests a voice conversation summary. The operations may be performed by a computing system (e.g., the computing system 102).

[0081] At box 800, the computing system determines an identified user contact. Operations for determining the identified user contact are provided with respect to the flowchart of FIG. 8, as described above.

[0082] Upon having determined an identified user contact for which to generate a voice conversation summary, the computing system proceeds to the operations of box 1010, at which the computing system retrieves a voice conversation summary for the identified user contact.

[0083] At box 1020, the computing system determines whether a stored copy of the voice conversation summary for the identified individual is available. For example, the computing system 102 may perform the operations of box 1020 if the computing system is configured to pre-store (e.g., cache) voice conversation summaries. Responsive to the computing system determining that a stored copy of the voice conversation summary is not available, the computing system 102 performs the operations of box 1040, as illustrated by the “No” arrow.

[0084] At box 1040, the computing system sends the user message to a computational model that is configured to generate voice conversation summaries. In some examples, the computational model is hosted and executed by the computing system 102. In some examples, the computational model is hosted and executed by a third-party system. In some examples, the computational model is a machine-learning model trained on a dataset of voice conversations to generate summaries of such voice conversations. The machine-learning model may be implemented as a neural network. The machine-learning model may be implemented as a large language model. The machine-learning model may be a single-purpose computational model that is configured to receive a single voice conversation (e.g., data that encodes audio from a single voice conversation with a single client contact) and output one or more natural language phrases that summarize information from the single voice conversation.

[0085] At box 1050, the computational model may operate on audio data that encodes user speech. For example, the computational model may receive an audio file (e.g., a WAV file) as input. In some examples, the computational model may operate on text transcripts previously generated from such audio data.

[0086] At box 1060, the computing system receives the voice conversation summary from the computational model. For example, the computing system 102 receives the one or more natural language phrases that summarize the voice conversation with the identified client contact (e.g., a most-recent voice conversation with the client contact).

[0087] At box 1070, the computing system stores a copy of the voice conversation summary for the identified user contact. For example, the computing system may cache a copy of the voice conversation summary, to enable faster retrieval of such information upon a subsequent user request for such information. In some examples, the computing system does not pre-store or otherwise cache voice conversation summaries, such that box 1010 does not perform the operations of boxes 1020, 1030, and 1070.

[0088] Returning to box 1020, responsive to the computing system determining that a stored copy of the voice conversation summary for the identified individual is available, the computing system performs the operations of box 1030, by accessing the previously-stored copy of the voice conversation summary for the identified individual (e.g., from a cache or other type of memory structure).

[0089] At box 470b, the computing system sends information to the user device to cause the user device to present the voice conversation summary for the identified user contact. For example, the computing system 102 may send information to the user device 104 to cause the user device to present the voice conversation summary in the chat interface 300. Box 470b (see FIG. 10) is an example instance of box 470 (see FIG. 4) that is specific to the “voice conversation summary” branch of the flowchart in FIG. 4.

[0090] At box 480 (see FIG. 4), the user device presents the response to the user message in the chat interface. For example, the user device 104 receives the system response from computing system 102, and presents the response in the chat interface300. The voice conversation summary may be less than ten sentences of text that summarize a longer call (e.g., a call with more than thirty sentences of discussion).

[0091] Once the user device 104 has presented the system-generated response to the user message in the chat interface (see box 480), the user device 104 performs the operations of box 420 by determining whether another user message has been specified and acting accordingly upon receipt of such a message, for example, as described above beginning with the operations of box 430.

[0092] Returning to the operations illustrated in FIG. 4, should the computing system 102 not determine that the user message requests a voice conversation summary, the computing system 102 performs the operations of box 460.

[0093] At box 460, the computing system determines that the user message does not request the specified set of services. FIG. 4 illustrates two such specified services (e.g., generating a contact record summary, and generating a voice conversation summary), but the system may be configured to perform other specified services upon the user message satisfying certain criteria. The computing system 102 may analyze a user message for criteria satisfying the various specified services in any order (e.g., with box 450 performed first, and box 440 performed afterwards). The computing system 102 may perform the determination of box 460 only after the system determines that criteria for none of the specified services have been satisfied. Upon having determined that the user message does not request any of the specified set of services, the computing system performs the operations of the flowchart of FIG. 11 .

[0094] FIG. 11 shows a flowchart of operations for processing a user message that has been determined to not request any of the specified services. The operations illustrated by the FIG. 11 flowchart may be performed by the computing system 102.

[0095] At box 1110, the computing system sends a user message to a computational model that is configured to process and generate natural language statements. The computational model may be a multi-purpose computational model that is hosted by a third-party service. For example, the computational model may be a generative computational model (e.g., a large language model) that is configured to generate human-like conversational responses to user messages.

[0096] At box 1120, the computing system sends the user message as part of a prompt to the computational model. For example, the computing system 102 may include in the prompt both the user message and previously-specified statements to guide operation of the computational model as the computational model acts on the user message. Such previously-specified statements may be included in all such prompts that the computing system 102 sends to the multi-purpose computational model, such that all prompts sent to the computational model include the same previously-specified statements, with the user message differing from prompt to prompt.

[0097] At box 1130, the prompt specifies multiple tables of data that the multipurpose computational model is to consider in generating the response. For example, the prompt may include, in addition to the user message, the following pre-specified statement: “You are an Agent designed to help a user who sells products by interacting with a SQL database. You have access to two tables: "Table 1" (Products of Type X, offered in 2025) and "Table 2" (Products of Type Y, offered in 2025). These tables also contain prior-year (2024) products. You must always consider data from both tables, unless the query specifically pertains only to benefits unique to Products of Type X or Products of Type Y.”

[0098] In some examples, the computing system generates a prompt that includes the following statement, which guides the multi-purpose computational model in comparing product data between years: “If the question is about a prior year’s product (2024) and how it changed for 2025, use the ‘PRIORYEAR’ and ‘CURRENTYEAR’ columns and relevant ‘changes’ columns (‘STAR_RATING_CHANGE’, ‘AMOUNT_CHANGE’, etc.). Include results from both tables if needed.”

[0099] Even though the multi-purpose computational model may be able to answer user messages that request other types of information (e.g., the current weather, historical facts, food recipes), including such a pre-specified statement in the prompt can ensure that the multi-purpose computational model focuses its computation on data in the specified tables.

[0100] At box 1140, the prompt specifies that the response to the user message is to indicate that user input submit another message, responsive to the multi-purposecomputational model determining that the user message requests data not specified by the multiple tables of data. For example, the prompt may include the following prespecified statement: “If a query returns no data, respond: “I did not find any requests that matched your question.” As a result, the computing system may cause the chat interface 300 to list multiple candidate questions, for example: (1) “What are the new products available in Harris County, Texas for 2025”; (2) “Can you provide details about Product ID H0609 in Florida?”; (3) “Which products are offered in Maricopa County, Arizona”; and (4) “What are the changes in products from 2024 to 2025 in Cook County, Illinois.”

[0101] At box 1150, the prompt specifies that the response to the user message is to request a geographic location, responsive to the multi-purpose computational model determining that the user message does not satisfy criteria for specifying a geographic location. For example, the prompt may include the following pre-specified statement: “Many queries require State **and** County. If missing either, respond: ‘Please re-state your question to include the state and county. For example, you can ask ‘What products of Type X are available in Dallas County, Texas?’ If only a state is needed (like listing carriers in a state), do not require a county.’”

[0102] Although not illustrated in FIG. 11 , the prompt may include multiple other prespecified statements, in addition to including the user message. Another example prespecified statement addresses user messages that include superlatives, for example, as follows: “If asked: ‘Which is the best / top product?’ or similar without a numeric criterion, respond: ‘The most appropriate plan for your client contact is one that meets their individual needs. To find the [superlative] product, complete a needs analysis. If you want to compare specific details about multiple products, try asking about those details. For example, ask ‘Which products have the highest enrollment in [County, State]?’ or ‘Which products have the lowest Monthly Out of Pocket cost in [County, State]?”’

[0103] At box 1160, the computing system receives, from the computational model, a response to the prompt. For example, the computing system 102 may receive a response from the multi-purpose computational model.

[0104] At box 470c (see FIG. 11), the computing system sends information to the user device to cause the user device to present the response generated by the multipurpose computational model. For example, the computing system 102 may send information to the user device 104 to cause the user device to present the response in the chat interface 300. Box 470c (see FIG. 11 ) is an example instance of the response described by box 470 (see FIG. 4) that is specific to the “User message does not request specified services” branch of the flowchart in FIG. 4.

[0105] Returning to FIG. 4, at box 480, the user device presents the response to the user message in the chat interface. For example, the user device 104 receives the response generated by the multi-purpose computational model from computing system 102, and presents the response in the chat interface 300.

[0106] FIG. 12 shows a chat window 1200 that includes two example responses generated by the multi-purpose computational model. In particular, the chat window 1200 includes a first user message requesting the “lowest out of pocket” product options in Dallas, with a response generated by the multi-purpose computational model that lists five different product options and their corresponding costs. A second user message in the chat window 1200 requests that the system “Compare the lowest out of pocket” products in Dallas “from last year to this year,” with a response generated by the multipurpose computational model that shows features of a single product from 2025 and a single product from 2024.

[0107] Once the user device 104 has presented the system-generated response to the user message in the chat interface (see box 480), the user device 104 performs the operations of box 420 by determining whether another user message has been specified and acting accordingly upon receipt of such a message, for example, as described above beginning with the operations of box 430.

[0108] Referring now to FIG. 13, a conceptual diagram of a system that may be used to implement the systems and methods described in this document is illustrated. In the system, mobile computing device 1310 can wirelessly communicate with base station 1340, which can provide the mobile computing device wireless access to numerous hosted services 1360 through a network 1350.

[0109] In this illustration, the mobile computing device 1310 is depicted as a handheld mobile telephone (e.g., a smartphone, or an application telephone) that includes a touchscreen display device 1312 for presenting content to a user of the mobile computing device 1310 and receiving touch-based user inputs and / or presencesensitive user input (e.g., as detected over a surface of the computing device using radar detectors mounted in the mobile computing device 510). Other visual, tactile, and auditory output components may also be provided (e.g., LED lights, a vibrating mechanism for tactile output, or a speaker for providing tonal, voice-generated, or recorded output), as may various different input components (e.g., keyboard 1314, physical buttons, trackballs, accelerometers, gyroscopes, and magnetometers).

[0110] Example visual output mechanism in the form of display device 1312 may take the form of a display with resistive or capacitive touch capabilities. The display device may be for displaying video, graphics, images, and text, and for coordinating user touch input locations with the location of displayed information so that the device 1310 can associate user contact at a location of a displayed item with the item. The mobile computing device 1310 may also take alternative forms, including as a laptop computer, a tablet or slate computer, a personal digital assistant, an embedded system (e.g., a car navigation system), a desktop personal computer, or a computerized workstation.

[0111] An example mechanism for receiving user-input includes keyboard 1314, which may be a full qwerty keyboard or a traditional keypad that includes keys for the digits ‘0-9’, andThe keyboard 1314 receives input when a user physically contacts or depresses a keyboard key. User manipulation of a trackball 1316 or interaction with a track pad enables the user to supply directional and rate of movement information to the mobile computing device 1310 (e.g., to manipulate a position of a cursor on the display device 1312).

[0112] The mobile computing device 1310 may be able to determine a position of physical contact with the touchscreen display device 1312 (e.g., a position of contact by a finger or a stylus). Using the touchscreen 1312, various “virtual” input mechanismsmay be produced, where a user interacts with a graphical user interface element depicted on the touchscreen 1312 by contacting the graphical user interface element. An example of a “virtual” input mechanism is a “software keyboard,” where a keyboard is displayed on the touchscreen and a user selects keys by pressing a region of the touchscreen 1312 that corresponds to each key.

[0113] The mobile computing device 1310 may include mechanical or touch sensitive buttons 1318a-d. Additionally, the mobile computing device may include buttons for adjusting volume output by the one or more speakers 1320, and a button for turning the mobile computing device on or off. A microphone 1322 allows the mobile computing device 1310 to convert audible sounds into an electrical signal that may be digitally encoded and stored in computer-readable memory, or transmitted to another computing device. The mobile computing device 1310 may also include a digital compass, an accelerometer, proximity sensors, and ambient light sensors.

[0114] An operating system may provide an interface between the mobile computing device’s hardware (e.g., the input / output mechanisms and a processor executing instructions retrieved from computer-readable medium) and software. Example operating systems include ANDROID, CHROME, IOS, MAC OS X, WINDOWS 7, WINDOWS PHONE 7, SYMBIAN, BLACKBERRY, WEBOS,, a variety of UNIX operating systems; or a proprietary operating system for computerized devices. The operating system may provide a platform for the execution of application programs that facilitate interaction between the computing device and a user.

[0115] The mobile computing device 1310 may present a graphical user interface with the touchscreen 1312. A graphical user interface is a collection of one or more graphical interface elements and may be static (e.g., the display appears to remain the same over a period of time), or may be dynamic (e.g., the graphical user interface includes graphical interface elements that animate without user input).

[0116] A graphical interface element may be text, lines, shapes, images, or combinations thereof. For example, a graphical interface element may be an icon thatis displayed on the desktop and the icon’s associated text. In some examples, a graphical interface element is selectable with user-input. For example, a user may select a graphical interface element by pressing a region of the touchscreen that corresponds to a display of the graphical interface element. In some examples, the user may manipulate a trackball to highlight a single graphical interface element as having focus. User-selection of a graphical interface element may invoke a pre-defined action by the mobile computing device. In some examples, selectable graphical interface elements further or alternatively correspond to a button on the keyboard 1314. User-selection of the button may invoke the pre-defined action.

[0117] In some examples, the operating system provides a “desktop” graphical user interface that is displayed after turning on the mobile computing device 1310, after activating the mobile computing device 1310 from a sleep state, after “unlocking” the mobile computing device 1310, or after receiving user-selection of the “home” button 1318c. The desktop graphical user interface may display several graphical interface elements that, when selected, invoke corresponding application programs. An invoked application program may present a graphical interface that replaces the desktop graphical user interface until the application program terminates or is hidden from view.

[0118] User-input may influence an executing sequence of mobile computing device 1310 operations. For example, a single-action user input (e.g., a single tap of the touchscreen, swipe across the touchscreen, contact with a button, or combination of these occurring at a same time) may invoke an operation that changes a display of the user interface. Without the user-input, the user interface may not have changed at a particular time. For example, a multi-touch user input with the touchscreen 1312 may invoke a mapping application to “zoom-in” on a location, even though the mapping application may have by default zoomed-in after several seconds.

[0119] The desktop graphical interface can also display “widgets.” A widget is one or more graphical interface elements that are associated with an application program that is executing, and that display on the desktop content controlled by the executing application program. A widget’s application program may launch as the mobile deviceturns on. Further, a widget may not take focus of the full display. Instead, a widget may only “own” a small portion of the desktop, displaying content and receiving touchscreen user-input within the portion of the desktop.

[0120] The mobile computing device 1310 may include one or more locationidentification mechanisms. A location-identification mechanism may include a collection of hardware and software that provides the operating system and application programs an estimate of the mobile device’s geographical position. A location-identification mechanism may employ satellite-based positioning techniques, base station transmitting antenna identification, multiple base station triangulation, internet access point IP location determinations, inferential identification of a user’s position based on search engine queries, and user-supplied identification of location (e.g., by receiving user a “check in” to a location).

[0121] The mobile computing device 1310 may include other applications, computing sub-systems, and hardware. A call handling unit may receive an indication of an incoming telephone call and provide a user the capability to answer the incoming telephone call. A media player may allow a user to listen to music or play movies that are stored in local memory of the mobile computing device 1310. The mobile computing device 1310 may include a digital camera sensor, and corresponding image and video capture and editing software. An internet browser may enable the user to view content from a web page by typing in an addresses corresponding to the web page or selecting a link to the web page.

[0122] The mobile computing device 1310 may include an antenna to wirelessly communicate information with the base station 1340. The base station 1340 may be one of many base stations in a collection of base stations (e.g., a mobile telephone cellular network) that enables the mobile computing device 1310 to maintain communication with a network 1350 as the mobile computing device is geographically moved. The computing device 1310 may alternatively or additionally communicate with the network 1350 through a Wi-Fi router or a wired connection (e.g., ETHERNET, USB, or FIREWIRE). The computing device 1310 may also wirelessly communicate withother computing devices using BLUETOOTH protocols, or may employ an ad-hoc wireless network.

[0123] A service provider that operates the network of base stations may connect the mobile computing device 1310 to the network 1350 to enable communication between the mobile computing device 1310 and other computing systems that provide services 1360. Although the services 1360 may be provided over different networks (e.g., the service provider’s internal network, the Public Switched Telephone Network, and the Internet), network 1350 is illustrated as a single network. The service provider may operate a server system 1352 that routes information packets and voice data between the mobile computing device 1310 and computing systems associated with the services 1360.

[0124] The network 1350 may connect the mobile computing device 1310 to the Public Switched Telephone Network (PSTN) 1362 in order to establish voice or fax communication between the mobile computing device 1310 and another computing device. For example, the service provider server system 1352 may receive an indication from the PSTN 1362 of an incoming call for the mobile computing device 1310. Conversely, the mobile computing device 1310 may send a communication to the service provider server system 1352 initiating a telephone call using a telephone number that is associated with a device accessible through the PSTN 1362.

[0125] The network 1350 may connect the mobile computing device 1310 with a Voice over Internet Protocol (VoIP) service 1364 that routes voice communications over an IP network, as opposed to the PSTN. For example, a user of the mobile computing device 1310 may invoke a VoIP application and initiate a call using the program. The service provider server system 1352 may forward voice data from the call to a VoIP service, which may route the call over the internet to a corresponding computing device, potentially using the PSTN for a final leg of the connection.

[0126] An application store 1366 may provide a user of the mobile computing device 1310 the ability to browse a list of remotely stored application programs that the usermay download over the network 1350 and install on the mobile computing device 1310. The application store 1366 may serve as a repository of applications developed by third- party application developers. An application program that is installed on the mobile computing device 1310 may be able to communicate over the network 1350 with server systems that are designated for the application program. For example, a VoIP application program may be downloaded from the Application Store 1366, enabling the user to communicate with the VoIP service 1364.

[0127] The mobile computing device 1310 may access content on the internet 1368 through network 1350. For example, a user of the mobile computing device 1310 may invoke a web browser application that requests data from remote computing devices that are accessible at designated universal resource locations. In various examples, some of the services 1360 are accessible over the internet.

[0128] The mobile computing device may communicate with a personal computer 1370. For example, the personal computer 1370 may be the home computer for a user of the mobile computing device 1310. Thus, the user may be able to stream media from his personal computer 1370. The user may also view the file structure of his personal computer 1370, and transmit selected documents between the computerized devices.

[0129] A voice recognition service 1372 may receive voice communication data recorded with the mobile computing device’s microphone 1322, and translate the voice communication into corresponding textual data. In some examples, the translated text is provided to a search engine as a web query, and responsive search engine search results are transmitted to the mobile computing device 1310.

[0130] The mobile computing device 1310 may communicate with a social network 1374. The social network may include numerous members, some of which have agreed to be related as acquaintances. Application programs on the mobile computing device 1310 may access the social network 1374 to retrieve information based on the acquaintances of the user of the mobile computing device. For example, an “address book” application program may retrieve telephone numbers for the user’sacquaintances. In various examples, content may be delivered to the mobile computing device 1310 based on social network distances from the user to other members in a social network graph of members and connecting relationships. For example, advertisement and news article content may be selected for the user based on a level of interaction with such content by members that are “close” to the user (e.g., members that are “friends” or “friends of friends”).

[0131] The mobile computing device 1310 may access a personal set of contacts 1376 through network 1350. Each contact may identify an individual and include information about that individual (e.g., a phone number, an email address, and a birthday). Because the set of contacts is hosted remotely to the mobile computing device 1310, the user may access and maintain the contacts 1376 across several devices as a common set of contacts.

[0132] The mobile computing device 1310 may access cloud-based application programs 1378. Cloud-computing provides application programs (e.g., a word processor or an email program) that are hosted remotely from the mobile computing device 1310, and may be accessed by the device 1310 using a web browser or a dedicated program. Example cloud-based application programs include GOOGLE DOCS word processor and spreadsheet service, GOOGLE GMAIL webmail service, and PICASA picture manager.

[0133] Mapping service 1380 can provide the mobile computing device 1310 with street maps, route planning information, and satellite images. An example mapping service is GOOGLE MAPS. The mapping service 1380 may also receive queries and return location-specific results. For example, the mobile computing device 1310 may send an estimated location of the mobile computing device and a user-entered query for “pizza places” to the mapping service 1380. The mapping service 1380 may return a street map with “markers” superimposed on the map that identify geographical locations of nearby “pizza places.”

[0134] Turn-by-turn service 1382 may provide the mobile computing device 1310 with turn-by-turn directions to a user-supplied destination. For example, the turn-by-turn service 1382 may stream to device 1310 a street-level view of an estimated location of the device, along with data for providing audio commands and superimposing arrows that direct a user of the device 1310 to the destination.

[0135] Various forms of streaming media 1384 may be requested by the mobile computing device 1310. For example, computing device 1310 may request a stream for a pre-recorded video file, a live television program, or a live radio program. Example services that provide streaming media include YOUTUBE and PANDORA.

[0136] A micro-blogging service 1386 may receive from the mobile computing device 1310 a user-input post that does not identify recipients of the post. The micro-blogging service 1386 may disseminate the post to other members of the micro-blogging service 1386 that agreed to subscribe to the user.

[0137] A search engine 1388 may receive user-entered textual or verbal queries from the mobile computing device 1310, determine a set of internet-accessible documents that are responsive to the query, and provide to the device 1310 information to display a list of search results for the responsive documents. In examples where a verbal query is received, the voice recognition service 1372 may translate the received audio into a textual query that is sent to the search engine.

[0138] These and other services may be implemented in a server system 1390. A server system may be a combination of hardware and software that provides a service or a set of services. For example, a set of physically separate and networked computerized devices may operate together as a logical server system unit to handle the operations necessary to offer a service to hundreds of computing devices. A server system is also referred to herein as a computing system.

[0139] In various implementations, operations that are performed “in response to” or “as a consequence of” another operation (e.g., a determination or an identification) are not performed if the prior operation is unsuccessful (e.g., if the determination was notperformed). Operations that are performed “automatically” are operations that are performed without user intervention (e.g., intervening user input). Features in this document that are described with conditional language may describe implementations that are optional. In some examples, “transmitting” from a first device to a second device includes the first device placing data into a network for receipt by the second device, but may not include the second device receiving the data. Conversely, “receiving” from a first device may include receiving the data from a network, but may not include the first device transmitting the data.

[0140] “Determining” by a computing system can include the computing system requesting that another device perform the determination and supply the results to the computing system. Moreover, “displaying” or “presenting” by a computing system can include the computing system sending data for causing another device to display or present the referenced information.

[0141] FIG. 14 is a block diagram of computing devices 1400, 1450 that may be used to implement the systems and methods described in this document, as either a client or as a server or plurality of servers. Computing device 1400 is intended to represent various forms of digital computers, such as laptops, desktops, workstations, personal digital assistants, servers, blade servers, mainframes, and other appropriate computers. Computing device 1450 is intended to represent various forms of mobile devices, such as personal digital assistants, cellular telephones, smartphones, and other similar computing devices. The components shown here, their connections and relationships, and their functions, are meant to be examples only, and are not meant to limit implementations described and / or claimed in this document.

[0142] Computing device 1400 includes a processor 1402, memory 1404, a storage device 1406, a high-speed controller 1408 connecting to memory 1404 and high-speed expansion ports 1410, and a low speed controller 1412 connecting to low speed expansion port 1414 and storage device 1406. Each of the components 1402, 1404, 1406, 1408, 1410, and 1412, are interconnected using various busses, and may be mounted on a common motherboard or in other manners as appropriate. Theprocessor 1402 can process instructions for execution within the computing device 1400, including instructions stored in the memory 1404 or on the storage device 1406 to display graphical information for a GUI on an external input / output device, such as display 1416 coupled to high-speed controller 1408. In other implementations, multiple processors and / or multiple buses may be used, as appropriate, along with multiple memories and types of memory. Also, multiple computing devices 1400 may be connected, with each device providing portions of the necessary operations (e.g., as a server bank, a group of blade servers, or a multi-processor system).

[0143] The memory 1404 stores information within the computing device 1400. In one implementation, the memory 1404 is a volatile memory unit or units. In another implementation, the memory 1404 is a non-volatile memory unit or units. The memory 1404 may also be another form of computer-readable medium, such as a magnetic or optical disk.

[0144] The storage device 1406 is capable of providing mass storage for the computing device 1400. In one implementation, the storage device 1406 may be or contain a computer-readable medium, such as a floppy disk device, a hard disk device, an optical disk device, or a tape device, a flash memory or other similar solid state memory device, or an array of devices, including devices in a storage area network or other configurations. A computer program product can be tangibly embodied in an information carrier. The computer program product may also contain instructions that, when executed, perform one or more methods, such as those described above. The information carrier is a computer- or machine-readable medium, such as the memory 1404, the storage device 1406, or memory on processor 1402.

[0145] The high-speed controller 1408 manages bandwidth-intensive operations for the computing device 1400, while the low speed controller 1412 manages lower bandwidth-intensive operations. Such allocation of functions is an example only. In one implementation, the high-speed controller 1408 is coupled to memory 1404, display 1416 (e.g., through a graphics processor or accelerator), and to high-speed expansion ports 1410, which may accept various expansion cards (not shown). In theimplementation, low-speed controller 1412 is coupled to storage device 1406 and low- speed expansion port 1414. The low-speed expansion port, which may include various communication ports (e.g., USB, Bluetooth, Ethernet, wireless Ethernet) may be coupled to one or more input / output devices, such as a keyboard, a pointing device, a scanner, or a networking device such as a switch or router, e.g., through a network adapter.

[0146] The computing device 1400 may be implemented in a number of different forms, as shown in the figure. For example, it may be implemented as a standard server 1420, or multiple times in a group of such servers. It may also be implemented as part of a rack server system 1424. In addition, it may be implemented in a personal computer such as a laptop computer 1422. Alternatively, components from computing device 1400 may be combined with other components in a mobile device (not shown), such as device 1450. Each of such devices may contain one or more of computing device 1400, 1450, and an entire system may be made up of multiple computing devices 1400, 1450 communicating with each other.

[0147] Computing device 1450 includes a processor 1452, memory 1464, an input / output device such as a display 1454, a communication interface 1466, and a transceiver 1468, among other components. The device 1450 may also be provided with a storage device, such as a microdrive or other device, to provide additional storage. Each of the components 1450, 1452, 1464, 1454, 1466, and 1468, are interconnected using various buses, and several of the components may be mounted on a common motherboard or in other manners as appropriate.

[0148] The processor 1452 can execute instructions within the computing device 1450, including instructions stored in the memory 1464. The processor may be implemented as a chipset of chips that include separate and multiple analog and digital processors. Additionally, the processor may be implemented using any of a number of architectures. For example, the processor may be a CISC (Complex Instruction Set Computers) processor, a RISC (Reduced Instruction Set Computer) processor, or a MISC (Minimal Instruction Set Computer) processor. The processor may provide, forexample, for coordination of the other components of the device 1450, such as control of user interfaces, applications run by device 1450, and wireless communication by device 1450.

[0149] Processor 1452 may communicate with a user through control interface 1458 and display interface 1456 coupled to a display 1454. The display 1454 may be, for example, a TFT (Thin-Film-Transistor Liquid Crystal Display) display or an OLED (Organic Light Emitting Diode) display, or other appropriate display technology. The display interface 1456 may comprise appropriate circuitry for driving the display 1454 to present graphical and other information to a user. The control interface 1458 may receive commands from a user and convert them for submission to the processor 1452. In addition, an external interface 1462 may be provide in communication with processor 1452, so as to enable near area communication of device 1450 with other devices. External interface 1462 may provided, for example, for wired communication in some implementations, or for wireless communication in other implementations, and multiple interfaces may also be used.

[0150] The memory 1464 stores information within the computing device 1450. The memory 1464 can be implemented as one or more of a computer-readable medium or media, a volatile memory unit or units, or a non-volatile memory unit or units.Expansion memory 1474 may also be provided and connected to device 1450 through expansion interface 1472, which may include, for example, a SIMM (Single In Line Memory Module) card interface. Such expansion memory 1474 may provide extra storage space for device 1450, or may also store applications or other information for device 1450. Specifically, expansion memory 1474 may include instructions to carry out or supplement the processes described above, and may include secure information also. Thus, for example, expansion memory 1474 may be provide as a security module for device 1450, and may be programmed with instructions that permit secure use of device 1450. In addition, secure applications may be provided via the SIMM cards, along with additional information, such as placing identifying information on the SIMM card in a non-hackable manner.

[0151] The memory may include, for example, flash memory and / or NVRAM memory, as discussed below. In one implementation, a computer program product is tangibly embodied in an information carrier. The computer program product contains instructions that, when executed, perform one or more methods, such as those described above. The information carrier is a computer- or machine-readable medium, such as the memory 1464, expansion memory 1474, or memory on processor 1452 that may be received, for example, over transceiver 1468 or external interface 1462.

[0152] Device 1450 may communicate wirelessly through communication interface 1466, which may include digital signal processing circuitry where necessary.Communication interface 1466 may provide for communications under various modes or protocols, such as GSM voice calls, SMS, EMS, or MMS messaging, CDMA, TDMA, PDC, WCDMA, CDMA2000, or GPRS, among others. Such communication may occur, for example, through radio-frequency transceiver 1468. In addition, short-range communication may occur, such as using a Bluetooth, WiFi, or other such transceiver (not shown). In addition, GPS (Global Positioning System) receiver module 1470 may provide additional navigation- and location-related wireless data to device 1450, which may be used as appropriate by applications running on device 1450.

[0153] Device 1450 may also communicate audibly using audio codec 1460, which may receive spoken information from a user and convert it to usable digital information. Audio codec 1460 may likewise generate audible sound for a user, such as through a speaker, e.g., in a handset of device 1450. Such sound may include sound from voice telephone calls, may include recorded sound (e.g., voice messages, music files, etc.) and may also include sound generated by applications operating on device 1450.

[0154] The computing device 1450 may be implemented in a number of different forms, as shown in the figure. For example, it may be implemented as a cellular telephone 1480. It may also be implemented as part of a smartphone 1482, personal digital assistant, or other similar mobile device.

[0155] Additionally computing device 1400 or 1450 can include Universal Serial Bus (USB) flash drives. The USB flash drives may store operating systems and other applications. The USB flash drives can include input / output components, such as a wireless transmitter or USB connector that may be inserted into a USB port of another computing device.

[0156] Various implementations of the systems and techniques described here can be realized in digital electronic circuitry, integrated circuitry, specially designed ASICs (application specific integrated circuits), computer hardware, firmware, software, and / or combinations thereof. These various implementations can include implementation in one or more computer programs that are executable and / or interpretable on a programmable system including at least one programmable processor, which may be special or general purpose, coupled to receive data and instructions from, and to transmit data and instructions to, a storage system, at least one input device, and at least one output device.

[0157] These computer programs (also known as programs, software, software applications or code) include machine instructions for a programmable processor, and can be implemented in a high-level procedural and / or object-oriented programming language, and / or in assembly / machine language. As used herein, the terms “machine- readable medium” “computer-readable medium” refers to any computer program product, apparatus and / or device (e.g., magnetic discs, optical disks, memory, Programmable Logic Devices (PLDs)) used to provide machine instructions and / or data to a programmable processor, including a machine-readable medium that receives machine instructions as a machine-readable signal. The term “machine-readable signal” refers to any signal used to provide machine instructions and / or data to a programmable processor.

[0158] To provide for interaction with a user, the systems and techniques described here can be implemented on a computer having a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to the user and a keyboard and a pointing device (e.g., a mouse or a trackball) by which the usercan provide input to the computer. Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and input from the user can be received in any form, including acoustic, speech, or tactile input.

[0159] The systems and techniques described here can be implemented in a computing system that includes a back end component (e.g., as a data server), or that includes a middleware component (e.g., an application server), or that includes a front end component (e.g., a client computer having a graphical user interface or a Web browser through which a user can interact with an implementation of the systems and techniques described here), or any combination of such back end, middleware, or front end components. The components of the system can be interconnected by any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include a local area network (“LAN”), a wide area network (“WAN”), peer-to-peer networks (having ad-hoc or static members), grid computing infrastructures, and the Internet.

[0160] The computing system can include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.

[0161] As additional description to the embodiments described above, the present disclosure describes the following embodiments.

[0162] Embodiment A1 is directed to a method that comprises: receiving, at a backend system and from an agent device, a request to initiate a chat conversation; sending, to the agent device, a graphical user interface (GUI) representing the chat conversation; initiating an Al model in the backend system configured to respond to text prompts, wherein initiating the Al model comprises loading a context of the agent device, wherein the Al model is a trained neural network; receiving a prompt from theagent device via the GUI; obtaining, by the backend system, a response to the prompt from the Al model, the response based on the prompt and the loaded context; and sending the response to the agent device for presentation by the GUI.

[0163] Embodiment A2 is directed to the method of embodiment A1 , wherein the Al model is a large language model.

[0164] Embodiment A3 is directed to the method of any one of Embodiments A1-A2, wherein the context comprises a state of an application executing on the agent device when the request to initiate the chat conversation was transmitted from the agent device.

[0165] Embodiment A4 is directed to the method of Embodiment A3, wherein generating the response comprises querying a database at the backend system and receiving data associated with the state of the application executing on the agent device.

[0166] Embodiment A5 is directed to the method of any one of Embodiments A1-A4, wherein the prompt is a first prompt, the method comprising: receiving a second prompt from the agent device via the GUI; and generating, by the Al model, a second response based on the first prompt, the second prompt, and the loaded context.

[0167] Embodiment A6 is directed to the method of any one of Embodiments A1-A5, wherein the response is an audio response generated by converting a text output of the Al model into synthesized speech.

[0168] Embodiment A7 is directed to the method of any one of Embodiments A1-A6, wherein the response comprises one or more hyperlinks, and wherein the one or more hyperlinks are presented within the GUI as selectable links.

[0169] Embodiment A8 is directed to a non-transitory, computer-readable medium storing one or more instructions executable by a computer system to perform the method of any one of Embodiments A1-A7.

[0170] Embodiment A9 is directed to a computer-implemented system, comprising: one or more computers; and one or more computer memory devices interoperably coupled with the one or more computers and having tangible, non-transitory, machine-readable media storing one or more instructions that, when executed by the one or more computers, perform the method of any one of Embodiments A1-A7.

[0171] Embodiment B1 is directed to a method to provide data from multiple sources through interactive chat, the method comprising: receiving, by a computing system, a first user message provided through first user interaction with a chat interface that is presented by a user device; determining, by the computing system based on analysis of the first user message, that the first user message requests a contact record summary, and in response: (i) retrieving, by the computing system, the contact record summary for a first identified user contact; and (ii) providing, by the computing system, information to cause the user device to present, in the chat interface following a presentation of the first user message in the chat interface, the contact record summary for the first identified user contact; receiving, by the computing system, a second user message provided through second user interaction with the chat interface; determining, by the computing system based on analysis of the second user message, that the second user message requests a voice conversation summary, and in response: (i) retrieving, by the computing system, the voice conversation summary for a second identified user contact; and (ii) providing, by the computing system, information to cause the user device to present, in the chat interface following a presentation of the second user message in the chat interface, the voice conversation summary for the second identified user contact; receiving, by the computing system, a third user message provided through third user interaction with the chat interface; determining, by the computing system based on analysis of the third user message, that the third user message does not request any service in a specified set of services that includes requesting the contact record summary and requesting the voice conversation summary, and in response: (i) sending, by the computing system, the third user message to a computational model configured to process and generate natural language statements; (ii) receiving, by the computing system and from the computational model that is configured to process and generate natural language statements, a response to the third user message; and (iii) providing, by the computing system, information to causethe user device to present, in the chat interface following a presentation of the third user message in the chat interface, the response to the third user message.

[0172] Embodiment B2 is directed to the computer-implemented method of Embodiment B1 , wherein the first user interaction with the chat interface includes typing the first user message into the chat interface.

[0173] Embodiment B3 is directed to the computer-implemented method of any one of Embodiments B1-B2, wherein the first user interaction with the chat interface includes user selection of the first user message, from among multiple candidate questions presented by the chat interface.

[0174] Embodiment B4 is directed to the computer-implemented method of any one of Embodiments B1-B3, wherein retrieving the contact record summary for the first identified user contact includes: identifying, by the computing system, a user name in the first user message; and determining, by the computing system, that the user name in the first user message matches a user name specified by the first identified user contact, from among a collection of user contacts.

[0175] Embodiment B5 is directed to the computer-implemented method of any one of Embodiments B1-B4, wherein retrieving the contact record summary for the first identified user contact includes: identifying, by the computing system, a user name in the first user message; determining, by the computing system, that the user name in the first user message corresponds to user names specified by multiple candidate user contacts, from among a collection of user contacts; providing, by the computing system, information to cause the user device to present, in the chat interface, identifying information for each of the multiple candidate user contacts; and receiving, by the computing system, an indication that third user interaction with the chat interface selected the identifying information for the first identified user contact, from among the presentation in the chat interface of the identifying information for each of the multiple candidate user contacts.

[0176] Embodiment B6 is directed to the computer-implemented method of Embodiment 5, wherein: the identifying information presented in the chat interface foreach of the multiple candidate user contacts includes, for each respective candidate user contact, a name and date of birth for the respective user contact.

[0177] Embodiment B7 is directed to the computer-implemented method of any one of Embodiments B1-B6, wherein retrieving the contact record summary for the first user contact includes: sending, by the computing system, the first user message to a computational model configured to generate contact record summaries from contact records that are accessible to the computing system, wherein the computational model configured to generate the contact record summaries is different from the computational model configured to process and generate the natural language statements; and receiving, by the computing system, the contact record summary for the first identified user contact from the computational model configured to generate contact record summaries.

[0178] Embodiment B8 is directed to the computer-implemented method of any one of Embodiments B1-B7, wherein retrieving the contact record summary for the first user contact includes: accessing, by the computing system, a stored copy of the contact record summary for the first user contact that was previously generated by a computational model configured to generate contact record summaries from contact records that are accessible to the computing system, wherein the computational model configured to generate the contact record summaries is different from the computational model configured to process and generate the natural language statements.

[0179] Embodiment B9 is directed to the computer-implemented method of any one of Embodiments B1-B8, wherein retrieving the voice conversation summary for the second identified user contact includes: sending, by the computing system, the second user message to a computational model configured to generate voice conversation summaries from stored voice conversations that are accessible to the computing system, wherein the computational model configured to generate voice conversation summaries is different from the computational model configured to process and generate the natural language statements.

[0180] Embodiment B10 is directed to the computer-implemented method of Embodiment 9, wherein the computational model configured to generate voiceconversation summaries is different from the computational model configured to generate contact record summaries.

[0181] Embodiment B11 is directed to the computer-implemented method of any one of Embodiments B1-B10, wherein retrieving the voice conversation summary for the second identified user contact includes: accessing, by the computing system, a stored copy of the voice conversation summary for the second user contact that was previously generated by a computational model configured to generate voice conversation summaries from stored voice conversations that are accessible to the computing system, wherein the computational model configured to generate voice conversation summaries is different from the computational model configured to process and generate the natural language statements.

[0182] Embodiment B12 is directed to the computer-implemented method of Embodiment 11 , wherein the stored voice conversations, on which the computational model that is configured to generate the voice conversation summaries, are stored as audio data that encodes user speech.

[0183] Embodiment B13 is directed to the computer-implemented method of Embodiment 12, wherein the stored voice conversations include at least some voice conversations from audio-visual conversations.

[0184] Embodiment B14 is directed to the computer-implemented method of any one of Embodiments B1-B13, wherein responsive to determining that the first user message requests the contact record summary, the computing system provides information to cause the user device to present, in the chat interface in association with the presentation of the contact record summary for the first identified user contact, a first interface element that is user selectable to cause the user device to present a full contact record for the first identified user contact.

[0185] Embodiment B15 is directed to the computer-implemented method of Embodiment 14, wherein responsive to determining that the first user message requests the contact record summary, the computing system provides information to cause the user device to present, in the chat interface in association with the presentation of the contact record summary for the first identified user contact and the presentation of thefirst interface element, a second interface element that is user selectable to cause the user device to present a voice conversation summary for the first identified user contact.

[0186] Embodiment B16 is directed to the computer-implemented method of any one of Embodiments B1-B15, wherein sending the third user message to the computational model configured to process and generate natural language statements includes sending the third user message as part of a prompt that further specifies multiple tables of data to which the computational model has access and to which the computational model is to consider in generating the response to the third user message.

[0187] Embodiment B17 is directed to the computer-implemented method of Embodiment 16, wherein the prompt further specifies that the response to the third user message is to indicate that user input submit another user message, responsive to the computational model determining that the third user message requests data that is not specified by the multiple tables of data that are specified by the prompt.

[0188] Embodiment B18 is directed to the computer-implemented method of any one of Embodiments B1-B17, wherein sending the third user message to the computational model configured to process and generate natural language statements includes sending the third user message as part of a prompt that further specifies that the response to the third user message is to request a geographic location, responsive to the computational model determining that the third user message does not satisfy criteria for specifying a geographic location.

[0189] Embodiment B19 is directed to a computing system, comprising: one or more processors; and one or more computer-readable storage devices including instructions that, when executed by the one or more processors, cause the computing system to perform the method of any one of Embodiments B1-B18.

[0190] While this specification contains many specific embodiment details, these should not be construed as limitations on the scope of the disclosed technology or of what may be claimed, but rather as descriptions of features that may be specific to particular embodiments of particular disclosed technologies. Certain features that are described in this specification in the context of separate embodiments can also be implemented in combination in a single embodiment in part or in whole. Conversely,various features that are described in the context of a single embodiment can also be implemented in multiple embodiments separately or in any suitable subcombination. Moreover, although features may be described herein as acting in certain combinations and / or initially claimed as such, one or more features from a claimed combination can in some cases be excised from the combination, and the claimed combination may be directed to a subcombination or variation of a subcombination. Similarly, while operations may be described in a particular order, this should not be understood as requiring that such operations be performed in the particular order or in sequential order, or that all operations be performed, to achieve desirable results. Particular embodiments of the subject matter have been described. Other embodiments are within the scope of the following claims.

Claims

CLAIMSWHAT IS CLAIMED IS:1 . A computer-implemented method to provide data from multiple sources through interactive chat, the method comprising: receiving, by a computing system, a first user message provided through first user interaction with a chat interface that is presented by a user device; determining, by the computing system based on analysis of the first user message, that the first user message requests a contact record summary, and in response:(i) retrieving, by the computing system, the contact record summary for a first identified user contact; and(ii) providing, by the computing system, information to cause the user device to present, in the chat interface following a presentation of the first user message in the chat interface, the contact record summary for the first identified user contact; receiving, by the computing system, a second user message provided through second user interaction with the chat interface; determining, by the computing system based on analysis of the second user message, that the second user message requests a voice conversation summary, and in response:(i) retrieving, by the computing system, the voice conversation summary for a second identified user contact; and(ii) providing, by the computing system, information to cause the user device to present, in the chat interface following a presentation of the second user message in the chat interface, the voice conversation summary for the second identified user contact; receiving, by the computing system, a third user message provided through third user interaction with the chat interface; determining, by the computing system based on analysis of the third usermessage, that the third user message does not request any service in a specified set of services that includes requesting the contact record summary and requesting the voice conversation summary, and in response:(i) sending, by the computing system, the third user message to a computational model configured to process and generate natural language statements;(ii) receiving, by the computing system and from the computational model that is configured to process and generate natural language statements, a response to the third user message; and(iii) providing, by the computing system, information to cause the user device to present, in the chat interface following a presentation of the third user message in the chat interface, the response to the third user message.

2. The computer-implemented method of claim 1 , wherein the first user interaction with the chat interface includes typing the first user message into the chat interface.

3. The computer-implemented method of claim 1 , wherein the first user interaction with the chat interface includes user selection of the first user message, from among multiple candidate questions presented by the chat interface.

4. The computer-implemented method of claim 1 , wherein retrieving the contact record summary for the first identified user contact includes: identifying, by the computing system, a user name in the first user message; and determining, by the computing system, that the user name in the first user message matches a user name specified by the first identified user contact, from among a collection of user contacts.

5. The computer-implemented method of claim 1 , wherein retrieving the contact record summary for the first identified user contact includes: identifying, by the computing system, a user name in the first user message; determining, by the computing system, that the user name in the first usermessage corresponds to user names specified by multiple candidate user contacts, from among a collection of user contacts; providing, by the computing system, information to cause the user device to present, in the chat interface, identifying information for each of the multiple candidate user contacts; and receiving, by the computing system, an indication that third user interaction with the chat interface selected the identifying information for the first identified user contact, from among the presentation in the chat interface of the identifying information for each of the multiple candidate user contacts.

6. The computer-implemented method of claim 5, wherein: the identifying information presented in the chat interface for each of the multiple candidate user contacts includes, for each respective candidate user contact, a name and date of birth for the respective user contact.

7. The computer-implemented method of claim 1 , wherein retrieving the contact record summary for the first user contact includes: sending, by the computing system, the first user message to a computational model configured to generate contact record summaries from contact records that are accessible to the computing system, wherein the computational model configured to generate the contact record summaries is different from the computational model configured to process and generate the natural language statements; and receiving, by the computing system, the contact record summary for the first identified user contact from the computational model configured to generate contact record summaries.

8. The computer-implemented method of claim 1 , wherein retrieving the contact record summary for the first user contact includes: accessing, by the computing system, a stored copy of the contact record summary for the first user contact that was previously generated by a computationalmodel configured to generate contact record summaries from contact records that are accessible to the computing system, wherein the computational model configured to generate the contact record summaries is different from the computational model configured to process and generate the natural language statements.

9. The computer-implemented method of claim 1 , wherein retrieving the voice conversation summary for the second identified user contact includes: sending, by the computing system, the second user message to a computational model configured to generate voice conversation summaries from stored voice conversations that are accessible to the computing system, wherein the computational model configured to generate voice conversation summaries is different from the computational model configured to process and generate the natural language statements.

10. The computer-implemented method of claim 9, wherein the computational model configured to generate voice conversation summaries is different from the computational model configured to generate contact record summaries.11 . The computer-implemented method of claim 1 , wherein retrieving the voice conversation summary for the second identified user contact includes: accessing, by the computing system, a stored copy of the voice conversation summary for the second user contact that was previously generated by a computational model configured to generate voice conversation summaries from stored voice conversations that are accessible to the computing system, wherein the computational model configured to generate voice conversation summaries is different from the computational model configured to process and generate the natural language statements.

12. The computer-implemented method of claim 11 , wherein the stored voice conversations, on which the computational model that is configured to generate the voice conversation summaries, are stored as audio data that encodes user speech.

13. The computer-implemented method of claim 12, wherein the stored voice conversations include at least some voice conversations from audio-visual conversations.

14. The computer-implemented method of claim 1 , wherein responsive to determining that the first user message requests the contact record summary, the computing system provides information to cause the user device to present, in the chat interface in association with the presentation of the contact record summary for the first identified user contact, a first interface element that is user selectable to cause the user device to present a full contact record for the first identified user contact.

15. The computer-implemented method of claim 14, wherein responsive to determining that the first user message requests the contact record summary, the computing system provides information to cause the user device to present, in the chat interface in association with the presentation of the contact record summary for the first identified user contact and the presentation of the first interface element, a second interface element that is user selectable to cause the user device to present a voice conversation summary for the first identified user contact.

16. The computer-implemented method of claim 1 , wherein sending the third user message to the computational model configured to process and generate natural language statements includes sending the third user message as part of a prompt that further specifies multiple tables of data to which the computational model has access and to which the computational model is to consider in generating the response to the third user message.

17. The computer-implemented method of claim 16, wherein the prompt further specifies that the response to the third user message is to indicate that user input submit another user message, responsive to the computational model determining that the third user message requests data that is not specified by the multiple tables of data that are specified by the prompt.

18. The computer-implemented method of claim 1 , wherein sending the third user message to the computational model configured to process and generate natural language statements includes sending the third user message as part of a prompt that further specifies that the response to the third user message is to request a geographic location, responsive to the computational model determining that the third user message does not satisfy criteria for specifying a geographic location.

19. A computing system, comprising: one or more processors; and one or more computer-readable storage devices including instructions that, when executed by the one or more processors, cause the computing system to perform operations that include: receiving, by the computing system, a first user message provided through first user interaction with a chat interface that is presented by a user device; determining, by the computing system based on analysis of the first user message, that the first user message requests a contact record summary, and in response:(i) retrieving, by the computing system, the contact record summary for a first identified user contact; and(ii) providing, by the computing system, information to cause the user device to present, in the chat interface following a presentation of the first user message in the chat interface, the contact record summary for the first identified user contact;receiving, by the computing system, a second user message provided through second user interaction with the chat interface; determining, by the computing system based on analysis of the second user message, that the second user message requests a voice conversation summary, and in response:(i) retrieving, by the computing system, the voice conversation summary for a second identified user contact; and(ii) providing, by the computing system, information to cause the user device to present, in the chat interface following a presentation of the second user message in the chat interface, the voice conversation summary for the second identified user contact; receiving, by the computing system, a third user message provided through third user interaction with the chat interface; determining, by the computing system based on analysis of the third user message, that the third user message does not request any service in a specified set of services that includes requesting the contact record summary and requesting the voice conversation summary, and in response:(i) sending, by the computing system, the third user message to a computational model configured to process and generate natural language statements;(ii) receiving, by the computing system and from the computational model that is configured to process and generate natural language statements, a response to the third user message; and(iii) providing, by the computing system, information to cause the user device to present, in the chat interface following a presentation of the third user message in the chat interface, the response to the third user message.

Citation Information

Patent Citations

  • Customer contact service with real-time agent assistance

    US20210158234A1

  • Call summary

    US20210182326A1

  • Content Summarization for Assistant Systems

    US20210209121A1

  • Automated analysis of customer interaction text to generate customer intent information and hierarchy of customer issues

    US20230112369A1