SyncQualityCheck_智能对话分析_API文档

插件下载了解更多
VS Code 插件
安装插件之前,确保已安装 VS Code安装插件之前,确保已安装 VS Code
Alibaba Cloud Developer Toolkit is a collection of extensions that can help access Alibaba Cloud services in Visual Studio Code.
JetBrains 插件
安装插件之前,确保已安装 JetBrains IDE安装插件之前,确保已安装 JetBrains IDE
The Alibaba Cloud Developer Toolkit for JetBrains makes it easier to access Alibaba Cloud services.

接口说明

热线实时质检是在通话过程中,实时的将对话语音转写为对话文本,把文本传入到智能对话分析系统中进行实时质检,从而实时监测可能出现的潜在问题或风险,您可以实时的将对话文本及质检结果展示在客服人员工作台中(第三方系统)。区别于离线质检(调用 UploadAudioData 进行的质检或数据集质检,详见开发指南),离线质检均是在通话结束并且录音文件生成后进行的质检分析。

使用流程

需自行实现通话过程中将语音流实时转写为文本,或直接使用阿里云-云呼叫中心,云呼叫中心与智能对话分析进行了深度集成,可在通话过程中直接进行实时质检,无需进行 API 对接。

若自行实现语音流转文本,在通话过程中,当一个角色说完一句话产生对话文本后,就需要调用该 API:SyncQualityCheck 进行实时质检,会同步返回该句话的质检结果。

上传数据时可以携带技能组信息,然后通过呼叫中心质检-配置管理功能来配置不同技能组的通话使用不同的质检规则。

通话结束后,您可以将录音文件存储在公网可访问的存储服务器中,调用录音信息维护 API:UpdateSyncQualityCheckData,将录音名称、录音文件 URL 等信息提交到智能对话分析服务,这样质检员在复核时就可以播放录音了。

通话结束后在呼叫中心质检-结果展示-实时质检结果中看到质检的结果,您也可以调用实时质检结果查询 API:GetSyncResult 获取质检结果。通过评分大盘-实时大盘,可查看客服、技能组、评分项的数据图表。

全文质检

质检规则中有十几种算子,有些算子分析时需要对话上下文(客服与客户的多轮对话),但实时质检是在通话过程中的质检,通常只有一个角色说的一句话的文本,部分算子不适用于实时质检,所以质检规则分为实时质检规则和全文质检规则:

实时质检规则:进行实时质检时使用的规则,支持的算子类型有限,不支持指定算子的检测范围。

全文质检规则:进行离线质检时使用的规则,支持全量算子类型,支持自定义指定算子的检测范围。

进行了实时质检的通话,在通话结束后,此时已经有了完整的对话文本,此时可以对完整对话文本使用全文质检规则再次进行质检分析。如何启用实时质检后的全文质检功能?请查看呼叫中心质检-配置管理中关于全文质检的说明。

流控信息

请求速率为1800/60(s)。更多流控信息,请前往配额中心查看

授权信息

如下是此API对应的授权信息,用于RAM权限策略语句的Action元素中,为RAM用户或RAM角色授予调用此API的权限。请通过 RAM 访问控制设置,使用方法可参考访问控制帮助文档

具体说明如下:展开详情

操作访问级别资源类型条件关键字关联操作
sca:SyncQualityCheck
Create
全部资源
*

请求参数

字段名称字段详情
JsonStrstring

完整 JSON 字符串信息,具体内容参见以下详细信息。

示例值:{"tid":"20200823-234234","dialogue":"{}"}
BaseMeAgentIdinteger<int64>

业务空间 Id

注意 该字段类型为 Long,在序列化/反序列化的过程中可能导致精度丢失,请注意数值不得大于 9007199254740991。
示例值:1244721

请求说明

jsonStr 属性说明:

属性值类型是否必须说明
sourceTypeInt数据类型,1:实时语音,0:实时文本
uuidString当前句子唯一标识,幂等用,重复请求会排重,排重有效期 24 小时
tidString当前对话唯一标识(务必确保唯一性),可以理解为自有业务系统中的通话 ID,后台会根据此标识,合并为一个完整的对话,长度至少 8 位,并且前 8 位是通话的发生时间(年月日),例如录音发生时间是 2020 年 7 月 5 日,那么前缀即为 20200705,建议在前缀后再拼接上自有业务系统中的通话 ID,例如:20200705-234890134。前缀时间必须在 API 调用时间的前一个月、后一小时范围内。
dialogueDialogue业务方的待检文本对话部分内容,一般是一句话,也可以是多句,具体内容参见下方的jsonStr.dialogue 属性说明。
dialogueStatusInteger会话开始结束标识,1:开始,2:对话中。
beginTimeLong录音&对话的开始时间,格林威治时间 1970 年 01 月 01 日 00 时 00 分 00 秒到现在的毫秒数(即毫秒时间戳,例如:1584535485856),如果每次调用都传入,以第一次调用为准,若不指定,则会取当前时间。
customerServiceIdLong客服 ID。可从控制台-基础设置-人员管理页面获取,正确填入客服 ID,客服登录控制台页面时可以查看与自己关联的录音文件。
customerServiceNameString客服姓名。
skillGroupIdLong技能组 ID。
skillGroupNameString技能组名称。
callTypeInteger呼叫类型,可取值:1(呼出)(默认);3(呼入);4(其他)
calleeString被叫号码,呼出时指的是客户号码,呼入时指的是客服号码。
callerString主叫号码,呼出时指的是客服号码,呼入时指的是客户号码。
callIdString通话 ID,可以是呼叫中心系统中的通话 ID,或者其他可以标识通话的 ID,存在转接时,坐席 1~n,callid 是相同的,tid 不同。
businessString业务线名称,属于自定义数据,用于分类统计。
remark1String自定义数据 1,可以存放与您业务相关的自定义字段,最大长度为 32 字符。
remark2String自定义数据 2,可以存放与您业务相关的自定义字段,最大长度为 32 字符。
remark3String自定义数据 3,可以存放与您业务相关的自定义字段,最大长度为 32 字符。
requiredFieldsString出参额外字段,取值:ruleInfoBase(规则信息);ruleInfoBase.ruleCategoryName(规则类型名)

