chatnio

chatnio

AI一站式解决方案,跨平台兼容,支持Markdown与实时对话功能

Chat Nio项目支持多种视觉模型与Markdown格式,适用于多平台,配备主题切换功能,提供强大的用户管理系统。此外,它还提供自定义模型市场和多语言支持,满足全球用户的需求。该平台集文件解析、在线搜索等功能于一体,助你轻松管理并扩展AI对话功能。

Chat NioAI对话多平台支持模型市场API服务Github开源项目
<div align="center">

chatnio

Chat Nio

🚀 下一代 AI 一站式解决方案

🚀 Next Generation AI One-Stop Solution

English | 简体中文

官方网站 | 文档 | SDKs | QQ群

Deploy on Zeabur

Chat Nio: #1 Repo Of The Day

code-stats

</div>

📝 功能介绍

  • AI 聊天会话
    1. 丰富的格式兼容性
      • 支持视觉模型,包括直接上传图片图片直链或Base64图片输入功能(如GPT-4 Vision预览版、Gemini Pro Vision等)
      • 支持使用DALL-E模型进行绘图
      • 支持Midjourney / Niji模型的想象 / 升级 / 变体 / 重做操作 Midjourney
    2. Markdown支持 / 主题切换支持,支持明暗模式、代码高亮、Mermaid、LaTeX公式、表格、进度条、虚拟消息等。 Markdown Message Markdown Mermaid
    3. 消息菜单支持,包括重新回答、复制消息、使用消息、编辑消息、删除消息、保存为文件等操作... Vision Support
    4. 多平台适配支持,支持PWA应用程序、桌面平台(桌面端基于Tauri)。
    5. 对话记忆,云同步,原生支持站点对话的直链分享,支持使用共享对话,将共享对话保存为图片,并进行分享管理(包括查看、删除分享等)。 Conversation Sharing
    6. 原生支持全模型文件解析,支持pdf、docx、pptx、xlsx、图片等格式的解析(更多详情见项目chatnio-blob-service)。 File Upload
    7. 支持全模型DuckDuckGo在线搜索_(详情参考duckduckgo-api项目,需要自行搭建并在系统设置中的网络设置中配置,感谢作者@binjie09,通过在中继api模型前加前缀**web-**启用网络搜索。)_ Online Search
    8. 全屏大文本编辑,支持纯文本编辑编辑预览模式纯预览模式三种模式切换。 Editor
    9. 模型市场,支持模型搜索,支持顺序拖放,包括模型名称、模型描述、模型标签、模型头像、模型价格的自动绑定、订阅配额的自动绑定(订阅包含的模型将带有plus标签)。 Model Market
    10. 预设支持,支持自定义预设云同步功能,支持预设克隆、预设头像设置、预设介绍设置 Preset Settings Preset Editing
    11. 站点公告支持 支持站点公告和通知
    12. 偏好设置支持,i18n多语言支持,自定义会话最大携带数、自定义最大回复令牌数、模型参数自定义、重置设置等。 Preference Settings
    13. 国际化支持,支持多语言切换
    14. 附加功能(附加功能的用户组权限可通过后台系统设置开启和关闭)
    • [已停用] 🍎 AI项目生成器功能,支持查看生成过程,支持TAR / ZIP格式下载*(基于预设,可能不稳定)*
    • [已停用] 📂 批量文章生成功能,支持进度条,一键生成TAR / ZIP格式下载的DOCX文档*(需要生成数量高于上游模型的最高并发数)*
    • [已弃用] 🥪 AI卡片功能(已弃用),AI问答以卡片形式展示,可以通过图片url直接嵌入。(基于动态SVG生成)
  • 🔔 丰富的管理系统
    1. 丰富美观的仪表盘,包括当天和当月的记账信息、订阅用户、模型使用统计折线图、饼图、收入统计、用户类型统计、模型使用统计、请求次数和模型错误次数统计图等。 Dashboard
    2. 支持用户管理用户列表用户详情管理操作更改密码更改邮箱封禁/解封用户设为管理员积分变动积分设置订阅管理订阅等级设置解除订阅等)。
    3. 支持礼品码和兑换码管理 支持管理操作,支持批量生成并保存到文件。
    4. 价格设置,支持模型价格设置(次数计费令牌灵活计费、_不计费_等),支持同步上游Chat Nio站点的价格设置(可选是否覆盖本站现有模型的价格规则),未设置价格模型检测(如果非管理员将自动检测并停止使用模型以防止损失)。 Buy Points Price setting !
    5. 订阅设置,不同于灵活计费,订阅是一种按时间固定价格计费的方式,平台用户可以通过套餐以固定价格订阅,支持是否启用订阅(默认关闭),支持订阅分级,支持订阅配额设置,支持订阅配额覆盖模型设置、图标设置、其他套餐导入配额等功能。 Subscription Plan Subscription Settings !
    6. 自定义模型市场,编辑前端模型市场的模型名称、描述、标签、头像(内置模型图片选择和自定义模型图片设置)、是否添加模型模型等信息! Model Market Settings
    7. **系统

