通义晓蜜对话分析专注于对话信息抽取、场景分类、满意度判定等分析需求,擅长处理复杂业务逻辑的质检规则,支持自定义分析标准,具备强大的多轮对话理解和语义推理能力。
核心功能
对话信息抽取:从非结构化对话中自动提取关键信息,如时间、地点、产品、问题描述、客户诉求等
典型应用:工单系统自动填充、CRM客户信息更新、问题分类和归档
场景分类:识别对话所属的业务场景,支持自定义场景类别
典型应用:对话自动路由到专业团队、统计不同场景的咨询量、针对性优化服务流程
满意度挖掘:根据自定义规则综合判定客户满意度等级,支持多维度评估
典型应用:客服绩效考核、服务质量监控、客户体验改进
复杂质检:支持多条件嵌套、逻辑推理等复杂质检规则,准确执行企业特有的质检规范
典型应用:金融、医疗等高合规要求行业的质检、多步骤业务流程质检、复杂的话术合规检查
多轮对话理解:自动关联对话的前后内容,准确理解指代关系和上下文依赖,把握用户在多轮交流中的真实意图
典型应用:复杂业务流程的对话分析、长对话的意图理解、上下文相关的信息提取
深层语义理解:准确识别对话中的隐含语义、情感倾向和言外之意
典型应用:客户情绪监控、潜在投诉预警、销售机会识别
以上功能可通过自定义Prompt实现,具体用法请参见功能示例。
适用范围
模型选型
应用场景 | 推荐模型 | 模型优势 | 使用建议 |
快速信息提取与场景分类 | tongyi-xiaomi-analysis-flash | 低时延,成本低,适合高频实时调用 | 适用于标准化的信息抽取和分类任务,不涉及复杂推理 |
标准化质检 | tongyi-xiaomi-analysis-flash | 准确理解对话语义和情感倾向,支持自定义判定规则,满足大部分质检需求 | 适用于规则明确的质检场景,复杂业务逻辑建议使用 pro 模型 |
复杂逻辑质检 | tongyi-xiaomi-analysis-pro | 更强的推理能力,支持多条件嵌套、上下文关联等复杂业务规则 | 成本较flash高,适用于金融、医疗等对准确性要求极高的场景 |
多轮对话深度分析 | tongyi-xiaomi-analysis-pro | 更强的对话理解能力,准确理解指代关系和隐含意图 | 适用于售后工单分析、投诉根因挖掘等需要全局理解的场景 |
快速开始
使用建议
规范对话内容格式:建议将对话内容组织为
[轮次] 角色:内容的格式。使用规范的格式有助于模型解析对话结构,准确识别发言角色、轮次顺序及上下文指代关系。示例:
[1] 客服:您好,欢迎致电AB电商平台,请问有什么可以帮您? [2] 客户:你好,我上周在你们店买了一台料理机,现在运行时有点异响。 [3] 客服:很抱歉给您带来困扰,请问异响是在开机后立刻出现还是运行一段时间后出现的呢?编写清晰的规则:清晰的分析规则是模型准确执行任务的关键。模糊或矛盾的规则会导致分析结果不符合预期。
规则编写技巧:
具体可执行:避免模糊表述。例如,“服务态度好”应改为“响应及时且使用礼貌用语”。
明确优先级:多条规则建议明确优先级和执行顺序,避免规则冲突时模型无法判断。
提供正反例:在规则中提供正反例,帮助模型准确理解判定标准。
使用特殊标记代替关键术语:当业务中某个术语的定义与日常理解不同时,建议使用特殊标记(例如字母缩写)代替该术语,避免模型按通用知识理解。
调用参数设置:对话分析任务通常要求结果的确定性和准确性。建议使用以下参数配置:
temperature:设置为0.0,使模型每次对相同输入返回相同结果,确保分析的一致性top_k:设置为1,使模型总是选择概率最高的词,避免随机性干扰
控制输出格式:为提供可解析及可控的分析结果,建议在
prompt中明确输出格式,必要时可给定输出示例。
代码示例
前提条件:已获取API Key。如果通过SDK调用,需要安装最新版SDK。
OpenAI兼容
Python
from openai import OpenAI
import os
dialogue = """
[1] 客服:您好,欢迎致电AB电商平台,请问有什么可以帮您?
[2] 客户:你好,我上周在你们店买了一台料理机,现在运行时有点异响。
[3] 客服:很抱歉给您带来困扰,请问异响是在开机后立刻出现还是运行一段时间后出现的呢?
[4] 客户:差不多开机几秒钟后就有了,而且声音很尖锐。
[5] 客服:了解了,请问您方便拍一段运行过程的视频发给我们技术人员确认吗?
[6] 客户:可以,我一会儿拍好发给你们。
[7] 客服:好的,我们收到视频后会在两小时内给您回复处理方案。
[8] 客户:那如果确定是质量问题,是可以直接换新的吧?
[9] 客服:是的,如果检测为质量问题,我们将为您免费更换新机并承担运费。
[10] 客户:好的,那我等你们的反馈,谢谢你们的耐心解答。
"""
analysis_prompt = f"""
## 客服质检满意度判定规则
### 一、目标
根据客服与客户的对话内容,准确解析客户的情绪与反馈,判定其**满意度等级**(满意 / 不满意 / 一般),并提供判定理由,用于客服质检与服务改进。
### 二、判定流程(必须自上而下匹配,遇到符合条件的规则时立即终止后续判断)
1. **无客户发言**
- 条件:整段对话中没有客户的内容。
- 结果:判定为 **一般**。
2. **投诉或强烈不满**
- 条件:客户直接或间接表示要投诉(对象包括骑手、快递员、商家、客服等),或者在催促问题进度时带有明显焦急、质问、抱怨等消极情绪。
- 示例:
- "我要投诉你们的配送员"
- "怎么还没处理?到底什么时候能好?"
- 结果:判定为 **不满意**,并立即结束判定。
3. **最后一句负面情绪**
- 条件:客户的最后一句话中出现负面情绪。
- 结果:判定为 **不满意**。
4. **无感谢记录**
- 条件:如果整个对话中客户没有表达"谢谢"等明确感谢语。
- 结果:判定为 **一般**。
5. **客户主动表示满意或好评**
- 条件:对话中客户明确表示对客服满意或给予好评。
- 结果:忽略第4条直接判定为 **满意**。
6. **方案后感谢**
- 条件:服务结束前,客服提供了赔付、退单、退款等解决方案后,客户明确积极地表示感谢。
- 注意点:
- "好的"、"行"不算感谢
- 没有回复不算认可
- 结果:判定为 **满意**。
7. **其他情况**
- 条件:非上述任何情况,且无投诉或明显不满。
- 结果:判定为 **一般**。
### 三、对话内容
```text
{dialogue}
```
### 四、输出格式
判定结果需包含两个部分:
1. **满意度标签**:满意 / 不满意 / 一般
2. **判定理由**:基于上述规则的简要说明。
格式:
```
满意度标签#判定理由
```
示例:
```
一般#在整个对话中,客户没有表达过感谢,也未表现出投诉或不满情绪,因此判定为一般。
不满意#客户在催促处理进度时表现出明显不满和质问情绪,符合规则2,判定为不满意。
```
"""
# 获取API Key:https://help.aliyun.com/zh/model-studio/get-api-key
# 若没有配置环境变量,请用阿里云百炼API Key将下行替换为:api_key="sk-xxx"
client = OpenAI(
api_key=os.getenv("DASHSCOPE_API_KEY"),
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
)
completion = client.chat.completions.create(
model="tongyi-xiaomi-analysis-flash",
messages=[
{
'role': 'user',
'content': analysis_prompt
}
],
temperature=0,
extra_body={
"top_k": 1
}
)
print(completion.choices[0].message.content)Java
import com.openai.client.OpenAIClient;
import com.openai.client.okhttp.OpenAIOkHttpClient;
import com.openai.core.JsonValue;
import com.openai.models.chat.completions.ChatCompletion;
import com.openai.models.chat.completions.ChatCompletionCreateParams;
public class Main {
public static void main(String[] args) {
try {
OpenAIClient client = OpenAIOkHttpClient.builder()
// 获取API Key:https://help.aliyun.com/zh/model-studio/get-api-key
// 若没有配置环境变量,请用阿里云百炼API Key将下行替换为.apiKey("sk-xxx")
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
.baseUrl("https://dashscope.aliyuncs.com/compatible-mode/v1")
.build();
// 创建 ChatCompletion 参数
ChatCompletionCreateParams params = ChatCompletionCreateParams.builder()
.model("tongyi-xiaomi-analysis-flash")
.addUserMessage(getUserMessage())
.temperature(0.0)
.putAdditionalBodyProperty("top_k", JsonValue.from(1))
.build();
// 发送请求并获取响应
ChatCompletion chatCompletion = client.chat().completions().create(params);
String content = chatCompletion.choices().get(0).message().content().orElse("未返回有效内容");
System.out.println(content);
// 如需查看完整响应,请取消下列注释
// System.out.println(chatCompletion);
} catch (Exception e) {
System.err.println("错误信息:" + e.getMessage());
}
}
private static String getUserMessage() {
String dialogue ="[1] 客服:您好,欢迎致电AB电商平台,请问有什么可以帮您?\n" +
" [2] 客户:你好,我上周在你们店买了一台料理机,现在运行时有点异响。\n" +
" [3] 客服:很抱歉给您带来困扰,请问异响是在开机后立刻出现还是运行一段时间后出现的呢?\n" +
" [4] 客户:差不多开机几秒钟后就有了,而且声音很尖锐。\n" +
" [5] 客服:了解了,请问您方便拍一段运行过程的视频发给我们技术人员确认吗?\n" +
" [6] 客户:可以,我一会儿拍好发给你们。\n" +
" [7] 客服:好的,我们收到视频后会在两小时内给您回复处理方案。\n" +
" [8] 客户:那如果确定是质量问题,是可以直接换新的吧?\n" +
" [9] 客服:是的,如果检测为质量问题,我们将为您免费更换新机并承担运费。\n" +
" [10] 客户:好的,那我等你们的反馈,谢谢你们的耐心解答。";
String analysisPrompt = "## 客服质检满意度判定规则\n" +
"\n" +
"### 一、目标\n" +
"根据客服与客户的对话内容,准确解析客户的情绪与反馈,判定其**满意度等级**(满意 / 不满意 / 一般),并提供判定理由,用于客服质检与服务改进。\n" +
"\n" +
"### 二、判定流程(必须自上而下匹配,遇到符合条件的规则时立即终止后续判断)\n" +
"\n" +
"1. **无客户发言**\n" +
" - 条件:整段对话中没有客户的内容。\n" +
" - 结果:判定为 **一般**。\n" +
"\n" +
"2. **投诉或强烈不满**\n" +
" - 条件:客户直接或间接表示要投诉(对象包括骑手、快递员、商家、客服等),或者在催促问题进度时带有明显焦急、质问、抱怨等消极情绪。\n" +
" - 示例:\n" +
" - \"我要投诉你们的配送员\"\n" +
" - \"怎么还没处理?到底什么时候能好?\"\n" +
" - 结果:判定为 **不满意**,并立即结束判定。\n" +
"\n" +
"3. **最后一句负面情绪**\n" +
" - 条件:客户的最后一句话中出现负面情绪。\n" +
" - 结果:判定为 **不满意**。\n" +
"\n" +
"4. **无感谢记录**\n" +
" - 条件:如果整个对话中客户没有表达\"谢谢\"等明确感谢语。\n" +
" - 结果:判定为 **一般**。\n" +
"\n" +
"5. **客户主动表示满意或好评**\n" +
" - 条件:对话中客户明确表示对客服满意或给予好评。\n" +
" - 结果:忽略第4条直接判定为 **满意**。\n" +
"\n" +
"6. **方案后感谢**\n" +
" - 条件:服务结束前,客服提供了赔付、退单、退款等解决方案后,客户明确积极地表示感谢。\n" +
" - 注意点:\n" +
" - \"好的\"、\"行\"不算感谢\n" +
" - 没有回复不算认可\n" +
" - 结果:判定为 **满意**。\n" +
"\n" +
"7. **其他情况**\n" +
" - 条件:非上述任何情况,且无投诉或明显不满。\n" +
" - 结果:判定为 **一般**。\n" +
"\n" +
"### 三、对话内容\n" +
"```text\n" +
dialogue + "\n" +
"```\n" +
"\n" +
"### 四、输出格式\n" +
"判定结果需包含两个部分:\n" +
"1. **满意度标签**:满意 / 不满意 / 一般\n" +
"2. **判定理由**:基于上述规则的简要说明。\n" +
"\n" +
"格式:\n" +
"```\n" +
"满意度标签#判定理由\n" +
"```\n" +
"示例:\n" +
"```\n" +
"一般#在整个对话中,客户没有表达过感谢,也未表现出投诉或不满情绪,因此判定为一般。\n" +
"不满意#客户在催促处理进度时表现出明显不满和质问情绪,符合规则2,判定为不满意。\n" +
"```";
return analysisPrompt;
}
}Node.js
// 需要 Node.js v18+,需在 ES Module 环境下运行
import OpenAI from "openai";
const openai = new OpenAI(
{
// 获取API Key:https://help.aliyun.com/zh/model-studio/get-api-key
// 若没有配置环境变量,请用阿里云百炼API Key将下行替换为:apiKey: "sk-xxx",
apiKey: process.env.DASHSCOPE_API_KEY,
baseURL: "https://dashscope.aliyuncs.com/compatible-mode/v1"
}
);
const completion = await openai.chat.completions.create({
model: "tongyi-xiaomi-analysis-flash",
messages: [
{
role: "user",
content: "请帮我提取下面对话中的关键信息:[1] 客服:您好,欢迎致电AB电商平台,请问有什么可以帮您?[2] 客户:你好,我上周在你们店买了一台料理机,现在运行时有点异响。"
}
],
temperature: 0,
top_k: 1
});
console.log(completion.choices[0].message.content);
// 如需查看完整响应,请取消下列注释
// console.log(JSON.stringify(completion, null, 4));Go
// OpenAI Go SDK版本不低于 v2.4.0
package main
import (
"context"
// 如需查看完整响应,请取消下方及代码末尾的注释
// "encoding/json"
"fmt"
"os"
"github.com/openai/openai-go/v2"
"github.com/openai/openai-go/v2/option"
)
func main() {
// 获取API Key:https://help.aliyun.com/zh/model-studio/get-api-key
// 若没有配置环境变量,请用阿里云百炼API Key将下行替换为:apiKey := "sk-xxx"
apiKey := os.Getenv("DASHSCOPE_API_KEY")
client := openai.NewClient(
option.WithAPIKey(apiKey),
option.WithBaseURL("https://dashscope.aliyuncs.com/compatible-mode/v1"),
)
chatCompletion, err := client.Chat.Completions.New(
context.TODO(), openai.ChatCompletionNewParams{
Messages: []openai.ChatCompletionMessageParamUnion{
openai.UserMessage("请帮我提取下面对话中的关键信息:[1] 客服:您好,欢迎致电AB电商平台,请问有什么可以帮您?[2] 客户:你好,我上周在你们店买了一台料理机,现在运行时有点异响。"),
},
Model: "tongyi-xiaomi-analysis-flash",
Temperature: openai.Float(0.0),
},
option.WithJSONSet("top_k", 1),
)
if err != nil {
fmt.Fprintf(os.Stderr, "请求失败: %v\n", err)
os.Exit(1)
}
if len(chatCompletion.Choices) > 0 {
fmt.Println(chatCompletion.Choices[0].Message.Content)
}
// 如需查看完整响应,请取消下列注释
// jsonData, _ := json.MarshalIndent(chatCompletion, "", " ")
// fmt.Println(string(jsonData))
}cURL
curl --location "https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions" \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "tongyi-xiaomi-analysis-flash",
"messages": [
{
"role": "user",
"content": "请帮我提取下面对话中的关键信息:[1] 客服:您好,欢迎致电AB电商平台,请问有什么可以帮您?[2] 客户:你好,我上周在你们店买了一台料理机,现在运行时有点异响。"
}
],
"temperature": 0.0,
"top_k": 1
}'DashScope
Python
from http import HTTPStatus
import dashscope
import os
dashscope.base_http_api_url = "https://dashscope.aliyuncs.com/api/v1"
dialogue = """
[1] 客服:您好,欢迎致电AB电商平台,请问有什么可以帮您?
[2] 客户:你好,我上周在你们店买了一台料理机,现在运行时有点异响。
[3] 客服:很抱歉给您带来困扰,请问异响是在开机后立刻出现还是运行一段时间后出现的呢?
[4] 客户:差不多开机几秒钟后就有了,而且声音很尖锐。
[5] 客服:了解了,请问您方便拍一段运行过程的视频发给我们技术人员确认吗?
[6] 客户:可以,我一会儿拍好发给你们。
[7] 客服:好的,我们收到视频后会在两小时内给您回复处理方案。
[8] 客户:那如果确定是质量问题,是可以直接换新的吧?
[9] 客服:是的,如果检测为质量问题,我们将为您免费更换新机并承担运费。
[10] 客户:好的,那我等你们的反馈,谢谢你们的耐心解答。
"""
analysis_prompt = f"""
## 客服质检满意度判定规则
### 一、目标
根据客服与客户的对话内容,准确解析客户的情绪与反馈,判定其**满意度等级**(满意 / 不满意 / 一般),并提供判定理由,用于客服质检与服务改进。
### 二、判定流程(必须自上而下匹配,遇到符合条件的规则时立即终止后续判断)
1. **无客户发言**
- 条件:整段对话中没有客户的内容。
- 结果:判定为 **一般**。
2. **投诉或强烈不满**
- 条件:客户直接或间接表示要投诉(对象包括骑手、快递员、商家、客服等),或者在催促问题进度时带有明显焦急、质问、抱怨等消极情绪。
- 示例:
- "我要投诉你们的配送员"
- "怎么还没处理?到底什么时候能好?"
- 结果:判定为 **不满意**,并立即结束判定。
3. **最后一句负面情绪**
- 条件:客户的最后一句话中出现负面情绪。
- 结果:判定为 **不满意**。
4. **无感谢记录**
- 条件:如果整个对话中客户没有表达"谢谢"等明确感谢语。
- 结果:判定为 **一般**。
5. **客户主动表示满意或好评**
- 条件:对话中客户明确表示对客服满意或给予好评。
- 结果:忽略第4条直接判定为 **满意**。
6. **方案后感谢**
- 条件:服务结束前,客服提供了赔付、退单、退款等解决方案后,客户明确积极地表示感谢。
- 注意点:
- "好的"、"行"不算感谢
- 没有回复不算认可
- 结果:判定为 **满意**。
7. **其他情况**
- 条件:非上述任何情况,且无投诉或明显不满。
- 结果:判定为 **一般**。
### 三、对话内容
```text
{dialogue}
```
### 四、输出格式
判定结果需包含两个部分:
1. **满意度标签**:满意 / 不满意 / 一般
2. **判定理由**:基于上述规则的简要说明。
格式:
```
满意度标签#判定理由
```
示例:
```
一般#在整个对话中,客户没有表达过感谢,也未表现出投诉或不满情绪,因此判定为一般。
不满意#客户在催促处理进度时表现出明显不满和质问情绪,符合规则2,判定为不满意。
```
"""
# 获取API Key:https://help.aliyun.com/zh/model-studio/get-api-key
# 若没有配置环境变量,请用阿里云百炼API Key将下行替换为:api_key="sk-xxx"
response = dashscope.Generation.call(
api_key=os.getenv('DASHSCOPE_API_KEY'),
model="tongyi-xiaomi-analysis-flash",
messages=[
{
'role': 'user',
'content': analysis_prompt
}
],
temperature=0.0,
top_k=1,
result_format="message"
)
if response.status_code == HTTPStatus.OK:
print(response.output.choices[0].message.content)
else:
print('Request id: %s, Status code: %s, error code: %s, error message: %s' % (
response.request_id, response.status_code,
response.code, response.message
))Java
import java.util.Arrays;
import java.lang.System;
import com.alibaba.dashscope.aigc.generation.Generation;
import com.alibaba.dashscope.aigc.generation.GenerationParam;
import com.alibaba.dashscope.aigc.generation.GenerationResult;
import com.alibaba.dashscope.common.Message;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.protocol.Protocol;
public class Main {
public static GenerationResult callWithMessage() throws ApiException, NoApiKeyException, InputRequiredException {
Generation gen = new Generation(Protocol.HTTP.getValue(), "https://dashscope.aliyuncs.com/api/v1");
Message userMsg = Message.builder()
.role(Role.USER.getValue())
.content(getContent())
.build();
GenerationParam param = GenerationParam.builder()
// 获取API Key:https://help.aliyun.com/zh/model-studio/get-api-key
// 若没有配置环境变量,请用阿里云百炼API Key将下行替换为:.apiKey("sk-xxx")
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
.model("tongyi-xiaomi-analysis-flash")
.messages(Arrays.asList(userMsg))
.temperature(0.0f)
.topK(1)
.resultFormat(GenerationParam.ResultFormat.MESSAGE)
.build();
return gen.call(param);
}
public static void main(String[] args) {
try {
GenerationResult result = callWithMessage();
System.out.println(result.getOutput().getChoices().get(0).getMessage().getContent());
// 如需查看完整响应,请取消下列注释
// System.out.println(JsonUtils.toJson(result));
} catch (ApiException | NoApiKeyException | InputRequiredException e) {
System.err.println("错误信息:"+e.getMessage());
}
}
private static String getContent() {
String dialogue ="[1] 客服:您好,欢迎致电AB电商平台,请问有什么可以帮您?\n" +
" [2] 客户:你好,我上周在你们店买了一台料理机,现在运行时有点异响。\n" +
" [3] 客服:很抱歉给您带来困扰,请问异响是在开机后立刻出现还是运行一段时间后出现的呢?\n" +
" [4] 客户:差不多开机几秒钟后就有了,而且声音很尖锐。\n" +
" [5] 客服:了解了,请问您方便拍一段运行过程的视频发给我们技术人员确认吗?\n" +
" [6] 客户:可以,我一会儿拍好发给你们。\n" +
" [7] 客服:好的,我们收到视频后会在两小时内给您回复处理方案。\n" +
" [8] 客户:那如果确定是质量问题,是可以直接换新的吧?\n" +
" [9] 客服:是的,如果检测为质量问题,我们将为您免费更换新机并承担运费。\n" +
" [10] 客户:好的,那我等你们的反馈,谢谢你们的耐心解答。";
String analysisPrompt = "## 客服质检满意度判定规则\n" +
"\n" +
"### 一、目标\n" +
"根据客服与客户的对话内容,准确解析客户的情绪与反馈,判定其**满意度等级**(满意 / 不满意 / 一般),并提供判定理由,用于客服质检与服务改进。\n" +
"\n" +
"### 二、判定流程(必须自上而下匹配,遇到符合条件的规则时立即终止后续判断)\n" +
"\n" +
"1. **无客户发言**\n" +
" - 条件:整段对话中没有客户的内容。\n" +
" - 结果:判定为 **一般**。\n" +
"\n" +
"2. **投诉或强烈不满**\n" +
" - 条件:客户直接或间接表示要投诉(对象包括骑手、快递员、商家、客服等),或者在催促问题进度时带有明显焦急、质问、抱怨等消极情绪。\n" +
" - 示例:\n" +
" - \"我要投诉你们的配送员\"\n" +
" - \"怎么还没处理?到底什么时候能好?\"\n" +
" - 结果:判定为 **不满意**,并立即结束判定。\n" +
"\n" +
"3. **最后一句负面情绪**\n" +
" - 条件:客户的最后一句话中出现负面情绪。\n" +
" - 结果:判定为 **不满意**。\n" +
"\n" +
"4. **无感谢记录**\n" +
" - 条件:如果整个对话中客户没有表达\"谢谢\"等明确感谢语。\n" +
" - 结果:判定为 **一般**。\n" +
"\n" +
"5. **客户主动表示满意或好评**\n" +
" - 条件:对话中客户明确表示对客服满意或给予好评。\n" +
" - 结果:忽略第4条直接判定为 **满意**。\n" +
"\n" +
"6. **方案后感谢**\n" +
" - 条件:服务结束前,客服提供了赔付、退单、退款等解决方案后,客户明确积极地表示感谢。\n" +
" - 注意点:\n" +
" - \"好的\"、\"行\"不算感谢\n" +
" - 没有回复不算认可\n" +
" - 结果:判定为 **满意**。\n" +
"\n" +
"7. **其他情况**\n" +
" - 条件:非上述任何情况,且无投诉或明显不满。\n" +
" - 结果:判定为 **一般**。\n" +
"\n" +
"### 三、对话内容\n" +
"```text\n" +
dialogue + "\n" +
"```\n" +
"\n" +
"### 四、输出格式\n" +
"判定结果需包含两个部分:\n" +
"1. **满意度标签**:满意 / 不满意 / 一般\n" +
"2. **判定理由**:基于上述规则的简要说明。\n" +
"\n" +
"格式:\n" +
"```\n" +
"满意度标签#判定理由\n" +
"```\n" +
"示例:\n" +
"```\n" +
"一般#在整个对话中,客户没有表达过感谢,也未表现出投诉或不满情绪,因此判定为一般。\n" +
"不满意#客户在催促处理进度时表现出明显不满和质问情绪,符合规则2,判定为不满意。\n" +
"```";
return analysisPrompt;
}
}cURL
curl --location "https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation" \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header "Content-Type: application/json" \
--data '{
"model": "tongyi-xiaomi-analysis-flash",
"input":{
"messages":[
{
"role": "user",
"content": "请帮我提取下面对话中的关键信息:[1] 客服:您好,欢迎致电AB电商平台,请问有什么可以帮您?[2] 客户:你好,我上周在你们店买了一台料理机,现在运行时有点异响。"
}
],
"temperature": 0.0,
"top_k": 1
},
"parameters": {
"result_format": "message"
}
}'功能示例
以下每个功能示例提供可直接运行的 content,替换代码示例中的 content 即可体验。
对话信息抽取
功能说明:从非结构化对话中自动提取关键信息,如时间、地点、产品、问题描述、客户诉求等。
适用场景:
工单系统自动填充
CRM 客户信息更新
问题分类和归档
content示例:
请从以下对话中提取关键信息,并按照 JSON 格式输出。
对话内容:
```
[1] 客服:您好,我是小王,请问有什么可以帮您?
[2] 客户:你好,我是上周三在你们南京新街口店买的iPhone 15,订单号是123456789,现在屏幕有点发黄。
[3] 客服:好的,我帮您查一下。您方便告诉我您的手机号码吗?
[4] 客户:138****5678
[5] 客服:收到,我看到您的订单了。关于屏幕发黄的问题,请问是在什么情况下发现的呢?
[6] 客户:就是正常使用的时候发现的,特别是看白色背景的时候很明显。
```
需要提取的信息:
1. 购买时间
2. 购买门店
3. 产品名称
4. 订单号
5. 客户联系方式
6. 问题描述
7. 问题发现场景
输出格式(JSON):
```json
{{
"购买时间": "...",
"购买门店": "...",
"产品名称": "...",
"订单号": "...",
"客户联系方式": "...",
"问题描述": "...",
"问题发现场景": "..."
}}
```
注意:如果某项信息在对话中未提及,请填写 "未提及"。场景分类
功能说明:自动识别对话所属的业务场景,支持自定义场景类别。
适用场景:
对话自动路由到专业团队
统计不同场景的咨询量
针对性优化服务流程
content示例:
请判断以下对话属于哪个业务场景。
对话内容:
```
[1] 客服:您好,欢迎致电客服热线,请问有什么可以帮您?
[2] 客户:我想问一下你们的会员有什么优惠活动?
[3] 客服:好的,目前我们有新会员首月8折,老会员推荐好友可获得积分奖励。
[4] 客户:那怎么注册会员呢?
[5] 客服:您可以通过我们的APP或者小程序注册,填写基本信息就可以了。
[6] 客户:好的,谢谢。
```
可选场景类别:
1. 售前咨询 - 客户询问产品功能、价格、购买方式等
2. 售后投诉 - 客户反映产品问题、服务不满、要求退换货等
3. 物流查询 - 客户询问订单状态、配送进度、物流信息等
4. 会员服务 - 客户咨询会员权益、积分、优惠活动等
5. 技术支持 - 客户寻求产品使用帮助、故障排查等
6. 账户问题 - 客户反映登录、密码、账户安全等问题
输出格式:
```
场景类别:[从上述类别中选择一个]
置信度:[高/中/低]
判断依据:[简要说明判断理由,1-2句话]
```满意度挖掘
功能说明:根据自定义规则综合判定客户满意度,支持多维度评估。
适用场景:
客服绩效考核
服务质量监控
客户体验改进
content示例:
请根据以下对话判定客户满意度。
对话内容:
```
[1] 客服:您好,我是客服小李,请问有什么可以帮您?
[2] 客户:我的订单怎么还没发货?已经三天了!
[3] 客服:非常抱歉给您带来不便,我马上帮您查询。请问您的订单号是?
[4] 客户:1234567890
[5] 客服:好的,我看到您的订单了。由于最近物流高峰,发货有些延迟。我立即联系仓库加急处理,今天内一定发出。
[6] 客户:那什么时候能到?
[7] 客服:预计3-5个工作日送达。为了表示歉意,我给您的账户充值了20元优惠券,下次购物可以使用。
[8] 客户:好吧,那你们抓紧发货。
[9] 客服:一定!我会持续关注您的订单,发货后第一时间通知您。还有其他需要帮助的吗?
[10] 客户:没有了。
```
满意度判定标准:
1. **不满意**:客户明确表达投诉、不满、要求赔偿或退款
2. **一般**:客户问题得到解决但未表达感谢或认可,或对解决方案持保留态度
3. **满意**:客户明确表达感谢、认可服务,或对解决方案表示接受和满意
评估维度:
- 客户情绪(初始情绪 vs 结束时情绪)
- 问题解决情况(是否给出解决方案)
- 客户反馈(是否表达感谢、认可或继续不满)
- 补偿措施(是否有额外补偿或优惠)
输出格式:
```
满意度等级:[满意/一般/不满意]
初始情绪:[描述客户最初的情绪状态]
结束情绪:[描述对话结束时客户的情绪状态]
问题是否解决:[是/否/部分解决]
判定理由:[详细说明判定依据,结合评估维度]
```复杂质检
功能说明:支持多条件嵌套、逻辑推理等复杂质检规则,准确执行企业特有的质检规范。
适用场景:
金融、医疗等高合规要求行业
多步骤业务流程质检
复杂的话术合规检查
content示例:
请根据以下金融行业客服质检规则,对对话进行质检。
对话内容:
```
[1] 客服:您好,欢迎致电XX银行信用卡中心,我是工号8888的客服小张,请问有什么可以帮您?
[2] 客户:我想办理信用卡额度提升。
[3] 客服:好的,请问您的姓名和身份证号是?
[4] 客户:我叫张三,身份证号是110101199001011234。
[5] 客服:好的张三先生,我帮您查询一下。您当前信用卡额度是2万元,根据您的用卡记录和信用评分,可以为您提升到5万元。请问您需要办理吗?
[6] 客户:好的,办理吧。
[7] 客服:好的,请您确认:将您的信用卡额度从2万元提升至5万元,提升后立即生效。请问确认办理吗?
[8] 客户:确认。
[9] 客服:好的,已为您提交申请,预计2个工作日内完成。感谢您的来电,祝您生活愉快,再见。
```
质检规则(必须严格执行):
**一、开场白规则(必检项)**
- 规则1:必须包含"您好"或"欢迎"
- 规则2:必须自报工号
- 规则3:必须说明所属机构(如"XX银行信用卡中心")
- **判定**:以上三项全部满足才算合格
**二、身份验证规则(必检项)**
- 规则4:涉及账户操作时,必须核验客户身份(姓名+身份证号 或 姓名+银行卡号)
- **判定**:涉及账户操作但未核验身份,则为严重违规
**三、重要事项告知规则(必检项)**
- 规则5:涉及额度调整、费率变更、产品变更时,必须:
- 明确告知变更前后的具体内容
- 告知生效时间
- 获得客户明确确认("是"、"确认"、"同意"等明确表述)
- **判定**:以上任一项缺失,则为严重违规
**四、结束语规则(建议项)**
- 规则6:建议包含感谢语
- 规则7:建议包含祝福语
- **判定**:不合格不影响整体质检结果,但会扣分
**输出格式**:
```
质检结果:[合格/不合格]
违规项数量:[数字]
详细检查:
1. 开场白规则:[合格/不合格] - [说明]
2. 身份验证规则:[合格/不合格] - [说明]
3. 重要事项告知规则:[合格/不合格] - [说明]
4. 结束语规则:[合格/不合格(建议项)] - [说明]
综合评价:[总结性评价,1-2句话]
```多轮对话理解
功能说明:自动关联对话的前后内容,准确理解指代关系和上下文依赖。
适用场景:
复杂业务流程的对话分析
长对话的意图理解
上下文相关的信息提取
content示例:
请从以下对话中提取完整的工单信息,需要整合多轮对话中分散的信息。
对话内容:
```
[1] 客服:您好,请问有什么可以帮您?
[2] 客户:我上周买的路由器老是掉线。
[3] 客服:好的,请问您购买的是哪个型号?
[4] 客户:AX3000,白色的那款。
[5] 客服:收到。请问掉线的频率大概是多久一次?
[6] 客户:差不多每隔2-3小时就断一次,特别影响办公。
[7] 客服:了解。请问这个情况是从什么时候开始的?
[8] 客户:就这两天,之前一直用得好好的。
[9] 客服:明白了。那您最近有没有调整过路由器的位置或者更改过设置?
[10] 客户:没有啊,一直放在客厅,设置也没动过。
[11] 客服:好的,这个问题可能是固件版本较旧导致的。我建议您先升级一下固件试试。
[12] 客户:怎么升级?
[13] 客服:您在手机上打开我们的APP,找到这台设备,点击"固件升级"就可以了。
[14] 客户:好的,我现在试试。
[15] 客服:嗯,升级过程大概需要5分钟,这期间网络会断开,您不要关闭路由器电源。
[16] 客户:好的,那升级完成后会自动恢复吗?
[17] 客服:会的,完成后会自动重启,然后您重新连接WiFi就可以了。
[18] 客户:明白了,如果升级后还是掉线呢?
[19] 客服:如果升级后问题依然存在,可能是硬件故障,我会给您安排换货或上门检修。
[20] 客户:好的,那我先试试看。谢谢。
```
请提取以下信息(注意:这些信息分散在不同轮次的对话中,需要关联上下文):
1. **产品信息**(型号、外观特征、购买时间)
2. **问题描述**(具体现象、发生频率)
3. **问题时间线**(什么时候开始出现、之前是否正常)
4. **客户操作**(是否有特殊操作或调整)
5. **客服诊断**(初步判断的原因)
6. **解决方案**(建议的处理步骤)
7. **后续预案**(如果方案无效的备选方案)
请以结构化格式输出,并标注每条信息来源于哪几轮对话。深层语义理解
功能说明:准确识别对话中的隐含语义、情感倾向和言外之意。
适用场景:
客户情绪监控
潜在投诉预警
销售机会识别
content示例:
请对以下对话进行深层语义分析。
对话内容:
```
[1] 客服:您好,请问有什么可以帮您?
[2] 客户:我的会员怎么突然过期了?上个月还能用的。
[3] 客服:您好,我帮您查询一下。请问您的手机号是?
[4] 客户:138****5678
[5] 客服:好的,我看到您的会员是年费会员,去年10月15日到期的。
[6] 客户:哦,是这样啊。那我之前买的那些优惠券还能用吗?
[7] 客服:会员专属优惠券在会员过期后就无法使用了。不过您可以续费会员,优惠券就能继续使用。
[8] 客户:好吧,我知道了。
[9] 客服:还有其他需要帮助的吗?
[10] 客户:没有了,谢谢。
```
分析维度:
1. **客户情绪分析**
- 第2轮:"我的会员怎么突然过期了?上个月还能用的" 的情绪和隐含语义是什么?
- 第6轮:"哦,是这样啊" 的情绪变化是什么?
- 第8轮:"好吧,我知道了" 的真实情感是什么?
2. **潜在问题识别**
- 客户是否存在不满情绪?
- 是否有潜在的投诉风险?
- 是否对服务或规则有误解?
3. **客户真实诉求**
- 客户最关心的是什么?
- 客户的问题是否得到满意解决?
- 客户是否有未表达的需求?
4. **改进建议**
- 客服的回应是否得当?
- 如何改进可以提升客户满意度?
输出格式:按照上述四个维度,清晰地输出分析结果。API参考
关于模型的输入与输出参数,请参见千问。