基于ChatGPT 3.5 + Java 8 + springboot 2.4.1 的后端 API 程序,扩展用于AI 聊天等。 支持异步流式响应 + websocket通信。觉得不错请右上角Star。
项目 2.0 不再开源,有需要的开发者可以通过下方官网的客服或者微信(gulihuazoe)进行联系,2.0主要功能也在下方
本项目在微信小程序端已经上线了!小程序搜索【微 AI 聊天】,认准这个logo图标就可以了,欢迎体验~
- 支持登录,包括手机号登录,邮箱登录
- 支持敏感词检测
- 支持 AI 绘画,使用了Flagstudio接口
- 支持文案生成,有 77+个模版
- UI 适配了 PC 电脑端
- 系统采用积分制,每天送 10 积分,邀请注册送积分,签到分享送积分
- 添加了支付充值功能,使用易支付
- 返回的生成内容使用 Markdown 渲染,支持代码行号和高亮
- 本项目是基于springBoot开发,采用 stream + websocket 与小程序进行通信(微信小程序不支持SSE),异步响应无需等待! 支持记住上下文的连续对话,全AI对话和AI生成图片。 其中上下文的连续对话,全AI对话要配合前端小程序使用。 可以通过账号密码、token(感谢acheong08提供的代理) 方式,以及 API-Key 方式登录,其中账号密码、token方式有被永久封禁账号的风险,不建议使用,多个API Key在同一IP地址的服务器请求也有被封号的几率!!!
- 本项目实现了百姓网提供的api接口方式的调用,需要申请,点击跳转申请地址,大概两三天能收到短信回复。
- 防止有人恶意请求 api 和 socket,本项目设置了速度限制,api默认5个请求/秒/IP ,websocket默认 20个请求/分钟/IP。
- 【会被封号】
未登录用户每天默认可以有20次的提问机会。为了防止api.openai.com的请求速率限制,通过使用一些免费的chatgpt帐户(有18$的额度)来实现,每请求一次就切换到下一个账户。 - AI生成的图片是在一个*.blob.core.windows.net的国外域名, 由于微信小程序不支持未备案的域名,目前暂时的方法是先保存到本地,有效期是 1 天,然后通过每天凌晨的自动任务进行删除前天生成的图片。
最低配置:1核2G
推荐配置:2核4G 【狂欢特惠】【博主目前配置】
最近,腾讯云和阿里云的优惠力度非常大,如果有需求的小伙伴,可以了解一下~
【阿里云】云服务器狂欢特惠,爆款云服务器 s6 2核4G 低至0.46/天,具体规则查看活动详情 点我传送
【腾讯云】云产品限时秒杀,爆款 2核2G4M 云服务器,免费续3个月/送同配置3个月,仅需10.67元/月【博主强烈推荐】点我传送
- 友好的代码结构及注释,便于阅读及二次开发
- 采用Stream+Websocket和小程序/客户端进行通信,实时响应!
- 采用枚举+多实现的服务调用,便于扩展其他的 api
- 采用 AOP + 自定义注解 + Cache 实现限制IP接口访问次数
目前项目托管在 Gitee 和 Github 平台上中,欢迎大家 Star 和 Fork 支持~
- 基于uni-app构建的微信小程序:https://github.com/gulihua10010/wxmini-chatgpt
- openAi授权SDK:https://github.com/gulihua10010/openAiAuth
- chatGpt API SDK:https://github.com/gulihua10010/chatGptApiSdk
- chatGpt命令行客户端:https://github.com/gulihua10010/ChatGpt
技术 | 说明 | 官网 |
---|---|---|
SpringBoot | Java框架 | https://spring.io/projects/spring-boot |
SpringSecurity | 认证和授权框架 | https://spring.io/projects/spring-security |
logBack | 日志框架 | https://logback.qos.ch/ |
Lombok | 简化对象封装工具 | https://github.com/rzwitserloot/lombok |
Nginx | HTTP和反向代理web服务器 | http://nginx.org/ |
Hutool | Java工具包类库 | https://hutool.cn/docs/#/ |
okhttp | Http 客户端 | https://github.com/square/okhttp |
websocket | web socket 通信 | http://www.websocket.org/ |
- 需要吧AuthApiController.java里的
/api1
改为/api
- 根据application-test.properties配置,自建
dev
和prod
环境的配置,由于涉及到apikey等信息,把它给隐藏了,或者在pom.xml里只保留test
环境 - 项目里面的像 apiKey 之类的关键参数都是可以通过接口动态配置的,你可以自建一个CacheController.java,然后可以更新缓存里面的配置,当然接口地址必须是隐藏的。
nohup java -jar /www/application/chatgpt-1.0.0.jar --spring.profiles.active=prod -Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8 > /dev/null 2>&1
ChatGPT 是由 OpenAI 开发的世界知名的对话式 AI 模型,以对各种提示和查询生成类似人类的响应而闻名。凭借其尖端功能,ChatGPT 是聊天机器人、虚拟助手和其他自然语言处理应用程序的宝贵资产。 ChatGPT API 是一个强大的工具,允许开发人员将 ChatGPT 模型集成到他们自己的应用程序中。但是,要使用此 API,用户需要拥有 OpenAI API 密钥并支付使用费。
ChatGPT代表了人工智能和人类科技发展的新高度。它彻底改变了我们获取知识的方式,提升了许多人的写作和表达能力。凭借其强大的语言理解和文本生成能力,ChatGPT 已成为人类生产力和创造力的工具。
然而,当我与普通大众分享 ChatGPT 时,那些没有 AI 背景的人,我收到的回应不仅仅是赞美和惊奇,还有怀疑和怀疑。
一些人声称之前见过很多聊天机器人,而 ChatGPT 只是众多聊天机器人中的一个。过去的聊天机器人无法理解人类表达背后的意图。但是 ChatGPT 不像他们。其强大的语言理解和生成能力使其成为未来不可或缺的工具。
其他人则认为人工智能无法超越人类智慧,它只是从人类创造的数据中学习。不管真相如何,人工智能并不需要超越全人类的创造力来影响我们的日常生活。事实上,只要人工智能超越了每个个体的能力,它就能更好地协助人们,为我们的工作和生活方式带来变革性的影响。
还有一些人声称 ChatGPT 会产生错误的内容,捏造虚假信息,或者进行看似合乎逻辑但错误的推理,我们需要停止使用它。但这样做就像把婴儿连同洗澡水一起倒掉。ChatGPT 确实很有用,因为它简化了查找信息的过程,因为事实核查总是比从头开始搜索信息更容易。而且,随着人工智能技术的应用越来越广泛,我们应该熟悉ChatGPT等人工智能工具,了解它们在哪些方面容易出错,而不是简单地回避,更好地避免它们。
还有一些人认为,使用 ChatGPT 自动获取答案会阻碍批判性思维和解决问题能力的发展。然而,使用 ChatGPT 并不意味着将人类的思想委托给机器或停止人类的思考。ChatGPT 无法自动提供深刻的见解或敏锐的想法。事实上,对于不常见的问题,ChatGPT 只能提供笼统而陈腐的意见。关键是用户提供意见,ChatGPT 创建连贯的文章。
另一种说法认为,ChatGPT 创建的内容是没有灵魂的,因为它在创建时缺乏意识。然而,这个论点的正确性并不重要。最重要的一点是,未来人工智能技术无疑会越来越先进。想象一下二十年后的世界,人工智能将成为日常生活中无处不在的一部分。回顾 ChatGPT,人们可能会有不同的感受。我们现在必须熟悉人工智能技术,因为它越来越深入地融入我们的日常生活。
现在,让我们仔细看看 ChatGPT 背后的技术:自然语言处理。即使在 NLP 领域本身,许多人还没有意识到 ChatGPT 的颠覆性影响。
自然语言处理研究方法论的演变,从基于规则的方法到机器学习再到深度学习,证明了人类语言的复杂性。复杂性决定了自然语言处理不是写几条规则那么简单。它需要不断的改进和探索。现在,共指消解、依存分析和词性标注都被自然语言处理抛弃了。以后连命名实体识别、语法纠错都会显得滑稽可笑。随着 ChatGPT 彻底改变了 NLP 领域,NLP 研究人员必须积极熟悉这项尖端技术以迎接这个新时代。
工具 | 说明 | 官网 |
---|---|---|
IDEA | Java开发IDE | https://www.jetbrains.com/idea/download |
Postman | 接口调试工具 | https://www.postman.com/ |
工具 | 版本号 | 下载 |
---|---|---|
JDK | 1.8 | https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html |
Maven | 3.3.0+ | http://maven.apache.org/ |
Nginx | 1.10 | http://nginx.org/en/download.html |
平台 | 说明 | 官网 |
---|---|---|
宝塔面板 | 安全高效的服务器运维面板 | https://www.bt.cn/new/index.html |
开源项目离不开大家的支持,如果您有好的想法,遇到一些 BUG 并修复了,欢迎小伙伴们提交 Pull Request 参与开源贡献
- fork 本项目到自己的 repo
- 把 fork 过去的项目也就是你仓库中的项目 clone 到你的本地
- 修改代码
- commit 后 push 到自己的库
- 发起PR( pull request) 请求,提交到 Nacos 分支
- 等待作者合并
- 本项目高度重视隐私,致力于保护用户的隐私。服务器端的程序不会对账号密码、accessToken、 API-Key、用户信息等做任何存储和日志记录,这点可以放心使用。 开发者高度优先考虑您的API密钥/Access Token/账号信息的安全,并非常小心地处理它。您的密钥将专门存储在您的小程序/浏览器中,并且永远不会与任何第三方实体共享。它仅用于授权的预期用途,而不是用于任何其他未经授权的用途。 该项目的源代码可供检查以验证此声明。如何您不信任本项目,可以使用API-Key的方式,用完可以随时在官网删除相关API-Key。
- 但是,OpenAI API 会根据其数据使用政策将数据保留 30 天。
- 本程序仅供娱乐, 且仅用于测试和学习研究!禁止将源码用于商业用途,不能保证其合法性,准确性,完整性和有效性,请根据情况自行判断。
- 开发者对任何用户操作所导致的问题概不负责,包括但不限于由任何脚本错误导致的任何损失或损害。
- 请勿将本项目的任何内容用于商业或非法目的,否则后果自负。
- 以任何方式查看此网站的使用者都应仔细阅读此声明。作者保留随时更改或补充此免责声明的权利。 一旦使用并操作(包括但不限于测试,部署,运行于本地或服务器)了本程序,则视为您已接受此免责声明。
服务器和域名等服务的购买和续费都会产生一定的费用,为了维持项目的正常运作,如果觉得本项目对您有帮助的话,欢迎朋友能够给予一些支持