🔨 支持的模型

  • OpenAI
    • Chat 完成 (支持 视觉工具调用函数调用)
    • 图像生成
  • Azure OpenAI
  • Anthropic Claude (支持 视觉)
  • Slack Claude (已弃用)
  • Sparkdesk (支持 函数调用)
  • Google Gemini (PaLM2)
  • 新必应 (创意、平衡、精确)
  • ChatGLM (turbo, pro, std, lite)
  • DashScope 通义 (plus, turbo)
  • Midjourney
    • 模式切换 (relax, fast, turbo)
    • 支持 U/V/R 操作
  • 腾讯混元
  • 百川 AI
  • Moonshot AI
  • Groq Cloud AI
  • 字节跳动 Skylark (支持 函数调用)
  • 360 GPT
  • LocalAI (Stable Diffusion, RWKV, LLaMa 2, 百川 7b, Mixtral, ...) *需要本地部署

📦 部署

部署成功后,管理员账号为 root,默认密码为 chatnio123456

  1. ✨ Zeabur (一键部署)

    在 Zeabur 上部署

    Zeabur 提供一定额度的免费积分,允许在非付费区域进行一键部署,并且支持通过订阅计划和按使用付费选项进行灵活扩展。

    1. 点击 部署 开始部署过程,输入您希望绑定的域名,等待部署完成。
    2. 部署完成后,访问您的域名,并使用用户名 root 和密码 chatnio123456 登录管理面板。请按照 chatnio 后台的提示,及时修改密码。
  2. ⚡ 使用 Docker Compose 安装 (推荐)

    操作成功后主机映射地址为 http://localhost:8000

    git clone --depth=1 --branch=main --single-branch https://github.com/Deeptrain-Community/chatnio.git cd chatnio docker-compose up -d # 启动服务 # 如果要使用稳定版本,请使用 `docker-compose -f docker-compose.stable.yaml up -d`。 # 如果要启用 Watchtower 自动更新,请使用 `docker-compose -f docker-compose.watch.yaml up -d`。

    版本更新 (启用 Watchtower 自动更新后,无需手动更新):

    docker-compose down docker-compose pull docker-compose up -d
    • MySQL 数据库挂载目录:~/db
    • Redis 数据库挂载目录:~/redis
    • 配置文件挂载目录:~/config
  3. ⚡ Docker 安装 (在轻量运行时,通常使用外部 Mysql/RDS 服务)

    操作成功后主机映射地址为 http://localhost:8094。如需使用稳定版本,请使用 programzmh/chatnio:stable,而非 programzmh/chatnio:latest

    docker run -d --name chatnio \ --network host \ -v ~/config:/config \ -v ~/logs:/logs \ -v ~/storage:/storage \ -e MYSQL_HOST=localhost \ -e MYSQL_PORT=3306 \ -e MYSQL_DB=chatnio \ -e MYSQL_USER=root \ -e MYSQL_PASSWORD=chatnio123456 \ -e REDIS_HOST=localhost \ -e REDIS_PORT=6379 \ -e SECRET=secret \ -e SERVE_STATIC=true \ programzmh/chatnio:latest
    • --network host 将容器分配为使用主机网络,使其能够访问主机的网络。您可以根据需要进行修改。
    • SECRET: JWT 秘钥,生成一个随机字符串进行修改
    • SERVE_STATIC: 是否启用静态文件服务(通常无需更改此项,请参见下方的常见问题解答)
    • -v ~/config:/config 挂载主机配置文件目录,-v ~/logs:/logs 挂载主机日志文件目录,-v ~/storage:/storage 挂载附加功能生成的文件
    • 您需要配置 MySQL 和 Redis 服务,请参考上述信息自行修改环境变量。

    版本更新 (启用 Watchtower 自动更新后,无需手动更新,只需在执行后再次运行上述步骤即可):

    docker stop chatnio docker rm chatnio docker pull programzmh/chatnio:latest
  4. ⚒ 自定义构建和安装 (高度可定制)

    部署完成后,默认端口为 8094,访问地址为 http://localhost:8094。 配置选项 (~/config/config.yaml) 可以通过环境变量覆盖,例如 MYSQL_HOST 环境变量可以覆盖 mysql.host 配置项。

    git clone https://github.com/Deeptrain-Community/chatnio.git cd chatnio cd app npm install -g pnpm pnpm install pnpm build cd .. go build -o chatnio nohup ./chatnio > output.log & # 使用 nohup 后台运行

