Method: projects.sendInteraction

대화의 한 라운드를 재생합니다.

HTTP 요청

POST https://actions.googleapis.com/v2/{project=projects/*}:sendInteraction

URL은 gRPC 트랜스코딩 구문을 사용합니다.

경로 매개변수

매개변수
project

string

필수 항목입니다. 프로젝트 ID로 표시되는 테스트 중인 프로젝트 형식: projects/{project}

요청 본문

요청 본문에는 다음과 같은 구조의 데이터가 포함됩니다.

JSON 표현
{
  "input": {
    object (UserInput)
  },
  "deviceProperties": {
    object (DeviceProperties)
  },
  "conversationToken": string
}
필드
input

object (UserInput)

필수 항목입니다. 사용자가 제공한 입력입니다.

deviceProperties

object (DeviceProperties)

필수 항목입니다. 작업과 상호작용하는 데 사용되는 기기의 속성입니다.

conversationToken

string

이전 상호작용의 SendInteractionResponse에서 수신된 대로 전달해야 하는 불투명한 토큰입니다. 테스트 세션의 첫 번째 상호작용으로 새 대화를 시작하거나 이전 대화를 포기하고 새 대화를 시작하기 위해 이 설정을 설정하지 않을 수 있습니다.

응답 본문

성공할 경우 응답 본문에 다음 구조의 데이터가 포함됩니다.

일련의 대화에 대한 응답입니다.

JSON 표현
{
  "output": {
    object (Output)
  },
  "diagnostics": {
    object (Diagnostics)
  },
  "conversationToken": string
}
필드
output

object (Output)

사용자에게 제공되는 출력입니다.

diagnostics

object (Diagnostics)

요청이 처리된 방식을 설명하는 진단 정보입니다.

conversationToken

string

동일한 대화를 계속하기 위해 다음 RPC 호출 시 SendInteractionRequest에 설정되는 불투명 토큰입니다.

UserInput

대화에서 사용자 입력이 제공되었습니다.

JSON 표현
{
  "query": string,
  "type": enum (InputType)
}
필드
query

string

사용자가 보낸 입력의 콘텐츠입니다.

type

enum (InputType)

입력 유형입니다.

InputType

입력 소스, 입력된 쿼리 또는 음성 쿼리를 나타냅니다.

열거형
INPUT_TYPE_UNSPECIFIED 입력 소스가 지정되지 않았습니다.
TOUCH GUI 상호작용에서 쿼리합니다.
VOICE 음성 쿼리
KEYBOARD 입력된 검색어입니다.
URL URL 링크에 의해 작업이 트리거되었습니다.

DeviceProperties

대화 라운드와 관련된 기기 속성입니다.

JSON 표현
{
  "surface": enum (Surface),
  "location": {
    object (Location)
  },
  "locale": string,
  "timeZone": string
}
필드
surface

enum (Surface)

작업과 상호작용하는 데 사용되는 노출 영역입니다.

location

object (Location)

기기 위치(예: 위도, 경도, 형식이 지정된 주소)

locale

string

기기에 설정된 언어입니다. 형식은 BCP 47(https://tools.ietf.org/html/bcp47)을 따라야 합니다.예: en, en-US, es-419(자세한 예는 https://tools.ietf.org/html/bcp47#appendix-A) 참고)

timeZone

string

기기에 설정된 시간대입니다. 형식은 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 (LatLng)
  },
  "formattedAddress": string,
  "zipCode": string,
  "city": string
}
필드
coordinates

object (LatLng)

지역 좌표 [DEVICE_PRECISE_LOCATION] [google.actions.v2.Permission.DEVICE_PRECISE_LOCATION] 권한이 필요합니다.

formattedAddress

string

