引言与效果
Wechaty 是一个开源的对话SDK,可以快速接入AI,本文章旨在教学如何用Wechaty实现微信接入GPT,最终实现效果如下:
Wechaty机器人介绍
Wechaty 是一个开源的的对话机器人 SDK。
在GitHub上可以找到很多支持微信个人号接入的第三方类库,其中大多都是基于Web Wechat的API来实现的,如基于Python的WeixinBot,基于Node.js的Wechaty等。
少数支持非Web协议的库,大多是商业私有闭源的,Wechaty是少有的开源项目支持非Web协议的类库。
只需要6行代码,你就可以搭建一个 微信机器人功能 ,用来自动管理微信消息。
import { Wechaty } from 'wechaty'
Wechaty.instance()
.on('scan', qrcode => console.log('扫码登录:' + qrcode))
.on('login', user => console.log('登录成功:' + user))
.on('message', message => console.log('收到消息:' + message))
.on('friendship', friendship => console.log('收到好友请求:' + friendship))
.on('room-invite', invitation => console.log('收到入群邀请:' + invitation))
.start()
更多功能请看官方文档:介绍 | 中文版 | Wechaty (gitbook.io)
Wechaty部署
第一步:从GitHub上获取Wechaty项目
- 去GitHub上拉取Wechaty项目:
- 访问 Wechaty的GitHub页面。
- 你可以直接下载源代码,或者使用Git克隆项目:
git clone https://github/wechaty/wechaty.git
第二步:安装Node.js
- 下载Node.js:
- 访问 Node.js官网 下载Node.js,推荐使用16.*版本。
第三步:安装依赖
- 安装项目依赖:
- 打开终端,切换到
wechaty
项目的根目录。 - 执行
npm install
安装项目依赖。 - 执行
npm install axios
安装axios库,用于发送HTTP请求。
- 打开终端,切换到
第四步:启动机器人
- 启动你的微信机器人:
- 在项目根目录下,运行
npm start
。 - 如果一切正常,你会看到一个二维码。
- 在项目根目录下,运行
第五步:登录微信
- 用微信扫描二维码:
- 打开微信,扫描显示的二维码进行登录。
第六步:测试机器人
- 发送测试消息:
- 用另外一台手机发送消息 "ding" 给你登录了机器人的微信账号。
- 如果机器人回复了 "dong",那么恭喜你,搭建成功!
接入GPT
申请一下令牌,假如你能科学,也有官方账号,可以跳过这一步
拿到令牌后,我们就可以进行接入了,打开你机器人目录下
wechaty-main\wechaty-main\examples里的ding-dong-bot
对 onMessage (msg: Message) 方法进行改写:
const openAiApiKey = '这里放你在水龙头拿到的key';
try{
if (msg.type() === bot.Message.Type.Text)
{
const text = msg.text().trim();
// 检查消息是否以艾特自己开头
if (text.startsWith("@桔桔"))
{
// 替换掉艾特自己的字眼
const newText = text.replace("@桔桔", "").trim();
// 仅在真正消息体不为空时调用 API
if (newText)
{
// 调用 OpenAI API
const data = {
model: "gpt-3.5-turbo",
messages: [{"role": "user", "content": newText}]
};
// 调用 OpenAI API,这里采用的是水龙头API提供的服务地址,不能直接访问官网
const response = await axios.post('https://openkey.cloud/v1/chat/completions', data, {
headers: {
'Authorization': `Bearer ${openAiApiKey}`,
'Content-Type': 'application/json'
}
});
// 解析并发送回复
const choices = response.data.choices;
if (choices && choices.length > 0)
{
const reply = choices[0].message.content.trim();
await msg.say(reply);
} else
{
await msg.say("对不起,我暂时无法回答这个问题。");
}
}
else
{
await msg.say("桔桔AI为你服务");
}
}
else if(text==="ding")
{
await msg.say("dong");
}
}
}catch(error){
console.error('Error:',error);
}
console.log(msg.text())
然后在按照上面的Wechaty启动方式启动即可使用你的微信个人AI了!
结束语
这波属于站在巨人肩膀上实现功能,前人栽树,后人乘凉~
这里面非常好的一点就是使用这个网站提供的API,与官网的接口是一致的,可以直接看OpenAI官网文档进行代码的编写。
对话Chat – OpenAI接口文档中文版 (openaidoc)
引言与效果
Wechaty 是一个开源的对话SDK,可以快速接入AI,本文章旨在教学如何用Wechaty实现微信接入GPT,最终实现效果如下:
Wechaty机器人介绍
Wechaty 是一个开源的的对话机器人 SDK。
在GitHub上可以找到很多支持微信个人号接入的第三方类库,其中大多都是基于Web Wechat的API来实现的,如基于Python的WeixinBot,基于Node.js的Wechaty等。
少数支持非Web协议的库,大多是商业私有闭源的,Wechaty是少有的开源项目支持非Web协议的类库。
只需要6行代码,你就可以搭建一个 微信机器人功能 ,用来自动管理微信消息。
import { Wechaty } from 'wechaty'
Wechaty.instance()
.on('scan', qrcode => console.log('扫码登录:' + qrcode))
.on('login', user => console.log('登录成功:' + user))
.on('message', message => console.log('收到消息:' + message))
.on('friendship', friendship => console.log('收到好友请求:' + friendship))
.on('room-invite', invitation => console.log('收到入群邀请:' + invitation))
.start()
更多功能请看官方文档:介绍 | 中文版 | Wechaty (gitbook.io)
Wechaty部署
第一步:从GitHub上获取Wechaty项目
- 去GitHub上拉取Wechaty项目:
- 访问 Wechaty的GitHub页面。
- 你可以直接下载源代码,或者使用Git克隆项目:
git clone https://github/wechaty/wechaty.git
第二步:安装Node.js
- 下载Node.js:
- 访问 Node.js官网 下载Node.js,推荐使用16.*版本。
第三步:安装依赖
- 安装项目依赖:
- 打开终端,切换到
wechaty
项目的根目录。 - 执行
npm install
安装项目依赖。 - 执行
npm install axios
安装axios库,用于发送HTTP请求。
- 打开终端,切换到
第四步:启动机器人
- 启动你的微信机器人:
- 在项目根目录下,运行
npm start
。 - 如果一切正常,你会看到一个二维码。
- 在项目根目录下,运行
第五步:登录微信
- 用微信扫描二维码:
- 打开微信,扫描显示的二维码进行登录。
第六步:测试机器人
- 发送测试消息:
- 用另外一台手机发送消息 "ding" 给你登录了机器人的微信账号。
- 如果机器人回复了 "dong",那么恭喜你,搭建成功!
接入GPT
申请一下令牌,假如你能科学,也有官方账号,可以跳过这一步
拿到令牌后,我们就可以进行接入了,打开你机器人目录下
wechaty-main\wechaty-main\examples里的ding-dong-bot
对 onMessage (msg: Message) 方法进行改写:
const openAiApiKey = '这里放你在水龙头拿到的key';
try{
if (msg.type() === bot.Message.Type.Text)
{
const text = msg.text().trim();
// 检查消息是否以艾特自己开头
if (text.startsWith("@桔桔"))
{
// 替换掉艾特自己的字眼
const newText = text.replace("@桔桔", "").trim();
// 仅在真正消息体不为空时调用 API
if (newText)
{
// 调用 OpenAI API
const data = {
model: "gpt-3.5-turbo",
messages: [{"role": "user", "content": newText}]
};
// 调用 OpenAI API,这里采用的是水龙头API提供的服务地址,不能直接访问官网
const response = await axios.post('https://openkey.cloud/v1/chat/completions', data, {
headers: {
'Authorization': `Bearer ${openAiApiKey}`,
'Content-Type': 'application/json'
}
});
// 解析并发送回复
const choices = response.data.choices;
if (choices && choices.length > 0)
{
const reply = choices[0].message.content.trim();
await msg.say(reply);
} else
{
await msg.say("对不起,我暂时无法回答这个问题。");
}
}
else
{
await msg.say("桔桔AI为你服务");
}
}
else if(text==="ding")
{
await msg.say("dong");
}
}
}catch(error){
console.error('Error:',error);
}
console.log(msg.text())
然后在按照上面的Wechaty启动方式启动即可使用你的微信个人AI了!
结束语
这波属于站在巨人肩膀上实现功能,前人栽树,后人乘凉~
这里面非常好的一点就是使用这个网站提供的API,与官网的接口是一致的,可以直接看OpenAI官网文档进行代码的编写。
对话Chat – OpenAI接口文档中文版 (openaidoc)