Systems, methods, and apparatuses for managing incomplete automated assistant actions
By introducing event qualification and data storage mechanisms into automatic assistants, the problem of resource waste under interrupt events is solved, and more efficient resource utilization and user experience optimization are achieved.
Patent Information
- Application Number
- CN201880092462.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2018-03-12
- Filing Date
- 2018-04-13
- Publication Date
- 2025-08-01
- Estimated Expiration
- 2039-01-27
AI Technical Summary
During the interaction between users and automatic assistants, interrupt events occur frequently, resulting in waste of computing resources and network resources. It is difficult for the prior art to effectively manage unfinished actions to improve robustness.
Through the event qualification mechanism, the priority of interrupt events is identified and the incomplete interaction data is temporarily stored on the client device, allowing interaction to be restored at appropriate times and reducing resource waste.
Improves the responsiveness of the automatic assistant in the face of interrupt events, reduces the waste of computing and network resources, and optimizes the user experience.
Smart Images

Figure CN111989650B_ABST
Abstract
Description
Background Art
[0001] Humans can engage in human-computer conversations with interactive software applications, which are referred to herein as "automatic assistants" (also known as "chatbots", "interactive personal assistants", "assistant applications", "intelligent personal assistants", "personal voice assistants", "dialogue agents", etc.). For example, humans (who can be referred to as "users" when they interact with the automatic assistant) can provide commands, queries, and / or requests (collectively referred to herein as "queries") using free-form natural language input and / or free-form natural language input typed in. The free-form natural language input can be spoken words that are converted to text and then processed.
[0002] In many cases, logical instances of the automatic assistant can be implemented across multiple computing devices. For example, a logical instance of the automatic assistant can include an automatic assistant client installed on a user's mobile phone (or other client device) and one or more cloud-based automatic assistant components. The automatic assistant client can be configured to provide an automatic assistant interface to the user, with which the user can interact to participate in a human-computer conversation with the automatic assistant. For example, the automatic assistant client can accept the user's spoken words, typed input, and / or other input, and can provide an automatic assistant response to these inputs in a graphical and / or auditory manner. However, the automatic assistant client can still rely on cloud-based automatic assistant components to perform various automatic assistant functions, such as processing the input received by the automatic assistant client, generating a response to the input (e.g., by interacting with a proxy application), etc. In some instances, the cloud-based automatic assistant components can collect information from the user to facilitate actions such as composing a message or placing an order. If the action is interrupted due to an event affecting the user or the participating device, the user may then have to repeat the information previously provided to the automatic assistant. This can waste computing resources because each time the user repeats the information to facilitate the completion of the action, such information provision may require speech-to-text processing. In addition, in response to receiving a repeated request to perform an action, the automatic assistant can cause multiple server queries to be executed, resulting in the consumption of network resources and energy. This can adversely affect other processes on any device that relies on the automatic assistant and / or hosts the automatic assistant. Summary of the Invention
[0003] The present disclosure generally relates to methods, apparatuses, and computer-readable media (transitory and non-transitory) for resuming partially completed actions to be performed by an automated assistant. A user may engage in multiple turns or exchanges with the automated assistant to cause the automated assistant to perform a particular action. However, if the user, the automated assistant, or the device by which the user interfaces with the automated assistant is interrupted, and if the automated assistant is unable to access information about the interrupted action after the interruption, any effort expended to complete the action may be wasted (including client device and / or server resources). For example, a user may request that the automated assistant send a message to a particular contact. Causing the automated assistant to send the message may require the user to provide multiple commands to the automated assistant and respond to different responses from the automated assistant. If there is an interruption during a particular response or command, such as when the user is detailing the content of the message, the user may have to repeat the content and any other information previously provided to cause the automated assistant to send the message. This may waste computing resources because any device that at least partially hosts the automated assistant has already processed speech-to-text and allocated a certain amount of memory to send the message, only to repeat the process after the interruption. To overcome these and other problems associated with such interruptions, the automated assistant may cause partially assembled actions to be stored such that subsequent retrieval, modification, and / or execution of them is allowed after an interruption. This can help improve the robustness of the response to interruptions, including network interruptions, that may otherwise result in inefficient use of computing resources and network resources.
[0004] In some embodiments, an interruption may be qualified before a particular interruption or event may interfere with the interaction between the user and the automated assistant. By way of example, the device or the automated assistant may identify an event associated with an application or a separate device and determine whether the event is worthy of interrupting the interaction between the user and the automated assistant. The event may be, for example, an incoming call, an application update, a text message, navigation information, vehicle information (e.g., a low fuel level signal from a vehicle sensor), and / or any other signal that may be sent or received by the device. In some embodiments, an event worthy of interrupting the interaction may be an event that is directly related to the activity the user is engaged in when the event is identified. Such an event may be qualified as a high priority and will cause the interaction between the user and the automated assistant to be interrupted and, thus, the data associated with the interaction to be stored at least temporarily until the user is willing to complete the interaction.
[0005] For example, when a user is driving their vehicle and interacting with an auto assistant that is at least partially hosted by a vehicle computing device, the vehicle computing device can identify an event. When the event is related to the control of the vehicle, such as if the event is related to a road hazard, vehicle maintenance, and / or an incoming call from a person whose address the user is navigating to, the event can be qualified as a high-priority event. Thus, if the user is guiding the auto assistant to send a message and the vehicle computing device identifies the aforementioned event, the interaction for sending the message can be paused and stored locally as data, which the auto assistant can then retrieve.
[0006] In some embodiments, an event can be qualified as a medium-priority or low-priority event and will thus otherwise affect the interaction between the user and the auto assistant. For example, when an event is related to an activity the user is engaged in and / or potentially requires the user to at least pause their activity in order to respond to the event, the event can be qualified as a medium-priority event. In some embodiments, when the user is driving a vehicle and the event is associated with a text message, navigation instruction, and / or pre-configured reminder, the event can be qualified as a medium-priority event. In some embodiments, when a medium-priority event is identified, the medium-priority event can be presented to the user in a manner that does not interrupt the interaction between the user and the auto assistant. For example, if the user is driving a vehicle and interacting with the auto assistant to order a list of items and an event corresponding to an incoming text message is identified, a notification and / or text message can be visually presented on a nearby computing device (such as an integrally formed vehicle computing device or other portable computing device). In some embodiments, the visual notification associated with the medium-priority event can be presented together with the message, thereby notifying the user of the ability to pause the current interaction and resume the interaction later. This enables the user to note that they are able to request the assistant to pause the interaction, respond to or confirm the medium-priority event, and / or subsequently resume the interaction until completion.
[0007] When an event is not associated with an activity the user is engaged in, has not been assigned a priority by the user in the past, does not require a response or confirmation, and / or is otherwise determined to be of low priority when received, the event can be qualified as a low-priority event. When an event is received during an interaction between the user and the auto assistant, those events that have been qualified as low-priority can be presented to the user after the interaction is completed, when the user has paused the interaction, or due to a high-priority incoming signal.
[0008] In some embodiments, the auto assistant can be an application provided on top of the operating system of a computing device, such as but not limited to a vehicle computing device. Thus, there may be alerts, notifications, signal transmissions, and / or other events associated with the computing device. The auto assistant can create a list of such events and qualify such events to determine whether the interaction between the user and the auto assistant should be interrupted in response to the occurrence of an event. For example, if the operating system indicates that the priority of a particular message or event during the interaction is higher than that of the assistant, the name of the application associated with the message or event can be recorded, and the message or event can be considered high priority. In response, the data corresponding to the interaction can be stored in a way that allows the interaction to be completed at a future time, and then the interaction can be interrupted to present a notification related to the high-priority message or event.
[0009] In some embodiments, the incomplete interaction can be stored in a way that allows the interaction to be completed after interruption. For example, the incomplete interaction can be stored in a semantic representation that details the data involved in each exchange, input, output, and / or any other step of the incomplete interaction. The data can identify the entity that generated the data, the type of interaction, any natural language input from the user during the interaction, the slot values of the functions associated with the interaction, the slot identifiers of the information required to complete the interaction, one or more timestamps associated with the interaction, and / or any other data that may be helpful for subsequently completing the interaction after the interaction has been interrupted.
[0010] To continue completing an interaction that has been interrupted previously, the auto assistant can provide suggestions identifying one or more of the interactions that have been interrupted previously. Then, the user can select the interaction to be completed, invoke the auto assistant to initiate the completion of the interaction, and / or provide any other appropriate input to cause the auto assistant to perform a specific action. For example, when the interruption is about an update of an obstacle on the road while the user is driving, and the user has passed the obstacle or has confirmed the update, the auto assistant can cause a visual notification to be presented on a display panel connected to the vehicle computing device. The visual notification can identify the interrupted interaction or the action corresponding to the interaction, and the user can touch the visual notification to continue the interaction until it is completed. In some embodiments, the interruption can be an audible notification, such as a vehicle notification (e.g., "Low fuel alert"). The auto assistant can confirm the receipt of the audible notification, and in response, the auto assistant can temporarily store the data corresponding to the interaction. Thereafter, once the audible notification is completed, the auto assistant can audibly suggest to the user to complete the stored interaction (e.g., "Your message to Kathy was interrupted. Do you want to continue writing the message to Kathy?").
[0011] Alternatively, a visual notification can be provided on the display panel, and the user can provide an oral command to resume the interaction with the auto-assistant (e.g., "Assistant, please resume sending messages."). In some embodiments, the auto-assistant can wait until the user invokes the auto-assistant at a later time and, in response, suggest resuming the previous interaction. For example, the user can provide an input such as "Assistant, please start playing my podcast", and in response, the auto-assistant can perform the action corresponding to the input and suggest resuming the previously stored interaction, such as outputting "Okay, I'll play the podcast... Do you want to resume sending the earlier message?"
[0012] In other embodiments, the auto-assistant can be associated with a user interface that provides a list of previously incomplete and / or completed interactions that the user can complete or repeat, respectively. For example, if the user did not complete sending a message via the auto-assistant, the interaction can be represented as an optional icon at the user interface. When the user selects the icon, the auto-assistant can retrieve the stored data corresponding to the interaction associated with the icon and provide an output indicating the status of the interaction, the missing data required to complete the interaction, and / or any other information that may be useful for completing the interaction. If a threshold period of time has passed since the interaction was interrupted or appeared incomplete, the auto-assistant can ask the user to confirm a specific value associated with the interaction. For example, if the user is trying to send a message, the auto-assistant can recite the information previously received from the user by the auto-assistant, such as the name of the recipient, to facilitate the message. Then, the auto-assistant can ask the user to provide the additional information necessary to complete the interaction, such as the content of the message.
[0013] In some embodiments, the content of the action can be used to determine when to provide the user with a suggestion for completing the action. For example, while the user can attempt to compose a message using voice control while driving, the action of sending the message is not completed during driving. The auto-assistant can store the information corresponding to the partially composed message and the context information and use the context information to generate a reminder that can be triggered during a similar context at a later time. For example, the next time the user starts driving, the auto-assistant can confirm that the user is driving, compare the context with any context data stored with any incomplete actions, and provide a suggestion when the context matches any context data. In this way, when the user starts driving again, the user can be reminded of their previously incomplete action (e.g., "Last time you were driving, you were composing a message to Lisa. Do you want to send a message to Lisa?").
[0014] The above description is provided as an overview of some embodiments of the present disclosure. Further descriptions of these and other embodiments will be described in more detail below.
[0015] In some embodiments, a method may include: receiving, during a conversation session between a user and an automated assistant, at one or more input components of a client device, a request for an action to be performed by the automated assistant, wherein the automated assistant is configured to complete the action based on one or more slot values obtained from the user during the conversation session; determining an activity that the user is actively engaged in during the conversation session; detecting an event that occurs during the conversation session at the client device; determining, at least based on the activity that the user is actively engaged in during the conversation session, a measure of the importance of the event to the user; classifying the event as an interruption of the conversation session based on the measure of the importance of the event to the user; based on the classification, causing one or more slot values obtained from the user during the conversation session to be stored in a memory of the client device, wherein the stored one or more slot values can subsequently be retrieved from the memory by the automated assistant to facilitate completion of the action; and, after classifying the event, causing the automated assistant to provide a prompt to the user regarding completion of the action, wherein the prompt is based on the stored one or more slot values.
[0016] In various embodiments, the method may further include: receiving, at one or more of the input components of the client device, a separate request to perform another action, wherein causing the automated assistant to provide the prompt includes generating a response to the separate request, wherein the response to the separate request identifies the action as a reminder of the completion of the action. In various embodiments, at least a portion of the automated assistant is implemented on a server device, and the client device is accessible via a network connection to the server device.
[0017] In various embodiments, one or more slot values obtained from the user include natural language input received at an automated assistant interface of the client device, and the prompt identifies at least a portion of the natural language input. In various embodiments, the prompt is presented at a graphical user interface presented on a display of the client device, and the prompt includes a list of previously incomplete actions from a previous conversation session between the user and the automated assistant.
[0018] In various embodiments, the activity includes driving, the client device includes an in-vehicle computing device, and determining the measure of the importance of the event to the user includes determining that the event is related to driving. In various embodiments, the information is stored in a list together with other information corresponding to other incomplete actions caused by other conversation sessions.
[0019] In another aspect, a method may include: receiving data corresponding to a conversation session between a user and an auto assistant that occurs while the user is driving a vehicle, where the data corresponds to slot values of actions to be performed by the auto assistant and the user interacts with the auto assistant via an auto assistant interface of an in-vehicle computing device; classifying events that occur during the conversation session based on a measure of the importance of the user's actions on the vehicle to the event; based on the event being classified as an interruption to the conversation session that occurs between the user and the auto assistant: at least temporarily stopping the conversation session from continuing and storing the slot values of the actions as a data set at the computing device, the data set further identifying missing data required to complete the action, where the data set is configured to be subsequently retrieved to facilitate completion of the action; after at least temporarily stopping the conversation session from continuing, causing the client device to provide a recommended output identifying the action, where the recommended output is based on the stored data set.
[0020] In various embodiments, the method may further include: receiving user input that guides the auto assistant to facilitate completion of the action; and in response to receiving the user input, generating a user prompt that identifies one or more of the missing parameters. In various embodiments, classifying the event is further based on the source of the event. In various embodiments, storing the slot values of the actions as a data set at the client device includes: storing the data set together with other data sets corresponding to incomplete actions initialized via the auto assistant.
[0021] In various embodiments, the data set includes the amount of time that has passed since the event occurred or a timestamp identifying when the event occurred. In various embodiments, the recommended output is provided via a separate auto assistant interface that is different from the auto assistant interface by which the user interacts with the auto assistant. In various embodiments, the auto assistant may be accessed via a network connection and the event corresponds to a disconnection of the client device from the network connection.
[0022] Other embodiments may include a non-transitory computer-readable storage medium that stores instructions for a method executable by one or more processors (e.g., a central processing unit (CPU), a graphics processing unit (GPU), and / or a tensor processing unit (TPU)) to perform one or more methods such as those described above and / or elsewhere herein. Yet another other embodiment may include a system of one or more computers and / or one or more robots that includes one or more processors operable to execute the stored instructions to perform one or more methods such as those described above and / or elsewhere herein.
[0023] It should be appreciated that all combinations of the above concepts and additional concepts described in more detail herein are considered to be part of the subject matter disclosed herein. For example, all combinations of the claimed subject matter appearing at the end of the present disclosure are considered to be part of the subject matter disclosed herein. BRIEF DESCRIPTION OF THE DRAWINGS
[0024] Figure 1 FIG. shows a system for enabling an action performed by an automated assistant to be interrupted and resumed at a later time.
[0025] Figure 2A and Figure 2B FIG. shows a perspective view of a user participating in a conversation session for the purpose of having an automated assistant complete an action.
[0026] Figure 3 FIG. shows a method for allowing a user to store an incomplete action to be performed by an automated assistant.
[0027] Figure 4 FIG. shows a method for resuming a previously incomplete action to be performed by an automated assistant.
[0028] Figure 5 is a block diagram of an example computer system. DETAILED DESCRIPTION
[0029] Figure 1A system 100 is shown that enables actions performed by an automated assistant 104 to be interrupted and resumed at a later time. The automated assistant 104 may operate as part of an assistant application 132 and / or assistant application 124 provided at one or more computing devices, such as: a client computing device 130 (e.g., a tablet device 120); a vehicle computing device 122 that is connected to and / or integral with a vehicle 116; and / or a remote computing device 122, such as a server device 102. A user 138 may interact with the automated assistant 104 via an assistant interface 136, which may be a microphone, camera, touchscreen display, user interface, and / or any other device capable of providing an interface between the user and the application. For example, the user may initialize the automated assistant 104 by providing verbal, text, or graphical input to the assistant interface 136 to cause the assistant application 132 and / or the automated assistant 104 to perform functions (e.g., provide data, control peripherals, access agents, etc.). The client computing device 130 may include a display device, which may be a display panel including a touch interface for receiving touch input and / or gestures to allow the user to control applications of the client computing device 130 via the touch interface. In some embodiments, the client computing device 130 may lack a display device but provide an audible user interface output without providing a graphical user interface output. Additionally, the client computing device 130 may provide a user interface for receiving verbal natural language input from the user, such as a microphone.
[0030] The client computing device 130 and / or the vehicle computing device 122 can communicate with the remote computing device 112 via a network 114 such as the Internet. The client computing device 130 and / or the vehicle computing device 122 can offload computing tasks to the remote computing device 112 in order to conserve computing resources at each of the client computing device 130 and / or the vehicle computing device 122. For example, the remote computing device 112 can host the automatic assistant 104, and the client computing device 130 and / or the vehicle computing device 122 can transmit inputs received at one or more assistant interfaces to the remote computing device 112. However, in some embodiments, the automatic assistant 104 can be hosted at least in part at the client computing device 130 and / or the vehicle computing device 122. In various embodiments, all or less than all aspects of the automatic assistant 104 can be implemented on the client computing device 130 and / or the vehicle computing device 122. In some of these embodiments, aspects of the automatic assistant 104 are implemented via a local assistant application (i.e., assistant app) of the client computing device 130 and / or the vehicle computing device 122 and interface with the remote computing device 112 that implements other aspects of the automatic assistant 104. The remote computing device 112 can optionally serve multiple users and their associated assistant apps via multiple threads. In embodiments where all or less than all aspects of the automatic assistant 104 are implemented via a local assistant application of the client computing device 130 and / or the vehicle computing device 122, the local assistant application can be an application separate from the operating system of the client computing device 130 and / or the vehicle computing device 122 (e.g., installed “on top” of the operating system), or can alternatively be implemented directly by the operating system of the client computing device 130 and / or the vehicle computing device 122 (e.g., considered an app of the operating system but integrated therewith).
[0031] In some embodiments, the remote computing device 112 can include a speech-to-text engine 108 that can process audio data received at the assistant interface to identify text embodied in the audio data. The process for converting audio data to text can include a speech recognition algorithm that can employ a neural network, a word2vec algorithm, and / or a statistical model to identify groups of audio data corresponding to words or phrases. The text converted from the audio data can be parsed by a text parser engine 110 and can be used as text data for the automatic assistant 104, which can be used to generate and / or identify command phrases from the user, third-party apps, and / or third-party agents.
[0032] User 138 may participate in a conversation session with the automated assistant 104 to cause the automated assistant 104 to perform a specific action that may require additional information from user 138. For example, user 138 may initiate a conversation session via the assistant interface 128 of the vehicle computing device 122 while driving vehicle 116. A conversation session may be initiated when user 138 provides a natural language input such as "Assistant, please perform [action]". In response, the assistant application 124 may transmit data corresponding to the natural language input to the server device 102 for further processing. The automated assistant 104 at the server device 102 may determine the action that user 138 intends for the automated assistant 104 to perform and, in response, provide additional data to the assistant application 124 to complete the action. Such additional data may identify the slot values and / or parameters that user 138 needs to provide to enable the automated assistant 104 to complete the action. Alternatively, the automated assistant 104 may be hosted at the vehicle computing device 122 and / or the client computing device 130 and may thus determine at least some of the slot values and / or parameters that user 138 needs to provide without the automated assistant 104 communicating with the server device 102. The automated assistant 104 may use the slot values and / or parameters to generate a response for user 138 to facilitate the conversation session and complete the action.
[0033] The response to user 138 may be a natural language output provided from the assistant interface 128. For example, when the assistant interface 128 is the audio subsystem of the vehicle computing device 122 and the action is a message-related action, the natural language output may be: "Okay, what would you like the content of the message to be?". If user 138 provides the content of the message, the automated assistant 104 may store the message content as assistant interaction data 106, which may be stored at the server device 102, the vehicle computing device 122, and / or the client computing device 130. At this time, during the conversation session, user 138, the vehicle computing device 122, and / or the automated assistant 104 may experience an interruption.
[0034] The interruption may be a notification from a separate application, receipt of data associated with an activity that user 138 is performing, a signal transmitted or received from the vehicle computing device 122, the client computing device 130, and / or the server device 102, an alert or signal emitted by one or more vehicle sensors, and / or any other event that may be associated with user 138. It should be noted that while Figure 1User 138 is shown outside vehicle 116, but for some example purposes, user 138 can be located inside vehicle 116 to interact with assistant application 124 while driving or participating in another activity. This event can be qualified by assistant application 124 to determine whether the conversation session or action should be paused for later resumption. For example, this event can be qualified by an event eligibility engine integrated with or otherwise accessible by automated assistant 104. For instance, the event eligibility engine can be hosted in part or in whole at vehicle computing device 122, client computing device 130, and / or server device 102.
[0035] The event eligibility engine can determine a measure of the importance or relevance between the event and the activity user 138 is engaged in (e.g., the priority of the event). Additionally, a measure of importance or relevance can be generated as a value that can be compared to a threshold to determine whether to pause a particular action or conversation session. For example, when user 138 is driving and participating in a conversation session to facilitate an action, an event corresponding to a notification may occur. The notification can be presented at vehicle computing device 122 and announce the presence of an obstacle on the road. Such an event can be qualified by the event eligibility engine as a value that meets the threshold (e.g., high priority), and thus will cause the action or conversation session to be paused. Other types of events that may be qualified as high priority include, but are not limited to, critical events triggered by the vehicle's own sensors (e.g., flat tire, overheating, one or more headlight failures, door ajar, etc.), severe weather alerts, road closures, etc. Alternatively, the event eligibility engine can qualify the event as a value that does not meet the threshold (e.g., medium priority or low priority), and thus will not cause the action or conversation session to be paused. Such events can include incoming text messages unrelated to user 138's activity, phone calls unrelated to the activity, notifications about software updates, non-critical events triggered by vehicle sensors (e.g., low tire pressure, time for an oil change, low fuel, etc.), and / or any other event that can be qualified as having little or no association with the activity being performed by user 138.
[0036] In some embodiments, an event that occurs during a conversation session can be a signal loss, for example, when user 138 drives their vehicle 116 through a tunnel or an area with a problem with the network connection. In such instances, the event eligibility engine can qualify the signal loss or network connectivity as a value that meets a threshold for interrupting the conversation session. In response to an eligible event occurring during the conversation session, the automated assistant 104 at the server device 102 or a client device (e.g., the vehicle computing device 122 and / or the client computing device 130) can generate data from which the conversation session or an action can be resumed. Additionally, the conversation session can be paused until the event has stopped or is no longer qualified as an interrupting event (e.g., when the signal returns to normal). In some embodiments, suggestions for resuming the conversation session can be generated offline and / or when the network connectivity is still unavailable. For example, the data generated in response to the interruption can be locally stored at the client device, and after the interruption, the client automated assistant can access the stored data to provide suggestions to the user for completing the interaction.
[0037] Data generated in response to an interruption due to an eligible event can be stored as an incomplete action 126 and / or an incomplete action 134. For example, if the event occurs while user 138 is driving vehicle 116, the data can be stored as an incomplete action 126 at the vehicle computing device 122. Thereafter, when the event no longer occurs, user 138 can select to resume the incomplete action 126 by providing an input to the assistant interface 128. The input can be an oral natural language input such as "Assistant, please resume the previous action". In response, the assistant application 124 can access the data stored in response to the interruption and identify any missing slot values or parameters necessary to complete the action. For example, when the action is related to a message, the missing slot value can be the name of the recipient. Thus, the assistant application 124 can generate a response based on the data, such as "Okay, please provide the recipient for your message". If the assistant application 124 receives all the parameters and / or slot values required to complete the action, the assistant application 124 can use the stored data and the information received from the user during the conversation session that occurred after the interrupting event to complete the action.
[0038] In some embodiments, data stored in response to an interruption of a conversation session can be shared with multiple different computing devices associated with user 138. For example, user 138 may be operating client computing device 130 and participating in a first conversation session with assistant application 132. User 138 may direct assistant application 132 to perform a particular action during the conversation session and provide information to assistant application 132 to complete the action. The information can be stored as a semantic representation of the interaction between user 138 and assistant application 132 so that assistant application 132 can subsequently retrieve the stored information to facilitate completion of the action during a second conversation session.
[0039] In some embodiments, in response to the interruption of the first conversation session, assistant application 132 can store the information obtained during the first conversation session at client computing device 130 and transmit the information to server device 102 and / or vehicle computing device 122. By way of example, when the action to be performed corresponds to a message to be sent, assistant application 132 can generate data such as "Action: Message; Content: 'When shall we meet?'; Recipient: [Empty]; Confirmed: [Empty]; Initiation_Time: 3:32:40 8-4-17". The data can indicate when the user initiated the action, the type of action initiated, and any missing parameters (e.g., missing parameters may have an "empty" value). In this way, any other auto-assistant accessing the data from another device will be able to generate prompts for user 138 to obtain additional information to satisfy the missing parameters. By way of example, if user 138 seeks to participate in a second conversation session to complete the message action, user 138 can invoke assistant application 124 while driving vehicle 116 and tell assistant application 124: "Assistant, please complete the previous message." In response, vehicle computing device 122 can access the data originating from client computing device 130 so that assistant application 124 can generate the prompts necessary to obtain more information from user 138 to complete the action.
[0040] Figure 2A and Figure 2B Perspectives 200 and 210 are shown of user 202 participating in a conversation session for the purpose of having an auto-assistant complete an action. Specifically, Figure 2A Perspective 200 is provided of a user initializing a conversation session for an auto-assistant to complete an action interrupted by a particular event. Figure 2B Perspective 210 is shown of user 202 selecting to resume the action after the interruption event has occurred. As Figure 2AAs shown, user 202 can initiate a first conversation session with the automated assistant via the automated assistant device 206. The automated assistant device 206 can be a computing device that includes an assistant interface, such as an audio subsystem that includes a microphone and a speaker. User 202 can initiate the first conversation session with the automated assistant by providing an oral natural language input 204 (such as, "Assistant, please order some supplies"). In response, the automated assistant can be invoked at the automated assistant device 206, and the automated assistant can identify the action the user is talking about. The automated assistant can identify the action by comparing the text generated from the oral natural language input 204 with a table of actions that can be performed by the automated assistant and stored. For example, because user 202 said the word "order" in their conversation, the automated assistant can determine that user 202 intends to place an order. The action of placing an order can be associated with a function that requires one or more parameters to be completed. For example, the parameters can include the source of the order, the quantity of the item, the identifier of the item, and confirmation from user 202.
[0041] The automated assistant can generate a response for user 202 based on the parameters required to complete the action. For example, the automated assistant can generate a natural language output that can be provided from the assistant interface, and the natural language output 208 can include a conversation such as "Okay, where would you like to order from?" This response can be part of the initial conversation session, and the user can reply to the automated assistant by providing an answer such as "Work Supplies Store". At this point in the first conversation session, the automated assistant can determine that an event has occurred that will interrupt the first conversation session. For example, the automated assistant can determine that a call is being received at the assistant device, and in response, can provide a natural language output 208 such as "You have an incoming call". Additionally, in response to determining that an event has occurred, the automated assistant can qualify the event or otherwise determine whether the event should cause the action to be paused. When the automated assistant determines that the action should be paused, the automated assistant can store any information obtained from the user during the conversation session at the assistant device 206 and / or at any other device that can be associated with the user or user 202's account. For example, the automated assistant can store information corresponding to the source of the item to be ordered, a timestamp corresponding to the time when the user initiated the action, and / or any other information that can be associated with completing the action.
[0042] Figure 2BFIG. 210 shows a perspective view of a graphical user interface 216 accessed by a user 202 of a computing device 212 to initiate completion of an action that the user 202 previously began during a first conversation session. Specifically, the user 202 may initiate a second conversation session with an automated assistant via the computing device 212. When the user 202 accesses an application corresponding to the automated assistant, a graphical user interface 216 may be presented to the user 202, which may include a plurality of different selectable elements. The selectable elements may correspond to different incomplete actions that the automated assistant previously began but did not complete. Accordingly, in response to the user accessing the automated assistant at the computing device 212, the automated assistant may access a data store that includes data identifying the incomplete actions and / or parameters that the user needs to provide in order to complete the incomplete actions.
[0043] The missing parameters may be used to generate text that may be presented at each selectable element. For example, a first selectable element 220 may be presented at the graphical user interface 216 based on data stored in response to an interruption event from Figure 2A . Specifically, the text may include "Complete order supplies". The text may bring to the attention of the user 202 that they previously initiated an action to order supplies but did not complete the order. Additionally, the graphical user interface may include a microphone icon 218 and / or a dialog box 226, which may indicate different modalities by which the user 202 may interact with the automated assistant. In this manner, the user 202 may be made aware that they may initiate completion of the action to order supplies by speaking the text provided at the first selectable element 220 into the assistant interface of the assistant device 206.
[0044] The graphical user interface may also identify other incomplete actions in the action list. By way of example, the graphical user interface may include a second selectable icon 222 that identifies the current incomplete action: the user 202 began composing a message to a recipient named "Miranda". The graphical user interface may further include a third selectable element 224 that identifies the current incomplete action associated with a morning routine. By way of example, the user 202 may request the automated assistant to perform a specific morning routine that requires certain responses from the user 202 and involves the automated assistant performing multiple actions. However, if the routine is interrupted by a qualifying event, the automated assistant may store any information obtained from the user during the uninterrupted portion of the routine and provide the third selectable element 224 based on the stored information. In this manner, the user 202 may select to initiate a subsequent conversation session to facilitate completion of the routine by selecting the third selectable element 224.
[0045] Figure 3A method 300 is shown for providing a user with a route to complete a previously interrupted action to be performed by an automated assistant. Method 300 may be performed by one or more computing devices, applications, and / or any other device or module capable of interacting with the automated assistant. Method 300 may include operation 302 that receives, at a client device during a conversation session between the user and the automated assistant, a request for the automated assistant to perform an action based on information subsequently obtained from the user. The client device may include an automated assistant interface through which the user may participate in the conversation session with the automated assistant. For example, the automated assistant interface may be an audio system including a microphone and a speaker, and the request may correspond to a natural language input received from the user at the microphone. The natural language input may be, for example, "Assistant, please send a text message". The natural language input may be transmitted from the client device to a remote device to be converted to text and mapped to a specific action to be performed by the automated assistant. The action may be a "message" action, which may require the automated assistant to prompt the user for additional information, such as the body of the message, the recipient of the message, and / or confirmation of sending the message. In response to receiving the request, the automated assistant may prompt the user for additional information, thereby continuing the conversation session. For example, the automated assistant may cause an output to be provided from the speaker, such as "Okay, what would you like the message to say?". During the conversation session, an event may occur that interrupts the conversation session.
[0046] Method 300 may include operation 304 that qualifies an event associated with the client device and / or the user and occurring during the conversation session as an interruption of the conversation session. Qualifying the event may include determining a measure of the importance of the event to the user based on the activities the user is actively engaged in during the conversation session. For example, the measure of importance may be the value of an identifier assigned to the event, and when the value meets a specific threshold, the event may be qualified as an interruption of the conversation session. For an event corresponding to information provided to the user to facilitate the activity, such as when the activity is driving and the event is the client device providing the user with information about an upcoming obstacle on the road, the value may be high. For an event such as receiving a text message including content unrelated to the user's destination while the user is driving, the aforementioned value may be high relative to the value of the identifier assigned to the event.
[0047] Method 300 may further include operation 306 that causes information obtained from a user during a conversation session to be stored at the client device. Operation 306 may be performed in response to qualifying an event as an interruption or, in some embodiments, when a value of a metric corresponding to the importance of the event meets a threshold. The information may be stored locally at the client device in a manner that allows the automated assistant to subsequently retrieve the stored information to facilitate completion of an action at a later time. For example, when the event ends and the value assigned to the event no longer meets the threshold, the automated assistant may optionally use the stored information during a subsequent conversation session to complete the action. In some embodiments, information obtained during a previous conversation session may be stored together with slot values for a function corresponding to an action such as sending a message. In some embodiments, the stored information may include parameters that require slot values to perform the function corresponding to the action. For example, during a previous conversation session, the user may have provided the content of a message but not provided a recipient or confirmation of the send. Thus, the stored information may identify null parameters for the recipient and for confirmation of the send.
[0048] Method 300 may also include operation 308 that causes the automated assistant to provide a prompt to the user using the stored information. The prompt may be provided after qualifying the event, during the event, and / or after the event has completed. For example, if the event corresponds to a notification about road conditions, the prompt may be provided in response to the user confirming receipt of the notification or after a threshold period of time has elapsed after the notification. In some embodiments, the prompt may be provided in response to the user initializing a subsequent conversation session with the automated assistant. The prompt may include or be based on the previously stored information. For example, when the interrupted action corresponds to a previous attempt by the user to send a message via the automated assistant, the stored information may include data about the message. In this way, the user can quickly identify the previously uncompleted action from the prompt and choose to continue with the action by selecting the prompt. In some embodiments, the prompt may be a natural language output provided via an audio modality, a video modality, and / or any other modality by which the automated assistant can communicate with the user. By selecting the prompt, or otherwise providing an indication of willingness to complete the action, in response, the automated assistant may generate an inquiry for any missing information required from the user to complete the action. For example, in response to the user selecting the prompt, the automated assistant may provide a natural language output such as "Okay, who would you like to send the message to?"
[0049] In some embodiments, a prompt may be provided at a graphical user interface, and the prompt includes a list of multiple previous actions that are not completed. In this way, the user can be reminded of the actions that are not completed and can select one or more of the actions that are not completed. For example, if the actions that are not completed include multiple uncompleted messages, the user can select to complete the multiple uncompleted messages. The user can provide an input to the automated assistant to initiate another conversation session for completing the uncompleted messages, and in response, the automated assistant can access the information stored corresponding to the uncompleted messages. Then, the automated assistant can generate a natural language output to request the information required by the user to complete the uncompleted messages. Such output may include an audible output, such as "Okay, please confirm the following message content [message content] and provide the recipient..., and also please confirm the other message content (different message content) and provide the recipient". In this way, a sequential request for the information for completing the previous actions that are not completed can be provided to the user without having to switch back and forth multiple times between the prompt at the graphical user interface and speaking to the audio interface.
[0050] In some embodiments, an event may be a direct instruction from the user to pause a specific action. For example, the user can provide an oral input, such as "Pause the action", to the audio interface of the client device. The foregoing oral input may be provided during the initial conversation session in which the user initially requests to perform the action. In response to receiving the oral input, the automated assistant can locally store any information related to the action at the client device. Thereafter, the user can request a prompt for any previous actions that are not completed (e.g., "Assistant, tell me the actions that I have not completed.") or simply say the phrase "Resume the previous action" to initiate the completion of the actions that are not completed. In response, the automated assistant can access the stored information and provide a response based on the stored information to the user.
[0051] Figure 4Method 400 for resuming a previously unfinished action to be performed by an automated assistant is shown. Method 400 may be performed by one or more computing devices, applications, and / or any other device or module capable of interacting with the automated assistant. Method 400 may include operation 402 of providing a user prompt that identifies an unfinished action previously initialized during a first conversation session between the user and the automated assistant. A conversation session may be an interaction between one or more users and one or more automated assistants and may be performed via one or more communication modalities (such as, voice, text, gesture, and / or any other communication modality). The user prompt may be provided via an automated assistant interface of a client device that at least partially hosts the automated assistant or interacts with the automated assistant via a network connection to a remote device such as a server. For example, the user prompt may be a graphical user interface icon presented at a display panel of the client device. The prompt may identify one or more previously unfinished actions to bring to the user's attention their ability to complete the previously initialized actions, thereby eliminating the need for the user to provide the same information to the automated assistant.
[0052] Method 400 may further include operation 404 of receiving from the user a selection to initiate a second conversation session to complete the unfinished action. The selection may be received via the automated assistant interface of the client device and may identify a particular unfinished action. Additionally, in response to receiving the selection, a second conversation session between the user and the automated assistant may be initiated. The second conversation session may be conducted via the interface by which the user participated in the first conversation session, at least based on stored information corresponding to the unfinished action. For example, the stored information may identify a device, interface, modality, and / or any other information associated with the communication means by which the user participated in the first conversation session. Alternatively, the second conversation session may be initiated by the same device by which the user selected the unfinished action.
[0053] Method 400 may further include operation 406 that, in response to receiving the selection, accesses a data set that includes slot values generated from information received by the client device during a first conversation session and / or parameters requested to complete an action during a second conversation session. The data set may be defined by, or be at least a portion of, the stored information generated when the first conversation session was interrupted by a particular event or otherwise caused to end. Additionally, the data set may include information provided by the user during the first conversation session and / or other data retrieved by the automated assistant to facilitate the action. For example, the data set may define one or more slot values for fulfilling a function associated with the action. The action may be ordering an item via the automated assistant, and the function may correspond to a backend script executed to complete the action. Thus, the slot values may be, for example, the quantity of the item to be ordered, a description of the item to be ordered, and / or confirmation of the order. Optionally, the data set may define parameters that will be requested during the second conversation session to complete the action. A parameter may be any value that the function still requires to complete the action. For example, if the user has not confirmed the order, the parameter may include the value "Function: Order item; Confirmed: empty", indicating that no confirmation has been received. The automated assistant may identify the missing parameter and generate an output for the user during the conversation session to request the value of the missing parameter.
[0054] Method 400 may further include operation 408 that causes the automated assistant to provide a request for one or more of the parameters to the user during the second conversation session. The request may be provided via the automated assistant interface of the client device and may include natural language content such as "Please confirm the one item you ordered". The foregoing may be based on a data set that stores the "confirmed" parameter as being empty or otherwise not including a slot value. The automated assistant may provide one or more requests during the conversation session based on how many parameters are needed to complete the action. For example, if the user did not provide the quantity of the item to be ordered during the first conversation session, the data set may include the value "Function: Order item; Quantity of item: [empty]". The automated assistant may access the data set and generate a request that includes, for example, content such as "Please provide the 'Quantity of item' for your item order". The user may provide a response that defines the quantity of the item to be ordered, and if all parameters for completing the action have been completed, the automated assistant may cause the action to be executed and, for example, cause the item to be ordered. If the second conversation session is interrupted by a qualifying event, the stored data set may be updated to include any additional information obtained during the second conversation session. The user or the automated assistant may then initialize the completion of the action at a later time without having to provide the same information provided during the first and second conversation sessions.
[0055] Figure 5 is a block diagram 500 of an example computer system 510. The computer system 510 generally includes at least one processor 514 that communicates with a plurality of peripheral devices via a bus subsystem 512. These peripheral devices can include a storage subsystem 524, including, for example, a memory 525 and a file storage subsystem 526; a user interface output device 520; a user interface input device 522; and a network interface subsystem 516. The input and output devices allow a user to interact with the computer system 510. The network interface subsystem 516 provides an interface to an external network and is coupled to corresponding interface devices in other computer systems.
[0056] The user interface input device 522 can include: a keyboard; a pointing device such as a mouse, trackball, touchpad, or graphics tablet; a scanner; a touchscreen incorporated into a display; an audio input device such as a speech recognition system; a microphone; and / or other types of input devices. In general, the use of the term "input device" is intended to include all possible types of devices and ways of inputting information into the computer system 510 or onto a communication network.
[0057] The user interface output device 520 can include a display subsystem, a printer, a fax machine, or a non-visual display such as an audio output device. The display subsystem can include a cathode ray tube (CRT), a flat panel device such as a liquid crystal display (LCD), a projection device, or some other mechanism for creating a visual image. The display subsystem can also provide a non-visual display, such as via an audio output device. In general, the use of the term "output device" is intended to include all possible types of devices and ways of outputting information from the computer system 510 to a user or another machine or computer system.
[0058] The storage subsystem 524 stores programming and data constructs that provide the functionality of some or all of the modules described herein. For example, the storage subsystem 524 can include logic for executing selected aspects of methods 300, 400 and / or implementing one or more of the automatic assistant 104, the server device 102, the speech-to-text engine 108, the text parser engine 110, the vehicle computing device 122, the client computing device 130, the assistant application 132, the assistant application 124, the assistant device 206, the computing device 212, and / or any other application or device discussed herein.
[0059] These software modules are typically executed by the processor 514, either alone or in combination with other processors. The memory 525 used in the storage subsystem 524 may include multiple memories, including a main random access memory (RAM) 530 for storing instructions and data during program execution and a read-only memory (ROM) 532 for storing fixed instructions. The file storage subsystem 526 may provide persistent storage for program and data files and may include a hard disk drive, a floppy disk drive and associated removable media, a CD-ROM drive, an optical disk drive, or a removable media cartridge. Modules implementing the functionality of certain embodiments may be stored in the storage subsystem 524 by the file storage subsystem 526 or in other machines accessible by the processor 514.
[0060] The bus subsystem 512 provides a mechanism for enabling the various components and subsystems of the computer system 510 to communicate with each other as expected. Although the bus subsystem 512 is schematically shown as a single bus, alternative embodiments of the bus subsystem may use multiple buses.
[0061] The computer system 510 can be of various types, including workstations, servers, computing clusters, blade servers, server farms, or any other data processing system or computing device. Due to the ever-changing nature of computers and networks, Figure 5 the description of the computer system 510 depicted herein is only intended as a specific example for the purpose of illustrating some embodiments. Many other configurations of the computer system 510 may have more or fewer components than the Figure 5 computer system depicted herein.
[0062] Where the systems described herein collect personal information about a user (or often referred to herein as a "participant") or where personal information may be used, the user may be provided with an opportunity to control whether the program or feature collects user information (e.g., information about the user's social network, social behavior or activities, occupation, user preferences, or the user's current geographical location), or to control whether and / or how content is received from content servers that may be more relevant to the user. Additionally, certain data may be processed in one or more ways before storage or use so that personally identifiable information is removed. For example, the identity of the user may be processed so that no personally identifiable information can be determined for that user, or the geographical location of the user from which geographical location information is obtained may be generalized (such as to the city, postal code, or state level) so that the user's specific geographical location cannot be determined. Thus, the user can control how information about the user is collected and / or used.
[0063] Although several embodiments have been described and illustrated herein, various other means and / or structures may be utilized for performing the functions and / or obtaining the results and / or one or more of the advantages described herein, and each of such variations and / or modifications is considered to be within the scope of the embodiments described herein. More generally, all parameters, dimensions, materials, and configurations described herein are intended to be exemplary, and the actual parameters, dimensions, materials, and / or configurations will depend upon one or more specific applications of the teachings. Those skilled in the art will recognize or be able to use, without more than routine experimentation, many equivalents to the specific embodiments described herein. Thus, it is to be understood that the foregoing embodiments are presented by way of example only, and that embodiments may be practiced otherwise than as specifically described and claimed within the scope of the appended claims and their equivalents. Embodiments of the present disclosure relate to each and every individual feature, system, article, material, kit, and / or method described herein. Moreover, any combination of two or more of such features, systems, articles, materials, kits, and / or methods, if they are not mutually inconsistent, is included within the scope of the present disclosure.
Claims
1. A method implemented by one or more processors, the method comprising: During a conversation session between a user and an automated assistant, receiving, at one or more input components of a client device, a request for an action to be performed by the automated assistant, wherein the automated assistant is configured to complete the action based on one or more slot values obtained from the user during the conversation session; Detecting, at the client device, an event that occurs during the conversation session; Determining a measure of the importance of the event to the user; Based on the measure of importance, classifying the event as an interruption and causing the one or more slot values obtained from the user during the conversation session to be stored in a memory of the client device, wherein the stored one or more slot values can subsequently be retrieved by the automated assistant from the memory to facilitate completion of the action; And After classifying the event, causing the automated assistant to provide a prompt to the user regarding completion of the action, wherein the prompt is based on the stored one or more slot values.
2. The method according to claim 1, wherein The client device includes an in-vehicle computing device.
3. The method according to claim 1, wherein The event includes driving.
4. The method according to claim 1, further comprising: Receiving, at one or more of the input components of the client device, a separate request to perform another action, wherein causing the automated assistant to provide the prompt includes generating a response to the separate request, wherein the response to the separate request identifies the action as a reminder to complete the action.
5. The method according to claim 1, wherein, Implementing at least a portion of the automated assistant on a server device, the client device being accessible via a network connection to the server device.
6. The method according to claim 1, wherein The one or more slot values obtained from the user include natural language input received at an automated assistant interface of the client device, and the prompt identifies at least a portion of the natural language input.
7. The method according to claim 1, wherein Presenting the prompt at a graphical user interface presented on a display of the client device, and the prompt includes a list of previously incomplete actions from a previous conversation session between the user and the automated assistant.
8. The method according to claim 1, further comprising: Receiving user input that guides the automated assistant to facilitate completion of the action; And In response to receiving the user input, generating a user prompt that identifies one or more missing parameters necessary to complete the action.
9. The method according to claim 1, wherein Classifying the event is further based on the source of the event.
10. The method according to claim 1, wherein Causing the slot values of the action to be stored at the client device as a data set includes: causing the data set to be stored together with other data sets corresponding to incomplete actions initialized via the automated assistant.
11. The method according to claim 10, wherein, The data set includes the amount of time that has elapsed since the event occurred, or a timestamp identifying when the event occurred.
12. The method according to claim 1, wherein Providing the prompt via a separate automated assistant interface that is different from the automated assistant interface by which the user interacts with the automated assistant.
13. The method according to any one of claims 1 to 12, wherein The automated assistant is accessible via a network connection, and the event corresponds to a disconnection of the client device from the network connection.
14. A system comprising one or more computers and one or more storage devices, the storage devices storing instructions that, when executed by the one or more computers, cause the one or more computers to perform the operations of the method according to any one of claims 1 to 13.
15. One or more computer storage media storing instructions that, when executed by one or more computers, cause the one or more computers to perform the operations of the method according to any one of claims 1 to 13.
16. A method implemented by one or more processors, the method comprising: Receiving, during a conversation session between a user and an automated assistant, at one or more input components of a client device, a request for an action to be performed by the automated assistant, wherein the automated assistant is configured to complete the action based on one or more slot values obtained from the user during the conversation session; Determining an activity that the user is actively engaged in during the conversation session; Detecting, at the client device, an event that occurs during the conversation session; Determining, at least based on the activity that the user is actively engaged in during the conversation session, a measure of the importance of the event to the user; Classifying the event as an interruption of the conversation session based on the measure of the importance of the event to the user; Based on the classification, causing one or more slot values obtained from the user during the conversation session to be stored in a memory of the client device, wherein the stored one or more slot values can subsequently be retrieved from the memory by the automated assistant to facilitate completion of the action; And After classifying the event, causing the automated assistant to provide a prompt to the user regarding completion of the action, wherein the prompt is based on the stored one or more slot values.
17. The method according to claim 16, further comprising: Receiving, at one or more of the input components of the client device, a separate request to perform another action, wherein causing the automated assistant to provide the prompt includes generating a response to the separate request, wherein the response to the separate request identifies the action as a reminder to complete the action.
18. The method according to claim 16, wherein, Implementing at least a portion of the automated assistant on a server device, the client device being accessible via a network connection to the server device.
19. The method according to claim 16, wherein, The one or more slot values obtained from the user include natural language input received at an automated assistant interface of the client device, and the prompt identifies at least a portion of the natural language input.
20. The method according to claim 16, wherein Presenting the prompt at a graphical user interface presented on a display of the client device, and the prompt includes a list of previous incomplete actions from a previous conversation session between the user and the automated assistant.
21. The method according to claim 16, wherein, The activity includes driving, the client device includes an in-vehicle computing device, and determining the measure of the importance of the event to the user includes determining that the event is related to driving.
22. A method implemented by one or more processors of an in-vehicle computing device of a vehicle, the method comprising: Receiving data corresponding to a conversation session between the user and an auto-assistant that occurs while the user is driving the vehicle, where the data corresponds to slot values of actions to be performed by the auto-assistant, and the user interacts with the auto-assistant via an auto-assistant interface of the in-vehicle computing device; Classifying the event based on a measure of the importance of the user's operation of the vehicle during the conversation session; Based on the event being classified as an interruption to the conversation session that occurs between the user and the auto-assistant: At least temporarily stopping the continuation of the conversation session, and Causing the slot values of the action to be stored as a data set at the in-vehicle computing device, the data set further identifying missing data required to complete the action, where the data set is configured to be subsequently retrieved to facilitate completion of the action; After at least temporarily stopping the continuation of the conversation session, causing the in-vehicle computing device to provide a recommended output identifying the action, where the recommended output is based on the stored data set.
23. The method according to claim 22, further comprising: Receiving user input that guides the auto-assistant to facilitate completion of the action; And In response to receiving the user input, generating a user prompt identifying one or more of the missing parameters.
24. The method according to claim 22, wherein, Classifying the event is further based on the source of the event.
25. The method according to claim 22, wherein, Causing the slot values of the action to be stored as the data set at the in-vehicle computing device includes: causing the data set to be stored together with other data sets corresponding to incomplete actions initialized via the auto-assistant.
26. The method according to claim 22, wherein, The data set includes the amount of time that has passed since the event occurred, or a timestamp identifying when the event occurred.
27. The method according to claim 22, wherein, Providing the recommended output via a separate auto-assistant interface that is different from the auto-assistant interface by which the user interacts with the auto-assistant.
28. The method according to any one of claims 22 to 27, wherein The auto-assistant can be accessed via a network connection, and the event corresponds to a disconnection of the in-vehicle computing device from the network connection.
Citation Information
Patent Citations
Context-sensitive handling of interruptions by intelligent digital assistants
CN104584096A
Dialog Flow Management In Hierarchical Task Dialogs
US20160042735A1