微信机器人:关键词自动回复怎么做
对端发「营业时间」,系统回固定句。这是微信机器人里约束最强的第一期,比直接接生成模型更容易验收,也更少胡编价格。模型可以下一期再接。第一期把「命中才开口」做稳,未命中只记账。硬回「我没听懂」会把闲聊聊死,群里更会被当刷屏。
路径看起来短:文本入站 → Webhook → 词表 → 文字接口。过滤没做就会自言自语,或同一条回两次。
过滤先于匹配
msgType 非 TEXT 时,本期可以不出站。图片、语音先不回,避免把非文本送进词表。isSelf 为真则结束,避免自反馈。去重键为 appid + newMsgId,同一条重推不得回两次。newMsgId 才是推荐主键。不要用正文当键,两句真实的「你好」会被合并。
群与私聊分规则。私聊可逐条评估。群未点名即回,易被判刷屏,随后被移出。移出后调用仍可能成功。群 toWxid 一般含 @chatroom。词库放配置,不要写死在发送函数里。报价与赔偿走转人工并停嘴。
回复仍用 appId、toWxid、content。toWxid 取对方标识,填成自身 wxid 会把回复打进错误会话。多号时 appId 必须跟这条回调里的设备走。
KEYWORDS = {"营业时间": "工作日 9:00-18:00"} # 配置,不要写死发送层
def on_callback(event, send):
if event.get("isSelf") is True:
return
if event.get("msgType") != "TEXT":
return
key = f"{event.get('appid')}:{event.get('newMsgId')}"
if seen(key):
return
text = event.get("content") or ""
reply = KEYWORDS.get(text.strip())
if not reply:
return
send({
"appId": event.get("appid"),
"toWxid": event.get("fromUser"), # 字段名以回调文档为准
"content": reply,
})
fromUser 以文档为准。填错就打到自己。未命中不要默认调模型。
先验收开口,再验收话术
测试好友触发应只出站一次。再用发送接口打进同一会话,不应再次命中。同一回调重复到达,出站仍一次。投诉态无自动气泡。这组实验放在调语气之前。话术解决不了回环,也解决不了重放。微信机器人这一期只证明:命中的短句能回到正确会话,且只回一次。
查看个人微信 API 文档:
https://doc.geweapi.com/
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐

所有评论(0)