표시 주소(예: '1600 Amphitheatre Pkwy, Mountain View, CA 94043'. [DEVICE_PRECISE_LOCATION] [google.actions.v2.Permission.DEVICE_PRECISE_LOCATION] 권한이 필요합니다.

zipCode

string

우편번호. [DEVICE_PRECISE_LOCATION] [google.actions.v2.Permission.DEVICE_PRECISE_LOCATION] 또는 [DEVICE_COARSE_LOCATION] [google.actions.v2.Permission.DEVICE_COARSE_LOCATION] 권한이 필요합니다.

city

string

시/군/구. [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

number

위도입니다. 범위는 [-90.0, +90.0]입니다.

longitude

number

경도입니다. 범위는 [-180.0, +180.0]여야 합니다.

출력

대화 전체에 사용자에게 표시되는 출력

JSON 표현
{
  "text": string,
  "speech": [
    string
  ],
  "canvas": {
    object (Canvas)
  },
  "actionsBuilderPrompt": {
    object (Prompt)
  }
}
필드
text

string

사용자에게 일반 문자열로 전송된 음성 응답입니다.

speech[]

string

작업에서 생성된 음성 콘텐츠입니다. 여기에는 SSML과 같은 마크업 요소가 포함될 수 있습니다.

canvas

object (Canvas)

Interactive Canvas 콘텐츠

actionsBuilderPrompt

object (Prompt)

대화 종료 시 표시되는 프롬프트 상태입니다. 메시지에 관한 추가 정보: https://developers.google.com/assistant/conversational/prompts

캔버스

사용자에게 전송할 Interactive Canvas 응답을 나타냅니다. 대화형 캔버스 응답을 표시하는 것 외에도 포함 프롬프트의 'firstSimple' 필드와 함께 사용하여 사용자와 대화할 수 있습니다. 응답의 최대 크기는 50,000바이트입니다.

JSON 표현
{
  "url": string,
  "data": [
    value
  ],
  "suppressMic": boolean,
  "enableFullScreen": boolean
}
필드
url

string

로드할 대화형 캔버스 웹 앱의 URL입니다. 설정하지 않으면 현재 활성 캔버스의 URL이 재사용됩니다.

data[]

value (Value format)

선택사항입니다. 몰입형 환경 웹페이지에 이벤트로 전달되는 JSON 데이터입니다. 포함하는 프롬프트의 'override' 필드가 'false'이면 이 Canvas 프롬프트에 정의된 데이터 값이 이전 Canvas 프롬프트에서 정의된 데이터 값 뒤에 추가됩니다.

suppressMic

boolean

선택사항입니다. 기본값은 false입니다.

enableFullScreen

boolean

true인 경우 캔버스 애플리케이션이 전체 화면을 차지하며 상단에 헤더가 없습니다. 로드 화면에 작업의 표시 이름, 개발자 이름, 작업 종료 안내가 포함된 토스트 메시지도 표시됩니다. 기본값: false.

프롬프트

사용자에 대한 응답을 나타냅니다.

JSON 표현
{
  "append": boolean,
  "override": boolean,
  "firstSimple": {
    object (Simple)
  },
  "content": {
    object (Content)
  },
  "lastSimple": {
    object (Simple)
  },
  "suggestions": [
    {
      object (Suggestion)
    }
  ],
  "link": {
    object (Link)
  },
  "canvas": {
    object (Canvas)
  }
}
필드
append
(deprecated)

boolean

선택사항입니다. 이 메시지를 이전에 정의한 메시지와 병합하는 방법에 대한 모드입니다. 'false'를 선택하면 이전에 정의된 모든 메시지 (첫 번째 및 마지막 단순 메시지, 콘텐츠, 제안 링크, 캔버스)를 모두 지우고 이 메시지에 정의된 메시지를 추가합니다. 'true'는 이 프롬프트에 정의된 메시지를 이전 응답에서 정의한 메시지에 추가합니다. 이 필드를 'true'로 설정하면 단순 프롬프트, 추천 프롬프트, 캔버스 프롬프트 (콘텐츠 프롬프트의 일부) 내 일부 필드에도 추가할 수 있습니다. 프롬프트에 정의된 경우 콘텐츠 및 링크 메시지를 항상 덮어씁니다. 기본값은 'false'입니다.

override

boolean

선택사항입니다. 이 메시지를 이전에 정의한 메시지와 병합하는 방법에 대한 모드입니다. 'true'는 이전에 정의된 모든 메시지 (첫 번째 및 마지막 단순 메시지, 콘텐츠, 추천 링크, 캔버스)를 지우고 이 프롬프트에 정의된 메시지를 추가합니다. 'false'를 입력하면 이 프롬프트에 정의된 메시지가 이전 응답에서 정의된 메시지에 추가됩니다. 이 필드를 'false'로 두면 단순 프롬프트, 제안 프롬프트, 캔버스 프롬프트 (콘텐츠 프롬프트의 일부) 내 일부 필드에 추가할 수도 있습니다. 프롬프트에 정의된 경우 콘텐츠 및 링크 메시지를 항상 덮어씁니다. 기본값은 'false'입니다.

firstSimple

object (Simple)

선택사항입니다. 첫 번째 음성 및 텍스트 응답입니다.

content

object (Content)

선택사항입니다. 사용자에게 표시할 카드, 목록, 미디어 등의 콘텐츠입니다.

lastSimple

object (Simple)

선택사항입니다. 음성 및 텍스트 전용 마지막 응답입니다.

suggestions[]

object (Suggestion)

선택사항입니다. 사용자에게 표시할 추천이며 항상 응답의 끝부분에 표시됩니다. 포함하는 프롬프트의 'override' 필드가 'false'인 경우 이 필드에 정의된 제목이 이전에 정의한 추천 프롬프트에서 정의된 제목에 추가되고 중복 값은 삭제됩니다.

canvas

object (Canvas)

선택사항입니다. 사용자에게 전송할 Interactive Canvas 응답을 나타냅니다.

간편함

사용자에게 전송할 간단한 메시지를 나타냅니다.

JSON 표현
{
  "speech": string,
  "text": string
}
필드
speech

string

선택사항입니다. 사용자에게 말할 음성을 나타냅니다. SSML 또는 TTS(텍스트 음성 변환)일 수 있습니다. 포함하는 프롬프트의 'override' 필드가 'true'인 경우 이 필드에 정의된 음성이 이전 단순 프롬프트의 음성을 대체합니다.

text

string

채팅 풍선에 표시할 텍스트입니다(선택사항). 지정하지 않으면 위 음성 필드의 디스플레이 렌더링이 사용됩니다. 영문 기준 640자로 제한됩니다. 포함하는 프롬프트의 'override' 필드가 'true'인 경우 이 필드에 정의된 텍스트가 이전 단순 프롬프트의 텍스트로 대체됩니다.

콘텐츠

표시할 콘텐츠입니다.

JSON 표현
{

  // Union field content can be only one of the following:
  "card": {
    object (Card)
  },
  "image": {
    object (Image)
  },
  "table": {
    object (Table)
  },
  "media": {
    object (Media)
  },
  "canvas": {
    object (Canvas)
  },
  "collection": {
    object (Collection)
  },
  "list": {
    object (List)
  }
  // End of list of possible types for union field content.
}
필드
통합 필드 content. 콘텐츠. content은 다음 중 하나여야 합니다.
card

object (Card)

기본 카드입니다.

image

object (Image)

이미지입니다.

table

object (Table)

표 카드

media

object (Media)

재생할 미디어 집합을 나타내는 응답입니다.

canvas
(deprecated)

object (Canvas)

대화형 캔버스 환경에 사용할 응답입니다.

collection

object (Collection)

선택할 수 있는 옵션 모음을 표시하는 카드입니다.

list

object (List)

선택할 수 있는 옵션 목록을 표시하는 카드입니다.

Card(카드)

이미지 또는 텍스트와 같은 일부 정보를 표시하기 위한 기본 카드입니다.

JSON 표현
{
  "title": string,
  "subtitle": string,
  "text": string,
  "image": {
    object (Image)
  },
  "imageFill": enum (ImageFill),
  "button": {
    object (Link)
  }
}
필드
title

string

카드의 전체 제목입니다. 선택사항입니다.

subtitle

string

선택사항입니다.

text

string

카드의 본문 텍스트입니다. 형식 지정을 위해 제한된 마크다운 문법 세트를 지원합니다. 이미지가 없는 경우 필수 항목입니다.

image

object (Image)

카드의 히어로 이미지입니다. 높이는 192dp로 고정되어 있습니다. 선택사항입니다.

imageFill

enum (ImageFill)

이미지 배경이 채워지는 방식입니다. 선택사항입니다.

button

object (Link)

버튼 선택사항입니다.

이미지

카드에 표시되는 이미지입니다.

JSON 표현
{
  "url": string,
  "alt": string,
  "height": integer,
  "width": integer
}
필드
url

string

이미지의 소스 URL입니다. 이미지는 JPG, PNG, GIF (애니메이션 및 애니메이션 이외)일 수 있습니다. 예: https://www.agentx.com/logo.png 필수 항목입니다.

alt

string

접근성을 위해 사용되는 이미지의 텍스트 설명입니다(예: 스크린 리더). 필수 항목입니다.

height

integer

이미지 높이(픽셀 단위)입니다. 선택사항입니다.

width

integer

이미지 너비(픽셀 단위)입니다. 선택사항입니다.

ImageFill

이미지 표시 방식에 영향을 주는 사용 가능한 이미지 표시 옵션입니다. 이미지의 가로세로 비율이 이미지 컨테이너의 가로세로 비율과 일치하지 않는 경우 사용해야 합니다.

열거형
UNSPECIFIED 지정되지 않은 이미지 채우기
GRAY 이미지와 이미지 컨테이너 사이의 간격을 회색 막대로 채웁니다.
WHITE 이미지와 이미지 컨테이너 사이의 간격을 흰색 막대로 채웁니다.
CROPPED 이미지의 너비와 높이가 컨테이너 크기를 초과하도록 크기가 조정됩니다. 이렇게 하면 조정된 이미지의 높이가 컨테이너 높이보다 크면 이미지의 상단과 하단이 잘릴 수 있으며, 조정된 이미지 너비가 컨테이너 너비보다 큰 경우 이미지의 왼쪽과 오른쪽이 잘릴 수 있습니다. 4:3 동영상을 재생할 때 와이드스크린 TV의 '확대/축소 모드'와 유사합니다.

OpenUrl

사용자가 링크를 열 때 수행되는 작업입니다.

JSON 표현
{
  "url": string,
  "hint": enum (UrlHint)
}
필드
url

string

URL 필드: - 앱에 연결된 애플리케이션 또는 웹페이지를 여는 데 사용되는 http/https URL

hint

enum (UrlHint)

URL 유형에 대한 힌트를 나타냅니다.

UrlHint

다양한 유형의 URL 힌트

열거형
AMP AMP 콘텐츠로 직접 연결되는 URL 또는 를 통해 AMP 콘텐츠를 참조하는 표준 URL로 연결됩니다.

테이블

텍스트 표를 표시하는 표 카드입니다.

JSON 표현
{
  "title": string,
  "subtitle": string,
  "image": {
    object (Image)
  },
  "columns": [
    {
      object (TableColumn)
    }
  ],
  "rows": [
    {
      object (TableRow)
    }
  ],
  "button": {
    object (Link)
  }
}
필드
title

string

표의 전체 제목입니다. 선택사항이지만 자막이 설정된 경우 설정해야 합니다.

subtitle

string

테이블의 부제목입니다. 선택사항입니다.

image

object (Image)

테이블과 연결된 이미지입니다. 선택사항입니다.

columns[]

object (TableColumn)

헤더 및 열 정렬

rows[]

object (TableRow)

테이블의 행 데이터입니다. 처음 3개 행은 항상 표시되지만 다른 행은 특정 표면에서 잘릴 수 있습니다. 시뮬레이터로 테스트하여 특정 표면에 어떤 행이 표시되는지 확인하세요. WEB_BROWSER 기능을 지원하는 표시 경로에서 사용자를 더 많은 데이터가 포함된 웹페이지로 안내할 수 있습니다.

button

object (Link)

버튼

TableColumn

테이블의 열을 설명합니다.

JSON 표현
{
  "header": string,
  "align": enum (HorizontalAlignment)
}
필드
header

string

열의 헤더 텍스트입니다.

align

enum (HorizontalAlignment)

콘텐츠 W.r.T 열의 가로 정렬 지정하지 않으면 콘텐츠가 선행 가장자리에 정렬됩니다.

HorizontalAlignment

셀 내 콘텐츠의 정렬입니다.

열거형
UNSPECIFIED 가로 정렬이 지정되지 않았습니다.
LEADING 셀의 앞 가장자리입니다. 이는 기본값입니다.
CENTER 콘텐츠가 열의 중앙에 정렬됩니다.
TRAILING 콘텐츠는 열의 후행 가장자리에 맞춰 정렬됩니다.

TableRow

테이블의 행을 설명합니다.

JSON 표현
{
  "cells": [
    {
      object (TableCell)
    }
  ],
  "divider": boolean
}
필드
cells[]

object (TableCell)

이 행의 셀입니다. 처음 3개의 셀은 항상 표시되지만 다른 셀은 특정 표면에서 잘릴 수도 있습니다. 시뮬레이터로 테스트하여 주어진 표면에 어떤 셀을 표시할지 확인하세요.

divider

boolean

각 행 뒤에 구분선이 있어야 하는지 여부를 나타냅니다.

TableCell

행의 셀을 설명합니다.

JSON 표현
{
  "text": string
}
필드
text

string

셀의 텍스트 콘텐츠입니다.

미디어

하나의 미디어 객체를 나타냅니다. 이름, 설명, URL 등의 미디어 정보가 포함됩니다.

JSON 표현
{
  "mediaType": enum (MediaType),
  "startOffset": string,
  "optionalMediaControls": [
    enum (OptionalMediaControls)
  ],
  "mediaObjects": [
    {
      object (MediaObject)
    }
  ]
}
필드
mediaType

enum (MediaType)

미디어 유형입니다.

startOffset

string (Duration format)

첫 번째 미디어 객체의 시작 오프셋입니다.

초 단위 기간으로, 소수점 아래 9자리까지 지정 가능하며 's'로 끝납니다(예: "3.5s").

optionalMediaControls[]

enum (OptionalMediaControls)

이 미디어 응답 세션에서 지원할 수 있는 선택적 미디어 컨트롤 유형입니다. 설정하는 경우 특정 미디어 이벤트가 발생할 때 서드 파티에 요청이 전송됩니다. 설정하지 않아도 3p는 두 가지 기본 컨트롤 유형인 FINISHED 및 FAILED를 처리해야 합니다.

mediaObjects[]

object (MediaObject)

미디어 객체 목록

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 (MediaImage)
  }
}
필드
name

