调用 UploadData 上传文本质检数据。

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

customerServiceName

String

坐席姓名。

skillGroupId

String

坐席所在技能组ID。

skillGroupName

String

坐席所在技能组名称。

callType

Integer

呼叫类型,可选值:1(呼出);3(呼入)。适用于您本地已经安装有录音转文本服务,直接将文本上传到SCA系统时的场景,来指定该通通话的呼叫类型。

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&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中只能包含一个正常的图片链接地址,并且开放对应的访问图片访问权限,不可包含其他文字,否则会导致图片无法正常显示。

复核页面展示效果:

返回数据

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

错误码

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