IP Library Granted Patent US 11,531,820
Granted Patent B2
US 11,531,820 · App. 16/742,668 · Granted Dec 20, 2022

User controlled task execution with task persistence for assistant systems

Inventors: Xiaohu Liu (Bellevue, WA); Zhiguang Wang (Bellevue, WA); Rajen Subba (San Carlos, CA)
Assignee: Meta Platforms Technologies, LLC
G06F40/30G06F3/011G06F3/013G06F9/453G06F9/485G06F9/4881G06F9/547G06F16/3329G06F16/90332G06F16/9536G06F40/205G06F40/242G06F40/253G06F40/35G06K9/6221G06N3/0454G06N3/0472G06N3/08G06N20/00G06Q50/01G06V10/255G06V20/20G06V20/30G06V20/41G06V40/174G10L15/08G10L15/1815G10L15/1822G10L15/22G10L15/30G10L15/32H04L51/212H04L51/52H04L67/306H04L67/75H04N7/147G06F3/017G06F3/167G06V2201/10G10L2015/088G10L2015/223G10L2015/227
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 11,531,820
App. No.
16/742,668
Granted
Dec 20, 2022
Kind
B2
Abstract

In one embodiment, a method includes receiving a first user request to execute a first task comprising one or more sub-tasks from a client system associated with a user, receiving a second user request to suspend the first task from the client system, storing a dialog state for the first task in response to the second user request, wherein the dialog state comprises results of executed sub-tasks and a status indicating the first task is suspended, receiving a third user request to resume the first task, accessing the dialog state for the first task, and providing a prompt to resume the first task at the client system.

Claims (57)

1. A method comprising, by one or more computing systems:

receiving, from a client system associated with a user, a first user request to execute a first task comprising one or more sub-tasks;

receiving, from the client system, a second user request to suspend the first task;

storing a dialog state for the first task in response to the second user request, wherein the dialog state comprises results of executed sub-tasks and a status indicating the first task is suspended;

receiving a third user request;

determining, based on a current dialog state and user interactions with the computing systems with respect to one or more entities associated with the first task, that the third user request is a request to resume the suspended first task;

accessing the dialog state for the first task; and

sending, to the client system, instructions for presenting a prompt to resume the first task.

2. The method of claim 1 , further comprising:

executing one or more of the one or more sub-tasks of the first task.

3. The method of claim 1 , further comprising:

determining, by a natural-language understanding module, the second user request is associated with a meta-intent to suspend the first task.

4. The method of claim 1 , further comprising:

determining, based on a current dialog state and contextual information associated with the second user request, that the first task is associated with the second user request.

5. The method of claim 1 , further comprising:

determining, by a natural-language understanding module, the third user request is associated with a meta-intent to resume the first task.

6. The method of claim 1 , further comprising:

determining, based on the current dialog state and contextual information associated with the third user request, that the suspended first task is associated with the third user request.

7. The method of claim 1 , wherein storing the dialog state for the first task comprises:

allocating a particular portion of the dialog state to the first task, wherein the particular portion is associated with one or more of a task identifier or a task name associated with the first task.

8. The method of claim 7 , wherein accessing the dialog state for the first task comprises:

identifying the particular portion of the dialog state based on one or more of the task identifier or the task name associated with the first task; and

retrieving the particular portion of the stored dialog state, wherein the retrieved portion comprises the dialog state for the first task.

9. The method of claim 1 , wherein the first, second, or third user requests are based on one or more of a textual input, an image input, a video input, an audio input, or a gesture input.

10. The method of claim 1 , wherein the dialog state for the first task is stored in a dialog state stack, wherein the storing of the dialog state in the dialog state stack is based on a priority associated with the first task.

11. The method of claim 1 , wherein storing the dialog state for the first task is based on one or more task policies.

12. The method of claim 1 , wherein accessing the dialog state for the first task is based on one or more task policies.

13. The method of claim 1 , further comprising:

determining, based on one or more of contextual information associated with the user or a policy associated with the first task, that the user needs to be reminded of the suspended task; and

sending, to the client system, instructions for presenting a notification reminding the user of the suspended first task.

14. The method of claim 1 , wherein the prompt comprises a summary of the first task, wherein the summary is generated based on the accessed dialog state.

15. The method of claim 14 , wherein the summary is generated by a natural-language generation (NLG) module based on one or more of a language-template or a language model.

16. The method of claim 1 , further comprising:

receiving, from the client system, a fourth user request to execute a second task;

executing the second task; and

resuming the first task based on execution results of the second task.

17. The method of claim 1 , further comprising:

generating a task-function based on the suspension and resuming of the first task, wherein the task-function comprises one or more default intents and one or more slot-values for one or more slots associated with the first task, respectively, and wherein the task-function is associated with a task alias;

receiving a user call from the user, wherein the user call comprises the task alias;

sending, to the client system, instructions for presenting a summary of the task-function based on the default intents and the slot-values; and

executing the first task based on the default intents and the slot-values upon receiving a confirmation from the user.

18. One or more computer-readable non-transitory storage media embodying software that is operable when executed to:

receive, from a client system associated with a user, a first user request to execute a first task comprising one or more sub-tasks;

receive, from the client system, a second user request to suspend the first task;

store a dialog state for the first task in response to the second user request, wherein the dialog state comprises results of executed sub-tasks and a status indicating the first task is suspended;

receive a third user request;

determine, based on a current dialog state and user interactions with the computing systems with respect to one or more entities associated with the first task, that the third user request is a request to resume the suspended first task;

access the dialog state for the first task; and

send, to the client system, instructions for presenting a prompt to resume the first task.

19. A system comprising: one or more processors; and a non-transitory memory coupled to the processors comprising instructions executable by the processors, the processors operable when executing the instructions to:

receive, from a client system associated with a user, a first user request to execute a first task comprising one or more sub-tasks;

receive, from the client system, a second user request to suspend the first task;

store a dialog state for the first task in response to the second user request, wherein the dialog state comprises results of executed sub-tasks and a status indicating the first task is suspended;

receive a third user request;

determine, based on a current dialog state and user interactions with the computing systems with respect to one or more entities associated with the first task, that the third user request is a request to resume the suspended first task;

access the dialog state for the first task; and

send, to the client system, instructions for presenting a prompt to resume the first task.

Assignments (2)
CHANGE OF NAME Recorded Jul 6, 2022
From: FACEBOOK TECHNOLOGIES, LLC
To: META PLATFORMS TECHNOLOGIES, LLC
Reel/Frame 060591/0848 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 17, 2020
From: LIU, XIAOHU; WANG, ZHIGUANG; SUBBA, RAJEN
To: FACEBOOK TECHNOLOGIES, LLC
Reel/Frame 051550/0540 →