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 직후 평가됩니다 (평가는 한 번만 수행됨). 처음 일치하는 이벤트만 트리거됩니다.

slots[]

object (Slot)

순서가 지정된 슬롯 목록입니다. 각 슬롯은 해결할 데이터의 유형과 이 해결의 환경을 맞춤설정하도록 구성 (예: 메시지)을 정의합니다.

onSlotUpdated

object (EventHandler)

다른 핸들러 내의 업데이트로 인해 발생하지 않은 슬롯 상태가 변경될 때 호출되는 핸들러입니다. 이를 통해 슬롯이 무효화되거나 장면이 무효화되거나 장면 상태가 변경될 수 있습니다.

슬롯

슬롯의 구성입니다. 슬롯은 자연어 (즉, 인텐트 매개변수), 세션 매개변수, 기타 소스를 통해 채울 수 있는 단일 데이터 단위입니다.

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)

선택사항입니다. 슬롯과 관련된 커밋 동작입니다.

config

value (Value format)

선택사항입니다. 슬롯을 채우는 데 사용되는 슬롯과 연결된 추가 구성입니다. config 형식은 슬롯 유형에 따라 다릅니다. 사용자 또는 세션 매개변수에 대한 리소스 참조를 이 구성에 추가할 수 있습니다. 이 구성은 트랜잭션 및 사용자 참여와 관련된 슬롯을 채우는 데 필요합니다.

예: 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)

사용자의 입력이 슬롯의 예상 값 유형과 두 번째로 일치하지 않을 때 메시지를 표시합니다. 예: "죄송합니다. 이해하지 못했습니다."

noMatchFinalPrompt

object (EventHandler)

사용자 입력이 마지막 슬롯의 예상 값 유형과 일치하지 않을 때 메시지를 표시합니다. 예: "죄송합니다. 이해하지 못했습니다."

noInputPrompt1

object (EventHandler)

사용자가 처음으로 입력을 제공하지 않을 때 메시지를 표시합니다. 예: "죄송합니다. 이해하지 못했습니다."

noInputPrompt2

object (EventHandler)

사용자가 두 번째로 입력을 제공하지 않을 때 메시지를 표시합니다. 예: "죄송합니다. 이해하지 못했습니다."

noInputFinalPrompt

object (EventHandler)

사용자가 마지막으로 입력을 제공하지 않을 때 메시지를 표시합니다. 예: "죄송합니다. 이해하지 못했습니다."

CommitBehavior

슬롯이 성공적으로 채워진 후 슬롯과 관련된 커밋 동작을 설명하는 메시지입니다.

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를 통해 채워지지 않은 경우에만 사용됩니다. 이 값의 유형은 슬롯의 유형과 일치해야 합니다.