大模型客服评估:伪代码与指标
基于大模型的评估系统核心逻辑与伪代码实现
原题:请设计一个基于大模型的客服质量评估系统,并用伪代码描述核心实现逻辑。
评估与监控 · 蚂蚁真题
30 秒回答
- 明确质检维度设计(服务态度、专业能力、问题解决、合规风险)
- 大模型评估与规则引擎的混合架构
- 幻觉风险控制机制
- 可解释性输出设计
回答与解析
答案要点
- 明确质检维度设计(服务态度、专业能力、问题解决、合规风险)
- 大模型评估与规则引擎的混合架构
- 幻觉风险控制机制
- 可解释性输出设计
- 实时性与成本平衡策略
核心设计思路
1. 质检维度分层
- 基础层(规则可检):敏感词、响应时效、挂机规范
- 语义层(模型评估):情绪识别、共情表达、主动追问
- 业务层(模型评估):方案准确性、一次性解决率、升单合规性
2. 混合架构:规则引擎 + 大模型Agent
┌─────────────────────────────────────┐
│ 输入:会话记录(文本/语音转写) │
└─────────────┬───────────────────────┘
▼
┌─────────────────────────────────────┐
│ 预处理:分片 → 摘要 → 关键事件提取 │
└─────────────┬───────────────────────┘
▼
┌─────────┐ ┌─────────┐
│ 规则引擎 │◄──►│ 大模型Agent│
│ (硬约束) │ │ (软评估) │
└────┬────┘ └────┬────┘
└──────┬───────┘
▼
┌─────────────┐
│ 结果融合层 │
│ 置信度校准 │
└──────┬──────┘
▼
输出:评分报告 + 证据链
3. 核心伪代码
class QualityInspector:
def __init__(self):
self.rule_engine = RuleEngine() # 确定性规则
self.llm_agent = EvaluationAgent() # 大模型评估
self.fusion_layer = ScoreFusion()
def inspect(self, conversation: Dialog) -> Report:
# 1. 会话切片(按话题/超时边界)
segments = self.segment(conversation)
# 2. 并行执行
rule_results = self.rule_engine.check(conversation) # 毫秒级
llm_tasks = [
self.llm_agent.evaluate(seg, dim)
for seg in segments
for dim in ['empathy', 'solution', 'compliance']
]
llm_results = self.batch_call(llm_tasks, timeout=2s) # 可控延迟
# 3. 结果融合(规则优先,模型补充)
final_scores = self.fusion_layer.merge(
rule_results,
llm_results,
weights=self.calibrate_confidence(llm_results)
)
# 4. 生成可解释报告
return Report(
scores=final_scores,
evidences=self.extract_evidences(segments, llm_results),
risk_flags=rule_results.violations
)
class EvaluationAgent:
"""大模型评估Agent,带自检机制"""
PROMPT_TEMPLATE = """
你是客服质检专家。请对以下对话进行{dimension}维度评估。
对话摘要:{summary}
关键片段:{evidence_quotes}
要求:
1. 给出1-5分评分,并说明3条具体依据(引用原文)
2. 检查是否有幻觉:判断依据是否真实存在于对话中
3. 若置信度<0.7,标记为"需人工复核"
输出JSON:{score, reasoning, hallucination_check, confidence}
"""
def evaluate(self, segment, dimension):
# 先检索相关片段,减少输入长度
evidence = self.retrieve_evidence(segment, dimension)
response = llm.generate(
self.PROMPT_TEMPLATE.format(...),
temperature=0.3, # 低温度保证稳定性
response_format="json"
)
# 自检:用独立prompt验证证据真实性
if not self.verify_quotes(response, segment):
response['confidence'] *= 0.5
return response
4. 关键优化点
- 成本:长对话先走摘要模型(小模型),仅关键片段用大模型
- 稳定性:同一对话多次采样,取众数或加权平均
- 幻觉防控:强制要求引用原文,并做引用真实性校验
- 人工闭环:低置信度样本自动流入人工复核,用于持续微调
口语版讲法(约4分钟)
- 一句话定位:评估系统本质是权衡自动化与准确性
- 维度设计:分层思维,规则兜底,模型做语义
- 混合架构:规则引擎快准狠,大模型补柔性,结果融合有优先级
- 落地风险:幻觉、成本、置信度,以及人工闭环
- 工程师判断:更倾向规则优先+模型补充,留复核兜底
这道题表面上是设计一个客服质量评估系统,但我觉得面试官真正想问的是:在业务落地的真实约束下,你怎么平衡自动化效率、评估准确性和风险控制。说白了,就是怎么用大模型又不被大模型坑。
我的核心思路是分层加混合。先说分层,我把质检维度拆成三层:最底层是规则能搞定的,比如敏感词、响应超时、挂机规范,这些用正则或简单规则引擎跑,毫秒级出结果,而且零幻觉。中间层是语义相关的,像情绪识别、共情表达,这层大模型比规则灵活,但没必要全量上大模型,可以先用小模型做粗筛,只有疑似负面的才送大模型。最上层是业务层,比如方案准确性、一次性解决率,这层最贵也最关键,必须用大模型,但得控制输入长度和调用次数。
混合架构上,我用规则引擎加 大模型Agent 并行跑。规则引擎处理硬约束,比如骂人直接扣分、不挂机直接标记违规,这些是红线,大模型再厉害也不能覆盖。大模型Agent负责软评估,比如客服有没有主动追问、解决方案是否合理。结果融合层有个优先级:规则结果优先,大模型结果只做补充和微调。如果规则已经判了违规,大模型评分再高也不抵,这是为了防大模型幻觉。
举个具体的业务场景:电商客服处理退款纠纷。规则引擎可以快速检出客服有没有在30分钟内响应、有没有使用违禁词。大模型则评估客服的共情话术、退款方案是否合理、有没有引导用户升级投诉。如果大模型说客服方案满分,但规则检测到客服用了威胁性语言,最终评分还是按规则扣分。
这里有个坑,就是幻觉和成本。大模型评估时,我强制要求它引用原文并做引用真实性校验,就是让模型自己检查引用的对话片段是否真实存在。如果发现引用错误,置信度直接打五折。成本方面,长对话我会先切分成话题片段,再用小模型做摘要,只把关键片段喂给大模型。同一对话可以采样多次取众数,提高稳定性。
还有一个延伸点:低置信度样本怎么处理。我设计了一个自动流入人工复核的闭环,这些样本既用于持续微调模型,也用来发现规则引擎的盲区。比如规则没覆盖到的新违规模式,可以从人工复核的结果里提炼新规则。
所以整体上,我更倾向规则优先、模型补充、人工兜底的三层架构。上线前我会特别关注两个前提:一是规则引擎的覆盖率要够高,至少覆盖60%的常见违规;二是大模型评估的置信度阈值要调准,否则人工复核量会爆炸。如果这两点不满足,系统很容易变成要么漏检要么过检。
关键一句:低置信度样本自动流入人工复核,既用于持续微调模型,也用来发现规则引擎的盲区
面试官还可能这样问
- 问法 1 · 场景切入
假设我们有一个电商客服质检场景,每天有几十万条会话,需要自动评估客服的服务态度和问题解决率。你打算怎么用大模型来搭这个系统?
- 问法 2 · 层层追问
客服质量评估一般会关注哪些维度?……那这些维度里,哪些适合用规则来做,哪些必须靠大模型?……如果大模型给出不合理的评分,你怎么兜底?
- 问法 3 · 直球架构
设计一个基于大模型的客服质量评估系统,核心要包括质检维度设计、混合架构(规则+大模型)、幻觉控制、可解释性和实时性平衡。请用伪代码描述核心逻辑。