# US 11,907,214 B2 · Conditional response fulfillment cache for locally responding to automated assistant inputs

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 11,907,214 B2
- Document ID: US11907214B2
- Status: Granted
- Kind: B2
- Application number: 18/103,345
- Filed: 2023-01-30
- Published: 2023-06-08
- Granted: 2024-02-20
- Earliest claimed: 2021-03-30
- Assignees: Google Inc.
- Applicants: Google LLC
- Inventors: Benedict Liang; Bryan Christopher Horling; Lan Huo; Anarghya Mitra
- Web page: https://patentgrep.com/patent/US11907214B2

## CPC

- G06F 16/24539: {using cached or materialised query results}
- G06F 16/90332: {Natural language query formulation or dialogue systems}
- G06F 16/243: {Natural language query formulation}
- G06F 16/24552: {Database cache management}
- G06F 16/248: Presentation of query results
- G10L 15/22: Procedures used during a speech recognition process, e.g. man-machine dialogue
- G10L 15/30: Distributed recognition, e.g. in client-server systems, for mobile phones or network applications
- G10L 2015/221: {Announcement of recognition results}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G10L: SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING

## Abstract

Implementations set forth herein relate to conditionally caching responses to automated assistant queries according to certain contextual data that may be associated with each automated assistant query. Each query can be identified based on historical interactions between a user and an automated assistant, and—depending on the query, fulfillment data can be cached according to certain contextual data that influences the query response. Depending on how the contextual data changes, a cached response stored at a client device can be discarded and/or replaced with an updated cached response. For example, a query that users commonly ask prior to leaving for work can have a corresponding assistant response that depends on features of an environment of the users. This unique assistant response can be cached, before the users provide the query, to minimize latency that can occur when network or processing bandwidth is unpredictable.

## Claims

### Claim 1

A method implemented by one or more processors of a client computing device, the method comprising:
receiving, via one or more microphones of the client computing device, a spoken utterance that is from a user and that is directed to an automated assistant that is accessible via the client computing device;
identifying, based on the spoken utterance, a cache entry that:
is stored locally at the client computing device,
includes a condition that corresponds to an operating status of a third party application that is accessible via the client computing device, and
includes response fulfillment data that corresponds to a request embodied in the spoken utterance;
determining whether the third party application is exhibiting the operating status, wherein determining whether the third party application is exhibiting the operating status is based on the cache entry including the condition and the condition corresponding to the operating status of the third party application;
in response to determining that the third party application is exhibiting the operating status:
causing the automated assistant to provide an assistant output that is based on the response fulfillment data of the cache entry.

### Claim 2 (depends on 1)

The method of claim 1, wherein the response fulfillment data corresponds to the third party application.

### Claim 3 (depends on 2)

The method of claim 2, wherein causing the automated assistant to provide the assistant output that is based on the response fulfillment data of the cache entry comprises:
causing the automated assistant to communicate with the third party application.

### Claim 4 (depends on 3)

The method of claim 3, wherein causing the automated assistant to communicate with the third party application is via an application programming interface.

### Claim 5 (depends on 1)

The method of claim 1, further comprising:
prior to receiving the spoken utterance:
receiving the cache entry from the third party application; and
locally storing the cache entry, at the client computing device, in response to receiving the cache entry.

### Claim 6 (depends on 1)

The method of claim 1, further comprising:
in response to determining that the third party application is not exhibiting the operating status:
providing a request to a server computing device in furtherance of retrieving alternative response fulfillment data; and
causing the automated assistant to provide a separate assistant output that is based on the alternative response fulfillment data.

### Claim 7 (depends on 1)

The method of claim 1, wherein the cache entry further includes an additional user identifier condition, and wherein causing the automated assistant to provide an assistant output that is based on the response fulfillment data of the cache entry is further in response to the spoken utterance being determined to correspond to the user identifier.

### Claim 8 (depends on 7)

The method of claim 7, further comprising:
determining, based on voice characteristics embodied in the spoken utterance, that the spoken utterance corresponds to the user identifier.

### Claim 9 (depends on 1)

The method of claim 1, wherein the cache entry further includes a location condition, and wherein causing the automated assistant to provide an assistant output that is based on the response fulfillment data of the cache entry is further in response to determining that the location condition, of the cache entry, is satisfied.

### Claim 10 (depends on 9)

The method of claim 9, further comprising:
determining that the location condition of the cache entry is satisfied based on comparing a current location of the client computing device to the location condition of the cache entry.

### Claim 11

A client computing device, comprising:
one or more microphones;
memory storing instructions and storing a local cache;
one or more processors executing the instructions to:
receive, via one or more of the microphones, a spoken utterance that is from a user and that is directed to an automated assistant that is accessible via the client computing device;
identify, from the local cache and based on the spoken utterance, a cache entry that:
includes a condition that corresponds to an operating status of a third party application that is accessible via the client computing device, and
includes response fulfillment data that corresponds to a request embodied in the spoken utterance;
determine whether the third party application is exhibiting the operating status, wherein determining whether the third party application is exhibiting the operating status is based on the cache entry including the condition and the condition corresponding to the operating status of the third party application;
in response to determining that the third party application is exhibiting the operating status:
cause the automated assistant to provide an assistant output that is based on the response fulfillment data of the cache entry.

### Claim 12 (depends on 11)

The client computing device of claim 11, wherein the response fulfillment data corresponds to the third party application.

### Claim 13 (depends on 12)

The client computing device of claim 12, wherein in causing the automated assistant to provide the assistant output that is based on the response fulfillment data of the cache entry, one or more of the processors are to:
cause the automated assistant to communicate with the third party application.

### Claim 14 (depends on 13)

The client computing device of claim 13, wherein the automated assistant communicates with the third party application via an application programming interface.

### Claim 15 (depends on 11)

The client computing device of claim 11, wherein one or more of the processors, in executing the instructions, are further to:
prior to receiving the spoken utterance:
receive the cache entry from the third party application; and
locally store the cache entry, in the local cache, in response to receiving the cache entry.

### Claim 16 (depends on 11)

The client computing device of claim 11, wherein one or more of the processors, in executing the instructions, are further to:
in response to determining that the third party application is not exhibiting the operating status:
provide a request to a server computing device in furtherance of retrieving alternative response fulfillment data; and
cause the automated assistant to provide a separate assistant output that is based on the alternative response fulfillment data.

### Claim 17 (depends on 11)

The client computing device of claim 11, wherein the cache entry further includes an additional user identifier condition, and wherein in causing the automated assistant to provide an assistant output that is based on the response fulfillment data of the cache entry, one or more of the processors are to cause the automated assistant to provide the assistant output that is based on the response fulfillment data further in response to the spoken utterance being determined to correspond to the user identifier.

### Claim 18 (depends on 17)

The client computing device of claim 17, wherein one or more of the processors, in executing the instructions, are further to:
determine, based on voice characteristics embodied in the spoken utterance, that the spoken utterance corresponds to the user identifier.

### Claim 19 (depends on 11)

The client computing device of claim 11, wherein the cache entry further includes a location condition, and wherein in causing the automated assistant to provide an assistant output that is based on the response fulfillment data of the cache entry, one or more of the processors are to cause the automated assistant to provide the assistant output that is based on the response fulfillment data further in response to determining that the location condition, of the cache entry, is satisfied.

### Claim 20 (depends on 19)

The client computing device of claim 19, wherein one or more of the processors, in executing the instructions, are further to:
determine that the location condition of the cache entry is satisfied based on comparing a current location of the client computing device to the location condition of the cache entry.
