在使用前,请先开通 消息队列 RocketMQ 服务。
概述
智能对话分析服务作为消息的生产者,通过向您的阿里云消息队列RocketMQ服务中发送消息的方式推送相关信息给您,您作为消息的消费者从RocketMQ中接收并消费消息,从而实现低延迟、高并发、高可用的消息推送。
视频讲解
授权
需要您授权,允许智能对话分析服务向您的消息队列RocketMQ中发送消息。请使用阿里云主账号登录,点击智能对话分析控制台左侧导航中的基础设置-消息队列,如下图,先点击 前往授权 按钮,请详细阅读弹出窗口中的内容,确认无误后点击 确认 按钮完成授权。
消息队列配置信息
授权成功后,会显示如上图页面,点击编辑按钮,开始填写 消息队列配置信息
配置信息的内容,您可以从 消息队列RocketMQ控制台获取,需要注意的是,消息队列RocketMQ服务的实例所属地域需要为 公网。
接入点:接入点地址需要填写TCP协议的地址,因为我们发送消息时使用的是RocketMQ官方推荐的TCP协议。
实例ID:消息队列服务的实例ID,实例所在地域需要为 公网。
Topic:Topic 在创建时消息类型需要选择为 顺序消息-全局顺序消息
Group ID:
以上配置信息填写完毕后,点击测试按钮,测试您所填写的消息队列服务配置是否可用,我们会发送一条消息来测试服务连通性,结果如下图:
发送消息的类型,目前支持以下三种:
实时质检单句语音识别结果:一个实时质检会话会推送N次,也就是每调用一次 SyncQualityCheck(实时质检)接口,就会推送一次单句语音识别结果。
实时质检全文语音识别结果:通话结束后,推送一个实时质检会话完整的语音识别结果,一个通话仅推送一次,也就是调用 UpdateSyncQualityCheckData(维护录音信息)接口后进行推送。
实时质检对话分析结果:也就是质检结果(规则命中信息),不支持单独发送,需要与 实时质检单句语音识别结果 或 实时质检全文语音识别结果 类型的消息一起发送,也就会说在发送语音识别结果消息时携带质检结果。
消息推送的类型及消息结构说明
下图为通过消息队列服务控制台查询消息,可以看到智能对话分析目前会推送三种不同Tag的消息,您可以根据Tag的不同进行不同的处理。
testEvent:智能对话分析发送的测试消息,用来验证您所填写的消息队列配置信息是否可用。此类消息您可以直接丢弃,不用做任何处理。消息内容示例:
{ "eventType":"testEvent" }
SyncResult:实时质检单句结果,消息内容示例:
{ "checkResult":{ "rules":[ { "highlight":[ { "3868":[ { "val":"阿里云", "pid":0, "from":6, "to":9, "tid":"202010***", "cid":"3***" } ], "cid":"31***" } ], "hit":[ { "phrase":{ "role":"客服", "identity":"某客服", "words":"您好,这里是阿里云客服中心,有什么可以帮您的?", "emotionValue":7, "end":3930, "pid":0, "begin":410 }, "cid":[ "31***" ] } ], "rid":"2***" } ] }, "event":"SyncResult", "syncQualityCheckObject":{ "beginTime":1603959093000, "callId":"20201028***", "callType":3, "callee":"1760066***", "caller":"268822***", "customerServiceId":"20526561358***", "customerServiceName":"a***", "dialogue":{ "begin":410, "channelId":0, "emotionValue":7, "end":3930, "hourMinSec":"00:00", "identity":"某客服", "role":"客服", "speechRate":443, "words":"您好,这里是阿里云客服中心,有什么可以帮您的?" }, "dialogueStatus":2, "dialogueTaskUuid":"20201029****ba73-635e-40a2-8245-16315***", "ruleIds":[ "254***", "255***", "251***" ], "skillGroupId":"zc1", "skillGroupName":"职场1", "sourceType":1, "taskId":"20201029C963BA7A-0DD5-45EC-AA40-4A46DC0***", "tid":"202010***" } }
SyncAllResult:实时质检全文结果,消息内容示例:
{ "checkResult":{ "result":[ { "rules":[ { "highlight":[ { "38***":[ { "val":"阿里云", "from":6, "pid":0, "to":9, "tid":"202010***", "cid":"31***" } ], "cid":"31***" } ], "hit":[ { "keyWords":[ { "val":"阿里云", "from":6, "pid":0, "to":9, "tid":"202010***", "cid":"31***" } ], "phrase":{ "role":"客服", "emotionValue":7, "words":"您好,这里是阿里云客服中心,有什么可以帮您的?", "pid":0, "identity":"某客服", "end":3930, "begin":410 }, "cid":[ "31***" ] } ], "rid":"25***" }, { "highlight":[ { "38***":[ { "val":"公测", "from":13, "pid":1, "to":15, "tid":"202010***", "cid":"31***" } ], "cid":"31***" } ], "hit":[ { "keyWords":[ { "val":"公测", "from":13, "pid":1, "to":15, "tid":"202010***", "cid":"31***" } ], "phrase":{ "role":"客户", "emotionValue":6, "words":"我想要申请参加XXX产品的公测体验。", "pid":1, "identity":"某客户", "end":8000, "begin":5940 }, "cid":[ "31***" ] } ], "rid":"25***" } ], "tid":"202010***" } ], "app_key":"1", "status":200 }, "event":"SyncAllResult", "syncQualityCheckObject":{ "beginTime":1603959093000, "dialogueList":[ { "begin":410, "channelId":0, "emotionValue":7, "end":3930, "hourMinSec":"00:00", "identity":"某客服", "pid":0, "role":"客服", "speechRate":443, "words":"您好,这里是阿里云客服中心,有什么可以帮您的?" }, { "begin":5940, "channelId":1, "emotionValue":6, "end":8000, "hourMinSec":"00:23", "identity":"某客户", "pid":1, "role":"客户", "speechRate":192, "words":"我想要申请参加XXX产品的公测体验。" }, { "begin":11000, "channelId":0, "emotionValue":5, "end":15680, "hourMinSec":"00:25", "identity":"某客服", "pid":2, "role":"客服", "speechRate":30, "words":"好的,我记下了,稍后会有专员与你联系。" } ], "dialogueStatus":3, "dialogueTaskUuid":"20201029a8b0ccc5d07c43e780aa702da***", "fileName":"202010***.wav", "taskId":"2020102908657590-73e0-4e4c-a34c-750***", "tid":"202010***", "voiceFileUrl":"https://sca-buck***.oss-cn-beijing.aliyuncs.com/a***st.wav" } }
消息内容为JSON格式,数据结构描述如下:
字段 | 类型 | 示例值 | 描述 |
event | String | SyncResult | 消息类型,可能值:
|
checkResult | Object | {} | 质检结果。详见下方的 checkResult结构描述。 |
syncQualityCheckObject | Object | {} | 实时质检对象,为通话相关信息,和转写结果。详见下方的syncQualityCheckObject结构描述。 |
syncQualityCheckObject结构描述
字段 | 类型 | 示例值 | 描述 |
dialogueStatus | Integer | 2 | 实时质检会话开始、结束的标识,可能值:1(开始);2(对话中)。 |
taskId | String | 20201029C963BA7A-0DD5-45EC-AA40-4A46DC0*** | 任务ID。 |
tid | String | 202010*** | 通话唯一标识。 |
customerServiceId | Long | 20526561358*** | 客服Id。可从控制台-基础设置-人员管理页面获取,正确填入客服ID,客服登录控制台时可以查看与自己关联的录音文件。 |
customerServiceName | String | agent | 客服姓名。 |
skillGroupId | Long | 1231324234* | 技能组Id。 |
skillGroupName | String | 售前技能组 | 技能组名称。 |
callType | Integer | 1 | 呼叫类型,可取值:1(呼出)(默认);3(呼入);4(其他) |
callee | String | 1760066*** | 被叫号码,呼出时指的是客户号码,呼入时指的是客服号码。 |
caller | String | 0211234**** | 主叫号码,呼出时指的是客服号码,呼入时指的是客户号码。 |
callId | String | 2020102*** | 通话ID(acid),可以是呼叫中心系统中的通话ID,或者其他可以标识通话的ID,存在转接时,坐席1~n,callid是相同的,tid不同。 |
dialogue | Object | 是 | 实时质检单句语音识别结果。详见下方的 dialogue描述。 |
dialogueList | Array | 是 | 实时质检全文语音识别结果。见下方的 dialogue描述。 |
ruleIds | Array | [1321,23321] | 质检时使用的质检规则的规则ID列表。 |
dialogue描述
属性 | 值类型 | 示例值 | 说明 |
role | String | 客服 | 对话内容角色,取值:客服、客户、系统。 |
identity | String | 123** | 对话角色的具体身份标识,比如客服ID,客户ID等。 |
words | String | 您好,欢迎致电** | 这个角色说的一句话。 |
begin | Integer | 3400 | 相对起始点的开始时间偏移,单位ms。 |
end | Integer | 5688 | 相对起始点的结束时间偏移,单位ms。 |
emotionValue | Integer | 6 | 情绪能量值1-10,值越高情绪越强烈。 |
speechRate | Integer | 279 | 本句的平均语速,单位为每分钟字数。 |
checkResult结构描述
字段 | 类型 | 示例值 | 描述 |
rules | Array | [{}] | 命中规则列表,详见下方 rules结构描述。 |
rules结构描述
字段 | 类型 | 示例值 | 描述 |
highlight | Array | [] | 高亮对象列表,详见下方 HighlightObject结构描述。 |
hit | Array | [] | 命中句子列表,详见下方 HitObject结构描述。 |
rid | Long | 23** | 规则ID。 |
HighlightObject结构描述
字段 | 类型 | 示例值 | 描述 |
cid | Long | 34*** | 算子ID |
oid | Array | 23** | 该算子在当前句子中命中位置,需要高亮位置的列表,详见下方的 高亮位置结构描述。 |
高亮位置结构描述
字段 | 类型 | 示例值 | 描述 |
val | String | 阿里云 | 高亮文字。 |
from | Integer | 6 | 起始位置。 |
to | Integer | 9 | 结束位置。 |
cid | Long | 32** | 条件ID。 |
pid | Integer | 1 | 句子位置编号,命中句子在所有句子中的下标值,0代表第一句,1代表第二句。 |
HitObject结构描述
字段 | 类型 | 示例值 | 描述 |
phrase | Object | {} | 命中句子的详细信息,详见下方 phrase结构描述。 |
cid | Array | [34**,32**] | 命中的条件ID列表。 |
phrase结构描述
字段 | 类型 | 示例值 | 描述 |
words | String | 您好,欢迎致电** | 句子内容。 |
begin | Integer | 3477 | 起始相对时间,毫秒。 |
end | Integer | 6890 | 结束相对时间,毫秒。 |
role | String | 客服 | 角色,可能值:客服、客户。 |
pid | Integer | 1 | 句子位置编号,命中句子在所有句子中的下标值,0代表第一句,1代表第二句。 |