同步操作将从 Angus/chat-plus 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
本项目是重构 chatgpt-plus 的后端Java重构版
体验地址:https://ai.anshangba.com 体验账号:
18888888888/12345678
镜像仓库地址:
docker.io/chj9/chat-plus-java:latest
本项目前端地址 https://gitee.com/hongjie95/chatgpt-plus 请使用
chat-plus-java
分支打包编译前端包,main分支保持和主仓库代码一致
执行以下命令打包前端项目
npm run build
并结合nginx把dist的文件目录放到前端服务器上即可
如有问题加群讨论
或者加作者微信: tulingai88 请备注:chat-plus
接口文档地址: http://127.0.0.1:8080/swagger-ui/index.html
├─application-api # 业务数据模型模块
├─application-app # 业务接口Controller模块
├─application-dao # 业务DAO模块
├─application-openai-sdk # 各家的机器人SDK对接模块,统一入参出参
├─application-service # 业务服务层模块
│ └─aiprocessor # 核心模块,对接open ai sdk 的方式,以及发消息的处理
├─core # 核心模块
│ ├─common # 公共模块
│ ├─datasource # 数据源模块
│ ├─elasticsearch # es配置模块
│ ├─job # 定时任务模块
│ ├─file # 文件模块
│ ├─json # json序列化配置模块
│ └─web # web配置,和拦截器过滤器相关模块
└─tools # 代码生成工具模块
└─code-generator
支付宝
、微信支付
原生支付详细介绍 https://bugstack.cn/md/zsxq/project/openai-sdk-java.html 我这边代码复制过来,做了大量的修改和兼容,可能和原项目有所不同
Java 21
,如果你的Java版本不是21,请自行兼容修改Gradle 8
构建,如果你不会使用Gradle
,请自行学习原项目的数据库表名,和部分字段名和类型
,如果你想使用原项目的数据库,请自行修改git clone https://gitee.com/hongjie95/chat-plus.git
/doc/chat-plus.sql
,创建数据库和表,初始化数据,管理员账户:18888888888/12345678
application.yml
中的spring.profiles
spring:
profiles:
group:
default:
- dev
local:
- local
prod:
- prod
production:
- production
active: default
spring.profiles.active
的值,如dev
、local
、prod
、production
application-dev.yml
中的数据库配置,Redis配置相关文件都在
doc
文件夹下面了 fonts包主要是中文字体,生成图片验证码的时候用到
打包jar包
如果本地没有环境,推荐切个release分支,然后开通Gitee的ci流水线,ci脚本在
.workflow/release-pipeline.yml
目录下, 代码提交了会自动编译打jar包,下载制品即可
本地打包命令
./gradlew --build-cache clean -Dorg.gradle.console=plain :application-app:bootJar -PbootJarArchiveId=app
jar包打包完成后,会在application-app/build/libs
目录下生成app.jar
文件
创建Dockerfile文件,这里我打包的配置文件后缀为prod
,所以线上我的配置文件为application-prod.yml
构建Docker镜像
docker build -t chj9/chat-plus-java:latest .
创建docker-compose.yml文件
执行数据库脚本,数据库脚本在doc文件夹下,默认数据库名为chat-plus
,如果你的数据库名不是chat-plus
,请自行修改
默认管理员账号:15302789406/123456
,由表t_user
的字段admin
控制,1为管理员,0为普通用户
部署XXL-JOB 以下是我的部署方法,如果你已经部署有了请忽略此步骤
version: "3"
services:
xxl_job:
image: xuxueli/xxl-job-admin:2.4.0
container_name: xxl-job
restart: on-failure:3
volumes:
- /etc/localtime:/etc/localtime:ro
ports:
- "8099:8080"
environment:
- PARAMS=--spring.datasource.url=jdbc:mysql://127.0.0.1:3306/xxl_job?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai --spring.datasource.username=root --spring.datasource.password=xxxx --xxl.job.accessToken=xxxx
- JAVA_TOOL_OPTIONS=-XX:InitialRAMPercentage=40.0 -XX:MinRAMPercentage=20.0 -XX:MaxRAMPercentage=80.0
deploy:
resources:
limits:
memory: 1024m
reservations:
memory: 512m
注意修改数据库地址和--xxl.job.accessToken
的值
配置XXL-JOB定时任务
任务描述: 用户订阅定时任务
调度周期: 0 0/2 * * * ?
运行模式:UserSubsTaskJob#subsJob
任务描述: 支付结果定时任务
调度周期: 0 0/1 * * * ?
运行模式:PayTaskJob#payResultJob
任务描述: 订单结果定时任务
调度周期: 0 0/1 * * * ?
运行模式:OrderTaskJob#orderResultJob
本项目基于 MIT 协议,免费开放全部源代码,可以作为个人学习使用或者商用。 如需商用必须保留版权信息,请自觉遵守。确保合法合规使用,在运营过程中产生的一切任何后果自负,与作者无关。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。