string

이 미디어 객체의 이름입니다.

description

string

이 미디어 객체의 설명입니다.

url

string

미디어 콘텐츠를 가리키는 URL입니다.

image

object (MediaImage)

미디어 카드와 함께 표시할 이미지입니다.

MediaImage

미디어 카드와 함께 표시할 이미지입니다.

JSON 표현
{

  // Union field image can be only one of the following:
  "large": {
    object (Image)
  },
  "icon": {
    object (Image)
  }
  // End of list of possible types for union field image.
}
필드
통합 필드 image. 이미지입니다. image은 다음 중 하나여야 합니다.
large

object (Image)

앨범 표지 등과 같은 큰 이미지

icon

object (Image)

제목의 오른쪽에 작은 이미지 아이콘이 표시됩니다. 36x36dp로 크기가 조절되었습니다.

컬렉션

선택할 수 있는 옵션 모음을 표시하는 카드입니다.

JSON 표현
{
  "title": string,
  "subtitle": string,
  "items": [
    {
      object (CollectionItem)
    }
  ],
  "imageFill": enum (ImageFill)
}
필드
title

string

컬렉션의 제목입니다. 선택사항입니다.

subtitle

string

컬렉션의 부제목입니다. 선택사항입니다.

items[]

object (CollectionItem)

