微信机器人开发不只是自动回复:个人微信二次开发还能怎样处理用户状态
自动回复是"无状态"的——每次回复不记得上次说了什么。但很多业务需要"有状态":记住用户是谁、上次进行到哪一步、有什么偏好。用户状态在业务中有3种用途,下面结合 Eyun 的接口说明。
一、个性化记忆用途
让机器人"记住"每个用户的特点。
用户说"我叫张三" → 存入用户画像 {name:张三, preferences:[喜欢简洁回复]} → 下次该用户再来 → 从画像取名字 → 回复"张三你好,又见面了"。Eyun Webhook回调的 fromUser 是用户标识键,画像按 fromUser 存取。Eyun 的消息记录接口可拉历史对话辅助构建画像。
大白话:机器人给每个用户建一张"档案卡"——名字、喜好、上次聊了什么,下次见面不用从头问。
二、流程推进用途
让机器人知道用户进行到流程哪一步。
以订票流程为例:
-
进入流程:状态记
{stage:1_询问目的地} -
用户说"北京":更新
{stage:2_询问时间, dest:北京} -
用户说"明天3点":更新
{stage:3_执行查询, dest:北京, time:明天3点} -
每步用
fromUser关联流程状态,流程完成后状态清空
Eyun 的 sendText 在每步发引导提示。按照 Eyun开发文档规范,sendText 需要传 wId、toUser、content 三个必填参数。
大白话:机器人记着"这个用户正在订票,已经到第2步了"——像超市结账分步操作,扫完一件商品知道还有几件要扫。
三、权限控制用途
根据用户身份决定能做什么操作。
用户状态含 role 字段(普通用户/管理员/VIP):
-
普通用户只能查信息
-
管理员可以批量推送
-
VIP可以走优先通道
每次操作前检查 fromUser 对应的 role,权限不符则 sendText 提示"无权限"。在 Eyun 平台管理的 wId 对应的用户状态可设权限。
大白话:机器人给不同用户不同的"钥匙"——普通用户只能看门面、管理员能进后台、VIP有专属通道。
四、三种用途对比
|
状态用途 |
存什么 |
存储方式 |
更新时机 |
Eyun接口 |
大白话 |
业务效果 |
|---|---|---|---|---|---|---|
|
个性化记忆 |
用户画像 |
持久化 |
用户主动告知 |
Webhook/sendText |
建档案卡 |
体验被记住 |
|
流程推进 |
流程状态 |
临时存储 |
每步推进 |
sendText |
记到第几步 |
多步引导 |
|
权限控制 |
角色权限 |
持久化 |
管理员分配 |
sendText |
发不同钥匙 |
安全可控 |
五、代码框架
# 用户状态管理器
class UserStateManager:
def __init__(self):
self.profiles = {} # 画像: {fromUser: {name, prefs}}
self.flows = {} # 流程: {fromUser: {stage, data}}
self.roles = {} # 权限: {fromUser: role}
def handle(self, msg, w_id):
fu = msg["fromUser"]
# 用途3: 权限校验
role = self.roles.get(fu, "user")
if role == "user" and msg["content"].startswith("/push"):
send_text(w_id, fu, "无权限")
return
# 用途2: 流程推进
if fu in self.flows:
self._advance_flow(fu, msg["content"], w_id)
return
# 用途1: 画像记忆
self._update_profile(fu, msg["content"], w_id)
def _advance_flow(self, fu, text, w_id):
flow = self.flows[fu]
flow["stage"] += 1
send_text(w_id, fu, f"请提供下一步信息") # 调 Eyun sendText
if flow["stage"] >= 3:
self.flows.pop(fu) # 流程完成清空
六、结尾
3种用途让机器人从"无状态的复读机"变成"有状态的智能助手"——个性化记忆让用户体验"被记住"、流程推进让机器人能引导多步操作、权限控制让机器人安全可控。三种用途可以叠加:同一用户既有画像(个性化)又在流程中(推进)还有角色(权限)。
状态存储建议 Redis(热数据快存)+ MySQL(冷数据持久化)双写。状态过期策略:画像永久存、流程状态24小时过期、权限实时校验。更多资源可在 Eyun平台官网查看。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)