现在很多大厂都提供了一些免费的模型API接口,但是基本会有RPM(每分钟请求数)或TPM(每分钟token数)进行限流,但是我们可以用多个账号或不同平台免费的API接口集中到One-API然后给OpenClaw调用。
下面以NVIDIA的免费API接口为例,单个账号Key的RPM是40,可以注册三四个账号轮流来,这样RPM差不多就有100了。虽然热门模型有点慢,但基本也够用了。
graph TD
A(OpenClaw);
A --->|使用 One API 分发的 key 进行请求| B(One API)
B -->|中继请求| C(NVIDIA1)
B -->|中继请求| D(NVIDIA2)
B -->|中继请求| E(NVIDIA3)
B -->|中继请求| F(其他大模型API)
一、安装One-API
以Ubuntu 24.04系统中Docker环境安装为例。
Docker环境安装可以参考 Linux安装Docker,这里就不详说了。
1. Docker 单容器部署,使用SQLite
# 创建部署目录
mkdir -p ~/one-api && cd ~/one-api
# 运行容器
docker run -d \
--name one-api \
--restart always \
-p 3000:3000 \
-e TZ=Asia/Shanghai \
-v $(pwd)/data:/data \
justsong/one-api:latest
2. Docker Compose 部署,使用 MySQL
# 创建部署目录
mkdir -p ~/one-api && cd ~/one-api
# 创建 docker-compose.yml
cat > docker-compose.yml << 'EOF'
version: '3.8'
services:
one-api:
image: justsong/one-api:latest
container_name: one-api
restart: always
ports:
- "3000:3000"
environment:
- TZ=Asia/Shanghai
- SQL_DSN=oneapi:oneapi@tcp(mysql:3306)/oneapi?charset=utf8mb4&parseTime=True&loc=Local
volumes:
- ./data:/data
depends_on:
mysql:
condition: service_healthy
networks:
- one-api-network
mysql:
image: mysql:8.0
container_name: one-api-mysql
restart: always
environment:
- MYSQL_ROOT_PASSWORD=oneapi_root
- MYSQL_DATABASE=oneapi
- MYSQL_USER=oneapi
- MYSQL_PASSWORD=oneapi
- TZ=Asia/Shanghai
volumes:
- ./mysql-data:/var/lib/mysql
ports:
- "3306:3306"
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "root", "-poneapi_root"]
interval: 10s
timeout: 5s
retries: 5
networks:
- one-api-network
networks:
one-api-network:
driver: bridge
EOF
# 启动服务
docker compose up -d
# 查看运行状态
docker compose ps
二、配置One-API
1. 安装Nginx配置HTTPS
# 安装 Nginx
sudo apt-get install -y nginx
# 创建 Nginx 配置
sudo tee /etc/nginx/sites-available/one-api << 'EOF'
server {
listen 80;
server_name your-domain.com;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
EOF
# 启用配置
sudo ln -s /etc/nginx/sites-available/one-api /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
# 使用 Certbot 配置 HTTPS
sudo apt-get install -y certbot python3-certbot-nginx
sudo certbot --nginx -d your-domain.com
2. 访问管理后台
# 浏览器访问
https://your-domain.com
# 默认登录账号
用户名:root
密码:123456
首次登录后系统会强制要求修改默认密码,请设置强密码。
3. 添加API 渠道
进入 渠道 → 添加新的渠道
- 类型:添加
NVIDIA模型,选择OpenAI 兼容 - 名称:随便写一个
- 分组:默认
- BaseURL:使用NVIDIA接口地址
https://integrate.api.nvidia.com/v1 - 模型:去NVIDIA官网选择几个需要的模型
- 模型重定向:这里是一个模型ID的转换,比如我这里模型
minimax-m2.1,但在NVIDIA里叫minimaxai/minimax-m2.1,就如下图这样配置。这样就可以把不在厂商模型ID统一调用。

添加好后点测试,测试配置有没有问题。

4. 创建访问令牌
进入 令牌 → 添加新的令牌
- 名称:随便写一个
- 模型范围:把前面加的模型全添加上
- IP限制:空为不限制,我这是内网使用,用用了192.168.1.0/24网段
- 不设置过期时间和无限额度

添加后,回到令牌页面,复制密钥

5. 在OpenClaw中配置
回到OpenClaw配置/root/.openclaw/openclaw.json中,添加模型,再把模型配置上
"baseUrl": "https://your-domain.com",
"apiKey": "sk-上面令牌复制的Key",
完整配置:
"models": {
"mode": "merge",
"providers": {
"zngw": {
"baseUrl": "https://your-domain.com/v1",
"apiKey": "sk-上面令牌复制的Key",
"api": "openai-completions",
"models": [
{
"id": "minimax-m2.1",
"name": "Minimax m2",
"reasoning": false,
"input": [
"text"
],
"contextWindow": 32768,
"maxTokens": 8192
},
{
"id": "deepseek-v3.2",
"name": "deepseek v3.2",
"reasoning": false,
"input": [
"text"
],
"contextWindow": 32768,
"maxTokens": 8192
},
{
"id": "glm5",
"name": "glm5",
"reasoning": false,
"input": [
"text"
],
"contextWindow": 32768,
"maxTokens": 16384
},
{
"id": "qwen3-coder",
"name": "qwen3 coder480b",
"reasoning": false,
"input": [
"text"
],
"contextWindow": 32768,
"maxTokens": 16000
},
{
"id": "kimi-k2.5",
"name": "kimi k2.5",
"reasoning": false,
"input": [
"text"
],
"contextWindow": 32768,
"maxTokens": 16000
}
]
}
}
}
使用openclaw models status --probe测试模型是否成功

评论区