rename project name to geekai

This commit is contained in:
RockYang 2024-05-20 15:11:14 +08:00
parent 38777ea285
commit 68100f7f24
6 changed files with 146 additions and 239 deletions

186
README.md
View File

@ -1,160 +1,62 @@
# ChatGPT-Plus # GeekAI-PLUS
基于 GeekAI 项目开发的高级版增加了很多高级功能比如思维导图Dalle 绘画等。**高级版源码不会一次性开放,只提供镜像给大家免费使用**,源码会逐步逐步按照版同步迁移到[社区版GeekAI](https://github.com/yangjian102621/geekai)。所以如果大家想要二次开发,请移步去社区版。
**ChatGPT-PLUS** 基于 AI 大语言模型 API 实现的 AI 助手全套开源解决方案,自带运营管理后台,开箱即用。集成了 OpenAI, Azure, ## 演示站点
ChatGLM,讯飞星火,文心一言等多个平台的大语言模型。集成了 MidJourney 和 Stable Diffusion AI绘画功能。 [Geek-AI 创作系统](https://www.geekai.me)
主要特性: ## 文档地址
[Geek-AI 文档](https://www.geekai.me/docs/)
- 完整的开源系统,前端应用和后台管理系统皆可开箱即用。 ## 部署
- 基于 Websocket 实现,完美的打字机体验。 1. 安装 docker 和 docker-compose 程序,这个自行解决。
- 内置了各种预训练好的角色应用,比如小红书写手,英语翻译大师,苏格拉底,孔子,乔布斯,周报助手等。轻松满足你的各种聊天和应用需求。 2. 直接在项目根目录运行启动命令:
- 支持 OPenAIAzure文心一言讯飞星火清华 ChatGLM等多个大语言模型。 ```shell
- 支持 Suno 文生音乐 docker-compose up -d
- 支持 MidJourney / Stable Diffusion AI 绘画集成,文生图,图生图,换脸,融图。开箱即用。 ```
- 支持使用个人微信二维码作为充值收费的支付渠道,无需企业支付通道。
- 已集成支付宝支付功能,微信支付,支持多种会员套餐和点卡购买功能。
- 集成插件 API 功能,可结合大语言模型的 function 功能开发各种强大的插件,已内置实现了微博热搜,今日头条,今日早报和 AI
绘画函数插件。
### 🚀 更多功能请查看 [Geek-AI](https://github.com/yangjian102621/geek-ai)
- [x] 更友好的 UI 界面
- [x] 支持 Dall-E 文生图功能
- [x] 支持文生思维导图
- [x] 支持为模型绑定指定的 API KEY支持为角色绑定指定的模型等功能
- [x] 支持网站 Logo 版权等信息的修改
## 功能截图 ## 功能截图
**!!!多图预警!!!**
### PC 端聊天界面 ### 首页
![首页](imgs/home.png)
![ChatGPT Chat Page](/docs/imgs/gpt.gif) ### 注册
![注册](imgs/register.png)
### AI 对话界面 ### AI 对话
![AI对话](imgs/chat.png)
![ChatGPT new Chat Page](/docs/imgs/chat-new.png)
### MidJourney 专业绘画界面 ### MidJourney 专业绘画界面
![MJ绘画](imgs/mj-image.png)
![MJ绘画](imgs/mj-list.png)
### Stable-Diffusion 专业绘画
![SD绘画](imgs/sd.png)
### DALLE 绘画
![Dalle](imgs/dalle.png)
![mid-journey](/docs/imgs/mj_image.jpg) ### 画廊
![画廊](imgs/img-wall.png)
### Stable-Diffusion 专业绘画页面 ### 思维导图
![思维导图](imgs/markmap.png)
![Stable-Diffusion](/docs/imgs/sd_image.jpg)
![Stable-Diffusion](/docs/imgs/sd_image_detail.jpg)
### 绘图作品展
![ChatGPT image_list](/docs/imgs/image-list.png)
### AI应用列表
![ChatGPT-app-list](/docs/imgs/app-list.jpg)
### 会员充值 ### 会员充值
![会员充值](imgs/member.png)
![会员充值](/docs/imgs/member.png)
### 自动调用函数插件
![ChatGPT function plugin](/docs/imgs/plugin.png)
![ChatGPT function plugin](/docs/imgs/mj.jpg)
### 管理后台 ### 管理后台
![管理后台](imgs/admin.png)
### 管理后台暗黑主题
![深色主题](imgs/admin-dark.png)
![ChatGPT admin](/docs/imgs/admin_dashboard.png) ### H5 首页
![ChatGPT admin](/docs/imgs/admin_config.jpg) ![H5首页](imgs/mobile-home.png)
![ChatGPT admin](/docs/imgs/admin_models.jpg)
![ChatGPT admin](/docs/imgs/admin_user.png)
### 移动端 Web 页面 ### H5 对话
![对话列表](imgs/mobile-chat-list.png)
![对话列表](imgs/mobile-chat.png)
![Mobile chat list](/docs/imgs/mobile_chat_list.png) ### H5 MidJourney 绘画
![Mobile chat session](/docs/imgs/mobile_chat_session.png) ![H5 MidJourney](imgs/mobile-mj.png)
![Mobile chat setting](/docs/imgs/mobile_user_profile.png)
![Mobile chat setting](/docs/imgs/mobile_pay.png)
### 体验地址 ### H5 Stable-Diffusion 绘画
![H5 SD](imgs/mobile-sd.png)
> 免费体验地址:[https://ai.r9it.com/chat](https://ai.r9it.com/chat) <br/> ### H5 会员充值
> **注意:请合法使用,禁止输出任何敏感、不友好或违规的内容!!!** ![H5 Member](imgs/mobile-member.png)
## 快速部署
**演示站不提供任何充值点卡售卖或者VIP充值服务。** 如果您体验过后觉得还不错的话,可以花两分钟用下面的一键部署脚本自己部署一套。
```shell
bash -c "$(curl -fsSL https://img.r9it.com/tmp/install-v4.0.4-36d397add2.sh)"
```
最新版本的一键部署脚本请参考 [**ChatGPT-Plus 文档**](https://ai.r9it.com/docs/install/)。
目前仅支持 Ubuntu 和 Centos 系统。 部署成功之后可以访问下面地址
* 前端访问地址http://localhost:8080/chat 使用移动设备访问会自动跳转到移动端页面。
* 后台管理地址http://localhost:8080/admin
* 移动端地址http://localhost:8080/mobile
* 初始后台管理账号admin/admin123
* 初始前端体验账号18575670125/12345678
服务启动成功之后不能立刻使用,需要先登录管理后台 -> API-KEY 去添加一个 OpenAI 或者文心一言,科大讯飞等至少一个平台的 API
KEY。
![](https://ai.r9it.com/docs/images/env/admin_api_keys.png)
另外,如果您目前还没有 OpenAI 的 API KEY的推荐您去 https://api.chat-plus.net 购买,**无需魔法,高速稳定,且价格还远低于 OpenAI
官方**。
## 使用须知
1. 本项目基于 Apache2.0 协议,免费开放全部源代码,可以作为个人学习使用或者商用。
2. 如需商用必须保留版权信息,请自觉遵守。确保合法合规使用,在运营过程中产生的一切任何后果自负,与作者无关。
## 项目地址
* Github 地址https://github.com/yangjian102621/chatgpt-plus
* 码云地址https://gitee.com/blackfox/chatgpt-plus
## 客户端下载
目前已经支持 Win/Linux/Mac/Android 客户端下载地址为https://github.com/yangjian102621/chatgpt-plus/releases/tag/v3.1.2
## TODOLIST
* [ ] 支持基于知识库的 AI 问答
* [ ] 会员邀请注册推广功能
* [ ] 微信支付功能
## 项目文档
最新的部署视频教程:[https://www.bilibili.com/video/BV1Cc411t7CX/](https://www.bilibili.com/video/BV1Cc411t7CX/)
详细的部署和开发文档请参考 [**ChatGPT-Plus 文档**](https://ai.r9it.com/docs/)。
加微信进入微信讨论群可获取 **一键部署脚本添加好友时请注明来自Github!!!)。**
![微信名片](docs/imgs/wx.png)
## 参与贡献
个人的力量始终有限,任何形式的贡献都是欢迎的,包括但不限于贡献代码,优化文档,提交 issue 和 PR 等。
#### 特此声明:由于个人时间有限,不接受在微信或者微信群给开发者提 Bug有问题或者优化建议请提交 Issue 和 PR。非常感谢您的配合
### Commit 类型
* feat: 新特性或功能
* fix: 缺陷修复
* docs: 文档更新
* style: 代码风格或者组件样式更新
* refactor: 代码重构,不引入新功能和缺陷修复
* opt: 性能优化
* chore: 一些不涉及到功能变动的小提交,比如修改文字表述,修改注释等
## 打赏
如果你觉得这个项目对你有帮助,并且情况允许的话,可以请作者喝杯咖啡,非常感谢你的支持~
![打赏](docs/imgs/donate.png)
![Star History Chart](https://api.star-history.com/svg?repos=yangjian102621/chatgpt-plus&type=Date)

View File

@ -1,38 +1,31 @@
Listen = "0.0.0.0:5678" Listen = "0.0.0.0:5678"
ProxyURL = "" # 如 http://127.0.0.1:7777 ProxyURL = ""
MysqlDns = "root:12345678@tcp(chatgpt-plus-mysql:3306)/chatgpt_plus?charset=utf8mb4&collation=utf8mb4_unicode_ci&parseTime=True&loc=Local" MysqlDns = "root:12345678@tcp(geekai-mysql:3306)/chatgpt_plus?charset=utf8mb4&collation=utf8mb4_unicode_ci&parseTime=True&loc=Local"
StaticDir = "./static" # 静态资源的目录 StaticDir = "./static"
StaticUrl = "/static" # 静态资源访问 URL StaticUrl = "/static"
WeChatBot = false WeChatBot = false
[Session] [Session]
SecretKey = "azyehq3ivunjhbntz78isj00i4hz2mt9xtddysfucxakadq4qbfrt0b7q3lnvg80" # 注意:这个是 JWT Token 授权密钥,生产环境请务必更换 SecretKey = "azyehq3ivunjhbntz78isj00i4hz2mt9xtddysfucxakadq4qbfrt0b7q3lnvg80"
MaxAge = 86400 MaxAge = 86400
[AdminSession] [AdminSession]
SecretKey = "wr1uzwz2meai4z9j0e0tsyf6x523ui6zpnyaim4x2x37meakv13349llqpipyk40" SecretKey = "wr1uzwz2meai4z9j0e0tsyf6x523ui6zpnyaim4x2x37meakv13349llqpipyk40"
MaxAge = 8640000 MaxAge = 8640000
[Redis] # redis 配置信息 [Redis]
Host = "chatgpt-plus-redis" Host = "geekai-redis"
Port = 6379 Port = 6379
Password = "12345678" Password = "12345678"
DB = 0 DB = 0
[ApiConfig] # 微博热搜,今日头条等函数服务 API 配置,此为第三方插件服务,如需使用请联系作者开通 [ApiConfig]
ApiURL = "http://service.r9it.com:9001" ApiURL = "http://service.r9it.com:9001"
AppId = "" AppId = ""
Token = "" Token = ""
[SMS]
[SMS] # Sms 配置,用于发送短信 Active = "Ali"
Active = "Ali" # 当前启用的短信服务,默认使用阿里云
[SMS.Bao]
Username = ""
Password = ""
Domain = "api.smsbao.com"
Sign = "【极客学长】"
CodeTemplate = "您的验证码是{code}。5分钟有效若非本人操作请忽略本短信。"
[SMS.Ali] [SMS.Ali]
AccessKey = "" AccessKey = ""
AccessSecret = "" AccessSecret = ""
@ -40,36 +33,45 @@ WeChatBot = false
Domain = "dysmsapi.aliyuncs.com" Domain = "dysmsapi.aliyuncs.com"
Sign = "" Sign = ""
CodeTempId = "" CodeTempId = ""
[SMS.Bao]
Username = ""
Password = ""
Domain = "api.smsbao.com"
Sign = "【极客学长】"
CodeTemplate = "您的验证码是{code}。5分钟有效若非本人操作请忽略本短信。"
[OSS] # OSS 配置,用于存储 MJ 绘画图片 [OSS]
Active = "Local" # 默认使用本地文件存储引擎 Active = "Local"
[OSS.Local] [OSS.Local]
BasePath = "./static/upload" # 本地文件上传根路径 BasePath = "./static/upload"
BaseURL = "/static/upload" # 本地上传文件根 URL 如果是线上,则直接设置为 /static/upload 即可 BaseURL = "/static/upload"
[OSS.Minio] [OSS.Minio]
Endpoint = "" # 如 172.22.11.200:9000 Endpoint = ""
AccessKey = "" # 自己去 Minio 控制台去创建一个 Access Key AccessKey = ""
AccessSecret = "" AccessSecret = ""
Bucket = "chatgpt-plus" # 替换为你自己创建的 Bucket注意要给 Bucket 设置公开的读权限,否则会出现图片无法显示。 Bucket = "geekai"
SubDir = ""
UseSSL = false UseSSL = false
Domain = "" # 地址必须是能够通过公网访问的,否则会出现图片无法显示。 Domain = ""
[OSS.QiNiu] # 七牛云 OSS 配置 [OSS.QiNiu]
Zone = "z2" # 区域z0华东z1: 华北na0北美as0新加坡 Zone = "z2"
AccessKey = "" AccessKey = ""
AccessSecret = "" AccessSecret = ""
Bucket = "" Bucket = ""
Domain = "" # OSS Bucket 所绑定的域名,如 https://img.r9it.com SubDir = ""
Domain = ""
[OSS.AliYun] [OSS.AliYun]
Endpoint = "oss-cn-hangzhou.aliyuncs.com" Endpoint = "oss-cn-hangzhou.aliyuncs.com"
AccessKey = "" AccessKey = ""
AccessSecret = "" AccessSecret = ""
Bucket = "chatgpt-plus" Bucket = "geekai"
SubDir = "" SubDir = ""
Domain = "" Domain = ""
[[MjProxyConfigs]] [[MjProxyConfigs]]
Enabled = true Enabled = false
ApiURL = "http://midjourney-proxy:8082" ApiURL = "http://midjourney-proxy:8082"
Mode = ""
ApiKey = "sk-geekmaster" ApiKey = "sk-geekmaster"
[[MjPlusConfigs]] [[MjPlusConfigs]]
@ -80,27 +82,29 @@ WeChatBot = false
[[SdConfigs]] [[SdConfigs]]
Enabled = false Enabled = false
Model = ""
ApiURL = "" ApiURL = ""
ApiKey = "" ApiKey = ""
[XXLConfig] # xxl-job 配置,需要你部署 XXL-JOB 定时任务工具,用来定期清理未支付订单和清理过期 VIP如果你没有启用支付服务则该服务也无需启动 [XXLConfig] # xxl-job 配置,需要你部署 XXL-JOB 定时任务工具,用来定期清理未支付订单和清理过期 VIP如果你没有启用支付服务则该服务也无需启动
Enabled = true # 是否启用 XXL JOB 服务 Enabled = true # 是否启用 XXL JOB 服务
ServerAddr = "http://xxl-job-admin:8080/xxl-job-admin" # xxl-job-admin 管理地址 ServerAddr = "http://xxl-job-admin:8080/xxl-job-admin" # xxl-job-admin 管理地址
ExecutorIp = "chatgpt-plus-api" # 执行器 IP 地址 ExecutorIp = "geekai-api" # 执行器 IP 地址
ExecutorPort = "9999" # 执行器服务端口 ExecutorPort = "9999" # 执行器服务端口
AccessToken = "GeekMaster" # 执行器 API 通信 token AccessToken = "GeekMaster" # 执行器 API 通信 token
RegistryKey = "chatgpt-plus" # 任务注册 key RegistryKey = "chatgpt-plus" # 任务注册 key,需要与 xxl-job 管理后台配置一致,请不要随意改动
[AlipayConfig] [AlipayConfig]
Enabled = false # 启用支付宝支付通道 Enabled = false
SandBox = false # 是否启用沙盒模式 SandBox = false
UserId = "2088721020750581" # 商户ID AppId = "9021000131658023"
AppId = "9021000131658023" # App Id UserId = "2088721020750581"
PrivateKey = "certs/alipay/privateKey.txt" # 应用私钥 PrivateKey = "certs/alipay/privateKey.txt"
PublicKey = "certs/alipay/appPublicCert.crt" # 应用公钥证书 PublicKey = "certs/alipay/appPublicCert.crt"
AlipayPublicKey = "certs/alipay/alipayPublicCert.crt" # 支付宝公钥证书 AlipayPublicKey = "certs/alipay/alipayPublicCert.crt"
RootCert = "certs/alipay/alipayRootCert.crt" # 支付宝根证书 RootCert = "certs/alipay/alipayRootCert.crt"
NotifyURL = "https://ai.r9it.com/api/payment/alipay/notify" # 支付异步回调地址 NotifyURL = "https://ai.r9it.com/api/payment/alipay/notify"
ReturnURL = ""
[HuPiPayConfig] [HuPiPayConfig]
Enabled = false Enabled = false
@ -109,6 +113,7 @@ WeChatBot = false
AppSecret = "" AppSecret = ""
ApiURL = "https://api.xunhupay.com" ApiURL = "https://api.xunhupay.com"
NotifyURL = "https://ai.r9it.com/api/payment/hupipay/notify" NotifyURL = "https://ai.r9it.com/api/payment/hupipay/notify"
ReturnURL = ""
[SmtpConfig] # 注意阿里云服务器禁用了25号端口请使用 465 端口,并开启 TLS 连接 [SmtpConfig] # 注意阿里云服务器禁用了25号端口请使用 465 端口,并开启 TLS 连接
UseTls = false UseTls = false
@ -118,10 +123,11 @@ WeChatBot = false
From = "test@163.com" # 发件邮箱人地址 From = "test@163.com" # 发件邮箱人地址
Password = "" #邮箱 stmp 服务授权码 Password = "" #邮箱 stmp 服务授权码
[JPayConfig] # PayJs 支付配置 [JPayConfig]
Enabled = false Enabled = false
Name = "wechat" # 请不要改动 Name = "wechat" # 请不要改动
AppId = "" # 商户 ID AppId = "" # 商户 ID
PrivateKey = "" # 秘钥 PrivateKey = "" # 秘钥
ApiURL = "https://payjs.cn" ApiURL = "https://payjs.cn"
NotifyURL = "https://ai.r9it.com/api/payment/payjs/notify" # 异步回调地址,域名改成你自己的 NotifyURL = "https://ai.r9it.com/api/payment/payjs/notify"
ReturnURL = ""

View File

@ -35,12 +35,12 @@ server {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade $http_upgrade; proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade; proxy_set_header Connection $connection_upgrade;
proxy_pass http://chatgpt-plus-api:5678; proxy_pass http://geekai-api:5678;
} }
# 静态资源转发 # 静态资源转发
location /static/ { location /static/ {
proxy_pass http://chatgpt-plus-api:5678; proxy_pass http://geekai-api:5678;
} }
} }
} }

View File

@ -23,7 +23,7 @@ mybatis.mapper-locations=classpath:/mybatis-mapper/*Mapper.xml
#mybatis.type-aliases-package=com.xxl.job.admin.core.model #mybatis.type-aliases-package=com.xxl.job.admin.core.model
### xxl-job, datasource ### xxl-job, datasource
spring.datasource.url=jdbc:mysql://chatgpt-plus-mysql:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai spring.datasource.url=jdbc:mysql://geekai-mysql:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai
spring.datasource.username=root spring.datasource.username=root
spring.datasource.password=12345678 spring.datasource.password=12345678
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

View File

@ -1,9 +1,9 @@
version: '3' version: '3'
services: services:
# mysql # mysql
chatgpt-plus-mysql: geekai-mysql:
image: mysql:8.0.33 image: mysql:8.0.33
container_name: chatgpt-plus-mysql container_name: geekai-mysql
command: --default-authentication-plugin=mysql_native_password command: --default-authentication-plugin=mysql_native_password
restart: always restart: always
environment: environment:
@ -17,10 +17,10 @@ services:
- ./data/mysql/init.d:/docker-entrypoint-initdb.d/ - ./data/mysql/init.d:/docker-entrypoint-initdb.d/
# redis # redis
chatgpt-plus-redis: geekai-redis:
image: redis:6.0.16 image: redis:6.0.16
restart: always restart: always
container_name: chatgpt-plus-redis container_name: geekai-redis
command: redis-server --requirepass 12345678 command: redis-server --requirepass 12345678
volumes : volumes :
- ./data/redis:/data - ./data/redis:/data
@ -52,14 +52,13 @@ services:
# 后端 API 程序 # 后端 API 程序
chatgpt-plus-api: geekai-api:
image: registry.cn-shenzhen.aliyuncs.com/geekmaster/chatgpt-plus-api:v4.0.4-amd64 image: registry.cn-shenzhen.aliyuncs.com/geekmaster/geekai-api:v4.0.7-amd64
container_name: chatgpt-plus-api container_name: geekai-api
restart: always restart: always
depends_on: depends_on:
- chatgpt-plus-mysql - geekai-mysql
- chatgpt-plus-redis - geekai-redis
- xxl-job-admin
environment: environment:
- DEBUG=false - DEBUG=false
- LOG_LEVEL=info - LOG_LEVEL=info
@ -75,12 +74,12 @@ services:
- ./data/leveldb:/var/www/app/data - ./data/leveldb:/var/www/app/data
# 前端应用 # 前端应用
chatgpt-plus-web: geekai-web:
image: registry.cn-shenzhen.aliyuncs.com/geekmaster/chatgpt-plus-web:v4.0.4-amd64 image: registry.cn-shenzhen.aliyuncs.com/geekmaster/geekai-web:v4.0.7-amd64
container_name: chatgpt-plus-web container_name: geekai-web
restart: always restart: always
depends_on: depends_on:
- chatgpt-plus-api - geekai-api
ports: ports:
- "8080:8080" - "8080:8080"
volumes: volumes:

View File

@ -1,5 +1,5 @@
{ {
"name": "chatgpt-plus-web", "name": "geekai-web",
"version": "0.1.0", "version": "0.1.0",
"private": true, "private": true,
"scripts": { "scripts": {