Gpt-robot-QQ
介绍
Gpt接入QQ群或私聊,可控制授权的群,目前只做了群聊艾特回复,私聊写法类似。
本程序仅供个人测试使用,请勿商用
https://gitee.com/sdfdfgdfgrg/chat-gpt-robot-qqc.git
软件架构
使用语言JAVA
启动方式
- 运行主类StartUpApplication
- 调用登录接口http://127.0.0.1:8282/qq-robot/robot/start?qq=xxx&password=xxx
实现效果
核心方法
监听群EventListeningHandle类中:
@EventHandler
public ListeningStatus onGroupMessageEvent(GroupMessageEvent event) {
this.publishMessage(RobotEventEnum.GROUP_MSG, event);
// 想要监听的群号:例如群:581090009
if(String.valueOf(event.getGroup().getId()).equals("581090009")){
// 长度大于2代表是艾特类型的消息
if(event.getMessage().size()>2){
executor.execute(()->{
cn.hutool.json.JSON para = resPara2(String.valueOf(event.getMessage().get(2)));
// 调用GhatGpt接口
String res = HttpRequest.post("https://api.openai.com/v1/completions").
header("Content-Type", "application/json")
// api-Key: Bearer sk-xxx
.header("Authorization", "Bearer sk-xxx")
.header("User-Agent","PostmanRuntime/7.29.0")
.body(para.toString())
.timeout(60000)
.execute().body();
JSONObject ress = JSON.parseObject(res);
String html = ress.getJSONArray("choices").getJSONObject(0).get("text").toString();
// 去除html标签
String message = Jsoup.parse(html).text();
// 发送给成员消息
event.getGroup().sendMessage(new At(event.getSender().getId()).plus(message));
});
}
}
// 保持监听
return ListeningStatus.LISTENING;
}
安装教程
- 下载源码,更新maven包
- 启动类:
com.billdowney.qq.robot.StartUpApplication
- 默认文档地址:http://127.0.0.1:8282/qq-robot/doc.html
- 由于其中用到了别人的api服务,需要修改
application.yml
中的配置:project.qq-robot.alapi-token
、project.qq-robot.kate-api-token