SyncQualityCheck - 进行实时质检

进行热线实时质检。

接口说明

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

使用流程

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

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

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

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

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

全文质检

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

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

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

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

调试

您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。

授权信息

下表是API对应的授权信息,可以在RAM权限策略语句的Action元素中使用,用来给RAM用户或RAM角色授予调用此API的权限。具体说明如下:

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

请求参数

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

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

{"tid":"20200823-234234","dialogue":"{}"}
BaseMeAgentIdlong

业务空间 Id

jsonStr 属性说明:

属性值类型是否必须说明
isSchemeDataInteger是否将数据上传至新版智能对话分析,取值:0(否);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 字符。

jsonStr.dialogue 属性说明:

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

返回参数

名称类型描述示例值
object
Codestring

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

200
Messagestring

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

successful
RequestIdstring

请求唯一标识。

66E1ACB8-17B2-4BE8-8581-954A8*****
Successboolean

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

true
Dataobject

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

Scoreinteger

最终得分,满分 100。

100
TaskIdstring

任务 ID。

66E1ACB866E1ACB8
Tidstring

当前对话唯一标识。

20200876-66E1ACB8
BeginTimelong

录音&对话发生的时间,格林威治时间 1970 年 01 月 01 日 00 时 00 分 00 秒到现在的毫秒数(即毫秒时间戳,例如:1584535485856)。

1584535485856
Rulesarray<object>

命中的规则列表,每一条为一个规则,只返回命中的规则信息和命中规则位置信息。

RuleHitInfoobject
RuleNamestring

命中的规则的名称。

禁用语
Ridstring

命中的规则 ID。

232232
Hitarray<object>

命中的句子列表,针对此接口,如果命中,为一条数据。

ConditionHitInfoobject
HitKeyWordsarray<object>

条件命中的关键词。

HitKeyWordobject
Tointeger

关键字的结束位置。

4
Frominteger

关键字的起始位置。

1
Valstring

关键字。

你好
Cidinteger

规则的条件 ID。

2312
Pidinteger

命中句子在全部对话中的下标值。

4
Phraseobject

条件命中的对话内容。

Wordsstring

对话内容。

你好请问有什么可以帮您的
Identitystring

废弃字段,请忽略。

xxx
Beginlong

本句相对于整个对话的开始时间,单位:毫秒。

1230
EmotionValueinteger

本句的情绪值,0-10,值越大情绪越高。

6
Endlong

本句相对于整个对话的结束时间,单位:毫秒。

3440
SpeechRateinteger

本句语速,单位:字/分钟。

233
Rolestring

本句的角色,取值:客服、客户。

客服
SilenceDurationinteger

废弃字段,请忽略。

123

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

示例

正常返回示例

JSON格式

{
  "Code": "200",
  "Message": "successful",
  "RequestId": "66E1ACB8-17B2-4BE8-8581-954A8*****",
  "Success": true,
  "Data": {
    "Score": 100,
    "TaskId": "66E1ACB866E1ACB8",
    "Tid": "20200876-66E1ACB8",
    "BeginTime": 1584535485856,
    "Rules": [
      {
        "RuleName": "禁用语",
        "Rid": "232232",
        "Hit": [
          {
            "HitKeyWords": [
              {
                "To": 4,
                "From": 1,
                "Val": "你好",
                "Cid": 2312,
                "Pid": 4
              }
            ],
            "Phrase": {
              "Words": "你好请问有什么可以帮您的",
              "Identity": "xxx",
              "Begin": 1230,
              "EmotionValue": 6,
              "End": 3440,
              "SpeechRate": 233,
              "Role": "客服",
              "SilenceDuration": 123
            }
          }
        ]
      }
    ]
  }
}

错误码

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

变更历史

变更时间变更内容概要操作
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 内部配置变更,不影响调用查看变更详情