小爱技能开放平台的请求和返回的详细参数列表

小米小爱音箱开发。以下是小爱技能开放平台的请求和返回的详细参数列表

开发者接入流程

  • 开发者按照请求和返回协议开发好服务并上线测试环境

  • 小爱技能开放平台和开发者联调确保接口无误

  • 产品介入迭代优化体验

  • 上线正式环境给用户使用,并加入监控报警机制

安全规范

  • 接口协议必须是https

  • 开发者需验证签名来确认请求来自小爱技能开放平台(具体参考签名文档,假如使用小米的函数计算平台则不需要)

协议说明

参数名

参数值

说明

协议类型

https

为了保证用户数据安全,我们需要使用https进行传输

Method

Post

Header

Authorization

包含签名数据

Body

JSON

接口的具体数据,具体参考下文

错误处理

开发者的错误应该通过HTTP的status code返回,例如500用来表示出现了服务器内部错误

小爱技能开放平台请求开发者的接口定义

参数名

说明

类型

是否必须

version

版本号,当前为1.0

String

是

query

用户语音输入的识别结果

String

否

session

一轮对话相关的信息

Session

是

context

上下文相关的信息

Context

否

request

请求相关的信息

Request

是

Session字段定义

参数名

说明

类型

是否必须

session_id

唯一标识一轮session

String

是

Application

当前轮命中的技能

Application

是

attributes

可存储需要持久化的数据,每次请求都会带上

Jsobject

否

user

User

用户信息

否

Application字段定义

参数名

说明

类型

是否必须

app_id

技能唯一标示

String

是

User字段定义

参数名

说明

类型

是否必须

user_id

用户唯一id,默认会对用户id进行加密,所以这个id不是真实的小米id,但是可以作为唯一标识

String

是

access_token

如果使用了OAuth进行账号绑定,这里存放用户绑定后获取的token

String

否

Context字段定义

参数名

说明

类型

是否必须

device_id

设备唯一标识,需要申请才会给到

String

否

passport

OAuth账号绑定的额外信息

String

否

app_info

客户端APP相关信息

ClientAppInfo

否

Request字段定义

参数名

说明

类型

是否必须

type

请求的类型,分别标识,0:技能进入请求; 1:技能进行中请求;2:请求结束请求

Int

是

request_id

请求的唯一标识

String

是

timestamp

时间戳

Long

是

no_response

是否用户没响应小爱(例如用户没有在小爱音箱旁边)

Boolean

否

event_type

事件类型(详见事件)

String

否

event_property

事件的相关信息

EventProperty

否

Locale

本地化设置

String

是

slot_info

意图信息(详见意图)

SlotInfo

否

ClientAppInfo字段定义

参数名

说明

类型

是否必须

pkg_name

包名

string

是

version_code

版本号

int

是

EventProperty字段定义

参数名

说明

类型

是否必须

asr_text

录音的语音识别结果文本

String

否

msg_file_id

录音所得的文件id

String

否

SlotInfo字段定义

参数名

描述

类型

是否必须

intent_name

此次请求命中的意图名称

String

是

is_confirmed

此命中的意图是否确认了,所谓意图确认是指上一轮命中了这个意图,假如开发者配置了意图确认,平台会要求用户确认一次,假如这次用户确认了,会将这个bool值设置为true

Boolean

否

/request/slot_info/slots

该意图提取出的所有槽位值

List[Slot]

否

Slot字段定义

参数名

描述

类型

是否必须

name

槽位名称

String

是

value

提取出的槽位值,例如city槽位可能提取的值是北京

String

否

is_inquire_failed

追问超过开发者设置的次数会通过这个值告诉开发者。 什么是追问以及怎么设置最大值详见[!这里](https://xiaoai.mi.com/documents/Home?type=/api/doc/render_markdown/SkillAccess/BackendDocument/NLPModel#追问)

Boolean

否

开发者返回给小爱技能开放平台的接口定义

参数名

说明

类型

是否必须

version

返回的协议版本,默认请用1.0

String

是

session_attributes

期望小爱技能平台帮忙持久化的jsobject

JsObject

否

is_session_end

是否结束当前会话

Boolean

是

response

返回的具体信息

Response

是

Response字段定义

参数名

说明

类型

是否必须

to_speak

tts要说的话,通常简单的回复可以使用这个字段

ToSpeak

否

to_display

有屏设备显示的数据

ToDisplay

否

directives

设备的复杂操作通常放在这里,例如多句tts,url音频播放等

List[Directive]

否

open_mic

是否需要开麦(相关指导建议详见最佳实践),默认不开麦

Boolean

否

not_understand

是否理解用户的请求,具体作用详见最佳实践

Boolean

否

action

动作,详见动作页

String

否

action_property

动作属性

ActionProperty

否

register_events

需要注册的事件类型(详见事件和动作页)

List[RegisterEvent]

否

ToSpeak字段定义

参数名

说明

类型

是否必须

type

Tts的类型,目前仅支持0:TTS

Int

是

text

Tts要说的文本

String

是

ToDisplay字段定义

参数名

说明

类型

是否必须

type

显示类型,目前支持0:文字,1:html,2:native ui,3:widgets,目前主要用在电视和手机等有屏设备

Int

是

url

假如显示html则通过这个链接指定

String

否

text

显示的文字

String

否

ui_template

显示的模板,有屏设备支持一些显示模板,可以通过这个配置

UITemplate

否

UITemplate字段定义

参数名

说明

类型

是否必须

type

使用的模板的类型,0:list view,1:single image view,2:double image view

Int

是

items

Ui template type为0时必填

List[Item]

否

logo

开发者的logo地址

String

否

item

Ui template的type为1,2时必填

Item

否

Item字段定义:

参数名

说明

类型

是否必须

image_style

图片的样式

String

否

images

图片列表

Jsarray

否

intent

响应点击事件

String

否

title

标题

String

否

body

主题内容

Jsobject

否

background_image

背景图片

String

否

Directive字段定义

参数名

说明

类型

是否必须

type

动作的类型,audio播放音频,tts播放文字

String

是

audio_item

音频内容

AudioItem

否

tts_item

Tts内容

TTSItem

否

Audio_item字段定义

参数名

说明

类型

是否必须

stream

音频流

AudioStream

是

AudioStream字段定义

参数名

说明

类型

是否必须

token

播放资源鉴权用的token

String

否

url

播放地址

String

是

offset_in_milliseconds

偏移地址

Long

否

TTSItem字段定义

参数名

说明

类型

是否必须

Type

Tts的类型,目前仅支持0:普通文本

String

是

Text

文本内容

String

否

ActionProperty字段定义

参数名

说明

类型

是否必须

file_id_list

要播放的文件id,用于play_msg动作

JSArray

否

RegisterEvent字段定义

参数名

说明

类型

是否必须

event_name

事件名称,目前仅支持:mediaplayer.playbacknearlyfinished

String

是

0%