IP Library › Granted Patent US 12,165,635
Granted Patent B2
US 12,165,635 · App. 17/732,011 · Granted Dec 10, 2024

Intelligent automated assistant

Inventors: Thomas Robert Gruber (Santa Cruz, CA); Adam John Cheyer (Oakland, CA); Didier Rene Guzzoni (Montsur-Rolle, CH); Christopher Dean Brigham (San Jose, CA); Richard Donald Giuli (Arroyo Grande, CA); Marcello Bastea-Forte (San Francisco, CA); Harry Joseph Saddler (Berkeley, CA)
Assignee: Apple Inc.
G10L15/1815B60K35/00G06F3/167G06F9/54G06F16/3329G06F16/3344G06F16/9537G06F40/279G06F40/30G06F40/40G10L13/02G10L13/08G10L15/183G10L15/22G10L15/26G10L15/30G10L21/06H04M1/6091H04M1/7243H04M1/72448H04M1/72484G10L13/00G10L15/1822
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,165,635
App. No.
17/732,011
Filed
Apr 28, 2022
Granted
Dec 10, 2024
Kind
B2
Art Unit
2658
USPC
704/275
Abstract

The intelligent automated assistant system engages with the user in an integrated, conversational manner using natural language dialog, and invokes external services when appropriate to obtain information or perform various actions. The system can be implemented using any of a number of different platforms, such as the web, email, smartphone, and the like, or any combination thereof. In one embodiment, the system is based on sets of interrelated domains and tasks, and employs additional functionally powered by external services with which the system can interact.

Claims (109)

1. An electronic device, comprising:

one or more processors;

a memory; and

one or more programs, wherein the one or more programs are stored in the memory and configured to be executed by the one or more processors, the one or more programs including instructions for:

receiving, within a communication session between a user and a digital assistant, a user request for the digital assistant to facilitate a restaurant reservation;

in response to receiving the user request for the digital assistant to facilitate the restaurant reservation, facilitating the restaurant reservation by:

identifying one or more restaurant reservation parameters;

determining one or more values for the one or more restaurant reservation parameters;

transmitting the one or more values to a restaurant reservation service;

receiving a response from the restaurant reservation service indicating whether the restaurant reservation was successfully made; and

providing, in the communication session, an output corresponding to the received response.

2. The electronic device of claim 1 , the one or more programs including instructions for:

displaying, in the communication session, a plurality of restaurants; and

receiving, from the user, a selection of a restaurant from the plurality of restaurants.

3. The electronic device of claim 1 , wherein identifying one or more restaurant reservation parameters further comprises:

identifying a restaurant domain; and

selecting the one or more restaurant reservation parameters from the restaurant domain.

4. The electronic device of claim 1 , the one or more programs including instructions for:

identifying the restaurant reservation service based on at least one of user history or user preference.

5. The electronic device of claim 1 , the one or more programs including instructions for:

identifying the restaurant reservation service based on at least one of reliability information, user reviews, and cost information.

6. The electronic device of claim 1 , the one or more programs including instructions for:

after receiving the response from the restaurant reservation service, storing the restaurant reservation.

7. The electronic device of claim 1 , wherein the restaurant reservation service is a third party service.

8. The electronic device of claim 1 , wherein determining the one or more values for the one or more restaurant reservation parameters further comprises:

prompting the user to provide the one or more values for the one or more restaurant reservation parameters; and

receiving, from the user, an input specifying the one or more values for the one or more restaurant reservation parameters.

9. The electronic device of claim 8 , wherein prompting the user to provide the one or more values for one or more one or more values for the one or more restaurant reservation parameters further comprises:

displaying, in the communication session, a plurality of candidate values; and

receiving, from the user, the input specifying the one or more values for the one or more restaurant reservation parameters further comprises receiving, from the user, a selection of a candidate value of the plurality of candidate values.

10. The electronic device of claim 1 , the one or more programs including instructions for:

performing a semantic analysis on the user request to determine whether the user request includes a request for the digital assistant to facilitate the restaurant reservation.

11. The electronic device of claim 10 , wherein performing the semantic analysis includes performing natural language processing.

12. The electronic device of claim 10 , wherein performing the semantic analysis further comprises:

determining whether one or more words of the user request are associated with a restaurant domain; and

determining whether the one or more words of the user request are associated with a task of reserving a table identified by the restaurant domain.

13. The electronic device of claim 10 , the one or more programs including instructions for:

identifying a restaurant of a plurality of restaurants based on the semantic analysis of the user request.

14. A non-transitory computer-readable medium storing one or more programs comprising instructions, wherein the instructions, when executed by one or more processors of an electronic device, cause the electronic device to:

receive, within a communication session between a user and a digital assistant, a user request for the digital assistant to facilitate a restaurant reservation;

in response to receiving the user request for the digital assistant to facilitate the restaurant reservation, facilitate the restaurant reservation by:

identifying one or more restaurant reservation parameters;

determining one or more values for the one or more restaurant reservation parameters;

transmitting the one or more values to a restaurant reservation service;

receiving a response from the restaurant reservation service indicating whether the restaurant reservation was successfully made; and

providing, in the communication session, an output corresponding to the received response.

15. The non-transitory computer-readable medium of claim 14 , wherein the instructions cause the electronic device to:

display, in the communication session, a plurality of restaurants; and

