通过创建离线异步任务,进行对话分析。应用调用支持 HTTP 调用来完成客户的响应。
接口说明
请确保在使用该接口前,已充分了解通义晓蜜 CCAI-对话分析 AIO 产品的收费方式和价格。
前提条件
- 1.已开通通义晓蜜 CCAI-对话分析 AIO 服务。
- 2.已创建应用:应用中心完成通义晓蜜 CCAI-对话分析 AIO 应用创建,并获取到 APP-ID 和 WORKSPACE-ID:获取 APP-ID 和 WORKSPACE-ID。
注意事项
- 1.目前任务数据在服务端保存时间为 90 天。
- 2.对话内容字数限制为 2 万字,超过部分会自动截断。
- 3.音频文件建议使用 8k 采样率,使用其他采样率会影响最终效果。
调试
您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。
授权信息
请求语法
POST /{workspaceId}/ccai/app/{appId}/createTask HTTP/1.1
请求参数
名称 | 类型 | 必填 | 描述 | 示例值 |
---|---|---|---|---|
workspaceId | string | 否 | 业务空间 ID | llm-ik******RVYCKzt |
appId | string | 否 | 应用 ID | a070a49c681f4a95a0f0*********35c |
body | object | 否 | 请求 Body | |
dialogue | object | 否 | 对话内容列表 | |
sentences | array<object> | 是 | 对话内容 | |
object | 否 | 对话内容 | ||
role | string | 是 | 通话角色
| user |
text | string | 是 | 对话文本 | 请问怎么申请新卡 |
sessionId | string | 否 | 客服会话 sessionId | session-01 |
examples | object | 否 | 指令示例 | |
output | string | 否 | 输出示例 | 问题描述:询问2.2更新时间,处理方案:已告知 |
sentences | array<object> | 是 | 对话内容示例 | |
object | 是 | 对话内容示例 | ||
role | string | 是 | 通话角色
| user |
text | string | 是 | 对话文本 | 什么时候更新 |
fields | array<object> | 否 | 字段结构信息 | |
object | 是 | 字段结构信息 | ||
code | string | 否 | 字段编码 | phoneNumber |
desc | string | 是 | 字段描述 | 用户来电咨询的原因分类,主要有投诉、咨询、政策建议等。 |
enumValues | array<object> | 否 | 枚举值列表 | |
object | 是 | 枚举值列表 | ||
desc | string | 是 | 枚举描述 | 客户有新的需求/新的场景,客服跟进沟通需求细节 |
enumValue | string | 是 | 枚举值 | 新业务拓展 |
name | string | 是 | 字段名称 | 来电原因类型 |
modelCode | string | 是 | 模型 code | tyxmTurbo |
resultTypes | array | 否 | 大模型处理类型 | |
string | 是 | summary-对话摘要,title-标题生成、fields-字段信息抽取、keywords -关键字抽取,service_inspection-服务质检、question_solution-问题和解决方案、questions_and_answer-QA 抽取、custom_prompt-自定义指令 | summary | |
serviceInspection | object | 否 | 服务质检结构信息 | |
inspectionContents | array<object> | 是 | 服务质检维度结构 | |
object | 是 | 服务质检维度结构 | ||
content | string | 是 | 服务质检维度描述 | 客服在服务客户过程中,基于已有的服务标准是否存在过度承诺的行为,如:最快到货时间是12小时,无法给客户承诺更快的到货时间。 |
title | string | 是 | 服务质检维度名称 | 客服是否过度承诺 |
inspectionIntroduction | string | 是 | 服务质检场景详细介绍及描述 | 请检测客服是否存在服务不当的行为,包括:过度承诺、故意套取客户隐私信息等 |
sceneIntroduction | string | 是 | 服务质检场景 | 保险销售场景 |
taskType | string | 是 | 任务类型 audio -语音文件 ,text - 文本 | text |
templateIds | array | 否 | 模版 id 列表 | |
string | 是 | 模版 id,模版 id 和指令任务类型同时存在时,优先使用模版 id | 34 | |
transcription | object | 否 | 语音类型执行参数 | |
autoSplit | integer | 否 | 单轨音频自动区分通话人,取值:0 为自动识别,取值:1 为不自动识别;默认:1;备注:只适用于 8k 采样率音频文件 | 1 |
clientChannel | integer | 否 | 适用于双轨录音,指定客户角色的轨道编号,取值:0、1,默认 1,即第 1 轨为客户;通常音轨都是从 0 开始编号,2 个轨就是 0,1;具体 0 是客服还是客户,需要您自行确认。**若使用此参数,请务必传入 autoSplit 参数,值为 0。**单轨文件忽略此参数。 | 1 |
fileName | string | 是 | 文件名。 | sss.mp3 |
serviceChannel | integer | 否 | 适用于双轨录音,指定客服角色的轨道编号,取值:0、1,默认 0,即第 0 轨为客服;通常音轨都是从 0 开始编号,2 个轨就是 0,1;具体 0 是客服还是客户,需要您自行确认。**若使用此参数,请务必传入 autoSplit 参数,值为 0。**若单轨文件忽略此参数。 | 1 |
serviceChannelKeywords | array | 否 | 多数情况下适用于单轨录音,设置一组客服可能说的关键词列表(请确保选择那些区别性比较高的关键词),通过对转写文本从上到下逐句分析,当一句话命中某一个关键词时,则判定该句的角色为客服,则另一个角色就是客户。 | |
string | 否 | 多数情况下适用于单轨录音,设置一组客服可能说的关键词列表(请确保选择那些区别性比较高的关键词),通过对转写文本从上到下逐句分析,当一句话命中某一个关键词时,则判定该句的角色为客服,则另一个角色就是客户。 | 你好 | |
voiceFileUrl | string | 是 | 文件地址 | http://1111.com/sss.mp3 |
asrModelCode | string | 否 | 语音转写模型,取值 asr (小模型),paraformer(大模型) | asr |
level | string | 否 | 语音转写优先级 | low |
vocabularyId | string | 否 | 语音热词 id | esnvknv*****skdnvjksd |
roleIdentification | boolean | 否 | 自动识别通话角色,true 为自动识别,false 为不自动识别。默认:false | true |
languageHints | string | 否 | 识别语言,默认值为中文普通话,其他支持的语种和方言请联系客服 | zh |
customPrompt | string | 否 | 自定义指令 | 对通话内容进行总结 |
variables | array<object> | 否 | 变量列表 | |
object | 否 | 变量列表 | ||
variableCode | string | 否 | 变量 code | name |
variableValue | string | 否 | 变量值 | 张三 |
categoryTags | array<object> | 否 | 标签分类列表 | |
object | 否 | 标签分类列表 | ||
tagName | string | 否 | 标签名称 | 客服过度承诺 |
tagDesc | string | 否 | 标签描述 | 客服在服务客户过程中,基于已有的服务标准是否存在过度承诺的行为 |
responseFormatType | string | 否 | 输出结果格式化类型,jsonObject-json 结构,text-原始字符串 | jsonObject |
callBackUrl | string | 否 | 任务完成后回调参数 | 123.456.com/callback |
语音识别参数说明
上传语音文件时,需要通过 serviceChannel 或 clientChannel 设置不同角色的音轨,后台服务通过音轨来识别角色。或是通过 serviceChannelKeywords 设置客服通话中的关键字,后台服务通过客服通话中的关键字来识别角色。
回调参数说明
假设调用方传入的回调地址是:http://aliyun.com/callback,那么回调时的完整 URL 为 http://aliyun.com/callback?taskId=xxx×tamp=xxx&taskType=xxx&signature=xxx&&success=xxx,其中:
- taskId:为任务 ID
- timestamp:为调用时的时间戳,单位:毫秒
- taskType:为任务类型
- success:为是否成功
- signature:为签名,调用方可用来判断请求是否来自阿里云;计算说明:将 taskId=xxx×tamp=xxx&aliUid=xxx 进行 md5+base64 加密,注意顺序;调用方接到回调后,taskId 和 timestamp 可以从回调 URL 中获取,aliUid 即为阿里云主账号 ID。通过计算来比对自己计算出的 signature,与 URL 中的 signature 是否一致,详见下方 Java 代码示例。
import java.net.URLEncoder;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.nio.charset.StandardCharsets;
import org.apache.commons.codec.binary.Base64;
public class Sample {
public static void signature() {
long timestamp = System.currentTimeMillis();
String taskId = "xxx";
String aliUid = "xxx";
// 将 taskId=xxx×tamp=xxx&aliUid=xxx 进行 md5 + base64 加密,放在 signature 字段
String signature;
try {
signature = URLEncoder.encode(md5Base64("taskId=" + taskId + "×tamp=" + timestamp + "&aliUid=" + aliUid), "utf-8");
System.out.println(signature);
} catch (Exception e) {
e.printStackTrace();
}
}
public static String md5Base64(String str) throws NoSuchAlgorithmException {
//string 编码必须为 utf-8
byte[] utfBytes = str.getBytes(StandardCharsets.UTF_8);
MessageDigest mdTemp = MessageDigest.getInstance("MD5");
mdTemp.update(utfBytes);
byte[] md5Bytes = mdTemp.digest();
return Base64.encodeBase64String(md5Bytes);
}
}
返回参数
示例
正常返回示例
JSON
格式
{
"data": {
"taskId": "20240905-********-93E9-5D45-B4EF-045743A34071"
},
"requestId": "9F1DB065-AE0D-5EE3-B1AF-48632CB0831C",
"success": "True"
}
错误码
HTTP status code | 错误码 | 错误信息 | 描述 |
---|---|---|---|
400 | CCAI.InvalidParam.NotExist | The specified parameter %s is not valid. | 请求API的参数不存在 |
400 | CCAI.ParamInvalid.IllegalParamValue | The parameter value of the request API is illegal %s. | 请求API的参数不合法 |
400 | CCAI.Throttling.Qpm | Trigger QPM flow restriction. Please purchase higher QPM for paid API. If free API has special requirements, please contact us through DingTalk group (62730018475). | 触发QPM限流,付费API请购买更高QPM,免费API如有特殊需求,请通过钉钉群(62730018475)联系我们。 |
400 | CCAI.Throttling.Qps | Trigger current QPS limit, pay API please buy higher QPS, the free API if you have special requirements, please contact us through the DingTalk group (62730018475). | 触发限流,付费API请购买更高QPS,免费API如有特殊需求,请通过钉钉群(62730018475)联系我们。 |
403 | CCAI.IllegalPermission.NoAuth | User not authorized to operate on the specified resource. | 该用户未被授权可操作指定资源 |
403 | CCAI.ParamNotfound.MissParam | Parameter verification failed, The specified parameter %s is missing. | 参数校验失败,指定参数缺失。 |
403 | CCAI.TenantPermission.NoAuth | The current account does not have the permission to specify the business space. Please authorize the business space permission. | 当前账号没有指定业务空间的权限,请进行业务空间权限授权。 |
429 | Ccai.Throttling.Qps | Trigger current QPS limit, pay API please buy higher QPS, free API if you have special requirements, please contact us through the DingTalk group (62730018475). | 无效错误码,后续下线 |
500 | CCAI.InternalError | The request processing has failed due to some unknown error, exception or failure. | 系统内部错误,请稍后重试 |
访问错误中心查看更多错误码。