客诉流程的 AI 重塑:基于 RAG 与 LLM 的智能工单质检与分流实践
客诉流程的 AI 重塑:基于 RAG 与 LLM 的智能工单质检与分流实践
一、流程错分与响应拖延:传统人工客服分发质检的业务痛点
在很多传统行业以及中大型互联网平台中,客诉客服系统是维系客户关系的核心纽带。然而,随着日均工单数量破万,传统的纯人工工单分发与质检流程开始暴露出明显的痛点。工单的初步划分和定级主要依赖客服人员根据主观直觉在后台勾选,流转错分、漏分类的情况屡见不鲜,导致高优先级的重要问题被淹没在普通工单中。
同时,质检主管在对成千上万的历史回复进行合规性审查时,只能采取抽样质检的方式,很难做到 100% 的风险覆盖。一些不合规的回复(如客服做出了违反公司政策的赔偿承诺)极易引发次生纠纷。作为追求极致效率和实用主义的技术实践者,如何结合检索增强生成(RAG)与大语言模型(LLM)能力,在工单入口实现自动清洗、精准分类,并对自动回复草稿进行严格的边界拦截,是实现企业客服业务智能化重塑的破局点。
二、基于知识库 RAG 与大模型判定的智能客诉分流架构
要实现低开销、高抗压的智能质检与自动分流,系统必须能够将用户提报的工单与企业历史的标准 FAQ 数据库进行相似度匹配,把最相关的条款抓取出来作为限制条件,约束大模型进行判定。
以下是智能工单自动清洗、质检与分流流向架构设计图:
graph TD
A[用户提交客诉工单] --> B[本地文本脱敏与清洗]
B --> C[FAQ 规则库 RAG 检索]
C -->|匹配度高| D[拼装包含标准参考的 Prompt]
C -->|无匹配| E[直接归入人工专家处理队列]
D --> F[调用 LLM 分类并生成初稿]
F --> G{安全敏感词与红线校验}
G -->|通过| H[自动流转对应业务线结案]
G -->|未通过| E
style E fill:#faa,stroke:#333,stroke-width:2px
style H fill:#afa,stroke:#333,stroke-width:2px
这一架构的核心原则是:用低成本的本地检索做快速拦截,把高风险和不确定的场景无感流转给人工专家。
三、生产级工单文本清洗、特征匹配与 Prompt 动态注入引擎实现
为了使这套架构能够轻量运行,我们需要构建一个工单前置处理和 RAG 规则检索的核心管理器。它负责过滤危险的特殊字符、计算特征关键词的覆盖率,并自动包装出高安全的提示词结构输出。
以下是使用 JavaScript (Node.js) 实现的智能工单质检处理器源码:
class SupportTicketRAGEngine {
constructor(faqDatabase) {
this.faqDatabase = faqDatabase; // FAQ 知识库,包含 { category, keywords, replyTemplate }
}
/**
* 清洗工单内容,移除潜在的 SQL 注入和 HTML 注入字符
* @param {string} rawText
*/
cleanTicketText(rawText) {
if (typeof rawText !== 'string') return "";
return rawText
.trim()
.replace(/<\/?[^>]+(>|$)/g, "") // 移除 HTML 标签,规避富文本攻击
.replace(/[\\'`"]/g, "") // 移除敏感引号,防止注入
.toLowerCase();
}
/**
* 极简本地分词匹配检索,计算置信度
* @param {string} cleanText
*/
retrieveBestMatch(cleanText) {
let bestMatch = null;
let highestScore = 0;
for (const item of this.faqDatabase) {
let score = 0;
item.keywords.forEach(keyword => {
if (cleanText.includes(keyword)) {
score += 1;
}
});
if (score > highestScore) {
highestScore = score;
bestMatch = item;
}
}
// 匹配置信度:匹配中 2 个以上关键词认为合格
const confidence = highestScore >= 2 ? (highestScore / 4.0) : 0.0;
return { match: bestMatch, score: confidence };
}
/**
* 动态拼装拼装用于大模型分类与回复的 Prompt
* @param {string} rawTicket
*/
async processAndRoute(rawTicket) {
console.log("=== 启动 AI 工单质检与分流流转流程 ===");
const cleanText = this.cleanTicketText(rawTicket);
console.log(`[步骤 1: 文本规范化清洗]: "${cleanText}"`);
const { match, score } = this.retrieveBestMatch(cleanText);
console.log(`[步骤 2: RAG 规则对齐完成] 置信度评分: ${score.toFixed(2)}`);
let targetAction = "DISPATCH_TO_HUMAN"; // 默认安全策略:流转人工
let generatedPrompt = "";
if (match && score >= 0.5) {
targetAction = "PROPOSE_AUTO_REPLY";
generatedPrompt = `
[角色指引]: 你是专业的客户服务助理大模型。请根据提供的知识库标准参考解答用户的疑问,严禁自由发挥或捏造未经核实的事实。
标准参考知识:
"${match.replyTemplate}"
用户所提工单问题:
"${rawTicket.trim()}"
高置信度回复草稿:`;
} else {
console.log("⚠️ 匹配置信度不足。工单已自动挂载至人工审核收件箱。");
generatedPrompt = `工单内容: "${rawTicket.trim()}",请求分发至人工处理队列。`;
}
return {
action: targetAction,
targetQueue: match ? match.category : "GENERAL_INBOX",
finalPrompt: generatedPrompt.trim()
};
}
}
// 快速启动模拟
(async () => {
// 模拟本地存储的标准 RAG 知识库 FAQ
const faqBase = [
{
category: "ACCOUNT_HELP",
keywords: ["密码", "忘记", "重置", "登录"],
replyTemplate: "请访问用户中心页面,点击「忘记密码」,使用您注册绑定的手机验证码自主重置密码。"
},
{
category: "REFUND_HELP",
keywords: ["退款", "退货", "地址", "拦截"],
replyTemplate: "若订单仍处于「待发货」状态,您可以点击申请退款,系统将自动极速放款。若已发货,请拒签物流件。"
}
];
const engine = new SupportTicketRAGEngine(faqBase);
// 测试 1:高置信度匹配,自动构建 Prompt
const ticketA = " 我的账号密码忘记了,无法登录了,怎么重置密码? ";
const resA = await engine.processAndRoute(ticketA);
console.log(`\n[工单 A 路由指令]:`, resA.action);
console.log(`[生成的 Prompt]:\n${resA.finalPrompt}\n`);
// 测试 2:匹配置信度不足,无缝回源人审
const ticketB = "你们的产品在 Linux 系统上如何安装部署?";
const resB = await engine.processAndRoute(ticketB);
console.log(`[工单 B 路由指令]:`, resB.action);
console.log(`[处理动作]: ${resB.finalPrompt}`);
})();
四、完全的自动化流转与人工安全拦截的边界权衡(Trade-offs)
在实际工程落地中,我们不能为了盲目追求自动化率而对安全风险妥协:
- 自动回复比率与恶性客诉率的权衡:降低语义匹配置信度可以让自动结案率从 40% 攀升至 70%,但这会极大地增加大模型面对复杂长客诉时误读产生幻觉的风险。一旦在涉及“赔偿”、“退款金额”或“投诉法律诉讼”等关键词上给出了不符合政策的承诺,将引发恶性的公关和财务损失。这类工单在第一阶段必须直接进入人工队列。
- 轻量内存哈希与昂贵的分布式向量数据库:如果项目的 FAQ 数据集在几百条以内,使用本文内存中的直接匹配或 pgvector 的极简索引,其性能和低成本是显而易见的。对于初创团队,绝无必要在第一天就采购维护昂贵的 Pinecone 或 Milvus 分布式集群。
- 数据隐私合规与第三方 API 请求:将客户的敏感工单(可能包含电话、订单号)传输给外部闭源 API 存在合规风险。若合规红线极高,应选用本地单机部署的 7B 等中轻量开源大模型,进行工单的提取分类与初步过滤,虽然牺牲了部分复杂的通用推理,但保证了数据不出网。
五、总结
AI 辅佐传统客服场景的落地价值,核心不在于用大模型完全替代人工,而在于作为效率倍增器拦截并消化 80% 以上的基础同质化问题。通过引入轻量 RAG 本地检索作为前置防线,辅以高置信度 Prompt 大模型约束,能够让客服团队用最小的技术配置和服务器预算,换取业务处理效率的指数级提升。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐

所有评论(0)