【记录】使用one-api聚合Azure和OpenAI的API

Last updated on February 3, 2026 pm

One-api 是 OpenAI 接口管理 & 分发系统,支持Azure、Anthropic Claude、Google PaLM 2、智谱 ChatGLM、百度文心一言、讯飞星火认知、阿里通义千问、360 智脑以及腾讯混元,可用于二次分发管理 key。

  • 在负载均衡的同时,有效避免了key的泄露风险

部署 One-api

1
2
mkdir -p ~/app/one-api && cd ~/app/one-api && nano docker-compose.yml
sudo docker-compose up -d
1
2
3
4
5
6
7
8
9
10
11
12
13
version: '3'
services:
one-api:
image: justsong/one-api:latest
environment:
- TZ=Asia/Shanghai
volumes:
- ./data:/data
restart: unless-stopped
networks:
default:
external: true
name: ngpm

客户端

新建渠道

  • Azure 需要确保部署模型的名称是 gpt-35-turbo
  • 可以将 one-api 本身当一个渠道进行套娃
  • 在 日志 里可以看到对不同渠道进行了负载均衡

附加 关闭 Azure 筛选

  • 安装油猴插件
  • 去控制台新建一个筛选器,将筛选关闭,并开启异步筛选注释
  • 设置模型部署中模型的高级选项,切换筛选器为刚刚创建的筛选器

附加 Google Vertex

注册 GCP 账户

启用 Vertex AI API

创建服务账户

添加到 one-api 渠道

  • 区域 Region 写 us-east5
  • Vertex AI Project ID 在 json 文件里
  • Google Cloud Application Default Credentials JSON 为下载的 json 文件的内容
  • 详细内容点此

附加 Amazon Bedrock

1
mkdir -p ~/app/litellm && cd ~/app/litellm && nano docker-compose.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
version: "3.9"
services:
litellm:
image: ghcr.io/berriai/litellm:main-latest
volumes:
- ./proxy_server_config.yaml:/app/proxy_server_config.yaml # mount your litellm config.yaml
environment:
- AWS_ACCESS_KEY_ID=<ACCESS_KEY>
- AWS_SECRET_ACCESS_KEY=<SECRET_ACCESS_KEY>
- AWS_REGION_NAME=us-west-2
restart: unless-stopped

networks:
default:
external: true
name: ngpm
1
2
wget https://github.com/BerriAI/litellm/raw/main/proxy_server_config.yaml
# 修改 master_key 和 model_list
1
2
3
4
5
6
7
model_list:
- model_name: bedrock-claude-haiku
litellm_params:
model: bedrock/anthropic.claude-3-haiku-20240307-v1:0

general_settings:
master_key: sk-1234
1
sudo docker-compose up -d
  • one-api 添加渠道

推荐 部署 SillyTavern

1
2
3
4
5
6
7
8
9
10
11
mkdir -p ~/app/sillytavern && cd ~/app/sillytavern && nano docker-compose.yml
sudo docker-compose up -d
sudo docker-compose logs
nano config/config.yaml
# listen: true
# whitelist:
# - 172.*.*.*
sudo docker-compose restart
sudo docker-compose logs
# 反代 sillytavern:8080
# Custom Endpoint (Base URL) 设置 http://one-api:3000/v1
1
2
3
4
5
6
7
8
9
10
11
12
13
version: "3"
services:
sillytavern:
image: ghcr.io/sillytavern/sillytavern:latest
volumes:
- "./config:/home/node/app/config"
- "./user:/home/node/app/public/user"
restart: unless-stopped

networks:
default:
external: true
name: ngpm

附加 部署 Next-Web

1
2
mkdir -p ~/app/next-web && cd ~/app/next-web && nano docker-compose.yml
sudo docker-compose up -d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
version: '3'
services:
next-web:
image: limour/next-chat
environment:
- TZ=Asia/Shanghai
- BASE_URL=https://rcdn.limour.top/one-api
- CUSTOM_MODELS=-all,+gpt-4o-mini@Deepbricks,+gpt-3.5-turbo@openai,+gpt-4-turbo@openai,+gpt-4o@openai,+o1-mini@openai,+gpt-claude-3.5-haiku@OpenRouter,+gpt-claude-3.5-sonnet@OpenRouter,+gpt-qwen-coder@HuggingFace,+gpt-gemini-1.5-pro@Vertex
- ENABLE_BALANCE_QUERY=1
- HOSTNAME=0.0.0.0
- DEFAULT_MODEL=gpt-4o
restart: unless-stopped

networks:
default:
external: true
name: ngpm

  • 添加基本身份验证
  • 修改 /api/openai 接口的 header
  • 设置里的 对话摘要模型 改为 gpt-4o-mini, 否则会默认使用最贵的模型来生成标题
1
2
3
4
5
6
7
8
9
10
11
chunked_transfer_encoding off;
proxy_buffering off;
proxy_cache off;
set $next_header $http_authorization;
if ($http_authorization = "Basic <用户1>"){
set $next_header "Bearer <用户1的key>";
}
if ($http_authorization = "Basic <用户2>"){
set $next_header "Bearer <用户2的key>";
}
proxy_set_header Authorization $next_header;

附加 独角数卡售卖


【记录】使用one-api聚合Azure和OpenAI的API
https://hexo.limour.top/Aggregating-Azure-and-OpenAI-APIs-with-OneAPI
Author
Limour
Posted on
October 3, 2023
Updated on
February 3, 2026
Licensed under