基于SpringBoot实现ChatGPT-QQ机器人

news/2024/5/15 19:04:55/文章来源:https://blog.csdn.net/flyfhj/article/details/128993222

概述

近期ChatGPT火爆全球,在其官方网站上也列举了非常全面的应用案例,仅仅上线两个月活跃用户数已经达到1亿,成为历史上用户数增长最快的面向消费者的应用

快速体验

OpenAI官网对外提供了标准的 API 接口,可以通过HTTP请求进行交互

curl https://api.openai.com/v1/completions \-H 'Content-Type: application/json' \-H 'Authorization: Bearer YOUR_API_KEY' \-d '{"model": "text-davinci-003","prompt": "今天星期几?","max_tokens": 7,"temperature": 0
}'

由于在使用过程中必须要登录授权账户且在网页中进行ChatGPT对话,为了简化体验过程,我们采用机器人(QQ、微信) + token 的方式对 ChatGPT底层调用 进行封装,只需要添加 机器人 为好友后进行对话就可以完成ChatGPT的对接体验了!

GitHub地址:https://github.com/flyfhj/showcase-chatgpt-robot.git

准备工作

基于ChatGPT实现的QQ/WeChat机器人,目前只支持QQ

项目依赖三方组件库

  • mirai 高效率 QQ 机器人支持库

  • openai-java 基于 OpenAI 的 GPT-3 api 的 Java 库

注册ChatGPT账号(略)

参考:https://www.bilibili.com/read/cv20802226/

项目中配置ChatGPT相关属性

application.properties

# chatgpt secret
chatgpt.apikey=sk-xxxxxxxxxxxxxxxxxxxxxxxx#completion properties
chatgpt.completion.model=text-davinci-003
chatgpt.completion.max-tokens=2048# mirai bot
chatgpt.mirai.protocol=IPAD
chatgpt.mirai.heartbeat-strategy=STAT_HB
chatgpt.mirai.device-file-name=derives.json
chatgpt.mirai.working-dir=D:/dist# qq
chatgpt.qq.number=3234327546
chatgpt.qq.password=123456

1、chatgpt.apikey配置ChatGPT账号对应的secretKey

2、若应用部署在Linux系统,注意修改chatgpt.mirai.working-dir的目录位置

3、如果启动过程中提示QQ版本过低,请升级至最新版本后再登录,则可以尝试修改chatgpt.mirai.protocol为其它协议 <ANDROID_PHONE、ANDROID_PAD、ANDROID_WATCH、IPAD、MACOS>

4、通过修改chatgpt.completion.max-tokens来控制交互数据的字符数(问题和答案的总和)

Maven dependency

<properties><!-- 重定义kotlinx-coroutines-bom中的依赖的版本 --><kotlin-coroutines.version>1.6.4</kotlin-coroutines.version>
</properties>
<dependencies><dependency><groupId>com.theokanning.openai-gpt3-java</groupId><artifactId>client</artifactId><version>0.9.0</version></dependency><dependency><groupId>net.mamoe</groupId><artifactId>mirai-core-jvm</artifactId><version>2.13.3</version></dependency>...
</dependencies>

注意:mirai的版本必须是2.13.3+,以前的版本是通过QQ扫码授权,但是启动过程中一直显示net.mamoe.mirai.internal.utils.crypto.DecryptionFailedException异常,从2.13.3+版本开始QQ授权调整为短信认证的方式

IDEA应用启动成功
2023-02-08 15:53:57 I/Net 3234327546: Successfully loaded friendGroup list: 4 in total
2023-02-08 15:53:57 I/Net 3234327546: Successfully loaded group list: 0 in total.
2023-02-08 15:53:57 I/Net 3234327546: Scheduled refresh login session in 19d 23h 55min 0.0s.
2023-02-08 15:53:57 I/Net 3234327546: Scheduled key refresh in 23h 55min 0.0s.
2023-02-08 15:53:57 V/Bot 3234327546: Event: BotOnlineEvent(bot=Bot(3234327546))
2023-02-08 15:53:57 I/Bot 3234327546: Bot login successful.
2023-02-08 15:53:58.570  INFO 28376 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8080 (http) with context path ''
2023-02-08 15:53:58.586  INFO 28376 --- [           main] c.s.chatgpt.ChatGPTMainApplication       : Started ChatGPTMainApplication in 11.933 seconds (JVM running for 15.679)
2023-02-08 15:54:00 V/Net 3234327546: Saving bdh session to cache
2023-02-08 15:54:00 V/Net 3234327546: Send: ConfigPushSvc.PushResp(ConfigPushSvc.PushResp)
2023-02-08 15:54:00 V/Net 3234327546: Recv: ConfigPushSvc.PushReq
效果图

