对端发「营业时间」,系统回固定句。这是微信机器人里约束最强的第一期,比直接接生成模型更容易验收,也更少胡编价格。模型可以下一期再接。第一期把「命中才开口」做稳,未命中只记账。硬回「我没听懂」会把闲聊聊死,群里更会被当刷屏。

路径看起来短:文本入站 → Webhook → 词表 → 文字接口。过滤没做就会自言自语,或同一条回两次。

过滤先于匹配

msgTypeTEXT 时,本期可以不出站。图片、语音先不回,避免把非文本送进词表。isSelf 为真则结束,避免自反馈。去重键为 appid + newMsgId,同一条重推不得回两次。newMsgId 才是推荐主键。不要用正文当键,两句真实的「你好」会被合并。

群与私聊分规则。私聊可逐条评估。群未点名即回,易被判刷屏,随后被移出。移出后调用仍可能成功。群 toWxid 一般含 @chatroom。词库放配置,不要写死在发送函数里。报价与赔偿走转人工并停嘴。

回复仍用 appIdtoWxidcontenttoWxid 取对方标识,填成自身 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/

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