通义晓蜜对话分析(Tongyi-Xiaomi-Analysis)

更新时间:
复制为 MD 格式

通义晓蜜对话分析专注于对话信息抽取、场景分类、满意度判定等分析需求,擅长处理复杂业务逻辑的质检规则,支持自定义分析标准,具备强大的多轮对话理解和语义推理能力。

核心功能

  • 对话信息抽取:从非结构化对话中自动提取关键信息,如时间、地点、产品、问题描述、客户诉求等

    典型应用:工单系统自动填充、CRM客户信息更新、问题分类和归档

  • 场景分类:识别对话所属的业务场景,支持自定义场景类别

    典型应用:对话自动路由到专业团队、统计不同场景的咨询量、针对性优化服务流程

  • 满意度挖掘:根据自定义规则综合判定客户满意度等级,支持多维度评估

    典型应用:客服绩效考核、服务质量监控、客户体验改进

  • 复杂质检:支持多条件嵌套、逻辑推理等复杂质检规则,准确执行企业特有的质检规范

    典型应用:金融、医疗等高合规要求行业的质检、多步骤业务流程质检、复杂的话术合规检查

  • 多轮对话理解:自动关联对话的前后内容,准确理解指代关系和上下文依赖,把握用户在多轮交流中的真实意图

    典型应用:复杂业务流程的对话分析、长对话的意图理解、上下文相关的信息提取

  • 深层语义理解:准确识别对话中的隐含语义、情感倾向和言外之意

    典型应用:客户情绪监控、潜在投诉预警、销售机会识别

以上功能可通过自定义Prompt实现,具体用法请参见功能示例

适用范围

  • 支持的地域:仅支持北京地域,需使用该地域的API Key

  • 支持的语言:对话分析模型仅支持中文对话分析,不支持其他语言

  • 支持的模型:

    • tongyi-xiaomi-analysis-flash:用于信息抽取、场景分类等结构化分析任务,适用于对响应时延要求较高的在线分析,及成本敏感的离线分析任务

    • tongyi-xiaomi-analysis-pro:专为处理复杂逻辑推理和深度语义理解而设计,适用于多条件嵌套的质检规则、上下文依赖强的多轮对话分析等场景;相比Flash模型,其推理和理解能力更强,但成本与延迟也相应更高

    更多信息请参见模型列表

模型选型

应用场景

推荐模型

模型优势

使用建议

快速信息提取与场景分类

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参考

关于模型的输入与输出参数,请参见千问