一站式管理!新一代大模型网关神器!

39 阅读5分钟

大家好,我是 Java陈序员

在 AI 大模型应用爆发的当下,对接多平台接口、管理 API 密钥、控制调用权限......这些繁琐的操作是否让你头疼?

今天,给大家介绍一款开源的大模型网关神器,一站式解决大模型接口管理的所有痛点!

项目介绍

new-api —— 一款开源的大模型网关与 AI 资产管系统,定位为一站式 AI 资产管理网关,核心目标是提供大模型相关的网关管理与资产统筹能力。

功能特色

  • 适配全品类模型:一个 API 端点接入所有 AI 服务,支持 OpenAI、Moonshot、Zhipu、Anthropic Claude、Google Gemini、百度文心一言、讯飞星火等主流大模型,一套网关打通全品类 AI 服务
  • 智能调度渠道:支持渠道加权随机分配,可设置默认供应商,结合令牌分组、模型限制能力,灵活管控接口调用优先级与范围
  • 精细化资产管理:集成在线充值功能,可自定义充值金额选项、折扣规则,支持模型按次数收费,可批量设置模型固定价格、模型倍率、补全倍率
  • 细粒度权限控制:支持 GitHub OAuth、LinuxDO、Telegram、OIDC 等多方式授权登录,集成双因素认证,支持令牌分组管理,限制令牌可调用的模型范围,适配团队协作场景
  • 全新 UI:现代化的用户界面设计,支持深色/浅色主题,自动适配系统偏好,支持中文、英文、法语、日语多语言,提供可视化控制台与统计分析的数据看板

快速上手

new-api 支持 Docker 部署,可使用 Docker 快速部署。

Docker 部署

1、拉取镜像

docker pull calciumion/new-api

2、创建挂载目录

mkdir -p /data/software/new-api

3、启动容器

  • 使用 SQLite 数据库
docker run -d --name new-api \
  --restart always \
  -p 3000:3000 \
  -e TZ=Asia/Shanghai \
  -v /data/software/new-api:/data \
  calciumion/new-api
  • 使用 MySQL 数据库(推荐)
docker run -d --name new-api \
  --restart always \
  -p 3000:3000 \
  -e TZ=Asia/Shanghai \
  -e SQL_DSN="用户名:密码@tcp(数据库地址:3306)/数据库名" \
  -v /data/software/new-api:/data \
  calciumion/new-api

环境变量中的数据库连接信息需要传入对应的值。

4、容器运行成功后,浏览器访问

http://{IP/域名}:3000

首次安装需要按照页面指引手动设置管理员账号和密码,完成初始化后即可使用所设置的管理员账号登录系统。

Docker Compose 部署、

1、创建一个目录用于部署

mkdir new-api
cd new-api

2、在该目录下创建 docker-compose.yml 文件

  • 标准配置(生产环境)
# New-API Docker Compose Configuration
#
# Quick Start:
#   1. docker-compose up -d
#   2. Access at http://localhost:3000
#
# Using MySQL instead of PostgreSQL:
#   1. Comment out the postgres service and SQL_DSN line 15
#   2. Uncomment the mysql service and SQL_DSN line 16
#   3. Uncomment mysql in depends_on (line 28)
#   4. Uncomment mysql_data in volumes section (line 64)
#
# ⚠️  IMPORTANT: Change all default passwords before deploying to production!

version: '3.4' # For compatibility with older Docker versions

services:
  new-api:
    image: calciumion/new-api:latest
    container_name: new-api
    restart: always
    command: --log-dir /app/logs
    ports:
      - '3000:3000'
    volumes:
      - ./data:/data
      - ./logs:/app/logs
    environment:
      - SQL_DSN=postgresql://root:123456@postgres:5432/new-api # ⚠️ IMPORTANT: Change the password in production!
      #      - SQL_DSN=root:123456@tcp(mysql:3306)/new-api  # Point to the mysql service, uncomment if using MySQL
      - REDIS_CONN_STRING=redis://redis
      - TZ=Asia/Shanghai
      - ERROR_LOG_ENABLED=true # 是否启用错误日志记录
      - BATCH_UPDATE_ENABLED=true # 是否启用批量更新 batch update enabled
    #      - STREAMING_TIMEOUT=300  # 流模式无响应超时时间,单位秒,默认120秒,如果出现空补全可以尝试改为更大值 Streaming timeout in seconds, default is 120s. Increase if experiencing empty completions
    #      - SESSION_SECRET=random_string  # 多机部署时设置,必须修改这个随机字符串!! multi-node deployment, set this to a random string!!!!!!!
    #      - SYNC_FREQUENCY=60  # Uncomment if regular database syncing is needed

    depends_on:
      - redis
      - postgres
    #      - mysql  # Uncomment if using MySQL
    healthcheck:
      test:
        [
          'CMD-SHELL',
          "wget -q -O - http://localhost:3000/api/status | grep -o '\"success\":\\s*true' || exit 1",
        ]
      interval: 30s
      timeout: 10s
      retries: 3

  redis:
    image: redis:latest
    container_name: redis
    restart: always

  postgres:
    image: postgres:15
    container_name: postgres
    restart: always
    environment:
      POSTGRES_USER: root
      POSTGRES_PASSWORD: 123456 # ⚠️ IMPORTANT: Change this password in production!
      POSTGRES_DB: new-api
    volumes:
      - pg_data:/var/lib/postgresql/data
#    ports:
#      - "5432:5432"  # Uncomment if you need to access PostgreSQL from outside Docker

#  mysql:
#    image: mysql:8.2
#    container_name: mysql
#    restart: always
#    environment:
#      MYSQL_ROOT_PASSWORD: 123456  # ⚠️ IMPORTANT: Change this password in production!
#      MYSQL_DATABASE: new-api
#    volumes:
#      - mysql_data:/var/lib/mysql
#    ports:
#      - "3306:3306"  # Uncomment if you need to access MySQL from outside Docker

volumes:
  pg_data:
#  mysql_data:

生产环境下,请务必修改数据库密码。

  • 简化配置(测试环境)
services:
  new-api:
    image: calciumion/new-api:latest
    container_name: new-api
    restart: always
    ports:
      - '3000:3000'
    environment:
      - TZ=Asia/Shanghai
    volumes:
      - ./data:/data

3、启动服务

docker compose up -d

4、容器运行成功后,浏览器访问

http://{IP/域名}:3000

首次安装需要按照页面指引手动设置管理员账号和密码,完成初始化后即可使用所设置的管理员账号登录系统。

功能体验

  • 操练场

  • 数据看板

  • 令牌管理

  • 使用日志

  • 钱包管理

  • 个人设置

  • 渠道管理

  • 兑换码管理

  • 用户管理

  • 系统设置

如果你正在被多平台 AI 接口管理困扰,想要一套轻量化、高拓展的大模型网关系统,new-api 值得一试!无论是个人学习、团队协作还是小型企业使用,都能满足你的需求。快去部署体验吧~

项目地址:https://github.com/QuantumNous/new-api

最后

推荐的开源项目已经收录到 GitHub 项目,欢迎 Star

https://github.com/chenyl8848/great-open-source-project

或者访问网站,进行在线浏览:

https://chencoding.top:8090/#/

大家的点赞、收藏和评论都是对作者的支持,如文章对你有帮助还请点赞转发支持下,谢谢!