源码简介
新版ChatGPT对话系统源码 Chat Nio系统源码,支持 Vision 模型, 同时支持 直接上传图片 和 输入图片直链或 Base64 图片 功能 (如 GPT-4 Vision Preview, Gemini Pro Vision 等模型) 国际化支持, 支持多语言切换
ChatNIO 是一款功能强大的 AI 聊天应用,拥有多项引人注目的功能和特点。它提供了 AI 联网功能,能够进行在线搜索服务,同时支持多账户均衡负载,具有 HTTP2 Stream 实时响应功能,以及节流和鉴权体系。此外,ChatNIO 还拥有丰富的聊天功能,包括代码高亮、latex 支持、卡片生成和右键菜单,以及多端适配、缓存系统、对话记忆功能和对话分享等功能。
此项目可以直接拿来自己运营,也可以搭建自己享用,更可以直接使用官方提供的网站在线使用
支持 DALL-E 模型绘图
支持 Midjourney / Niji 模型的 Imagine / Upscale / Variant / Reroll 操作
丰富 Markdown 支持和主题切换, 支持明暗模式, 代码高亮, Mermaid, LaTeX 公式, 表格, 进度条, Virtual Message 等
支持消息菜单, 支持重新回答, 复制消息, 使用消息, 编辑消息, 删除消息, 保存为文件等操作
支持多端适配, 支持 PWA 应用, 支持桌面端 (桌面端基于 Tauri)
对话记忆功能, 云端同步, 原生支持站点直链分享对话, 支持使用分享对话, 分享对话保存为图片, 支持分享管理 (支持查看, 删除分享等操作)
原生支持全模型文件解析, 支持 pdf, docx, pptx, xlsx, 图片等格式解析
模型市场功能, 支持模型搜索, 支持顺序拖拽, 包含模型名称, 模型描述, 模型 Tags, 模型头像, 自动绑定模型的价格设置, 自动绑定订阅配额 (包含在订阅的模型将标有 plus 标签)
技术栈
•前端: React + Radix UI + Tailwind CSS + Redux
•后端: Golang + Gin + Redis + MySQL + Tiktoken (OpenAI)
•应用技术: PWA + HTTP2 + WebSocket + Stream Buffer
二、搭建方法
在部署方面,ChatNIO 提供了多种部署方式,包括 Docker Compose 安装、Docker 安装和编译安装,同时还提供了详细的配置和预览信息,以及开发文档和 SDKs。
Docker Compose 安装 (推荐)
运行成功后,宿主机映射地址为
http://localhost:8000
,使用 Nginx / Apache 进行反代是一个不错的选择(以及 SSL 配置)
git clone https://github.com/Deeptrain-Community/chatnio.git
cd chatnio # project directory
docker-compose up -d # start service in background
版本更新:
docker-compose down
docker-compose pull # pull latest image
docker-compose up -d # start service in background
- MySQL 数据库挂载目录项目 ~/db
- Redis 数据库挂载目录项目 ~/redis
- 配置文件挂载目录项目 ~/config
Docker 安装 (轻量运行时, 常用于外置 MYSQL/RDS 服务)
使用本地 MySQL 等服务时需加入 –
--network host
使 docker 可使用本地网络
docker run -d --name chatnio \
-p 8000:8094 \
-v ~/config:/config \
-v ~/logs:/logs \
-e MYSQL_HOST=<your-mysql-host> \
-e MYSQL_PORT=3306 \
-e MYSQL_DATABASE=chatnio \
-e MYSQL_USER=<username> \
-e MYSQL_PASSWORD=<password> \
-e REDIS_HOST=<your-redis-host> \
-e REDIS_PORT=6379 \
-e SECRET=<your-jwt-secret> \
-e SERVE_STATIC=true \
programzmh/chatnio:latest
- -p 8000:8094 指映射宿主机端口为 8000,可自行修改冒号前的端口号
- MYSQL_HOST: MySQL 数据库地址
- MYSQL_PORT: MySQL 数据库端口
- MYSQL_DATABASE: MySQL 数据库名称
- MYSQL_USER: MySQL 数据库用户名
- MYSQL_PASSWORD: MySQL 数据库密码
- REDIS_HOST: Redis 数据库地址
- REDIS_PORT: Redis 数据库端口
- SECRET: JWT 密钥,自行生成随机字符串修改即可
- SERVE_STATIC: 是否启用静态文件服务 (仅在前后端分离部署时,如 https://chatnio.net 后端部署为 https://api.chatnio.net 的情况才需关闭静态文件服务,默认情况下api地址为 /api,如需修改,请自行修改)
- -v ~/config:/config 指挂载至宿主机配置文件目录为 ~/config,可自行修改冒号前的目录进行挂载
- -v ~/logs:/logs 指挂载至宿主机日志目录为 ~/logs,可自行修改冒号前的目录进行挂载
版本更新(执行后按照上述步骤重新运行即可):
docker stop chatnio
docker rm chatnio
docker pull programzmh/chatnio:latest
编译安装 (自定义性强)
git clone https://github.com/Deeptrain-Community/chatnio.git
cd chatnio # project directory
go build -o chatnio # build backend
nohup ./chatnio > output.log & # run backend
cd app # frontend directory (~/app)
npm install -g pnpm # install pnpm
pnpm install # install frontend dependencies
pnpm build # build frontend
# run frontend
# a common way is to use nginx/apache to serve the static files
配置 | Config
Config 配置项可以使用环境变量进行覆盖,如 MYSQL_HOST 环境变量可覆盖 mysql.host 配置项
~/config/config.yaml
mysql:
db: chatnio
host: localhost
password: chatnio123456
port: 3306
user: root
redis:
host: localhost
port: 6379
secret: SbitdyN5ZH39cNxSrG3kMNZ1GfiyyQ43 # jwt secret
auth:
use_deeptrain: false
server:
port: 8094
system:
general:
backend: ""
mail:
host: ""
port: 465
username: ""
password: ""
from: ""
search:
endpoint: https://duckduckgo-api.vercel.app
query: 5
serve_static: false # serve static files (false if only using backend)
Key 中转服务
同时,Chat Nio提供了一个中转服务
- 支持多模型兼容层,这意味着你可以使用一次代码,同时兼容多家 AI 模型
- 支持多账户均衡负载,高并发
将 https://api.openai.com
替换为 https://api.chatnio.net
,填入控制台中的 API 设置
中的 API Key 即可使用
1.本网站资源来源于网络收集,如有侵权,请联系站长进行删除处理。请发送邮件至:chensi2024@foxmail.com,我们将第一时间处理!
2.资源所需价格并非资源售卖价格,是收集、整理、编辑详情以及本站运营的适当补贴,并且本站不提供任何免费技术支持 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需。
3.所有资源仅限于参考和学习,版权归原作者所有,更多请阅读网站声明。
4.如下载链接失效,请在当前页留言或私信管理员,24小时必处理结束!
5.本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解。
6.本站提供的资源仅限用于学习交流和研究目的。不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负,我们不保证内容的长久可用性,通过使用本站内容随之而来的风险以及产生法律纠纷与本站无关,您必须在下载后的24个小时之内,从您的电脑/手机中彻底删除。