赞
踩
最近工作比较闲,想玩点有意思的活,想到微信能不能搞个自动回复,加上ai现在这么火,微信结合gpt搞个机器人,这样朋友们就能和机器人聊天了哈哈哈哈哈哈,还能问问题想想就好玩
npm i wechaty
npm i qrcode-terminal // 生成二维码要用的包
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();
讲解上面代码的message、talker的数据格式
message数据格式
talker数据格式
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
调用接口后的数据格式
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。