UploadData - 上传文本质检

目前该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对应的授权信息,可以在RAM权限策略语句的Action元素中使用,用来给RAM用户或RAM角色授予调用此API的权限。具体说明如下:

  • 操作:是指具体的权限点。
  • 访问级别:是指每个操作的访问级别,取值为写入(Write)、读取(Read)或列出(List)。
  • 资源类型:是指操作中支持授权的资源类型。具体说明如下:
    • 对于必选的资源类型,用背景高亮的方式表示。
    • 对于不支持资源级授权的操作,用全部资源表示。
  • 条件关键字:是指云产品自身定义的条件关键字。
  • 关联操作:是指成功执行操作所需要的其他权限。操作者必须同时具备关联操作的权限,操作才能成功。
操作访问级别资源类型条件关键字关联操作
sca:UploadDatacreate
*全部资源
*

请求参数

名称类型必填描述示例值
JsonStrstring

jsonStr 是一个 JSON 字符串,里面是该接口所有的自定义参数,具体内容参见下方的 jsonStr 属性说明。

xxx
BaseMeAgentIdlong

业务空间 Id,用于区分多业务空间场景下选择指定业务空间,默认为默认业务空间。

123456

jsonStr 属性说明:

属性值类型是否必须说明
isSchemeDataInteger是否将数据上传至新版智能对话分析,取值:0(否);1(是),默认值为 0。
ticketsList待检文本数据信息,每个元素是一个完整对话,详见下方jsonStr.tickets 属性说明。
ruleIdsList规则 ID 列表,用于指定录音文件使用哪些规则进行质检分析,若不指定,则会过所有规则;注意:单个文件允许最大规则数为 100,如果超过 100,则会截取前 100 个规则。(只能使用离线质检规则,不可使用实时质检规则) (新版不适用,仅旧版智能对话分析适用)
businessString业务线名称,用于分类统计,此请求中的数据应该都属于一个业务线。
callbackUrlString回调地址,不指定则不回调,请保证回调地址与 SCA 应用的连通性,不支持 IP;质检分析完成后会发起回调;详细说明请查看下方的回调参数说明

jsonStr.tickets 属性说明:

属性值类型是否必须说明
dialogueList待检文本对话,详见下方dialogue 属性说明。
tidString本段对话 ID,注意不要重复;若不提供,则会随机生成一个 UUID。
fileNameString文本名称。
customerServiceIdLong客服 ID。可从控制台-基础设置-人员管理页面获取,正确填入客服 ID,客服登录控制塔时可以查看与自己关联的文件。
customerServiceNameString客服姓名。
skillGroupIdString坐席所在技能组 ID。
skillGroupNameString坐席所在技能组名称。
callTypeInteger呼叫类型,可选值:1(呼出);3(呼入)。适用于您本地已经安装有录音转文本服务,直接将文本上传到 SCA 系统时的场景,来指定该通话的呼叫类型。
sessionGroupIdString会话组 ID,通常把同一个客服和同一个客户的会话称之为一个会话组,当传入会话组 ID 后,可在会话组结果页查看会话组维度的质检结果。(仅新版智能对话分析适用)
customerIdString客户 ID。(仅新版智能对话分析适用)
customerNameString客户姓名。(仅新版智能对话分析适用)
schemeTaskConfigIdString手动指定的质检任务 ID(手动指定后则会使用指定的质检任务进行质检) 。(仅新版智能对话分析适用)
remark1String自定义数据 1,可以存放与您业务相关的自定义字段,最大长度为 64 字符。
remark2String自定义数据 2,可以存放与您业务相关的自定义字段,最大长度为 64 字符。
remark3String自定义数据 3,可以存放与您业务相关的自定义字段,最大长度为 64 字符。
remark4String自定义数据 4,可以存放与您业务相关的自定义字段,最大长度为 64 字符。
remark5Long自定义数据 5,可以存放与您业务相关的自定义字段,格式为有符号的 long 型。
remark6String自定义数据 6,可以存放与您业务相关的自定义字段,最大长度为 1024 字符。
remark7String自定义数据 7,可以存放与您业务相关的自定义字段,最大长度为 64 字符。
remark8String自定义数据 8,可以存放与您业务相关的自定义字段,最大长度为 64 字符。
remark9String自定义数据 9,可以存放与您业务相关的自定义字段,最大长度为 64 字符。
remark10String自定义数据 10,可以存放与您业务相关的自定义字段,最大长度为 64 字符。
remark11String自定义数据 11,可以存放与您业务相关的自定义字段,最大长度为 64 字符。
remark12String自定义数据 12,可以存放与您业务相关的自定义字段,最大长度为 64 字符。
remark13String自定义数据 13,可以存放与您业务相关的自定义字段,最大长度为 64 字符。
remark14Long自定义数据 14,可以存放与您业务相关的自定义字段,格式为有符号的 long 型。
remark15Long自定义数据 15,可以存放与您业务相关的自定义字段,格式为有符号的 long 型。
remark16String自定义数据 16,可以存放与您业务相关的自定义字段,最大长度为 64 字符。
remark17String自定义数据 17,可以存放与您业务相关的自定义字段,最大长度为 64 字符。
remark18String自定义数据 18,可以存放与您业务相关的自定义字段,最大长度为 64 字符。
remark19String自定义数据 19,可以存放与您业务相关的自定义字段,最大长度为 64 字符。
remark20String自定义数据 20,可以存放与您业务相关的自定义字段,最大长度为 64 字符。
remark21String自定义数据 21,可以存放与您业务相关的自定义字段,最大长度为 64 字符。
remark22String自定义数据 22,可以存放与您业务相关的自定义字段,最大长度为 64 字符。
remark23String自定义数据 23,可以存放与您业务相关的自定义字段,最大长度为 64 字符。
remark24String自定义数据 24,可以存放与您业务相关的自定义字段,最大长度为 64 字符。
remark25String自定义数据 25,可以存放与您业务相关的自定义字段,最大长度为 64 字符。
jsonParamStrString更多自定义字段,格式为 JSON 字符串,key 为字段名称,value 为字段内容,示例:{"客户等级": 3,"渠道":"官网"}。

dialogue 属性说明:

属性值类型是否必须说明
roleString对话内容角色,取值:客服、客户。
customerServiceTypeInteger区分角色是人工还是机器人,取值:0(人工),1(机器人),默认值:0。该字段作用:若为机器人,则在复核页面展示的头像为机器人头像。
identityString对话角色的具体身份标识。
wordsString这个角色说的一句话,仅支持 UTF-8 编码,若句子包含表情包,请查看下方表情包显示说明
typeString当前句子类型,取值:TEXT(文本);AUDIO(语音);IMAGE(图片),图片可在复核详情页显示,音频可在复核详情页中播放,默认为 TEXT,当为 AUDIO 或 IMAGE 时,words 字段中传入对应资源的 URL 地址即可。(仅新版智能对话分析适用
beginInteger本句话的开始时间,是相对起始点的开始时间偏移,单位 ms。
endInteger本句话的结束时间,是相对起始点的结束时间偏移,单位 ms。
beginTimeDate这句话的开始时间,示例值:2019-11-25 15:37:16。

表情包显示说明

在复核详情页查看对话详情时,仅支持通用 Emoji 表情包的展示,上传时,需将表情替换为 UTF8 字符集的字符,例如😀笑脸表情对应的字符为😀,以&#开头,分号结尾,相关文档说明: Emoji 字符对照表HTML 页面展示字符说明

回调参数说明

假设调用方传入的回调地址是:http://aliyun.com/callback,那么回调时的完整 URL 为http://aliyun.com/callback?taskId=xxx&timestamp=xxx&signature=xxx&event=xxx,其中:

  • taskId:为任务 id
  • timestamp:为调用时的时间戳,单位:毫秒
  • aliUid:为调用方阿里云主账号 uid
  • signature:为签名,调用方可用来判断请求是否来自阿里云;计算说明:将taskId=xxx&timestamp=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&timestamp=xxx&aliUid=xxx 进行 md5 + base64 加密,放在 signature 字段
    String signature;
    try {
        signature = URLEncoder.encode(md5Base64("taskId=" + taskId + "&timestamp=" + 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);
}

返回参数

名称类型描述示例值
object
Codestring

结果代码,200 表示成功,若为别的值则表示失败,调用方可根据此字段判断失败原因。

200
Messagestring

出错时表示出错详情,成功时为 successful。

successful
Datastring

该任务的 taskId。

6F5934C7-C223-4F0F-BBF3-5B3594***
RequestIdstring

请求 ID,请求唯一标识,可以用来定位追踪请求。

6F5934C7-C223-4F0F-BBF3-5B3594****
Successboolean

请求是否成功,调用方可根据此字段来判断请求是否成功:true 表示成功;false/null 表示失败。

true

示例

正常返回示例

JSON格式

{
  "Code": "200",
  "Message": "successful",
  "Data": "6F5934C7-C223-4F0F-BBF3-5B3594***",
  "RequestId": "6F5934C7-C223-4F0F-BBF3-5B3594****",
  "Success": true
}

错误码

访问错误中心查看更多错误码。

变更历史

变更时间变更内容概要操作
2023-08-01API 内部配置变更,不影响调用查看变更详情
2023-08-01API 内部配置变更,不影响调用查看变更详情
2023-08-01API 内部配置变更,不影响调用查看变更详情
2023-08-01API 内部配置变更,不影响调用查看变更详情
2023-08-01API 内部配置变更,不影响调用查看变更详情
2023-08-01API 内部配置变更,不影响调用查看变更详情
2023-08-01API 内部配置变更,不影响调用查看变更详情
2023-08-01API 内部配置变更,不影响调用查看变更详情
2023-08-01API 内部配置变更,不影响调用查看变更详情
2023-08-01API 内部配置变更,不影响调用查看变更详情
2023-08-01API 内部配置变更,不影响调用查看变更详情
2023-08-01API 内部配置变更,不影响调用查看变更详情
2023-08-01API 内部配置变更,不影响调用查看变更详情
2023-08-01API 内部配置变更,不影响调用查看变更详情
2023-08-01API 内部配置变更,不影响调用查看变更详情
2023-08-01API 内部配置变更,不影响调用查看变更详情
2023-08-01API 内部配置变更,不影响调用查看变更详情
2023-08-01API 内部配置变更,不影响调用查看变更详情
2023-08-01API 内部配置变更,不影响调用查看变更详情
2023-08-01API 内部配置变更,不影响调用查看变更详情