Home
Login

LLM API管理与分发系统,支持多种大语言模型的统一接口管理

MITJavaScript 25.9ksongquanpengone-api Last Updated: 2025-02-21

One API - LLM API管理与分发系统

项目概述

One API是一个开源的LLM API管理与分发系统,支持OpenAI、Azure、Anthropic Claude、Google Gemini、DeepSeek、ChatGLM等主流模型,统一API适配,可用于key管理与二次分发。该项目提供单可执行文件,支持Docker镜像,实现一键部署,开箱即用。

核心特性

📋 多模型支持

项目支持众多主流大语言模型提供商:

  • OpenAI系列:ChatGPT系列模型(支持Azure OpenAI API)
  • Anthropic:Claude系列模型(支持AWS Claude)
  • Google:PaLM2/Gemini系列模型
  • other:其它系列模型

🔧 核心功能

API管理与分发

  • 支持配置镜像以及众多第三方代理服务
  • 支持通过负载均衡的方式访问多个渠道
  • 支持stream模式,可以通过流式传输实现打字机效果
  • 支持多机部署
  • 支持失败自动重试
  • 支持绘图接口

用户与权限管理

  • 令牌管理:设置令牌的过期时间、额度、允许的IP范围以及允许的模型访问
  • 兑换码管理:支持批量生成和导出兑换码,可使用兑换码为账户进行充值
  • 用户分组:支持用户分组以及渠道分组,支持为不同分组设置不同的倍率
  • 渠道管理:批量创建渠道,支持渠道设置模型列表

监控与统计

  • 支持查看额度明细
  • 支持用户邀请奖励
  • 支持以美元为单位显示额度
  • 配合Message Pusher可将报警信息推送到多种App上

自定义功能

  • 支持发布公告,设置充值链接,设置新用户初始额度
  • 支持模型映射,重定向用户的请求模型
  • 支持自定义系统名称、logo以及页脚
  • 支持自定义首页和关于页面
  • 支持通过系统访问令牌调用管理API

🔐 安全与认证

多种登录方式

  • 邮箱登录注册(支持注册邮箱白名单)以及通过邮箱进行密码重置
  • 飞书授权登录
  • GitHub授权登录
  • 微信公众号授权(需要额外部署WeChat Server)

安全特性

  • 支持Cloudflare Turnstile用户校验
  • 支持主题切换
  • 支持Cloudflare AI Gateway

部署方式

Docker部署(推荐)

使用SQLite

docker run --name one-api -d --restart always -p 3000:3000 -e TZ=Asia/Shanghai -v /home/ubuntu/data/one-api:/data justsong/one-api

使用MySQL

docker run --name one-api -d --restart always -p 3000:3000 -e SQL_DSN="root:123456@tcp(localhost:3306)/oneapi" -e TZ=Asia/Shanghai -v /home/ubuntu/data/one-api:/data justsong/one-api

Docker Compose部署

# 目前支持MySQL启动,数据存储在./data/mysql文件夹内
docker-compose up -d

# 查看部署状态
docker-compose ps

手动部署

  1. 从GitHub Releases下载可执行文件或从源码编译:
git clone https://github.com/songquanpeng/one-api.git

# 构建前端
cd one-api/web/default
npm install
npm run build

# 构建后端
cd ../..
go mod download
go build -ldflags "-s -w" -o one-api
  1. 运行:
chmod u+x one-api
./one-api --port 3000 --log-dir ./logs

云平台部署

Zeabur部署

  • Fork代码仓库
  • 在Zeabur创建Project,添加MySQL服务
  • 配置环境变量PORT=3000SQL_DSN
  • 部署并配置域名

Render部署

  • 直接部署Docker镜像
  • 无需Fork仓库

配置说明

环境变量配置

数据库配置

  • SQL_DSN:数据库连接字符串(推荐使用MySQL或PostgreSQL)
  • LOG_SQL_DSN:日志表独立数据库连接

缓存配置

  • REDIS_CONN_STRING:Redis连接字符串,用于缓存
  • MEMORY_CACHE_ENABLED:启用内存缓存
  • SYNC_FREQUENCY:数据库同步频率(秒)

集群配置

  • SESSION_SECRET:固定会话密钥
  • NODE_TYPE:节点类型(master/slave)
  • FRONTEND_BASE_URL:前端重定向地址

安全配置

  • GLOBAL_API_RATE_LIMIT:API速率限制
  • GLOBAL_WEB_RATE_LIMIT:Web速率限制
  • RELAY_TIMEOUT:中继超时设置

命令行参数

  • --port <port_number>:指定端口号(默认3000)
  • --log-dir <log_dir>:指定日志文件夹
  • --version:打印版本号
  • --help:查看帮助

使用方法

  1. 初始登录:使用默认账号root,密码123456
  2. 渠道配置:在渠道页面添加API Key
  3. 令牌创建:在令牌页面创建访问令牌
  4. 客户端配置:将API Base设置为One API部署地址,API Key设置为生成的令牌

API使用示例

# OpenAI官方库配置
OPENAI_API_KEY="sk-xxxxxx"
OPENAI_API_BASE="https://<HOST>:<PORT>/v1"

渠道指定

可以通过在令牌后添加渠道ID来指定使用特定渠道:

Authorization: Bearer ONE_API_KEY-CHANNEL_ID

架构设计

用户 → One API → OpenAI/Azure/Claude/Gemini等多个提供商

One API作为中间层,统一不同提供商的API格式,提供:

  • 负载均衡
  • 请求中继和格式转换
  • 用户管理和权限控制
  • 使用量统计和计费

集成案例

ChatGPT Next Web

docker run --name chat-next-web -d -p 3001:3000 yidadaa/chatgpt-next-web

在页面设置接口地址和API Key即可。

ChatGPT Web

docker run --name chatgpt-web -d -p 3002:3002 -e OPENAI_API_BASE_URL=https://openai.justsong.cn -e OPENAI_API_KEY=sk-xxx chenzhaoyu94/chatgpt-web

许可证

本项目使用MIT协议开源,要求在页面底部保留署名以及指向本项目的链接。

项目地址

Star History Chart