影刀RPA工程实战:大模型辅助下的智能消息理解与规则自进化体系

影刀RPA工程实战:大模型辅助下的智能消息理解与规则自进化体系

规则引擎解决了80%的消息分类,剩下20%的模糊地带,才是真正折磨运营的地方。
“这个买家是想退款还是只是问问?”——这种判断,规则写不出来,但大模型可以试一试。

我们在前面的文章里建起了规则引擎,把买家消息的自动分类和回复策略搞定了大部分常规场景。但总有一些消息让规则引擎“犯难”——买家说“你们这个衣服我穿上去和图片不太一样啊”,到底是投诉质量要退款,还是只是随口评价一下?规则引擎的关键词匹配可能会把这条消息标为“退款意向”,但实际上买家只是吐槽一句,并没有退款诉求。

这类模棱两可的消息,靠关键词和正则表达式很难准确判断。如果全部扔给人工处理,数量一多,客服人力根本不够。如果硬要自动化处理,很可能用错话术,反而激化矛盾。

大语言模型的出现给了我们一个新选择。从去年开始,我们在合规框架内,谨慎地引入了大模型来辅助消息理解和规则优化。这篇文章就是这项实践的完整复盘——所有内容都围绕合规使用、隐私保护和工程落地,不涉及任何违规操作。


一、传统规则引擎的边界

规则引擎在消息分类上的表现,取决于规则库的完善程度。我们花了大量精力维护关键词列表、正则表达式、优先规则,覆盖了“查询物流”、“申请退款”、“商品咨询”、“投诉举报”等几十个类别。

但有几类消息,规则引擎的准确率始终提不上去。

第一类:情绪化表达。 买家说“你们效率真高,呵呵”,字面上是夸奖,实际可能是嘲讽。规则引擎看到“效率高”就归到“好评”,但这句话需要结合上下文甚至文化语境来理解。

picture.image 第二类:隐含诉求。 买家说“我在别家买的同款才30块”,这句话可能只是比价,也可能是在砍价,也可能是要退款。规则引擎很难区分意图。

第三类:长文本混合意图。 买家发一大段话,前半段问物流,后半段抱怨质量差,结尾又说“赶紧给我处理”。一条消息里混了三个意图,规则引擎只能匹配到一个。

在这些场景里,规则引擎的准确率只有60%~70%。剩下的误判,要么导致错误回复引发买家不满,要么生成大量人工工单抵消了自动化的效率。

picture.image

规则是人写的,它的边界就是人的归纳能力的边界。
而语言是活的,总有人在规则覆盖不到的地方说话。


二、大模型用于消息理解的合规边界

picture.image 引入大模型,第一个问题不是怎么调用API,而是哪些数据能送给模型。

买家消息里包含用户名、联系方式、订单号、地址等敏感信息。把这些直接丢给云端模型服务,违反数据安全和隐私合规。我们必须做到数据脱敏在本地完成,大模型只看到经过处理的文本。

具体做法是:在调用模型之前,本地Python脚本先对消息文本做脱敏处理,把手机号、订单号、地址、姓名替换为占位符。


