Project Icon

chatnio

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

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

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

📝 功能介绍

  • 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 转发管理的项目

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号