@@ -55,7 +55,7 @@ _🚀 **Next Generation AI One-Stop Solution**_
55
55
![ 仪表盘] ( /screenshot/admin.png )
56
56
2 . ** 支持 All in one** , * SMTP 发件* , * 用户注册* , * 用户登录* , * 忘记密码* 等功能
57
57
3 . ** 支持用户管理** , * 用户列表* , * 用户详情* , * 管理操作* (* 修改密码* , * 修改邮箱* , * 封禁 / 解封用户* , * 设为管理员* , * 点数变更* , * 点数设置* , * 订阅管理* , * 订阅等级设置* , * 释放订阅用量* 等操作)
58
- 4 . ** 支持邀请码和兑换码管理** 支持管理操作, 支持批量生成和保存为文件 _ (邀请码一种类型只能一个用户只能绑定一次, 发福利等方式可使用邀请码;兑换码一种类型可以多个用户绑定, 可作为正常购买和发卡使用) _
58
+ 4 . ** 支持邀请码和兑换码管理** 支持管理操作, 支持批量生成和保存为文件
59
59
5 . ** 价格设定** , 支持模型价格设定 (_ ** 次数计费** _ , ** _ Token 弹性计费_ ** , _ ** 不计费** _ 等类型), 支持同步上游 Chat Nio 站点的价格设定 (可选是否覆盖本站已有模型价格规则), 未设定价格模型检测 (如果非管理员将自动检测并停止使用模型进而防止金额损失)
60
60
![ 购买点数] ( /screenshot/shop.png )
61
61
![ 价格设定] ( /screenshot/charge.png )
@@ -67,7 +67,7 @@ _🚀 **Next Generation AI One-Stop Solution**_
67
67
8 . ** 系统设置** , 自定义网站名称, 网站 Logo, 文档链接, 是否暂停注册, 用户初始点数等设置, 自定义购买链接 (卡密发卡地址), 联系信息, 页脚信息等
68
68
![ 系统设置] ( /screenshot/system.png )
69
69
9 . ** 支持 SMTP 发件** , 支持是否启用邮件后缀白名单, 支持自定义邮件后缀白名单
70
- 10 . ** 支持模型缓存** , ** 即同一个入参下, 如果之前已请求过, 将直接返回缓存结果 (击中缓存将不计费), 减少请求次数。可自定义一种情况的最大缓存结果数 (默认为 1), 自定义可缓存的模型 (默认为空), 自定义缓存时间 (默认为 1 小时), 支持一键设置 * 全部模型不缓存* , * 免费模型缓存* , * 所有模型缓存* 等操作* *
70
+ 10 . ** 支持模型缓存** , * 即同一个入参下, 如果之前已请求过, 将直接返回缓存结果 (击中缓存将不计费), 减少请求次数。可自定义一种情况的最大缓存结果数 (默认为 1), 自定义可缓存的模型 (默认为空), 自定义缓存时间 (默认为 1 小时), 支持一键设置 * 全部模型不缓存* , * 免费模型缓存* , * 所有模型缓存* 等操作*
71
71
11 . ** 支持可请求最小点数检测** , 防止滥用, 当请求点数低于最小请求点数时将返回点数不足的错误信息 _ (不计费模型无限制, 次数计费模型最小点数为该模型的 1 次请求点数, Token 弹性计费模型为 1K 输入 Tokens 价格 + 1K 输出 Tokens 价格)_
72
72
- ⚡ 渠道管理体系
73
73
1 . Chat Nio ** 自写渠道分配算法** (不依赖 http 上下文), 抽象 Adapter 兼容层架构, 低耦合, 高可扩展性
@@ -163,9 +163,9 @@ _🚀 **Next Generation AI One-Stop Solution**_
163
163
> - * --network host* 指使用宿主机网络,使 Docker 容器使用宿主机的网络,可自行修改
164
164
> - * -p 8000:8094* 指映射宿主机端口为 8000, 可自行修改冒号前的端口号
165
165
> - SECRET: JWT 密钥, 自行生成随机字符串修改
166
- > - SERVE_STATIC: 是否启用静态文件服务 (仅在前后端分离部署时, 如 https://chatnio.net 后端部署为 https://api.chatnio.net 的情况才需关闭静态文件服务, 默认情况下api地址为 ** /api ** , 如需修改, 请自行修改 )
166
+ > - SERVE_STATIC: 是否启用静态文件服务 (正常情况下不需要更改此项, 详见下方常见问题解答 )
167
167
> - * -v ~ /config:/config* 和 * -v ~ /logs:/logs* 指挂载配置文件和日志文件的宿主机目录, 可自行修改
168
- > - 需配置 MySQL 和 Redis 服务, 请自行修改环境变量
168
+ > - 需配置 MySQL 和 Redis 服务, 请自行参考上方信息修改环境变量
169
169
170
170
版本更新 (_开启 Watchtower 后无需手动更新,执行后按照上述步骤重新运行即可_):
171
171
` ` ` shell
@@ -193,10 +193,40 @@ _🚀 **Next Generation AI One-Stop Solution**_
193
193
nohup ./chatnio > output.log & # using nohup to run in background
194
194
` ` `
195
195
196
+ # # ❓ 常见问题 Q&A
197
+ 1. ** 为什么我部署后的站点可以访问页面,可以登录注册,但是无法使用聊天 (一直在转圈)?**
198
+ - 聊天等此类功能通过 websocket 进行通信, 请确保你的服务支持 websocket。
199
+ - 如果你使用了 Nginx, Apache 等反向代理, 请确保已配置 websocket 支持。
200
+ - 如果使用了端口映射, 端口转发, CDN, API Gateway 等服务, 请确保你的服务支持并开启 websocket。
201
+ 2. ** 此项目有什么外部依赖?**
202
+ - MySQL: 存储用户信息, 对话记录, 管理员信息等持久化数据。
203
+ - Redis: 存储用户快速鉴权信息, IP 速率限制, 订阅配额, 邮箱验证码等数据。
204
+ - 环境未配置好的情况下, 会导致服务无法正常运行, 请确保你的 MySQL 和 Redis 服务已正常运行 (Docker 部署, 编译部署需自行搭建外部服务)。
205
+ 3. ** 我的机器为 ARM 架构, 该项目支持 ARM 架构吗?**
206
+ - 支持。Chat Nio 项目使用 BuildX 构建多架构镜像, 你可以直接使用 docker-compose 或 docker 运行, 无需额外配置。
207
+ - 如果你使用编译安装, 直接在 ARM 机器上编译即可,无需欸外配置。如果你使用 x86 机器编译, 请使用 ` GOARCH=arm64 go build -o chatnio` 进行交叉编译并上传至 ARM 机器上运行。
208
+ 4. ** 如何修改 Root 默认密码?**
209
+ - 请点击右上角头像或侧边栏底部用户框进入 ` 后台管理` , 点击 ` 系统设置` 下常规设置操作栏的 ` 修改 Root 密码` 进行修改。或者选择在 ` 用户管理` 中选定 ` root` 用户进行修改密码操作。
210
+ 5. ** 系统设置中的后端域名是什么?**
211
+ - 后端域名是指后端 API 服务的地址, 默认为你访问站点后加 ` /api` 的地址, 如 ` https://example.com/api` 。(如果设置为非 * SERVE_STATIC* 模式, 开启前后端分离部署, 请将后端域名设置为你的后端 API 服务地址, 如 ` https://api.example.com` )后端域名用于 Midjourney Proxy 服务的后端回调地址,如无需使用 Midjourney Proxy 服务, 请忽略此设置。
212
+ 6. ** 如何配置支付方式?**
213
+ - Chat Nio 开源版支持发卡模式,设置系统设置中的购买链接为你的发卡地址即可。卡密可通过用户管理中兑换码管理中批量生成。
214
+ 7. ** 邀请码和兑换码有什么区别?**
215
+ - 邀请码一种类型只能一个用户只能绑定一次, 发福利等方式可使用邀请码,可在头像下拉菜单中的邀请码中兑换。
216
+ - 兑换码一种类型可以多个用户绑定, 可作为正常购买和发卡使用,可在用户管理中的兑换码管理中批量生成,在头像下拉菜单的点数(菜单第一个)内输入兑换码进行兑换。
217
+ 8. ** 该项目支持 Vercel 部署吗?**
218
+ - Chat Nio 本身并不支持 Vercel 部署, 但是你可以使用前后端分离模式, Vercel 部署前端部分, 后端部分使用 Docker 部署或编译部署。
219
+ 9. ** 前后端分离部署模式是什么?**
220
+ - 正常情况下,前后端在同一服务内,后端地址为 ` /api` 。前后端分离部署指前端和后端分别部署在不同的服务上,前端服务为静态文件服务,后端服务为 API 服务。
221
+ - 举个例子,前端使用 Nginx (或 Vercel 等) 部署,部署的域名为 ` https://www.chatnio.net` 。
222
+ - 后端使用 Docker 部署,部署的域名为 ` https://api.chatnio.net` 。
223
+ - 此种部署方式需自行打包前端,配置环境变量 ` VITE_BACKEND_ENDPOINT` 为你的后端地址,如 ` https://api.chatnio.net` 。
224
+ - 配置后端环境变量的 ` SERVE_STATIC` 为 ` false` ,并配置 ` ALLOW_ORIGINS` 为你的前端地址,如 ` chatnio.net` (不需要加协议前缀,www 解析无需手动添加,后端将自动识别并允许跨域)。
225
+
196
226
# # 📦 技术栈
197
227
- 前端: React + Radix UI + Tailwind CSS + Redux
198
228
- 后端: Golang + Gin + Redis + MySQL + Tiktoken (OpenAI)
199
- - 应用技术: PWA + HTTP2 + WebSocket + Stream Buffer
229
+ - 应用技术: PWA + HTTP2 + websocket + Stream Buffer
200
230
201
231
202
232
# # 🎃 贡献者
0 commit comments