1、前言
最近工作比较闲,想玩点有意思的活,想到微信能不能搞个自动回复,加上ai现在这么火,微信结合gpt搞个机器人,这样朋友们就能和机器人聊天了哈哈哈哈哈哈,还能问问题想想就好玩
2、weChaty
- 新建一个文件夹
- 在这个文件夹的终端中(或者用vscode打开这个文件件), 执行 npm init -y 生成package-json文件
- 安装依赖
npm i wechaty
npm i qrcode-terminal // 生成二维码要用的包
- 新建index,js文件
注意:看第四点获取chatAPI key
const { WechatyBuilder } = require('wechaty');
const qrcode = require('qrcode-terminal');
const axios = require('axios');
class weChaty {
bot = null // 机器人实例
constructor() {
this.bot = WechatyBuilder.build();
this.bot.on('scan', code => {
qrcode.generate(code, { small: true });
})
this.bot.on('message', this.onMessage.bind(this));
}
onMessage(message) {
const talker = message.talker(); // 发送消息的联系人
if(!talker.payload.friend || message.payload.roomId || talker.payload.type != 1) { // 不是朋友发的消息,群消息
return;
}
if(message.payload.type != 7) { // 消息内容不是文字
talker.say("我只能处理文字消息,请发送文字内容");
return;
}
//限制你要发给谁,写你朋友的备注名
if(talker.payload.alias == ""){
const content = message.text(); // 消息内容
chatgpt(content).then(response =>{
talker.say(response);
}).catch(error =>{
console.log(error)
});
}
}
run() {
this.bot.start();
}
}
function chatgpt(message){
// 定义 API 地址和 Token
const apiUrl = 'https://api.chatanywhere.tech/v1/chat/completions';
const token = 'ChatAnywhere API Key';
// 定义要发送的数据
let postData = {
"model": "gpt-3.5-turbo",
"messages": [{"role": "user", "content": ""}]
};
postData.messages[0].content = message
// 设置请求头,包括 Token
const headers = {
'Authorization': `Bearer ${token}`,
'Content-Type': 'application/json',
};
// 发起 POST 请求
return new Promise((resolve,reject) =>{
axios.post(apiUrl, postData, { headers })
.then(response => {
resolve(response.data.choices[0].message.content);
})
.catch(error => {
reject('Error:', error);
});
})
}
new weChaty().run();
3、数据格式
讲解上面代码的message、talker的数据格式
message数据格式
talker数据格式
4、调用ChatAnywhere API
https://chatanywhere.apifox.cn/
-
免费领取API key
https://gitcode.com/chatanywhere/GPT_API_free?utm_source=gold_browser_extension&utm_source=csdn_github_accelerator&isLogin=1
-
安装axios库调用接口(一般装了npm应该就有,无需安装)
npm install axios -
调用接口后的数据格式