jsonStr.dialogue 属性说明:

属性值类型是否必须说明
roleString对话内容角色,取值:客服、客户、系统
identityString对话角色的具体身份标识,比如客服 ID,客户 ID 等
wordsString这个角色说的一句话。仅支持 UTF-8 编码,例如 Emoji 表情并不是 UTF-8 编码,文本内容中请勿包含 Emoji 表情。
beginInteger相对起始点的开始时间偏移,单位 ms
endInteger相对起始点的结束时间偏移,单位 ms
emotionValueInteger情绪能量值 1-10,值越高情绪越强烈
speechRateInteger本句的平均语速,单位为每分钟字数
silenceDurationInteger本句与上一句之间的静音时长,单位为秒

请求入参示例

{
  "sourceType": 0,
  "beginTime": 1724390164363,
  "callId": "job-548734733657395200",
  "checkByScheme": false,
  "customerName": "张三语音 11",
  "customerId": "zhangsan-vip-audio",
  "customerServiceId": "270071956987960408",
  "customerServiceName": "siqiyj",
  "dialogue": {
    "begin": 23596,
    "emotionValue": 0,
    "end": 24836,
    "role": "客户",
    "speechRate": 62,
    "words": "啊,对对对。"
  },
  "skillGroupId": "e5bfc9fc-f860-4a33-a4e6-80321aa1ff64",
  "skillGroupName": "e5bfc9fc-f860-4a33-a4e6-80321aa1ff64",
  "tid": "20240823job-548734733657395200",
  "uuid": "258af5784bbaff9a503e056f39291a5d"
}

请求代码示例

public class sca {

    private static String ak = "YOUR_ACCESS_KEY_ID";
    private static String sk = "YOUR_ACCESS_KEY_SECRET";

    private static void sync() throws Exception {
        String json = "{\n" +
                "  \"sourceType\": 0,\n" +
                "  \"beginTime\": 1724390164363,\n" +
                "  \"callId\": \"job-548734733657395200\",\n" +
                "  \"checkByScheme\": false,\n" +
                "  \"customerName\": \"张三语音 11\",\n" +
                "  \"customerId\": \"zhangsan-vip-audio\",\n" +
                "  \"customerServiceId\": \"270071956987960408\",\n" +
                "  \"customerServiceName\": \"siqiyj\",\n" +
                "  \"dialogue\": {\n" +
                "    \"begin\": 23596,\n" +
                "    \"emotionValue\": 0,\n" +
                "    \"end\": 24836,\n" +
                "    \"role\": \"客户\",\n" +
                "    \"speechRate\": 62,\n" +
                "    \"words\": \"啊,对对对。\"\n" +
                "  },\n" +
                "  \"skillGroupId\": \"e5bfc9fc-f860-4a33-a4e6-80321aa1ff64\",\n" +
                "  \"skillGroupName\": \"e5bfc9fc-f860-4a33-a4e6-80321aa1ff64\",\n" +
                "  \"tid\": \"20240823job-548734733657395200\",\n" +
                "  \"uuid\": \"258af5784bbaff9a503e056f39291a5d\"\n" +
                "}";


        Config config = new Config();
        config.setAccessKeyId(ak).setAccessKeySecret(sk)
                .setEndpoint("qualitycheck.cn-hangzhou.aliyuncs.com")
                .setRegionId("cn-hangzhou").setProtocol("HTTPS");

        Client client = new Client(config);
        SyncQualityCheckRequest result = new SyncQualityCheckRequest();

        result.setJsonStr(json);

        SyncQualityCheckResponse response = client.syncQualityCheck(result);
        System.out.println(JSONObject.toJSONString(response));
    }

    public static void main(String[] args) throws Exception {
        sync();
    }
}

返回参数

字段名称字段详情
Codestring

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

示例值:200
Messagestring

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

示例值:successful
RequestIdstring

请求唯一标识。

示例值:66E1ACB8-17B2-4BE8-8581-954A8*****
Successboolean

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

示例值:true
Dataobject

返回结果,包含命中信息。

返回说明

对话上下文句子说明:一些复杂场景下,某个角色的一句话无法分析出是否存在违规,往往还需要之前的一些句子做上下文信息来做质检分析。目前上下文句子数量最大值默认为 30 句。打个比方,比如一通通话,当前已经说到了第 40 句,在第 40 句上传后,我们会向前再取 29 句,加上当前最新的第 40 句,一共 30 句来做质检分析。所以极端情况下,某些句子会进行 30 次质检分析,我们在返回质检结果时,会自动去重,也就是一个句子若多次命中同一个规则中的同一个条件,则只有在第一次命中时会返回该句的命中结果。

返回示例

变更历史

变更时间变更内容概要操作
2024-12-17
变更返回参数
2023-08-01
变更请求参数BaseMeAgentId

相关示例