目前该API接口已标记为弃用,推荐使用替代API:Qualitycheck(2019-01-15) - UploadDataV4。
上传离线文本质检数据(纯文本会话):适用于在线坐席场景。 推荐使用UploadDataV4接口。 UploadDataV4与UploadData的差异:1、V4仅支持POST请求。2、V4支持更长的JsonStr。
接口说明
调用 UploadData.json 上传文本质检数据,文本通常来源于在线客服、工单等,接口会返回 taskId,您可以通过 3 种方式获取结果:
- 消息通知:详情请查看消息队列,收到消息后再通过 GetResult 接口获取详细结果。(推荐)
- 回调:通过在请求参数中指定 callbackUrl,在任务完成后由系统主动发起回调;接到回调后再通过 GetResult 接口获取详细结果。
- 轮询:通过此接口返回的任务 ID 轮询 GetResult 接口异步获取结果,判断返回中的 status 是否完成。(不推荐)。
调试
您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。
授权信息
当前API暂无授权信息透出。
请求参数
名称 | 类型 | 必填 | 描述 | 示例值 |
---|---|---|---|---|
JsonStr | string | 是 | jsonStr 是一个 JSON 字符串,里面是该接口所有的自定义参数,具体内容参见下方的 jsonStr 属性说明。 | xxx |
BaseMeAgentId | long | 否 | 业务空间 Id,用于区分多业务空间场景下选择指定业务空间,默认为默认业务空间。 | 123456 |
jsonStr 属性说明:
属性 | 值类型 | 是否必须 | 说明 |
---|---|---|---|
isSchemeData | Integer | 否 | 是否将数据上传至新版智能对话分析,取值:0(否);1(是),默认值为 0。 |
tickets | List | 是 | 待检文本数据信息,每个元素是一个完整对话,详见下方jsonStr.tickets 属性说明。 |
ruleIds | List | 否 | 规则 ID 列表,用于指定录音文件使用哪些规则进行质检分析,若不指定,则会过所有规则;注意:单个文件允许最大规则数为 100,如果超过 100,则会截取前 100 个规则。(只能使用离线质检规则,不可使用实时质检规则) (新版不适用,仅旧版智能对话分析适用) |
business | String | 否 | 业务线名称,用于分类统计,此请求中的数据应该都属于一个业务线。 |
callbackUrl | String | 否 | 回调地址,不指定则不回调,请保证回调地址与 SCA 应用的连通性,不支持 IP;质检分析完成后会发起回调;详细说明请查看下方的回调参数说明 |
jsonStr.tickets 属性说明:
属性 | 值类型 | 是否必须 | 说明 |
---|---|---|---|
dialogue | List | 是 | 待检文本对话,详见下方dialogue 属性说明。 |
tid | String | 否 | 本段对话 ID,注意不要重复;若不提供,则会随机生成一个 UUID。 |
fileName | String | 否 | 文本名称。 |
customerServiceId | Long | 否 | 客服 ID。可从控制台-基础设置-人员管理页面获取,正确填入客服 ID,客服登录控制塔时可以查看与自己关联的文件。 |
customerServiceName | String | 否 | 客服姓名。 |
skillGroupId | String | 否 | 坐席所在技能组 ID。 |
skillGroupName | String | 否 | 坐席所在技能组名称。 |
callType | Integer | 否 | 呼叫类型,可选值:1(呼出);3(呼入)。适用于您本地已经安装有录音转文本服务,直接将文本上传到 SCA 系统时的场景,来指定该通话的呼叫类型。 |
sessionGroupId | String | 否 | 会话组 ID,通常把同一个客服和同一个客户的会话称之为一个会话组,当传入会话组 ID 后,可在会话组结果页查看会话组维度的质检结果。(仅新版智能对话分析适用) |
customerId | String | 否 | 客户 ID。(仅新版智能对话分析适用) |
customerName | String | 否 | 客户姓名。(仅新版智能对话分析适用) |
schemeTaskConfigId | String | 否 | 手动指定的质检任务 ID(手动指定后则会使用指定的质检任务进行质检) 。(仅新版智能对话分析适用) |
remark1 | String | 否 | 自定义数据 1,可以存放与您业务相关的自定义字段,最大长度为 64 字符。 |
remark2 | String | 否 | 自定义数据 2,可以存放与您业务相关的自定义字段,最大长度为 64 字符。 |
remark3 | String | 否 | 自定义数据 3,可以存放与您业务相关的自定义字段,最大长度为 64 字符。 |
remark4 | String | 否 | 自定义数据 4,可以存放与您业务相关的自定义字段,最大长度为 64 字符。 |
remark5 | Long | 否 | 自定义数据 5,可以存放与您业务相关的自定义字段,格式为有符号的 long 型。 |
remark6 | String | 否 | 自定义数据 6,可以存放与您业务相关的自定义字段,最大长度为 1024 字符。 |
remark7 | String | 否 | 自定义数据 7,可以存放与您业务相关的自定义字段,最大长度为 64 字符。 |
remark8 | String | 否 | 自定义数据 8,可以存放与您业务相关的自定义字段,最大长度为 64 字符。 |
remark9 | String | 否 | 自定义数据 9,可以存放与您业务相关的自定义字段,最大长度为 64 字符。 |
remark10 | String | 否 | 自定义数据 10,可以存放与您业务相关的自定义字段,最大长度为 64 字符。 |
remark11 | String | 否 | 自定义数据 11,可以存放与您业务相关的自定义字段,最大长度为 64 字符。 |
remark12 | String | 否 | 自定义数据 12,可以存放与您业务相关的自定义字段,最大长度为 64 字符。 |
remark13 | String | 否 | 自定义数据 13,可以存放与您业务相关的自定义字段,最大长度为 64 字符。 |
remark14 | Long | 否 | 自定义数据 14,可以存放与您业务相关的自定义字段,格式为有符号的 long 型。 |
remark15 | Long | 否 | 自定义数据 15,可以存放与您业务相关的自定义字段,格式为有符号的 long 型。 |
remark16 | String | 否 | 自定义数据 16,可以存放与您业务相关的自定义字段,最大长度为 64 字符。 |
remark17 | String | 否 | 自定义数据 17,可以存放与您业务相关的自定义字段,最大长度为 64 字符。 |
remark18 | String | 否 | 自定义数据 18,可以存放与您业务相关的自定义字段,最大长度为 64 字符。 |
remark19 | String | 否 | 自定义数据 19,可以存放与您业务相关的自定义字段,最大长度为 64 字符。 |
remark20 | String | 否 | 自定义数据 20,可以存放与您业务相关的自定义字段,最大长度为 64 字符。 |
remark21 | String | 否 | 自定义数据 21,可以存放与您业务相关的自定义字段,最大长度为 64 字符。 |
remark22 | String | 否 | 自定义数据 22,可以存放与您业务相关的自定义字段,最大长度为 64 字符。 |
remark23 | String | 否 | 自定义数据 23,可以存放与您业务相关的自定义字段,最大长度为 64 字符。 |
remark24 | String | 否 | 自定义数据 24,可以存放与您业务相关的自定义字段,最大长度为 64 字符。 |
remark25 | String | 否 | 自定义数据 25,可以存放与您业务相关的自定义字段,最大长度为 64 字符。 |
jsonParamStr | String | 否 | 更多自定义字段,格式为 JSON 字符串,key 为字段名称,value 为字段内容,示例:{"客户等级": 3,"渠道":"官网"}。 |
dialogue 属性说明:
属性 | 值类型 | 是否必须 | 说明 |
---|---|---|---|
role | String | 是 | 对话内容角色,取值:客服、客户。 |
customerServiceType | Integer | 否 | 区分角色是人工还是机器人,取值:0(人工),1(机器人),默认值:0。该字段作用:若为机器人,则在复核页面展示的头像为机器人头像。 |
identity | String | 否 | 对话角色的具体身份标识。 |
words | String | 是 | 这个角色说的一句话,仅支持 UTF-8 编码,若句子包含表情包,请查看下方表情包显示说明 |
type | String | 否 | 当前句子类型,取值:TEXT(文本);AUDIO(语音);IMAGE(图片),图片可在复核详情页显示,音频可在复核详情页中播放,默认为 TEXT,当为 AUDIO 或 IMAGE 时,words 字段中传入对应资源的 URL 地址即可。(仅新版智能对话分析适用) |
begin | Integer | 是 | 本句话的开始时间,是相对起始点的开始时间偏移,单位 ms。 |
end | Integer | 是 | 本句话的结束时间,是相对起始点的结束时间偏移,单位 ms。 |
beginTime | Date | 是 | 这句话的开始时间,示例值:2019-11-25 15:37:16。 |
表情包显示说明
在复核详情页查看对话详情时,仅支持通用 Emoji 表情包的展示,上传时,需将表情替换为 UTF8 字符集的字符,例如😀;笑脸表情对应的字符为😀
,以&#开头,分号结尾,相关文档说明: Emoji 字符对照表, HTML 页面展示字符说明
回调参数说明
假设调用方传入的回调地址是:http://aliyun.com/callback
,那么回调时的完整 URL 为http://aliyun.com/callback?taskId=xxx×tamp=xxx&signature=xxx&event=xxx
,其中:
- taskId:为任务 id
- timestamp:为调用时的时间戳,单位:毫秒
- aliUid:为调用方阿里云主账号 uid
- signature:为签名,调用方可用来判断请求是否来自阿里云;计算说明:将
taskId=xxx×tamp=xxx&aliUid=xxx
,进行 md5+base64 加密,注意顺序;调用方接到回调后,taskId 和 timestamp 可以从回调 URL 中获取,aliUid 即为阿里云主账号 ID。通过计算来比对自己计算出的 signature,与 URL 中的 signature 是否一致,详见下方 Java 代码示例。 - event:为事件名称,调用方可用来判断是什么事件触发的回调,取值为 TaskComplete:任务完成时的回调;
public static void signature() {
long timestamp = System.currentTimeMillis();
String taskId = "xxxx";
String aliUid = "xxxxx";
// 将 taskId=xxx×tamp=xxx&aliUid=xxx 进行 md5 + base64 加密,放在 signature 字段
String signature;
try {
signature = URLEncoder.encode(md5Base64("taskId=" + taskId + "×tamp=" + timestamp + "&aliUid=" + aliUid), "utf-8");
System.out.println(signature);
} catch (Exception e) {
e.printStackTrace();
}
}
public static String md5Base64(String str) throws NoSuchAlgorithmException {
//string 编码必须为 utf-8
byte[] utfBytes = str.getBytes(StandardCharsets.UTF_8);
MessageDigest mdTemp = MessageDigest.getInstance("MD5");
mdTemp.update(utfBytes);
byte[] md5Bytes = mdTemp.digest();
return Base64.encodeBase64String(md5Bytes);
}
返回参数
示例
正常返回示例
JSON
格式
{
"Code": "200",
"Message": "successful",
"Data": "6F5934C7-C223-4F0F-BBF3-5B3594***",
"RequestId": "6F5934C7-C223-4F0F-BBF3-5B3594****",
"Success": true
}
错误码
访问错误中心查看更多错误码。
变更历史
变更时间 | 变更内容概要 | 操作 | ||
---|---|---|---|---|
2023-08-01 | API 内部配置变更,不影响调用 | 看变更集 | ||
| ||||
2023-08-01 | API 内部配置变更,不影响调用 | 看变更集 | ||
| ||||
2023-08-01 | API 内部配置变更,不影响调用 | 看变更集 | ||
| ||||
2023-08-01 | API 内部配置变更,不影响调用 | 看变更集 | ||
| ||||
2023-08-01 | API 内部配置变更,不影响调用 | 看变更集 | ||
| ||||
2023-08-01 | API 内部配置变更,不影响调用 | 看变更集 | ||
| ||||
2023-08-01 | API 内部配置变更,不影响调用 | 看变更集 | ||
| ||||
2023-08-01 | API 内部配置变更,不影响调用 | 看变更集 | ||
| ||||
2023-08-01 | API 内部配置变更,不影响调用 | 看变更集 | ||
| ||||
2023-08-01 | API 内部配置变更,不影响调用 | 看变更集 | ||
| ||||
2023-08-01 | API 内部配置变更,不影响调用 | 看变更集 | ||
| ||||
2023-08-01 | API 内部配置变更,不影响调用 | 看变更集 | ||
| ||||
2023-08-01 | API 内部配置变更,不影响调用 | 看变更集 | ||
| ||||
2023-08-01 | API 内部配置变更,不影响调用 | 看变更集 | ||
| ||||
2023-08-01 | API 内部配置变更,不影响调用 | 看变更集 | ||
| ||||
2023-08-01 | API 内部配置变更,不影响调用 | 看变更集 | ||
| ||||
2023-08-01 | API 内部配置变更,不影响调用 | 看变更集 | ||
| ||||
2023-08-01 | API 内部配置变更,不影响调用 | 看变更集 | ||
| ||||
2023-08-01 | API 内部配置变更,不影响调用 | 看变更集 | ||
| ||||
2023-08-01 | API 内部配置变更,不影响调用 | 看变更集 | ||
|