❓ 常见问题解答 Q&A

  1. 为什么我部署的网站可以访问页面,可以登录,但不能使用聊天功能(一直在转圈)?

    • 聊天等功能通过 websockets 通信;请确保您的服务器支持 websockets。(提示:可以通过 HTTP 进行传输,无需 websocket 支持)
    • 如果您使用 Nginx、Apache 等反向代理,请确保已配置 websocket 支持。
    • 如果您使用端口映射、端口转发、CDN、API 网关等服务,请确保您的服务支持并已启用 WebSocket。
  2. 我的 Midjourney 代理格式频道一直在转圈或显示错误信息 please provide available notify url

    • 如果一直在转圈,请确保您的 Midjourney 代理服务正在运行,并且已配置正确的上游地址。
    • Midjourney 填写频道类型时,请使用 Midjourney,而非 OpenAI(不知道为什么很多人填写 OpenAI 类型格式,然后反馈为什么是空响应,除了 mj-chat 类)。
    • 解决这些问题后,请检查系统设置中的 后端域名 是否已正确配置。如果未设置,可能会导致 Midjourney 代理服务无法正常运行。
  3. 该项目有哪些外部依赖?

    • MySQL:存储用户信息、聊天记录、管理员详情等持久化数据。
    • Redis:存储用户快速认证信息、IP 速率限制、订阅配额、邮箱验证码等。
    • 如果环境未正确设置,可能会导致服务无法运行。请确保您的 MySQL 和 Redis 服务运行顺畅(对于 Docker 部署,您需要手动设置外部服务)。
  4. 我的服务器是 ARM 架构,该项目支持 ARM 架构吗?

    • 支持。Chat Nio 项目使用 BuildX 构建多架构镜像,因此您可以直接使用 docker-compose 或 docker 运行,无需额外配置。
    • 如果您使用构建安装,可以直接在 ARM 机器上编译,无需额外配置。如果在 x86 机器上编译,请使用 GOARCH=arm64 go build -o chatnio 进行交叉编译,并将其上传到 ARM 机器上执行。
  5. 如何更改默认的 root 密码?

    • 请点击右上角的头像或侧边栏底部的用户框,进入后台管理,在系统设置的常规设置操作栏下点击修改 Root 密码。或者,您也可以选择在用户管理中修改 root 用户的密码。
  6. 系统设置中的后端域名是什么?

    • 后端域名指的是后端 API 服务的地址,通常为站点地址后跟 /api,例如 https://example.com/api
    • 如果设置为非 SERVE_STATIC 模式,启用前后端分离部署,请将后端域名设置为您的后端 API 服务地址,例如 https://api.example.com
    • 后端域名在此处用于 Midjourney 代理服务的后端回调地址;如果您不需要使用 Midjourney 代理服务,请忽略此设置。
  7. 如何配置支付方式?

    • Chat Nio 开源版支持卡密发放模式,只需将系统设置中的购买链接设置为您的卡密发放地址。卡密可通过用户管理中的礼品码管理批量生成。
  8. 礼品码和兑换码有什么区别?

    • 礼品码只能由单个用户绑定一次,并
  9. 什么是客户端-服务器分离部署模式?

  • 通常情况下,前端和后端是在同一个服务中,后端可以通过 /api 访问。在客户端-服务器分离部署中,前端和后端分别部署在不同的服务上:前端作为静态文件服务,后端作为 API 服务。
    • 例如,前端使用 Nginx(或 Vercel)部署,域名为 https://www.chatnio.net
    • 后端使用 Docker 部署,域名为 https://api.chatnio.net
  • 你需要手动打包前端并将环境变量 VITE_BACKEND_ENDPOINT 设置为你的后端 URL,例如 https://api.chatnio.net
  • 要配置后端,设置 SERVE_STATIC=false 以防止其提供静态文件服务。
  1. 灵活计费和订阅说明
  • 按需计费(积分),用 云图标 表示,是一种通用的定价模式,10积分固定为1元人民币(CNY)。可以在计费规则的 嵌入模板 中设置自定义兑换率。
  • 订阅 是具有每项配额的固定价格计划。用户必须有足够的积分才能订阅(例如,如果用户想订阅一个32元的计划,他们需要至少320积分)。订阅是项目的组合,每个项目定义了涵盖的模型、配额(-1表示无限)、名称、ID、图标等。在订阅管理部分中进行管理,你可以启用订阅、设置价格、编辑每个订阅级别的项目,并从其他级别导入项目。
  • 订阅支持三个预定义层级:普通用户(0)基础订阅(1)标准订阅(2)专业订阅(3)。订阅级别作为用户组,可以在渠道管理中配置,选择哪些用户组可以访问这些模型。
  • 可以管理订阅的配额,包括是否允许 API 转发(默认关闭)。
  1. 用户配额不足的最低积分请求检测
  • 为防止滥用,如果积分请求低于最低阈值,将返回积分不足的错误消息。高于或等于最低值的请求将正常处理。
  • 模型的最低请求积分规则:
    • 免费模型没有限制。
    • 每次使用的模型至少需要一个请求积分(例如,如果模型每次使用费用为0.1积分,最低为0.1积分)。
    • 基于 Token 的弹性计费模型的最低请求为1K输入 Token 价格加1K输出 Token 价格(例如,如果1K输入 Token 费用为0.05积分,1K输出 Token 费用为0.1积分,最低为0.15积分)。
  1. 设置 DuckDuckGo API 的注意事项
    • 首先,感谢作者 Binjie 提供的 duckduckgo-api 项目,为 Chat Nio 提供了连接搜索功能(提示实现)。
    • DDG API 服务需要自行搭建。Binjie 作者的默认站点经常用完配额。请自行搭建,并在系统设置的网络设置中进行设置。
    • DuckDuckGo 无法在中国的网络环境中使用,请使用代理或海外服务器来搭建 DDG API 端点。
    • 部署成功后,请测试 https://your.domain/search?q=hi,简单测试设置是否成功。如果无法访问,请检查你的 DDG API 服务是否正常运行,或寻求原项目的帮助。
    • 部署成功后,请前往系统设置的网络设置,设置你的 DDG API 端点地址(不要添加 /search 后缀),默认最大结果数量为 5(结果设置为 0 或负数时,默认取 5)。
    • 启用后,你可以在聊天中正常使用连接搜索。如果仍然无法使用,通常是模型问题(例如,GPT-3.5 有时无法理解)。
    • 此连接搜索通过预设实现,意味着它可以保证所有模型都能支持的通用功能。兼容性无法保证敏感性。它不依赖于模型功能调用。支持连接的其他模型可以选择直接关闭此功能。
  2. 为什么我的 GPT-4-All 和其他反向模型无法使用上传文件中的图像?
    • 上传的模型图像是 Base64 格式。如果反向引擎不支持 Base64 格式,请使用 URL 直接链接而不是上传文件。
  3. 如何启动严格的跨域检测?
    • 通常,后端对所有域名开放跨域请求。如果没有特定需求,则无需启用严格的跨域检测。
    • 如果需要启用严格的跨域检测,可以在后端环境变量中配置 ALLOW_ORIGINS,例如 ALLOW_ORIGINS=chatnio.net,chatnio.app(不需要添加协议前缀,也不需要手动添加 www 解析,后端会自动识别并允许跨域)。这样就会支持严格的跨域检测(例如 http://www.chatnio.app*,*https://chatnio.net 将被允许,其他域名将被拒绝)。
    • 即使启用了严格的跨域检测,/v1 接口仍然会允许所有域名的跨域请求,以确保中转 API 的正常使用。
  4. 如何使用模型映射功能?
    • 渠道内的模型映射格式为 [from]>[to],映射之间用换行符隔开,from 是请求的模型,to 是实际上游的模型,且需要实际被上游支持。
    • 例如,我有一个反向渠道,填写 gpt-4-all>gpt-4,那么当我的用户从该渠道请求 gpt-4-all 模型时,后端将模型映射为 gpt-4,以便从支持 gpt-4gpt-4-all 的上游请求 gpt-4(本质上 gpt-4gpt-4-all 都是 gpt-4)。
    • 如果我不希望我的反向渠道影响 gpt-4 渠道组,我可以在前面加上 !gpt-4-all>gpt-4,此时渠道 gpt-4 将被忽略,并且该渠道只支持一个模型 gpt-4-all(但本质上是 gpt-4)。

📦 技术栈

  • 前端:React + Redux + Radix UI + Tailwind CSS
  • 后端:Golang + Gin + Redis + MySQL
  • 应用技术:PWA + WebSocket

🎃 贡献者

Contributors

📚 SDKs

API 分为网关 API 和 Chat Nio 独有功能。

中转 API 是 OpenAI 的通用格式,支持多种格式。详情请参阅 OpenAI API 文档和 SDKs。

以下 SDK 是 Chat Nio API SDK 的独有功能

✨ 一些优秀的开源项目

前端项目指的是以用户聊天界面为主的项目,后端项目指的是以 API 转发和管理为主的项目,一站式项目指的是包括用户聊天界面和 API 转发管理的项目

编辑推荐精选

讯飞智文

讯飞智文

一键生成PPT和Word,让学习生活更轻松

讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。

AI办公办公工具AI工具讯飞智文AI在线生成PPTAI撰写助手多语种文档生成AI自动配图热门
讯飞星火

讯飞星火

深度推理能力全新升级,全面对标OpenAI o1

科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。

热门AI开发模型训练AI工具讯飞星火大模型智能问答内容创作多语种支持智慧生活
Spark-TTS

Spark-TTS

一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型

Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。

Trae

Trae

字节跳动发布的AI编程神器IDE

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
咔片PPT

咔片PPT

AI助力,做PPT更简单!

咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。

讯飞绘文

讯飞绘文

选题、配图、成文,一站式创作,让内容运营更高效

讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。

热门AI辅助写作AI工具讯飞绘文内容运营AI创作个性化文章多平台分发AI助手
材料星

材料星

专业的AI公文写作平台,公文写作神器

AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。

openai-agents-python

openai-agents-python

OpenAI Agents SDK,助力开发者便捷使用 OpenAI 相关功能。

openai-agents-python 是 OpenAI 推出的一款强大 Python SDK,它为开发者提供了与 OpenAI 模型交互的高效工具,支持工具调用、结果处理、追踪等功能,涵盖多种应用场景,如研究助手、财务研究等,能显著提升开发效率,让开发者更轻松地利用 OpenAI 的技术优势。

Hunyuan3D-2

Hunyuan3D-2

高分辨率纹理 3D 资产生成

Hunyuan3D-2 是腾讯开发的用于 3D 资产生成的强大工具,支持从文本描述、单张图片或多视角图片生成 3D 模型,具备快速形状生成能力,可生成带纹理的高质量 3D 模型,适用于多个领域,为 3D 创作提供了高效解决方案。

3FS

3FS

一个具备存储、管理和客户端操作等多种功能的分布式文件系统相关项目。

3FS 是一个功能强大的分布式文件系统项目,涵盖了存储引擎、元数据管理、客户端工具等多个模块。它支持多种文件操作,如创建文件和目录、设置布局等,同时具备高效的事件循环、节点选择和协程池管理等特性。适用于需要大规模数据存储和管理的场景,能够提高系统的性能和可靠性,是分布式存储领域的优质解决方案。

下拉加载更多