添加QQ机器人为好友,然后就可以对话了!
image

(ChatGPT集成微信待续)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_256833.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

简单的密码加密

用户的密码必须被加密后再存储到数据库, 否则就存在用户账号安全问题用户使用的原始密码通常称之为"原文"或"明文", 经过算法的运算, 得到的结果通常称之为"密文"在处理密码加密时, 不可以使用任何加密算法, 因为所有加密算法都是可以被逆向运算…

centos学习记录

遇到的问题及其解决办法 centos7安装图形化界面 yum groupinstall ‘X Window System’ yum groupinstall -y ‘GNOME Desktop’ 安装完成后输入init 5进入图形化界面 centos7安装vmware-tools 第一步卸载open-vm-tools 输入命令 yum remove open-vm-tools 输入命令 reboot 在…

微前端基础

一、什么是微前端 微前端是一种软件架构&#xff0c;可以将前端应用拆解成一些更小的能够独立开发部署的微型应用&#xff0c;然后再将这些微应用进行组合使其成为整体应用的架构模式。微前端架构类似于组件架构&#xff0c;但不同的是&#xff0c;组件不能独立构建和发布&…

大数据时代的小数据神器 - asqlcell

自从Google发布了经典的MapReduce论文&#xff0c;以及Yahoo开源了Hadoop的实现&#xff0c;大数据这个词就成为了一个行业的热门。在不断提高的机器性能和各种层出不穷的工具框架加持下&#xff0c;数据分析开始从过去的采样抽查变成全量整体&#xff0c;原先被抽样丢弃的隐藏…

网络安全实验室7.综合关

7.综合关 1.渗透测试第一期 url&#xff1a;http://lab1.xseclab.com/base14_2d7aae2ae829d1d5f45c59e8046bbc54/ 进入忘记密码页面&#xff0c;右键查看源码&#xff0c;发现一个手机号 解题思路&#xff1a;通过给admin用户绑定13388758688手机号码&#xff0c;然后再进行…

使用vue3,vite,less,flask,python从零开始学习硅谷外卖(16-40集)

严正声明&#xff01; 重要的事情说一遍&#xff0c;本文章仅供分享&#xff0c;文章和代码都是开源的&#xff0c;严禁以此牟利&#xff0c;严禁侵犯尚硅谷原作视频的任何权益&#xff0c;我知道学习编程的人各种各样的心思都有&#xff0c;但这不是你对开源社区侵权的理由&am…

【算法题解】15. 设计最小栈

这是一道 中等难度 的题。 题目来自&#xff1a;leetcode 题目 设计一个支持 push &#xff0c;pop &#xff0c;top 操作&#xff0c;并能在 常数时间 内检索到最小元素的栈。 实现 MinStack 类: MinStack() 初始化堆栈对象。void push(int val) 将元素val推入堆栈。void p…

驱动 | Linux | NVMe 不完全总结

本文主要参考这里 1’ 2 的解析和 linux 源码 3。 此处推荐一个可以便捷查看 linux 源码的网站 bootlin 4。 更新&#xff1a;2022 / 02 / 11 驱动 | Linux | NVMe 不完全总结NVMe 的前世今生从系统角度看 NVMe 驱动NVMe CommandPCI 总线从架构角度看 NVMe 驱动NVMe 驱动的文件…

详细解读503服务不可用的错误以及如何解决503服务不可用

文章目录1. 问题引言2. 什么是503服务不可用错误3 尝试解决问题3.1 重新加载页面3.2 检查该站点是否为其他人关闭3.3 重新启动设备3.3 联系网站4. 其他解决问的方法1. 问题引言 你以前遇到过错误503吗&#xff1f; 例如&#xff0c;您可能会收到消息&#xff0c;如503服务不可…

三种方式查看linux终端terminal是否可以访问外网ping,curl,wget

