Providing variable responses in a virtual-assistant environment
First Claim
Patent Images
1. One or more non-transitory computer-readable media storing computer-executable instructions that, when executed on one or more processors, cause the one or more processors to perform acts comprising:
- causing display of a virtual assistant associated with a service provider;
receiving, via the virtual assistant and by a first communication channel, a single query from a user while the user engages in a session on a site of the service provider, wherein the single query comprises a fixed word or phrase;
at least partly in response to receiving the single query and subsequent to receiving the single query;
parsing the single query to identify one or more concepts expressed therein;
identifying a context associated with the user or associated with the session of the user on the site, the context comprising at least one of a geolocation of the user, a time of day, a device type of a device that is used by the user to interact with the virtual assistant, a type of natural language of the single query received from the user, whether or not the user has signed in with the service provider, or a status of the user with the service provider;
identifying, from one or more data stores storing indications of intents, a first intent associated with the single query and a second intent associated with the single query based at least in part on the one or more concepts, the first intent being mapped in the one or more data stores to a first plurality of responses and the second intent being mapped in the one or more data stores to a second plurality of responses, wherein the first plurality of responses is different than the second plurality of responses;
mapping the single query to the first intent based at least in part on a first portion of the context;
determining, independent of user input, a response to the single query from the first plurality of responses associated with the first intent based at least in part on the first intent and a second portion of the context, the second portion of the context being different than the first portion of the context, wherein the response specifies (i) content for output to the user via the virtual assistant, and (ii) an action to perform on behalf of the user;
determining, based at least in part on the context, to switch from the first communication channel to provide at least a portion of the response to the user;
selecting a second communication channel from a plurality of communication channels to utilize to provide at least the portion of the response to the user, the second communication channel being selected based at least in part on a communication channel that has been previously used to communicate by the user with the virtual assistant;
providing at least the portion of the response to the user via the virtual assistant while refraining from providing any other response from the first plurality of responses; and
automatically causing performance of the action on behalf of the user.
7 Assignments
0 Petitions
Accused Products
Abstract
Virtual assistants intelligently emulate a representative of a service provider by providing variable responses to user queries received via the virtual assistants. These variable responses may take the context of a user'"'"'s query into account both when identifying an intent of a user'"'"'s query and when identifying an appropriate response to the user'"'"'s query.
225 Citations
31 Claims
-
1. One or more non-transitory computer-readable media storing computer-executable instructions that, when executed on one or more processors, cause the one or more processors to perform acts comprising:
-
causing display of a virtual assistant associated with a service provider; receiving, via the virtual assistant and by a first communication channel, a single query from a user while the user engages in a session on a site of the service provider, wherein the single query comprises a fixed word or phrase; at least partly in response to receiving the single query and subsequent to receiving the single query; parsing the single query to identify one or more concepts expressed therein; identifying a context associated with the user or associated with the session of the user on the site, the context comprising at least one of a geolocation of the user, a time of day, a device type of a device that is used by the user to interact with the virtual assistant, a type of natural language of the single query received from the user, whether or not the user has signed in with the service provider, or a status of the user with the service provider; identifying, from one or more data stores storing indications of intents, a first intent associated with the single query and a second intent associated with the single query based at least in part on the one or more concepts, the first intent being mapped in the one or more data stores to a first plurality of responses and the second intent being mapped in the one or more data stores to a second plurality of responses, wherein the first plurality of responses is different than the second plurality of responses; mapping the single query to the first intent based at least in part on a first portion of the context; determining, independent of user input, a response to the single query from the first plurality of responses associated with the first intent based at least in part on the first intent and a second portion of the context, the second portion of the context being different than the first portion of the context, wherein the response specifies (i) content for output to the user via the virtual assistant, and (ii) an action to perform on behalf of the user; determining, based at least in part on the context, to switch from the first communication channel to provide at least a portion of the response to the user; selecting a second communication channel from a plurality of communication channels to utilize to provide at least the portion of the response to the user, the second communication channel being selected based at least in part on a communication channel that has been previously used to communicate by the user with the virtual assistant; providing at least the portion of the response to the user via the virtual assistant while refraining from providing any other response from the first plurality of responses; and automatically causing performance of the action on behalf of the user. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. One or more computing devices for implementing a virtual assistant that emulates human-to-human interaction, the one or more computing devices comprising:
-
one or more processors; and one or more computer-readable media storing computer-executable instructions that, when executed on the one or more processors, cause the one or more processors to perform acts comprising; presenting, on a display associated with the one or more computing devices, the virtual assistant associated with a service provider; receiving a single query via a first communication channel comprising an interface provided by the virtual assistant, wherein the single query comprises a fixed word or phrase; subsequent to receiving the single query; identifying multiple different intents associated with the single query, the multiple different intents each being associated with a plurality of responses, each of the plurality of responses being different from each other; mapping the single query to an intent of the multiple different intents with reference to both contents of the single query and a first portion of context in which the virtual assistant received the single query, the context comprising at least one of a geolocation of the user, a time of day, a device type of a device that is used by the user to interact with the virtual assistant, a type of natural language of the single query received from the user, whether or not the user has signed in with the service provider, or a status of the user with the service provider; analyzing a database to identify multiple different responses stored in the database as being associated with the intent; mapping the intent to a response of the multiple different responses with reference to a second portion of the context in which the virtual assistant received the single query, wherein the multiple different responses specify (i) content for output to the interface, and (ii) an action to perform based on behalf of a user; determining, based at least in part on the context, to switch from the first communication channel to provide a portion of the response to the user; selecting a second communication channel from a plurality of communication channels to utilize to provide the portion of the response to the user from the virtual assistant, the second communication channel being selected based at least in part on a schedule of the user; and outputting the response while refraining from outputting any other responses of the multiple different responses, the outputting comprising; providing the at least the portion of the content for output via the second communication channel; automatically performing the action on behalf of the user. - View Dependent Claims (14, 15, 16, 17, 18, 19)
-
-
20. A method comprising:
-
under control of one or more computing systems configured to implement a virtual assistant, receiving a single request for information from a user via the virtual assistant and via a first communication channel, wherein the single request comprises a fixed word or phrase; subsequent to receiving the single request for information; identifying one or more concepts within the single request for information; identifying respective values of multiple different variables associated with the single request for information, the values of the multiple different variables collectively defining a first piece of context associated with the user, the context comprising at least one of a geolocation of the user, a time of day, a device type of a device that is used by the user to interact with the virtual assistant, a type of natural language of the single request received from the user, whether or not the user has signed in with a service provider, or a status of the user with the service provider; identifying multiple different intents associated with the single request for information based at least in part on the identified one or more concepts, each of the multiple different intents being associated with respective responses that are different from each other; mapping the single request for information to an intent of the multiple different intents based at least in part on the values of the multiple different variables associated with the single request for information; determining a second piece of the context associated with the user; identifying a reply, independent of user input and from the respective responses associated with the intent, to provide in response to the single request for information based at least in part on the intent and the determined second piece of context, wherein the identified reply specifies (i) content for output to the user via the virtual assistant, and (ii) an action to perform on behalf of the user; determining, based at least in part on the context associated with the user, to switch from the first communication channel to provide at least a portion of the reply to the user; selecting a second communication channel from a plurality of communication channels to utilize to provide at least a portion of the reply to the user, the second communication channel being selected based at least in part on a communication channel that has been previously used to communicate by the user with the virtual assistant; and outputting the reply to the user while refraining from outputting any other response from the respective responses associated with the intent, the outputting comprising; providing the at least the portion of the reply to the user via the second communication channel, and automatically causing performance of the action on behalf of the user. - View Dependent Claims (21, 22, 23, 24, 25, 26, 27)
-
-
28. One or more non-transitory computer-readable media storing computer-executable instructions that, when executed on one or more processors, cause the one or more processors to serve or render a graphical user interface (GUI), the GUI comprising:
-
an avatar that emulates a human for conversing with a user, wherein the avatar is associated with a service provider; a text box to receive, from the user, a single query comprising a string of text; and an area to display at least a portion of a response to the single query, the response having been determined subsequent to receiving the single query and by; parsing the single query to identify one or more concepts expressed therein, wherein the single query is received via a first communication channel; identifying respective values of multiple different variables associated with the single query, the values of the multiple different variables collectively defining a context associated with the single query, the context comprising at least one of an age of the user, a geolocation of the user, a time of day, a device type of a device that is used by the user to interact with the avatar, or a type of natural language of the single query received from the user; identifying multiple intents to map the one or more concepts to; determining a first intent from the multiple intents to map the one or more concepts to based at least in part on the context associated with the single query; identifying multiple responses associated with the first intent, the multiple responses including the response, the multiple responses comprising data that is responsive to the single query; selecting the response from the multiple responses based at least in part on the context associated with the single query and independent of user input; mapping the first intent and the context to the response while refraining from mapping the first intent to another response of the multiple responses, wherein the response specifies (i) content for output to the user via the avatar, and (ii) an action to perform on behalf of the user; determining, based at least in part on the context, to switch from the first communication channel to provide at least a portion of the response to the user; selecting a second communication channel from a plurality of communication channels to utilize to provide at least the portion of the response to the user, the second communication channel being selected based at least in part on a communication channel that has been previously used to communicate by the user with the avatar; and automatically causing performance of the action on behalf of the user. - View Dependent Claims (29, 30, 31)
-
Specification