第一步:明确需求与场景——别急着调模型,先想清楚问题

去年帮一家电商客户搭客服机器人,对方开口就说“我要用ChatGPT全自动回复”。结果聊了半小时发现,他们的客服每天处理的事70%是退换货查询和物流跟踪,剩下30%是重复的优惠券问题。这类场景根本不需要大模型推理,用关键词匹配加简单规则就能搞定。花几万块调模型,不仅贵,还容易因为幻觉乱回答。

所以第一步,你得拿出Excel把过去三个月的客服聊天记录拉出来,按类型分类。我自己的做法是:抽样1000条对话,手动打上标签——订单问题、产品咨询、售后、投诉、闲聊。算占比。如果某个类别占比超过40%,比如退货流程,那就值得单独配置一个高精度的意图。如果占比分散,则考虑用生成式模型加检索。

另一个关键数据是平均解决轮次。比如你的客服平均3轮对话就能解决,那机器人也应该控制在3轮内。超出就要转人工。我见过不少团队把机器人做成话痨,用户问“发货了没”,它回“您好,请问您的订单号是多少?我可以帮您查询哦。”用户给了订单号,它又回“好的,我查一下……请问您的收货地址是?”用户烦了直接退出。实测这种轮次超过5次后,满意度下降40%。

所以需求文档里至少要写清楚:目标意图数量、预期解决的对话比例(比如初期覆盖60%,三个月后冲80%)、平均对话轮次上限、以及转人工的触发条件。这些数字要来自真实业务,别拍脑袋。我常用一个冷启动方法:先手动答复所有问题,同时记录问题类型和答案,攒够500对问答后,再开始搭建。不要一上来就接入API,否则成本飞涨但效果奇差。

第二步:选技术方案——开源省钱还是商业API省心?算笔账就明白

技术选型直接决定后续成本。拿我最近一个项目说:日活用户3000,每天对话量8000轮。方案A用GPT-3.5-Turbo(每百万token 0.5美元),方案B用Rasa开源框架+自己训练BERT模型。都按对话上下文5轮、每轮输入+输出约800 token算。

方案A:每天8000轮×800 token=640万token→成本3.2美元/天,一个月96美元。加上API调用延迟平均1.5秒,对实时客服来说还算能接受。但你得考虑:如果用户问超纲问题,GPT会乱编;如果要做多轮对话上下文管理,还得额外写prompt工程。

方案B:前期投入大——租GPU训练一个意图分类模型(以BERT base为例)大概需要4小时×16个T4实例,约80美元。推理时用小模型速度极快(<100ms)。但代价是:你需要维护一个NLU pipeline,从分词、实体识别到对话状态追踪。一旦业务新增意图,就得重新训练。小团队光维护这个工程可能就要占用一个人全周时间。

我实际的选择是混搭:用开源向量数据库(如Milvus或Qdrant)做FAQ检索,再用GPT-3.5-Turbo做复杂问题的生成。这样80%的简单问题(比如“怎么修改地址”)靠检索直接命中,成本几乎为零;剩下20%的复杂问题(比如“我昨天已经退货但退款还没到”)才调用大模型,每天GPT调用量降到800轮,一个月成本不到10美元。当然需要写一个判别器:判断当前问题是否可以用FAQ回答。这个判别器用规则+小模型(比如DistilBERT)就够了。

另外注意开源框架的陷阱。Rasa虽然功能强大,但中文分词和实体识别效果差,需要一个好的预训练模型(比如哈工大LTP)。部署时还要处理多并发和负载均衡,小公司建议直接用现成的商业产品(比如字节跳动的火山引擎对话系统)或者直接钉钉/企微内置的AI客服模块。很多公司内部已经有知识库,直接筛选后导入,省时省力。

第三步:搭建核心流程——从数据清洗到对话树,一个失败的例子

去年我犯过一个大错:直接把企业微信里的10000条客服对话喂给GPT,让它自动学习回复。结果机器人对“你好”回了一句“您好!请问有什么可以帮您?”看起来正常;但用户说“烦死了”它回“请问您是要查询订单吗?”——因为历史上“烦死了”后面跟的往往是骂完后的订单问题,但模型没理解情感,导致用户更恼火。

正确的做法是:第一步,清洗数据。把包含姓名、手机号、地址等敏感信息替换成占位符。然后将对话切分成单轮问答对。我用了双重策略:先基于规则(比如用户发言<50字且客服发言>20字且非超时)自动提取,再人工审核前500条。最终得到可用的训练集大约6500对。

