调用 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

对话内容角色,取值:客服、客户。

customerServiceType

Integer

区分角色是人工还是机器人,取值:0(人工),1(机器人),默认值: 0 。该字段作用:若为机器人,则在复核页面展示的头像为机器人头像。

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&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,使用主账号登录访问 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&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);
}

上传图片数据说明

文本质检的对话文本,通常来源于在线客服系统,对于在线客服系统中的图片、截图,如果希望在智能对话分析系统中显示出来,您可以将图片地址链接当做一句话进行上传(存放在请求入参的 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中只能包含一个正常的图片链接地址,并且开放对应的访问图片访问权限,不可包含其他文字,否则会导致图片无法正常显示。

支持的图片格式有:'apng', 'bmp', 'gif', 'ico', 'cur', 'jpg', 'jpeg', 'jfif', 'pjpeg', 'pjp', 'png', 'svg', 'tif', 'tiff', 'webp'。

复核页面展示效果:

返回数据

名称 类型 示例值 描述
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
}

错误码

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