![picture.image](https://p3-volc-community-sign.byteimg.com/tos-cn-i-tlddhu82om/a935c825e72941f682fdc43cf9892cbb~tplv-tlddhu82om-image.image?=&rk3s=8031ce6d&x-expires=1781916897&x-signature=NSqKzItWgyxWOT3ND%2F8wYMgu%2FVU%3D)
import re

![picture.image](https://p3-volc-community-sign.byteimg.com/tos-cn-i-tlddhu82om/2f7aff5552af4328aa64c5158f32142e~tplv-tlddhu82om-image.image?=&rk3s=8031ce6d&x-expires=1781916897&x-signature=fK1SxYOtjGoevDZ9WuEjwLU%2BdYk%3D)
def mask_sensitive_info(text: str) -> str:
    # 替换手机号
    text = re.sub(r'1[3-9]\d{9}', '[PHONE]', text)
    # 替换订单号(示例格式)
    text = re.sub(r'PO\d{10,}', '[ORDER_ID]', text)
    # 替换地址中的门牌号等信息
    text = re.sub(r'\d{1,5}号', '[ADDR_NUM]', text)
    return text

picture.image 模型收到的输入是脱敏后的文本,返回的结果也是基于脱敏文本的。本地再将结果映射回原始消息上下文。整个过程里,敏感信息没有离开我们的服务器。

同时,我们自建了模型推理服务,部署在公司内网GPU服务器上,使用开源模型,不经过公网API。这让数据主权完全可控,也避免了外部API调用次数限制和费用问题。


三、模型选型与服务化部署

在模型选择上,我们没有追求最大最前沿。店群消息分类这个任务,不需要1750亿参数,一个小而快的模型足够了。

我们测试了几个开源7B~13B参数的模型,在本地标注的2000条消息样本上评估,最终选了一个分类准确率高、推理延迟在200毫秒以内的模型。部署方式是用FastAPI包装成HTTP服务,运行在内网,供Python插件调用。

from fastapi import FastAPI
from pydantic import BaseModel
import torch

app = FastAPI()

class MessageRequest(BaseModel):
    text: str
    context: dict = {}

@app.post("/classify")
def classify_message(req: MessageRequest):
    # 脱敏已在调用方完成
    prompt = build_prompt(req.text, req.context)
    inputs = tokenizer(prompt, return_tensors="pt")
    outputs = model.generate(**inputs, max_new_tokens=64)
    result = tokenizer.decode(outputs[0], skip_special_tokens=True)
    return {"intent": parse_intent(result), "sentiment": parse_sentiment(result)}

Prompt设计很关键。我们不要求模型输出长篇分析,只需要返回结构化的分类结果,降低推理耗时和不确定性。

你是一个电商客服消息分类助手。请对以下买家消息分类,输出JSON格式,包含:
- intent: 主要意图(logistics/refund/complaint/inquiry/praise/chitchat)
- sentiment: 情绪(positive/neutral/negative)
- urgency: 紧急程度(low/medium/high)

买家消息:{脱敏后的消息文本}

只返回JSON,不要其他内容。

四、大模型与规则引擎的协同

大模型不是替代规则引擎,而是和它互补。我们设计了一个两级分类架构。

第一级:规则引擎快速分流。 规则引擎先对消息做初筛。高置信度匹配(关键词明确、模式清晰)的消息直接由规则引擎处理,不经过模型。这部分占总量的60%~70%,响应时间不到1毫秒。

第二级:大模型兜底分类。 规则引擎置信度低于阈值的消息,转给大模型做深度理解。模型返回分类结果后,结合店铺上下文(买家历史、订单状态)做最终决策。

def classify_message_hybrid(message: str, context: dict) -> dict:
    # 第一级:规则引擎
    rule_result = rule_engine.evaluate("message_intent", {"message": message})
    if rule_result and rule_result.get("confidence", 0) > 0.85:
        return rule_result
    # 第二级:大模型
    masked = mask_sensitive_info(message)
    model_result = call_model_service(masked, context)
    # 融合上下文
    final_intent = merge_with_context(model_result, context)
    return final_intent

这套架构让大模型只处理真正需要深度理解的“硬骨头”,控制了推理成本和延迟。高优先级消息(P0实时回复)仍然能获得毫秒级的快速响应,低优先级或模糊消息才走模型。


五、模型输出的人机协同

大模型的分类结果不是100%可靠的。对于置信度较低的预测,我们仍然交给人工判断。

模型返回结果时会带一个置信度分数。低于0.7的分类结果,流程不会直接使用,而是生成工单推送给人工客服。人工确认或修正后,分类结果被记录,用于后续反馈。

if model_result["confidence"] < 0.7:
    create_human_review_ticket(message, model_result)
    use_fallback_template(message)
else:
    apply_reply_strategy(model_result["intent"])

这个机制确保了即使模型犯错,也不会直接导致错误回复。在人工介入之前,流程会用最保守的通用话术过渡(“您的消息已收到,客服稍后回复您”),避免不当回复。


六、模型反馈与规则自进化

这套体系里最有价值的一环,是人工修正的结果会反哺规则引擎。

当人工客服把一条被模型误判为“退款”的消息修正为“物流查询”时,这个修正记录被存入反馈库。累积到一定量后,系统会自动分析:这些被修正的样本里,有没有频繁出现的模式是规则引擎没有覆盖到的?

如果有,系统会自动生成一条规则建议——比如“当消息包含‘物流’和‘怎么还没到’但订单状态为‘运输中’时,优先归类为物流查询”——推送给规则维护者审核。审核通过后,这条规则被加入规则引擎。

def suggest_new_rules(feedback_records):
    patterns = extract_common_patterns(feedback_records)
    suggestions = []
    for pattern in patterns:
        if not rule_engine.has_rule_for(pattern):
            suggestion = {
                "conditions": pattern["conditions"],
                "action": pattern["correct_intent"],
                "evidence_count": pattern["count"],
                "source": "auto_generated_from_feedback"
            }
            suggestions.append(suggestion)
    return suggestions

这就形成了一个闭环:规则引擎处理不了的消息,由模型辅助理解。模型不确定的消息,由人工确认。人工修正的结果,反过来优化规则引擎。规则引擎变强了,模型需要处理的模糊消息就变少了,整体效率持续提升。

运行半年后,规则引擎的准确率从最初的78%上升到了91%,模型调用量下降了约30%——不是因为模型变差了,而是规则引擎不断在“吃掉”原来需要模型处理的case。

好的系统不是靠某一个智能组件撑着,而是让规则、模型和人形成一个互补的进化飞轮。


七、延迟与并发优化

大模型推理的延迟是实时消息处理场景最大的挑战。即使部署在内网,单次推理200毫秒,高峰期并发几十条消息同时到达,推理服务的响应时间可能涨到秒级。

我们做了几项优化。

批量推理:不是一条消息调一次模型,而是把短时间窗口内(200毫秒)到达的多条消息打包成一个batch,一次推理处理多请求。这充分利用了GPU的并行计算能力。

优先级队列:P0实时消息优先推理,P1/P2消息排队等待。即使在高峰期,需要即时回复的消息也不会被批量查询拖慢。

模型缓存:对于语义高度相似的重复消息(如“在吗?”“你好?”“客服在吗?”),对输入文本做哈希缓存,命中缓存的直接返回已有结果,不重复推理。

这三项优化把高峰期推理延迟的P99从3.2秒压到了0.8秒。


八、合规与隐私保护红线

大模型在自动化中的应用,有几条红线我们坚决不碰。

不把买家个人信息送到模型。 脱敏是硬性要求,代码里强制校验,测试用例里有专门的敏感信息泄漏测试。

不用模型生成面向买家的自由文本。 模型只输出结构化分类结果和话术模板ID,实际的回复内容由模板渲染引擎根据模板ID生成,模板内容是人工审核过的。模型不直接“写”买家能看到的文字,避免生成不当内容。

模型推理日志不保留原始消息。 推理服务的日志只记录脱敏后的文本哈希值和分类结果,不落盘原始消息。

人工复核的工单里,展示给客服的也是脱敏消息。 只有确认需要查看原始消息时,才有权限脱敏查看,且操作留痕。


九、效果与反思

引入大模型辅助消息理解之后,我们统计了几组数据:

  • 消息自动分类的准确率从78%提升到93%
  • 需要人工介入的模糊消息占比从22%降到7%
  • 因错误分类导致的不良回复投诉下降了约60%
  • 规则引擎每月自动新增2~5条优化规则,维护成本下降

但也有一些我们没有预料到的代价。模型服务的GPU资源占用让内网服务器的电费和散热压力增加了。模型偶尔的“幻觉”——把一条普通消息过度解读为紧急投诉——需要在工程上加多道保险。推理延迟的抖动在某些时候仍然会影响回复时效。

最大的收获是验证了一个思路:自动化的智能化升级,不一定要追求“全自动”。 用模型辅助人,用人的反馈优化规则,用规则替代模型处理常规问题,这个正向循环比一步到位的“AI替代人工”更务实、更安全、也更可持续。

智能不是一蹴而就的。
它是在规则、模型和人的三角协作里,一天一天磨出来的。

作者:林焱
一个谨慎地在自动化系统里引入AI、但始终把合规和安全放在首位的工程师

0
0
0
0
评论
未登录
暂无评论