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

スロット プロンプトを定義する単一の場所。

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 を通じて入力されなかった場合にのみ使用されます。この値のタイプは、スロットのタイプと一致する必要があります。