小米小爱音箱开发。以下是小爱技能开放平台的请求和返回的详细参数列表
开发者接入流程
开发者按照请求和返回协议开发好服务并上线测试环境
小爱技能开放平台和开发者联调确保接口无误
产品介入迭代优化体验
上线正式环境给用户使用,并加入监控报警机制
安全规范
接口协议必须是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
是