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 发布
-
+
首页
技能后处理协议:标准请求
**目录** 1. 请求类型分类 2. 请求类型说明 2.1. IntentRequest 2.1.1. 消息示例 2.1.2. 参数说明 2.1.2.1. slots 参数说明 2.2. LaunchRequest 2.2.1. 消息示例 2.2.2. 参数说明 2.3. SessionEndedRequest 2.4. TextRequest 2.4.1. 消息示例 2.4.2. 参数说明 # 1. 请求类型分类 通过AIUI链路,标准请求request中包含经过AIUI解析后的用户请求有4类,其中 他们分为: | 请求类型 |是否常用| 介绍| 技能类型| | --- | ---| ---|---| | IntentRequest | 是 |用户的语音请求经过AIUI解析后请求你的服务器时,你将会收到这个请求。| 私有技能| | LaunchRequest | 否 |适用于开放技能,用户通过入口词“打开{技能名称}”进入你的技能时,你将会收到这个请求。| 开放技能(进入操作)| | SessionEndedRequest | 否 |用户主动退出技能结束会话时,你将会收到这个请求。|开放技能(退出操作)| |TextRequest | 否 |在你的技能中,用户的语音请求未经过AIUI解析直接请求你的服务器时,你将会收到这个请求。| iflyos链路业务| - 该文档中,除了`IntentRequest`外,其他均只适用于技能协议v2.1,v2.0中没有该请求。 - `IntentRequest`在v2.1中有字段更新。 标准请求是所有技能都需要实现的请求,这些请求中包含[请求协议_2.1](https://aiui-doc.xf-yun.com/project-1/doc-73/)中提到的所有字段:version, session, context, request。 # 2. 请求类型说明 ## 2.1. IntentRequest 当用户命中了你的技能中定义的意图时,你将会收到请求。 ### 2.1.1. 消息示例 ```json { "type": "IntentRequest", "requestId": "TbXlwz-F86pYnD0VwWbqauUDRwiNOU5i70DgS54E8wFCqpK2ku9bGYKzCGfm1mNw", "timestamp": "2018-09-05T02:59:45.503551Z", "dialogState": "STARTED", "query": { "type": "TEXT", "original": "下一首" }, "intent": { "name": "string", "score": float, "confirmationStatus": "string", "slots": { "SlotName": { "name": "SlotName", "value": "周董", "normValue": "周杰伦", "moreValue": ["槽值1","槽值2"], "confirmationStatus": "string", } } } } ``` ### 2.1.2. 参数说明 | 参数 | 描述 | 类型 | 必须出现 | | ----------- | ------------------------------------------------------------ | ------ | -------- | | type | 请求类型,这里取值 `IntentRequest` | string | 是 | | requestId | 代表请求的唯一标识符。 | string | 是 | | timestamp | 请求时间戳,以ISO 8601格式发送 | string | 是 | | dialogState | 当前会话状态。**取值:** `STARTED`开始,`IN_PROGRESS`进行中,`COMPLETED`完成(意图收集和确认了所有必填槽位,同时如果意图有需求也已经一并确认了) | string | 是 | | query | 请求信息。<br>- type: 请求类型,取值`TEXT`<br>- original: 用户语音经过ivs理解后生成的文本 | object | 是 | | intent | 意图信息 | object | 是 | | intent.name | 意图名称,你的技能中定义的意图名称 | string | 是 | | intent.score | 意图置信度。iFLYOS语义理解之后对用户语料命中该意图的置信度。 | string | 是 | | intent.confirmationStatus | 意图确认状态。**取值:**`NONE`未确认,`CONFIRMED`确认,`DENIED`否认。当`dialogState`为`COMPLETED`时,此处状态为`CONFIRMED`或`DENIED`。当意图不需要确认时,该字段不出现| string | 否 | | intent.slots | 意图中的槽位信息,以key-value结构展示,key为槽名,value为槽值。只显示解析出来的槽。IVS开放意图此项不显示;意图中未定义词槽,该字段不出现。 | array | 否 | #### 2.1.2.1. slots 参数说明 | 参数 | 描述 | 类型 | 必须出现 | | -- | -- | -- | -- | | [slotName].name | 槽位名称 | string | 是 | | [slotName].value | 用户语料经过语义理解后解析出来的槽值,是用户语料中包含的词,如“周董”。 | string | 是 | | [slotName].normValue | 用户语料经过语义理解后解析出来并规整后的槽值,指向实体主字段取值。例如匹配歌星实体,不管上面value取值是`华仔`还是`华哥`,该字段取值固定都是`刘德华`|string | 是 | | [slotName].moreValue | 用户语料经过语义理解后解析出来的槽值,当用户语料中包含该词槽的多个槽值时,出现该字段,以数组形式展示。比如用户说“我要买苹果,香蕉和橘子”,则`value`="苹果",`moreValue`=["香蕉","橘子"]。`moreValue`取值来源于用户语料中包含的槽值的词条名(`normValue`) | array | 否 | | [slotName].confirmationStatus | 槽确认状态。**取值:**`NONE`未确认,`CONFIRMED`确认,`DENIED`否认。当词槽非必填时,该字段不出现。| string | 否 | ## 2.2. LaunchRequest ### 2.2.1. 消息示例 ```json { "type": "LaunchRequest", "requestId": "f78b7d68...", "timestamp": "2018-08-06T16:13Z ", } ``` ### 2.2.2. 参数说明 | 参数 | 描述 | 类型 | 必须出现 | | --------- | ---------------------------------- | ------ | -------- | | type | 请求类型,这里取值 `LaunchRequest` | String | 是 | | requestId | 代表请求的唯一标识符。 | String | 是 | | timestamp | 请求时间戳,以ISO 8601格式发送 | String | 是 | ## 2.3. SessionEndedRequest 用户触发了结束会话的操作时发送。 消息示例 ```json { "type": "SessionEndedRequest", "requestId": "f78b7d68...", "timestamp": "2018-08-06T16:13Z ", "reason": "ERROR", "error": { "type": "INVALID_RESPONSE", "message": "无效回复" } } ``` **参数说明** | 参数 | 描述 | 类型 | 必须出现 | | --------- | ------------------------------------------------------------ | ------ | -------- | | type | 请求类型,这里取值 `SessionEndedRequest` | String | 是 | | requestId | 代表请求的唯一标识符。 | String | 是 | | timestamp | 请求时间戳,以ISO 8601格式发送 | String | 是 | | reason | 结束会话的原因,**取值:**<br>- `USER_INITIATED`:用户明确结束了会话; <br>- `ERROR`:错误导致会话结束; <br>- `EXCEEDED_MAX_REPROMPTS`:用户无输入或多次输入无法理解 | String | 是 | | error | 当结束原因为`ERROR`时,出现该字段。包含:<br>- type: 错误类型,**取值:**<br> - `INVALID_RESPONSE`,无效回复<br> - `DEVICE_COMMUNICATION_ERROR`,设备通讯错误<br> - `INTERNAL_ERROR`,内部错误<br>- message: 错误信息 | Object | 否 | ## 2.4. TextRequest ### 2.4.1. 消息示例 ```json { "type": "TextRequest", "requestId": "f78b7d68...", "timestamp": "2018-08-06T16:13Z ", "query": { "type": "TEXT", "original":"今天天气怎么样?" } } ``` ### 2.4.2. 参数说明 | 参数 | 描述 | 类型 | 必须出现 | | --------- | ------------------------------------------------------------ | ------ | -------- | | type | 请求类型,这里取值 `TextInputRequest` | String | 是 | | requestId | 代表请求的唯一标识符。 | String | 是 | | timestamp | 请求时间戳,以ISO 8601格式发送 | String | 是 | | query | 请求信息。<br>- type:请求类型,取值`TEXT`<br>- original:用户语音经过IVS理解后生成的文本 | String | 是 |
admin
2024年9月14日 16:29
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码