9AIB 就爱比 / 极客社区
首页 卡网订阅 官方订阅 官方 API 中转 API 极客社区 防坑指南
/
跳转至内容
  • 版块
  • 最新
  • 标签
  • 热门
  • 用户
  • 群组
皮肤
  • 浅色
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • 深色
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(不使用皮肤)
  • 不使用皮肤
折叠
品牌标识
  1. AI 订阅避坑与拼车交流
  2. 版块
  3. 🛠️ 技术折腾
  4. 【生产级落地】基于 Docker + NewAPI + Cloudflare Workers 搭建私有高可用 AI 智能路由网关(附完整 compose.yml)

【生产级落地】基于 Docker + NewAPI + Cloudflare Workers 搭建私有高可用 AI 智能路由网关(附完整 compose.yml)

已定时 已固定 已锁定 已移动 🛠️ 技术折腾
4 帖子 3 发布者 324 浏览 1 关注中
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • NewAPI折腾狂N
    NewAPI折腾狂N
    NewAPI折腾狂
    编写于 最后由 编辑
    #1

    作为团队技术负责人,面对前端多款工具(Cherry Studio、Cursor、NextChat)分散调用官方 API 时,经常面临三大痛点:

    1. 单点限流(429 Too Many Requests):高峰期一个员工跑大任务,全团队的 API Key 一起被限;
    2. Key 暴露风险:客户端直接填写官方 Key,离职或设备外借存在泄密隐患;
    3. 账单无法精细化分摊与审计。

    本文分享一套经过企业生产环境验证的私有化 AI 智能路由网关架构,实现多渠道负载均衡、故障自动秒级降级与细粒度配额管理。


    1. 架构拓扑设计

    [本地客户端: Cursor / Cherry Studio]
                     │
                     ▼ (HTTPS / 边缘防护)
       [Cloudflare Workers 反代鉴权]
                     │
                     ▼ (内网专线 / 反代域名)
       [自建 VPS: NewAPI 网关服务]
         ├── Redis 缓存层 (Token 流式分发 + 会话保持)
         └── MySQL 数据库 (渠道权重 + 用户账单消费记录)
                     │
            ┌────────┴────────┐
            ▼                 ▼
    [主力渠道: 官方 API]   [兜底渠道: 9AIB 便宜官转 / Bedrock]
     (权重 80%, 超时重试)     (权重 20%, 触发 429 自动无感漂移)
    

    2. 生产级 docker-compose.yml 完整配置

    在 VPS 上创建目录 mkdir -p /opt/newapi && cd /opt/newapi,保存以下文件:

    version: '3.8'
    
    services:
      new-api:
        image: calciumion/new-api:latest
        container_name: new-api
        restart: always
        ports:
          - "3000:3000"
        volumes:
          - ./data:/data
          - ./logs:/app/logs
        environment:
          - SQL_DSN=newapi_user:SecurePasswd888@tcp(mysql:3306)/newapi?charset=utf8mb4&parseTime=True&loc=Local
          - REDIS_CONN_STRING=redis://default:RedisPasswd999@redis:6379/0
          - SESSION_SECRET=c2VjdXJlX3Nlc3Npb25fa2V5XzIwMjY=
          - NODE_TYPE=master
          - SYNC_FREQUENCY=60
          - BATCH_UPDATE_ENABLED=true
        depends_on:
          - mysql
          - redis
        networks:
          - newapi-net
    
      mysql:
        image: mysql:8.0
        container_name: newapi-mysql
        restart: always
        environment:
          - MYSQL_DATABASE=newapi
          - MYSQL_USER=newapi_user
          - MYSQL_PASSWORD=SecurePasswd888
          - MYSQL_ROOT_PASSWORD=RootSecurePasswd999
        volumes:
          - ./mysql-data:/var/lib/mysql
        networks:
          - newapi-net
    
      redis:
        image: redis:7-alpine
        container_name: newapi-redis
        restart: always
        command: redis-server --requirepass RedisPasswd999 --maxmemory 512mb --maxmemory-policy allkeys-lru
        volumes:
          - ./redis-data:/data
        networks:
          - newapi-net
    
    networks:
      newapi-net:
        driver: bridge
    

    3. 高可用配置实战要点

    1. 设置渠道重试(Channel Retry):
      在 NewAPI 后台“设置” -> “通用设置”中,将“失败重试次数”设为 3,并在渠道中配置备用通道。当主力渠道响应超时(>15s)或返回 429/502 时,网关会在同一请求生命周期内自动尝试下一个可用渠道,客户端完全无感;
    2. Model Mapping(模型映射解耦):
      前端统一请求标准模型名 claude-3-5-sonnet-20241022,后台可灵活映射至 AWS Bedrock anthropic.claude-3-5-sonnet-20241022-v2:0 或官方 API,随时根据汇率与成本动态切换;
    3. 开启流式缓冲优化(SSE Chunk Optimization):
      利用 Redis 的 allkeys-lru 策略缓存高频 Prompt 响应,节省多达 30% 重复调用成本!
    1 条回复 最后回复
    17
    • Prompt架构师P
      Prompt架构师P
      Prompt架构师
      编写于 最后由 编辑
      #2

      太强了!这篇文章解了我燃眉之急!之前我们自建的 OneAPI 经常因为并发稍微一高就导致 MySQL 连接池被打满,看了你的配置把 BATCH_UPDATE_ENABLED=true 和 Redis 缓冲配上,实测 QPS 翻了 3 倍!

      1 条回复 最后回复
      1
      • NewAPI折腾狂N
        NewAPI折腾狂N
        NewAPI折腾狂
        编写于 最后由 编辑
        #3

        @Prompt架构师 哈哈,批量更新(Batch Update)是高并发的关键,不然每次 Token 扣减都直接写 MySQL,磁盘 I/O 很快就会挂掉。配合 Redis 做异步落盘是标准生产解法。

        1 条回复 最后回复
        8
        • adminA
          adminA
          admin
          编写于 最后由 编辑
          #4

          高质量硬核干货,已加入社区【精选技术折腾】置顶合集,期待更多实战分享!

          1 条回复 最后回复
          5

          你好!看起来您对这段对话很感兴趣,但您还没有一个账号。

          厌倦了每次访问都刷到同样的帖子?您注册账号后,您下次访问时都将自动回到上次浏览的位置,并可选择接收新回复的通知(通过电子邮件或推送通知)。您还可以收藏帖子、为帖子点赞,以此向其他社区成员表达您的感谢。

          有了你的建议,这篇帖子会更精彩哦 💗

          注册 登录
          回复
          • 在新帖中回复
          登录后回复
          • 从旧到新
          • 从新到旧
          • 最多赞同


          • 登录

          • 没有帐号? 注册

          Powered by NodeBB Contributors
          • 第一个帖子
            最后一个帖子
          0
          • 版块
          • 最新
          • 标签
          • 热门
          • 用户
          • 群组