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. 实现多轮对话。 2. 获取语义结果后,直接与万维网通信,缩短链路时间。 3. 开发者无需拥有服务器。 每次请求都会触发技能后处理,开发者拿到语义结果(request:JSON),处理后返回(response:JSON),引擎解析 response 来决定最终下发到客户端的数据。 ## 调用方式 技能后处理支持**云函数**和**webhook** ### 云函数 云函数可以在线编辑,调用信源,处理业务逻辑,填写技能的回复 answer,通过 HTTP 请求通信。 <div style="display: flex; align-items: flex-start; gap: 16px; padding: 16px; background: #fff5f6; border-radius: 5px; border-left: 4px solid #e83e8c; box-shadow: 0 4px 12px rgba(255, 215, 0, 0.08); margin-bottom: 16px; transition: transform 0.2s ease, box-shadow 0.2s ease;"> <div> <div style="font-weight: 600; margin-bottom: 4px;">温馨提示</div> <div style="font-size: 14px; line-height: 1.5;">1、AIUI平台自定义技能已全量升级切换到 v2.1协议,云函数技能后处理开发请查看【<a href="https://aiui-doc.xf-yun.com/project-1/doc-64/">云函数APIv2.1</a> 】文档说明</div> <div style="font-size: 14px; line-height: 1.5;">2、技能后处理托管业务整体处理耗时不能超1000ms,超时后技能将退出。</div> </div> </div> 云函数的是 FaaS (Function as a Service)服务,运行在讯飞服务器。  #### 运行环境 云端NodeJS 环境为v9.10.1。除 nodejs 携带的标准模块(http crypto https url dgram net stream string_decoder timers buffer)外,还提供以下第三方模块: ``` promise asap async bson caseless concat-stream data-format double-ended-queue fibers http-basic http-response-object inherits ioredis isarray json5 minimist ms node-zookeeper-client qs readable-stream resolve-from safe-buffer semver streamroller string_decoder request-promise then-request typedarray util-deprecate ``` 云函数有全局变量 AIUI,用于打印日志的 console。点击查看更多云函数接口:[v2.0](https://aiui-doc.xf-yun.com/project-1/doc-63/),[v2.1](https://aiui-doc.xf-yun.com/project-1/doc-64/) #### 示例 云函数通过 `dialogState`判断填槽对话是否完成,未完成时,开发者不做操作。完成填槽对话后, 回复`answer`到客户端 。 示例代码: ``` JS AIUI.create("v2.1", function(aiui, err){ //打印 request 结构体 requestObject = aiui.getRequest().getObject(); console.log(requestObject); //获取 response 对象 var response = aiui.getResponse(); // 获取填槽对话状态 dialogState= requestObject.request.dialogState; if(dialogState!=null&&dialogState!="COMPLETED"){ // 填槽对话未完成时,托管给系统管理 response.addDelegateDirective(); }else{ // 填槽对话完成时,回复用户一句 answer updatedIntent = aiui.getUpdatedIntent(); companyValue = updatedIntent.getSlotValue("company"); numberValue = updatedIntent.getSlotValue("number"); answer="你的"+companyValue+"快递,快递单号是是:"+numberValue+",已经达到合肥市" response.setOutputSpeech(answer); } // 提交 aiui.commit(); }) ```  如果您不会编写代码,但是想为您的技能增加回复,只需要把以下代码复制进入代码编辑框,修改第12行之后,保存并构建即可。 ``` JS AIUI.create("v2.1", function(aiui, err){ requestObject = aiui.getRequest().getObject(); var response = aiui.getResponse(); // 获取当前意图名 intentName = requestObject.request.intents[0].name; console.log("本次意图来自:"+intentName); // 获取填槽对话状态 dialogState= requestObject.request.dialogState; if(dialogState!=null&&dialogState!="COMPLETED"){ response.addDelegateDirective(); }else{ response.setOutputSpeech("这里修改成您想要的回复"); } aiui.commit(); }) ``` 如果您想根据 intent 回复不同的 answer,可以使用以下代码。 ``` JS AIUI.create("v2.1", function(aiui, err){ requestObject = aiui.getRequest().getObject(); var response = aiui.getResponse(); // 获取当前意图名 intentName = requestObject.request.intents[0].name; console.log("本次意图来自:"+intentName); // 获取填槽对话状态 dialogState= requestObject.request.dialogState; if(dialogState!=null&&dialogState!="COMPLETED"){ response.addDelegateDirective(); }else if(intentName==="这里填写intent A 的名称"){ response.setOutputSpeech("这里是是 intent A的回复"); }else if(intentName==="这里填写intent B 的名称"){ response.setOutputSpeech("这里是是 intent B的回复"); }else if(intentName==="这里填写intent C 的名称"){ response.setOutputSpeech("这里是是 intent C的回复"); }else{ response.setOutputSpeech("这里是一个默认回复"); }; aiui.commit(); }) ``` #### 安全 云端进行了资源隔离以及监测,危险代码并不会影响服务器运行,但系统检测到代码异常时,将下线该技能。 NodeJS 标准不建议的代码请勿编写,如:阻止事件循环。NodeJS 为单线程环境运行,如果存在死循环,技能将不能接收用户消息,技能会被下线。默认每次请求交互1000毫秒超时,开发者技能应该在该超时时间内调用 api 的 response 接口,否则云端返回超时错误,此类情况可能出现在: * 上述事件循环阻塞。 * 开发者在异步操作(如 http 调用)回调中调用返回接口,该异步操作可能返回时间较长,此类情况应该对该异步操作设置超时,不要让云端触发超时。 ### Webhook Webhook的本质是一个web调用,若通过公网部署,技能耗时会增加。  使用Webhook流程 * 在平台填写技能部署地址(URL地址) * 技能需要验证发送的请求,验证步骤请参考[技能请求校验](https://aiui-doc.xf-yun.com/project-1/doc-72/)。 <div style="display: flex; align-items: center; background-color: #fff3cd; border-left: 6px solid #ffc107; border-radius: 4px; padding: 12px 16px; gap: 8px;"> <div style="width: 30px; height: 30px; flex-shrink: 0;"> <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"/> </svg> </div> <div style="flex: 1; line-height: 1.6;"> <h3 style="margin: 0 0 6px 0; font-weight: 600;">注意:</h3> <p style="margin: 0; font-size: 0.95rem;">Webhook只支持<a href="https://aiui-doc.xf-yun.com/project-1/doc-64/" target="_blank">v2.1协议</a>。</p> </div> </div> <IflyHeader />
admin
2025年9月16日 10:56
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码