传统的自动回复,一般是提前设置好关键词:
用户发送"价格"
→ 匹配关键词
→ 返回固定内容
这种方式比较适合问题比较固定的场景。
但实际聊天中,用户的表达方式很多。
例如:
这个怎么收费?
你们有哪些套餐?
大概多少钱?
费用怎么算?
虽然说法不同,但实际上问的是同一个问题。
这时候可以把 AI 接入企业微信消息处理流程,让 AI 先理解用户的意思,再生成对应回复。
一、基本流程怎么设计?
一个简单的 AI 自动回复流程可以设计成:
收到消息 → 提取文本 → 判断是否需要 AI → 发送给 AI → 获取回复 → 企业微信自动发消息
企业微信接口主要负责消息的接收和发送,AI 负责理解和生成内容。
两边的职责最好分开。
二、先把用户消息传给 AI
例如收到:
你们这个接口支持哪些功能?
程序获取消息内容后,可以整理成 AI 请求:
{
"message": "你们这个接口支持哪些功能?"
}
AI 根据上下文分析用户真正想问的内容。
例如识别成:
意图:功能咨询
然后再根据对应的知识内容生成回答。
三、不要让 AI 直接回答所有消息
实际开发中,不建议:
收到任何消息 → 全部交给 AI
因为有些消息根本不需要 AI。
例如:
"你好"
"收到"
"谢谢"
可以直接使用固定回复。
而比较复杂的问题,再交给 AI。
可以设计成:
收到消息 → 判断消息类型 → 简单消息固定回复 → 复杂问题交给 AI
这样可以减少不必要的 AI 调用。
四、可以先做意图识别
比单纯判断关键词更灵活的一种方式,是让 AI 先判断用户意图。
例如用户发送:
我想看看接口怎么对接
AI 返回:
{
"intent": "api_development"
}
用户发送:
群里面能不能自动发消息?
返回:
{
"intent": "group_message"
}
然后程序根据不同的意图,调用不同的业务逻辑。
整体流程:
用户消息 → AI 意图识别 → 业务规则 → 执行对应操作
这比维护大量关键词会更加灵活。
五、AI回复最好增加上下文
如果每次只把用户当前的一句话传给 AI,很容易出现上下文断开。
例如:
用户:接口怎么调用?
机器人:可以通过 POST 请求调用。
用户:那参数呢?
第二句话单独拿出来,其实不知道"参数"指的是什么。
所以可以保存最近几轮消息:
用户:接口怎么调用?
机器人:可以通过 POST 请求调用。
用户:那参数呢?
然后一起交给 AI。
这样 AI 才能理解当前问题。
六、上下文不要无限保存
上下文越长,并不代表效果一定越好。
如果把一个用户几百条历史消息全部传给 AI:
-
请求数据会变大
-
处理速度会变慢
-
成本也会增加
-
无关内容可能干扰当前问题
可以只保留最近几轮:
最近5轮
最近10轮
或者根据业务场景总结历史内容,再把总结后的信息传给 AI。
七、AI最好有固定的回复规则
如果完全让 AI 自由发挥,回复内容可能不稳定。
可以提前定义一些规则,例如:
你是一个企业微信客服助手。
要求:
1. 回复简洁
2. 不确定的问题不要自行编造
3. 技术问题优先给出解决思路
4. 无法判断时转人工
5. 不重复发送已经回答过的内容
AI 每次生成回复时,都按照这套规则执行。
这样输出内容会更加稳定。
八、AI和企业微信API之间不要直接耦合
比较推荐的结构:
企业微信 → 消息接收 → AI处理模块 → 业务逻辑 → 消息发送
而不是把 AI 请求代码直接写进企业微信消息接口里面。
可以拆成:
message
负责接收消息
ai
负责AI请求和回复
business
负责业务判断
api
负责企业微信接口调用
这样后面更换 AI 模型或者修改企业微信接口时,不需要把整个项目重新修改。
九、AI回复前最好做一次结果检查
AI 返回内容以后,不建议直接发送。
可以先检查:
AI返回
→ 是否为空
→ 是否超过长度
→ 是否包含异常内容
→ 是否需要人工处理
→ 检查通过
→ 发送消息
例如:
if not reply:
return
if len(reply) > 1000:
reply = reply[:1000]
send_message(reply)
具体限制根据实际业务调整。
十、遇到复杂问题可以转人工
AI 自动回复并不意味着所有问题都必须由 AI 处理。
例如 AI 判断:
{
"intent": "人工咨询",
"confidence": 0.42
}
这时候可以停止自动回复,转给人工处理。
流程可以变成:
用户消息 → AI判断 → 能回答 → 自动回复
用户消息 → AI判断 → 无法判断 → 转人工
这样比强行让 AI 回答所有问题更加可靠。
总结
把 AI 接入企业微信消息处理,核心可以拆成几个部分:
-
接收用户消息
-
判断消息是否需要 AI
-
AI 识别用户意图
-
根据需要保存上下文
-
生成回复内容
-
对 AI 结果进行检查
-
调用企业微信接口发送
-
无法处理时转人工
其中最重要的一点是:
AI负责理解和生成内容,企业微信接口负责消息传输,业务系统负责具体规则。
把这三部分分开,后面的代码会更容易维护。