최소: 2 최대: 10

imageFill

enum (ImageFill)

컬렉션 항목의 이미지 배경이 채워지는 방식입니다. 선택사항입니다.

CollectionItem

컬렉션의 항목

JSON 표현
{
  "key": string
}
필드
key

string

필수 항목입니다. 연결된 Type의 항목 키 이름과 일치하는 NLU 키입니다.

목록

선택할 수 있는 옵션 목록을 표시하는 카드입니다.

JSON 표현
{
  "title": string,
  "subtitle": string,
  "items": [
    {
      object (ListItem)
    }
  ]
}
필드
title

string

목록의 제목입니다. 선택사항입니다.

subtitle

string

목록의 부제목입니다. 선택사항입니다.

items[]

object (ListItem)

최소: 2 최대: 30

ListItem

목록에 있는 항목

JSON 표현
{
  "key": string
}
필드
key

string

필수 항목입니다. 연결된 Type의 항목 키 이름과 일치하는 NLU 키입니다.

추천

사용자에게 표시할 입력 추천입니다.

JSON 표현
{
  "title": string
}
필드
title

string

필수 항목입니다. 추천 검색어 칩에 표시되는 텍스트입니다. 탭하면 이 텍스트가 사용자가 입력한 것처럼 대화에 그대로 다시 게시됩니다. 각 제목은 추천 칩 세트 내에서 고유해야 합니다. 최대 25자(영문 기준)

