技术相关 技术相关 关注:149 内容:171

Facebook+n8n打造AI全自动聊天机器人

  • 查看作者
  • 打赏作者
    • Lv.2
      优质作者

      最近搞了一个可以自动聊天的工具,给别人扯蛋推广告的时候再也不尴尬了 [s-9] ,AI比我能扯。记录一些踩过的坑

      前期准备

      facebook开发者帐号

      进入https://developers.facebook.com/apps/,创建应用,名字邮箱随便填

      Use cases中选其他

      Facebook+n8n打造AI全自动聊天机器人

      app type选business
      Facebook+n8n打造AI全自动聊天机器人

      建好之后需要在App settings -> Basic中,设置一个privacy policy URL,随便填一个就行,然后把App Mode改成Live
      Facebook+n8n打造AI全自动聊天机器人

      设置Messenger Webhook

      在Set up app里选Messenger
      Facebook+n8n打造AI全自动聊天机器人
      设置一下webhook
      Facebook+n8n打造AI全自动聊天机器人
      上面填n8n workflow的地址,下面那个密码随便填,后续要验证一下

      n8n的webhook节点要打开Allow Mutiple HTTP Methods,因为验证用的GET,发消息用的POST

      Facebook+n8n打造AI全自动聊天机器人
      然后打开n8n的Listen for test event,facebook这点一下Verify and save
      没配置的话第一次肯定验证不通过,需要在n8n验证一下传过来的密码,然后response to webhook,把FB传过来的hub.challenge这个值用text展示出来,再次验证就可以通过了

      Facebook+n8n打造AI全自动聊天机器人
      通过之后刷新FB,刚刚webhook那里就有个绿色对勾
      Facebook+n8n打造AI全自动聊天机器人
      点后面箭头展开,打开messages和message_read权限
      Facebook+n8n打造AI全自动聊天机器人
      然后在第二步中链接自己的Page
      Facebook+n8n打造AI全自动聊天机器人
      完成之后会给个access_token,这个只显示一次,存起来备用

      现在就可以给连上的主页发送一条消息试试。

      主要内容是body这一段

      Facebook+n8n打造AI全自动聊天机器人

      其中,sender的id是发送者id,recipient的id是绑定的page id,message里的text是发送的内容

      消息防抖

      大多数人发消息都会一次只说一个短句,有时候为了表达清楚一件事会连续发多条消息。所以我们需要设置消息防抖(Message debouncing)收到用户连续多条消息并统一回复。具体设置如下:

      Facebook+n8n打造AI全自动聊天机器人

      解释一下其中内容:
      1. 收到消息之后push到redis中

      Facebook+n8n打造AI全自动聊天机器人

      2. 针对这个用户设置一个防抖锁,过期时间根据需求,我这里设置了10秒,可以短一点
      Facebook+n8n打造AI全自动聊天机器人
      3. 等待11秒,反正超过刚刚的过期时间就行

      4. 等待完成后检查一下防抖锁还在不在。如果还在就继续发“正在输入”的状态。这里推荐使用redis是因为存入redis的数据可以设置时间限制,超过时间就自动删了,要是用别的数据库也行,就是防抖这里逻辑要改改

      5. 如果防抖锁不在了,就把用户的信息全取出来,合并一下,再把这段记录删了

      AI回复

      回复的逻辑就不赘述了,根据自己的业务需求写提示词就行,然后回复内容,也可以回复状态/表情 或者图片文件按钮什么的,具体看最后的FB文档,其中recipient_id就是上面那个sender的id,access_token就是一开始连接facebook page时记下来的token。

      Facebook+n8n打造AI全自动聊天机器人

      FB相关的API文档在这里:https://developers.facebook.com/docs/messenger-platform/send-messages

      避坑指南

      1. 由于之前n8n设置了response to webhook,应该改回来,或者把response to webhook提前,否则FB会等前一条完成了再发送webhook,造成消息防抖失效

      2. AI回复的提示词要让他把换行符号转义了,或者自己手动转义,否则JSON格式不正确会导致消息回复不成功

      请登录之后再进行评论

      登录
    • 发布
    • 任务
    • 帖子间隔 侧栏位置: