共计 1613 个字符,预计需要花费 5 分钟才能阅读完成。
微信群
群二维码生效时增加好友拉群
文章博客地址,查看源码
前置条件
- 你须要有 openai 的账号
- 创立账号时很多国家的手机号是不容许注册的,能够再一些网站购买容许注册的手机号,能够再这个网站,购买(须要充值 2 美元)
- 有了账号之后你须要在 openAI 创立 token(这里 token 基本上过期工夫只有一天,所以每天都须要创立新的 token 后粘贴到代码上重启我的项目)
- 还须要有一台登录了微信的手机(并且这个微信是绑定过手机号,用过一段时间的,否则代码登录可能发不出音讯,在代码登录之后手机的微信不能退出,就像 PC 登录了微信,手机退出时电脑也会主动退出)
装置依赖
npm i wechaty
npm i axios
登录微信
输入的链接浏览器关上,微信扫码登录即可。
import {WechatyBuilder} from "wechaty"
const apiKey = "你的 openAI key"
// 调用 ChatGPT4 模型
const model = "gpt-3.5-turbo"
let username = ""
const wechaty = WechatyBuilder.build()
wechaty
.on("scan", (qrcode, status) =>
console.log(` 二维码 ${status}: https://wechaty.js.org/qrcode/${encodeURIComponent(qrcode)}`
)
)
.on("login", user =>
console.log(` 用户名 ${(username = user.name() || "")} 登录胜利 `)
)
群聊主动 @回复
以下实现群 @以后登录的用户是,@回复对方
.on("message", async (message) => {
// 如果是群聊音讯
if (message.room()) {// const type = message.type();
const msg = message.text().replace(`@${username}`, "");
const room = await message.room();
const isMentioned = await message.mentionSelf();
const contact = message.talker();
const topic = await room.topic();
// const includes = [""]
if (isMentioned) {
try {
const res = await axios({
method: "post",
url: "https://api.openai.com/v1/chat/completions",
headers: {
Authorization: "Bearer" + apiKey,
"Content-Type": "application/json",
},
data: JSON.stringify({
model,
messages: [{role: "user", content: msg}],
}),
timeout: 0,
});
console.log(` 群号: ${topic}, 用户名: ${contact.name()}, 音讯: ${msg}, 答复: ${res.data.choices[0].message.content
}`
);
room.say(`@${contact.name()} ${res.data.choices[0].message.content}`);
} catch (e) {console.log("报错:", e.message);
room.say(`@${contact.name()} 报错了...`);
}
}
}
});
// 事件监听实现后开始启动
wechaty.start();
<script setup lang=”ts”>
import CommunicationGroup from “../../../layout/CommunicationGroup.vue”
</script>
正文完