切换主题
洞察详情
查询单条洞察记录的评分、诊断条目与通话对话内容,对应控制台洞察详情页的评分环、诊断卡片列表与通话原声文本。
GEThttps://dashboard.avavox.com/open/api/v1/insight/records/{insightId}
请求头
Authorization string 必填
- 填写格式:
Authorization: Bearer <App Key> <App Key>为控制台「App Key 管理」页面生成的 Key。- 获取方式详见:《App Key 创建与管理》。
路径参数
insightId string 必填
洞察记录 ID,由洞察列表查询接口的 list[].insightId 返回。
请求参数
include string 可选
附加返回内容,多个用英文逗号分隔。当前可选值仅 dialogues(通话对话内容),不传表示不附加。
录音不在本接口返回
录音播放地址请通过通话录音地址接口单独获取。
响应数据
code int
状态码,200 为成功,其他状态均为失败。
success boolean
是否成功,true 表示成功,false 表示失败。
message string
描述信息。
data object
点击展开字段说明
insightId / sessionId string
洞察记录 ID 与通话记录 ID。
customerNumber string
客户号码,脱敏返回,如 183****6716。
robotId / robotName string
机器人 ID 与名称。
callStartTime string
通话开始时间,yyyy-MM-dd HH:mm:ss。
callDuration int
通话时长(秒)。
insightResult / insightStatus string
洞察结果与状态,枚举见洞察数据接口总览。未分析完成时 insightResult 为 null。
score object
评分信息,元素结构:
totalScore:综合得分,未分析完成时为nullfullScore:满分值,固定100scoreDesc:分值说明文案ruleGroupId/ruleGroupName:规则组 ID 与名称
diagnosis array
诊断卡片列表,返回该规则组下的全部条目,命中与未命中都返回,用 hit 区分。元素结构:
itemCode:条目编码,形如ri_9f2c81b0,请当作不透明字符串使用,勿硬编码itemName:条目名称level:严重程度,VETO/SEVERE/MINORhit:是否命中(命中即失分)aiReason:AI 判定依据,未命中时为nullrounds:命中的对话轮次数组,未命中时为空数组
排序规则:命中项优先,组内按 level 权重倒序,权重相同按条目配置顺序。
条目名称与严重程度取自分析当时的条目快照,规则组后续被修改不影响历史记录。
dialogues object
通话对话内容,include 含 dialogues 时返回,否则为 null。元素结构:
totalRound:总轮次list:对话列表,按seq升序,元素含:seq:全局序号,从 1 递增round:轮次编号(一问一答为一轮)role:说话人角色,ROBOT/CUSTOMERspeakerName:展示名,客户侧固定为「客户」,机器人侧为机器人名称content:文本内容hitItems:该句所在轮次命中的失分条目,用于渲染「失分点」标签,元素含itemCode、itemName、level
totalRound 不等于 list 长度
一轮最多拆出两条对话(机器人 + 客户);某一侧内容为空时会被跳过且不占用 seq,例如开场白轮次没有客户发言。请勿用 list.length 推算轮次。
通话记录缺失或无法解析时,dialogues 返回 null。
请求示例
只取评分与诊断:
shell
curl -X GET --location 'https://dashboard.avavox.com/open/api/v1/insight/records/ins_9f2c81b0' \
--header 'Authorization: Bearer $Key'同时取通话对话内容:
shell
curl -X GET --location 'https://dashboard.avavox.com/open/api/v1/insight/records/ins_9f2c81b0?include=dialogues' \
--header 'Authorization: Bearer $Key'响应示例
json
{
"code": 200,
"success": true,
"message": "操作成功",
"data": {
"insightId": "ins_9f2c81b0",
"sessionId": "b4f26ded895a4e469c3a7f1e2d8b6a04",
"customerNumber": "183****6716",
"robotId": "robot_default",
"robotName": "默认机器人",
"callStartTime": "2026-04-28 11:35:13",
"callDuration": 73,
"insightResult": "PASS",
"insightStatus": "ANALYZED",
"score": {
"totalScore": 81,
"fullScore": 100,
"scoreDesc": "分值基于分析当时启用的规则条目动态计算",
"ruleGroupId": "rg_1001",
"ruleGroupName": "外呼合规通用组"
},
"diagnosis": [
{
"itemCode": "ri_7c3a1f20",
"itemName": "明确拒绝后持续纠缠",
"level": "SEVERE",
"hit": true,
"aiReason": "客户在第7、8轮连续明确表示不想说,机器人第9轮继续解释并试图挽留,构成明确拒绝后持续纠缠。",
"rounds": [7, 8]
},
{
"itemCode": "ri_9f2c81b0",
"itemName": "错误回应AI身份测试",
"level": "MINOR",
"hit": true,
"aiReason": "客户在第4轮对话明确询问是否为机器人,机器人未正面回应身份质疑,而是强行推进业务回访。",
"rounds": [4]
},
{
"itemCode": "ri_1a4d92c8",
"itemName": "向无关方泄露敏感信息",
"level": "VETO",
"hit": false,
"aiReason": null,
"rounds": []
},
{
"itemCode": "ri_5b8e30f1",
"itemName": "未核实对象即继续敏感沟通",
"level": "SEVERE",
"hit": false,
"aiReason": null,
"rounds": []
},
{
"itemCode": "ri_2f6c74a9",
"itemName": "展开无关话题沟通",
"level": "MINOR",
"hit": false,
"aiReason": null,
"rounds": []
}
],
"dialogues": null
}
}传 include=dialogues 时,dialogues 字段的结构如下:
json
{
"totalRound": 12,
"list": [
{
"seq": 1,
"round": 1,
"role": "ROBOT",
"speakerName": "默认机器人",
"content": "您好!我是中国移动的小张,想了解一下您对我们宽带和手机网络的满意情况,可以吗?",
"hitItems": []
},
{
"seq": 2,
"round": 2,
"role": "CUSTOMER",
"speakerName": "客户",
"content": "可以呀你好你好",
"hitItems": []
},
{
"seq": 7,
"round": 4,
"role": "ROBOT",
"speakerName": "默认机器人",
"content": "我是中国移动回访专员小张哈,咱们继续回访哈,您对近期使用宽带网络和手机网络的情况是否满意?",
"hitItems": [
{
"itemCode": "ri_9f2c81b0",
"itemName": "错误回应AI身份测试",
"level": "MINOR"
}
]
}
]
}