Scene

シーンは、会話を設計する際の制御フローの基本単位です。他のシーンとつなげたり、エンドユーザー向けのプロンプトを生成したり、スロットを定義したりすることができます。シーン名はファイルの名前で指定します。

YAML 表現
onEnter: 
  object (EventHandler)
intentEvents: 
  - object (IntentEvent)
conditionalEvents: 
  - object (ConditionalEvent)
slots: 
  - object (Slot)
onSlotUpdated: 
  object (EventHandler)
フィールド
onEnter

object (EventHandler)

このシーンに遷移するときに呼び出すハンドラ。

intentEvents[]

object (IntentEvent)

インテントに基づいてトリガーされるイベントのリスト。これらのイベントは、on_load ハンドラが呼び出された後、いつでもトリガーできます。重要 - これらのイベントは、このシーンをスコープとするインテントのセットを定義します。また、これらのイベントは、同じインテントまたはトリガー フレーズを持つグローバルに定義されたイベントよりも優先されます。インテント名はシーン内で一意である必要があります。

conditionalEvents[]

object (ConditionalEvent)

条件ステートメントに基づいてトリガーするイベントのリスト。これらは、フォームへの入力後、またはこのシーンにフォームがない場合は on_load の直後に評価されます(評価は 1 回だけ行われます)。最初に一致したイベントのみがトリガーされます。

slots[]

object (Slot)

スロットの順序付きリスト。各スロットで解決するデータのタイプと、その解決(プロンプトなど)のエクスペリエンスをカスタマイズするための設定を定義します。

onSlotUpdated

object (EventHandler)

別の Handler 内の更新以外に起因するスロットの状態の変化があったときに呼び出されるハンドラ。これにより、スロットの無効化、シーンの無効化など、シーン状態の変更が可能になります。

スロット

スロットの構成。スロットは、自然言語(インテント パラメータ)、セッション パラメータ、その他のソースを通じて入力できる単一のデータ単位です。

YAML 表現
name: string
type: 
  object (ClassReference)
required: boolean
promptSettings: 
  object (PromptSettings)
commitBehavior: 
  object (CommitBehavior)
config: value
defaultValue: 
  object (DefaultValue)
フィールド
name

string

必須。スロットの名前。

type

object (ClassReference)

必須。このスロットのデータ型を宣言します。

required

boolean

(省略可)次に進む前にスロットを埋める必要があるかどうかを示します。必須の時間枠が埋まっていない場合は、カスタマイズ可能なプロンプトがユーザーに表示されます。

promptSettings

object (PromptSettings)

(省略可)スロットフィルのさまざまなステージに対応するプロンプトを登録します。

commitBehavior

object (CommitBehavior)

(省略可)スロットに関連付けられた commit 動作。

config

value (Value format)

(省略可)スロットを埋めるために使用される、スロットに関連付けられた追加の設定。構成の形式は、スロットのタイプに固有のものです。ユーザー パラメータまたはセッション パラメータへのリソース参照をこの構成に追加できます。この構成ファイルは、トランザクションとユーザー エンゲージメントに関連するスロットを埋めるために必要です。

例: actions.type.CompletePurchaseValue タイプのスロットの場合、次の構成では、クライアント定義のセッション パラメータ userSelectedSkuId を参照してデジタル グッド注文を提案します。

{ "@type": "type.googleapis.com/ google.actions.transactions.v3.CompletePurchaseValueSpec", "skuId": { "skuType": "SKU_TYPE_IN_APP", "id": "$session.params.userSelectedSkuId", "packageName": "com.example.company" } }

defaultValue

object (DefaultValue)

(省略可)このスロットのデフォルト値を入力するための設定。

PromptSettings

スロット プロンプトを 1 か所で定義する。

YAML 表現
initialPrompt: 
  object (EventHandler)
noMatchPrompt1: 
  object (EventHandler)
noMatchPrompt2: 
  object (EventHandler)
noMatchFinalPrompt: 
  object (EventHandler)
noInputPrompt1: 
  object (EventHandler)
noInputPrompt2: 
  object (EventHandler)
noInputFinalPrompt: 
  object (EventHandler)
フィールド
initialPrompt

object (EventHandler)

スロット値自体のプロンプト。例: 「どのサイズをご希望ですか?」

noMatchPrompt1

object (EventHandler)

初回は、ユーザーの入力がスロットに想定される値のタイプと一致しないときに表示されるプロンプト。例: 「聞き取れませんでした。」

noMatchPrompt2

object (EventHandler)

ユーザーの入力が 2 回目のスロットに想定される値のタイプと一致しない場合に表示されるプロンプト。例: 「聞き取れませんでした。」

noMatchFinalPrompt

object (EventHandler)

ユーザーの入力が、前回スロットに想定される値のタイプと一致しない場合に表示されるプロンプト。例: 「聞き取れませんでした。」

noInputPrompt1

object (EventHandler)

ユーザーが初めて入力を行わないときに表示されるプロンプト。例: 「聞き取れませんでした。」

noInputPrompt2

object (EventHandler)

ユーザーが 2 度目に入力しなかった場合に表示されるプロンプト。例: 「聞き取れませんでした。」

noInputFinalPrompt

object (EventHandler)

ユーザーが前回入力を行わなかったときに表示されるプロンプト。例: 「聞き取れませんでした。」

CommitBehavior

スロットが正常に埋められた後の、スロットに関連付けられた commit 動作を説明するメッセージ。

YAML 表現
writeSessionParam: string
フィールド
writeSessionParam

string

スロット値が入力された後にスロット値を書き込むセッション パラメータ。ネストされたパスは現在サポートされていません。「$$」は、スロットと同じ名前のセッション パラメータにスロット値を書き込むために使用されます。例: writeSessionParam = "fruit" は "$session.params.fruit" に対応し、writeSessionParam = "ticket" は "$session.params.ticket" に対応します。

DefaultValue

このスロットのデフォルト値を入力するための設定。

YAML 表現
sessionParam: string
constant: value
フィールド
sessionParam

string

(省略可)空でない場合、スロット値の初期化に使用されるセッション パラメータ。値のタイプはスロットのタイプと一致する必要があります。ネストされたパスは現在サポートされていません。たとえば、sessionParam = "fruit"$session.params.fruit に対応します。sessionParam = "ticket"$session.params.ticket に対応します。

constant

value (Value format)

(省略可)スロットの定数デフォルト値。これは、このスロットの値が sessionParam を介して入力されなかった場合にのみ使用されます。値のタイプはスロットのタイプと一致する必要があります。