AIUI文档中心
AIUI平台说明
什么是AIUI
AIUI平台能力介绍
AIUI交互流程说明
AIUI快速入门
AIUI应用管理说明
应用接入和配置
应用后处理
敏感词
AIUI开发接入
AIUI接入概述
声学接入
交互接入
SDK接入
SDK介绍
参数配置
消息事件
交互状态
结果解析
WebSocketAPI接入
精简协议接入
常用功能
交互控制
语音唤醒
语音合成
用户个性化
自定义参数
离线命令词
翻译模式
流式识别
语义VAD
发音人列表
关键词过滤
情景模式
错误码
星火交互认知大模型说明
大模型概述
开发接入
SDK接入
API接入
大模型API服务鉴权
特色能力
超拟人合成
声音复刻
大模型功能
大模型错误码
软硬件产品接入
RK3328 降噪板
RK3328降噪板白皮书
RK3328降噪板使用手册
RK3328降噪板规格书
RK3328降噪板协议手册
RK3328 AIUI评估板开发套件
RK3328评估板白皮书
RK3328评估板使用手册
RK3328评估板规格书
RK3328评估板开发手册
RK3588 AIUI多模态开发套件
RK3588一体机多模态产品规格书
RK3588多模态套件使用手册
视频传输协议
串口通信协议
音频传输协议
ZG803 离线语音识别套件
ZG803 产品白皮书
USB声卡套件
USB声卡产品白皮书
USB声卡使用指南
AC7911 AIUI语音开发套件
AC7911-产品白皮书
AC7911-快速体验指南
AC7911-开发指南
AC7911-协议手册
AC7911-硬件参数
AIUI评估板接入
集成方式
软件包说明
AIUIServiceKitSDK
串口SDK
评估板参数配置
调试升级
技能工作室
技能概述
名词解析
技能
意图和语料
实体
动态实体
模糊匹配
填槽对话
技能设计规范
语音技能设计规范
开放技能接入审核规范
开放技能图标图片规范
技能开发
创建技能和意图
意图配置
技能测试
技能发布
技能后处理
技能导入导出
云函数APIv2.1
云函数APIv2.0
问答库开发
语句问答
关键词问答
文档问答
设备人设开发
技能协议
语义协议:重要字段和通用字段
技能后处理协议:标准请求
技能后处理协议:请求校验
技能后处理协议:Request_v2.1协议
技能后处理协议:Response_v2.1协议
技能资源限制
硬件设计参考
常见问题
AIUI常见问题
评估板常见问题
动态实体常见问题
联系方式
服务条款
AIUI开放平台服务协议
AIUI开放平台隐私政策
小飞在家用户协议
小飞在家隐私政策
小飞在家开源软件使用许可
讯飞账号隐私政策
讯飞账号用户协议
讯飞带屏音箱用户协议
讯飞带屏音箱隐私政策
AIUI SDK隐私政策
AIUI SDK合规使用说明
本文档使用 MrDoc 发布
-
+
首页
技能后处理协议:Request_v2.1协议
自定义技能开发包括以下步骤: - 处理AIUI发送的不同类型的请求 - 在返回完整回复前选择性地发送一些信息给用户,比如告诉用户系统正在处理中 - 对用户的请求返回合适的回复 ## 请求校验 请求校验可以保障数据安全。 - 每一个AIUI发送的请求均包含一个application_ID,你需要检查这个ID是否和你的技能ID相同; - 所有发送给技能的请求Header都包含`Signature`字段([校验步骤](https://aiui-doc.xf-yun.com/project-1/doc-72/)) 当请求不符合以上两点,你应该返回`HTTP CODE: 400`. ## HTTP头 ```js POST / HTTP/1.1 Content-Type : application/json;charset=UTF-8 Host : your.application.endpoint Content-Length : Accept : application/json Accept-Charset : utf-8 Signature: xxxxxxxxxxxxxxx ``` ## Body示例 ```json { "version": "2.1", "session": { "new": true, "sessionId": "f78b7d68...", "attributes": { "key": "String value" } }, "context": { "Custom":{ "iflytek_data":{ "user_data": "xxxxxx", "device_request_id": "xxxxx" }, "custom_data": { "key": "value" } }, "System": { "device": { "deviceId": "f78b7d68...", "supportedInterfaces": { "AudioPlayer": {},//音频播放器 "TemplateRuntime": {},//屏幕模板渲染 "PlaybackController": {},//音频播放控制 }, "location":{ "lng": float, "lat": float }, "platform": { "name" : "android", "version": "8.0.1" }, "kidMode": { "enable": true } }, "application": { "applicationId": "f78b7d68..." }, "user": { "userId": "f78b7d68...", "accessToken": "23bf653f..." } }, "AudioPlayer": { "playerActivity": "PLAYING", "token": "audioplayer-token", "offsetInMilliseconds": 0 } }, "request": {} } ``` 正文参数说明 所有请求都包含顶层的*version*、*session*、*context*和*request*对象。 | 参数 | 描述 | 类型 | 必须出现 | | ------- | ------------------------------------------------------------ | ------ | -------- | | version | 请求的版本, 其值定义为: "2.1 " | String | 是 | | session | 用户的会话信息,仅包含在标准请求中。[查看详细](#session)</a> | Object | 否 | | context | 设备端状态。[查看详细](#context) | Object | 是 | | request | 经过AIUI解析的用户请求。 | Object | 是 | ### session参数说明<div id="session"></div> session表示用户会话信息,一次session过程从用户调起技能到结束,表示用户与技能的一次会话。会话结束方式:技能返回结束,用户明确结束,或用户输入错误导致结束。 | 参数 | 描述 | 类型 | 必须出现 | | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | -------- | | new | 一个布尔值, 指示这是否为新会话。新会话返回true,已有会话的返回false 。 | boolean | 是 | | sessionId | 活动会话的唯一标识符。sessionId 对于用户和会话的多个后续请求是一致的。如果用户的会话结束, 则为同一用户的后续请求提供一个新的唯一 sessionId 值。 | String | 是 | | attributes | 用于保存上下文信息,由开发者自定义上传。对于新会话已从新设置为 true 的新会话, 属性映射为空。<br>拦截器可在response中的sessionAttributes中设置属性,在同一会话的下一次请求中在此字段中回传。 | map | 是 | ### context参数说明<div id="context"></div> 在向服务发送请求时, `context`对象提供了有关 IVS 服务和设备当前状态的信息。对于在会话上下文 (CanFulfillIntentRequest、LaunchRequest 和 IntentRequest) 中发送的请求, `context`对象将复制会话对象中可用的用户和应用程序信息。 | 参数 | 描述 | 类型 | 必须出现 | | ------------------------------------ | ------------------------------------------------------------ | ------ | -------- | | Custom | 设备传输给技能使用的自定义信息 | Object | 否 | | Custom.iflytek_data | 讯飞的自定义数据,应用开发者可以把要传输给技能的自定义数据放到这个字段中。 | Object | 否 | | Custom.iflytek_data.<br>user_data | 自定义用户数据,相当于v2.0协议中的`userparams` | String | 否 | | Custom.iflytek_data.<br>device_request_id | 设备请求时生成的request_id,只有拦截器技能会收到这个字段 | String | 否 | | Custom.custom_data | 自定义数据,其中的key-value由设备厂商自行定义 | Object | 否 | | System | 与技能交互的设备的信息 | Object | 是 | | System.application | 技能信息。包含:<br>- applicationId | Object | 是 | | System.device | 设备信息。包含:<br>- deviceId:设备唯一标识符。<br>- suportedInterfaces:设备支持的接口列表。**取值:**`AudioPlayer: {}`、`PlaybackController{}`、`TemplateRuntime{}`。<br>- location:设备的地理位置。包含:lng:经度,lat:纬度<br>- kidMode:设备当前是否处于儿童模式 | Object | 是 | | System.user | 用户信息。包含:<br>- userId:提出请求的用户的唯一标识符。不超过255个字符。这个userId是在用户启用技能时自动生成的。禁用和重新启用技能会说呢过程新的标识符。<br>- accessToken:第三方(拦截器服务)的授权token。 | Object | 是 | | AudioPlayer | 音频播放器当前状态 | Object | 是 | | AudioPlayer.token | 音频资源的标识符。该字段只发送给最近一次播放音频的技能方。 | String | 否 | | AudioPlayer.<br>offsetInMilliseconds | 播放进度。该字段只发送给最近一次播放音频的技能方。 | Long | 否 | | AudioPlayer.<br>playerActivity | 音频播放器状态。**取值** : IDLE,PAUSED,PLAYING,BUFFER_UNDERRUN,FINISHED,STOPPED | String | 是 | ### request参数说明 request中包含经过AIUI解析后的用户请求。他们分为: - 标准请求 - `LaunchRequest`: 用户通过入口词“打开`{技能名称}`”进入你的技能时,你将会收到这个请求。 - `TextRequest`: 在你的技能中,用户的语音请求未经过AIUI解析直接请求你的服务器时,你将会收到这个请求。 - `IntentRequest`: 用户的语音请求经过AIUI解析后请求你的服务器时,你将会收到这个请求。 - `SessionEndedRequest`: 用户主动退出技能结束会话时,你将会收到这个请求。 <IflyHeader />
admin
2023年4月24日 09:35
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码