在当下这个人工智能和聊天机器人盛行的时代,如果你想开发一个强大的跨平台聊天机器人,Wechaty 是不可错过的工具。作为一个开源的聊天机器人 SDK,Wechaty 以其简单易用和强大的功能,被许多开发者誉为聊天机器人领域的“瑞士军刀”。
本文将以简洁的风格介绍 Wechaty 的特点,并结合几个典型场景给出代码示例,帮助你快速入门。
Wechaty 是一个跨平台的聊天机器人 SDK,支持多种消息平台,包括微信、WhatsApp、钉钉、企业微信等。其核心优势在于:
如果你需要一个能够自动回复消息的机器人,Wechaty 能让这件事变得非常简单。以下是一个基本的自动回复示例:
import { Wechaty } from 'wechaty'
const bot = Wechaty.builder() // 创建机器人实例
bot.on('message', async (message) => {
console.log(`Message received: ${message.text()}`)
if (message.text() === '你好') {
await message.say('你好!我是一个聊天机器人!')
}
})
bot
.start()
.then(() => console.log('Bot started!'))
.catch((e) => console.error(e))
运行这个脚本后,机器人会在收到“你好”消息时,自动回复“你好!我是一个聊天机器人!”。
假设你需要将消息发送给多个联系人,Wechaty 的 API 也非常便捷。以下是一个群发消息的例子:
import { Wechaty } from 'wechaty'
const bot = Wechaty.builder()
bot.on('ready', async () => {
console.log('Bot is ready!')
const contacts = await bot.Contact.findAll() // 获取所有联系人
for (const contact of contacts) {
if (contact.friend()) { // 过滤好友
await contact.say('群发测试消息:Hello!')
}
}
})
bot.start()
这个代码在机器人启动后,会向所有好友发送“群发测试消息:Hello!”。
在某些业务场景中,比如舆情监控或关键消息通知,机器人需要对特定关键词进行实时监控。
import { Wechaty } from 'wechaty'
const bot = Wechaty.builder()
const KEYWORDS = ['重要', '报警', '紧急']
bot.on('message', async (message) => {
const text = message.text()
const isKeywordDetected = KEYWORDS.some((keyword) => text.includes(keyword))
if (isKeywordDetected) {
console.log(`关键词触发:${text}`)
// 发出报警或通知
await message.say('已检测到关键词,请注意!')
}
})
bot.start()
上面的代码会监控所有收到的消息,如果包含关键词“重要”、“报警”或“紧急”,机器人会立即回复并触发报警逻辑。
如果你想将机器人变得更智能,可以将其集成到 ChatGPT API,让机器人具备强大的自然语言处理能力。
import { Wechaty } from 'wechaty'
import axios from 'axios'
const OPENAI_API_URL = 'https://api.openai.com/v1/chat/completions'
const OPENAI_API_KEY = 'your_openai_api_key'
const bot = Wechaty.builder()
async function getChatGPTReply(prompt) {
const response = await axios.post(
OPENAI_API_URL,
{
model: 'gpt-3.5-turbo',
messages: [{ role: 'user', content: prompt }],
},
{
headers: {
Authorization: `Bearer ${OPENAI_API_KEY}`,
},
}
)
return response.data.choices[0].message.content
}
bot.on('message', async (message) => {
const text = message.text()
console.log(`User said: ${text}`)
const reply = await getChatGPTReply(text)
await message.say(reply)
})
bot.start()
这个代码实现了一个功能强大的对话机器人,它会将用户的消息发送给 ChatGPT,并将生成的回复发送回用户。
Wechaty 的强大在于它的灵活性和易用性,无论是简单的自动回复还是复杂的智能对话,都能用 Wechaty 快速实现。同时,丰富的插件和活跃的社区也为开发者提供了强大的支持。