动手做个 AI 机器人,帮我回消息!
大家好,我是鱼皮,自从做了知识分享,我的微信就没消停过,平均每天会收到几百个消息,大部分都是学编程的朋友向我咨询编程问题。
但毕竟我只有一个人,没法所有消息都一个个回复,所以也是很愧疚和无力吧;另外我发现,大家的很多问题是重复的,而且大多数我都专门写文章来回答过。
所以,我决定自制一个 AI 问答机器人,帮我自动回复大家的常见问题,减少重复工作。
结果没想到,制作过程中被 Bug 坑惨了,闹了不少笑话,感兴趣的朋友可以看看视频哈哈:
由于制作方法实在太简单,所以给大家分享下完整的教程,让大家也能轻松制作自己的 AI 机器人。
自制 AI 机器人教程
预计整个制作过程 10 分钟
先描述下需求:做一个能够自动回答微信消息的机器人。
要实现这个需求,有两个要点:
- 如何让程序接收到微信发来的消息?
- 如何根据消息来回复对应的内容?
这两个问题,如果没有一定的专业知识,是很难自行解决的。但如今是开源的时代,我们可以站在巨人的肩膀上,用现成的技术来解决这些问题。
接受消息
可以使用开源的 wechaty
库来实现对微信的自动化操作,比如收发消息、通过好友、拉群等。
所以,如果你只想自动回复某人或某群聊的消息,记得在代码中补充相应的过滤逻辑,比如:
// 处理消息
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,使用上述代码,就能实现接受消息和自动回复啦!
那么你是否好奇,wechaty 是如何接受到微信消息的呢?其实原理很简单,执行 wechaty 程序时,它会利用无头浏览器技术悄悄打开一个网页版微信,然后在你运行程序的控制台弹出微信网页版的登录二维码,在你扫码登录后,程序只需要监听页面元素的变化、或者自动触发点击事件即可。
我们可以直接利用 微信对话开放平台
提供的强大能力,一行代码都不用写,就能免费实现智能对话!
登录后先创建一个机器人: