- HTTP 요청
- 경로 매개변수
- 요청 본문
- 응답 본문
- UserInput
- InputType
- DeviceProperties
- Surface
- 위치
- LatLng
- 출력
- 캔버스
- 프롬프트
- 단순
- 콘텐츠
- 카드
- 이미지
- ImageFill
- 링크
- OpenUrl
- UrlHint
- 표
- TableColumn
- HorizontalAlignment
- TableRow
- TableCell
- 미디어
- MediaType
- OptionalMediaControls
- MediaObject
- MediaImage
- 컬렉션
- CollectionItem
- 목록
- ListItem
- 추천
- 진단
- ExecutionEvent
- ExecutionState
- 슬롯
- SlotFillingStatus
- 슬롯
- SlotMode
- SlotStatus
- 상태
- UserConversationInput
- IntentMatch
- ConditionsEvaluated
- 조건
- OnSceneEnter
- WebhookRequest
- WebhookResponse
- WebhookInitiatedTransition
- SlotMatch
- SlotRequested
- SlotValidated
- FormFilled
- WaitingForUserInput
- EndConversation
대화의 한 라운드를 재생합니다.
HTTP 요청
POST https://actions.googleapis.com/v2/{project=projects/*}:sendInteraction
URL은 gRPC 트랜스코딩 구문을 사용합니다.
경로 매개변수
매개변수 | |
---|---|
project |
필수 항목입니다. 프로젝트 ID로 표시되는 테스트 중인 프로젝트 형식: projects/{project} |
요청 본문
요청 본문에는 다음과 같은 구조의 데이터가 포함됩니다.
JSON 표현 | |
---|---|
{ "input": { object ( |
필드 | |
---|---|
input |
필수 항목입니다. 사용자가 제공한 입력입니다. |
deviceProperties |
필수 항목입니다. 작업과 상호작용하는 데 사용되는 기기의 속성입니다. |
conversationToken |
이전 상호작용의 SendInteractionResponse에서 수신된 대로 전달해야 하는 불투명한 토큰입니다. 테스트 세션의 첫 번째 상호작용으로 새 대화를 시작하거나 이전 대화를 포기하고 새 대화를 시작하기 위해 이 설정을 설정하지 않을 수 있습니다. |
응답 본문
성공할 경우 응답 본문에 다음 구조의 데이터가 포함됩니다.
일련의 대화에 대한 응답입니다.
JSON 표현 | |
---|---|
{ "output": { object ( |
필드 | |
---|---|
output |
사용자에게 제공되는 출력입니다. |
diagnostics |
요청이 처리된 방식을 설명하는 진단 정보입니다. |
conversationToken |
동일한 대화를 계속하기 위해 다음 RPC 호출 시 SendInteractionRequest에 설정되는 불투명 토큰입니다. |
UserInput
대화에서 사용자 입력이 제공되었습니다.
JSON 표현 | |
---|---|
{
"query": string,
"type": enum ( |
필드 | |
---|---|
query |
사용자가 보낸 입력의 콘텐츠입니다. |
type |
입력 유형입니다. |
InputType
입력 소스, 입력된 쿼리 또는 음성 쿼리를 나타냅니다.
열거형 | |
---|---|
INPUT_TYPE_UNSPECIFIED |
입력 소스가 지정되지 않았습니다. |
TOUCH |
GUI 상호작용에서 쿼리합니다. |
VOICE |
음성 쿼리 |
KEYBOARD |
입력된 검색어입니다. |
URL |
URL 링크에 의해 작업이 트리거되었습니다. |
DeviceProperties
대화 라운드와 관련된 기기 속성입니다.
JSON 표현 | |
---|---|
{ "surface": enum ( |
필드 | |
---|---|
surface |
작업과 상호작용하는 데 사용되는 노출 영역입니다. |
location |
기기 위치(예: 위도, 경도, 형식이 지정된 주소) |
locale |
기기에 설정된 언어입니다. 형식은 BCP 47(https://tools.ietf.org/html/bcp47)을 따라야 합니다.예: en, en-US, es-419(자세한 예는 https://tools.ietf.org/html/bcp47#appendix-A) 참고) |
timeZone |
기기에 설정된 시간대입니다. 형식은 IANA 시간대 데이터베이스(예: 'America/New_York')를 따라야 합니다. https://www.iana.org/time-zones |
표면
작업과 상호작용하는 데 사용되는 노출 영역입니다. 향후 더 많은 값이 포함될 수 있습니다.
열거형 | |
---|---|
SURFACE_UNSPECIFIED |
기본값 이 값은 사용되지 않습니다. |
SPEAKER |
스피커 (예: Google Home) |
PHONE |
휴대전화, |
ALLO |
Allo 채팅 |
SMART_DISPLAY |
스마트 디스플레이 기기 |
KAI_OS |
KaiOS의 경우 |
위치
위치를 나타내는 컨테이너
JSON 표현 | |
---|---|
{
"coordinates": {
object ( |
필드 | |
---|---|
coordinates |
지역 좌표 [DEVICE_PRECISE_LOCATION] [google.actions.v2.Permission.DEVICE_PRECISE_LOCATION] 권한이 필요합니다. |
formattedAddress |
표시 주소(예: '1600 Amphitheatre Pkwy, Mountain View, CA 94043'. [DEVICE_PRECISE_LOCATION] [google.actions.v2.Permission.DEVICE_PRECISE_LOCATION] 권한이 필요합니다. |
zipCode |
우편번호. [DEVICE_PRECISE_LOCATION] [google.actions.v2.Permission.DEVICE_PRECISE_LOCATION] 또는 [DEVICE_COARSE_LOCATION] [google.actions.v2.Permission.DEVICE_COARSE_LOCATION] 권한이 필요합니다. |
city |
시/군/구. [DEVICE_PRECISE_LOCATION] [google.actions.v2.Permission.DEVICE_PRECISE_LOCATION] 또는 [DEVICE_COARSE_LOCATION] [google.actions.v2.Permission.DEVICE_COARSE_LOCATION] 권한이 필요합니다. |
LatLng
위도/경도 쌍을 나타내는 객체로 위도(도)와 경도(도)를 나타내는 double의 쌍으로 표현됩니다. 달리 명시되지 않는 한 이 객체는 WGS84 표준을 준수해야 합니다. 값은 정규화된 범위 내에 있어야 합니다.
JSON 표현 | |
---|---|
{ "latitude": number, "longitude": number } |
필드 | |
---|---|
latitude |
위도입니다. 범위는 [-90.0, +90.0]입니다. |
longitude |
경도입니다. 범위는 [-180.0, +180.0]여야 합니다. |
출력
대화 전체에 사용자에게 표시되는 출력
JSON 표현 | |
---|---|
{ "text": string, "speech": [ string ], "canvas": { object ( |
필드 | |
---|---|
text |
사용자에게 일반 문자열로 전송된 음성 응답입니다. |
speech[] |
작업에서 생성된 음성 콘텐츠입니다. 여기에는 SSML과 같은 마크업 요소가 포함될 수 있습니다. |
canvas |
Interactive Canvas 콘텐츠 |
actionsBuilderPrompt |
대화 종료 시 표시되는 프롬프트 상태입니다. 메시지에 관한 추가 정보: https://developers.google.com/assistant/conversational/prompts |
캔버스
사용자에게 전송할 Interactive Canvas 응답을 나타냅니다. 대화형 캔버스 응답을 표시하는 것 외에도 포함 프롬프트의 'firstSimple' 필드와 함께 사용하여 사용자와 대화할 수 있습니다. 응답의 최대 크기는 50,000바이트입니다.
JSON 표현 | |
---|---|
{ "url": string, "data": [ value ], "suppressMic": boolean, "enableFullScreen": boolean } |
필드 | |
---|---|
url |
로드할 대화형 캔버스 웹 앱의 URL입니다. 설정하지 않으면 현재 활성 캔버스의 URL이 재사용됩니다. |
data[] |
선택사항입니다. 몰입형 환경 웹페이지에 이벤트로 전달되는 JSON 데이터입니다. 포함하는 프롬프트의 'override' 필드가 'false'이면 이 Canvas 프롬프트에 정의된 데이터 값이 이전 Canvas 프롬프트에서 정의된 데이터 값 뒤에 추가됩니다. |
suppressMic |
선택사항입니다. 기본값은 false입니다. |
enableFullScreen |
|
프롬프트
사용자에 대한 응답을 나타냅니다.
JSON 표현 | |
---|---|
{ "append": boolean, "override": boolean, "firstSimple": { object ( |
필드 | |
---|---|
append |
선택사항입니다. 이 메시지를 이전에 정의한 메시지와 병합하는 방법에 대한 모드입니다. 'false'를 선택하면 이전에 정의된 모든 메시지 (첫 번째 및 마지막 단순 메시지, 콘텐츠, 제안 링크, 캔버스)를 모두 지우고 이 메시지에 정의된 메시지를 추가합니다. 'true'는 이 프롬프트에 정의된 메시지를 이전 응답에서 정의한 메시지에 추가합니다. 이 필드를 'true'로 설정하면 단순 프롬프트, 추천 프롬프트, 캔버스 프롬프트 (콘텐츠 프롬프트의 일부) 내 일부 필드에도 추가할 수 있습니다. 프롬프트에 정의된 경우 콘텐츠 및 링크 메시지를 항상 덮어씁니다. 기본값은 'false'입니다. |
override |
선택사항입니다. 이 메시지를 이전에 정의한 메시지와 병합하는 방법에 대한 모드입니다. 'true'는 이전에 정의된 모든 메시지 (첫 번째 및 마지막 단순 메시지, 콘텐츠, 추천 링크, 캔버스)를 지우고 이 프롬프트에 정의된 메시지를 추가합니다. 'false'를 입력하면 이 프롬프트에 정의된 메시지가 이전 응답에서 정의된 메시지에 추가됩니다. 이 필드를 'false'로 두면 단순 프롬프트, 제안 프롬프트, 캔버스 프롬프트 (콘텐츠 프롬프트의 일부) 내 일부 필드에 추가할 수도 있습니다. 프롬프트에 정의된 경우 콘텐츠 및 링크 메시지를 항상 덮어씁니다. 기본값은 'false'입니다. |
firstSimple |
선택사항입니다. 첫 번째 음성 및 텍스트 응답입니다. |
content |
선택사항입니다. 사용자에게 표시할 카드, 목록, 미디어 등의 콘텐츠입니다. |
lastSimple |
선택사항입니다. 음성 및 텍스트 전용 마지막 응답입니다. |
suggestions[] |
선택사항입니다. 사용자에게 표시할 추천이며 항상 응답의 끝부분에 표시됩니다. 포함하는 프롬프트의 'override' 필드가 'false'인 경우 이 필드에 정의된 제목이 이전에 정의한 추천 프롬프트에서 정의된 제목에 추가되고 중복 값은 삭제됩니다. |
link |
선택사항입니다. 연결된 앱 또는 사이트로 연결할 수 있는 추가 추천 칩 칩이 '열기 |
canvas |
선택사항입니다. 사용자에게 전송할 Interactive Canvas 응답을 나타냅니다. |
간편함
사용자에게 전송할 간단한 메시지를 나타냅니다.
JSON 표현 | |
---|---|
{ "speech": string, "text": string } |
필드 | |
---|---|
speech |
선택사항입니다. 사용자에게 말할 음성을 나타냅니다. SSML 또는 TTS(텍스트 음성 변환)일 수 있습니다. 포함하는 프롬프트의 'override' 필드가 'true'인 경우 이 필드에 정의된 음성이 이전 단순 프롬프트의 음성을 대체합니다. |
text |
채팅 풍선에 표시할 텍스트입니다(선택사항). 지정하지 않으면 위 음성 필드의 디스플레이 렌더링이 사용됩니다. 영문 기준 640자로 제한됩니다. 포함하는 프롬프트의 'override' 필드가 'true'인 경우 이 필드에 정의된 텍스트가 이전 단순 프롬프트의 텍스트로 대체됩니다. |
콘텐츠
표시할 콘텐츠입니다.
JSON 표현 | |
---|---|
{ // Union field |
필드 | ||
---|---|---|
통합 필드 content . 콘텐츠. content 은 다음 중 하나여야 합니다. |
||
card |
기본 카드입니다. |
|
image |
이미지입니다. |
|
table |
표 카드 |
|
media |
재생할 미디어 집합을 나타내는 응답입니다. |
|
canvas |
대화형 캔버스 환경에 사용할 응답입니다. |
|
collection |
선택할 수 있는 옵션 모음을 표시하는 카드입니다. |
|
list |
선택할 수 있는 옵션 목록을 표시하는 카드입니다. |
Card(카드)
이미지 또는 텍스트와 같은 일부 정보를 표시하기 위한 기본 카드입니다.
JSON 표현 | |
---|---|
{ "title": string, "subtitle": string, "text": string, "image": { object ( |
필드 | |
---|---|
title |
카드의 전체 제목입니다. 선택사항입니다. |
subtitle |
선택사항입니다. |
text |
카드의 본문 텍스트입니다. 형식 지정을 위해 제한된 마크다운 문법 세트를 지원합니다. 이미지가 없는 경우 필수 항목입니다. |
image |
카드의 히어로 이미지입니다. 높이는 192dp로 고정되어 있습니다. 선택사항입니다. |
imageFill |
이미지 배경이 채워지는 방식입니다. 선택사항입니다. |
button |
버튼 선택사항입니다. |
이미지
카드에 표시되는 이미지입니다.
JSON 표현 | |
---|---|
{ "url": string, "alt": string, "height": integer, "width": integer } |
필드 | |
---|---|
url |
이미지의 소스 URL입니다. 이미지는 JPG, PNG, GIF (애니메이션 및 애니메이션 이외)일 수 있습니다. 예: |
alt |
접근성을 위해 사용되는 이미지의 텍스트 설명입니다(예: 스크린 리더). 필수 항목입니다. |
height |
이미지 높이(픽셀 단위)입니다. 선택사항입니다. |
width |
이미지 너비(픽셀 단위)입니다. 선택사항입니다. |
ImageFill
이미지 표시 방식에 영향을 주는 사용 가능한 이미지 표시 옵션입니다. 이미지의 가로세로 비율이 이미지 컨테이너의 가로세로 비율과 일치하지 않는 경우 사용해야 합니다.
열거형 | |
---|---|
UNSPECIFIED |
지정되지 않은 이미지 채우기 |
GRAY |
이미지와 이미지 컨테이너 사이의 간격을 회색 막대로 채웁니다. |
WHITE |
이미지와 이미지 컨테이너 사이의 간격을 흰색 막대로 채웁니다. |
CROPPED |
이미지의 너비와 높이가 컨테이너 크기를 초과하도록 크기가 조정됩니다. 이렇게 하면 조정된 이미지의 높이가 컨테이너 높이보다 크면 이미지의 상단과 하단이 잘릴 수 있으며, 조정된 이미지 너비가 컨테이너 너비보다 큰 경우 이미지의 왼쪽과 오른쪽이 잘릴 수 있습니다. 4:3 동영상을 재생할 때 와이드스크린 TV의 '확대/축소 모드'와 유사합니다. |
링크
콘텐츠를 연결합니다.
JSON 표현 | |
---|---|
{
"name": string,
"open": {
object ( |
필드 | |
---|---|
name |
링크 이름 |
open |
사용자가 링크를 열면 어떻게 되나요? |
OpenUrl
사용자가 링크를 열 때 수행되는 작업입니다.
JSON 표현 | |
---|---|
{
"url": string,
"hint": enum ( |
필드 | |
---|---|
url |
URL 필드: - 앱에 연결된 애플리케이션 또는 웹페이지를 여는 데 사용되는 http/https URL |
hint |
URL 유형에 대한 힌트를 나타냅니다. |
UrlHint
다양한 유형의 URL 힌트
열거형 | |
---|---|
LINK_UNSPECIFIED |
미지정 |
AMP |
AMP 콘텐츠로 직접 연결되는 URL 또는 를 통해 AMP 콘텐츠를 참조하는 표준 URL로 연결됩니다. |
테이블
텍스트 표를 표시하는 표 카드입니다.
JSON 표현 | |
---|---|
{ "title": string, "subtitle": string, "image": { object ( |
필드 | |
---|---|
title |
표의 전체 제목입니다. 선택사항이지만 자막이 설정된 경우 설정해야 합니다. |
subtitle |
테이블의 부제목입니다. 선택사항입니다. |
image |
테이블과 연결된 이미지입니다. 선택사항입니다. |
columns[] |
헤더 및 열 정렬 |
rows[] |
테이블의 행 데이터입니다. 처음 3개 행은 항상 표시되지만 다른 행은 특정 표면에서 잘릴 수 있습니다. 시뮬레이터로 테스트하여 특정 표면에 어떤 행이 표시되는지 확인하세요. WEB_BROWSER 기능을 지원하는 표시 경로에서 사용자를 더 많은 데이터가 포함된 웹페이지로 안내할 수 있습니다. |
button |
버튼 |
TableColumn
테이블의 열을 설명합니다.
JSON 표현 | |
---|---|
{
"header": string,
"align": enum ( |
필드 | |
---|---|
header |
열의 헤더 텍스트입니다. |
align |
콘텐츠 W.r.T 열의 가로 정렬 지정하지 않으면 콘텐츠가 선행 가장자리에 정렬됩니다. |
HorizontalAlignment
셀 내 콘텐츠의 정렬입니다.
열거형 | |
---|---|
UNSPECIFIED |
가로 정렬이 지정되지 않았습니다. |
LEADING |
셀의 앞 가장자리입니다. 이는 기본값입니다. |
CENTER |
콘텐츠가 열의 중앙에 정렬됩니다. |
TRAILING |
콘텐츠는 열의 후행 가장자리에 맞춰 정렬됩니다. |
TableRow
테이블의 행을 설명합니다.
JSON 표현 | |
---|---|
{
"cells": [
{
object ( |
필드 | |
---|---|
cells[] |
이 행의 셀입니다. 처음 3개의 셀은 항상 표시되지만 다른 셀은 특정 표면에서 잘릴 수도 있습니다. 시뮬레이터로 테스트하여 주어진 표면에 어떤 셀을 표시할지 확인하세요. |
divider |
각 행 뒤에 구분선이 있어야 하는지 여부를 나타냅니다. |
TableCell
행의 셀을 설명합니다.
JSON 표현 | |
---|---|
{ "text": string } |
필드 | |
---|---|
text |
셀의 텍스트 콘텐츠입니다. |
미디어
하나의 미디어 객체를 나타냅니다. 이름, 설명, URL 등의 미디어 정보가 포함됩니다.
JSON 표현 | |
---|---|
{ "mediaType": enum ( |
필드 | |
---|---|
mediaType |
미디어 유형입니다. |
startOffset |
첫 번째 미디어 객체의 시작 오프셋입니다. 초 단위 기간으로, 소수점 아래 9자리까지 지정 가능하며 ' |
optionalMediaControls[] |
이 미디어 응답 세션에서 지원할 수 있는 선택적 미디어 컨트롤 유형입니다. 설정하는 경우 특정 미디어 이벤트가 발생할 때 서드 파티에 요청이 전송됩니다. 설정하지 않아도 3p는 두 가지 기본 컨트롤 유형인 FINISHED 및 FAILED를 처리해야 합니다. |
mediaObjects[] |
미디어 객체 목록 |
MediaType
이 응답의 미디어 유형입니다.
열거형 | |
---|---|
MEDIA_TYPE_UNSPECIFIED |
지정되지 않은 미디어 유형입니다. |
AUDIO |
오디오 파일입니다. |
MEDIA_STATUS_ACK |
미디어 상태 보고서 확인에 대한 응답입니다. |
OptionalMediaControls
미디어 응답에서 지원할 수 있는 미디어 컨트롤 유형(선택사항)
열거형 | |
---|---|
OPTIONAL_MEDIA_CONTROLS_UNSPECIFIED |
지정되지 않은 값 |
PAUSED |
일시중지된 이벤트입니다. 사용자가 미디어를 일시중지할 때 트리거됩니다. |
STOPPED |
일정을 중지했습니다. 미디어 재생 중에 사용자가 서드 파티 세션을 종료할 때 트리거됩니다. |
MediaObject
단일 미디어 객체를 나타냅니다.
JSON 표현 | |
---|---|
{
"name": string,
"description": string,
"url": string,
"image": {
object ( |
필드 | |
---|---|
name |
이 미디어 객체의 이름입니다. |
description |
이 미디어 객체의 설명입니다. |
url |
미디어 콘텐츠를 가리키는 URL입니다. |
image |
미디어 카드와 함께 표시할 이미지입니다. |
MediaImage
미디어 카드와 함께 표시할 이미지입니다.
JSON 표현 | |
---|---|
{ // Union field |
필드 | ||
---|---|---|
통합 필드 image . 이미지입니다. image 은 다음 중 하나여야 합니다. |
||
large |
앨범 표지 등과 같은 큰 이미지 |
|
icon |
제목의 오른쪽에 작은 이미지 아이콘이 표시됩니다. 36x36dp로 크기가 조절되었습니다. |
컬렉션
선택할 수 있는 옵션 모음을 표시하는 카드입니다.
JSON 표현 | |
---|---|
{ "title": string, "subtitle": string, "items": [ { object ( |
필드 | |
---|---|
title |
컬렉션의 제목입니다. 선택사항입니다. |
subtitle |
컬렉션의 부제목입니다. 선택사항입니다. |
items[] |
최소: 2 최대: 10 |
imageFill |
컬렉션 항목의 이미지 배경이 채워지는 방식입니다. 선택사항입니다. |
CollectionItem
컬렉션의 항목
JSON 표현 | |
---|---|
{ "key": string } |
필드 | |
---|---|
key |
필수 항목입니다. 연결된 Type의 항목 키 이름과 일치하는 NLU 키입니다. |
목록
선택할 수 있는 옵션 목록을 표시하는 카드입니다.
JSON 표현 | |
---|---|
{
"title": string,
"subtitle": string,
"items": [
{
object ( |
필드 | |
---|---|
title |
목록의 제목입니다. 선택사항입니다. |
subtitle |
목록의 부제목입니다. 선택사항입니다. |
items[] |
최소: 2 최대: 30 |
ListItem
목록에 있는 항목
JSON 표현 | |
---|---|
{ "key": string } |
필드 | |
---|---|
key |
필수 항목입니다. 연결된 Type의 항목 키 이름과 일치하는 NLU 키입니다. |
추천
사용자에게 표시할 입력 추천입니다.
JSON 표현 | |
---|---|
{ "title": string } |
필드 | |
---|---|
title |
필수 항목입니다. 추천 검색어 칩에 표시되는 텍스트입니다. 탭하면 이 텍스트가 사용자가 입력한 것처럼 대화에 그대로 다시 게시됩니다. 각 제목은 추천 칩 세트 내에서 고유해야 합니다. 최대 25자(영문 기준) |
진단
대화 라운드와 관련된 진단 정보입니다.
JSON 표현 | |
---|---|
{
"actionsBuilderEvents": [
{
object ( |
필드 | |
---|---|
actionsBuilderEvents[] |
Actions Builder 상호작용 모델의 단계 전반에 걸친 대화 처리에 관한 세부정보가 포함된 이벤트 목록입니다. Actions Builder 및 Actions SDK 앱에 관해서만 채워집니다. |
ExecutionEvent
Actions Builder 대화 요청을 처리하는 동안 발생한 실행 이벤트에 관한 정보를 포함합니다. 대화 요청과 관련된 단계의 개요는 https://developers.google.com/assistant/conversational/actions를 참고하세요.
JSON 표현 | |
---|---|
{ "eventTime": string, "executionState": { object ( |
필드 | ||
---|---|---|
eventTime |
이벤트가 발생한 타임스탬프입니다. RFC3339 UTC 'Zulu' 형식의 타임스탬프입니다(나노초 단위, 소수점 이하 9자리). 예를 들면 |
|
executionState |
이 이벤트 동안의 실행 상태입니다. |
|
status |
특정 실행 단계의 결과 상태입니다. |
|
warningMessages[] |
이 이벤트 실행 중에 생성된 경고 목록입니다. 경고는 대화 요청 중에 발견되는 개발자를 위한 팁입니다. 이러한 요청은 일반적으로 중요하지 않으며 요청 실행을 중지하지 않습니다. 예를 들어 웹훅이 존재하지 않는 커스텀 유형을 재정의하려고 하면 경고가 생성될 수 있습니다. 오류는 실패 상태 코드로 보고되지만 상태가 OK인 경우에도 경고가 표시될 수 있습니다. |
|
통합 필드 EventData . 대화 진행과 관련될 수 있는 다양한 이벤트와 관련된 세부정보입니다. 여기에 설정된 필드는 이 이벤트의 유형을 정의합니다. EventData 은 다음 중 하나여야 합니다. |
||
userInput |
사용자 입력 처리 이벤트입니다. |
|
intentMatch |
인텐트 일치 이벤트. |
|
conditionsEvaluated |
조건 평가 이벤트입니다. |
|
onSceneEnter |
OnSceneEnter 실행 이벤트입니다. |
|
webhookRequest |
웹훅 요청 전달 이벤트 |
|
webhookResponse |
웹훅 응답 수신 이벤트입니다. |
|
webhookInitiatedTransition |
웹훅에서 시작된 전환 이벤트입니다. |
|
slotMatch |
슬롯 일치 이벤트입니다. |
|
slotRequested |
슬롯 요청 이벤트입니다. |
|
slotValidated |
슬롯 유효성 검사 이벤트입니다. |
|
formFilled |
양식 채우기 이벤트입니다. |
|
waitingUserInput |
사용자 입력을 기다리는 중입니다. |
|
endConversation |
대화 종료 이벤트입니다. |
ExecutionState
실행의 현재 상태입니다.
JSON 표현 | |
---|---|
{ "currentSceneId": string, "sessionStorage": { object }, "slots": { object ( |
필드 | |
---|---|
currentSceneId |
현재 활성화된 장면의 ID입니다. |
sessionStorage |
세션 스토리지 상태: https://developers.google.com/assistant/conversational/storage-session |
slots |
슬롯 채우기 상태(해당하는 경우): https://developers.google.com/assistant/conversational/scenes#slot_filling |
promptQueue[] |
프롬프트 대기열: https://developers.google.com/assistant/conversational/prompts |
userStorage |
사용자 저장용량 상태: https://developers.google.com/assistant/conversational/storage-user |
householdStorage |
집 스토리지 상태: https://developers.google.com/assistant/conversational/storage-home |
슬롯
장면 슬롯의 현재 상태를 나타냅니다.
JSON 표현 | |
---|---|
{ "status": enum ( |
필드 | |
---|---|
status |
슬롯 채우기의 현재 상태입니다. |
slots |
현재 장면과 연결된 슬롯입니다.
|
SlotFillingStatus
슬롯 채우기의 현재 상태를 나타냅니다.
열거형 | |
---|---|
UNSPECIFIED |
사용량 필드가 채워지지 않은 경우의 대체 값입니다. |
INITIALIZED |
슬롯이 초기화되었지만 슬롯 채우기가 시작되지 않았습니다. |
COLLECTING |
슬롯 값을 수집하는 중입니다. |
FINAL |
모든 슬롯 값은 최종 값이며 변경할 수 없습니다. |
슬롯
슬롯을 나타냅니다.
JSON 표현 | |
---|---|
{ "mode": enum ( |
필드 | |
---|---|
mode |
슬롯의 모드입니다 (필수 또는 선택사항). 개발자가 설정할 수 있습니다. |
status |
슬롯의 상태입니다. |
value |
슬롯의 값입니다. 응답에서 이 값을 변경하면 슬롯 채우기 값이 수정됩니다. |
updated |
마지막 회전에서 슬롯 값이 수집되었는지 여부를 나타냅니다. 이 필드는 읽기 전용입니다. |
prompt |
선택사항입니다. 이 메시지는 필요한 슬롯을 채워야 할 때 사용자에게 전송됩니다. 이 프롬프트는 콘솔에 정의된 기존 프롬프트를 재정의합니다. 이 필드는 웹훅 요청에 포함되지 않습니다. |
SlotMode
슬롯의 모드, 즉 필요 여부를 나타냅니다.
열거형 | |
---|---|
MODE_UNSPECIFIED |
사용량 필드가 채워지지 않은 경우의 대체 값입니다. |
OPTIONAL |
슬롯이 슬롯 채우기를 완료할 필요가 없음을 나타냅니다. |
REQUIRED |
슬롯이 슬롯 채우기를 완료해야 함을 나타냅니다. |
SlotStatus
슬롯의 상태를 나타냅니다.
열거형 | |
---|---|
SLOT_UNSPECIFIED |
사용량 필드가 채워지지 않은 경우의 대체 값입니다. |
EMPTY |
슬롯에 값이 없음을 나타냅니다. 이 상태는 응답을 통해 수정할 수 없습니다. |
INVALID |
슬롯 값이 유효하지 않음을 나타냅니다. 이 상태는 응답을 통해 설정할 수 있습니다. |
FILLED |
슬롯에 값이 있음을 나타냅니다. 이 상태는 응답을 통해 수정할 수 없습니다. |
상태
Status
유형은 REST API, RPC API를 비롯하여 다양한 프로그래밍 환경에 적합한 논리적 오류 모델을 정의하며, gRPC에서 사용됩니다. 각 Status
메시지에는 오류 코드, 오류 메시지, 오류 세부정보라는 3가지 데이터가 포함됩니다.
API 설계 가이드에서 이 오류 모델과 모델 작업 방법에 대해 자세히 알아볼 수 있습니다.
JSON 표현 | |
---|---|
{ "code": integer, "message": string, "details": [ { "@type": string, field1: ..., ... } ] } |
필드 | |
---|---|
code |
상태 코드로, |
message |
개발자에게 정보를 제공하는 오류 메시지로, 영어로 작성되어야 합니다. 사용자에게 표시되는 모든 오류 메시지는 현지화되어 |
details[] |
오류 세부정보를 설명하는 메시지 목록입니다. API에서 사용할 일반적인 메시지 유형 집합이 있습니다. 임의 유형의 필드를 포함하는 객체입니다. 추가 필드 |
UserConversationInput
사용자 입력과 관련된 정보입니다.
JSON 표현 | |
---|---|
{ "type": string, "originalQuery": string } |
필드 | |
---|---|
type |
사용자 입력 유형입니다. 예: 키보드, 음성, 터치 등 |
originalQuery |
사용자의 원본 텍스트 입력입니다. |
IntentMatch
트리거된 인텐트 일치 (전역 또는 장면 내)에 관한 정보: https://developers.google.com/assistant/conversational/intents
JSON 표현 | |
---|---|
{
"intentId": string,
"intentParameters": {
string: {
object ( |
필드 | |
---|---|
intentId |
이 상호작용을 트리거한 인텐트 ID입니다. |
intentParameters |
이 상호작용을 트리거한 인텐트의 매개변수입니다.
|
handler |
이 상호작용에 연결된 핸들러의 이름입니다. |
nextSceneId |
이 상호작용이 연결되는 장면입니다. |
ConditionsEvaluated
조건 평가 결과: https://developers.google.com/assistant/conversational/scenes#conditions
JSON 표현 | |
---|---|
{ "failedConditions": [ { object ( |
필드 | |
---|---|
failedConditions[] |
'false'로 평가된 조건의 목록입니다. |
successCondition |
'true'로 평가된 첫 번째 조건입니다(있는 경우). |
조건
평가된 조건입니다.
JSON 표현 | |
---|---|
{ "expression": string, "handler": string, "nextSceneId": string } |
필드 | |
---|---|
expression |
이 조건에 지정된 표현식입니다. |
handler |
평가된 조건에 지정된 핸들러 이름입니다. |
nextSceneId |
평가된 조건에 대상 장면이 지정되었습니다. |
OnSceneEnter
onSceneEnter 단계 실행에 관한 정보: https://developers.google.com/assistant/conversational/scenes#onEnter
JSON 표현 | |
---|---|
{ "handler": string } |
필드 | |
---|---|
handler |
onSceneEnter 이벤트에 지정된 핸들러 이름입니다. |
WebhookRequest
작업 웹훅으로 전달된 요청에 관한 정보: https://developers.google.com/assistant/conversational/webhooks#payloads
JSON 표현 | |
---|---|
{ "requestJson": string } |
필드 | |
---|---|
requestJson |
웹훅 요청의 페이로드입니다. |
WebhookResponse
작업 웹훅에서 수신된 응답에 관한 정보: https://developers.google.com/assistant/conversational/webhooks#payloads
JSON 표현 | |
---|---|
{ "responseJson": string } |
필드 | |
---|---|
responseJson |
웹훅 응답의 페이로드입니다. |
WebhookInitiatedTransition
웹훅에서 반환된 대상 장면에 의해 트리거된 이벤트: https://developers.google.com/assistant/conversational/webhooks#transition_scenes
JSON 표현 | |
---|---|
{ "nextSceneId": string } |
필드 | |
---|---|
nextSceneId |
전환이 연결되는 장면의 ID입니다. |
SlotMatch
일치하는 슬롯에 관한 정보: https://developers.google.com/assistant/conversational/scenes#slot_filling
JSON 표현 | |
---|---|
{
"nluParameters": {
string: {
object ( |
필드 | |
---|---|
nluParameters |
사용자 입력에서 NLU가 추출한 매개변수입니다.
|
SlotRequested
현재 요청된 슬롯에 관한 정보: https://developers.google.com/assistant/conversational/scenes#slot_filling
JSON 표현 | |
---|---|
{
"slot": string,
"prompt": {
object ( |
필드 | |
---|---|
slot |
요청된 슬롯의 이름입니다. |
prompt |
슬롯 프롬프트 |
SlotValidated
슬롯에 대한 웹훅 유효성 검사가 완료된 후 발생하는 이벤트: https://developers.google.com/assistant/conversational/scenes#slot_filling
FormFilled
양식이 모두 작성되었을 때 발생하는 이벤트: https://developers.google.com/assistant/conversational/scenes#slot_filling
WaitingForUserInput
시스템에서 사용자 입력이 필요할 때 발생하는 이벤트: https://developers.google.com/assistant/conversational/scenes#input
EndConversation
에이전트와의 대화가 종료되었음을 알리는 이벤트입니다.