receive, from the user, a selection of a restaurant from the plurality of restaurants.

16. The non-transitory computer-readable medium of claim 14 , wherein identifying one or more restaurant reservation parameters further comprises:

identifying a restaurant domain; and

selecting the one or more restaurant reservation parameters from the restaurant domain.

17. The non-transitory computer-readable medium of claim 14 , wherein the instructions cause the electronic device to:

identify the restaurant reservation service based on at least one of user history or user preference.

18. The non-transitory computer-readable medium of claim 14 wherein the instructions cause the electronic device to:

identify the restaurant reservation service based on at least one of reliability information, user reviews, and cost information.

19. The non-transitory computer-readable medium of claim 14 , wherein the instructions cause the electronic device to:

after receiving the response from the restaurant reservation service, store the restaurant reservation.

20. The non-transitory computer-readable medium of claim 14 , wherein the restaurant reservation service is a third party service.

21. The non-transitory computer-readable medium of claim 14 , wherein determining the one or more values for the one or more restaurant reservation parameters further comprises:

prompting the user to provide the one or more values for the one or more restaurant reservation parameters; and

receiving, from the user, an input specifying the one or more values for the one or more restaurant reservation parameters.

22. The non-transitory computer-readable medium of claim 21 , wherein prompting the user to provide the one or more values for the one or more restaurant reservation parameters further comprises:

displaying, in the communication session, a plurality of candidate values; and

receiving, from the user, the input specifying the one or more values for the one or more restaurant reservation parameters further comprises receiving, from the user, a selection of a candidate value of the plurality of candidate values.

23. The non-transitory computer-readable medium of claim 14 , wherein the instructions cause the electronic device to:

perform a semantic analysis on the user request to determine whether the user request includes a request for the digital assistant to facilitate the restaurant reservation.

24. The non-transitory computer-readable medium of claim 23 , wherein performing the semantic analysis includes performing natural language processing.

25. The non-transitory computer-readable medium of claim 23 , wherein performing the semantic analysis further comprises:

determining whether one or more words of the user request are associated with a restaurant domain; and

determining whether the one or more words of the user request are associated with a task of reserving a table identified by the restaurant domain.

26. The non-transitory computer-readable medium of claim 23 , wherein the instructions cause the electronic device to:

identify a restaurant of a plurality of restaurants based on the semantic analysis of the user request.

27. A computer-implemented method, comprising:

at an electronic device with one or more processors and memory:

receiving, within a communication session between a user and a digital assistant, a user request for the digital assistant to facilitate a restaurant reservation;

in response to receiving the user request for the digital assistant to facilitate the restaurant reservation, facilitating the restaurant reservation by:

identifying one or more restaurant reservation parameters;

determining one or more values for the one or more restaurant reservation parameters;

transmitting the one or more values to a restaurant reservation service;

receiving a response from the restaurant reservation service indicating whether the restaurant reservation was successfully made; and

providing, in the communication session, an output corresponding to the received response.

28. The method of claim 27 , comprising:

displaying, in the communication session, a plurality of restaurants; and

receiving, from the user, a selection of a restaurant from the plurality of restaurants.

29. The method of claim 27 , wherein identifying one or more restaurant reservation parameters further comprises:

identifying a restaurant domain; and

selecting the one or more restaurant reservation parameters from the restaurant domain.

30. The method of claim 27 , comprising:

identifying the restaurant reservation service based on at least one of user history or user preference.

31. The method of claim 27 , comprising:

identifying the restaurant reservation service based on at least one of reliability information, user reviews, and cost information.

32. The method of claim 27 , comprising:

after receiving the response from the restaurant reservation service, storing the restaurant reservation.

33. The method of claim 27 , wherein the restaurant reservation service is a third party service.

34. The method of claim 27 , wherein determining the one or more values for the one or more restaurant reservation parameters further comprises:

prompting the user to provide the one or more values for the one or more restaurant reservation parameters; and

receiving, from the user, an input specifying the one or more values for the one or more restaurant reservation parameters.

35. The method of claim 34 , wherein prompting the user to provide the one or more values for the one or more restaurant reservation parameters further comprises:

displaying, in the communication session, a plurality of candidate values; and

receiving, from the user, the input specifying the one or more values for the one or more restaurant reservation parameters further comprises receiving, from the user, a selection of a candidate value of the plurality of candidate values.

36. The method of claim 27 , comprising:

performing a semantic analysis on the user request to determine whether the user request includes a request for the digital assistant to facilitate the restaurant reservation.

37. The method of claim 36 , wherein performing the semantic analysis includes performing natural language processing.

38. The method of claim 36 , wherein performing the semantic analysis further comprises:

determining whether one or more words of the user request are associated with a restaurant domain; and

determining whether the one or more words of the user request are associated with a task of reserving a table identified by the restaurant domain.

39. The method of claim 36 , comprising:

identifying a restaurant of a plurality of restaurants based on the semantic analysis of the user request.

Continuity (6)
Continuation 16879643 · May 20, 2020
Continuation 15394162 · Dec 29, 2016
Continuation 13492809 · Jun 9, 2012
Continuation 12987982 · Jan 10, 2011
Provisional Application 61295774 · Jan 18, 2010
Related Publication 20220254338A1 · Aug 11, 2022
Cited By (4)
US 12,431,128 US 12,681,587 US 12,705,418 US 12,711,109