진단

대화 라운드와 관련된 진단 정보입니다.

JSON 표현
{
  "actionsBuilderEvents": [
    {
      object (ExecutionEvent)
    }
  ]
}
필드
actionsBuilderEvents[]

object (ExecutionEvent)

Actions Builder 상호작용 모델의 단계 전반에 걸친 대화 처리에 관한 세부정보가 포함된 이벤트 목록입니다. Actions Builder 및 Actions SDK 앱에 관해서만 채워집니다.

ExecutionEvent

Actions Builder 대화 요청을 처리하는 동안 발생한 실행 이벤트에 관한 정보를 포함합니다. 대화 요청과 관련된 단계의 개요는 https://developers.google.com/assistant/conversational/actions를 참고하세요.

JSON 표현
{
  "eventTime": string,
  "executionState": {
    object (ExecutionState)
  },
  "status": {
    object (Status)
  },
  "warningMessages": [
    string
  ],

  // Union field EventData can be only one of the following:
  "userInput": {
    object (UserConversationInput)
  },
  "intentMatch": {
    object (IntentMatch)
  },
  "conditionsEvaluated": {
    object (ConditionsEvaluated)
  },
  "onSceneEnter": {
    object (OnSceneEnter)
  },
  "webhookRequest": {
    object (WebhookRequest)
  },
  "webhookResponse": {
    object (WebhookResponse)
  },
  "webhookInitiatedTransition": {
    object (WebhookInitiatedTransition)
  },
  "slotMatch": {
    object (SlotMatch)
  },
  "slotRequested": {
    object (SlotRequested)
  },
  "slotValidated": {
    object (SlotValidated)
  },
  "formFilled": {
    object (FormFilled)
  },
  "waitingUserInput": {
    object (WaitingForUserInput)
  },
  "endConversation": {
    object (EndConversation)
  }
  // End of list of possible types for union field EventData.
}
필드
eventTime

