IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    诺多发表于 2024-03-09 21:48:49
    love 0

    Chat Nio

    🔌 简介

    Chat Nio,下一代 AI 一站式解决方案,一站式 Chat + 中转 API 站点,支持 OpenAI,Midjourney,Claude,讯飞星火,Stable Diffusion,DALL·E,ChatGLM,通义千问,腾讯混元,360 智脑,百川 AI,火山方舟,新必应,Google Gemini (PaLM2),Moonshot,LocalAI 等模型,支持对话分享,自定义预设,云端同步,模型市场,支持弹性计费 / 订阅计划模式,支持图片解析,支持联网搜索,支持模型缓存,丰富美观的后台管理与仪表盘数据统计。

    🎯 功能特性详解

    Chat Nio

    相对于 NextChat 等偏前端轻量部署的项目, Chat Nio 优势在于更便捷的云端同步、账号管理、更丰富的分享等功能, 以及计费管理系统;相对于 OneAPI 等偏后端轻量部署的项目, Chat Nio 优势在于更丰富的用户界面, 同时渠道管理体系功能更多, 更丰富的用户管理, 并推出偏向用户界面的订阅管理系统。以下是Chat Nio的核心功能特性:

    • SMTP发件与邮件后缀白名单:Chat Nio支持启用SMTP发件服务,并允许自定义邮件后缀白名单,增强通信的安全性与定制化程度。

    • 模型缓存机制:系统具备先进的模型缓存功能,可减少重复请求,降低计费成本。用户可根据需求自由设置最大缓存结果数、缓存模型类型以及缓存时间,一键操作即可实现全部或部分模型的缓存策略调整。

    • 渠道管理体系:

      • 自写渠道分配算法:基于Adapter兼容层架构设计,以低耦合、高扩展性为核心,保证了不同渠道间的无缝切换与高效运作。

      • 多渠道优先级调配与权重负载:Chat Nio支持多渠道并行管理,通过优先级和权重设定,确保高优先级渠道优先响应且合理分配请求至各个权重通道中。

      • 渠道状态管理与兼容多种格式:提供全面的渠道状态监控及灵活的模型兼容层,可轻松处理各种模型请求,并支持一键添加、清空模型,以及使用模板模型。

      • 自定义模型与渠道重试:用户可以增加自定义模型,并配置渠道重试次数,当遇到故障时自动切换至优先级更低的渠道,有效提高服务可用性。

      • 同渠道均衡负载与密钥管理:单个渠道内支持多个密钥随机分配请求,搭配Retry机制,即使在故障场景下也能保持内部资源的有效利用。

      • 渠道模型映射与用户分组权限控制:提供精细化的模型映射规则,便于将目标模型适配至现有渠道支持列表中,并可针对不同用户分组设置模型访问权限。

    • 内置安全防护:报错时自动隐藏敏感信息,如上游地址和秘钥,确保信息安全,防止滥用,同时方便问题排查。

    🐳 部署方法简述

    Chat Nio

    Chat Nio支持Docker部署,建议使用Docker Compose进行部署,方面维护管理。

    1️⃣ 推荐:Docker Compose 部署

    1、创建一个名为 docker-compose.yml 的文件,内容如下:

    version: '3'
    services:
      mysql:
        image: mysql:latest
        container_name: db
        restart: always
        environment:
          MYSQL_ROOT_PASSWORD: root
          MYSQL_DATABASE: chatnio
          MYSQL_USER: chatnio
          MYSQL_PASSWORD: chatnio123456!
        expose:
          - "3306"
        volumes:
            - ./db:/var/lib/mysql
        networks:
          - chatnio-network
    
      redis:
        image: redis:latest
        container_name: redis
        restart: always
        expose:
          - "6379"
        volumes:
          - ./redis:/data
        networks:
          - chatnio-network
    
      chatnio:
          image: programzmh/chatnio
          container_name: chatnio
          restart: always
          ports:
              - "8000:8094"
          depends_on:
              - mysql
              - redis
          links:
              - mysql
              - redis
          ulimits:
            nofile:
              soft: 65535
              hard: 65535
          environment:
              MYSQL_HOST: mysql
              MYSQL_USER: chatnio
              MYSQL_PASSWORD: chatnio123456!
              MYSQL_DATABASE: chatnio
              REDIS_HOST: redis
              REDIS_PORT: 6379
              REDIS_PASSWORD: ""
              REDIS_DB: 0
              SERVE_STATIC: "true"
          volumes:
            - ./config:/config
            - ./logs:/logs
          networks:
            - chatnio-network
    
    networks:
      chatnio-network:
        driver: bridge
    
    • MySQL 数据库挂载目录项目 ~/db
    • Redis 数据库挂载目录项目 ~/redis
    • 配置文件挂载目录项目 ~/config

    2、在终端中进入该文件所在的目录,运行以下命令启动 Chat Nio:

    docker-compose up -d
    

    3、运行成功后, 打开http://localhost:8000,默认的管理员账号为root, 密码 chatnio123456

    2️⃣ Docker 部署

    1、在终端中执行以下命令 (需先部署好Mysql和redis服务)

    docker run -d --name chatnio:latest \
      --network host \
      -p 8000:8094 \
      -v ~/config:/config \
      -v ~/logs:/logs \
      -e MYSQL_HOST=localhost \
      -e MYSQL_PORT=3306 \
      -e MYSQL_DATABASE=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 指使用宿主机网络, 使 Docker 容器使用宿主机的网络, 可自行修改
    • -p 8000:8094 指映射宿主机端口为 8000, 可自行修改冒号前的端口号
    • SECRET: JWT 密钥, 自行生成随机字符串修改
    • SERVE_STATIC: 是否启用静态文件服务 (正常情况下不需要更改此项, 详见下方常见问题解答)
    • -v ~/config:/config 和 -v ~/logs:/logs 指挂载配置文件和日志文件的宿主机目录, 可自行修改
    • 需配置 MySQL 和 Redis 服务, 请自行参考上方信息修改环境变量
    • 如需使用 stable 版本, 请使用 programzmh/chatnio:stable 替代 programzmh/chatnio:latest

    2、运行成功后, 打开http://localhost:8000,默认的管理员账号为root, 密码 chatnio123456

    原创不易,如果觉得此文对你有帮助,不妨点赞+收藏+关注,你的鼓励是我持续创作的动力!

    高等精灵实验室



沪ICP备19023445号-2号
友情链接