调用 UploadData 上传文本质检数据。服务地址(Region)请选择为杭州(cn-hangzhou)。
调用 UploadData.json 上传文本质检数据,文本通常来源于在线客服、工单等,接口会返回taskId,您可以通过2种方式获取结果:
• 回调:通过在请求参数中指定callbackUrl,在任务完成后由系统主动发起回调;接到回调后再通过 GetResult 接口获取详细结果
• 轮询:通过此接口返回的任务ID轮询 GetResult 接口异步获取结果,判断返回中的status是否完成
调试
您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。
请求参数
名称 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
Action | String | 是 | UploadData |
系统规定参数。取值:UploadData。 |
JsonStr | String | 是 | xxx |
jsonStr是一个JSON字符串,里面是该接口所有的自定义参数,具体内容参见下方的 jsonStr属性说明。 |
jsonStr属性说明:
属性 |
值类型 |
是否必须 |
说明 |
---|---|---|---|
tickets |
List |
是 |
待检文本数据信息,每个元素是一个完整对话,详见下方 jsonStr.tickets 属性说明。 |
optional |
Integer |
否 |
文本数据来源,可选值:0(在线客服数据);1(热线客服数据),默认 0,该参数用来标识对话文本的来源,在线客服数据指的是通过在线服务平台产生的(例如支付宝在线客服对话),对话内容均为客服与客户手动输入的文本。热线客服数据指的是通过录音文件进行录音转文本产生的文本数据。强烈建议您根据实际情况传入该参数,可以在一定程度上提升规则命中的准确率。 |
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系统时的场景,来指定该通通话的呼叫类型。 |
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字符。 |
dialogue 属性说明:
属性 |
值类型 |
是否必须 |
说明 |
|
---|---|---|---|---|
role |
String |
是 |
对话内容角色,取值:客服、客户。 |
|
identity |
String |
否 |
对话角色的具体身份标识。 |
|
words |
String |
是 |
这个角色说的一句话,仅支持UTF-8编码,例如Emoji表情并不是UTF-8编码,文本内容中请勿包含Emoji表情。 |
|
begin |
Integer |
是 |
本句话的开始时间,是相对起始点的开始时间偏移,单位ms。 |
|
end |
Integer |
是 |
本句话的结束时间,是相对起始点的结束时间偏移,单位ms。 |
|
beginTime |
Date |
是 |
这句话的开始时间,示例值:2019-11-25 15:37:16。 |
, |
回调参数说明
假设调用方传入的回调地址是: 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,使用主账号登录访问 https://account.console.aliyun.com 会看到账号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);
}
上传图片数据说明
文本质检的对话文本,通常来源于在线客服系统,对于在线客服系统中的图片、截图,如果希望在智能对话分析系统中显示出来,您可以将图片地址链接当做一句话进行上传(存放在请求入参的 tickets=>dialogue=>words 中,详见下方请求示例),这样在进行质检结果复核时,我们会将图片加载进行显示。包含图片的请求示例:
{
"tickets":[
{
"skillGroupId":"66666666",
"skillGroupName":"售后客服",
"customerServiceId":88888888,
"customerServiceName":"张三",
"dialogue":[
{
"beginTime":"2019-11-25 15:37:01",
"role":"客服",
"words":"请提供下相关截图信息。",
"end":2580,
"begin":1800
},
{
"beginTime":"2019-11-25 15:37:06",
"role":"客户",
"words":"https://img.alicdn.com/tfs/TB12ipjl3gP7K4jSZFqXXamhVXa-559-279.png", // 这里传入图片链接
"end":8540,
"begin":6770
}
],
"tid":"4ef4f8a9-4910-4d46-a348-eabfb8e8051f"
}
],
"business":"售前业务"
}
需要注意的是,若要显示图片,那么请求入参的words中只能包含一个正常的图片链接地址,并且开放对应的访问图片访问权限,不可包含其他文字,否则会导致图片无法正常显示。
复核页面展示效果:

返回数据
名称 | 类型 | 示例值 | 描述 |
---|---|---|---|
Code | String | 200 |
结果代码,200表示成功,若为别的值则表示失败,调用方可根据此字段判断失败原因。 |
Data | String | 6F5934C7-C223-4F0F-BBF3-5B3594*** |
该任务的taskId。 |
Message | String | successful |
出错时表示出错详情,成功时为successful。 |
RequestId | String | 6F5934C7-C223-4F0F-BBF3-5B3594**** |
请求id,提工单时可提供此字段值用于排查问题。 |
Success | Boolean | true |
请求是否成功,调用方可根据此字段来判断请求是否成功:true表示成功;false/null表示失败。 |
示例
请求示例
http(s)://qualitycheck.cn-hangzhou.aliyuncs.com/?Action=UploadData
&JsonStr={“tickets”:“xxxxx”}
&<公共请求参数>
```
完整请求入参jsonStr示例:
```
{
"tickets":[
{
"skillGroupId":"66666666",
"skillGroupName":"售后客服",
"customerServiceId":88888888,
"customerServiceName":"张三",
"dialogue":[
{
"beginTime":"2019-11-25 15:37:01",
"role":"客户",
"identity":"某客户",
"emotionValue":6,
"speechRate":153,
"words":"你好。",
"end":2580,
"begin":1800,
"channelId":1
},
{
"beginTime":"2019-11-25 15:37:06",
"role":"客服",
"identity":"某客服",
"emotionValue":6,
"speechRate":305,
"words":"请问有什么可以帮您。",
"end":8540,
"begin":6770,
"channelId":0
}
],
"tid":"4ef4f8a9-4910-4d46-a348-eabfb8e8051f"
}
],
"ruleIds":[
888,
666
],
"business":"个险业务"
}
正常返回示例
XML
格式
<UploadDataResponse>
<Data>6F5934C7-C223-4F0F-BBF3-5B3***</Data>
<Message>successful</Message>
<RequestId>6F5934C7-C223-4F0F-BBF3-5B359**</RequestId>
<Success>true</Success>
<Code>200</Code>
</UploadDataResponse>
JSON
格式
{
"Data": "6F5934C7-C223-4F0F-BBF3-5B3***",
"Message": "successful",
"RequestId": "6F5934C7-C223-4F0F-BBF3-5B359**",
"Success": true,
"Code": 200
}
错误码
访问错误中心查看更多错误码。