string (Timestamp format)

이벤트가 발생한 타임스탬프입니다.

RFC3339 UTC 'Zulu' 형식의 타임스탬프입니다(나노초 단위, 소수점 이하 9자리). 예를 들면 "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"입니다.

executionState

object (ExecutionState)

이 이벤트 동안의 실행 상태입니다.

status

object (Status)

특정 실행 단계의 결과 상태입니다.

warningMessages[]

string

이 이벤트 실행 중에 생성된 경고 목록입니다. 경고는 대화 요청 중에 발견되는 개발자를 위한 팁입니다. 이러한 요청은 일반적으로 중요하지 않으며 요청 실행을 중지하지 않습니다. 예를 들어 웹훅이 존재하지 않는 커스텀 유형을 재정의하려고 하면 경고가 생성될 수 있습니다. 오류는 실패 상태 코드로 보고되지만 상태가 OK인 경우에도 경고가 표시될 수 있습니다.

통합 필드 EventData. 대화 진행과 관련될 수 있는 다양한 이벤트와 관련된 세부정보입니다. 여기에 설정된 필드는 이 이벤트의 유형을 정의합니다. EventData은 다음 중 하나여야 합니다.
userInput

object (UserConversationInput)

사용자 입력 처리 이벤트입니다.

intentMatch

object (IntentMatch)

인텐트 일치 이벤트.

conditionsEvaluated

object (ConditionsEvaluated)

조건 평가 이벤트입니다.

onSceneEnter

object (OnSceneEnter)

OnSceneEnter 실행 이벤트입니다.

webhookRequest

object (WebhookRequest)

웹훅 요청 전달 이벤트

webhookResponse

object (WebhookResponse)

웹훅 응답 수신 이벤트입니다.

webhookInitiatedTransition

object (WebhookInitiatedTransition)

웹훅에서 시작된 전환 이벤트입니다.

slotMatch

object (SlotMatch)

슬롯 일치 이벤트입니다.

slotRequested

object (SlotRequested)

슬롯 요청 이벤트입니다.

slotValidated

object (SlotValidated)

슬롯 유효성 검사 이벤트입니다.

formFilled

object (FormFilled)

양식 채우기 이벤트입니다.

waitingUserInput

object (WaitingForUserInput)

사용자 입력을 기다리는 중입니다.

endConversation

object (EndConversation)

대화 종료 이벤트입니다.

ExecutionState

실행의 현재 상태입니다.

JSON 표현
{
  "currentSceneId": string,
  "sessionStorage": {
    object
  },
  "slots": {
    object (Slots)
  },
  "promptQueue": [
    {
      object (Prompt)
    }
  ],
  "userStorage": {
    object
  },
  "householdStorage": {
    object
  }
}
필드
currentSceneId

string

현재 활성화된 장면의 ID입니다.

sessionStorage

object (Struct format)

세션 스토리지 상태: https://developers.google.com/assistant/conversational/storage-session

slots

object (Slots)

슬롯 채우기 상태(해당하는 경우): https://developers.google.com/assistant/conversational/scenes#slot_filling

promptQueue[]

object (Prompt)

프롬프트 대기열: https://developers.google.com/assistant/conversational/prompts

userStorage

object (Struct format)

사용자 저장용량 상태: https://developers.google.com/assistant/conversational/storage-user

householdStorage

object (Struct format)

집 스토리지 상태: https://developers.google.com/assistant/conversational/storage-home

슬롯

장면 슬롯의 현재 상태를 나타냅니다.

JSON 표현
{
  "status": enum (SlotFillingStatus),
  "slots": {
    string: {
      object (Slot)
    },
    ...
  }
}
필드
status

enum (SlotFillingStatus)

슬롯 채우기의 현재 상태입니다.

slots

map (key: string, value: object (Slot))

현재 장면과 연결된 슬롯입니다.

"key": value 쌍 목록을 포함하는 객체입니다. 예: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

SlotFillingStatus

슬롯 채우기의 현재 상태를 나타냅니다.

열거형
UNSPECIFIED 사용량 필드가 채워지지 않은 경우의 대체 값입니다.
INITIALIZED 슬롯이 초기화되었지만 슬롯 채우기가 시작되지 않았습니다.
COLLECTING 슬롯 값을 수집하는 중입니다.
FINAL 모든 슬롯 값은 최종 값이며 변경할 수 없습니다.

슬롯

슬롯을 나타냅니다.

JSON 표현
{
  "mode": enum (SlotMode),
  "status": enum (SlotStatus),
  "value": value,
  "updated": boolean,
  "prompt": {
    object (Prompt)
  }
}
필드
mode

enum (SlotMode)

슬롯의 모드입니다 (필수 또는 선택사항). 개발자가 설정할 수 있습니다.

status

enum (SlotStatus)

슬롯의 상태입니다.

value

value (Value format)

슬롯의 값입니다. 응답에서 이 값을 변경하면 슬롯 채우기 값이 수정됩니다.

updated

boolean

마지막 회전에서 슬롯 값이 수집되었는지 여부를 나타냅니다. 이 필드는 읽기 전용입니다.

prompt

