Domain specific language for encoding assistant dialog
First Claim
1. A method for operating a virtual assistant, performed at an electronic device having one or more processors and a memory storing one or more programs for execution by the one or more processors, the method comprising:
- receiving a user speech;
accessing a textual representation of the user speech;
determining an intent corresponding to the textual representation of the user speech;
generating an output dialog responsive to the user speech, comprising;
selecting, in accordance with the determined intent, a dialog template from a plurality of dialog templates, wherein the dialog template includes a plurality of sets of functional blocks, wherein a first set of functional blocks of the plurality of sets of functional blocks defines one or more conditions;
generating a plurality of output segments from the plurality of sets of functional blocks, including;
determining whether the one or more conditions are satisfied; and
in accordance with a determination that the one or more conditions are satisfied, generating, with the first set of functional blocks, a first string for a first output segment of the plurality of output segments; and
concatenating the plurality of output segments according to an order defined by the dialog template; and
outputting the output dialog comprising the concatenated plurality of output segments.
1 Assignment
0 Petitions
Accused Products
Abstract
Systems and processes for generating output dialogs for virtual assistants are provided. An output dialog can be generated from multiple output segments that can each include a string of one or more characters or words. The contents of an output segment can be selected from multiple possible outputs based on a predetermined order, conditional logic, or a random selection. The output segments can be concatenated to form the output dialog. In one example, a dialog generation file that defines the possible outputs for each output segment, an ordering of the output segments within the output dialog, and format for the output dialog can be used to generate the output dialog. The dialog generation file can include any number of functional blocks, which can each output an output segment, that can be arranged hierarchically and in a particular order to generate a desired output dialog.
2812 Citations
36 Claims
-
1. A method for operating a virtual assistant, performed at an electronic device having one or more processors and a memory storing one or more programs for execution by the one or more processors, the method comprising:
-
receiving a user speech; accessing a textual representation of the user speech; determining an intent corresponding to the textual representation of the user speech; generating an output dialog responsive to the user speech, comprising; selecting, in accordance with the determined intent, a dialog template from a plurality of dialog templates, wherein the dialog template includes a plurality of sets of functional blocks, wherein a first set of functional blocks of the plurality of sets of functional blocks defines one or more conditions; generating a plurality of output segments from the plurality of sets of functional blocks, including; determining whether the one or more conditions are satisfied; and in accordance with a determination that the one or more conditions are satisfied, generating, with the first set of functional blocks, a first string for a first output segment of the plurality of output segments; and concatenating the plurality of output segments according to an order defined by the dialog template; and outputting the output dialog comprising the concatenated plurality of output segments. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. A non-transitory computer-readable storage medium comprising computer-executable instructions for:
-
receiving a user speech; accessing a textual representation of the user speech; determining an intent corresponding to the textual representation of the user speech; generating an output dialog responsive to the user speech, comprising; selecting, in accordance with the determined intent, a dialog template from a plurality of dialog templates, wherein the dialog template includes a plurality of sets of functional blocks, wherein a first set of functional blocks of the plurality of sets of functional blocks defines one or more conditions; generating a plurality of output segments from the plurality of sets of functional blocks, including; determining whether the one or more conditions are satisfied; and in accordance with a determination that the one or more conditions are satisfied, generating, with the first set of functional blocks, a first string for a first output segment of the plurality of output segments; concatenating the plurality of output segments according to an order defined by the dialog template; and outputting the output dialog comprising the concatenated plurality of output segments. - View Dependent Claims (22, 23, 24, 25, 26, 27)
-
-
28. A system comprising:
-
one or more processors; memory; 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 a user speech; accessing a textual representation of the user speech; determining an intent corresponding to the textual representation of the user speech; generating an output dialog responsive to the user speech, comprising; selecting, in accordance with the determined intent, a dialog template from a plurality of dialog templates, wherein the dialog template includes a plurality of sets of functional blocks, wherein a first set of functional blocks of the plurality of sets of functional blocks defines one or more conditions; generating a plurality of output segments from the plurality of sets of functional blocks, including; determining whether the one or more conditions are satisfied; and in accordance with a determination that the one or more conditions are satisfied, generating, with the first set of functional blocks, a first string for a first output segment of the plurality of output segments concatenating the plurality of output segments according to an order defined by the dialog template; and outputting the output dialog comprising the concatenated plurality of output segments. - View Dependent Claims (29, 30, 31, 32, 33, 34, 35, 36)
-
Specification