ai帮写程序 动手做个 AI 机器人,帮我回消息

默认分类1年前 (2023)发布 admin
5,024 0
ChatGPT国内版

大家好,我是鱼皮,自从做了知识分享,我的微信就没消停过,平均每天会收到几百个消息,大部分都是学编程的朋友向我咨询编程问题。

但毕竟我只有一个人,没法所有消息都一个个回复,所以也是很愧疚和无力吧;另外我发现,大家的很多问题是重复的,而且大多数我都专门写文章来回答过。

所以,我决定自制一个 AI 问答机器人,帮我自动回复大家的常见问题,减少重复工作。

结果没想到,制作过程中被 Bug 坑惨了,闹了不少笑话,感兴趣的朋友可以看看视频哈哈:

地址:

由于制作方法实在太简单,所以给大家分享下完整的教程,让大家也能轻松制作自己的 AI 机器人。

自制 AI 机器人教程

预计整个制作过程 10 分钟

先描述下需求:做一个能够自动回答微信消息的机器人。

ai帮写程序 动手做个 AI 机器人,帮我回消息

要实现这个需求,有两个要点:

如何让程序接收到微信发来的消息?如何根据消息来回复对应的内容?

这两个问题,如果没有一定的专业知识,是很难自行解决的。但如今是开源的时代,我们可以站在巨人的肩膀上,用现成的技术来解决这些问题。

接受消息

可以使用开源的 库来实现对微信的自动化操作,比如收发消息、通过好友、拉群等。

使用方法很简单,在 仓库的项目介绍文件中,有最简单的入门示例代码,只需要 6 行代码 ,就能启动一个帮你接受消息的机器人!

支持几乎所有主流的编程语言,其中 的入门代码如下:

import { WechatyBuilder } from 'wechaty'
// 启动
WechatyBuilder.build()
  .on('scan', (qrcode, status) => console.log(`Scan QR Code to login: ${status}nhttps://wechaty.js.org/qrcode/${encodeURIComponent(qrcode)}`))
  .on('login',            user => console.log(`User ${user} logged in`))
  .on('message',       message => console.log(`Message: ${message}`))
  .start()

解释一下上述代码,你会发现, 中定义了很多事件,比如扫码、用户登录、接受消息、接受好友请求等。你不需要关心事件是如何被它触发的,只需要针对不同事件来编写处理方法就好,比如收到消息后自动回复同样的消息,示例代码如下:

ai帮写程序 动手做个 AI 机器人,帮我回消息

// 初始化机器人
const bot = WechatyBuilder.build({
  name: 'yupi-wxrobot',
  // 用于兼容不同 IM 协议,不用关心
  puppet: 'wechaty-puppet-wechat',
})
// 处理消息
bot.on('message', async function (msg) {
  // 获取消息发送人
  const contact = msg.talker()
  // 获取消息内容
  const text = msg.text()
  // 获取群聊信息
  const room = msg.room()
  // 是私聊
  if (contact && text) {
    // 回复相同内容
    msg.say(text, contact);
  }
}

但是,大家 千万不要 直接运行上述代码!因为一旦你启动了机器人、又没有限制回复者昵称的话,它会对所有给你发消息的人生效!

我刚开始没注意,就被坑了。。。

所以,如果你只想自动回复某人或某群聊的消息,记得在代码中补充相应的过滤逻辑,比如:

// 处理消息
bot.on('message', async function (msg) {
  // 获取消息发送人
  const contact = msg.talker()
  // 获取消息内容
  const text = msg.text()
  // 获取群聊信息
  const room = msg.room()
  // 不处理自己的消息
  if (msg.self()) {
    return
  }
  // 群聊还是私聊
  if (room) {
    if(room.topic() === '鱼皮群') {
      // 回复
    }
  } else {
    if(contact.name() === '小号') {
      // 回复
    }
  }
}

OK,使用上述代码,就能实现接受消息和自动回复啦!

那么你是否好奇, 是如何接受到微信消息的呢?其实原理很简单,执行 程序时,它会利用无头浏览器技术悄悄打开一个网页版微信,然后在你运行程序的控制台弹出微信网页版的登录二维码,在你扫码登录后,程序只需要监听页面元素的变化、或者自动触发点击事件即可。

其实道理很简单,就是把我们能对网页进行的人工操作转化为后台自动化执行。

© 版权声明
广告也精彩

相关文章

暂无评论

暂无评论...