object (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

integer

상태 코드로, google.rpc.Code의 열거형 값이어야 합니다.

message

string

개발자에게 정보를 제공하는 오류 메시지로, 영어로 작성되어야 합니다. 사용자에게 표시되는 모든 오류 메시지는 현지화되어 google.rpc.Status.details 필드에 전송되거나, 클라이언트 측에서 현지화되어야 합니다.

details[]

object

오류 세부정보를 설명하는 메시지 목록입니다. API에서 사용할 일반적인 메시지 유형 집합이 있습니다.

임의 유형의 필드를 포함하는 객체입니다. 추가 필드 "@type"은 유형을 식별하는 URI를 포함합니다. 예: { "id": 1234, "@type": "types.example.com/standard/id" }.

UserConversationInput

사용자 입력과 관련된 정보입니다.

JSON 표현
{
  "type": string,
  "originalQuery": string
}
필드
type

string

사용자 입력 유형입니다. 예: 키보드, 음성, 터치 등

originalQuery

string

사용자의 원본 텍스트 입력입니다.

IntentMatch

트리거된 인텐트 일치 (전역 또는 장면 내)에 관한 정보: https://developers.google.com/assistant/conversational/intents

JSON 표현
{
  "intentId": string,
  "intentParameters": {
    string: {
      object (IntentParameterValue)
    },
    ...
  },
  "handler": string,
  "nextSceneId": string
}
필드
intentId

string

이 상호작용을 트리거한 인텐트 ID입니다.

intentParameters

map (key: string, value: object (IntentParameterValue))

이 상호작용을 트리거한 인텐트의 매개변수입니다.

"key": value 쌍 목록을 포함하는 객체입니다. 예: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

handler

string

이 상호작용에 연결된 핸들러의 이름입니다.

nextSceneId

string

이 상호작용이 연결되는 장면입니다.

ConditionsEvaluated

조건 평가 결과: https://developers.google.com/assistant/conversational/scenes#conditions

JSON 표현
{
  "failedConditions": [
    {
      object (Condition)
    }
  ],
  "successCondition": {
    object (Condition)
  }
}
필드
failedConditions[]

object (Condition)

'false'로 평가된 조건의 목록입니다.

successCondition

object (Condition)

'true'로 평가된 첫 번째 조건입니다(있는 경우).

조건

평가된 조건입니다.

JSON 표현
{
  "expression": string,
  "handler": string,
  "nextSceneId": string
}
필드
expression

string

이 조건에 지정된 표현식입니다.

handler

string

평가된 조건에 지정된 핸들러 이름입니다.

nextSceneId

string

평가된 조건에 대상 장면이 지정되었습니다.

OnSceneEnter

onSceneEnter 단계 실행에 관한 정보: https://developers.google.com/assistant/conversational/scenes#onEnter

JSON 표현
{
  "handler": string
}
필드
handler

string

onSceneEnter 이벤트에 지정된 핸들러 이름입니다.

WebhookRequest

작업 웹훅으로 전달된 요청에 관한 정보: https://developers.google.com/assistant/conversational/webhooks#payloads

JSON 표현
{
  "requestJson": string
}
필드
requestJson

string

웹훅 요청의 페이로드입니다.

WebhookResponse

작업 웹훅에서 수신된 응답에 관한 정보: https://developers.google.com/assistant/conversational/webhooks#payloads

JSON 표현
{
  "responseJson": string
}
필드
responseJson

string

웹훅 응답의 페이로드입니다.

WebhookInitiatedTransition

웹훅에서 반환된 대상 장면에 의해 트리거된 이벤트: https://developers.google.com/assistant/conversational/webhooks#transition_scenes

JSON 표현
{
  "nextSceneId": string
}
필드
nextSceneId

string

전환이 연결되는 장면의 ID입니다.

SlotMatch

일치하는 슬롯에 관한 정보: https://developers.google.com/assistant/conversational/scenes#slot_filling

JSON 표현
{
  "nluParameters": {
    string: {
      object (IntentParameterValue)
    },
    ...
  }
}
필드
nluParameters

map (key: string, value: object (IntentParameterValue))

사용자 입력에서 NLU가 추출한 매개변수입니다.

"key": value 쌍 목록을 포함하는 객체입니다. 예: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

SlotRequested

현재 요청된 슬롯에 관한 정보: https://developers.google.com/assistant/conversational/scenes#slot_filling

JSON 표현
{
  "slot": string,
  "prompt": {
    object (Prompt)
  }
}
필드
slot

string

요청된 슬롯의 이름입니다.

prompt

object (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

에이전트와의 대화가 종료되었음을 알리는 이벤트입니다.