ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

企业微信API接口实战:如何打造一个支持多场景回复的智能机器人?

企业微信API接口实战:如何打造一个支持多场景回复的智能机器人?

一个机器人要应付多种场景:答常见问题、查订单、预约、转人工。如果每种场景写一套 if-else,代码很快失控。我们用"场景路由"把这几类拆开,机器人只负责识别场景和分发,每个场景自己处理自己的逻辑。

接口层用的是Eyun 平台开放的企微 API,接收走 Webhook,回发走 message 模块。

场景路由表

先把场景列出来,每个场景给一组触发特征:关键词、消息类型、是否要参数。路由表做成配置,加场景不用改代码。

SCENE_ROUTES = [ {"scene": "faq", "keywords": ["价格", "地址", "营业时间"]}, {"scene": "order", "keywords": ["订单", "物流", "发货"], "need_param": "order_no"}, {"scene": "booking", "keywords": ["预约", "登记"], "need_param": "date"}, {"scene": "human", "keywords": ["人工", "客服", "投诉"]}, ]

场景内上下文

同一场景往往要聊几轮。比如预约,机器人问日期、问人数,客户分几条回。给每个会话存一个当前场景和已收集的参数,下一轮消息进来先看当前场景是否还缺参数,缺就继续收集,不重新识别。

场景切换

客户可能聊到一半换话题——预约到一半突然问价格。要能识别出切换,清掉当前场景的槽位再路由到新场景。判定规则:新消息命中其他场景的关键词,且当前场景没有正在等待的参数,就允许切换。

参数拿不到怎么办

场景需要参数但客户没给时,明确告诉他缺什么,别硬猜。缺参数超过两轮还是没给,转人工。回调消息体字段在开发文档里有完整说明。

结尾

多场景机器人不难在场景本身,难在场景之间的边界——怎么识别、怎么切换、切换时旧上下文怎么清。路由表加会话上下文这两样做对了,加场景就是往表里加一行。

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进