第二步,构建FAQ库。把高频问题(比如“快递什么时候到”)整理成标准问和标准答。每条FAQ要写出至少5个问法变体,例如:“物流到什么情况了?”“我的单号xxxx到哪了?”等。我用GPT-4生成同义改写,然后人工改掉明显的错误。这个库是关键,因为它直接决定了查准率。我实测如果FAQ库只写一个标准问,检索命中率只有45%;扩到5个变体后,命中率上升到82%。

第三步,设计对话逻辑。我用了有限状态机。比如用户问“退款”,状态进入“退款流程”,然后追问“退款原因”。每个状态有明确出口:如果用户回答不在预设选项内,就转人工。注意不要做成无限嵌套的树。我规定最多三层:意图识别→子意图→信息收集。超过三层直接转人工,因为用户耐心有限。

第四步,接入大模型兜底。当FAQ没有命中且用户没有触发任何状态机时,将用户最近两轮对话作为上下文,调用GPT-3.5生成回复。但这里要加一个“置信度检查”:如果GPT生成的回复包含“我不知道”“请咨询人工”等词,就自动转人工。我试过不加检查,结果有次用户问“你们的规则是真的吗”,GPT回“规则是为您服务的,请放心”,而实际上是公司有新政策,GPT瞎编。所以现在我的pipeline里:先过规则,再过FAQ,最后过LLM并检查关键词。

第四步:集成与测试——别信你代码里的“完美”,用户才是裁判

搭建完成后,第一件事是找10个真实用户做封闭测试。我自己的经验:邀请5个老客户和5个产品经理,给他们预设的20个典型问题,看机器人的回答准确率和用户满意度。这里不要忽略“边缘测试”:比如用户同时问两个问题(“我的订单23123什么时候发货?还能改地址吗?”),或者包含错别字和口语化表达(“快递咋还木有到?”)。我记录下每次失败的case,归类。

测试分三轮。第一轮:高准确率场景。比如“我的订单号是多少”这种实体抽取问题,机器人必须100%答对。我设定了阈值:如果实体抽取置信度低于0.8,就反问“请问您说的订单号是哪一个?”而不是猜。第二轮:开放场景。看LLM生成的回答有没有明显错误。我最常遇到的是GPT在输出时加入公司不存在的政策,例如“我们已经开通了24小时上门取件服务”,实际上根本没有。所以我在prompt里写死了“如果用户询问具体政策,请引导用户回答‘请您查看官网最新公告’”。第三轮:多轮对话。要特意测用户中途改变主意,比如问完发货又立刻问退货。这时状态机必须能重置。

集成方面,我用的是企业版微信的第三方开发平台,直接回调webhook。注意防刷——有人会写脚本疯狂调用你的机器人API,导致大量消耗。我加了简单的频率限制:同一个用户每分钟最多10次请求。另外就是日志记录:每轮对话记下用户ID、问题、回答、命中哪个意图、是否转人工、用户最后是否满意(通过简单的评价按钮)。这些数据是后面优化的唯一依据。

还有一个很少人提到的坑:如果你的机器人接入了大模型,一定要在API调用时设置max_tokens和temperature。我一开始忘了设max_tokens,用户问“你好”,GPT回了200字的一大段,占用了大量token浪费钱。后来改为max_tokens=150,temperature=0.2(低温度保证一致性)。顺便说一句,中文对话中,如果没有做内容安全过滤,强烈建议加上阿里云的内容安全接口,否则有概率出现不适宜内容。

第五步:部署与持续优化——数字不会骗人,但人容易忽视

上线第一周,不要急着开全部流量。我的做法是:先让机器人处理20%的对话(随机抽取),剩下80%仍然由人工处理。同时建立两个仪表盘:一个是解决率,即机器人成功处理完对话而不需要转人工的比例;另一个是用户feedback(比如对话末尾的五星评分)。我设定目标:第一个月解决率争取达到50%,评分不低于4.0。实际上我们第一个月只有38%的解决率,评分3.8。

问题在哪?分析日志发现,大量用户问的是“我的优惠券为什么用不了”,而我们的FAQ里只写了“优惠券使用规则”,但没说具体的券码无效的原因。于是我们紧急补充了20条新FAQ:针对不同券类型(满减券、折扣券、门店券)和不同失效原因(过期、未达门槛、品类限制)分别给出答案。补充后第二个月解决率提高到61%。

