博客 / 詳情

返回

一站式管理!新一代大模型網關神器!

大家好,我是 Java陳序員

在 AI 大模型應用爆發的當下,對接多平台接口、管理 API 密鑰、控制調用權限......這些繁瑣的操作是否讓你頭疼?

今天,給大家介紹一款開源的大模型網關神器,一站式解決大模型接口管理的所有痛點!

關注微信公眾號:【Java陳序員】,獲取開源項目分享、AI副業分享、超200本經典計算機電子書籍等。

項目介紹

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/#/

我創建了一個開源項目交流羣,方便大家在羣裏交流、討論開源項目

但是任何人在羣裏打任何廣告,都會被 T 掉

如果你對這個交流羣感興趣或者在使用開源項目中遇到問題,可以通過如下方式進羣

關注微信公眾號:【Java陳序員】,回覆【開源項目交流羣】進羣,或者通過公眾號下方的菜單添加個人微信,並備註【開源項目交流羣】,通過後拉你進羣

大家的點贊、收藏和評論都是對作者的支持,如文章對你有幫助還請點贊轉發支持下,謝謝!


user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.