장면은 대화를 설계할 때 제어 흐름의 기본 단위입니다. 다른 장면과 함께 연결하고, 최종 사용자를 위한 메시지를 생성하고, 슬롯을 정의할 수 있습니다. 장면 이름은 파일 이름에 지정됩니다.
YAML 표현 | |
---|---|
onEnter: object ( |
필드 | |
---|---|
onEnter |
이 장면으로 전환할 때 호출할 핸들러입니다. |
intentEvents[] |
인텐트를 기반으로 트리거되는 이벤트 목록입니다. 이러한 이벤트는 on_load 핸들러가 호출된 후 언제든지 트리거될 수 있습니다. 중요: 이러한 이벤트는 이 장면으로 범위가 지정되는 인텐트 집합을 정의하며, 동일한 인텐트 또는 트리거 문구를 가진 전역적으로 정의된 이벤트보다 우선합니다. 인텐트 이름은 장면 내에서 고유해야 합니다. |
conditionalEvents[] |
조건문에 따라 트리거할 이벤트 목록입니다. 이는 양식이 채워진 후 또는 장면에 양식이 없는 경우 on_load 직후 평가됩니다 (평가는 한 번만 수행됨). 처음 일치하는 이벤트만 트리거됩니다. |
slots[] |
순서가 지정된 슬롯 목록입니다. 각 슬롯은 해결할 데이터의 유형과 이 해결의 환경을 맞춤설정하도록 구성 (예: 메시지)을 정의합니다. |
onSlotUpdated |
다른 핸들러 내의 업데이트로 인해 발생하지 않은 슬롯 상태가 변경될 때 호출되는 핸들러입니다. 이를 통해 슬롯이 무효화되거나 장면이 무효화되거나 장면 상태가 변경될 수 있습니다. |
슬롯
슬롯의 구성입니다. 슬롯은 자연어 (즉, 인텐트 매개변수), 세션 매개변수, 기타 소스를 통해 채울 수 있는 단일 데이터 단위입니다.
YAML 표현 | |
---|---|
name: string type: object ( |
필드 | |
---|---|
name |
필수 항목입니다. 슬롯의 이름입니다. |
type |
필수 항목입니다. 이 슬롯의 데이터 유형을 선언합니다. |
required |
선택사항입니다. 다음 진행 전에 슬롯을 채워야 하는지 여부를 나타냅니다. 채워지지 않은 필수 슬롯은 사용자에게 맞춤설정 가능한 메시지를 트리거합니다. |
promptSettings |
선택사항입니다. 다양한 슬롯 채우기 단계에 대한 프롬프트를 등록합니다. |
commitBehavior |
선택사항입니다. 슬롯과 관련된 커밋 동작입니다. |
config |
선택사항입니다. 슬롯을 채우는 데 사용되는 슬롯과 연결된 추가 구성입니다. 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
슬롯 프롬프트가 정의된 단일 위치입니다.
YAML 표현 | |
---|---|
initialPrompt: object ( |
필드 | |
---|---|
initialPrompt |
슬롯 값 자체에 대한 메시지를 표시합니다. 예: "어떤 사이즈를 원하시나요?" |
noMatchPrompt1 |
사용자의 입력이 처음에 슬롯의 예상 값 유형과 일치하지 않을 때 메시지를 표시합니다. 예: "죄송합니다. 이해하지 못했습니다." |
noMatchPrompt2 |
사용자의 입력이 슬롯의 예상 값 유형과 두 번째로 일치하지 않을 때 메시지를 표시합니다. 예: "죄송합니다. 이해하지 못했습니다." |
noMatchFinalPrompt |
사용자 입력이 마지막 슬롯의 예상 값 유형과 일치하지 않을 때 메시지를 표시합니다. 예: "죄송합니다. 이해하지 못했습니다." |
noInputPrompt1 |
사용자가 처음으로 입력을 제공하지 않을 때 메시지를 표시합니다. 예: "죄송합니다. 이해하지 못했습니다." |
noInputPrompt2 |
사용자가 두 번째로 입력을 제공하지 않을 때 메시지를 표시합니다. 예: "죄송합니다. 이해하지 못했습니다." |
noInputFinalPrompt |
사용자가 마지막으로 입력을 제공하지 않을 때 메시지를 표시합니다. 예: "죄송합니다. 이해하지 못했습니다." |
CommitBehavior
슬롯이 성공적으로 채워진 후 슬롯과 관련된 커밋 동작을 설명하는 메시지입니다.
YAML 표현 | |
---|---|
writeSessionParam: string |
필드 | |
---|---|
writeSessionParam |
슬롯 값이 채워진 후 작성할 세션 매개변수입니다. 현재 중첩 경로는 지원되지 않습니다. '$$'는 슬롯과 이름이 같은 세션 매개변수에 슬롯 값을 쓰는 데 사용됩니다. 예: writeSessionParam = "fruit"은 "$session.params.fruit"에 해당합니다. writeSessionParam = "ticket"은 "$session.params.ticket"에 해당합니다. |
DefaultValue
이 슬롯의 기본값을 채우기 위한 구성입니다.
YAML 표현 | |
---|---|
sessionParam: string constant: value |
필드 | |
---|---|
sessionParam |
선택사항입니다. 비어 있지 않은 값이 있는 경우 슬롯 값을 초기화하는 데 사용할 세션 매개변수입니다. 값의 유형은 슬롯의 유형과 일치해야 합니다. 현재 중첩 경로는 지원되지 않습니다. 예를 들어 |
constant |
선택사항입니다. 슬롯의 상수 기본값입니다. 이 슬롯의 값이 |