one-api

一个网关管所有大模型API,统一密钥、分发、监控

one-api 是一个开源的 LLM API 管理与分发系统,旨在解决多个大模型 API 密钥分散、调用方式不统一、难以集中管控和二次分发的问题。它支持 OpenAI、Azure、Anthropic Claude、Google Gemini、DeepSeek、字节豆包、ChatGLM、文心一言、讯飞星火、通义千问等主流模型,通过统一的 API 格式适配所有上游提供商,用户只需一个 API 地址和密钥即可调用所有模型。核心能力包括:密钥管理与额度控制、多渠道负载均衡、请求日志与统计、用户/令牌管理、以及通过 API 进行二次分发,适合团队或平台方将模型能力转售或共享。项目提供单可执行文件和 Docker 镜像,一键部署,开箱即用,并带有英文界面,降低了使用门槛。

开源 unknown 对话助手
访问官网 ↗ GitHub ↗ 文档 ↗
GitHub 星标 ★ 36988
维护状态 低维护
是否开源 是
定价模式 unknown

项目数据

分类对话助手
开发团队songquanpeng
所属国家
定价模式unknown
价格说明开源项目,可自行部署,官网未明确提供在线服务或定价信息。
访问状态
是否开源是
开源协议MIT
主要语言JavaScript
技术栈/模型api,api-gateway,azure-openai-api,chatgpt,claude,ernie-bot,gemini,gpt,openai,openai-api,proxy
GitHub 星标★ 36988
30天Star增速
HF 下载量
上线时间2023-04-22 00:00:00
最近更新2026-09-22 00:00:00
维护状态低维护
中文支持
访问方式
移动端支持
综合评分
收录时间2026-08-09
浏览次数2

使用教程

难度:入门 约 10 分钟 部署方式:Docker 6 步

环境要求

  • 已安装 Docker 环境(可用 docker 命令)
  • 一台可访问外网的服务器或本机,端口 3000 未被占用
  • 准备一个用于持久化数据的宿主机目录,如 /home/ubuntu/data/one-api
  • 可选:如使用 MySQL 需自备数据库连接参数(用户名、密码、地址、端口、库名)

安装与启动步骤

  1. 1启动 One API 容器

    用 SQLite 存储数据,挂载宿主机目录到容器 /data 保证数据不丢;端口映射到宿主机 3000。

    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
  2. 2改用 MySQL 存储(可选)

    在上面命令基础上增加 SQL_DSN 环境变量即可换成 MySQL,请按实际数据库修改连接参数。

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

    浏览器打开 http://localhost:3000/ ,用初始账号 root、密码 123456 登录,登录后立即修改密码。

  4. 4在渠道页添加 API Key

    进入“渠道”页面,填入你要使用的大模型上游 API Key,完成渠道配置。

  5. 5在令牌页新增令牌

    进入“令牌”页面新增一个访问令牌,这个令牌就是后续调用 One API 时使用的 API Key。

  6. 6客户端接入 One API

    在任意使用 OpenAI API 的客户端里,把 API Base 设为你的部署地址 /v1,API Key 填上一步生成的令牌。

    OPENAI_API_KEY="sk-xxxxxx"
    OPENAI_API_BASE="https://:/v1"

关键配置

配置项必填说明示例
TZ是容器时区,影响日志与统计时间显示Asia/Shanghai
SQL_DSN否数据库连接串,填写后使用 MySQL 而非 SQLiteroot:123456@tcp(localhost:3306)/oneapi
SESSION_SECRET否会话密钥,多机部署时所有服务器需设为相同值your-session-secret
NODE_TYPE否节点类型,从服务器需设为 slave,默认主服务器slave
SYNC_FREQUENCY否定期从数据库同步配置的频率,使用远程数据库时推荐设置60
REDIS_CONN_STRING否Redis 连接串,启用后可减少数据库访问降低延迟redis://default:123456@localhost:6379

如何确认成功

浏览器访问 http://localhost:3000/ 能打开登录页,用 root / 123456 成功登录即部署成功。

常见问题

Q:初始账号和密码是什么?

A:用户名为 root,密码为 123456,登录后请立刻修改,避免被他人使用。

Q:数据存在哪里,容器删了会丢吗?

A:SQLite 模式数据存在挂载的 /data 目录(如 /home/ubuntu/data/one-api),删除容器后数据仍在;用 MySQL 则存数据库。

Q:客户端里的 API Base 应该怎么填?

A:填你的 One API 部署地址加 /v1,例如 https://:/v1,具体格式取决于所用客户端。

Q:如何指定用某个渠道处理请求?

A:在令牌后拼接渠道 ID,例如 Authorization: Bearer ONE_API_KEY-CHANNEL_ID,且必须使用管理员创建的令牌。

Q:不指定渠道时会怎样?

A:不指定渠道 ID 时会按负载均衡的方式在多个渠道之间分发请求。

注意事项

  • 本项目为开源项目,使用时必须遵循 OpenAI 使用条款及当地法律法规。
  • 多机部署时所有服务器的 SESSION_SECRET 必须一致,且必须设置 SQL_DSN 使用同一个 MySQL,从服务器设置 NODE_TYPE=slave。
  • 系统开箱即用,可通过环境变量或命令行参数配置;不清楚某项含义时,可临时删掉该值以看到提示文字。

核心亮点

  • 支持 20+ 主流大模型提供商,统一 API 格式,切换模型零代码改动
  • 内置密钥管理、额度限制和请求日志,适合团队协作和二次分发
  • 单文件或 Docker 部署,安装简单,资源占用低,自带 Web 管理界面

不足之处

  • 界面为英文,对中文用户不够友好
  • 高级功能(如自定义模型路由策略)配置复杂,文档深度不足
  • 文档/社区待观察

适用场景

  • 企业内部统一管理多个大模型 API 密钥,按部门分配额度
  • 开发者或平台方将模型能力封装成 API 转售给第三方用户
  • 个人开发者集中调用多种模型,避免维护多个 SDK 和密钥

替代项目

LiteLLM、new-api、FastGPT

项目介绍

one-api 是基础设施领域的开源项目,由 songquanpeng 开发,2023 年首次发布。

在全站 13,090 个收录项目中,它的 GitHub 星标数(36,988)位列前 1%,在基础设施分类的 1,132 个项目里位列前 2%。

近 41 天,它的 GitHub 星标从 36,346 增加到 36,988,净增 642。

项目已超过三个月没有代码更新,维护节奏明显放缓,最近一次代码更新于 2026-09-22。可自行部署,官网未明确提供在线服务或定价信息。从国内网络环境看,可直接访问。

它主要面向的使用场景是:企业内部统一管理多个大模型API密钥,按部门分配额度。同类可对比的替代方案包括 LiteLLM、new-api、FastGPT。

上一篇:memobase

下一篇:ChatGPTReversed

同类项目推荐

freebuff-proxy 开源

聚合多账号,一键接入 OpenAI 兼容 API,轻松管理会话。

Multi-account OpenAI-compatible gateway for coding models. Pooled keys, session life···

★ 213 2026-08-20
microduck 开源

用 Rust 造一只会走路的桌面小鸭,快速上手双足机器人。

A Tiny biped duck robot

★ 8684 2026-09-10
soperator 开源

用 Kubernetes 原生方式运行 Slurm,简化 HPC 集群管理。

Run Slurm in Kubernetes

★ 439 2026-08-10
ollama 开源

一条命令本地跑起大模型,免费、私密、不卡顿

Get up and running with Kimi, GLM, MiniMax, DeepSeek, gpt-oss, Qwen, Gemma and other···

★ 181484 2026-08-09