Template
Template 인터페이스는 View Template의 노출, 종료, 리스트 항목 선택과 관련된 일련의 Message를 제공합니다.
표Template 인터페이스Message | 인터페이스 | 설명 |
---|---|---|
Event | ElementSelected | Template.Render Instruction의 items 를 화면 터치로 선택할 수 있고, 그 중 하나가 선택되었을 때 전송 |
Rendered | Service Agent가 Template을 그렸음을 전달 | |
Closed | Service Agent가 Template을 종료했음을 전달 | |
Instruction | Render | Service Agent 화면에 Template을 노출하도록 지시 |
Close | Service Agent 화면에 노출된 Template을 강제 종료하도록 지시 | |
State | RenderState | 현재 유효한 TTL 내 모든 Template의 상태를 KVS에 전달 |
Event
Event Message의 호출 방식은 다음과 같습니다.
표Event Message 호출 방식메서드 | 요청 URL |
---|---|
POST | /{API version}/events |
ElementSelected
Template.ElementSelected는 Template.Render Instruction의 items
들을 화면 터치로 선택할 수 있고, 그 중 하나가 선택되었을 때 Service Agent에서 KVS로 전송하는 Event입니다.
Request Syntax
코드예제Template.ElementSelected Request Syntax
{
"event": {
"header": {
"type": "Template.ElementSelected",
"messageId": "{STRING}",
"dialogRequestId": "{STRING}"
},
"body": {
"token": "{STRING}",
"params": [
{
"key": "{STRING}",
"value": "{STRING}"
}
]
}
}
}
Request Header
표Template.ElementSelected Request Header파라미터 | 타입 | 필수 여부 | 설명 |
---|---|---|---|
type | String | 필수 |
해당 인터페이스 이름 |
messageId | String | 필수 |
특정 메시지를 나타내는 고유 ID - 해당 메시지의 생성 주체가 임의의 UUID로 정의 |
dialogRequestId | String | 선택 |
Recognizer 인터페이스의 특정 Event에 대한 응답(Instruction)을 상호 연관시키는데 사용되는 고유 ID - 해당 Event 생성 시점에 Service Agent에서 임의의 UUID로 정의 |
Request Body
표Template.ElementSelected Request Body파라미터 | 타입 | 필수 여부 | 설명 |
---|---|---|---|
token | String | 필수 |
유니크 식별자 |
Array | 선택 |
추가 파라미터 | |
key | String | 필수 |
추가 파라미터의 키 |
value | String | 필수 |
추가 파라미터의 값 |
Rendered
Template.Rendered는 Service Agent가 Template을 그렸음을 KVS로 전달하는 Event입니다.
Request Syntax
코드예제Template.Rendered Request Syntax
{
"event": {
"header": {
"type": "Template.Rendered",
"messageId": "{STRING}",
"dialogRequestId": "{STRING}"
},
"body": {
"token": "{STRING}"
}
}
}
Request Header
표Template.Rendered Request Header파라미터 | 타입 | 필수 여부 | 설명 |
---|---|---|---|
type | String | 필수 |
해당 인터페이스 이름 |
messageId | String | 필수 |
특정 메시지를 나타내는 고유 ID - 해당 메시지의 생성 주체가 임의의 UUID로 정의 |
dialogRequestId | String | 선택 |
Recognizer 인터페이스의 특정 Event에 대한 응답(Instruction)을 상호 연관시키는데 사용되는 고유 ID - 해당 Event 생성 시점에 Service Agent에서 임의의 UUID로 정의 |
Request Body
표Template.Rendered Request Body파라미터 | 타입 | 필수 여부 | 설명 |
---|---|---|---|
token | String | 필수 |
유니크 식별자 |
Closed
Template.Closed는 Service Agent가 Template을 종료했을 때 KVS로 전송하는 Event입니다.
Request Syntax
코드예제Template.Closed Request Syntax
{
"event": {
"header": {
"type": "Template.Closed",
"messageId": "{STRING}",
"dialogRequestId": "{STRING}"
},
"body": {
"token": "{STRING}"
}
}
}
Request Header
표Template.Closed Request Header파라미터 | 타입 | 필수 여부 | 설명 |
---|---|---|---|
type | String | 필수 |
해당 인터페이스 이름 |
messageId | String | 필수 |
특정 메시지를 나타내는 고유 ID - 해당 메시지의 생성 주체가 임의의 UUID로 정의 |
dialogRequestId | String | 선택 |
Recognizer 인터페이스의 특정 Event에 대한 응답(Instruction)을 상호 연관시키는데 사용되는 고유 ID - 해당 Event 생성 시점에 Service Agent에서 임의의 UUID로 정의 |
Request Body
표Template.Closed Request Body파라미터 | 타입 | 필수 여부 | 설명 |
---|---|---|---|
token | String | 필수 |
유니크 식별자 |
Instruction
Event Message의 응답으로 Instruction Message를 수신할 수도 있습니다. Instruction Message 수신을 위한 Down Channel 생성 방식은 다음과 같습니다.
표Instruction Message 호출 방식메서드 | 요청 URL |
---|---|
GET | /{API version}/instructions |
Render
Template.Render는 KVS가 Service Agent 화면에 Template을 노출하도록 지시하는 Instruction입니다.
Request Syntax
코드예제Template.Render Request Syntax{
"instruction": {
"header": {
"type": "Template.Render",
"messageId": "{STRING}",
"dialogRequestId": "{STRING}"
},
"body": {
"type": "{STRING}",
"token": "{STRING}",
"data": "{{OBJECT}}",
"ttl": {LONG},
"style": "{STRING}"
}
}
}
Request Header
표Template.Render Request Header파라미터 | 타입 | 필수 여부 | 설명 |
---|---|---|---|
type | String | 필수 |
해당 인터페이스 이름 |
messageId | String | 필수 |
특정 메시지를 나타내는 고유 ID - 해당 메시지의 생성 주체가 임의의 UUID로 정의 |
dialogRequestId | String | 선택 |
Recognizer 인터페이스의 특정 Event에 대한 응답(Instruction)을 상호 연관시키는데 사용되는 고유 ID - 해당 Event 생성 시점에 Service Agent에서 임의의 UUID로 정의 |
Request Body
표Template.RenderBody Request Body파라미터 | 타입 | 필수 여부 | 설명 |
---|---|---|---|
type | String | 필수 |
View Template 타입 |
token | String | 필수 |
유니크 식별자 |
data | Object | 필수 |
title, subtitle, button 등의 템플릿 스타일이나 동작을 포함한 구성 요소를 정의 - View Template 참고 |
ttl | Long | 선택 |
View Template이 화면에 그려지고 유지되어야 하는 시간 |
style | String | 선택 |
대화 완료 답변과 대화 중 입력에 사용되는 View Template의 Draw 스타일 |
BASIC (기본값): 대화 완료 상태 |
|||
INTERIM : 사용자 입력을 기대하는 상태 |
Sample Code
코드예제Template.Render 날씨 Sample Code
{
"instruction": {
"header": {
"type": "Template.Render",
"messageId": "123456",
"dialogRequestId": "{STRING}"
},
"body": {
"type": "weatherDaily",
"token": "{STRING}",
"data": {
"background": {
"colors": ["#2DA5E1", "#1E6EB4"],
"imageUrls": []
},
"items": [
{
"dayOfWeek": "수",
"description": "맑음",
"maxTemperature": "26",
"minTemperature": "13",
"pictogramUrl": "{URL}",
"temperature": "18"
}
],
"title": "날씨",
"subTitle": "서울 05.17 오전 05:00 기준"
}
}
}
}
Close
Template.Close는 KVS가 Service Agent 화면에 노출된 Template을 강제 종료하도록 지시하는 Instruction입니다.
Request Syntax
코드예제Template.Close Request Syntax
{
"instruction": {
"header": {
"type": "Template.Close",
"messageId": "{STRING}",
"dialogRequestId": "{STRING}"
},
"body": {
"token": "{STRING}"
}
}
}
Request Header
표Template.Close Request Header파라미터 | 타입 | 필수 여부 | 설명 |
---|---|---|---|
type | String | 필수 |
해당 인터페이스 이름 |
messageId | String | 필수 |
특정 메시지를 나타내는 고유 ID - 해당 메시지의 생성 주체가 임의의 UUID로 정의 |
dialogRequestId | String | 선택 |
Recognizer 인터페이스의 특정 Event에 대한 응답(Instruction)을 상호 연관시키는데 사용되는 고유 ID - 해당 Event 생성 시점에 Service Agent에서 임의의 UUID로 정의 |
Request Body
표Template.Close Request Body파라미터 | 타입 | 필수 여부 | 설명 |
---|---|---|---|
token | String | 필수 |
유니크 식별자 |
State
State Message는 모든 Event Message를 전송하는 요청(Request)에 항상 포함되어야 합니다.
RenderState
Template.RenderState는 현재 유효한 TTL 내의 모든 Template 상태를 표시하는 State입니다.
Request Syntax
코드예제Template.RenderState Request Syntax{
"header": {
"type": "Template.RenderState"
},
"body": {
"allTemplates": [
{
"token": {LONG},
"type": {LONG},
"style": "{STRING}",
"createdAt": {LONG},
"state": "ready|active"
}
],
"activeTemplates": [
{
"token": "{STRING}",
"type": "{STRING}",
"style": "{STRING}",
"stateUpdatedAt": {LONG},
"createdAt": {LONG},
"expiredAt": {LONG}
}
]
}
}
Request Body
표Template.RenderState Request Body파라미터 | 타입 | 필수 여부 | 설명 |
---|---|---|---|
Array | 선택 |
모든 Template 정보 목록 | |
token | String | 필수 |
Template 토큰 |
type | String | 필수 |
Template 타입 |
style | String | 필수 |
Template 스타일 |
INTERIM : 슬롯필링 또는 컨펌 등의 재질의를 표시 |
|||
BASIC : 최종 결과 답변만 표시 |
|||
createdAt | Long | 선택 |
Template 생성 시점 |
state | Long | 선택 |
Template 상태 |
ready : 대기 |
|||
active : 표시 |
|||
Array | 선택 |
표시된 Template의 정보 | |
String | 필수 |
Template 토큰 | |
type | String | 필수 |
Template 타입 |
style | String | 필수 |
Template 스타일 |
INTERIM : 슬롯필링 또는 컨펌 등의 재질의를 표시 |
|||
BASIC : 최종 결과 답변만 표시 |
|||
createdAt | Long | 선택 |
Template 생성 시점 |
styleUpdatedAt | Long | 선택 |
Template 상태 갱신 시점 |
expiredAt | Long | 선택 |
Template 만료 시점 |