シーンは、会話を設計する際の制御フローの基本単位です。他のシーンとつなげたり、エンドユーザー向けのプロンプトを生成したり、スロットを定義したりすることができます。シーン名はファイルの名前で指定します。
YAML 表現 | |
---|---|
onEnter: object ( |
フィールド | |
---|---|
onEnter |
このシーンに遷移するときに呼び出すハンドラ。 |
intentEvents[] |
インテントに基づいてトリガーされるイベントのリスト。これらのイベントは、on_load ハンドラが呼び出された後、いつでもトリガーできます。重要 - これらのイベントは、このシーンをスコープとするインテントのセットを定義します。また、これらのイベントは、同じインテントまたはトリガー フレーズを持つグローバルに定義されたイベントよりも優先されます。インテント名はシーン内で一意である必要があります。 |
conditionalEvents[] |
条件ステートメントに基づいてトリガーするイベントのリスト。これらは、フォームへの入力後、またはこのシーンにフォームがない場合は on_load の直後に評価されます(評価は 1 回だけ行われます)。最初に一致したイベントのみがトリガーされます。 |
slots[] |
スロットの順序付きリスト。各スロットで解決するデータのタイプと、その解決(プロンプトなど)のエクスペリエンスをカスタマイズするための設定を定義します。 |
onSlotUpdated |
別の Handler 内の更新以外に起因するスロットの状態の変化があったときに呼び出されるハンドラ。これにより、スロットの無効化、シーンの無効化など、シーン状態の変更が可能になります。 |
スロット
スロットの構成。スロットは、自然言語(インテント パラメータ)、セッション パラメータ、その他のソースを通じて入力できる単一のデータ単位です。
YAML 表現 | |
---|---|
name: string type: object ( |
フィールド | |
---|---|
name |
必須。スロットの名前。 |
type |
必須。このスロットのデータ型を宣言します。 |
required |
(省略可)次に進む前にスロットを埋める必要があるかどうかを示します。必須の時間枠が埋まっていない場合は、カスタマイズ可能なプロンプトがユーザーに表示されます。 |
promptSettings |
(省略可)スロットフィルのさまざまなステージに対応するプロンプトを登録します。 |
commitBehavior |
(省略可)スロットに関連付けられた commit 動作。 |
config |
(省略可)スロットを埋めるために使用される、スロットに関連付けられた追加の設定。構成の形式は、スロットのタイプに固有のものです。ユーザー パラメータまたはセッション パラメータへのリソース参照をこの構成に追加できます。この構成ファイルは、トランザクションとユーザー エンゲージメントに関連するスロットを埋めるために必要です。 例: actions.type.CompletePurchaseValue タイプのスロットの場合、次の構成では、クライアント定義のセッション パラメータ { "@type": "type.googleapis.com/ google.actions.transactions.v3.CompletePurchaseValueSpec", "skuId": { "skuType": "SKU_TYPE_IN_APP", "id": "$session.params.userSelectedSkuId", "packageName": "com.example.company" } } |
defaultValue |
(省略可)このスロットのデフォルト値を入力するための設定。 |
PromptSettings
スロット プロンプトを 1 か所で定義する。
YAML 表現 | |
---|---|
initialPrompt: object ( |
フィールド | |
---|---|
initialPrompt |
スロット値自体のプロンプト。例: 「どのサイズをご希望ですか?」 |
noMatchPrompt1 |
初回は、ユーザーの入力がスロットに想定される値のタイプと一致しないときに表示されるプロンプト。例: 「聞き取れませんでした。」 |
noMatchPrompt2 |
ユーザーの入力が 2 回目のスロットに想定される値のタイプと一致しない場合に表示されるプロンプト。例: 「聞き取れませんでした。」 |
noMatchFinalPrompt |
ユーザーの入力が、前回スロットに想定される値のタイプと一致しない場合に表示されるプロンプト。例: 「聞き取れませんでした。」 |
noInputPrompt1 |
ユーザーが初めて入力を行わないときに表示されるプロンプト。例: 「聞き取れませんでした。」 |
noInputPrompt2 |
ユーザーが 2 度目に入力しなかった場合に表示されるプロンプト。例: 「聞き取れませんでした。」 |
noInputFinalPrompt |
ユーザーが前回入力を行わなかったときに表示されるプロンプト。例: 「聞き取れませんでした。」 |
CommitBehavior
スロットが正常に埋められた後の、スロットに関連付けられた commit 動作を説明するメッセージ。
YAML 表現 | |
---|---|
writeSessionParam: string |
フィールド | |
---|---|
writeSessionParam |
スロット値が入力された後にスロット値を書き込むセッション パラメータ。ネストされたパスは現在サポートされていません。「$$」は、スロットと同じ名前のセッション パラメータにスロット値を書き込むために使用されます。例: writeSessionParam = "fruit" は "$session.params.fruit" に対応し、writeSessionParam = "ticket" は "$session.params.ticket" に対応します。 |
DefaultValue
このスロットのデフォルト値を入力するための設定。
YAML 表現 | |
---|---|
sessionParam: string constant: value |
フィールド | |
---|---|
sessionParam |
(省略可)空でない場合、スロット値の初期化に使用されるセッション パラメータ。値のタイプはスロットのタイプと一致する必要があります。ネストされたパスは現在サポートされていません。たとえば、 |
constant |
(省略可)スロットの定数デフォルト値。これは、このスロットの値が |