AIUI文档中心
AIUI文档导览
1. AIUI平台服务
1.1 AIUI平台介绍
1.2 AIUI应用介绍
1.3 AIUI服务链路介绍
1.4 AIUI平台能力概述
1.5 快速体验
2. AIUI应用配置
2.1 应用发布
2.2 语义精简协议介绍
2.3 基础配置
2.4 语义模型配置
2.5 回复角色配置
2.6 语音识别配置
2.7 结构化语义配置
2.8 星火大模型配置
2.9 语音合成配置
2.10 应用后处理配置
2.11 三方大模型配置
3. AIUI SDK开发
3.1 AIUI SDK接入流程
3.2 AIUI SDK基础信息
3.2.1 SDK接口说明
3.2.2 参数配置说明
3.2.3 消息事件说明
3.2.4 SDK状态说明
3.2.5 数据发送方式
3.2.6 回调解析说明
3.2.7 交互结果协议说明
3.3 AIUI SDK基础能力
3.3.1 流式识别
3.3.2 离线识别
3.3.3 语音唤醒
3.3.4 语音合成
3.3.5 用户个性化
3.3.6 自定义参数
3.4 传统语义链路接入
3.4.1 链路配置说明
3.4.2 个性化数据使用
3.5 通用大模型链路接入
3.5.1 链路配置说明
3.5.2 个性化数据使用
3.5.3 超拟人合成
3.5.4 声音复刻
3.6 极速超拟人链路接入
3.6.1 链路配置说明
3.6.2 个性化数据使用
3.6.3 流式合成
3.6.4 声音复刻
3.6.5 RTOS系统SDK接入
3.7 错误码列表
3.8 发音人列表
4. AIUI API开发
4.1 传统语义链路
4.1.1 交互API
4.1.2 用户个性化API
4.1.3 合成能力使用
4.2 通用大模型链路
4.2.1. 服务鉴权
4.2.2 交互API
4.2.3 用户个性化API
4.2.4 声音复刻API
4.2.5 合成能力使用
4.3 极速超拟人链路
4.3.1 服务鉴权
4.3.2 交互API
4.3.3 用户个性化API
4.3.4 声音复刻API
4.3.5 合成能力使用
5. 自定义业务
技能工作室概述
名词解析
技能
意图和语料
实体
动态实体
模糊匹配
填槽对话
技能设计规范
语音技能设计规范
开放技能接入审核规范
开放技能图标图片规范
技能开发
创建技能和意图
意图配置
技能测试
技能发布
技能后处理
技能导入导出
云函数APIv2.1
云函数APIv2.0
智能体开发
智能体对接
问答库开发
语句问答
关键词问答
文档问答
设备人设开发
技能协议
语义协议:重要字段和通用字段
技能后处理协议:标准请求
技能后处理协议:请求校验
技能后处理协议:Request_v2.1协议
技能后处理协议:Response_v2.1协议
技能资源限制
6. 硬件模组
RK3328 降噪板
RK3328降噪板白皮书
RK3328降噪板使用手册
RK3328降噪板规格书
RK3328降噪板协议手册
RK3328 AIUI评估板开发套件
RK3328评估板白皮书
RK3328评估板使用手册
RK3328评估板规格书
RK3328评估板开发手册
RK3588 AIUI多模态开发套件
RK3588一体机多模态产品规格书
RK3588多模态套件使用手册
视频传输协议
识别语义传输协议
音频传输协议
ZG803 离线语音识别套件
ZG803 产品白皮书
USB声卡套件
USB声卡产品白皮书
USB声卡使用指南
AC7911B AIUI语音开发套件
AC7911B-产品白皮书
AC7911B-快速体验指南
AIUI评估板接入
集成方式
软件包说明
AIUIServiceKitSDK
串口SDK
评估板参数配置
调试升级
7. 常见问题处理
7.1 AIUI常见问题
7.2 评估板常见问题
7.3 动态实体常见问题
8. 联系方式
9. 服务条款
AIUI开放平台服务协议
AIUI开放平台隐私政策
小飞在家用户协议
小飞在家隐私政策
小飞在家开源软件使用许可
讯飞账号隐私政策
讯飞账号用户协议
讯飞带屏音箱用户协议
讯飞带屏音箱隐私政策
AIUI SDK隐私政策
AIUI SDK合规使用说明
本文档使用 MrDoc 发布
-
+
首页
填槽对话
**目录** 1. 多轮对话 1.1. 意图内多轮对话(填槽对话) 1.2. 意图间多轮对话 2. 填槽对话概念 3. 图示 4. 示例 5. 系统配置与云函数的相互配合 6. 注意事项 ## 1. 多轮对话 多轮对话分为**意图内多轮对话**、**意图间多轮对话**。 ### 1.1. 意图内多轮对话(填槽对话) 填槽对话:信息不完整,引导用户补充 示例 - 用户:我要订闹钟 - 系统:您要订几点的闹钟 (填槽对话:追问语句) - 用户:明早六点 ### 1.2. 意图间多轮对话 示例 - 用户:订1间房 - 系统:预约成功,请问还需要一份早餐吗? - 用户:来3份 - 系统:预定成功 上述示例包含「定房间」和「定早餐」2个意图。意图间的多轮对话,需要开发者自己实现,具体参考技能云函数。 ## 2. 填槽对话概念 1. 槽值和追问语句 例如订闹钟技能,槽值是时间(time),是必须信息。 缺少必须信息会触发追问:**您要订几点的闹钟** 2. 槽位确认 槽位可设置为需用户确认。请谨慎使用,避免繁琐。示例: - 用户:订2间房 - 系统:是2间房吗? (槽位确认) 3. 意图确认 意图可设置为需用户确认,例如在购物技能中,当用户选购完商品后,你可以要求对意图进行确认,“你购买了一副墨镜,确认下单吗?”。 ## 3. 图示 填槽对话流程图: - 如果使用 Delegate(托管)或者关闭云函数,系统会依次遍历每一个环节(每次请求都是从第一个环节开始遍历)。当系统发现该环节被开发者在平台上标记为**必选**或者**开启**,且该环节的值为 **null** 或者 **none**,就会触发该环节,否则会跳过该环节直至流程结束。 - 如果开发者调用了ElicitSlotDirective(槽追问)、ConfirmSlotDirective(槽位确认)、ConfirmIntentDirective(意图确认),则以开发者指定的环节为准。  ## 4. 示例 以"订票"技能举例,飞机票(buyPlaneTicket)意图的语义槽分别是fromCity(出发城市)、toCity(到达城市)、time(出发时间),其中 fromCity 通过 GPS 信息获取,toCity和time为用户必须回答的槽位。 示例对话: 槽追问 - 用户:买一张周三的飞机票 - 系统:你想到哪个城市? ```json { "name": "buyPlaneTicket", "confirmationStatus": "NONE" "slots": [ { "name": "fromCity", "value": "",//开发者通过获取 GPS 信息,通过代码填写为合肥 "confirmationStatus": "NONE" }, { "name": "toCity", "value": "", "confirmationStatus": "NONE" }, { "name": "time", "value": "周三",★★★ "confirmationStatus": "NONE" } ], } ``` 槽确认 - 用户:我想去北京 - 系统:你确认目的地是北京吗 ( 槽位确认 ) ```json { "name": "buyPlaneTicket", "slots": [ { "name": "fromCity", "value": "合肥", "confirmationStatus": "NONE" }, { "name": "toCity", "value": "北京",★★★ "confirmationStatus": "NONE" }, { "name": "time", "value": "周三", "confirmationStatus": "NONE" } ], "confirmationStatus": "NONE" } ``` 意图确认 - 用户:确认 - 系统:好的,周三从合肥去北京的机票确认下单吗 ( 意图确认 ) ```json { "name": "buyPlaneTicket", "slots": [ { "name": "fromCity", "value": "合肥", "confirmationStatus": "NONE" }, { "name": "toCity", "value": "北京", "confirmationStatus": "CONFIRMED" }, { "name": "time", "value": "周三", "confirmationStatus": "NONE" } ], "confirmationStatus": "NONE" } ``` 填槽对话结束 - 用户:确认下单 - 系统:好的,已下单 (填槽对话结束) ```json { "name": "buyPlaneTicket", "slots": [ { "name": "fromCity", "value": "", "confirmationStatus": "NONE" }, { "name": "toCity", "value": "北京", "confirmationStatus": "CONFIRMED" }, { "name": "time", "value": "周三", "confirmationStatus": "NONE" } ], "confirmationStatus": "CONFIRMED" } ``` ## 5. 系统配置与云函数的相互配合 假如我们现在拥有一个快递查询 API,99%的快递单号,可以自动判断快递公司,1%的快递单号需人工选择。以查快递技能举例,我们应当把 express_number 和 express_company 勾选为必选槽(如下图)  实际使用中云函数中的**伪代码**如下: ```javascript if(express_number.value==null){ if(express_company.value==null){ //如果用户没有标明快递公司,则使用自动识别 express_company.value="自动识别" } //如果快递单号为空,因为在平台上配置了必选槽,可以直接托管给系统 //此时使用ElicitSlotDirective效果相同 DelegateDirective() return } // 调用 API 获取快递信息 express_result = express_api(express_number.value) if(express_result=='无法自动判断快递公司'){ // 如果无法自动判断快递公司,使用ElicitSlot追问用户 ElicitSlotDirective(express_company,'请问你的快递公司是什么') }else{ // 可以自动判断快递公司,直接播报查询结果给用户 speak(express_result) } ``` ## 6. 注意事项 填槽对话只是准确理解需求的一个技术手段,但不鼓励设计过多的多轮对话。 反例 - 用户:清华大学的录取分数线是多少 - 系统:请问你想查询的省份是哪一个? - 用户:安徽 - 系统:请问你是文科还是理科? - 用户:理科 - 系统:请问你想查询哪一年的分数? - 用户:2017年 - 系统:请问你想查询的是提前批还是本科一批? - 用户:本科一批 - 系统:2017年清华大学在安徽的本科一批理科投档线是670分 正例 - 用户:清华大学的录取分数线是多少 - 系统:清华大学2017年在安徽的本科一批投档线是理科670分、文科648分。你还可以问我往年和提前批的分数线。 开发者可以通过GPS 获取设备位置,默认返回最近一年的分数,多数情况下用户想要知道的是本科一批的信息,文科理科分数线可以同时返回,在返回了关键信息后,提醒用户可以通过进一步的对话,获取更多信息。 <IflyHeader />
admin
2024年9月13日 16:49
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码