进行热线实时质检。
接口说明
热线实时质检是在通话过程中,实时的将对话语音转写为对话文本,把文本传入到智能对话分析系统中进行实时质检,从而实时监测可能出现的潜在问题或风险,您可以实时的将对话文本及质检结果展示在客服人员工作台中(第三方系统)。区别于离线质检(调用 UploadAudioData 进行的质检或数据集质检,详见开发指南),离线质检均是在通话结束并且录音文件生成后进行的质检分析。
使用流程
需自行实现通话过程中将语音流实时转写为文本,或直接使用阿里云-云呼叫中心,云呼叫中心与智能对话分析进行了深度集成,可在通话过程中直接进行实时质检,无需进行 API 对接。
若自行实现语音流转文本,在通话过程中,当一个角色说完一句话产生对话文本后,就需要调用该 API:SyncQualityCheck 进行实时质检,会同步返回该句话的质检结果。
上传数据时可以携带技能组信息,然后通过呼叫中心质检-配置管理功能来配置不同技能组的通话使用不同的质检规则。
通话结束后,您可以将录音文件存储在公网可访问的存储服务器中,调用录音信息维护 API:UpdateSyncQualityCheckData,将录音名称、录音文件 URL 等信息提交到智能对话分析服务,这样质检员在复核时就可以播放录音了。
通话结束后在呼叫中心质检-结果展示-实时质检结果中看到质检的结果,您也可以调用实时质检结果查询 API:GetSyncResult 获取质检结果。通过评分大盘-实时大盘,可查看客服、技能组、评分项的数据图表。
全文质检
质检规则中有十几种算子,有些算子分析时需要对话上下文(客服与客户的多轮对话),但实时质检是在通话过程中的质检,通常只有一个角色说的一句话的文本,部分算子不适用于实时质检,所以质检规则分为实时质检规则和全文质检规则:
实时质检规则:进行实时质检时使用的规则,支持的算子类型有限,不支持指定算子的检测范围。
全文质检规则:进行离线质检时使用的规则,支持全量算子类型,支持自定义指定算子的检测范围。
进行了实时质检的通话,在通话结束后,此时已经有了完整的对话文本,此时可以对完整对话文本使用全文质检规则再次进行质检分析。如何启用实时质检后的全文质检功能?请查看呼叫中心质检-配置管理中关于全文质检的说明。
调试
您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。
授权信息
请求参数
名称 | 类型 | 必填 | 描述 | 示例值 |
---|---|---|---|---|
JsonStr | string | 是 | 完整 JSON 字符串信息,具体内容参见以下详细信息。 | {"tid":"20200823-234234","dialogue":"{}"} |
BaseMeAgentId | long | 否 | 业务空间 Id |
jsonStr 属性说明:
属性 | 值类型 | 是否必须 | 说明 |
---|---|---|---|
isSchemeData | Integer | 否 | 是否将数据上传至新版智能对话分析,取值:0(否);1(是),默认值为 0。 |
uuid | String | 否 | 当前句子唯一标识,幂等用,重复请求会排重,排重有效期 24 小时 |
tid | String | 是 | 当前对话唯一标识(务必确保唯一性),可以理解为自有业务系统中的通话 ID,后台会根据此标识,合并为一个完整的对话,长度至少 8 位,并且前 8 位是通话的发生时间(年月日),例如录音发生时间是 2020 年 7 月 5 日,那么前缀即为 20200705,建议在前缀后再拼接上自有业务系统中的通话 ID,例如:20200705-234890134。前缀时间必须在 API 调用时间的前一个月、后一小时范围内。 |
dialogue | Dialogue | 是 | 业务方的待检文本对话部分内容,一般是一句话,也可以是多句,具体内容参见下方的jsonStr.dialogue 属性说明。 |
dialogueStatus | Integer | 否 | 会话开始结束标识,1:开始,2:对话中。 |
beginTime | Long | 否 | 录音&对话的开始时间,格林威治时间 1970 年 01 月 01 日 00 时 00 分 00 秒到现在的毫秒数(即毫秒时间戳,例如:1584535485856),如果每次调用都传入,以第一次调用为准,若不指定,则会取当前时间。 |
customerServiceId | Long | 否 | 客服 ID。可从控制台-基础设置-人员管理页面获取,正确填入客服 ID,客服登录控制台页面时可以查看与自己关联的录音文件。 |
customerServiceName | String | 否 | 客服姓名。 |
skillGroupId | Long | 否 | 技能组 ID。 |
skillGroupName | String | 否 | 技能组名称。 |
callType | Integer | 否 | 呼叫类型,可取值:1(呼出)(默认);3(呼入);4(其他) |
callee | String | 否 | 被叫号码,呼出时指的是客户号码,呼入时指的是客服号码。 |
caller | String | 否 | 主叫号码,呼出时指的是客服号码,呼入时指的是客户号码。 |
callId | String | 否 | 通话 ID,可以是呼叫中心系统中的通话 ID,或者其他可以标识通话的 ID,存在转接时,坐席 1~n,callid 是相同的,tid 不同。 |
business | String | 否 | 业务线名称,属于自定义数据,用于分类统计。 |
remark1 | String | 否 | 自定义数据 1,可以存放与您业务相关的自定义字段,最大长度为 32 字符。 |
remark2 | String | 否 | 自定义数据 2,可以存放与您业务相关的自定义字段,最大长度为 32 字符。 |
remark3 | String | 否 | 自定义数据 3,可以存放与您业务相关的自定义字段,最大长度为 32 字符。 |
jsonStr.dialogue 属性说明:
属性 | 值类型 | 是否必须 | 说明 |
---|---|---|---|
role | String | 是 | 对话内容角色,取值:客服、客户、系统 |
identity | String | 否 | 对话角色的具体身份标识,比如客服 ID,客户 ID 等 |
words | String | 是 | 这个角色说的一句话。仅支持 UTF-8 编码,例如 Emoji 表情并不是 UTF-8 编码,文本内容中请勿包含 Emoji 表情。 |
begin | Integer | 是 | 相对起始点的开始时间偏移,单位 ms |
end | Integer | 是 | 相对起始点的结束时间偏移,单位 ms |
emotionValue | Integer | 否 | 情绪能量值 1-10,值越高情绪越强烈 |
speechRate | Integer | 否 | 本句的平均语速,单位为每分钟字数 |
silenceDuration | Integer | 否 | 本句与上一句之间的静音时长,单位为秒 |
返回参数
对话上下文句子说明:一些复杂场景下,某个角色的一句话无法分析出是否存在违规,往往还需要之前的一些句子做上下文信息来做质检分析。目前上下文句子数量最大值默认为 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-01 | API 内部配置变更,不影响调用 | 看变更集 | ||
| ||||
2023-08-01 | API 内部配置变更,不影响调用 | 看变更集 | ||
| ||||
2023-08-01 | API 内部配置变更,不影响调用 | 看变更集 | ||
| ||||
2023-08-01 | API 内部配置变更,不影响调用 | 看变更集 | ||
| ||||
2023-08-01 | API 内部配置变更,不影响调用 | 看变更集 | ||
| ||||
2023-08-01 | API 内部配置变更,不影响调用 | 看变更集 | ||
| ||||
2023-08-01 | API 内部配置变更,不影响调用 | 看变更集 | ||
| ||||
2023-08-01 | API 内部配置变更,不影响调用 | 看变更集 | ||
| ||||
2023-08-01 | API 内部配置变更,不影响调用 | 看变更集 | ||
| ||||
2023-08-01 | API 内部配置变更,不影响调用 | 看变更集 | ||
| ||||
2023-08-01 | API 内部配置变更,不影响调用 | 看变更集 | ||
| ||||
2023-08-01 | API 内部配置变更,不影响调用 | 看变更集 | ||
| ||||
2023-08-01 | API 内部配置变更,不影响调用 | 看变更集 | ||
| ||||
2023-08-01 | API 内部配置变更,不影响调用 | 看变更集 | ||
| ||||
2023-08-01 | API 内部配置变更,不影响调用 | 看变更集 | ||
| ||||
2023-08-01 | API 内部配置变更,不影响调用 | 看变更集 | ||
| ||||
2023-08-01 | API 内部配置变更,不影响调用 | 看变更集 | ||
| ||||
2023-08-01 | API 内部配置变更,不影响调用 | 看变更集 | ||
| ||||
2023-08-01 | API 内部配置变更,不影响调用 | 看变更集 | ||
| ||||
2023-08-01 | API 内部配置变更,不影响调用 | 看变更集 | ||
|