然后关注另一个指标:平均对话轮次。机器人处理的问题平均轮次是2.8轮,而人工需要4.2轮。这看起来不错,但细看那些超过5轮的对话,70%是用户对答案不满意,反复问同一问题。这说明机器人的答案没有解决用户的深层疑问。比如用户问“退货时间要多久”,机器人答“7个工作日”,用户又问“为什么这么久”,机器人再答“因为我们收到后需要检验”。其实应该在第一次回复时就加上原因。于是我修改了答案结构:首句给结论,次句给原因,最后句给可选操作(“建议您保留好快递单号”)。修改后轮次降到2.1。

持续优化还要做A/B测试。我每周选出20%的用户给新版机器人(比如换一种prompt或加新的FAQ),对比两周后的解决率和满意度。特别注意不要同时改太多变量,否则不知道哪个起作用。另外,一旦发现某个意图的解决率长期低于30%,就考虑直接删除该意图并转人工,因为强行用机器人处理反而会拉低整体体验。

最后说成本。我们算过一笔账:企业原来每天有200个客服工单,平均每人处理一个工单成本8元(按人工时薪折算)。机器人覆盖其中60%后,直接节省960元/天。减去GPT调用费(日均15元)和运维费(约50元/天),净节省895元/天。一年下来超过32万。前提是你真的花了前三个月的调优功夫。别指望一上线就完美,我至今还在迭代——上周刚发现用户在夜间提问“人工客服”时,我们的机器人居然回复“您现在可以问我的”,而实际应该直接转人工。这种坑永远有,但只要持续看日志、改规则,AI客服就真的能帮你省钱又省心。

常见问题 / FAQ

第一步:明确需求与场景——别急着调模型,先想清楚问题

去年帮一家电商客户搭客服机器人,对方开口就说“我要用ChatGPT全自动回复”。结果聊了半小时发现,他们的客服每天处理的事70%是退换货查询和物流跟踪,剩下30%是重复的优惠券问题。这类场景根本不需要大模型推理,用关键词匹配加简单规则就能搞定。花几万块调模型,不仅贵,还容易因为幻觉乱回答。 所以第一步,你得拿出Excel把过去三个月的客服聊天记录拉出来,按类型分类。我自己的做法是:抽样1000条...

第二步:选技术方案——开源省钱还是商业API省心?算笔账就明白

技术选型直接决定后续成本。拿我最近一个项目说:日活用户3000,每天对话量8000轮。方案A用GPT-3.5-Turbo(每百万token 0.5美元),方案B用Rasa开源框架+自己训练BERT模型。都按对话上下文5轮、每轮输入+输出约800 token算。 方案A:每天8000轮×800 token=640万token→成本3.2美元/天,一个月96美元。加上API调用延迟平均1.5秒,对实...

第三步:搭建核心流程——从数据清洗到对话树,一个失败的例子

去年我犯过一个大错:直接把企业微信里的10000条客服对话喂给GPT,让它自动学习回复。结果机器人对“你好”回了一句“您好!请问有什么可以帮您?”看起来正常;但用户说“烦死了”它回“请问您是要查询订单吗?”——因为历史上“烦死了”后面跟的往往是骂完后的订单问题,但模型没理解情感,导致用户更恼火。 正确的做法是:第一步,清洗数据。把包含姓名、手机号、地址等敏感信息替换成占位符。然后将对话切分成单轮...

第四步:集成与测试——别信你代码里的“完美”,用户才是裁判

搭建完成后,第一件事是找10个真实用户做封闭测试。我自己的经验:邀请5个老客户和5个产品经理,给他们预设的20个典型问题,看机器人的回答准确率和用户满意度。这里不要忽略“边缘测试”:比如用户同时问两个问题(“我的订单23123什么时候发货?还能改地址吗?”),或者包含错别字和口语化表达(“快递咋还木有到?”)。我记录下每次失败的case,归类。 测试分三轮。第一轮:高准确率场景。比如“我的订单号...

第五步:部署与持续优化——数字不会骗人,但人容易忽视

上线第一周,不要急着开全部流量。我的做法是:先让机器人处理20%的对话(随机抽取),剩下80%仍然由人工处理。同时建立两个仪表盘:一个是解决率,即机器人成功处理完对话而不需要转人工的比例;另一个是用户feedback(比如对话末尾的五星评分)。我设定目标:第一个月解决率争取达到50%,评分不低于4.0。实际上我们第一个月只有38%的解决率,评分3.8。 问题在哪?分析日志发现,大量用户问的是“我...