方法1&#xff1a;ping注意不要用ping www.google.com.hk来验证&#xff0c;因为有墙&#xff0c;墙阻止了你接受网址发回的响应数据。即使你那啥过&#xff0c;浏览器都可以访问Google&#xff0c;terminal里面也是无法得到响应 百度在墙内&#xff0c;所以可以正常拿到响应信…

sklearn降维算法1 - 降维思想与PCA实现

目录1、概述1.1 维度概念2、PCA与SVD2.1 降维实现2.2 重要参数n_components2.2.1 案例&#xff1a;高维数据的可视化2.2.2 最大似然估计自选超参数2.2.3 按信息量占比选超参数1、概述 1.1 维度概念 shape返回的结果&#xff0c;几维几个方括号嵌套 特征矩阵特指二维的 一般来…

truffle 创建测试合约并部署到测试网络

1、npm 安装truffle npm install -g truffle2、创建truffle项目 mkdir imooc-on-blockchain-truffle && cd imooc-on-blockchain-truffle3、初始化truffle目录&#xff0c;会生成如下几个目录 contracts 存放.sol合约文件migrations 部署脚本目录test 测试文件目录t…

【GlobalMapper精品教程】045:空间分析工具(2)——相交

GlobalMapper提供的空间分析(操作)的方法有:交集、并集、单并集、差异、对称差集、相交、重叠、接触、包含、等于、内部、分离等,本文主要讲述相交工具的使用。 文章目录 一、实验数据二、符号化设置三、相交运算四、结果展示五、心灵感悟一、实验数据 加载配套实验数据(…

分布式之分布式事务V2

写在前面 本文一起来看下分布式环境下的事务问题&#xff0c;即我们经常听到的分布式事务问题。想要解决分布式事务问题&#xff0c;需要使用到分布式事务相关的协议&#xff0c;主要有2PC即两阶段提交协议&#xff0c;TCC&#xff08;try-confirm-cancel&#xff09;&#xf…

html的表单标签(form)

目录标题1、表单标签主要有三大类&#xff1a;2、表单标签中常见的属性3、例子代码及结果4、注意&#xff1a;5、表单中特殊的属性表单标签可以用来数据交互&#xff0c;而前面学的六个标签只能发送不能接收。 表单标签的作用就是数据交互1、表单标签主要有三大类&#xff1a; …

ImageMagick任意文件读取漏洞(CVE-2022-44268)

0x00 前提 前几天爆出一个 ImageMagick 漏洞 &#xff0c;可以造成一个任意文件读取的危害比较可观&#xff0c;最近有时间来复现学习一下 主要是影响的范围很大&#xff0c;很多地方都有这个问题&#xff0c;需要来学习一下 0x01 介绍 ImageMagick 是一个免费的开源软件套…

SpringMVC:拦截器(12)

拦截器1. 拦截器概念2. 拦截器入门案例2.1 环境准备2.2 拦截器开发步骤1: 创建拦截器类步骤2: 配置拦截器类步骤3: SpringMVC添加SpringMvcSupport包扫描和interceptor包扫描步骤4: 简化SpringMvcSupport的编写5 测试3. 拦截器参数解析&#xff08;了解&#xff09;3.1 前置处理…

【Call for papers】SIGCOMM-2023(CCF-A/计算机网络/2023年2月15日截稿)

ACM SIGCOMM is the flagship annual conference of the ACM Special Interest Group on Data Communication (SIGCOMM). ACM SIGCOMM 2023, the 37th edition of the conference series, will be held in New York City, US, September 10 - 14, 2023. 文章目录1.会议信息2.时…

Redis集群搭建(主从、哨兵、分片)

1.单机安装Redis 首先需要安装Redis所需要的依赖&#xff1a; yum install -y gcc tcl然后将课前资料提供的Redis安装包上传到虚拟机的任意目录&#xff1a; 例如&#xff0c;我放到了/tmp目录&#xff1a; 解压缩&#xff1a; tar -xzf redis-6.2.4.tar.gz解压后&#xff1…

OpenPPL PPQ量化(5):执行引擎 源码剖析

目录 PPQ Graph Executor(PPQ 执行引擎) PPQ Backend Functions(PPQ 算子库) PPQ Executor(PPQ 执行引擎) Quantize Delegate (量化代理函数) Usage (用法示例) Hook (执行钩子函数) 前面四篇博客其实就讲了下面两行代码&#xff1a; ppq_ir load_onnx_graph(onnx_impor…