Fulfillment of executable requests ahead of user selecting particular autocomplete suggestion for completing current user input
By aggressively processing partial user input and communicating command data ahead of user selection, the system addresses latency issues in fulfilling autocomplete proposals, improving responsiveness and resource efficiency in human-computer interaction.
Patent Information
- Application Number
- JP2025008507
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2020-06-18
- Filing Date
- 2025-01-21
- Publication Date
- 2025-05-14
- Estimated Expiration
- 2041-05-14
AI Technical Summary
Existing human-computer interaction systems, such as automatic assistants, face latency issues when fulfilling user requests related to autocomplete proposals, leading to delayed resource management and potential inefficiencies.
The system aggressively fulfills executable requests by processing partial user input on both client and server devices, using natural language understanding processes to generate and enhance autocomplete proposals, and communicating command data to the client before user selection, thereby reducing latency.
This approach significantly reduces the time between user selection and action initialization, conserves computational and network resources, and enhances the responsiveness of interactive systems.
Smart Images

Figure 2025075026000001_ABST
Abstract
Description
[Technical field]
[0001] Fulfilling possible requests before a user selects a particular autocomplete suggestion. [Background technology]
[0002] Humans may engage in human-computer interactions using interactive software applications referred to herein as "automated assistants" (also referred to as "digital agents," "chatbots," "interactive personal assistants," "intelligent personal assistants," "conversational agents," etc.). For example, a human (who may be referred to as a "user" when interacting with an automated assistant) may provide commands and / or requests using natural language input via voice (utterances), possibly converted to text and then processed and / or by providing textual (e.g., typed) natural language input.
[0003] In some cases, an automated assistant or other application may provide a feature that suggests to the user certain commands that the user issues to the automated assistant or application. However, in many cases, the suggestions rendered for the user may not be easily interactive since there are several more actions that need to be performed. For example, to respond to a suggested command selected by a user, the application may need to retrieve data from one or more server computing devices or applications and / or buffer certain data at the client computing device. This may increase the latency between the time the user selects the suggestion and the time the application fulfills the request. Such latency may delay certain resource conservation actions, which may cause harm to other applications and / or computing devices. For example, a suggested command corresponding to powering down an appliance may not be executed quickly after the user selects the suggested command. As a result, the appliance may continue to consume energy and / or other resources until the respective application fulfills the suggested command. Additionally, messages and / or other communications between users may be delayed as a result of such latency, which may result in unintended schedule changes and / or other consequences that may lead to loss of time and / or other resources. Summary of the Invention [Means for solving the problem]
[0004] Implementations described herein relate to the proactive fulfillment of executable requests when such requests correspond to autocomplete suggestions being presented to a user who has provided at least partial input to a user interface. A partial input may be, for example, a portion of an input provided to a text field interface of a computing device (e.g., "on..."). A partial input may include one or more characters received at an interface of a computing device prior to an indication that a user has completed providing a corresponding input. An indication that a user has completed an input may be, but is not limited to, selecting a GUI element, providing a voice input, a tactile input, interacting with a hardware button by providing a threshold time that has elapsed since a particular input, and / or other interactions that may occur at a computing device. A partial input may be characterized by client data that is processed at a client computing device and also provided to a server computing device for processing. Each of the client computing device and the server computing device may rely on a respective natural language understanding (NLU) process (e.g., a client NLU process and a server NLU process). In some implementations, the server NLU process may be more robust than the client NLU process.
[0005] The client computing device can use, for example, a matching process to generate one or more autocomplete suggestions and / or other instances of natural language content from the partial input. Each autocomplete suggestion, when attached as an addendum to the partial input, can create a respective input command that is specific as to a particular application action to be performed or a result to be achieved in response to a device and / or application receiving the respective input command. The client computing device can then render one or more selectable suggestions (e.g., selectable GUI elements and / or other selectable suggestion elements) in an interface of the client computing device or in another interface of another computing device based on the autocomplete suggestions.
[0006] While the client computing device is rendering the selectable suggestions, the server computing device can process client data provided by the client computing device (e.g., the partial interface input and / or one or more autocomplete suggestions). The client data can be processed by the server computing device using a server NLU process to facilitate generation of server suggestion data, which can include content corresponding to the autocomplete suggestions. The server suggestion data can then be communicated to the client computing device. The client computing device can process the server suggestion data to enhance the functionality of the one or more selectable suggestions rendered at the client computing device. For example, if the client data includes an autocomplete suggestion, such as "turn on the security lights," the server suggestion data can feature content indicative of a status of the security lights. The content can include graphic data, such as a light bulb icon and / or a light switch icon, to visually indicate a current status of the security lights.
[0007] In some cases, the aforementioned process may occur while the user continues to provide the remaining partial input to the client computing device interface, or immediately after providing the partial input but before completing the input. During this time, the server computing device may identify and / or generate fulfillment data usable by the client computing device and / or one or more client applications to fulfill one or more executable requests corresponding to each respective selectable suggestion. For example, a particular selectable suggestion identified by the server computing device may be "Turn on the security lights." The fulfillment data corresponding to this particular selectable suggestion may characterize the current operational state of the "security lights" and / or the embedded link. When executed, a request to turn on the security lights is issued to an application or a controller controlling the security lights.
[0008] Once the server computing device generates the fulfillment data, the fulfillment data can be communicated to the client computing device for proactively fulfilling one or more of the selectable suggestions before the user selects one of the selectable suggestions. Once the client computing device receives the fulfillment data, each respective portion of the fulfillment data can be stored in association with one or more corresponding selectable suggestions. For example, a selectable suggestion labeled with natural language content, such as "Turn on the security lights," can be linked to a portion of the fulfillment data that characterizes an embedded link for turning on a particular security light to which the user may refer. Additionally or alternatively, another selectable suggestion labeled with other natural language content, such as "Turn on the air purifier," can be associated with another portion of the fulfillment data that characterizes command data for turning on a Wi-Fi enabled air purifier. In some cases, the fulfillment data can be linked or associated with multiple different selectable suggestions while providing user input and / or before the user selects one or more of the selectable suggestions.
[0009] As a result, the latency between a user selecting a particular selectable suggestion and the corresponding action being initialized and / or completed may be reduced. For example, by actively searching for an embedded link for a particular selectable suggestion, the client computing device may bypass the operation of requesting an embedded link from a server computing device after a user selects a particular selectable suggestion. Bypassing this operation after receiving a selection of a selectable suggestion may also reduce the amount of network bandwidth and processing bandwidth consumed in response to receiving a selectable suggestion. Additionally, bypassing this operation may also conserve computational resources for subsequent application processes that may be initialized when a user provides a series of requests to an application, such as an automated assistant.
[0010] The above description is provided as a summary of some implementations of the present disclosure. Further descriptions of these and other implementations are described in more detail below.
[0011] Other implementations may include a non-transitory computer-readable storage medium that stores instructions 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 methods, such as one or more of the methods described above and / or elsewhere herein. Still other implementations may include one or more computer systems including one or more processors operable to execute the stored instructions to perform methods, such as one or more of the methods described above and / or elsewhere herein.
[0012] It should be understood that all combinations of the foregoing 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 claimed subject matter appearing at the end of this disclosure are considered to be part of the subject matter disclosed herein. [Brief description of the drawings]
[0013] [Figure 1A] 1 shows a view of a user interacting with an interface that provides actively fulfilled, selectable autofill suggestions. [Figure 1B] 1 shows a view of a user interacting with an interface that provides actively fulfilled, selectable autofill suggestions. [Figure 1C] 1 shows a view of a user interacting with an interface that provides actively fulfilled, selectable autofill suggestions. [Diagram 2]1 illustrates a system that provides selectable suggestions corresponding to automated assistant actions and / or application actions that are fulfilled at least in part using command data provided by a server device before a user selects a particular selectable suggestion. [Figure 3A] A method is illustrated for proactively initializing the performance of one or more actions suggested to a user in response to the user providing at least partial input to an interface of a computing device, prior to user selection. [Figure 3B] A method is illustrated for proactively initializing the performance of one or more actions suggested to a user in response to the user providing at least partial input to an interface of a computing device, prior to user selection. [Figure 4] FIG. 1 is a block diagram of an exemplary computer system. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0014] 1A, 1B, and 1C show views 100, 120, and 140 of a user 104 interacting with an interface 110 that provides actively fulfilled, selectable, autofill suggestions. Each autofill suggestion can correspond to a respective application action that the user 104 can actively fulfill before selecting the respective autofill suggestion. The one or more processes for actively initializing and / or fulfilling the application action can use a remote server device that processes the one or more autofill suggestions to generate command data that can be used to fulfill and / or initialize a particular action. For example, as provided in view 100 of FIG. 1A, the user 104 can provide a partial input 106 to a text field 108 that is rendered in an interface 110 of the computing device 102. The partial input 106 can be, for example, "Chan...", which can include one or more characters that the user 104 intends as the first part of a natural language input (e.g., an auxiliary command such as "Chan[ge the temperature]"). The partial input 106 may be considered “partial” if additional input is provided over a threshold period of time selected such that if the user 104 has not finished typing or providing input, the input is sent to an application for processing, and / or the partial input 106 may otherwise indicate that the partial input 106 is incomplete relative to subsequent input that the user 104 intends to provide (e.g., provided via speech and / or keyboard 116, which may receive touch input from the user's 104's hands 112).
[0015] FIG. 1B illustrates a view 120 in which a computing device 102 receives a partial input 106 and communicates partial input data 132 from a user interface 122 to an application 124, such as an automated assistant. The computing device 102 and / or the application 124 can include a suggestion engine 126 that can execute a process for generating autofill suggestions 118, characterized by generating suggestion data 114 that can be rendered in the user interface 122. The process for generating autofill suggestions can include associating the partial input 106 with one or more previous inputs provided by the user 104 and / or one or more other users. Alternatively or additionally, the process for generating autofill suggestions can include processing the partial input data 132 using one or more trained machine learning models. Each autofill suggestion can then be ranked or otherwise prioritized based on other data accessible to the computing device 102. This other data can be, for example, contextual data and / or application data that characterizes one or more interactions that have occurred or are occurring between the user 104 and the computing device 102, with prior permission from the user 104.
[0016] In some implementations, one or more autofill suggestions that are ranked or designated to be preferred over one or more other autofill suggestions can be communicated to the server device 146 before the user 104 selects a particular autofill suggestion of the one or more autofill suggestions 130 rendered in the interface 110. For example, as shown in the view 140 of FIG. 1C, the computing device 102 can communicate suggestion data 142 to the server device 146. The suggestion data 142 can characterize one or more autofill suggestions generated at the computing device 102. In some implementations, the suggestion data 142 can characterize a subset of the autofill suggestions generated by the suggestion engine 126 of the application 124. The subset of autofill suggestions can include, but is not limited to, one or more highest priority autofill suggestions of the autofill suggestions 130.
[0017] In response to receiving the suggestion data 142, the server device 146 may generate additional suggestion data 150 and / or command data 148, as shown in the view 140 of FIG. 1C. The additional suggestion data 150 and / or command data 148 may be received by the computing device 102 after the autofill suggestions 130 are rendered in the interface 110, but before the user 104 selects one or more of the autofill suggestions. For example, the user 104 may continue to provide input using the keyboard 116 even while the autofill suggestions 130 are rendered in the interface 110, and even after the commands in the additional suggestion data 150 and 148 are received from the server device 146. Once the computing device 102 and / or the application 124 receive the command data 148, the application 124 and / or one or more other applications may access the command data 148 to facilitate the fulfillment of one or more application actions associated with the autofill suggestions 130. For example, a smart thermostat application may access command data 148 in preparation for fulfilling a temperature change action corresponding to an autofill suggestion of "change the temperature." Alternatively, or in addition, a smart home application may access command data 148 in preparation for receiving instructions from application 124 to change the brightness of lights in the home of user 104. These instructions may correspond to an autofill suggestion of "change the brightness in the living room."
[0018] In some implementations, the server device 146 can provide additional suggestion data 150, which can include content that can be rendered in the interface 110. The content can be, but is not limited to, graphical data, audio data, and / or other data that the user 104 can use to accomplish the completion of one or more application actions associated with the autofill suggestion 130. For example, the additional suggestion data 150 can be one or more interactive GUI elements 152, such as a slide bar and / or a rotatable dial. These GUI elements can be selected by the server device 146 using these suggestion data 142 and / or other data accessible to the server device. In some implementations, the server device 146 can access state data associated with a particular device and / or application to generate GUI elements that characterize the state of the particular device and / or application. For example, in response to receiving the suggestion data 142, the server device 146 can access the state data or other content and generate the additional suggestion data 150 to characterize the state data or other content. In some cases, speakers accessible to the computing device 102 may be capable of rendering audio at a volume level of "8," and thus the server device 146 may generate additional suggestion data 150 characterizing the volume level (e.g., an adjustable dial set to "8," as shown in FIG. 1C).
[0019] In another example, a thermostat accessible to the computing device 102 may be set to a temperature of 76 degrees, and thus the server device 146 may generate additional suggestion data 150 characterizing the temperature (e.g., an editable text field with “76°” populated in the editable text field). In some cases, content from the Internet may be accessed based on the suggestion data 142 to provide additional content that may characterize a particular autofill suggestion. For example, an image of an entree retrieved from the Internet may be stored in association with an autofill suggestion that corresponds to a recipe (e.g., “Chana Dal Recipe”). In this way, the user 104 may more easily identify the purpose of a particular autofill suggestion, and a portion of the Internet webpage (e.g., graphical content characterizing the entree) may already be buffered in the memory of the computing device 102 before the user 104 selects a particular autofill suggestion.
[0020] In some implementations, each autofill suggestion 130 and / or each interactive GUI element can be stored in association with command data 148, which can include an embedded link, network data for establishing a connection to another device, a medium, and / or any other data accessible when the application is performing one or more actions. For example, if the autofill suggestion includes "change the brightness in the living room," the command data 148 can include network connection data accessible by the application 124 and / or any other application to establish a communication channel between the computing device 102 and one or more smart lights in the user's 104 home. Providing such command data 148 before the user 104 selects a particular autofill suggestion can conserve computational resources associated with performing one or more actions on the autofill suggestion. For example, the latency between the user's selection and the performance of the action can limit processing bandwidth and network bandwidth for a period of time. Additionally, such bandwidth limitations can consume charge storage, which can be limited on certain portable electronic devices.
[0021] FIG. 2 illustrates a system 200 that provides selectable suggestions corresponding to automated assistant actions and / or application actions that are fulfilled at least in part using command data provided by a server device before a user selects a particular selectable suggestion. The automated assistant 204 can operate as part of an assistant application provided on one or more computing devices, such as the computing device 202 and / or the server device. A user can interact with the automated assistant 204 via an assistant interface 220, which can be a microphone, a camera, a touch screen display, a user interface, and / or any other device capable of providing an interface between a user and an application. For example, a user can initialize the automated assistant 204 by providing verbal, textual, and / or graphical input to the assistant interface 220 to cause the automated assistant 204 to initialize one or more actions (e.g., provide data, control a peripheral device, access an agent, generate input and / or output, etc.). Alternatively, the automated assistant 204 can be initialized based on processing of the context data 236 using one or more trained machine learning models. The context data 236 may characterize one or more characteristics of the environment in which the automated assistant 204 is accessible and / or one or more characteristics of a user who is predicted to intend to interact with the automated assistant 204.
[0022] The computing device 202 can include a display device, which may be a display panel including a touch interface for receiving touch input and / or gestures to enable a user to control applications 234 of the computing device 202 via a touch interface. In some implementations, the computing device 202 may lack a display device, thereby providing an audible user interface output without providing a graphical user interface output. Additionally, the computing device 202 can provide a user interface, such as a microphone, to receive spoken natural language input from a user. In some implementations, the computing device 202 can include a touch interface and lack a camera, but can optionally include one or more other sensors.
[0023] The computing device 202 and / or other third party client devices can communicate with the server device over a network such as the Internet. Additionally, the computing device 202 and any other computing devices can communicate with each other over a local area network (LAN) such as a Wi-Fi network. The computing device 202 can offload computational tasks to the server device to conserve computational resources at the computing device 202. For example, the server device can host the automated assistant 204 and / or the computing device 202 can send inputs received at one or more assistant interfaces 220 to the server device. However, in some implementations, the automated assistant 204 can be hosted at the computing device 202 and can execute various processes at the computing device 202 that can be associated with automated assistant operations.
[0024] In various implementations, all or some aspects of the automated assistant 204 can be implemented on the computing device 202. In some of those implementations, aspects of the automated assistant 204 can be implemented via the computing device 202 and interface with a server device that can implement other aspects of the automated assistant 204. The server device can optionally provide services to multiple users and their associated assistant applications via multiple threads. In implementations in which all or some aspects of the automated assistant 204 are implemented via the computing device 202, the automated assistant 204 can be an application separate from the operating system of the computing device 202 (e.g., installed "on" the operating system) - or, alternatively, can be implemented directly by the operating system of the computing device 202 (e.g., considered to be an application of the operating system but integrated with the operating system).
[0025] In some implementations, the automated assistant 204 can include an input processing engine 206 that can use multiple different modules for processing input and / or output of the computing device 202 and / or the server device. For example, the input processing engine 206 can include a voice processing engine 208 that can process voice data received at the assistant interface 220 to identify text embodied in the voice data. The voice data can be transmitted from the computing device 202 to a server device, for example, to conserve computational resources at the computing device 202. Additionally or alternatively, the voice data can be processed exclusively at the computing device 202.
[0026] The process of converting the voice data to text can include speech recognition algorithms that can use neural networks and / or statistical models to identify groups of voice data that correspond to words or phrases. The text converted from the voice data is analyzed by the data analysis engine 210 and made available to the automated assistant 204 as text data that can be used to generate and / or identify command phrases, intents, actions, slot values, and / or any other content specified by the user. In some implementations, the output data provided by the data analysis engine 210 can be provided to a parameter engine 212 to determine whether the user has provided input (e.g., partial input or complete input), which corresponds to a particular intent, action, and / or routine that can be performed by the automated assistant 204, and / or an application or agent that can be accessed via the automated assistant 204. For example, the assistant data 238 can be stored on the server device and / or the computing device 202 and can include data defining one or more actions that can be performed by the automated assistant 204, and parameters required to perform the action. The parameter engine 212 can generate one or more parameters for the intent, action, and / or slot value and provide the one or more parameters to the output generation engine 214. The output generation engine 214 can use the one or more parameters to communicate with the assistant interface 220 to provide output to the user and / or to communicate with one or more applications 234 to provide output to the one or more applications 234.
[0027] In some implementations, the automated assistant 204 can be an application that can be installed "on top of" the operating system of the computing device 202 and / or can itself form part (or the entirety) of the operating system of the computing device 202. The automated assistant application includes and / or has access to on-device speech recognition, on-device natural language understanding, and on-device fulfillment. For example, on-device speech recognition can be performed using an on-device speech recognition module that processes the voice data (detected by the microphone) using an end-to-end speech recognition machine learning model stored locally on the computing device 202. The on-device speech recognition generates recognized text for the utterances (if any) present in the voice data. Also, for example, on-device natural language understanding (NLU) can be performed using an on-device NLU module that processes the recognized text generated using on-device speech recognition and, optionally, contextual data to generate NLU data.
[0028] The NLU data can include an intent corresponding to the utterance and, optionally, parameters of the intent (e.g., slot values). On-device fulfillment can be performed using an on-device fulfillment module that utilizes the NLU data (from on-device NLU), and optionally other local data, to determine actions to perform to resolve the intent of the utterance (and optionally parameters of the intent). This can include determining local and / or remote responses (e.g., answers) to the utterance, interacting with locally installed applications to perform based on the utterance, commands to send (directly or via a corresponding remote system) to Internet of Things (IoT) devices based on the utterance, and / or other resolution actions to perform based on the utterance. The on-device fulfillment can then initialize local and / or remote performance / execution of the determined actions to resolve the utterance.
[0029] In various implementations, remote speech processing, remote NLU, and / or remote fulfillment may be utilized at least selectively. For example, recognized text may be at least selectively sent to a remote automated assistant component for remote NLU and / or remote fulfillment. For example, recognized text may be optionally sent for remote performance in parallel with on-device performance or in response to failure of on-device NLU and / or on-device fulfillment. However, on-device speech processing, on-device NLU, on-device fulfillment, and / or on-device execution may be prioritized due to at least the reduced latency provided in resolving an utterance (as no client-server round trips are required to resolve the utterance). Additionally, on-device functionality may be the only functionality available in situations where there is no or limited network connectivity.
[0030] In some implementations, the computing device 202 can include one or more applications 234 that can be provided by a third party entity different from the entity that provided the computing device 202 and / or the automated assistant 204. The application state engine of the automated assistant 204 and / or the computing device 202 can access the application data 230 to determine one or more actions that can be performed by the one or more applications 234, as well as the state of each application of the one or more applications 234 and / or the state of each device associated with the computing device 202. The device state engine of the automated assistant 204 and / or the computing device 202 can access the device data 232 to determine one or more actions that can be performed by the computing device 202 and / or one or more devices associated with the computing device 202. Additionally, the application data 230 and / or any other data (e.g., device data 232) can be accessed by the automated assistant 204 to generate context data 236 that can characterize the context in which a particular application 234 and / or device is running and / or the context in which a particular user is accessing the computing device 202, accessing the application 234, and / or accessing any other device or module.
[0031] While one or more applications 234 are executing on the computing device 202, the device data 232 can characterize a current operational state of each application 234 executing on the computing device 202. Additionally, the application data 230 can characterize one or more features of the executing applications 234, such as the content of one or more interfaces rendered at the direction of the one or more applications 234. Alternatively or additionally, the application data 230 can characterize action schemas that can be updated by the respective applications and / or automated assistant 204 based on the current operational state of the respective applications and / or respective application actions. Alternatively or additionally, one or more action schemas of one or more applications 234 can remain static but can be accessed by the application state engine to determine appropriate actions to initialize via the automated assistant 204.
[0032] In some implementations, the computing device 202 can include an autofill suggestion engine 222 that can process various inputs received at the assistant interface 220 and / or any other computing device. For example, a user can begin to provide typed input (e.g., one or more natural language characters) in a text field rendered in the interface of the computing device 202. In response to the user providing the partially typed input, the autofill suggestion engine 222 can identify one or more autofill suggestions that characterize one or more character strings. When the one or more character strings are sequentially combined with the partially typed user input, a word or phrase that can be executed by the automated assistant 204 and / or another application 234 is created. Each autofill suggestion identified by the autofill suggestion engine 222 can be rendered in the graphical user interface of the computing device 202, and each autofill suggestion can be made selectable before the user finishes typing the typed input.
[0033] In some implementations, the computing device 202 and / or the automated assistant 204 can communicate each autofill suggestion to a server computing device before the user finishes typing the typed input. The server computing device can process each autofill suggestion to facilitate generating additional autofill suggestion content and / or command data associated with each respective autofill suggestion. The computing device 202 and / or the automated assistant 204 can include a command data engine 216 that can process command data received from the server computing device. The command data engine 216 can process the command data before the user selects a particular autofill suggestion. In some cases, processing the command data can include providing one or more respective applications 234 access to the command data. For example, the command data can include specific fulfillment data that a particular application 234 can use to fulfill an application action associated with a particular autofill suggestion before the user selects a particular autofill suggestion. Additionally or alternatively, the command data can include assistant command fulfillment data that the automated assistant 204 can use to fulfill an assistant action associated with a particular autofill suggestion before the user selects a particular autofill suggestion.
[0034] In some implementations, the first priority data can be generated by the suggestion ranking engine 218 using the application data 230, the device data 232, and / or the context data 236. For example, the current context of the user and / or the computing device 202 when the user provides the user input can be the basis for assigning a higher priority to the first autofill suggestion and a lower priority to the second autofill suggestion. Furthermore, the second priority data can be generated by the suggestion ranking engine of the server computing device using historical interaction data based on one or more previous interactions between one or more users and one or more applications and / or devices. For example, an autofill suggestion associated with an application that is used frequently by one or more users can be prioritized higher than an autofill suggestion associated with another application that is used less frequently by one or more users. The third priority data generated by the suggestion ranking engine 218 can then be based on the first priority data and the second priority data. For example, if a particular autofill suggestion is ranked highest by the first priority data and the second priority data, the third priority data can also rank that particular autofill suggestion highest. However, if a particular autofill suggestion is ranked highest in the first priority data but not in the second priority data, additional processing can be used to establish a final ranking of the particular autofill suggestion. For example, additional input provided by the user following the initial input on which the set of autofill suggestions was based can be used as a basis for establishing a final ranking of the particular autofill suggestion.
[0035] In some cases, when the partial input provided by the user is associated with rendering of the media data, the server computing device may rank a particular autofill suggestion higher based on information that is more readily available to the server computing device. For example, the server computing device may have access to information about newly released movies or music before the computing device 202 has access to such information. Thus, if the server ranking of an autofill suggestion is significantly higher than the client ranking of the autofill suggestion, this may be due to limited network access by the computing device 202 and / or more robust data available to the server computing device.
[0036] 3A and 3B illustrate a method 300 and a method 320 for proactively initializing the fulfillment of one or more actions suggested to a user prior to user selection in response to the user providing at least a partial input to an interface of a computing device. The method 300 and the method 320 may be performed by one or more applications, devices, and / or any other apparatus for modules capable of responding to user input. The method 300 may include an act 302 of determining whether a portion of the user input has been received at the computing device. The user input may be a text input including one or more characters received in an input field of an application interface. Thus, a portion of the user input may be any portion of the input that the user has not indicated directly or indirectly and / or explicitly or essentially complete.
[0037] If a portion of the user input has been received, method 300 may proceed from operation 302 to operation 304. If not, the computing device or other application may determine whether a portion of the user input has been received. Operation 304 may include causing one or more autofill suggestions to be rendered in an interface of the computing device. For example, the autofill suggestions may be used as addenda to the portion of the user input. The addenda may include natural language content that, when provided to the computing device along with the portion of the user input, causes the computing device to perform one or more actions. For example, the portion of the input may be "disable ..." and the autofill suggestion may be "security system" or "dishwasher." In this manner, the combination of the partial input and the autofill suggestions, when provided to the computing device as spoken or typed input, may correspond to a complete command executable by the computing device.
[0038] The method 300 may proceed from operation 304 to operation 306, which may include providing autofill suggestion data to a server computing device. The autofill suggestion data may characterize one or more autofill suggestions generated at the computing device in response to user input. The computing device may provide the autofill suggestion data to the server computing device to benefit from additional computational resources and / or information available at the server computing device. For example, the server computing device may have access to a cloud storage service that may be used as a basis for generating additional autofill suggestion data and / or command data. The autofill suggestion data and / or command data may be provided to and / or processed by the computing device prior to a user selecting a particular autofill suggestion that is rendered in an interface of the computing device.
[0039] From operation 306, the method 300 may proceed to operation 308, which may include determining whether an autofill suggestion has been received at the computing device. If an autofill suggestion has been received at the computing device, the method 300 may proceed to operation 314. If an autofill suggestion has been received at the computing device, the method 300 may proceed to operation 314. Operation 314 may include causing a particular application to perform one or more particular actions associated with the selected autofill suggestion. For example, a user may select an autofill suggestion such as "dishwasher" and in response, a smart device application (e.g., an IoT device application) may communicate a command to a smart dishwasher to disable the dishwasher.
[0040] However, if no autofill selection is received at operation 308, the method 300 may proceed to operation 310. Operation 310 may include determining whether command data has been received from a server computing device. The command data may be data that may be used by an application to at least partially fulfill an application action associated with a particular autofill suggestion before a user selects the particular autofill suggestion. The command data may include, but is not limited to, an embedded link that is typically retrieved and / or executed by the application to modify the operation of the smart device. In some cases, the command data may include various fulfillment data for fulfilling one or more application actions corresponding to each of the one or more respective autofill suggestions.
[0041] If the command data is received from the server computing device, the method 300 may proceed to operation 312. If not, the method 300 may proceed from operation 310 via continuation element "A" to continuation element "A" provided in method 320 of FIG. 3B. Operation 312 may include making the command data accessible to one or more applications to fulfill one or more actions associated with the one or more autofill suggestions. If the particular application is able to access the command data, the particular application may operate to facilitate initialization of the fulfillment of one or more actions associated with the autofill suggestion before a user selects the autofill suggestion. The method 300 may then proceed from operation 312 via continuation element "A" to optional operation 316 provided in method 320 of FIG. 3B. Operation 316 may include determining whether additional suggestion content has been received from the server computing device. The additional suggestion content may include data that may be rendered with the one or more autofill suggestions to provide additional information to a user who may be viewing the one or more autofill suggestions. For example, the additional suggestion content may include graphical content that may characterize a state of a particular device associated with a particular autofill suggestion. For example, the additional suggestion content can be a graphical animation depicting a dishwasher actively cleaning dishes. Such information can thus provide a context that can further refine a user's decision to select a particular autofill suggestion from among a plurality of different autofill suggestions. Alternatively or additionally, the additional suggestion content can include media data that can be rendered at a computing device to further characterize the various different autofill suggestions that are suggested to the user.
[0042] If the additional content is received from the server computing device, the method 320 may optionally proceed from operation 316 to operation 318. If not, the method of 320 may proceed from optional operation 316 to operation 308 via continuation element "B". Operation 318 may include causing the computing device or another computing device to render the additional suggested content. By causing the additional suggested content to be rendered, each autofill suggestion may be enhanced with content that supplements information associated with the respective autofill suggestion. In some cases, this may reduce the latency between a user selecting an autofill suggestion and one or more actions being completed in response to the autofill suggestion. For example, if the additional suggested content includes graphical content that features a preview of the video being suggested, a certain amount of the video may be buffered in the memory of the computing device before the user selects the corresponding autofill suggestion. Such reduced latency may be helpful when a user is attempting to view security footage from a security camera and / or access other associated smart home devices.
[0043] From operation 318, the method may proceed to operation 308 provided in FIG. 3A via continuation element "B". Thereafter, method 300 may continue from operation 308 accordingly. For example, if the user selects an autofill suggestion such as "disable dishwasher...", method 300 may proceed to operation 314 to cause a particular application to perform one or more actions related to disabling the "dishwasher". The particular application may be a smart home application for controlling various Wi-Fi enabled devices in the user's home. The particular application may access particular command data prior to the suggestion selection by the user, and the particular command data may characterize one or more actions executable by a module executed on the Wi-Fi enabled dishwasher. For example, the command data may include an embedded link accessed by the particular application or another application (e.g., an automated assistant application) prior to the user selecting the autofill suggestion.
[0044] 4 is a block diagram 400 of an exemplary computer system 410. The computer system 410 typically includes at least one processor 414 that communicates with a number of peripheral devices via a bus subsystem 412. These peripheral devices may include, for example, a storage subsystem 424 including memory 425 and a file storage subsystem 426, a user interface output device 420, a user interface input device 422, and a network interface subsystem 416. The input and output devices allow a user to interact with the computer system 410. The network interface subsystem 416 provides an interface to external networks and is coupled to corresponding interface devices in other computer systems.
[0045] The user interface input devices 422 may include pointing devices such as a keyboard, a mouse, a trackball, a touchpad, or the like, or a graphics tablet, a scanner, a touch screen integrated into a display, a voice input device such as a voice recognition system, a microphone, and / or other types of input devices. In general, use of the term "input device" is intended to include all possible types of devices and methods for inputting information into the computer system 410 or a communications network.
[0046] The user interface output devices 420 may include a display subsystem, a printer, a fax machine, or a non-visual display such as an audio output device. The display subsystem may include a flat panel device such as a cathode ray tube (CRT), a liquid crystal display (LCD), a projection device, or some other mechanism for creating a visible image. The display subsystem may also provide a non-visual display, such as via an audio output device. In general, use of the term "output device" is intended to include all possible types of devices and methods for outputting information from the computer system 410 to a user or to another machine or computer system.
[0047] The storage subsystem 424 stores programming and data structures that provide the functionality of some or all of the modules described herein. For example, the storage subsystem 424 can include logic to perform selected aspects of the method 300, the method 320, and / or implement one or more of the system 200, the computing device 102, the server device 146, and / or other applications, devices, apparatus, and / or modules described herein.
[0048] These software modules are generally executed by the processor 414 alone or in combination with other processors. The memory 425 used by the storage subsystem 424 may include several memories including a main random access memory (RAM) 430 for storing instructions and data during program execution, and a read only memory (ROM) 432 in which fixed instructions are stored. The file storage subsystem 426 may provide persistent storage for program and data files and may include hard disk drives, floppy disk drives, along with associated removable media, CD-ROM drives, optical drives, or removable media cartridges. Modules that implement the functionality of a particular implementation may be stored by the file storage subsystem 426 in the storage subsystem 424 or in other machines accessible by the processor 414.
[0049] Bus subsystem 412 provides a mechanism for enabling the various components and subsystems of computer system 410 to communicate with each other as intended. Although bus subsystem 412 is shown generally as a single bus, alternative implementations of the bus subsystem may use multiple buses.
[0050] The computer system 410 can be of various types, including a workstation, a server, a computing cluster, a blade server, a server farm, or any other data processing system or computing device. Because the nature of computers and networks is ever-changing, the description of the computer system 410 shown in Figure 4 is intended only as a specific example to illustrate some implementations. Many other configurations of the computer system 410 are possible, having more or fewer components than the computer system shown in Figure 4.
[0051] In situations where the systems described herein collect or may utilize personal information about users (or "participants" as often referred to herein), the user may be provided with an opportunity to control whether a program or feature collects user information (e.g., information about the user's social networks, social actions or activities, occupation, user preferences, or the user's current geographic location) or whether and / or how to receive content from content servers that may be more relevant to the user. Also, certain data may be processed in one or more ways before being stored or used such that personally identifiable information is removed. For example, the user's ID may be processed such that the user's personally identifiable information cannot be identified, or the user's geographic location may be generalized where the geographic location information is obtained (e.g., to the city, zip code, or state level) so that the user's specific geographic location cannot be identified. Thus, the user may control how information about the user is collected and / or used.
[0052] Although several implementations have been described and illustrated herein, various other means and / or structures for performing the functions and / or obtaining the results and / or obtaining one or more of the advantages described herein may be utilized, and each such variation and / or modification is deemed to be within the scope of the implementations described herein. More generally, all parameters, dimensions, materials, and configurations described herein are meant to be exemplary, and the actual parameters, dimensions, materials, and / or configurations will depend on the particular application or applications for which the teachings are used. Those skilled in the art will recognize or be able to ascertain using no more than routine experimentation many equivalents to the specific implementations described herein. Thus, it should be understood that the implementations described above are presented by way of example only, and that within the scope of the appended claims and their equivalents, implementations may be practiced otherwise than as specifically described and claimed. Implementations of the present disclosure are directed to each individual feature, system, article, material, kit, and / or method described herein. Furthermore, any combination of two or more such features, systems, articles, materials, kits, and / or methods is within the scope of the present disclosure, provided that such features, systems, articles, materials, kits, and / or methods are not mutually inconsistent.
[0053] In some implementations, a method implemented by one or more processors is described as including an act such as receiving, at an interface of a client computing device, a user input including one or more natural language characters. The method may further include an act of causing a selectable graphical user interface (GUI) element to be rendered at a display interface of the client computing device based at least in part on the user input, the selectable GUI element including natural language content characterizing an autofill suggestion for the user input. The method may further include an act of providing the autofill suggestion from the client computing device to a server computing device. The method may further include an act of receiving, subsequent to causing the rendering of the selectable GUI element at the display interface but prior to receiving a user selection of the selectable GUI element, command data generated based on the autofill suggestion from the server computing device. The command data is accessible by one or more applications to facilitate fulfilling one or more actions associated with the selectable GUI element. The method may further include an act of receiving, subsequent to receiving the command data, a user selection of the selectable GUI element. The method may further include an act of causing one or more applications to initiate execution of the one or more actions using the command data in response to receiving the user selection of the selectable GUI element.
[0054] In some implementations, the method may further include an act of receiving, from the server computing device, additional suggested content based on the autofill suggestions of the user input. The method may further include an act of causing the additional suggested content to be rendered at a display interface having the selectable GUI element prior to receiving a user selection of the selectable GUI element. In some implementations, the method may further include an act of causing the additional selectable GUI element to be rendered at a display interface of the client computing device based at least in part on the user input, the additional selectable GUI element including additional natural language content characterizing the additional autofill suggestions for the user input. In some implementations, the method may further include an act of providing the additional autofill suggestions from the client computing device to the server computing device, the command data received from the server computing device also being based on the additional autofill suggestions. In some implementations, the method may further include an act of determining, at the client computing device, after causing the selectable GUI element and the additional selectable GUI element to be rendered at the display interface but prior to receiving a user selection of the selectable GUI element, a priority of each of the selectable GUI element and the additional selectable GUI element, the priority of each of the respective being based on historical interaction data characterizing one or more previous interactions between the user and one or more applications.
[0055] In some implementations, each respective priority is further based on other historical interaction data characterizing one or more other previous interactions between one or more other users and the one or more applications. In some implementations, the command data is received from the server computing device while the user is providing the additional portion of the user input. In some implementations, the one or more applications include an automated assistant responsive to natural language input at one or more interfaces of the client computing device. In some implementations, the method may further include an act of causing the one or more applications to perform a function for buffering a portion of the command data to be rendered via the client computing device in response to the user selecting the selectable GUI element, after causing the selectable GUI element to be rendered at the display interface, but prior to receiving a user selection of the selectable GUI element. In some implementations, providing the autofill suggestions to the server computing device includes causing the server computing device to generate the command data using the autofill suggestions and a server natural language understanding (NLU) process, the server NLU process being distinct from a client NLU process running at the client computing device.
[0056] In other implementations, a method implemented by one or more processors is described including operations such as receiving, by a server computing device and from a client computing device, client data characterizing one or more autofill suggestions for a partial interface input received at the client computing device, where the client computing device renders the one or more autofill suggestions in response to the partial interface input at the client computing device. In some implementations, the method may further include an operation of generating, based on the one or more autofill suggestions, command data characterizing one or more application actions that may be initialized at the client computing device by the one or more respective applications. In some implementations, the method may further include an operation of providing the command data to the client computing device before a user selects a particular autofill suggestion of the one or more autofill suggestions at the client computing device, where in response to receiving the command data, the client computing device causes the particular application of the one or more respective applications to access the command data in preparation for fulfilling the particular application action of the one or more application actions.
[0057] In some implementations, the method may further include an act of generating, at the server computing device, additional suggested content based on the one or more autofill suggestions. In some implementations, the method may further include an act of causing the user to render, at the client computing device, the additional suggested content via an interface of the client computing device before selecting, at the client computing device, a particular autofill suggestion of the one or more autofill suggestions. In some implementations, the command data is received by the client computing device while the user provides additional input to add the partial interface input. In some implementations, the one or more respective applications include an automated assistant that responds to natural language input at the one or more interfaces of the client computing device. In some implementations, causing the particular application of the one or more respective applications to access the command data in preparation for fulfilling the particular application action of the one or more application actions includes causing the particular application to render a portion of the command data via the one or more interfaces of the client computing device.
[0058] In yet another implementation, a method implemented by one or more processors is described as including an operation such as receiving a user input at an interface of a client computing device that characterizes a portion of an assistant command directed to an automated assistant. The automated assistant responds to the speech received at the client computing device. The method may further include an operation of identifying an autofill suggestion based on the portion of the assistant command in response to receiving the user input. The method may further include an operation of generating client command data based on the autofill suggestion that characterizes each assistant action responsive to each autofill suggestion of the autofill suggestion. The method may further include an operation of communicating the autofill suggestion to a server computing device via a network connection, by the client computing device, and based on the server computing device receiving the autofill suggestion, the server computing device generates server command data that characterizes each additional assistant action responsive to each autofill suggestion of the autofill suggestion, and performs an operation including providing the server command data to the client computing device. The method may further include an operation of causing one or more selectable suggestion elements to be rendered at an interface of the client computing device or another interface, by the client computing device, each selectable suggestion element of the one or more selectable suggestion elements including respective content based on the autofill suggestion. The method may further include an act of receiving, from the server computing device after the client computing device renders one or more selectable suggestion elements but before the user selects a particular selectable suggestion element of the one or more selectable suggestion elements, assistant command fulfillment data that is accessed by the automated assistant to facilitate fulfillment of the one or more assistant actions or the fulfillment of one or more additional assistant actions.
[0059] In some implementations, the assistant command fulfillment data is received from the server computing device while the user is providing the additional portion of the assistant command. In some implementations, the method can further include an operation of modifying a selectable suggestion of each of the one or more selectable suggestion elements based on the additional portion of the assistant command provided by the user after the client computing device renders the one or more selectable suggestion elements but before the user selects a particular selectable suggestion element of the one or more selectable suggestion elements. In some implementations, the method can further include an operation of receiving additional suggestion content based on the autofill suggestion from the server computing device and causing the additional suggestion content to be rendered via an interface of the client computing device or another interface after the client computing device renders the one or more selectable suggestion elements but before the user selects a particular selectable suggestion element of the one or more selectable suggestion elements.
[0060] In some implementations, the additional suggestion content includes graphical content rendered at an interface of the client computing device or other interface, the graphical content characterizing a state of an operation being performed by a particular application and associated with a particular autofill suggestion of the autofill suggestion. In some implementations, the method can further include an operation in which the automated assistant uses the assistant command fulfillment data to complete a particular assistant action of the one or more additional assistant actions after the client computing device renders the one or more selectable suggestion elements but before the user selects a particular selectable suggestion element of the one or more selectable suggestion elements. In some implementations, communicating the autofill suggestion to the server computing device via the network connection includes having the server computing device generate the autofill suggestion and the assistant command fulfillment data using a server natural language understanding (NLU) process, the server NLU process being distinct from the client NLU process running on the client computing device.
[0061] In yet another implementation, a method implemented by one or more processors is described as including an operation such as receiving a user input at an interface of a client computing device characterizing a portion of an assistant command directed to an automated assistant. The automated assistant responds to the utterance received at the client computing device. The method may further include an operation of identifying an autofill suggestion based on the portion of the assistant command in response to receiving the user input. The method may further include an operation of generating client command data based on the autofill suggestion characterizing each assistant action responsive to each autofill suggestion of the autofill suggestion. The method may further include an operation of selecting a first set of assistant actions from the client command data based on the client command data, the first set of assistant actions being a subset of the assistant actions identified in the client command data, the first set of assistant actions being selected further based on historical client data characterizing a previous interaction between the user and the automated assistant at the client computing device. The method may further include an operation of communicating the autofill suggestions to a server computing device via a network connection by the client computing device, where in response to the server computing device receiving a portion of the assistant command, the server computing device performs an operation including generating server command data characterizing each additional assistant action responsive to each autofill suggestion, and selecting a second set of assistant actions from the server command data. In some implementations, the second set of assistant actions is another subset of the assistant actions identified by the server command data, where the second set of assistant actions is identified based on server data characterizing previous interactions between one or more other users and the automated assistant.In some implementations, the method may further include an operation of initializing the performance of a particular assistant action identified in the first set of assistant actions and another particular assistant action identified in the second set of assistant actions. [Explanation of symbols]
[0062] 100 Views 106 Partial Input 110 Interface 120 Views 140 Views 104 users 102 Computing Devices 122 User Interface 124 Applications 126 Suggestion Engine 128 Command Engine 116 Keyboard 130 Autofill Suggestions 114 Proposal Data 118 Proposal generation 132 Partial Input Data 142 Proposal Data 146 Server Devices 148 Command Data 150 additional suggested data 152 Interactive GUI Elements 200 Systems 202 Computing Devices 234 Applications 220 Assistant Interface 230 Application Data 232 Device Data 236 Context Data 238 Assistant Data 204 Automated Assistants 206 Input Processing Engine 208 Audio Processing Engine 210 Data Analysis Engine 212 Parameter Engine 214 Output Generation Engine 216 Command Data Engine 218 Suggestion Ranking Engine 222 Autofill Suggestion Engine 424 Memory Subsystem 425 Memory Subsystem 426 File Storage Subsystem 432 ROM 430 RAM 422 User Interface Input Devices 410 Computer Systems 412 Bus Subsystem 414 processor 416 Network Interface 420 User Interface Output Device
Claims
1. 1. A method implemented by one or more processors, the method comprising: receiving user input at an interface of a client computing device, the user input including one or more natural language characters; causing selectable graphical user interface (GUI) elements to be rendered on a display interface of the client computing device based at least in part on the user input; the selectable GUI element includes natural language content characterizing autofill suggestions for the user input; providing the autofill suggestions from the client computing device to a server computing device; after causing the display interface to render the selectable GUI element but prior to receiving a user selection of the selectable GUI element; receiving command data generated based on the AutoFill suggestions from the server computing device; the command data is accessible by one or more applications to facilitate performing one or more actions associated with the selectable GUI element; subsequent to receiving the command data, receiving the user selection of the selectable GUI element; and in response to receiving the user selection of the selectable GUI element, causing the one or more applications to initialize performance of the one or more actions using the command data.
2. receiving, from the server computing device, additional suggested content based on the autofill suggestions of the user input; The method of claim 1 , further comprising: causing the additional suggested content to be rendered in the display interface along with the selectable GUI element prior to receiving the user selection of the selectable GUI element.
3. causing additional selectable GUI elements to be rendered at the display interface of the client computing device based at least in part on the user input; the additional selectable GUI elements including additional natural language content characterizing additional autofill suggestions for the user input; providing the additional autofill suggestions from the client computing device to the server computing device, the command data received from the server computing device is also based on the additional AutoFill suggestions; after causing the selectable GUI element and the additional selectable GUI element to be rendered on the display interface but prior to receiving the user selection of the selectable GUI element; determining, at the client computing device, a priority for each of the selectable GUI elements and the additional selectable GUI elements; The method of claim 1 or claim 2, further comprising: each priority being based on historical interaction data characterizing one or more previous interactions between a user and the one or more applications.
4. The method of claim 3 , wherein each priority is further based on other historical interaction data characterizing one or more other prior interactions between one or more other users and the one or more applications.
5. The method of claim 1 , wherein the command data is received from the server computing device while the user is providing the additional portion of the user input.
6. 6. The method of claim 1, wherein the one or more applications include an automated assistant that responds to natural language input in one or more interfaces of the client computing device.
7. after causing the display interface to render the selectable GUI element, but before receiving the user selection of the selectable GUI element; 7. The method of claim 1, further comprising causing the one or more applications to perform a function for buffering a portion of the command data to be rendered via the client computing device in response to a user selecting the selectable GUI element.
8. Providing the autofill suggestions to the server computing device includes: causing the server computing device to generate the command data using the autofill suggestions and a server's natural language understanding (NLU) process; The method of claim 1 , wherein the server NLU process is distinct from a client NLU process running on the client computing device.
9. 1. A method implemented by one or more processors, the method comprising: receiving, by a server computing device and from a client computing device, client data characterizing one or more autofill suggestions for a partial interface input received at the client computing device; the client computing device rendering one or more autofill suggestions in response to the partial interface input at the client computing device; generating command data characterizing one or more application actions that can be initiated at the client computing device by one or more respective applications based on the one or more autofill suggestions; before a user at the client computing device selects a particular autofill suggestion of the one or more autofill suggestions, providing the command data to the client computing device, and in response to receiving the command data, the client computing device causes a particular application of the one or more respective applications to access the command data in preparation for performing a particular application action of the one or more application actions.
10. generating, at the server computing device, additional suggested content based on the one or more autofill suggestions; before the user selects, at the client computing device, the particular autofill suggestion of the one or more autofill suggestions; The method of claim 9 , further comprising: causing the additional suggested content to be rendered via an interface of the client computing device.
11. The method of claim 9 or claim 10, wherein the command data is received by the client computing device while the user is providing additional input to add to the partial interface input.
12. 12. The method of claim 9, wherein the one or more respective applications include an automated assistant responsive to natural language input at one or more interfaces of the client computing device.
13. causing the particular application of the one or more respective applications to access the command data in preparation for performing the particular application action of the one or more application actions, 13. The method of claim 9, further comprising causing the particular application to render a portion of the command data via one or more interfaces of the client computing device.
14. 1. A method implemented by one or more processors, the method comprising: Receiving user input at an interface of a client computing device, the user input characterizing a portion of an assistant command directed to the automated assistant, The automated assistant responds to speech received at the client computing device; and In response to receiving the user input, identifying an autofill suggestion based on the portion of the assistant command; generating client command data based on the autofill suggestions, the client command data characterizing a respective assistant action responsive to each autofill suggestion of the autofill suggestions; communicating, by the client computing device, the autofill suggestions to a server computing device over a network connection; Based on the server computing device receiving the autofill suggestions, the server computing device generates server command data characterizing each additional assistant action responsive to each autofill suggestion of the autofill suggestions; providing the server command data to the client computing device; causing the client computing device to render one or more selectable suggestion elements on the interface or another interface of the client computing device; each selectable suggestion element of the one or more selectable suggestion elements including respective content based on the autofill suggestions; after the client computing device renders the one or more selectable suggestion elements, but before a user selects a particular selectable suggestion element of the one or more selectable suggestion elements; receiving assistant command fulfillment data from the server computing device, The assistant command fulfillment data is accessed by the automated assistant to facilitate fulfillment of one or more assistant actions or the fulfillment of one or more additional assistant actions.
15. The method of claim 14 , wherein the assistant command fulfillment data is received from the server computing device while the user is providing the additional portion of the assistant command.
16. after the client computing device renders the one or more selectable suggestion elements, but before the user selects the particular selectable suggestion element of the one or more selectable suggestion elements; 16. The method of claim 15, further comprising modifying a selectable suggestion of each of the one or more selectable suggestion elements based on the additional portion of the assistant command being provided by the user.
17. after the client computing device renders the one or more selectable suggestion elements, but before the user selects the particular selectable suggestion element of the one or more selectable suggestion elements; receiving additional suggested content based on the AutoFill suggestions from the server computing device; 17. The method of claim 14, further comprising causing additional suggested content to be rendered via the interface or another interface of the client computing device.
18. the additional suggested content includes graphical content to be rendered on the interface or the other interface of the client computing device; The method of claim 17 , wherein the graphical content characterizes a state of an operation being performed by a particular application associated with a particular one of the autofill suggestions.
19. after the client computing device renders the one or more selectable suggestion elements, but before the user selects a particular selectable suggestion element of the one or more selectable suggestion elements; 19. The method of claim 14, further comprising having the automated assistant complete a particular assistant action of the one or more additional assistant actions using the assistant command fulfillment data.
20. Communicating the autofill suggestions to the server computing device over the network connection includes: causing the server computing device to generate the assistant command fulfillment data using the autofill suggestions and a server's natural language understanding (NLU) process; 20. The method of claim 14, wherein the server NLU process is distinct from a client NLU process running on the client computing device.
21. 21. A computer program product comprising instructions that, when executed by one or more processors, cause the one or more processors to perform the method of any one of claims 1 to 20.
22. 21. A computer-readable storage medium comprising instructions that, when executed by one or more processors, cause the one or more processors to perform the method of any one of claims 1 to 20.
23. 21. A client computing device comprising one or more processors and a memory storing instructions that, when executed, cause the one or more processors to perform a method according to any one of claims 1 to 20.
Citation Information
Patent Citations
Architecture for responding to visual queries
JP2013501975A
Methods for understanding incomplete natural language queries
JP2018503191A
Function presentation system, terminal device, and program
JP5496947B2
Information retrieval system with real-time feedback
JP5539544B2
Voice input assist device, voice input assist system and voice input method
JP6348831B2