小众AI

one-api
one-api - 通过标准的 OpenAI API 格式访问所有的大模型
通过标准的 OpenAI API 格式访问所有的大模型,统一 API 适配,可用于 key 管理与二次分发。
  官网   代码仓

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,以定期从数据库同步配置。

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


更多...


LocalAI
AI 的查询引擎 - 用于构建 AI 的平台,可以回答大规模联合数据的问题。MindsDB 内置了 MCP 服务器,使您的 MCP 应用程序能够连接、统一和响应大规模联合数据(跨数据库、数据仓库和 SaaS 应用程序)的问题。
mindsDB
AI 的查询引擎 - 用于构建 AI 的平台,可以回答大规模联合数据的问题。MindsDB 内置了 MCP 服务器,使您的 MCP 应用程序能够连接、统一和响应大规模联合数据(跨数据库、数据仓库和 SaaS 应用程序)的问题。
mcp-agent
一个基于 Model Context Protocol (MCP) 的简单、可组合的框架,用于构建智能代理。它旨在通过 MCP 服务器来管理代理的生命周期,并提供构建生产就绪的 AI 代理的简单模式。