跳到正文

大模型客服评估:伪代码与指标

基于大模型的评估系统核心逻辑与伪代码实现

原题:请设计一个基于大模型的客服质量评估系统,并用伪代码描述核心实现逻辑。

评估与监控 · 蚂蚁真题

30 秒回答

  1. 明确质检维度设计(服务态度、专业能力、问题解决、合规风险)
  2. 大模型评估与规则引擎的混合架构
  3. 幻觉风险控制机制
  4. 可解释性输出设计

回答与解析

答案要点

  • 明确质检维度设计(服务态度、专业能力、问题解决、合规风险)
  • 大模型评估与规则引擎的混合架构
  • 幻觉风险控制机制
  • 可解释性输出设计
  • 实时性与成本平衡策略

核心设计思路

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. 问法 1 · 场景切入

    假设我们有一个电商客服质检场景,每天有几十万条会话,需要自动评估客服的服务态度和问题解决率。你打算怎么用大模型来搭这个系统?

  2. 问法 2 · 层层追问

    客服质量评估一般会关注哪些维度?……那这些维度里,哪些适合用规则来做,哪些必须靠大模型?……如果大模型给出不合理的评分,你怎么兜底?

  3. 问法 3 · 直球架构

    设计一个基于大模型的客服质量评估系统,核心要包括质检维度设计、混合架构(规则+大模型)、幻觉控制、可解释性和实时性平衡。请用伪代码描述核心逻辑。

同模块相关题目