one-api - 通过标准的 OpenAI API 格式访问所有的大模型

部署运行你感兴趣的模型镜像

LLM API 管理 & 分发系统,支持 OpenAI、Azure、Anthropic Claude、Google Gemini、DeepSeek、字节豆包、ChatGLM、文心一言、讯飞星火、通义千问、360 智脑、腾讯混元等主流模型,统一 API 适配,可用于 key 管理与二次分发。单可执行文件,提供 Docker 镜像,一键部署,开箱即用。

主要功能

  1. 支持多种大模型:

  2. 支持配置镜像以及众多第三方代理服务

  3. 支持通过**负载均衡**的方式访问多个渠道。

  4. 支持 **stream 模式**,可以通过流式传输实现打字机效果。

  5. 支持**多机部署**,详见此处

  6. 支持**令牌管理**,设置令牌的过期时间、额度、允许的 IP 范围以及允许的模型访问。

  7. 支持**兑换码管理**,支持批量生成和导出兑换码,可使用兑换码为账户进行充值。

  8. 支持**渠道管理**,批量创建渠道。

  9. 支持**用户分组**以及**渠道分组**,支持为不同分组设置不同的倍率。

  10. 支持渠道**设置模型列表**。

  11. 支持**查看额度明细**。

  12. 支持**用户邀请奖励**。

  13. 支持以美元为单位显示额度。

  14. 支持发布公告,设置充值链接,设置新用户初始额度。

  15. 支持模型映射,重定向用户的请求模型,如无必要请不要设置,设置之后会导致请求体被重新构造而非直接透传,会导致部分还未正式支持的字段无法传递成功。

  16. 支持失败自动重试。

  17. 支持绘图接口。

  18. 支持 Cloudflare AI Gateway,渠道设置的代理部分填写 https://gateway.ai.cloudflare.com/v1/ACCOUNT_TAG/GATEWAY/openai​ 即可。

  19. 支持丰富的**自定义**设置,

    1. 支持自定义系统名称,logo 以及页脚。
    2. 支持自定义首页和关于页面,可以选择使用 HTML & Markdown 代码进行自定义,或者使用一个单独的网页通过 iframe 嵌入。
  20. 支持通过系统访问令牌调用管理 API,进而**在无需二开的情况下扩展和自定义** One API 的功能,详情请参考此处 API 文档

  21. 支持 Cloudflare Turnstile 用户校验。

  22. 支持用户管理,支持**多种用户登录注册方式**:

  23. 支持主题切换,设置环境变量 THEME​ 即可,默认为 default​,欢迎 PR 更多主题,具体参考此处

  24. 配合 Message Pusher 可将报警信息推送到多种 App 上。

安装和使用

基于 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 的部署命令,在上面的基础上添加 `-e SQL_DSN="root:123456@tcp(localhost:3306)/oneapi"`,请自行修改数据库连接参数,不清楚如何修改请参见下面环境变量一节。
# 例如:
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

其中,-p 3000:3000​ 中的第一个 3000​ 是宿主机的端口,可以根据需要进行修改。

数据和日志将会保存在宿主机的 /home/ubuntu/data/one-api​ 目录,请确保该目录存在且具有写入权限,或者更改为合适的目录。

如果启动失败,请添加 --privileged=true​,具体参考 #482

如果上面的镜像无法拉取,可以尝试使用 GitHub 的 Docker 镜像,将上面的 justsong/one-api​ 替换为 ghcr.io/songquanpeng/one-api​ 即可。

如果你的并发量较大,**务必**设置 SQL_DSN​,详见下面环境变量一节。

更新命令:docker run --rm -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower -cR​

Nginx 的参考配置:

server{
   server_name openai.justsong.cn;  # 请根据实际情况修改你的域名

   location / {
          client_max_body_size  64m;
          proxy_http_version 1.1;
          proxy_pass http://localhost:3000;  # 请根据实际情况修改你的端口
          proxy_set_header Host $host;
          proxy_set_header X-Forwarded-For $remote_addr;
          proxy_cache_bypass $http_upgrade;
          proxy_set_header Accept-Encoding gzip;
          proxy_read_timeout 300s;  # GPT-4 需要较长的超时时间,请自行调整
   }
}

之后使用 Let's Encrypt 的 certbot 配置 HTTPS:

# Ubuntu 安装 certbot:
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
# 生成证书 & 修改 Nginx 配置
sudo certbot --nginx
# 根据指示进行操作
# 重启 Nginx
sudo service nginx restart

初始账号用户名为 root​,密码为 123456​。

通过宝塔面板进行一键部署
  1. 安装宝塔面板9.2.0及以上版本,前往 宝塔面板 官网,选择正式版的脚本下载安装;
  2. 安装后登录宝塔面板,在左侧菜单栏中点击 Docker​,首次进入会提示安装 Docker​ 服务,点击立即安装,按提示完成安装;
  3. 安装完成后在应用商店中搜索 One-API​,点击安装,配置域名等基本信息即可完成安装;
基于 Docker Compose 进行部署

仅启动方式不同,参数设置不变,请参考基于 Docker 部署部分

# 目前支持 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
    
  2. 运行:

    chmod u+x one-api
    ./one-api --port 3000 --log-dir ./logs
    
  3. 访问 http://localhost:3000/ 并登录。初始账号用户名为 root​,密码为 123456​。

更加详细的部署教程参见此处

多机部署
  1. 所有服务器 SESSION_SECRET​ 设置一样的值。
  2. 必须设置 SQL_DSN​,使用 MySQL 数据库而非 SQLite,所有服务器连接同一个数据库。
  3. 所有从服务器必须设置 NODE_TYPE​ 为 slave​,不设置则默认为主服务器。
  4. 设置 SYNC_FREQUENCY​ 后服务器将定期从数据库同步配置,在使用远程数据库的情况下,推荐设置该项并启用 Redis,无论主从。
  5. 从服务器可以选择设置 FRONTEND_BASE_URL​,以重定向页面请求到主服务器。
  6. 从服务器上**分别**装好 Redis,设置好 REDIS_CONN_STRING​,这样可以做到在缓存未过期的情况下数据库零访问,可以减少延迟(Redis 集群或者哨兵模式的支持请参考环境变量说明)。
  7. 如果主服务器访问数据库延迟也比较高,则也需要启用 Redis,并设置 SYNC_FREQUENCY​,以定期从数据库同步配置。

环境变量的具体使用方法详见此处

您可能感兴趣的与本文相关的镜像

Qwen3-8B

Qwen3-8B

文本生成
Qwen3

Qwen3 是 Qwen 系列中的最新一代大型语言模型,提供了一整套密集型和专家混合(MoE)模型。基于广泛的训练,Qwen3 在推理、指令执行、代理能力和多语言支持方面取得了突破性进展

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值