Feat : Gitbook
This commit is contained in:
473
gitbook/content/zh-CN/deployment/cloud.md
Normal file
473
gitbook/content/zh-CN/deployment/cloud.md
Normal file
@@ -0,0 +1,473 @@
|
||||
# ☁️ 云端部署
|
||||
|
||||
将 9Router 部署到 VPS 或 Docker,实现远程访问和生产使用。
|
||||
|
||||
---
|
||||
|
||||
## 🖥️ VPS 部署
|
||||
|
||||
### 前置要求
|
||||
|
||||
- Ubuntu 20.04+ 或类似 Linux 发行版
|
||||
- Node.js 20+
|
||||
- Git
|
||||
- root 或 sudo 权限
|
||||
|
||||
### 步骤 1:克隆仓库
|
||||
|
||||
```bash
|
||||
git clone https://github.com/decolua/9router.git
|
||||
cd 9router/app
|
||||
```
|
||||
|
||||
### 步骤 2:安装依赖
|
||||
|
||||
```bash
|
||||
npm install
|
||||
```
|
||||
|
||||
### 步骤 3:构建应用
|
||||
|
||||
```bash
|
||||
npm run build
|
||||
```
|
||||
|
||||
### 步骤 4:配置环境变量
|
||||
|
||||
创建 `.env` 文件或导出变量:
|
||||
|
||||
```bash
|
||||
export JWT_SECRET="your-secure-secret-change-this-to-random-string"
|
||||
export INITIAL_PASSWORD="your-secure-password"
|
||||
export DATA_DIR="/var/lib/9router"
|
||||
export NODE_ENV="production"
|
||||
```
|
||||
|
||||
**环境变量:**
|
||||
|
||||
| 变量 | 默认值 | 说明 |
|
||||
|----------|---------|-------------|
|
||||
| `JWT_SECRET` | 自动生成 | **生产环境必须修改!** 用于 JWT token 签名 |
|
||||
| `INITIAL_PASSWORD` | `123456` | 仪表盘登录密码 |
|
||||
| `DATA_DIR` | `~/.9router` | 数据库与数据存储路径 |
|
||||
| `NODE_ENV` | `development` | 部署时设为 `production` |
|
||||
| `ENABLE_REQUEST_LOGS` | `false` | 启用 debug 请求/响应日志 |
|
||||
|
||||
### 步骤 5:创建数据目录
|
||||
|
||||
```bash
|
||||
sudo mkdir -p /var/lib/9router
|
||||
sudo chown $USER:$USER /var/lib/9router
|
||||
```
|
||||
|
||||
### 步骤 6:启动应用
|
||||
|
||||
```bash
|
||||
npm run start
|
||||
```
|
||||
|
||||
### 步骤 7:用 PM2 部署到生产环境
|
||||
|
||||
PM2 让应用持续运行,崩溃时自动重启:
|
||||
|
||||
```bash
|
||||
# 全局安装 PM2
|
||||
npm install -g pm2
|
||||
|
||||
# 用 PM2 启动 9Router
|
||||
pm2 start npm --name 9router -- start
|
||||
|
||||
# 保存 PM2 配置
|
||||
pm2 save
|
||||
|
||||
# 设置开机自启
|
||||
pm2 startup
|
||||
# 按上一条命令打印的提示执行
|
||||
```
|
||||
|
||||
**PM2 管理命令:**
|
||||
|
||||
```bash
|
||||
# 查看日志
|
||||
pm2 logs 9router
|
||||
|
||||
# 重启应用
|
||||
pm2 restart 9router
|
||||
|
||||
# 停止应用
|
||||
pm2 stop 9router
|
||||
|
||||
# 查看状态
|
||||
pm2 status
|
||||
|
||||
# 监控资源
|
||||
pm2 monit
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🐳 Docker 部署
|
||||
|
||||
### 方式 1:使用 Dockerfile
|
||||
|
||||
在 `app` 目录中创建 `Dockerfile`:
|
||||
|
||||
```dockerfile
|
||||
FROM node:20-alpine
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
# Copy package files
|
||||
COPY package*.json ./
|
||||
|
||||
# Install dependencies
|
||||
RUN npm ci --only=production
|
||||
|
||||
# Copy application files
|
||||
COPY . .
|
||||
|
||||
# Build application
|
||||
RUN npm run build
|
||||
|
||||
# Expose ports
|
||||
EXPOSE 3000 20128
|
||||
|
||||
# Set environment variables
|
||||
ENV NODE_ENV=production
|
||||
ENV DATA_DIR=/app/data
|
||||
|
||||
# Create data directory
|
||||
RUN mkdir -p /app/data
|
||||
|
||||
# Start application
|
||||
CMD ["npm", "run", "start"]
|
||||
```
|
||||
|
||||
**构建并运行:**
|
||||
|
||||
```bash
|
||||
# 构建镜像
|
||||
docker build -t 9router .
|
||||
|
||||
# 运行容器
|
||||
docker run -d \
|
||||
--name 9router \
|
||||
-p 3000:3000 \
|
||||
-p 20128:20128 \
|
||||
-e JWT_SECRET="your-secure-secret-change-this" \
|
||||
-e INITIAL_PASSWORD="your-secure-password" \
|
||||
-v 9router-data:/app/data \
|
||||
9router
|
||||
```
|
||||
|
||||
### 方式 2:Docker Compose
|
||||
|
||||
创建 `docker-compose.yml`:
|
||||
|
||||
```yaml
|
||||
version: '3.8'
|
||||
|
||||
services:
|
||||
9router:
|
||||
build: .
|
||||
container_name: 9router
|
||||
ports:
|
||||
- "3000:3000"
|
||||
- "20128:20128"
|
||||
environment:
|
||||
- NODE_ENV=production
|
||||
- JWT_SECRET=your-secure-secret-change-this
|
||||
- INITIAL_PASSWORD=your-secure-password
|
||||
- DATA_DIR=/app/data
|
||||
volumes:
|
||||
- 9router-data:/app/data
|
||||
restart: unless-stopped
|
||||
|
||||
volumes:
|
||||
9router-data:
|
||||
```
|
||||
|
||||
**使用 Docker Compose 运行:**
|
||||
|
||||
```bash
|
||||
# 启动服务
|
||||
docker-compose up -d
|
||||
|
||||
# 查看日志
|
||||
docker-compose logs -f
|
||||
|
||||
# 停止服务
|
||||
docker-compose down
|
||||
|
||||
# 重新构建并重启
|
||||
docker-compose up -d --build
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🌐 Nginx 反向代理
|
||||
|
||||
### 为什么使用 Nginx?
|
||||
|
||||
- SSL/TLS 终止
|
||||
- 域名映射
|
||||
- 负载均衡
|
||||
- 更好的安全性
|
||||
|
||||
### 步骤 1:安装 Nginx
|
||||
|
||||
```bash
|
||||
sudo apt update
|
||||
sudo apt install nginx
|
||||
```
|
||||
|
||||
### 步骤 2:配置 Nginx
|
||||
|
||||
创建 `/etc/nginx/sites-available/9router`:
|
||||
|
||||
```nginx
|
||||
server {
|
||||
listen 80;
|
||||
server_name your-domain.com;
|
||||
|
||||
# Redirect HTTP to HTTPS
|
||||
return 301 https://$server_name$request_uri;
|
||||
}
|
||||
|
||||
server {
|
||||
listen 443 ssl http2;
|
||||
server_name your-domain.com;
|
||||
|
||||
# SSL certificates (use certbot to generate)
|
||||
ssl_certificate /etc/letsencrypt/live/your-domain.com/fullchain.pem;
|
||||
ssl_certificate_key /etc/letsencrypt/live/your-domain.com/privkey.pem;
|
||||
|
||||
# SSL configuration
|
||||
ssl_protocols TLSv1.2 TLSv1.3;
|
||||
ssl_ciphers HIGH:!aNULL:!MD5;
|
||||
ssl_prefer_server_ciphers on;
|
||||
|
||||
# Proxy to 9Router
|
||||
location / {
|
||||
proxy_pass http://localhost:3000;
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection 'upgrade';
|
||||
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;
|
||||
proxy_cache_bypass $http_upgrade;
|
||||
|
||||
# SSE support - CRITICAL for streaming
|
||||
proxy_buffering off;
|
||||
proxy_read_timeout 86400;
|
||||
}
|
||||
|
||||
# API endpoint
|
||||
location /v1 {
|
||||
proxy_pass http://localhost:20128;
|
||||
proxy_http_version 1.1;
|
||||
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;
|
||||
|
||||
# SSE support - CRITICAL for streaming
|
||||
proxy_buffering off;
|
||||
proxy_read_timeout 86400;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 步骤 3:启用站点
|
||||
|
||||
```bash
|
||||
# 创建软链接
|
||||
sudo ln -s /etc/nginx/sites-available/9router /etc/nginx/sites-enabled/
|
||||
|
||||
# 测试配置
|
||||
sudo nginx -t
|
||||
|
||||
# 重新加载 Nginx
|
||||
sudo systemctl reload nginx
|
||||
```
|
||||
|
||||
### 步骤 4:使用 Let's Encrypt 配置 SSL
|
||||
|
||||
```bash
|
||||
# 安装 certbot
|
||||
sudo apt install certbot python3-certbot-nginx
|
||||
|
||||
# 获取 SSL 证书
|
||||
sudo certbot --nginx -d your-domain.com
|
||||
|
||||
# 自动续期已自动配置
|
||||
# 测试续期
|
||||
sudo certbot renew --dry-run
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔒 安全注意事项
|
||||
|
||||
### 1. 修改默认凭据
|
||||
|
||||
**关键:** 部署前修改 `JWT_SECRET` 和 `INITIAL_PASSWORD`:
|
||||
|
||||
```bash
|
||||
# 生成安全的 JWT secret
|
||||
openssl rand -base64 32
|
||||
|
||||
# 将该值用于 JWT_SECRET
|
||||
export JWT_SECRET="generated-secret-here"
|
||||
```
|
||||
|
||||
### 2. 防火墙配置
|
||||
|
||||
```bash
|
||||
# 允许 SSH
|
||||
sudo ufw allow 22/tcp
|
||||
|
||||
# 允许 HTTP/HTTPS(若使用 Nginx)
|
||||
sudo ufw allow 80/tcp
|
||||
sudo ufw allow 443/tcp
|
||||
|
||||
# 若不使用反向代理,放开 9Router 端口
|
||||
sudo ufw allow 3000/tcp
|
||||
sudo ufw allow 20128/tcp
|
||||
|
||||
# 启用防火墙
|
||||
sudo ufw enable
|
||||
```
|
||||
|
||||
### 3. 限制仪表盘访问
|
||||
|
||||
如果只需要 API 访问,可限制仪表盘端口:
|
||||
|
||||
```bash
|
||||
# 仅允许 localhost 访问仪表盘
|
||||
sudo ufw deny 3000/tcp
|
||||
```
|
||||
|
||||
通过 SSH 隧道访问仪表盘:
|
||||
|
||||
```bash
|
||||
ssh -L 3000:localhost:3000 user@your-server.com
|
||||
# 然后在浏览器打开 http://localhost:3000
|
||||
```
|
||||
|
||||
### 4. 定期更新
|
||||
|
||||
```bash
|
||||
# 更新系统包
|
||||
sudo apt update && sudo apt upgrade -y
|
||||
|
||||
# 更新 9Router
|
||||
cd /path/to/9router/app
|
||||
git pull
|
||||
npm install
|
||||
npm run build
|
||||
pm2 restart 9router
|
||||
```
|
||||
|
||||
### 5. 备份策略
|
||||
|
||||
```bash
|
||||
# 备份数据目录
|
||||
tar -czf 9router-backup-$(date +%Y%m%d).tar.gz /var/lib/9router
|
||||
|
||||
# 每日自动备份(加入 crontab)
|
||||
0 2 * * * tar -czf /backups/9router-$(date +\%Y\%m\%d).tar.gz /var/lib/9router
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📊 监控
|
||||
|
||||
### 检查应用状态
|
||||
|
||||
```bash
|
||||
# PM2 状态
|
||||
pm2 status
|
||||
|
||||
# 查看日志
|
||||
pm2 logs 9router --lines 100
|
||||
|
||||
# 监控资源
|
||||
pm2 monit
|
||||
```
|
||||
|
||||
### Nginx 日志
|
||||
|
||||
```bash
|
||||
# 访问日志
|
||||
sudo tail -f /var/log/nginx/access.log
|
||||
|
||||
# 错误日志
|
||||
sudo tail -f /var/log/nginx/error.log
|
||||
```
|
||||
|
||||
### 系统资源
|
||||
|
||||
```bash
|
||||
# CPU 和内存使用
|
||||
htop
|
||||
|
||||
# 磁盘使用
|
||||
df -h
|
||||
|
||||
# 网络连接
|
||||
netstat -tulpn | grep -E '3000|20128'
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🚨 故障排除
|
||||
|
||||
### 应用无法启动
|
||||
|
||||
```bash
|
||||
# 查看日志
|
||||
pm2 logs 9router
|
||||
|
||||
# 检查端口是否被占用
|
||||
sudo lsof -i :3000
|
||||
sudo lsof -i :20128
|
||||
|
||||
# 检查环境变量
|
||||
pm2 env 9router
|
||||
```
|
||||
|
||||
### Nginx 502 Bad Gateway
|
||||
|
||||
```bash
|
||||
# 检查 9Router 是否运行
|
||||
pm2 status
|
||||
|
||||
# 查看 Nginx 错误日志
|
||||
sudo tail -f /var/log/nginx/error.log
|
||||
|
||||
# 测试 Nginx 配置
|
||||
sudo nginx -t
|
||||
```
|
||||
|
||||
### SSE 流式输出无法工作
|
||||
|
||||
确保 Nginx 配置中已设置 `proxy_buffering off` 以支持 SSE。
|
||||
|
||||
### 权限被拒绝错误
|
||||
|
||||
```bash
|
||||
# 修复数据目录权限
|
||||
sudo chown -R $USER:$USER /var/lib/9router
|
||||
chmod 755 /var/lib/9router
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔗 下一步
|
||||
|
||||
- [连接提供商](/providers/subscription.md)
|
||||
- [配置组合](/features/combos.md)
|
||||
- [集成工具](/integration/cursor.md)
|
||||
164
gitbook/content/zh-CN/deployment/localhost.md
Normal file
164
gitbook/content/zh-CN/deployment/localhost.md
Normal file
@@ -0,0 +1,164 @@
|
||||
# 🏠 本地部署
|
||||
|
||||
在本机运行 9Router,用于开发和个人使用。
|
||||
|
||||
---
|
||||
|
||||
## 📦 安装
|
||||
|
||||
通过 npm 全局安装 9Router:
|
||||
|
||||
```bash
|
||||
npm install -g 9router
|
||||
```
|
||||
|
||||
**要求:**
|
||||
- Node.js 20 或更高
|
||||
- npm 9 或更高
|
||||
|
||||
---
|
||||
|
||||
## 🚀 启动服务器
|
||||
|
||||
一条命令启动 9Router:
|
||||
|
||||
```bash
|
||||
9router
|
||||
```
|
||||
|
||||
仪表盘会自动在浏览器中打开,地址为 `http://localhost:3000`
|
||||
|
||||
**默认配置:**
|
||||
- **仪表盘**: `http://localhost:3000`
|
||||
- **API Endpoint**: `http://localhost:20128/v1`
|
||||
- **数据目录**: `~/.9router`
|
||||
|
||||
---
|
||||
|
||||
## 🔧 配置
|
||||
|
||||
### 自定义数据目录
|
||||
|
||||
通过环境变量设置自定义数据目录:
|
||||
|
||||
```bash
|
||||
DATA_DIR=/path/to/data 9router
|
||||
```
|
||||
|
||||
### 自定义端口
|
||||
|
||||
API 端口(20128)和仪表盘端口(3000)在应用中配置。如需修改,你需要改源码或使用支持的环境变量(如果有)。
|
||||
|
||||
---
|
||||
|
||||
## 🛑 停止服务器
|
||||
|
||||
在运行 9Router 的终端中按 `Ctrl+C`。
|
||||
|
||||
```bash
|
||||
# 在运行 9router 的终端中
|
||||
^C # 按 Ctrl+C
|
||||
```
|
||||
|
||||
服务器会优雅关闭并保存所有数据。
|
||||
|
||||
---
|
||||
|
||||
## 🔄 重启服务器
|
||||
|
||||
再次运行启动命令即可:
|
||||
|
||||
```bash
|
||||
9router
|
||||
```
|
||||
|
||||
所有配置、API keys 和组合都保存在数据目录中。
|
||||
|
||||
---
|
||||
|
||||
## 📊 更新 9Router
|
||||
|
||||
更新到最新版本:
|
||||
|
||||
```bash
|
||||
npm update -g 9router
|
||||
```
|
||||
|
||||
查看当前版本:
|
||||
|
||||
```bash
|
||||
npm list -g 9router
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔍 故障排除
|
||||
|
||||
### 端口已被占用
|
||||
|
||||
如果端口 20128 或 3000 已被占用:
|
||||
|
||||
```bash
|
||||
# 找到使用该端口的进程(macOS/Linux)
|
||||
lsof -i :20128
|
||||
lsof -i :3000
|
||||
|
||||
# 杀掉进程
|
||||
kill -9 <PID>
|
||||
```
|
||||
|
||||
### 权限错误
|
||||
|
||||
安装过程中遇到权限错误:
|
||||
|
||||
```bash
|
||||
# 使用 sudo(不推荐)
|
||||
sudo npm install -g 9router
|
||||
|
||||
# 或修复 npm 权限(推荐)
|
||||
mkdir ~/.npm-global
|
||||
npm config set prefix '~/.npm-global'
|
||||
echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc
|
||||
source ~/.bashrc
|
||||
```
|
||||
|
||||
### 数据目录问题
|
||||
|
||||
数据目录无法访问:
|
||||
|
||||
```bash
|
||||
# 检查权限
|
||||
ls -la ~/.9router
|
||||
|
||||
# 修复权限
|
||||
chmod 755 ~/.9router
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📁 数据目录结构
|
||||
|
||||
```
|
||||
~/.9router/
|
||||
├── db.json # 主数据库(提供商、组合、设置)
|
||||
├── logs/ # 应用日志
|
||||
└── cache/ # 临时缓存文件
|
||||
```
|
||||
|
||||
**备份数据:**
|
||||
|
||||
```bash
|
||||
# 备份
|
||||
cp -r ~/.9router ~/.9router.backup
|
||||
|
||||
# 恢复
|
||||
cp -r ~/.9router.backup ~/.9router
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔗 下一步
|
||||
|
||||
- [连接提供商](/providers/subscription.md)
|
||||
- [创建组合](/features/combos.md)
|
||||
- [集成 CLI 工具](/integration/cursor.md)
|
||||
387
gitbook/content/zh-CN/faq.md
Normal file
387
gitbook/content/zh-CN/faq.md
Normal file
@@ -0,0 +1,387 @@
|
||||
# 常见问题
|
||||
|
||||
关于 9Router 的常见问题。
|
||||
|
||||
---
|
||||
|
||||
## 什么是 9Router?
|
||||
|
||||
**9Router 是一款 AI 模型路由工具,能够最大化你的订阅价值并最小化成本。**
|
||||
|
||||
它使用 3 层回退系统在多个 AI 提供商之间智能路由请求:
|
||||
1. **订阅层** - 充分利用你已付费的 Claude Code、Codex、Gemini 配额
|
||||
2. **低价层** - 超低价替代方案(每 1M tokens $0.20-$0.60)
|
||||
3. **免费层** - 无限免费模型应急备用
|
||||
|
||||
**核心优势:**
|
||||
- 不再浪费订阅配额
|
||||
- 配额耗尽时自动回退
|
||||
- 实时配额跟踪
|
||||
- 比直接使用 API 节省 90% 成本
|
||||
|
||||
---
|
||||
|
||||
## 价格是如何计算的?
|
||||
|
||||
**9Router 采用三层定价策略:**
|
||||
|
||||
### 第 1 层:订阅(优先使用)
|
||||
- **Claude Code**(Pro/Max):$20-100/月 - 5 小时 + 每周配额
|
||||
- **OpenAI Codex**(Plus/Pro):$20-200/月 - 5 小时 + 每周配额
|
||||
- **Gemini CLI**:免费 - 每月 180K 次补全 + 每天 1K
|
||||
- **GitHub Copilot**:$10-19/月 - 每月重置
|
||||
- **Antigravity**:免费 - 类似 Gemini
|
||||
|
||||
**目标:** 在配额重置前用掉每一点!
|
||||
|
||||
### 第 2 层:低价(备用)
|
||||
- **GLM-4.7**:每 1M tokens $0.60/$2.20 - 每日 10AM 重置
|
||||
- **MiniMax M2.1**:每 1M tokens $0.20/$1.00 - 5 小时滚动
|
||||
- **Kimi K2**:$9/月固定(10M tokens)
|
||||
|
||||
**目标:** 比 ChatGPT API(每 1M $20)便宜 90%!
|
||||
|
||||
### 第 3 层:免费(应急)
|
||||
- **iFlow**:8 个免费模型(Kimi K2、Qwen3、GLM、MiniMax...)
|
||||
- **Qwen**:3 个免费模型(Qwen3 Coder Plus/Flash、Vision)
|
||||
- **Kiro**:2 个免费模型(Claude Sonnet 4.5、Haiku 4.5)
|
||||
|
||||
**目标:** 当其他配额都受限时零成本回退!
|
||||
|
||||
---
|
||||
|
||||
## 9Router 是免费的吗?
|
||||
|
||||
**是的,9Router 本身 100% 免费且开源。**
|
||||
|
||||
**可用的免费层提供商:**
|
||||
- **Gemini CLI** - 每月 180K 次补全(免费 Google 账户)
|
||||
- **iFlow** - 8 个无限模型(免费 OAuth)
|
||||
- **Qwen** - 3 个无限模型(免费 OAuth)
|
||||
- **Kiro** - Claude Sonnet/Haiku(免费 AWS Builder ID)
|
||||
|
||||
**只用免费层提供商,就可以永久免费编码!**
|
||||
|
||||
**可选的付费提供商:**
|
||||
- 你可能已有的订阅服务(Claude Code、Codex、Copilot)
|
||||
- 超低价替代方案(每 1M tokens $0.20-$0.60)
|
||||
|
||||
---
|
||||
|
||||
## 支持哪些提供商?
|
||||
|
||||
### 订阅型提供商
|
||||
- **Claude Code**(Pro/Max)- Claude 4.5 Opus/Sonnet/Haiku
|
||||
- **OpenAI Codex**(Plus/Pro)- GPT 5.2 Codex、GPT 5.1 Codex Max
|
||||
- **Gemini CLI**(免费)- Gemini 3 Flash/Pro、2.5 Pro/Flash
|
||||
- **GitHub Copilot** - GPT-5、Claude 4.5、Gemini 3
|
||||
- **Antigravity**(Google)- Gemini 3 Pro、Claude Sonnet 4.5
|
||||
|
||||
### 低价提供商
|
||||
- **GLM**(Zhipu AI)- GLM 4.7、GLM 4.6V Vision
|
||||
- **MiniMax** - MiniMax M2.1
|
||||
- **Kimi**(Moonshot AI)- Kimi Latest
|
||||
- **OpenRouter** - 透传到任意 OpenRouter 模型
|
||||
|
||||
### 免费提供商
|
||||
- **iFlow** - 8 个模型(Kimi K2、Qwen3、GLM、MiniMax、DeepSeek...)
|
||||
- **Qwen** - 3 个模型(Qwen3 Coder Plus/Flash、Vision)
|
||||
- **Kiro** - 2 个模型(Claude Sonnet 4.5、Haiku 4.5)
|
||||
|
||||
**合计:15+ 个提供商,50+ 个模型**
|
||||
|
||||
详情请见 [提供商文档](providers/subscription.md)。
|
||||
|
||||
---
|
||||
|
||||
## 可以同时使用多个提供商吗?
|
||||
|
||||
**可以!这正是 9Router 的核心功能。**
|
||||
|
||||
**通过组合(Combos),你可以把多个提供商串联起来实现自动回退:**
|
||||
|
||||
```
|
||||
示例组合: "premium-coding"
|
||||
1. cc/claude-opus-4-5(订阅主力)
|
||||
2. glm/glm-4.7(低价备用)
|
||||
3. if/kimi-k2(免费应急)
|
||||
|
||||
→ 配额耗尽时自动切换
|
||||
→ 永不停止编码
|
||||
→ 几乎零额外成本
|
||||
```
|
||||
|
||||
**创建组合的方法:**
|
||||
```
|
||||
仪表盘 → 组合 → 新建
|
||||
→ 按优先级添加模型
|
||||
→ CLI 中使用组合名: "premium-coding"
|
||||
```
|
||||
|
||||
**优势:**
|
||||
- 配额耗尽时零停机
|
||||
- 自动成本优化
|
||||
- 所有工具使用同一个模型名
|
||||
|
||||
详情见 [组合文档](features/combos.md)。
|
||||
|
||||
---
|
||||
|
||||
## 配额跟踪是如何工作的?
|
||||
|
||||
**9Router 为所有提供商提供实时配额跟踪:**
|
||||
|
||||
**功能:**
|
||||
- **Token 消耗** - 每次请求的输入/输出 tokens
|
||||
- **重置倒计时** - 配额刷新前剩余时间
|
||||
- **使用统计** - 每日/每周/每月报告
|
||||
- **成本估算** - 预计支出(付费层)
|
||||
- **配额告警** - 配额不足时通知
|
||||
|
||||
**配额类型:**
|
||||
- **5 小时滚动** - Claude Code、Codex、MiniMax
|
||||
- **每日重置** - Gemini CLI(每日 1K)、GLM(10AM)
|
||||
- **每周重置** - Claude Code、Codex(额外配额)
|
||||
- **每月重置** - Gemini CLI(180K)、GitHub Copilot(1 日)
|
||||
|
||||
**查看配额:**
|
||||
```
|
||||
仪表盘 → 提供商 → 配额跟踪
|
||||
→ 实时使用情况 + 重置倒计时
|
||||
```
|
||||
|
||||
详情见 [配额跟踪文档](features/quota-tracking.md)。
|
||||
|
||||
---
|
||||
|
||||
## 9Router 能配合 Cursor 使用吗?
|
||||
|
||||
**可以,但 Cursor 需要使用云端 endpoint。**
|
||||
|
||||
**问题:** Cursor IDE 不支持 localhost endpoint。
|
||||
|
||||
**解决方案:** 使用 9Router 云端部署:
|
||||
|
||||
```
|
||||
Cursor Settings → Models → Advanced:
|
||||
OpenAI API Base URL: https://9router.com/v1
|
||||
OpenAI API Key: [从仪表盘获取]
|
||||
Model: cc/claude-opus-4-5-20251101
|
||||
```
|
||||
|
||||
**替代方案:** 在 VPS 上自托管,使用公开域名:
|
||||
```bash
|
||||
# 部署到 VPS
|
||||
git clone https://github.com/decolua/9router.git
|
||||
cd 9router/app
|
||||
npm install && npm run build
|
||||
npm start
|
||||
|
||||
# 配置 Nginx 反向代理
|
||||
# 将 Cursor 指向: https://your-domain.com/v1
|
||||
```
|
||||
|
||||
**其他 CLI 工具支持 localhost:**
|
||||
- Cline ✅
|
||||
- Claude Desktop ✅
|
||||
- Codex CLI ✅
|
||||
- Continue ✅
|
||||
- RooCode ✅
|
||||
|
||||
详情见 [Cursor 集成指南](integration/cursor.md)。
|
||||
|
||||
---
|
||||
|
||||
## 可以自托管 9Router 吗?
|
||||
|
||||
**可以!9Router 支持多种部署方式:**
|
||||
|
||||
### Localhost(默认)
|
||||
```bash
|
||||
npm install -g 9router
|
||||
9router
|
||||
→ 仪表盘: http://localhost:3000
|
||||
→ API: http://localhost:20128/v1
|
||||
```
|
||||
|
||||
### VPS/云
|
||||
```bash
|
||||
git clone https://github.com/decolua/9router.git
|
||||
cd 9router/app
|
||||
npm install && npm run build
|
||||
|
||||
export JWT_SECRET="your-secure-secret"
|
||||
export INITIAL_PASSWORD="your-password"
|
||||
export NODE_ENV="production"
|
||||
|
||||
npm start
|
||||
```
|
||||
|
||||
### Docker
|
||||
```bash
|
||||
docker build -t 9router .
|
||||
docker run -d \
|
||||
-p 3000:3000 \
|
||||
-e JWT_SECRET="your-secret" \
|
||||
-v 9router-data:/app/data \
|
||||
9router
|
||||
```
|
||||
|
||||
### Cloudflare Workers
|
||||
```bash
|
||||
cd 9router/app
|
||||
npm run deploy:cloudflare
|
||||
```
|
||||
|
||||
**环境变量:**
|
||||
- `JWT_SECRET` - **生产环境必须修改!**
|
||||
- `DATA_DIR` - 数据库存储路径(默认:`~/.9router`)
|
||||
- `INITIAL_PASSWORD` - 仪表盘登录(默认:`123456`)
|
||||
- `NODE_ENV` - 部署时设为 `production`
|
||||
|
||||
详情见 [部署指南](getting-started/installation.md#deployment)。
|
||||
|
||||
---
|
||||
|
||||
## 我的数据安全吗?
|
||||
|
||||
**是的,9Router 优先考虑安全和隐私:**
|
||||
|
||||
**本地存储:**
|
||||
- 所有数据存储在本地 `~/.9router`(或自定义 `DATA_DIR`)
|
||||
- 不会发送数据到 9Router 服务器
|
||||
- OAuth tokens 使用 JWT 加密
|
||||
|
||||
**无遥测:**
|
||||
- 不跟踪使用情况
|
||||
- 不分析
|
||||
- 不向外回连
|
||||
|
||||
**开源:**
|
||||
- GitHub 上提供完整源码
|
||||
- 可自行审计安全性
|
||||
- 社区评审
|
||||
|
||||
**最佳实践:**
|
||||
- 生产环境修改 `JWT_SECRET`
|
||||
- 使用强 `INITIAL_PASSWORD`
|
||||
- 云端部署启用 HTTPS
|
||||
- 定期轮换 API keys
|
||||
|
||||
**9Router 存储的内容:**
|
||||
- 提供商 OAuth tokens(加密)
|
||||
- API keys(加密)
|
||||
- 使用统计(仅本地)
|
||||
- 组合配置
|
||||
|
||||
**9Router 不存储的内容:**
|
||||
- 你的 prompt 或响应
|
||||
- 你生成的代码
|
||||
- 个人信息
|
||||
|
||||
---
|
||||
|
||||
## 如何更新 9Router?
|
||||
|
||||
**更新方式取决于安装类型:**
|
||||
|
||||
### 全局 NPM 安装
|
||||
```bash
|
||||
npm update -g 9router
|
||||
```
|
||||
|
||||
### 本地安装
|
||||
```bash
|
||||
cd 9router/app
|
||||
git pull origin main
|
||||
npm install
|
||||
npm run build
|
||||
npm start
|
||||
```
|
||||
|
||||
### Docker
|
||||
```bash
|
||||
docker pull 9router:latest
|
||||
docker stop 9router
|
||||
docker rm 9router
|
||||
docker run -d \
|
||||
-p 3000:3000 \
|
||||
-v 9router-data:/app/data \
|
||||
9router:latest
|
||||
```
|
||||
|
||||
**查看版本:**
|
||||
```bash
|
||||
9router --version
|
||||
```
|
||||
|
||||
**破坏性变更:**
|
||||
- 查看 [CHANGELOG.md](https://github.com/decolua/9router/blob/main/CHANGELOG.md)
|
||||
- 大版本更新前备份 `~/.9router`
|
||||
- 阅读大版本的迁移指南
|
||||
|
||||
---
|
||||
|
||||
## 如何贡献?
|
||||
|
||||
**欢迎贡献!**
|
||||
|
||||
### 贡献方式:
|
||||
|
||||
1. **报告 bug:**
|
||||
- [GitHub Issues](https://github.com/decolua/9router/issues)
|
||||
- 附上错误日志、复现步骤
|
||||
|
||||
2. **功能请求:**
|
||||
- [GitHub Discussions](https://github.com/decolua/9router/discussions)
|
||||
- 描述使用场景和价值
|
||||
|
||||
3. **提交代码:**
|
||||
```bash
|
||||
# Fork 仓库
|
||||
git clone https://github.com/YOUR_USERNAME/9router.git
|
||||
cd 9router
|
||||
|
||||
# 创建分支
|
||||
git checkout -b feature/your-feature
|
||||
|
||||
# 修改代码
|
||||
npm install
|
||||
npm run dev
|
||||
|
||||
# 测试
|
||||
npm test
|
||||
|
||||
# 提交并推送
|
||||
git add .
|
||||
git commit -m "Add your feature"
|
||||
git push origin feature/your-feature
|
||||
|
||||
# 在 GitHub 上创建 Pull Request
|
||||
```
|
||||
|
||||
4. **改进文档:**
|
||||
- 修正错别字、添加示例
|
||||
- 翻译到其他语言
|
||||
- 编写教程
|
||||
|
||||
5. **添加提供商:**
|
||||
- 实现新的 provider adapter
|
||||
- 参考 `app/lib/providers/` 中的示例
|
||||
|
||||
**贡献指南:**
|
||||
- 遵循现有代码风格
|
||||
- 为新功能添加测试
|
||||
- 更新文档
|
||||
- 提交保持原子化、描述清晰
|
||||
|
||||
详情见 [CONTRIBUTING.md](https://github.com/decolua/9router/blob/main/CONTRIBUTING.md)。
|
||||
|
||||
---
|
||||
|
||||
## 需要更多帮助?
|
||||
|
||||
- **文档:** [9router.com/docs](https://9router.com/docs)
|
||||
- **GitHub:** [github.com/decolua/9router](https://github.com/decolua/9router)
|
||||
- **Issues:** [github.com/decolua/9router/issues](https://github.com/decolua/9router/issues)
|
||||
- **故障排除:** [troubleshooting.md](troubleshooting.md)
|
||||
537
gitbook/content/zh-CN/features/combos.md
Normal file
537
gitbook/content/zh-CN/features/combos.md
Normal file
@@ -0,0 +1,537 @@
|
||||
# 组合(Combos)- 自定义回退链
|
||||
|
||||
创建自定义的模型组合并自动回退。组合让你根据成本、质量和可用性定义自己的路由策略。
|
||||
|
||||
---
|
||||
|
||||
## 什么是组合?
|
||||
|
||||
组合是你在仪表盘中创建的 **自定义回退链**。它不是单一模型,而是定义一组顺序模型,由 9Router 依次尝试。
|
||||
|
||||
**示例:**
|
||||
```
|
||||
组合名: premium-coding
|
||||
模型:
|
||||
1. cc/claude-opus-4-5-20251101 (首选)
|
||||
2. glm/glm-4.7 (#1 配额耗尽时)
|
||||
3. minimax/MiniMax-M2.1 (#2 配额耗尽时)
|
||||
```
|
||||
|
||||
**CLI 中使用:**
|
||||
```
|
||||
Model: premium-coding
|
||||
```
|
||||
|
||||
9Router 会按顺序自动尝试每个模型,直到成功为止。
|
||||
|
||||
---
|
||||
|
||||
## 为什么使用组合?
|
||||
|
||||
### 1. 最大化订阅价值
|
||||
```
|
||||
cc/claude-opus → glm/glm-4.7 → if/kimi-k2-thinking
|
||||
|
||||
→ 先用订阅,低价备用,免费应急
|
||||
→ 充分利用你已付费的订阅
|
||||
```
|
||||
|
||||
### 2. 最小化成本
|
||||
```
|
||||
glm/glm-4.7 → minimax/MiniMax-M2.1 → if/kimi-k2-thinking
|
||||
|
||||
→ 从最便宜的付费选项开始(每 1M $0.60)
|
||||
→ 回退到更便宜的(每 1M $0.20)
|
||||
→ 应急免费层
|
||||
→ 总成本: 约 $5-10/月,而 ChatGPT API 需要 $2000
|
||||
```
|
||||
|
||||
### 3. 保障 24/7 可用
|
||||
```
|
||||
cc/claude-opus → cx/gpt-5.2-codex → glm/glm-4.7 → if/kimi-k2-thinking
|
||||
|
||||
→ 末尾总是放免费层
|
||||
→ 永不耗尽配额
|
||||
→ 随时随地编码
|
||||
```
|
||||
|
||||
### 4. 质量优化
|
||||
```
|
||||
cc/claude-opus-4-5 → cx/gpt-5.2-codex → gc/gemini-3-pro
|
||||
|
||||
→ 优先最好的模型
|
||||
→ 回退到其他高端模型
|
||||
→ 整个回退链保持高质量
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 如何创建组合
|
||||
|
||||
### 步骤 1:打开仪表盘
|
||||
|
||||
```
|
||||
http://localhost:20128
|
||||
→ 用密码登录
|
||||
```
|
||||
|
||||
### 步骤 2:进入组合页面
|
||||
|
||||
```
|
||||
仪表盘 → 组合 → 新建组合
|
||||
```
|
||||
|
||||
### 步骤 3:配置组合
|
||||
|
||||
**组合名:**
|
||||
```
|
||||
premium-coding
|
||||
```
|
||||
|
||||
**描述(可选):**
|
||||
```
|
||||
订阅优先,低价备用,免费应急
|
||||
```
|
||||
|
||||
**选择模型:**
|
||||
```
|
||||
1. cc/claude-opus-4-5-20251101
|
||||
2. glm/glm-4.7
|
||||
3. minimax/MiniMax-M2.1
|
||||
```
|
||||
|
||||
**拖动排序** - 自上而下表示优先级。
|
||||
|
||||
### 步骤 4:保存
|
||||
|
||||
```
|
||||
点击 "Save Combo"
|
||||
→ 组合出现在模型列表中
|
||||
```
|
||||
|
||||
### 步骤 5:在 CLI 中使用
|
||||
|
||||
```
|
||||
Cursor/Cline/任意工具:
|
||||
Model: premium-coding
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 示例组合
|
||||
|
||||
### 示例 1:Premium Coding(订阅 → 低价 → 免费)
|
||||
|
||||
**目标**:最大化订阅价值,最小化额外成本。
|
||||
|
||||
```
|
||||
仪表盘 → 组合 → 新建
|
||||
|
||||
名称: premium-coding
|
||||
模型:
|
||||
1. cc/claude-opus-4-5-20251101
|
||||
2. glm/glm-4.7
|
||||
3. minimax/MiniMax-M2.1
|
||||
```
|
||||
|
||||
**用法:**
|
||||
```
|
||||
Cursor IDE:
|
||||
Model: premium-coding
|
||||
```
|
||||
|
||||
**行为:**
|
||||
```
|
||||
早上(全新配额):
|
||||
请求 → cc/claude-opus-4-5 ✅
|
||||
|
||||
下午(Claude 配额用完):
|
||||
请求 → glm/glm-4.7 ✅ (自动切换)
|
||||
|
||||
晚上(GLM 配额用完):
|
||||
请求 → minimax/MiniMax-M2.1 ✅ (自动切换)
|
||||
```
|
||||
|
||||
**月成本(100M tokens):**
|
||||
```
|
||||
80M 通过 Claude Code: $0(订阅)
|
||||
15M 通过 GLM: $9
|
||||
5M 通过 MiniMax: $1
|
||||
合计: $10 + 你的订阅
|
||||
```
|
||||
|
||||
**节省**:相比 ChatGPT API($2000)约 99%。
|
||||
|
||||
---
|
||||
|
||||
### 示例 2:Budget Combo(低价 → 免费)
|
||||
|
||||
**目标**:最小化成本,免费层作为备用。
|
||||
|
||||
```
|
||||
仪表盘 → 组合 → 新建
|
||||
|
||||
名称: budget-combo
|
||||
模型:
|
||||
1. glm/glm-4.7
|
||||
2. minimax/MiniMax-M2.1
|
||||
3. if/kimi-k2-thinking
|
||||
```
|
||||
|
||||
**用法:**
|
||||
```
|
||||
Cline:
|
||||
Provider: OpenAI Compatible
|
||||
Base URL: http://localhost:20128/v1
|
||||
Model: budget-combo
|
||||
```
|
||||
|
||||
**行为:**
|
||||
```
|
||||
请求 → glm/glm-4.7
|
||||
✅ 每日配额可用 → 使用 GLM(每 1M $0.60)
|
||||
❌ 配额耗尽 → 尝试 MiniMax(每 1M $0.20)
|
||||
❌ MiniMax 配额用完 → 使用 iFlow(免费)
|
||||
```
|
||||
|
||||
**月成本(100M tokens):**
|
||||
```
|
||||
70M 通过 GLM: $42
|
||||
20M 通过 MiniMax: $4
|
||||
10M 通过 iFlow: $0
|
||||
合计: $46,而 ChatGPT API 需 $2000
|
||||
```
|
||||
|
||||
**节省**:97%。
|
||||
|
||||
---
|
||||
|
||||
### 示例 3:Free Combo(零成本)
|
||||
|
||||
**目标**:100% 免费,永不付费。
|
||||
|
||||
```
|
||||
仪表盘 → 组合 → 新建
|
||||
|
||||
名称: free-combo
|
||||
模型:
|
||||
1. if/kimi-k2-thinking
|
||||
2. qw/qwen3-coder-plus
|
||||
3. kr/claude-sonnet-4.5
|
||||
```
|
||||
|
||||
**用法:**
|
||||
```
|
||||
Claude Desktop:
|
||||
Model: free-combo
|
||||
```
|
||||
|
||||
**行为:**
|
||||
```
|
||||
请求 → if/kimi-k2-thinking
|
||||
✅ 可用 → 使用 iFlow
|
||||
❌ 错误 → 尝试 Qwen
|
||||
❌ 错误 → 尝试 Kiro
|
||||
```
|
||||
|
||||
**月成本:**
|
||||
```
|
||||
100M tokens 通过免费提供商: $0
|
||||
合计: 永远 $0
|
||||
```
|
||||
|
||||
**适用场景**:个人项目、学习、试验。
|
||||
|
||||
---
|
||||
|
||||
### 示例 4:Quality First(仅高端模型)
|
||||
|
||||
**目标**:最高质量,无低价回退。
|
||||
|
||||
```
|
||||
仪表盘 → 组合 → 新建
|
||||
|
||||
名称: quality-first
|
||||
模型:
|
||||
1. cc/claude-opus-4-5-20251101
|
||||
2. cx/gpt-5.2-codex
|
||||
3. gc/gemini-3-pro-preview
|
||||
```
|
||||
|
||||
**用法:**
|
||||
```
|
||||
Codex CLI:
|
||||
export OPENAI_BASE_URL="http://localhost:20128"
|
||||
Model: quality-first
|
||||
```
|
||||
|
||||
**行为:**
|
||||
```
|
||||
请求 → cc/claude-opus-4-5
|
||||
❌ 配额用完 → cx/gpt-5.2-codex
|
||||
❌ 配额用完 → gc/gemini-3-pro-preview
|
||||
❌ 全部用完 → 返回错误(无低价回退)
|
||||
```
|
||||
|
||||
**适用场景**:关键生产代码、复杂重构。
|
||||
|
||||
---
|
||||
|
||||
### 示例 5:Multi-Subscription(用足所有订阅)
|
||||
|
||||
**目标**:在产生额外费用前用足所有订阅。
|
||||
|
||||
```
|
||||
仪表盘 → 组合 → 新建
|
||||
|
||||
名称: multi-sub
|
||||
模型:
|
||||
1. gc/gemini-3-flash-preview (每月免费 180K)
|
||||
2. cc/claude-opus-4-5-20251101 (Pro 订阅)
|
||||
3. cx/gpt-5.2-codex (Plus 订阅)
|
||||
4. gh/gpt-5 (Copilot 订阅)
|
||||
5. glm/glm-4.7 (低价备用)
|
||||
6. if/kimi-k2-thinking (免费应急)
|
||||
```
|
||||
|
||||
**月成本(200M tokens):**
|
||||
```
|
||||
50M 通过 Gemini CLI: $0(免费层)
|
||||
80M 通过 Claude Code: $0(订阅)
|
||||
40M 通过 Codex: $0(订阅)
|
||||
20M 通过 Copilot: $0(订阅)
|
||||
8M 通过 GLM: $4.80
|
||||
2M 通过 iFlow: $0
|
||||
合计: $4.80 + 你已有的订阅
|
||||
```
|
||||
|
||||
**结果**:190M tokens 来自订阅,只有 $4.80 额外费用。
|
||||
|
||||
---
|
||||
|
||||
### 示例 6:配额重置优化
|
||||
|
||||
**目标**:根据重置时间分配使用。
|
||||
|
||||
```
|
||||
仪表盘 → 组合 → 新建
|
||||
|
||||
名称: reset-optimized
|
||||
模型:
|
||||
1. cc/claude-opus-4-5 (5h 重置, 早上用)
|
||||
2. gc/gemini-3-flash (每日 1K, 下午用)
|
||||
3. glm/glm-4.7 (每日 10AM 重置, 晚上用)
|
||||
4. minimax/MiniMax-M2.1 (5h 滚动, 夜里用)
|
||||
5. if/kimi-k2-thinking (无限, 应急)
|
||||
```
|
||||
|
||||
**日常安排:**
|
||||
```
|
||||
08:00 - 13:00: Claude Code(全新 5h 配额)
|
||||
13:00 - 18:00: Gemini CLI(每日 1K 配额)
|
||||
18:00 - 22:00: GLM(次日 10AM 重置)
|
||||
22:00 - 08:00: MiniMax(5h 滚动)或 iFlow
|
||||
```
|
||||
|
||||
**结果**:24/7 编码,成本极低。
|
||||
|
||||
---
|
||||
|
||||
## 在 CLI 工具中使用组合
|
||||
|
||||
### Cursor IDE
|
||||
|
||||
```
|
||||
Settings → Models → Advanced:
|
||||
OpenAI API Base URL: http://localhost:20128/v1
|
||||
OpenAI API Key: [从仪表盘获取]
|
||||
Model: premium-coding
|
||||
```
|
||||
|
||||
### Claude Desktop
|
||||
|
||||
编辑 `~/.claude/config.json`:
|
||||
```json
|
||||
{
|
||||
"anthropic_api_base": "http://localhost:20128/v1",
|
||||
"anthropic_api_key": "your-9router-api-key",
|
||||
"model": "budget-combo"
|
||||
}
|
||||
```
|
||||
|
||||
### Codex CLI
|
||||
|
||||
```bash
|
||||
export OPENAI_BASE_URL="http://localhost:20128"
|
||||
export OPENAI_API_KEY="your-9router-api-key"
|
||||
|
||||
codex --model quality-first "your prompt"
|
||||
```
|
||||
|
||||
### Cline / Continue / RooCode
|
||||
|
||||
```
|
||||
Provider: OpenAI Compatible
|
||||
Base URL: http://localhost:20128/v1
|
||||
API Key: [从仪表盘获取]
|
||||
Model: free-combo
|
||||
```
|
||||
|
||||
### API 请求
|
||||
|
||||
```bash
|
||||
curl http://localhost:20128/v1/chat/completions \
|
||||
-H "Authorization: Bearer your-api-key" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{
|
||||
"model": "premium-coding",
|
||||
"messages": [
|
||||
{"role": "user", "content": "Write a function to..."}
|
||||
],
|
||||
"stream": true
|
||||
}'
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 最佳实践
|
||||
|
||||
### 1. 总是包含免费层
|
||||
|
||||
```
|
||||
✅ 好:
|
||||
cc/claude-opus → glm/glm-4.7 → if/kimi-k2-thinking
|
||||
|
||||
❌ 不好:
|
||||
cc/claude-opus → glm/glm-4.7
|
||||
(无免费回退,可能耗尽配额)
|
||||
```
|
||||
|
||||
**原因**:确保 24/7 可用,绝不会被配额卡住。
|
||||
|
||||
### 2. 按成本排序(便宜 → 贵)
|
||||
|
||||
```
|
||||
✅ 好:
|
||||
glm/glm-4.7 → minimax/MiniMax-M2.1 → cc/claude-opus
|
||||
|
||||
❌ 不好:
|
||||
cc/claude-opus → glm/glm-4.7
|
||||
(在简单任务上浪费订阅配额)
|
||||
```
|
||||
|
||||
**例外**:如果想充分利用订阅价值,把订阅放在最前面。
|
||||
|
||||
### 3. 匹配质量要求
|
||||
|
||||
```
|
||||
生产代码:
|
||||
cc/claude-opus → cx/gpt-5.2-codex → glm/glm-4.7
|
||||
|
||||
简单任务:
|
||||
glm/glm-4.7 → if/kimi-k2-thinking
|
||||
|
||||
试验:
|
||||
if/kimi-k2-thinking → qw/qwen3-coder-plus
|
||||
```
|
||||
|
||||
### 4. 考虑配额重置时间
|
||||
|
||||
```
|
||||
早上组合(配额刚刷新):
|
||||
cc/claude-opus → cx/gpt-5.2-codex
|
||||
|
||||
晚上组合(配额大概率耗尽):
|
||||
glm/glm-4.7 → minimax/MiniMax-M2.1 → if/kimi-k2-thinking
|
||||
```
|
||||
|
||||
### 5. 为不同场景创建多个组合
|
||||
|
||||
```
|
||||
premium-coding: 复杂任务
|
||||
budget-combo: 简单任务
|
||||
free-combo: 试验
|
||||
quality-first: 生产代码
|
||||
```
|
||||
|
||||
**根据任务需求切换组合**。
|
||||
|
||||
### 6. 监控组合性能
|
||||
|
||||
```
|
||||
仪表盘 → 分析 → 组合使用:
|
||||
premium-coding:
|
||||
80% 通过 cc/claude-opus(良好,使用订阅)
|
||||
15% 通过 glm/glm-4.7(可接受备用)
|
||||
5% 通过 minimax(罕见回退)
|
||||
```
|
||||
|
||||
**优化**:回退使用过多时,提高主配额或重新排序模型。
|
||||
|
||||
---
|
||||
|
||||
## 高级配置
|
||||
|
||||
### 为组合设置预算上限
|
||||
|
||||
```
|
||||
仪表盘 → 组合 → 编辑 → 预算:
|
||||
每日上限: $5
|
||||
每月上限: $50
|
||||
```
|
||||
|
||||
达到上限时,9Router 跳过付费模型,仅使用免费层。
|
||||
|
||||
### 启用/禁用组合中的模型
|
||||
|
||||
```
|
||||
仪表盘 → 组合 → 编辑 → 模型:
|
||||
✅ cc/claude-opus-4-5(启用)
|
||||
❌ glm/glm-4.7(暂时禁用)
|
||||
✅ if/kimi-k2-thinking(启用)
|
||||
```
|
||||
|
||||
**用途**:暂时禁用昂贵模型而不删除组合。
|
||||
|
||||
### 克隆已有组合
|
||||
|
||||
```
|
||||
仪表盘 → 组合 → 克隆 "premium-coding"
|
||||
→ 生成带 "-copy" 后缀的副本
|
||||
→ 修改后另存为新组合
|
||||
```
|
||||
|
||||
**用途**:为不同场景创建变体。
|
||||
|
||||
---
|
||||
|
||||
## 故障排除
|
||||
|
||||
**问题:组合未出现在模型列表中**
|
||||
|
||||
**方案:**
|
||||
1. 刷新仪表盘
|
||||
2. 检查组合已保存(绿色对勾)
|
||||
3. 重启 CLI 工具以刷新模型列表
|
||||
|
||||
**问题:组合总是用最后一个模型(免费层)**
|
||||
|
||||
**方案:**
|
||||
1. 检查主模型的配额(仪表盘 → 配额)
|
||||
2. 确认 API keys 有效(仪表盘 → 提供商)
|
||||
3. 检查是否超出预算上限
|
||||
|
||||
**问题:组合成本超出预期**
|
||||
|
||||
**方案:**
|
||||
1. 仪表盘 → 分析 → 查看组合使用情况
|
||||
2. 检查主模型是否配额耗尽
|
||||
3. 重新排序模型(更便宜的放前面)
|
||||
4. 设置预算上限
|
||||
|
||||
---
|
||||
|
||||
## 相关
|
||||
|
||||
- [智能路由](./smart-routing.md) - 自动回退如何工作
|
||||
- [配额跟踪](./quota-tracking.md) - 监控使用与成本
|
||||
687
gitbook/content/zh-CN/features/quota-tracking.md
Normal file
687
gitbook/content/zh-CN/features/quota-tracking.md
Normal file
@@ -0,0 +1,687 @@
|
||||
# 配额跟踪 & 使用监控
|
||||
|
||||
实时跟踪 token 消耗、监控配额上限、估算成本,并在配额用尽前获得提醒。绝不浪费订阅配额,也不超出预算上限。
|
||||
|
||||
---
|
||||
|
||||
## 概览
|
||||
|
||||
9Router 为所有提供商提供完善的配额跟踪:
|
||||
|
||||
- **实时 token 消耗** - 查看每次请求使用的 tokens
|
||||
- **配额上限与剩余** - 跟踪使用 vs 上限
|
||||
- **重置倒计时** - 了解配额何时刷新
|
||||
- **成本估算** - 计算付费层支出
|
||||
- **月度报告** - 分析使用模式
|
||||
- **告警与通知** - 接近上限时收到警告
|
||||
|
||||
---
|
||||
|
||||
## 仪表盘总览
|
||||
|
||||
### 配额摘要
|
||||
|
||||
```
|
||||
仪表盘 → 主页 → 配额概览
|
||||
|
||||
┌─────────────────────────────────────────────┐
|
||||
│ Claude Code (cc/) │
|
||||
│ ████████████░░░░░░░░ 2.5h / 5h (50%) │
|
||||
│ 重置剩余: 2h 30m │
|
||||
│ 成本: $0(订阅) │
|
||||
└─────────────────────────────────────────────┘
|
||||
|
||||
┌─────────────────────────────────────────────┐
|
||||
│ Gemini CLI (gc/) │
|
||||
│ ████████░░░░░░░░░░░░ 450 / 1000 (45%) │
|
||||
│ 每日重置剩余: 18h 30m │
|
||||
│ 本月: 45K / 180K (25%) │
|
||||
│ 成本: $0(免费层) │
|
||||
└─────────────────────────────────────────────┘
|
||||
|
||||
┌─────────────────────────────────────────────┐
|
||||
│ GLM-4.7 (glm/) │
|
||||
│ ██████████████░░░░░░ 7M / 10M tokens (70%) │
|
||||
│ 重置: 每日 10:00 AM(5h 35m 后) │
|
||||
│ 今日成本: $4.20 │
|
||||
└─────────────────────────────────────────────┘
|
||||
|
||||
┌─────────────────────────────────────────────┐
|
||||
│ MiniMax M2.1 (minimax/) │
|
||||
│ ████████████████░░░░ 4M / 5M tokens (80%) │
|
||||
│ 5h 滚动窗口 │
|
||||
│ 成本(5h): $0.80 │
|
||||
└─────────────────────────────────────────────┘
|
||||
|
||||
┌─────────────────────────────────────────────┐
|
||||
│ iFlow (if/) │
|
||||
│ ████████████████████ 无限 │
|
||||
│ 成本: $0(永久免费) │
|
||||
└─────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 实时 Token 消耗
|
||||
|
||||
### 按请求跟踪
|
||||
|
||||
每次请求都会显示详细的 token 使用情况:
|
||||
|
||||
```
|
||||
仪表盘 → 活动 → 最近请求
|
||||
|
||||
请求 #1234
|
||||
模型: cc/claude-opus-4-5-20251101
|
||||
时间戳: 2026-02-04 04:15:32
|
||||
|
||||
Tokens:
|
||||
输入: 1,250 tokens
|
||||
输出: 850 tokens
|
||||
合计: 2,100 tokens
|
||||
|
||||
成本: $0(订阅配额)
|
||||
耗时: 3.2s
|
||||
状态: ✅ 成功
|
||||
```
|
||||
|
||||
### 实时使用监控
|
||||
|
||||
```
|
||||
仪表盘 → 实时监控
|
||||
|
||||
当前请求:
|
||||
模型: glm/glm-4.7
|
||||
已流式输出 tokens: 450 / 预计 ~800
|
||||
当前成本: $0.0009
|
||||
耗时: 1.8s
|
||||
```
|
||||
|
||||
### 按模型分解 Token
|
||||
|
||||
```
|
||||
仪表盘 → 分析 → Token 使用
|
||||
|
||||
今日(2026-02-04):
|
||||
cc/claude-opus-4-5: 15M tokens($0,订阅)
|
||||
glm/glm-4.7: 8M tokens($4.80)
|
||||
if/kimi-k2-thinking: 3M tokens($0,免费)
|
||||
|
||||
合计: 26M tokens
|
||||
成本: $4.80
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 配额上限与重置时间
|
||||
|
||||
### 订阅型提供商
|
||||
|
||||
**Claude Code (Pro/Max)**
|
||||
```
|
||||
配额类型: 基于时间(5 小时滚动)
|
||||
上限: 5 小时使用时长
|
||||
重置: 5 小时滚动窗口 + 每周刷新
|
||||
跟踪: 每个模型的使用时间
|
||||
|
||||
仪表盘显示:
|
||||
Opus: 已用 2.5h / 5h
|
||||
Sonnet: 已用 1.2h / 5h
|
||||
Haiku: 已用 0.8h / 5h
|
||||
|
||||
每周重置: 每周一 00:00 UTC
|
||||
```
|
||||
|
||||
**OpenAI Codex (Plus/Pro)**
|
||||
```
|
||||
配额类型: 基于时间(5 小时滚动)
|
||||
上限: 5 小时(Plus)/ 10 小时(Pro)
|
||||
重置: 5 小时滚动窗口 + 每周刷新
|
||||
|
||||
仪表盘显示:
|
||||
GPT-5.2 Codex: 已用 3.5h / 5h
|
||||
重置剩余: 1h 30m
|
||||
```
|
||||
|
||||
**Gemini CLI(免费)**
|
||||
```
|
||||
配额类型: 请求次数 + 月度 tokens
|
||||
每日上限: 1,000 次请求
|
||||
月度上限: 180,000 次补全
|
||||
重置: 每日 00:00 UTC + 每月 1 日
|
||||
|
||||
仪表盘显示:
|
||||
今日: 450 / 1,000 次请求 (45%)
|
||||
本月: 45K / 180K 次补全 (25%)
|
||||
每日重置剩余: 18h 30m
|
||||
月度重置剩余: 26 天
|
||||
```
|
||||
|
||||
**GitHub Copilot**
|
||||
```
|
||||
配额类型: 月度使用量
|
||||
上限: 因套餐而异
|
||||
重置: 每月 1 日
|
||||
|
||||
仪表盘显示:
|
||||
使用: 月度配额 60%
|
||||
重置: 2026 年 3 月 1 日(25 天后)
|
||||
```
|
||||
|
||||
### 低价提供商
|
||||
|
||||
**GLM-4.7**
|
||||
```
|
||||
配额类型: 每日 token 上限
|
||||
上限: 10M tokens/天(Coding Plan)
|
||||
重置: 每日 10:00 AM 北京时间(UTC+8)
|
||||
|
||||
仪表盘显示:
|
||||
已用: 7M / 10M tokens (70%)
|
||||
剩余: 3M tokens
|
||||
重置剩余: 5h 35m
|
||||
今日成本: $4.20
|
||||
```
|
||||
|
||||
**MiniMax M2.1**
|
||||
```
|
||||
配额类型: 5 小时滚动窗口
|
||||
上限: 每 5 小时 5M tokens
|
||||
重置: 连续滚动窗口
|
||||
|
||||
仪表盘显示:
|
||||
已用(5h): 4M / 5M tokens (80%)
|
||||
最早一次使用过期: 45m
|
||||
成本(5h): $0.80
|
||||
```
|
||||
|
||||
**Kimi K2**
|
||||
```
|
||||
配额类型: 月度订阅
|
||||
上限: 10M tokens/月($9 固定)
|
||||
重置: 订阅日每月一次
|
||||
|
||||
仪表盘显示:
|
||||
已用: 6M / 10M tokens (60%)
|
||||
重置: 2026 年 2 月 15 日(11 天后)
|
||||
成本: $9/月(预付)
|
||||
```
|
||||
|
||||
### 免费提供商
|
||||
|
||||
**iFlow / Qwen / Kiro**
|
||||
```
|
||||
配额类型: 无限(限速)
|
||||
上限: 无硬上限
|
||||
重置: 不适用
|
||||
|
||||
仪表盘显示:
|
||||
今日已用: 5M tokens
|
||||
成本: $0(永久免费)
|
||||
状态: ✅ 可用
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 成本估算
|
||||
|
||||
### 实时成本跟踪
|
||||
|
||||
```
|
||||
仪表盘 → 成本 → 今日
|
||||
|
||||
订阅型提供商: $0
|
||||
Claude Code: 15M tokens($0,包含)
|
||||
Gemini CLI: 3M tokens($0,免费层)
|
||||
|
||||
付费提供商: $4.80
|
||||
GLM-4.7: 8M tokens($4.80)
|
||||
输入: 6M × $0.60/1M = $3.60
|
||||
输出: 2M × $2.20/1M = $4.40
|
||||
合计: $4.80
|
||||
|
||||
免费提供商: $0
|
||||
iFlow: 3M tokens($0)
|
||||
|
||||
今日合计: $4.80
|
||||
```
|
||||
|
||||
### 月度支出报告
|
||||
|
||||
```
|
||||
仪表盘 → 成本 → 本月(2026 年 2 月)
|
||||
|
||||
第 1 周(2 月 1-7 日):
|
||||
订阅: $0(80M tokens)
|
||||
付费: $15.20(25M tokens)
|
||||
免费: $0(10M tokens)
|
||||
合计: $15.20
|
||||
|
||||
第 2 周(2 月 8-14 日):
|
||||
订阅: $0(75M tokens)
|
||||
付费: $12.80(20M tokens)
|
||||
免费: $0(8M tokens)
|
||||
合计: $12.80
|
||||
|
||||
本月至今: $28.00
|
||||
预计(30 天): ~$120
|
||||
|
||||
按提供商分解:
|
||||
GLM-4.7: $22.00 (78%)
|
||||
MiniMax M2.1: $6.00 (22%)
|
||||
|
||||
每 1M tokens 平均成本: $0.62
|
||||
相比 ChatGPT API 节省: 97%($4,000 → $120)
|
||||
```
|
||||
|
||||
### 成本预测
|
||||
|
||||
```
|
||||
仪表盘 → 成本 → 预测
|
||||
|
||||
基于近 7 天使用:
|
||||
日均: 50M tokens
|
||||
日成本: $4.50
|
||||
|
||||
月度预测:
|
||||
Tokens: 1,500M (1.5B)
|
||||
成本: $135
|
||||
|
||||
分解:
|
||||
订阅: 900M tokens($0)
|
||||
GLM-4.7: 450M tokens($90)
|
||||
MiniMax: 120M tokens($24)
|
||||
免费: 30M tokens($0)
|
||||
|
||||
预算状态:
|
||||
每日上限: $5 → 今日已用 90%
|
||||
每月上限: $150 → 预计 90%
|
||||
⚠️ 警告: 可能超出每月预算
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 使用仪表盘
|
||||
|
||||
### 总览统计
|
||||
|
||||
```
|
||||
仪表盘 → 分析 → 总览
|
||||
|
||||
今日(2026-02-04):
|
||||
请求: 1,234
|
||||
Tokens: 26M
|
||||
成本: $4.80
|
||||
平均响应时间: 2.1s
|
||||
|
||||
本周:
|
||||
请求: 8,456
|
||||
Tokens: 180M
|
||||
成本: $28.00
|
||||
成功率: 99.2%
|
||||
|
||||
本月:
|
||||
请求: 15,234
|
||||
Tokens: 320M
|
||||
成本: $52.00
|
||||
Top 模型: cc/claude-opus-4-5 (45%)
|
||||
```
|
||||
|
||||
### 按模型使用
|
||||
|
||||
```
|
||||
仪表盘 → 分析 → 模型
|
||||
|
||||
Top 模型(本月):
|
||||
1. cc/claude-opus-4-5: 145M tokens (45%)
|
||||
2. glm/glm-4.7: 95M tokens (30%)
|
||||
3. if/kimi-k2-thinking: 50M tokens (16%)
|
||||
4. minimax/MiniMax-M2.1: 20M tokens (6%)
|
||||
5. gc/gemini-3-flash: 10M tokens (3%)
|
||||
|
||||
成本分解:
|
||||
cc/claude-opus: $0(订阅)
|
||||
glm/glm-4.7: $45.00
|
||||
if/kimi-k2-thinking: $0(免费)
|
||||
minimax/MiniMax-M2.1: $7.00
|
||||
gc/gemini-3-flash: $0(免费)
|
||||
```
|
||||
|
||||
### 按时间使用
|
||||
|
||||
```
|
||||
仪表盘 → 分析 → 时间线
|
||||
|
||||
按小时使用(今日):
|
||||
00:00 - 01:00: 0.5M tokens
|
||||
01:00 - 02:00: 0.2M tokens
|
||||
...
|
||||
08:00 - 09:00: 3.2M tokens(峰值)
|
||||
09:00 - 10:00: 2.8M tokens
|
||||
...
|
||||
23:00 - 00:00: 0.8M tokens
|
||||
|
||||
峰值时段: 08:00 - 12:00(早上编码)
|
||||
低谷时段: 00:00 - 06:00(夜间)
|
||||
```
|
||||
|
||||
### 按组合使用
|
||||
|
||||
```
|
||||
仪表盘 → 分析 → 组合
|
||||
|
||||
premium-coding:
|
||||
请求: 456
|
||||
Tokens: 12M
|
||||
成本: $2.40
|
||||
|
||||
分解:
|
||||
cc/claude-opus: 8M tokens (67%, $0)
|
||||
glm/glm-4.7: 3M tokens (25%, $1.80)
|
||||
minimax/MiniMax-M2.1: 1M tokens (8%, $0.20)
|
||||
|
||||
budget-combo:
|
||||
请求: 234
|
||||
Tokens: 6M
|
||||
成本: $1.20
|
||||
|
||||
分解:
|
||||
glm/glm-4.7: 4M tokens (67%, $2.40)
|
||||
if/kimi-k2-thinking: 2M tokens (33%, $0)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 告警与通知
|
||||
|
||||
### 配额告警
|
||||
|
||||
```
|
||||
仪表盘 → 设置 → 告警
|
||||
|
||||
配额预警:
|
||||
✅ 配额使用 80% 时告警
|
||||
✅ 配额使用 90% 时告警
|
||||
✅ 配额耗尽时告警
|
||||
✅ 配额重置时通知
|
||||
|
||||
发送方式:
|
||||
✅ 仪表盘通知
|
||||
✅ 邮件(可选)
|
||||
✅ Webhook(可选)
|
||||
```
|
||||
|
||||
**通知示例:**
|
||||
```
|
||||
⚠️ Claude Code 配额已用 80%
|
||||
剩余 2.5h(1h 30m 后重置)
|
||||
|
||||
⚠️ GLM-4.7 配额已用 90%
|
||||
剩余 1M tokens(5h 后重置)
|
||||
|
||||
✅ Gemini CLI 配额已重置
|
||||
1,000 次请求可用(每日上限)
|
||||
```
|
||||
|
||||
### 预算告警
|
||||
|
||||
```
|
||||
仪表盘 → 设置 → 预算告警
|
||||
|
||||
每日预算: $5
|
||||
✅ 80%($4)告警
|
||||
✅ 100%($5)告警
|
||||
✅ 超额时自动切换到免费层
|
||||
|
||||
每月预算: $150
|
||||
✅ 50%($75)告警
|
||||
✅ 80%($120)告警
|
||||
✅ 100%($150)告警
|
||||
```
|
||||
|
||||
**通知示例:**
|
||||
```
|
||||
⚠️ 每日预算已用 80%
|
||||
今日花费 $4.00 / $5.00
|
||||
|
||||
⚠️ 每月预算达到 50%
|
||||
本月花费 $75 / $150
|
||||
预计: $135(预算内)
|
||||
|
||||
🚨 每日预算超额
|
||||
今日花费 $5.20 / $5.00
|
||||
已自动切换到免费层
|
||||
```
|
||||
|
||||
### 成本异常检测
|
||||
|
||||
```
|
||||
仪表盘 → 设置 → 异常检测
|
||||
|
||||
✅ 检测异常支出模式
|
||||
✅ 成本峰值告警(>2× 日均)
|
||||
✅ 配额耗尽模式警告
|
||||
|
||||
告警示例:
|
||||
⚠️ 检测到成本峰值
|
||||
今日: $12.50(2.5× 日均)
|
||||
原因: GLM-4.7 高用量(20M tokens)
|
||||
建议: 检查主模型是否配额耗尽
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 最佳实践
|
||||
|
||||
### 1. 每日监控配额
|
||||
|
||||
```
|
||||
日常:
|
||||
1. 查看仪表盘配额概览(30 秒)
|
||||
2. 检查重置时间
|
||||
3. 根据配额可用性规划使用
|
||||
```
|
||||
|
||||
**示例:**
|
||||
```
|
||||
早晨检查:
|
||||
✅ Claude Code: 5h 可用(刚重置)
|
||||
✅ Gemini CLI: 1K 请求可用
|
||||
⚠️ GLM-4.7: 剩 2M tokens(10AM 重置)
|
||||
|
||||
行动: 早上工作用 Claude Code
|
||||
```
|
||||
|
||||
### 2. 设置预算上限
|
||||
|
||||
```
|
||||
仪表盘 → 设置 → 预算:
|
||||
每日: $5(防止超支)
|
||||
每月: $150(与预算对齐)
|
||||
```
|
||||
|
||||
**结果**:达到上限时自动切换到免费层。
|
||||
|
||||
### 3. 优化组合使用
|
||||
|
||||
```
|
||||
仪表盘 → 分析 → 组合:
|
||||
查看哪些模型用得最多
|
||||
调整组合顺序以最小化成本
|
||||
```
|
||||
|
||||
**示例:**
|
||||
```
|
||||
当前: cc/claude-opus → glm/glm-4.7
|
||||
80% 通过 Claude(好)
|
||||
20% 通过 GLM($12/月)
|
||||
|
||||
优化后: gc/gemini-3-flash → cc/claude-opus → glm/glm-4.7
|
||||
50% 通过 Gemini(免费)
|
||||
40% 通过 Claude(订阅)
|
||||
10% 通过 GLM($6/月)
|
||||
|
||||
节省: $6/月
|
||||
```
|
||||
|
||||
### 4. 跟踪重置时间
|
||||
|
||||
```
|
||||
仪表盘 → 配额 → 重置日程:
|
||||
Claude Code: 5h 滚动 + 每周一
|
||||
Gemini CLI: 每日 00:00 UTC + 每月 1 日
|
||||
GLM-4.7: 每日 10:00 AM 北京时间
|
||||
MiniMax: 5h 滚动窗口
|
||||
```
|
||||
|
||||
**策略**:配额刚刷新时使用对应提供商。
|
||||
|
||||
### 5. 查看月度报告
|
||||
|
||||
```
|
||||
仪表盘 → 分析 → 月度报告:
|
||||
总 tokens: 1.5B
|
||||
总成本: $120
|
||||
节省: 相比 ChatGPT API 节省 97%
|
||||
|
||||
洞察:
|
||||
- 60% 用量来自订阅($0)
|
||||
- 30% 通过 GLM($90)
|
||||
- 10% 通过免费层($0)
|
||||
|
||||
优化:
|
||||
- 增加 Gemini CLI 用量(免费)
|
||||
- 减少 GLM 用量(更贵)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## API 访问
|
||||
|
||||
### 获取配额状态
|
||||
|
||||
```bash
|
||||
GET http://localhost:20128/api/quota
|
||||
Authorization: Bearer your-api-key
|
||||
|
||||
Response:
|
||||
{
|
||||
"providers": [
|
||||
{
|
||||
"id": "cc",
|
||||
"name": "Claude Code",
|
||||
"quota": {
|
||||
"used": 2.5,
|
||||
"limit": 5,
|
||||
"unit": "hours",
|
||||
"percentage": 50
|
||||
},
|
||||
"reset": {
|
||||
"type": "rolling",
|
||||
"window": "5h",
|
||||
"nextReset": "2026-02-04T06:45:00Z"
|
||||
},
|
||||
"cost": {
|
||||
"today": 0,
|
||||
"month": 0,
|
||||
"currency": "USD"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "glm",
|
||||
"name": "GLM-4.7",
|
||||
"quota": {
|
||||
"used": 7000000,
|
||||
"limit": 10000000,
|
||||
"unit": "tokens",
|
||||
"percentage": 70
|
||||
},
|
||||
"reset": {
|
||||
"type": "daily",
|
||||
"time": "10:00 AM UTC+8",
|
||||
"nextReset": "2026-02-04T10:00:00+08:00"
|
||||
},
|
||||
"cost": {
|
||||
"today": 4.20,
|
||||
"month": 52.00,
|
||||
"currency": "USD"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
### 获取使用统计
|
||||
|
||||
```bash
|
||||
GET http://localhost:20128/api/usage?period=today
|
||||
Authorization: Bearer your-api-key
|
||||
|
||||
Response:
|
||||
{
|
||||
"period": "today",
|
||||
"date": "2026-02-04",
|
||||
"summary": {
|
||||
"requests": 1234,
|
||||
"tokens": 26000000,
|
||||
"cost": 4.80
|
||||
},
|
||||
"byModel": [
|
||||
{
|
||||
"model": "cc/claude-opus-4-5",
|
||||
"requests": 456,
|
||||
"tokens": 15000000,
|
||||
"cost": 0
|
||||
},
|
||||
{
|
||||
"model": "glm/glm-4.7",
|
||||
"requests": 234,
|
||||
"tokens": 8000000,
|
||||
"cost": 4.80
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 故障排除
|
||||
|
||||
**问题:配额显示 0% 但请求失败**
|
||||
|
||||
**方案:**
|
||||
1. 检查提供商连接(仪表盘 → 提供商)
|
||||
2. 确认 API keys 有效
|
||||
3. 检查提供商是否宕机(状态页)
|
||||
4. 尝试重新连接 OAuth 提供商
|
||||
|
||||
**问题:成本估算不正确**
|
||||
|
||||
**方案:**
|
||||
1. 仪表盘 → 设置 → 定价
|
||||
2. 确认每个提供商的定价与当前一致
|
||||
3. 若提供商调整费率,更新定价
|
||||
4. 若差异持续,联系支持
|
||||
|
||||
**问题:重置时间没有更新**
|
||||
|
||||
**方案:**
|
||||
1. 刷新仪表盘(F5)
|
||||
2. 检查系统时间是否正确
|
||||
3. 确认时区设置
|
||||
4. 若问题持续,重启 9Router
|
||||
|
||||
**问题:未收到告警**
|
||||
|
||||
**方案:**
|
||||
1. 仪表盘 → 设置 → 告警
|
||||
2. 确认邮箱地址正确
|
||||
3. 检查垃圾邮件夹
|
||||
4. 测试通知(Send Test 按钮)
|
||||
|
||||
---
|
||||
|
||||
## 相关
|
||||
|
||||
- [智能路由](./smart-routing.md) - 基于配额自动回退
|
||||
- [组合](./combos.md) - 创建自定义回退链
|
||||
407
gitbook/content/zh-CN/features/smart-routing.md
Normal file
407
gitbook/content/zh-CN/features/smart-routing.md
Normal file
@@ -0,0 +1,407 @@
|
||||
# 智能路由 & 自动回退
|
||||
|
||||
9Router 通过 3 层回退系统,自动将你的请求路由到最佳可用提供商。绝不再因配额限制或速率限制而中断编码。
|
||||
|
||||
---
|
||||
|
||||
## 工作原理
|
||||
|
||||
9Router 使用智能路由,最大化已有订阅价值、最小化成本,并保障 24/7 可用:
|
||||
|
||||
```
|
||||
请求 → 9Router → 检查第 1 层 (订阅)
|
||||
↓ 配额耗尽
|
||||
检查第 2 层 (低价)
|
||||
↓ 预算上限
|
||||
检查第 3 层 (免费)
|
||||
↓
|
||||
响应
|
||||
```
|
||||
|
||||
### 3 层回退系统
|
||||
|
||||
**第 1 层:订阅(主力)**
|
||||
- Claude Code(Pro/Max)
|
||||
- OpenAI Codex(Plus/Pro)
|
||||
- Gemini CLI(每月免费 180K)
|
||||
- GitHub Copilot
|
||||
- Antigravity(Google)
|
||||
|
||||
**目标**:充分挖掘你已付费订阅的价值。
|
||||
|
||||
**第 2 层:低价(备用)**
|
||||
- GLM-4.7(输入每 1M $0.60)
|
||||
- MiniMax M2.1(输入每 1M $0.20)
|
||||
- Kimi K2($9/月固定)
|
||||
|
||||
**目标**:订阅配额用完后的超低价备用(比 ChatGPT API 便宜 ~90%)。
|
||||
|
||||
**第 3 层:免费(应急)**
|
||||
- iFlow(8 个模型)
|
||||
- Qwen(3 个模型)
|
||||
- Kiro(Claude 免费)
|
||||
|
||||
**目标**:零成本回退,实现无限编码。
|
||||
|
||||
---
|
||||
|
||||
## 自动切换
|
||||
|
||||
9Router 实时监控配额,自动切换提供商:
|
||||
|
||||
### 场景 1:订阅配额耗尽
|
||||
|
||||
```
|
||||
用户请求 → cc/claude-opus-4-5
|
||||
↓ 配额耗尽(达到 5 小时限制)
|
||||
自动切换 → glm/glm-4.7
|
||||
↓ 每日配额耗尽
|
||||
自动切换 → minimax/MiniMax-M2.1
|
||||
↓ 5 小时配额耗尽
|
||||
自动切换 → if/kimi-k2-thinking (免费)
|
||||
↓
|
||||
响应已送达 ✅
|
||||
```
|
||||
|
||||
**结果**:零停机,无缝体验。
|
||||
|
||||
### 场景 2:速率限制
|
||||
|
||||
```
|
||||
用户请求 → cx/gpt-5.2-codex
|
||||
↓ 速率受限(请求过多)
|
||||
自动切换 → glm/glm-4.7
|
||||
↓
|
||||
响应已送达 ✅
|
||||
```
|
||||
|
||||
### 场景 3:提供商不可用
|
||||
|
||||
```
|
||||
用户请求 → cc/claude-opus-4-5
|
||||
↓ 提供商错误(503)
|
||||
自动切换 → 下一个可用模型
|
||||
↓
|
||||
响应已送达 ✅
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 模型选择逻辑
|
||||
|
||||
9Router 基于以下因素选择最佳模型:
|
||||
|
||||
1. **配额可用性** - 检查提供商是否仍有剩余配额
|
||||
2. **成本层级** - 优先订阅 → 低价 → 免费
|
||||
3. **重置时间** - 考虑配额何时重置
|
||||
4. **提供商健康度** - 跳过有错误的提供商
|
||||
|
||||
### 优先级示例
|
||||
|
||||
对 `cc/claude-opus-4-5` 的请求:
|
||||
|
||||
```
|
||||
1. 检查 Claude Code 配额
|
||||
✅ 可用 → 使用 cc/claude-opus-4-5
|
||||
❌ 耗尽 → 继续步骤 2
|
||||
|
||||
2. 检查回退层(若已配置)
|
||||
✅ GLM 配额可用 → 使用 glm/glm-4.7
|
||||
❌ 耗尽 → 继续步骤 3
|
||||
|
||||
3. 检查免费层
|
||||
✅ iFlow 可用 → 使用 if/kimi-k2-thinking
|
||||
❌ 全部耗尽 → 返回配额错误
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 配置选项
|
||||
|
||||
### 仪表盘设置
|
||||
|
||||
**1. 启用/禁用自动回退**
|
||||
|
||||
```
|
||||
仪表盘 → 设置 → 智能路由
|
||||
→ 切换 "Auto Fallback" ON/OFF
|
||||
```
|
||||
|
||||
- **ON**(默认):自动层级切换
|
||||
- **OFF**:严格模式,主模型不可用时返回错误
|
||||
|
||||
**2. 设置预算上限**
|
||||
|
||||
```
|
||||
仪表盘 → 设置 → 预算控制
|
||||
→ 每日上限: $5
|
||||
→ 每月上限: $50
|
||||
```
|
||||
|
||||
预算耗尽时,9Router 自动切换到免费层。
|
||||
|
||||
**3. 配置回退顺序**
|
||||
|
||||
```
|
||||
仪表盘 → 设置 → 回退优先级
|
||||
→ 拖动以重新排序每层内的提供商
|
||||
```
|
||||
|
||||
自定义顺序示例:
|
||||
```
|
||||
第 1 层: Gemini CLI → Claude Code → Codex
|
||||
第 2 层: MiniMax → GLM → Kimi
|
||||
第 3 层: iFlow → Kiro → Qwen
|
||||
```
|
||||
|
||||
**4. 配额重置通知**
|
||||
|
||||
```
|
||||
仪表盘 → 设置 → 通知
|
||||
→ 配额重置时邮件提醒
|
||||
→ 配额使用 80% 时告警
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 示例
|
||||
|
||||
### 示例 1:基础自动回退
|
||||
|
||||
**设置:**
|
||||
```
|
||||
Model: cc/claude-opus-4-5-20251101
|
||||
Fallback: 自动(默认 3 层)
|
||||
```
|
||||
|
||||
**行为:**
|
||||
```
|
||||
早上(全新配额):
|
||||
请求 → cc/claude-opus-4-5 ✅
|
||||
|
||||
下午(配额耗尽):
|
||||
请求 → glm/glm-4.7 ✅ (自动切换)
|
||||
|
||||
晚上(GLM 配额用完):
|
||||
请求 → minimax/MiniMax-M2.1 ✅ (自动切换)
|
||||
|
||||
深夜(付费配额全部耗尽):
|
||||
请求 → if/kimi-k2-thinking ✅ (免费层)
|
||||
```
|
||||
|
||||
**成本**:额外约 $5-10/月(大部分由订阅覆盖)。
|
||||
|
||||
### 示例 2:预算优先路由
|
||||
|
||||
**设置:**
|
||||
```
|
||||
仪表盘 → 设置:
|
||||
每日预算: $2
|
||||
每月预算: $20
|
||||
Fallback: 启用
|
||||
```
|
||||
|
||||
**行为:**
|
||||
```
|
||||
1-15 日(预算内):
|
||||
请求 → glm/glm-4.7 (低价层)
|
||||
成本: $1.50/天
|
||||
|
||||
第 16 日(达到预算):
|
||||
请求 → if/kimi-k2-thinking (免费层)
|
||||
成本: $0
|
||||
|
||||
下月(预算重置):
|
||||
请求 → 重新使用 glm/glm-4.7
|
||||
```
|
||||
|
||||
**结果**:绝不超过 $20/月,始终可用。
|
||||
|
||||
### 示例 3:仅订阅模式
|
||||
|
||||
**设置:**
|
||||
```
|
||||
仪表盘 → 设置:
|
||||
Auto Fallback: OFF
|
||||
Strict mode: ON
|
||||
```
|
||||
|
||||
**行为:**
|
||||
```
|
||||
请求 → cc/claude-opus-4-5
|
||||
✅ 配额可用 → 成功
|
||||
❌ 配额耗尽 → 返回错误(无回退)
|
||||
```
|
||||
|
||||
**适用场景**:只想用付费订阅,绝不产生额外成本。
|
||||
|
||||
### 示例 4:仅免费模式
|
||||
|
||||
**设置:**
|
||||
```
|
||||
Model: if/kimi-k2-thinking
|
||||
Fallback: qw/qwen3-coder-plus → kr/claude-sonnet-4.5
|
||||
```
|
||||
|
||||
**行为:**
|
||||
```
|
||||
所有请求 → 仅免费层
|
||||
成本: 永远 $0
|
||||
```
|
||||
|
||||
**适用场景**:个人项目、学习、试验。
|
||||
|
||||
---
|
||||
|
||||
## 最佳实践
|
||||
|
||||
### 1. 最大化订阅价值
|
||||
|
||||
```
|
||||
策略:
|
||||
- 将订阅模型设为第 1 层
|
||||
- 在仪表盘监控配额使用
|
||||
- 仅在订阅耗尽时使用低价层
|
||||
```
|
||||
|
||||
**示例组合:**
|
||||
```
|
||||
cc/claude-opus-4-5 → glm/glm-4.7 → if/kimi-k2-thinking
|
||||
```
|
||||
|
||||
### 2. 成本优化
|
||||
|
||||
```
|
||||
策略:
|
||||
- 先用 Gemini CLI 免费层(每月 180K)
|
||||
- 回退到 GLM/MiniMax(超低价)
|
||||
- 应急: iFlow(免费)
|
||||
```
|
||||
|
||||
**示例组合:**
|
||||
```
|
||||
gc/gemini-3-flash-preview → glm/glm-4.7 → if/kimi-k2-thinking
|
||||
```
|
||||
|
||||
### 3. 质量优先
|
||||
|
||||
```
|
||||
策略:
|
||||
- 使用最佳模型(Claude Opus、GPT-5.2)
|
||||
- 回退到优秀的低价模型(GLM-4.7)
|
||||
- 最后手段: 免费层
|
||||
```
|
||||
|
||||
**示例组合:**
|
||||
```
|
||||
cc/claude-opus-4-5 → cx/gpt-5.2-codex → glm/glm-4.7
|
||||
```
|
||||
|
||||
### 4. 24/7 可用性
|
||||
|
||||
```
|
||||
策略:
|
||||
- 回退链中总是包含免费层
|
||||
- 监控配额重置时间
|
||||
- 在多个提供商间分散使用
|
||||
```
|
||||
|
||||
**示例组合:**
|
||||
```
|
||||
cc/claude-opus-4-5 → glm/glm-4.7 → minimax/MiniMax-M2.1 → if/kimi-k2-thinking
|
||||
```
|
||||
|
||||
**结果**:永不耗尽配额,随时编码。
|
||||
|
||||
---
|
||||
|
||||
## 配额重置策略
|
||||
|
||||
围绕配额重置时间规划使用:
|
||||
|
||||
| 提供商 | 配额重置 | 策略 |
|
||||
|----------|-------------|----------|
|
||||
| **Claude Code** | 5 小时 + 每周 | 早上使用,配额最新鲜 |
|
||||
| **Codex** | 5 小时 + 每周 | Claude 配额用完后使用 |
|
||||
| **Gemini CLI** | 每日(1K)+ 每月(180K) | 全天均匀使用 |
|
||||
| **GLM-4.7** | 每日 10:00 AM | 晚上使用,次日上午重置 |
|
||||
| **MiniMax M2.1** | 5 小时滚动 | 任意时间用,跟踪滚动窗口 |
|
||||
| **iFlow/Qwen/Kiro** | 无限制 | 应急备用 |
|
||||
|
||||
**日常安排示例:**
|
||||
```
|
||||
08:00 - 13:00: Claude Code(全新 5h 配额)
|
||||
13:00 - 18:00: Gemini CLI(每日 1K 配额)
|
||||
18:00 - 22:00: GLM-4.7(便宜,10AM 重置)
|
||||
22:00 - 08:00: MiniMax 或 iFlow(5h 滚动 或 免费)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 监控与告警
|
||||
|
||||
### 仪表盘配额跟踪
|
||||
|
||||
```
|
||||
仪表盘 → 配额概览:
|
||||
Claude Code: 剩余 2.5h / 5h (50%)
|
||||
Gemini CLI: 今日 450 / 1000 次请求
|
||||
GLM-4.7: 5M / 10M tokens (8h 后重置)
|
||||
MiniMax: 3M / 5M tokens (5h 滚动)
|
||||
```
|
||||
|
||||
### 实时通知
|
||||
|
||||
```
|
||||
仪表盘 → 通知:
|
||||
⚠️ Claude Code 配额使用 80%(剩 1h)
|
||||
✅ GLM-4.7 配额已重置(10M tokens 可用)
|
||||
💰 每日预算使用 50%($2.50 / $5)
|
||||
```
|
||||
|
||||
### 使用分析
|
||||
|
||||
```
|
||||
仪表盘 → 分析:
|
||||
今日: 50M tokens
|
||||
- 30M 通过 Claude Code(订阅)
|
||||
- 15M 通过 GLM-4.7($9)
|
||||
- 5M 通过 iFlow(免费)
|
||||
|
||||
成本: $9(对比 ChatGPT API $1000)
|
||||
节省: 99%
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 故障排除
|
||||
|
||||
**问题:"All providers quota exhausted"**
|
||||
|
||||
**方案:**
|
||||
1. 查看仪表盘配额跟踪
|
||||
2. 等待配额重置(查看倒计时)
|
||||
3. 在回退链中加入免费层
|
||||
4. 或提高预算上限
|
||||
|
||||
**问题:"Too many fallback switches"**
|
||||
|
||||
**方案:**
|
||||
1. 检查主提供商是否宕机
|
||||
2. 提高配额上限(升级订阅)
|
||||
3. 使用更便宜的主模型(用 GLM 代替 Claude)
|
||||
|
||||
**问题:"Unexpected costs"**
|
||||
|
||||
**方案:**
|
||||
1. 仪表盘 → 分析 → 查看使用情况
|
||||
2. 设置每日/每月预算上限
|
||||
3. 非关键任务切换到免费层
|
||||
4. 使用带免费回退的组合
|
||||
|
||||
---
|
||||
|
||||
## 相关
|
||||
|
||||
- [组合](./combos.md) - 创建自定义回退链
|
||||
- [配额跟踪](./quota-tracking.md) - 监控使用与成本
|
||||
478
gitbook/content/zh-CN/getting-started/installation.md
Normal file
478
gitbook/content/zh-CN/getting-started/installation.md
Normal file
@@ -0,0 +1,478 @@
|
||||
# 安装
|
||||
|
||||
9Router 的详细安装指南,附故障排除技巧。
|
||||
|
||||
---
|
||||
|
||||
## 要求
|
||||
|
||||
### 系统要求
|
||||
|
||||
- **Node.js**:版本 20.0.0 或更高
|
||||
- **npm**:版本 10.0.0 或更高(随 Node.js 安装)
|
||||
- **OS**:macOS、Linux、Windows(推荐 WSL)
|
||||
- **磁盘空间**:安装约需 200MB
|
||||
|
||||
### 查看版本
|
||||
|
||||
```bash
|
||||
node --version
|
||||
# 应显示 v20.x.x 或更高
|
||||
|
||||
npm --version
|
||||
# 应显示 10.x.x 或更高
|
||||
```
|
||||
|
||||
**没有 Node.js?** 从 [nodejs.org](https://nodejs.org/) 安装
|
||||
|
||||
---
|
||||
|
||||
## 安装方式
|
||||
|
||||
### 方式 1:全局安装(推荐)
|
||||
|
||||
全局安装,任何位置都能使用:
|
||||
|
||||
```bash
|
||||
npm install -g 9router
|
||||
```
|
||||
|
||||
**启动 9Router:**
|
||||
|
||||
```bash
|
||||
9router
|
||||
```
|
||||
|
||||
**优势:**
|
||||
- ✅ 任意目录均可运行
|
||||
- ✅ 命令简单:`9router`
|
||||
- ✅ 通过 `npm update -g 9router` 自动更新
|
||||
|
||||
### 方式 2:本地安装
|
||||
|
||||
在特定项目中安装:
|
||||
|
||||
```bash
|
||||
mkdir my-9router
|
||||
cd my-9router
|
||||
npm install 9router
|
||||
```
|
||||
|
||||
**启动 9Router:**
|
||||
|
||||
```bash
|
||||
npx 9router
|
||||
```
|
||||
|
||||
**优势:**
|
||||
- ✅ 项目隔离
|
||||
- ✅ 项目级版本控制
|
||||
- ✅ 不污染全局命名空间
|
||||
|
||||
### 方式 3:源码安装(开发用)
|
||||
|
||||
从 GitHub 克隆并构建:
|
||||
|
||||
```bash
|
||||
git clone https://github.com/decolua/9router.git
|
||||
cd 9router/app
|
||||
npm install
|
||||
npm run build
|
||||
npm start
|
||||
```
|
||||
|
||||
**优势:**
|
||||
- ✅ 最新开发特性
|
||||
- ✅ 可参与开发
|
||||
- ✅ 可自定义修改
|
||||
|
||||
---
|
||||
|
||||
## 首次运行
|
||||
|
||||
### 启动服务器
|
||||
|
||||
```bash
|
||||
9router
|
||||
```
|
||||
|
||||
**发生了什么:**
|
||||
1. 服务器启动在 `http://localhost:20128`
|
||||
2. 仪表盘在浏览器中自动打开
|
||||
3. 数据目录创建在 `~/.9router`
|
||||
4. API key 自动生成
|
||||
|
||||
### 仪表盘登录
|
||||
|
||||
**默认凭据:**
|
||||
- 密码:`123456`
|
||||
|
||||
**⚠️ 立即修改密码:**
|
||||
1. 登录仪表盘
|
||||
2. 设置 → 修改密码
|
||||
3. 使用强密码
|
||||
|
||||
### 获取 API Key
|
||||
|
||||
```
|
||||
仪表盘 → 设置 → API Keys
|
||||
→ 复制你的 API key
|
||||
→ 在 CLI 工具中使用
|
||||
```
|
||||
|
||||
**API key 格式示例:**
|
||||
```
|
||||
9r_1234567890abcdef1234567890abcdef
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 验证安装
|
||||
|
||||
### 检查服务器状态
|
||||
|
||||
```bash
|
||||
curl http://localhost:20128/health
|
||||
```
|
||||
|
||||
**预期响应:**
|
||||
```json
|
||||
{
|
||||
"status": "ok",
|
||||
"version": "1.0.0"
|
||||
}
|
||||
```
|
||||
|
||||
### 列出可用模型
|
||||
|
||||
```bash
|
||||
curl http://localhost:20128/v1/models \
|
||||
-H "Authorization: Bearer your-api-key"
|
||||
```
|
||||
|
||||
**预期响应:**
|
||||
```json
|
||||
{
|
||||
"object": "list",
|
||||
"data": [
|
||||
{
|
||||
"id": "cc/claude-opus-4-5-20251101",
|
||||
"object": "model",
|
||||
"created": 1234567890,
|
||||
"owned_by": "claude-code"
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
### 测试 Chat Completion
|
||||
|
||||
```bash
|
||||
curl http://localhost:20128/v1/chat/completions \
|
||||
-H "Authorization: Bearer your-api-key" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{
|
||||
"model": "cc/claude-opus-4-5-20251101",
|
||||
"messages": [
|
||||
{"role": "user", "content": "Hello!"}
|
||||
]
|
||||
}'
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 配置
|
||||
|
||||
### 环境变量
|
||||
|
||||
创建 `.env` 文件或设置环境变量:
|
||||
|
||||
```bash
|
||||
# Security (REQUIRED in production)
|
||||
export JWT_SECRET="your-secure-secret-change-this"
|
||||
export INITIAL_PASSWORD="your-password"
|
||||
|
||||
# Storage
|
||||
export DATA_DIR="~/.9router"
|
||||
|
||||
# Server
|
||||
export PORT="20128"
|
||||
export NODE_ENV="production"
|
||||
|
||||
# Logging
|
||||
export ENABLE_REQUEST_LOGS="false"
|
||||
```
|
||||
|
||||
### 数据目录
|
||||
|
||||
**默认位置:** `~/.9router`
|
||||
|
||||
**内容:**
|
||||
```
|
||||
~/.9router/
|
||||
├── db.json # 数据库(提供商、组合、使用)
|
||||
├── api-keys.json # API keys
|
||||
└── logs/ # 请求日志(若启用)
|
||||
```
|
||||
|
||||
**修改位置:**
|
||||
|
||||
```bash
|
||||
export DATA_DIR="/custom/path"
|
||||
9router
|
||||
```
|
||||
|
||||
### 端口配置
|
||||
|
||||
**默认端口:** `20128`
|
||||
|
||||
**修改端口:**
|
||||
|
||||
```bash
|
||||
export PORT="3000"
|
||||
9router
|
||||
```
|
||||
|
||||
**或用命令行:**
|
||||
|
||||
```bash
|
||||
9router --port 3000
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 故障排除
|
||||
|
||||
### 端口已被占用
|
||||
|
||||
**错误:**
|
||||
```
|
||||
Error: listen EADDRINUSE: address already in use :::20128
|
||||
```
|
||||
|
||||
**方案 1:杀掉占用进程**
|
||||
|
||||
```bash
|
||||
# 找到使用 20128 端口的进程
|
||||
lsof -i :20128
|
||||
|
||||
# 杀掉进程
|
||||
kill -9 <PID>
|
||||
```
|
||||
|
||||
**方案 2:使用其他端口**
|
||||
|
||||
```bash
|
||||
9router --port 3000
|
||||
```
|
||||
|
||||
### 权限被拒绝
|
||||
|
||||
**错误:**
|
||||
```
|
||||
Error: EACCES: permission denied, mkdir '/usr/local/lib/node_modules/9router'
|
||||
```
|
||||
|
||||
**方案:使用 sudo(不推荐)或修复 npm 权限**
|
||||
|
||||
```bash
|
||||
# 修复 npm 权限(推荐)
|
||||
mkdir ~/.npm-global
|
||||
npm config set prefix '~/.npm-global'
|
||||
echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc
|
||||
source ~/.bashrc
|
||||
|
||||
# 然后重新安装
|
||||
npm install -g 9router
|
||||
```
|
||||
|
||||
### Node.js 版本过低
|
||||
|
||||
**错误:**
|
||||
```
|
||||
Error: The engine "node" is incompatible with this module
|
||||
```
|
||||
|
||||
**方案:更新 Node.js**
|
||||
|
||||
```bash
|
||||
# 使用 nvm(推荐)
|
||||
nvm install 20
|
||||
nvm use 20
|
||||
|
||||
# 或从 nodejs.org 下载
|
||||
```
|
||||
|
||||
### 仪表盘无法打开
|
||||
|
||||
**问题:** 仪表盘没有自动打开
|
||||
|
||||
**方案 1:手动打开**
|
||||
|
||||
```
|
||||
http://localhost:20128
|
||||
```
|
||||
|
||||
**方案 2:检查防火墙**
|
||||
|
||||
```bash
|
||||
# macOS: 在 System Preferences → Security 中允许 Node.js
|
||||
# Linux: 检查 iptables
|
||||
# Windows: 检查 Windows Firewall
|
||||
```
|
||||
|
||||
### 无法连接提供商
|
||||
|
||||
**问题:** OAuth 登录失败或 API key 无效
|
||||
|
||||
**方案 1:检查网络连接**
|
||||
|
||||
```bash
|
||||
ping google.com
|
||||
```
|
||||
|
||||
**方案 2:检查提供商状态**
|
||||
|
||||
- Claude Code: [status.anthropic.com](https://status.anthropic.com)
|
||||
- OpenAI: [status.openai.com](https://status.openai.com)
|
||||
- Gemini: [status.cloud.google.com](https://status.cloud.google.com)
|
||||
|
||||
**方案 3:重新生成 API key**
|
||||
|
||||
```
|
||||
仪表盘 → 提供商 → 断开 → 重新连接
|
||||
```
|
||||
|
||||
### 内存占用过高
|
||||
|
||||
**问题:** 9Router 占用过多 RAM
|
||||
|
||||
**方案:重启服务器**
|
||||
|
||||
```bash
|
||||
# 停止
|
||||
pkill -f 9router
|
||||
|
||||
# 启动
|
||||
9router
|
||||
```
|
||||
|
||||
**或用 PM2 自动重启:**
|
||||
|
||||
```bash
|
||||
npm install -g pm2
|
||||
pm2 start 9router --name 9router
|
||||
pm2 save
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 部署选项
|
||||
|
||||
### 本地开发
|
||||
|
||||
```bash
|
||||
npm install -g 9router
|
||||
9router
|
||||
```
|
||||
|
||||
**适用场景:** 个人编码、测试
|
||||
|
||||
### VPS/云服务器
|
||||
|
||||
```bash
|
||||
# 安装
|
||||
npm install -g 9router
|
||||
|
||||
# 配置
|
||||
export JWT_SECRET="your-secure-secret"
|
||||
export INITIAL_PASSWORD="your-password"
|
||||
export NODE_ENV="production"
|
||||
|
||||
# 用 PM2 启动
|
||||
npm install -g pm2
|
||||
pm2 start 9router --name 9router
|
||||
pm2 save
|
||||
pm2 startup
|
||||
```
|
||||
|
||||
**适用场景:** 团队访问、远程编码
|
||||
|
||||
### Docker
|
||||
|
||||
```bash
|
||||
docker pull 9router/9router:latest
|
||||
|
||||
docker run -d \
|
||||
-p 20128:20128 \
|
||||
-e JWT_SECRET="your-secure-secret" \
|
||||
-e INITIAL_PASSWORD="your-password" \
|
||||
-v 9router-data:/root/.9router \
|
||||
--name 9router \
|
||||
9router/9router:latest
|
||||
```
|
||||
|
||||
**适用场景:** 容器化部署、Kubernetes
|
||||
|
||||
### 反向代理(Nginx)
|
||||
|
||||
```nginx
|
||||
server {
|
||||
listen 80;
|
||||
server_name your-domain.com;
|
||||
|
||||
location / {
|
||||
proxy_pass http://localhost:20128;
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection 'upgrade';
|
||||
proxy_set_header Host $host;
|
||||
|
||||
# SSE support for streaming
|
||||
proxy_buffering off;
|
||||
proxy_read_timeout 86400;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
**适用场景:** HTTPS、自定义域名、负载均衡
|
||||
|
||||
---
|
||||
|
||||
## 卸载
|
||||
|
||||
### 移除全局安装
|
||||
|
||||
```bash
|
||||
npm uninstall -g 9router
|
||||
```
|
||||
|
||||
### 移除数据目录
|
||||
|
||||
```bash
|
||||
rm -rf ~/.9router
|
||||
```
|
||||
|
||||
### 移除配置
|
||||
|
||||
```bash
|
||||
# 从 shell 配置中移除环境变量
|
||||
nano ~/.bashrc # 或 ~/.zshrc
|
||||
# 删除 9router 相关的 export
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 下一步
|
||||
|
||||
- [入门指南](../getting-started.md) - 连接提供商并开始编码
|
||||
- [功能特性](../features/) - 探索配额跟踪、组合、部署
|
||||
- [故障排除](../troubleshooting.md) - 解决常见问题
|
||||
|
||||
---
|
||||
|
||||
## 需要帮助?
|
||||
|
||||
- **网站**: [9router.com](https://9router.com)
|
||||
- **GitHub**: [github.com/decolua/9router](https://github.com/decolua/9router)
|
||||
- **Issues**: [github.com/decolua/9router/issues](https://github.com/decolua/9router/issues)
|
||||
247
gitbook/content/zh-CN/getting-started/quick-start.md
Normal file
247
gitbook/content/zh-CN/getting-started/quick-start.md
Normal file
@@ -0,0 +1,247 @@
|
||||
# 入门指南
|
||||
|
||||
5 分钟启动 9Router,开始智能路由 AI 请求。
|
||||
|
||||
---
|
||||
|
||||
## 快速开始
|
||||
|
||||
### 1. 安装
|
||||
|
||||
```bash
|
||||
npm install -g 9router
|
||||
```
|
||||
|
||||
**要求:** Node.js 20+([安装详情](getting-started/installation.md))
|
||||
|
||||
### 2. 启动
|
||||
|
||||
```bash
|
||||
9router
|
||||
```
|
||||
|
||||
🎉 **仪表盘自动打开** 地址为 `http://localhost:20128`
|
||||
|
||||
- 默认密码:`123456`(在仪表盘中修改)
|
||||
- API key 自动生成
|
||||
- 可立即连接提供商
|
||||
|
||||
### 3. 连接提供商
|
||||
|
||||
有 3 种方式连接提供商:
|
||||
|
||||
#### 方式 A:OAuth(订阅型提供商)
|
||||
|
||||
**适用于:** Claude Code、Codex、Gemini CLI、GitHub Copilot
|
||||
|
||||
```
|
||||
仪表盘 → 提供商 → 连接 [提供商]
|
||||
→ OAuth 登录 → 自动刷新 token
|
||||
→ 启用配额跟踪
|
||||
```
|
||||
|
||||
**示例:Claude Code**
|
||||
1. 点击 "Connect Claude Code"
|
||||
2. 用你的 Claude 账户登录
|
||||
3. 授权 9Router
|
||||
4. ✅ 完成!使用模型:`cc/claude-opus-4-5-20251101`
|
||||
|
||||
#### 方式 B:API Key(低价提供商)
|
||||
|
||||
**适用于:** GLM、MiniMax、Kimi、OpenRouter
|
||||
|
||||
```
|
||||
仪表盘 → 提供商 → 添加 API Key
|
||||
→ 选择提供商
|
||||
→ 粘贴 API key
|
||||
→ 保存
|
||||
```
|
||||
|
||||
**示例:GLM-4.7**
|
||||
1. 在 [Zhipu AI](https://open.bigmodel.cn/) 注册
|
||||
2. 从 Coding Plan 获取 API key
|
||||
3. 仪表盘 → 添加 API Key → 提供商:`glm` → 粘贴 key
|
||||
4. ✅ 完成!使用模型:`glm/glm-4.7`
|
||||
|
||||
#### 方式 C:免费提供商(零成本)
|
||||
|
||||
**适用于:** iFlow、Qwen、Kiro
|
||||
|
||||
```
|
||||
仪表盘 → 提供商 → 连接 [免费提供商]
|
||||
→ 设备码或 OAuth
|
||||
→ 无限使用
|
||||
```
|
||||
|
||||
**示例:iFlow**
|
||||
1. 点击 "Connect iFlow"
|
||||
2. 用 iFlow 账户登录
|
||||
3. 授权
|
||||
4. ✅ 完成!使用 8 个模型:`if/kimi-k2-thinking`、`if/qwen3-coder-plus` 等
|
||||
|
||||
---
|
||||
|
||||
## 4. 在 CLI 工具中使用
|
||||
|
||||
将你的编码工具指向 9Router:
|
||||
|
||||
### Cursor IDE
|
||||
|
||||
```
|
||||
Settings → Models → Advanced:
|
||||
OpenAI API Base URL: http://localhost:20128/v1
|
||||
OpenAI API Key: [从 9router 仪表盘获取]
|
||||
Model: cc/claude-opus-4-5-20251101
|
||||
```
|
||||
|
||||
### Claude Desktop
|
||||
|
||||
编辑 `~/.claude/config.json`:
|
||||
|
||||
```json
|
||||
{
|
||||
"anthropic_api_base": "http://localhost:20128/v1",
|
||||
"anthropic_api_key": "your-9router-api-key"
|
||||
}
|
||||
```
|
||||
|
||||
### Cline / Continue / RooCode
|
||||
|
||||
```
|
||||
Provider: OpenAI Compatible
|
||||
Base URL: http://localhost:20128/v1
|
||||
API Key: [从仪表盘获取]
|
||||
Model: cc/claude-opus-4-5-20251101
|
||||
```
|
||||
|
||||
### Codex CLI
|
||||
|
||||
```bash
|
||||
export OPENAI_BASE_URL="http://localhost:20128"
|
||||
export OPENAI_API_KEY="your-9router-api-key"
|
||||
|
||||
codex "your prompt"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 5. 创建智能组合(可选)
|
||||
|
||||
组合(Combos)可在多个模型之间实现自动回退:
|
||||
|
||||
```
|
||||
仪表盘 → 组合 → 新建
|
||||
|
||||
名称: premium-coding
|
||||
模型:
|
||||
1. cc/claude-opus-4-5-20251101 (订阅主力)
|
||||
2. glm/glm-4.7 (低价备用, $0.6/1M)
|
||||
3. if/kimi-k2-thinking (免费回退)
|
||||
|
||||
CLI 中使用: premium-coding
|
||||
```
|
||||
|
||||
**工作原理:**
|
||||
1. 先尝试 Claude Opus(你的订阅)
|
||||
2. 配额耗尽 → GLM-4.7(超低价)
|
||||
3. 预算上限 → iFlow(免费)
|
||||
4. 零停机,自动切换!
|
||||
|
||||
---
|
||||
|
||||
## 可用模型
|
||||
|
||||
### 订阅型模型(优先使用)
|
||||
|
||||
**Claude Code (`cc/`)** - Pro/Max 订阅:
|
||||
- `cc/claude-opus-4-5-20251101` - Claude 4.5 Opus
|
||||
- `cc/claude-sonnet-4-5-20250929` - Claude 4.5 Sonnet
|
||||
- `cc/claude-haiku-4-5-20251001` - Claude 4.5 Haiku
|
||||
|
||||
**Codex (`cx/`)** - Plus/Pro 订阅:
|
||||
- `cx/gpt-5.2-codex` - GPT 5.2 Codex
|
||||
- `cx/gpt-5.1-codex-max` - GPT 5.1 Codex Max
|
||||
|
||||
**Gemini CLI (`gc/`)** - 每月免费 180K:
|
||||
- `gc/gemini-3-flash-preview` - Gemini 3 Flash Preview
|
||||
- `gc/gemini-2.5-pro` - Gemini 2.5 Pro
|
||||
|
||||
**GitHub Copilot (`gh/`)** - 订阅:
|
||||
- `gh/gpt-5` - GPT-5
|
||||
- `gh/claude-4.5-sonnet` - Claude 4.5 Sonnet
|
||||
|
||||
### 低价模型(备用)
|
||||
|
||||
**GLM (`glm/`)** - 每 1M $0.6/$2.2:
|
||||
- `glm/glm-4.7` - GLM 4.7(每日 10AM 重置)
|
||||
|
||||
**MiniMax (`minimax/`)** - 每 1M $0.20/$1.00:
|
||||
- `minimax/MiniMax-M2.1` - MiniMax M2.1(5h 重置)
|
||||
|
||||
**Kimi (`kimi/`)** - $9/月(10M tokens):
|
||||
- `kimi/kimi-latest` - Kimi Latest
|
||||
|
||||
### 免费模型(应急)
|
||||
|
||||
**iFlow (`if/`)** - 8 个免费模型:
|
||||
- `if/kimi-k2-thinking` - Kimi K2 Thinking
|
||||
- `if/qwen3-coder-plus` - Qwen3 Coder Plus
|
||||
- `if/glm-4.7` - GLM 4.7
|
||||
- `if/deepseek-r1` - DeepSeek R1
|
||||
|
||||
**Qwen (`qw/`)** - 3 个免费模型:
|
||||
- `qw/qwen3-coder-plus` - Qwen3 Coder Plus
|
||||
- `qw/qwen3-coder-flash` - Qwen3 Coder Flash
|
||||
|
||||
**Kiro (`kr/`)** - 2 个免费模型:
|
||||
- `kr/claude-sonnet-4.5` - Claude Sonnet 4.5
|
||||
- `kr/claude-haiku-4.5` - Claude Haiku 4.5
|
||||
|
||||
---
|
||||
|
||||
## 成本优化策略
|
||||
|
||||
### 月度预算:$10-20/月
|
||||
|
||||
```
|
||||
1. 用 Gemini CLI 免费层(每月 180K)处理快速任务
|
||||
2. 用足 Claude Code 订阅配额(你已经付费了)
|
||||
3. 配额用完后回退到 GLM(每 1M $0.6)
|
||||
4. 应急: MiniMax M2.1(每 1M $0.20)或 iFlow(免费)
|
||||
|
||||
真实案例(每月 100M tokens):
|
||||
60M 通过 Gemini CLI: $0(免费层)
|
||||
30M 通过 Claude Code: $0(你已有的订阅)
|
||||
8M 通过 GLM: $4.80
|
||||
2M 通过 MiniMax: $0.40
|
||||
合计: $5.20/月 + 已有订阅
|
||||
```
|
||||
|
||||
### 配额重置策略
|
||||
|
||||
```
|
||||
日常安排:
|
||||
1. 早上: 全新的 Claude Code 配额(5h 重置)
|
||||
2. 下午: 切换到 Gemini CLI(每日 1K)
|
||||
3. 晚上: GLM 每日配额(次日 10AM 重置)
|
||||
4. 深夜: MiniMax(5h 滚动)或 iFlow(免费)
|
||||
|
||||
→ 24/7 编码,几乎零额外成本!
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 下一步
|
||||
|
||||
- [安装详情](getting-started/installation.md) - 要求与故障排除
|
||||
- [功能特性](features/) - 探索配额跟踪、组合、部署
|
||||
- [常见问题](faq.md) - 常见问题与解答
|
||||
- [故障排除](troubleshooting.md) - 解决常见问题
|
||||
|
||||
---
|
||||
|
||||
## 需要帮助?
|
||||
|
||||
- **网站**: [9router.com](https://9router.com)
|
||||
- **GitHub**: [github.com/decolua/9router](https://github.com/decolua/9router)
|
||||
- **Issues**: [github.com/decolua/9router/issues](https://github.com/decolua/9router/issues)
|
||||
164
gitbook/content/zh-CN/index.md
Normal file
164
gitbook/content/zh-CN/index.md
Normal file
@@ -0,0 +1,164 @@
|
||||
# 欢迎使用 9Router
|
||||
|
||||
**免费使用 Claude、Codex、Gemini • 超低价替代方案,每 1M token 仅需 $0.20**
|
||||
|
||||
9Router 是一款 AI 模型路由工具,通过智能路由和自动回退机制,最大化你的订阅价值并最小化成本。
|
||||
|
||||
---
|
||||
|
||||
## 什么是 9Router?
|
||||
|
||||
9Router 是一款智能代理,位于你的编码工具(Cursor、Cline、Claude Desktop)与 AI 提供商之间。它会根据配额、成本和可用性,自动将请求路由到最合适的模型。
|
||||
|
||||
**告别浪费:**
|
||||
- ❌ 订阅配额每月未用完就过期
|
||||
- ❌ 速率限制让你写代码写到一半被卡住
|
||||
- ❌ 昂贵的 API(每个提供商每月 $20-50)
|
||||
- ❌ 在不同提供商之间手动切换
|
||||
|
||||
**开始最大化价值:**
|
||||
- ✅ **充分利用订阅** - 跟踪并用完 Claude Code、Codex、Gemini 的每一点配额
|
||||
- ✅ **免费可用** - 通过 CLI 访问 iFlow、Qwen、Kiro 模型
|
||||
- ✅ **超低价备用** - GLM(每 1M $0.6)、MiniMax M2.1(每 1M $0.20)
|
||||
- ✅ **智能回退** - 订阅 → 低价 → 免费,自动切换
|
||||
|
||||
---
|
||||
|
||||
## 核心特性
|
||||
|
||||
### 🔄 智能三层回退
|
||||
|
||||
```
|
||||
一次配置,永不停码:
|
||||
|
||||
第 1 层(订阅): Claude Code → Codex → Gemini
|
||||
↓ 配额耗尽
|
||||
第 2 层(低价): GLM-4.7 → MiniMax M2.1 → Kimi
|
||||
↓ 预算上限
|
||||
第 3 层(免费): iFlow → Qwen → Kiro
|
||||
|
||||
→ 自动切换,零停机!
|
||||
```
|
||||
|
||||
### 📊 配额跟踪
|
||||
|
||||
- 每个提供商的实时 token 消耗
|
||||
- 重置倒计时(5 小时、每日、每周、每月)
|
||||
- 付费层级的成本估算
|
||||
- 每月支出报告
|
||||
|
||||
### 🎯 通用 CLI 支持
|
||||
|
||||
适用于所有支持自定义 OpenAI endpoint 的工具:
|
||||
|
||||
✅ **Cursor** • **Cline** • **Claude Desktop** • **Codex** • **RooCode** • **Continue** • **任何 OpenAI 兼容工具**
|
||||
|
||||
### 💰 成本优化
|
||||
|
||||
**真实案例(每月 100M tokens):**
|
||||
```
|
||||
60M 通过 Gemini CLI: $0(免费层)
|
||||
30M 通过 Claude Code: $0(你已有的订阅)
|
||||
8M 通过 GLM: $4.80
|
||||
2M 通过 MiniMax: $0.40
|
||||
合计: $5.20/月,而 ChatGPT API 需要 $2000!
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 为什么选择 9Router?
|
||||
|
||||
### 最大化订阅价值
|
||||
|
||||
已经在为 Claude Code(每月 $20-100)或 Codex(每月 $20-200)付费?那就用足它:
|
||||
|
||||
- 实时跟踪配额使用
|
||||
- 配额重置时(5 小时、每周)自动切换
|
||||
- 在过期前用掉每一个 token
|
||||
- Gemini CLI:每月 180K 次补全 **免费**
|
||||
|
||||
### 超低价备用
|
||||
|
||||
订阅配额用完时,只需花几分钱:
|
||||
|
||||
| 提供商 | 每 1M tokens 成本 | 重置时间 |
|
||||
|----------|-------------------|-------|
|
||||
| **GLM-4.7** | 输入 $0.60 / 输出 $2.20 | 每日 10:00 AM |
|
||||
| **MiniMax M2.1** | 输入 $0.20 / 输出 $1.00 | 5 小时滚动 |
|
||||
| **Kimi K2** | $9/月(10M tokens) | 每月 |
|
||||
|
||||
**比 ChatGPT API(每 1M $20)便宜约 90%!**
|
||||
|
||||
### 永久免费回退
|
||||
|
||||
当其他一切都受配额限制时的应急备用:
|
||||
|
||||
- **iFlow**:8 个模型(Kimi K2、Qwen3 Coder Plus、GLM 4.7、MiniMax M2)
|
||||
- **Qwen**:3 个模型(Qwen3 Coder Plus/Flash、Vision)
|
||||
- **Kiro**:Claude Sonnet 4.5、Haiku 4.5(AWS Builder ID)
|
||||
|
||||
---
|
||||
|
||||
## 快速开始
|
||||
|
||||
2 分钟即可上手:
|
||||
|
||||
```bash
|
||||
# 全局安装
|
||||
npm install -g 9router
|
||||
|
||||
# 启动(仪表盘自动打开)
|
||||
9router
|
||||
```
|
||||
|
||||
🎉 **仪表盘自动打开** → 连接提供商 → 开始编码!
|
||||
|
||||
**在你的 CLI 工具中使用:**
|
||||
|
||||
```
|
||||
Endpoint: http://localhost:20128/v1
|
||||
API Key: [从仪表盘获取]
|
||||
Model: cc/claude-opus-4-5-20251101
|
||||
```
|
||||
|
||||
[→ 完整入门指南](getting-started.md)
|
||||
|
||||
---
|
||||
|
||||
## 使用场景
|
||||
|
||||
### 个人开发者
|
||||
|
||||
- 最大化你的 Claude Code/Codex 订阅
|
||||
- 使用 Gemini CLI 免费层(每月 180K)
|
||||
- 回退到超低价模型(每 1M $0.20)
|
||||
- 24/7 编码不受速率限制
|
||||
|
||||
### 团队
|
||||
|
||||
- 部署在 VPS/云服务器上共享访问
|
||||
- 实时跟踪团队支出
|
||||
- 为每层设置预算上限
|
||||
- 集中管理提供商
|
||||
|
||||
### 移动/远程编码
|
||||
|
||||
- 使用云端部署(https://9router.com)
|
||||
- 从 iPad、手机、任何地方访问
|
||||
- 没有 localhost 限制
|
||||
- Cloudflare 边缘网络(300+ 节点)
|
||||
|
||||
---
|
||||
|
||||
## 接下来做什么?
|
||||
|
||||
- [入门指南](getting-started.md) - 5 分钟内完成安装和配置
|
||||
- [安装指南](getting-started/installation.md) - 详细的设置说明
|
||||
- [功能特性](features/) - 探索所有能力
|
||||
- [常见问题](faq.md) - 常见问题解答
|
||||
|
||||
---
|
||||
|
||||
<div align="center">
|
||||
<sub>用 ❤️ 为最大化 AI 价值的开发者打造</sub>
|
||||
</div>
|
||||
109
gitbook/content/zh-CN/integration/claude-code.md
Normal file
109
gitbook/content/zh-CN/integration/claude-code.md
Normal file
@@ -0,0 +1,109 @@
|
||||
# Claude Code 集成
|
||||
|
||||
将 9Router 与 Claude Code CLI 集成,通过 9Router 的智能路由系统转发你的 Anthropic API 请求。
|
||||
|
||||
## 前置要求
|
||||
|
||||
- 已安装 Claude Code CLI
|
||||
- 9Router 本地运行或已配置云端 endpoint
|
||||
- 来自 9Router 仪表盘的 API key
|
||||
|
||||
## 设置
|
||||
|
||||
### 1. 配置环境变量
|
||||
|
||||
在 shell 配置文件(`~/.bashrc`、`~/.zshrc` 或 `~/.bash_profile`)中设置以下环境变量:
|
||||
|
||||
```bash
|
||||
# 9Router 的 Base URL
|
||||
export ANTHROPIC_BASE_URL="http://localhost:20128/v1"
|
||||
|
||||
# 可选: 为别名设置默认模型
|
||||
export ANTHROPIC_DEFAULT_OPUS_MODEL="cc/claude-opus-4-5-20251101"
|
||||
export ANTHROPIC_DEFAULT_SONNET_MODEL="cc/claude-sonnet-4-5-20250929"
|
||||
export ANTHROPIC_DEFAULT_HAIKU_MODEL="cc/claude-haiku-4-5-20251001"
|
||||
```
|
||||
|
||||
### 2. 重新加载 Shell 配置
|
||||
|
||||
```bash
|
||||
source ~/.zshrc # 或 ~/.bashrc
|
||||
```
|
||||
|
||||
### 3. 验证配置
|
||||
|
||||
检查环境变量是否设置正确:
|
||||
|
||||
```bash
|
||||
echo $ANTHROPIC_BASE_URL
|
||||
```
|
||||
|
||||
## 模型别名
|
||||
|
||||
Claude Code 支持以下模型别名,映射到 9Router 模型:
|
||||
|
||||
| 别名 | 模型 | 环境变量 |
|
||||
|-------|-------|---------------------|
|
||||
| `opus` | Claude Opus 4.5 | `ANTHROPIC_DEFAULT_OPUS_MODEL` |
|
||||
| `sonnet` | Claude Sonnet 4.5 | `ANTHROPIC_DEFAULT_SONNET_MODEL` |
|
||||
| `haiku` | Claude Haiku 4.5 | `ANTHROPIC_DEFAULT_HAIKU_MODEL` |
|
||||
|
||||
## 使用示例
|
||||
|
||||
### 使用模型别名
|
||||
|
||||
```bash
|
||||
# 使用 Opus 模型
|
||||
claude --model opus "Explain quantum computing"
|
||||
|
||||
# 使用 Sonnet 模型
|
||||
claude --model sonnet "Write a Python function"
|
||||
|
||||
# 使用 Haiku 模型
|
||||
claude --model haiku "Quick code review"
|
||||
```
|
||||
|
||||
### 使用完整模型名
|
||||
|
||||
```bash
|
||||
claude --model cc/claude-opus-4-5-20251101 "Your prompt here"
|
||||
```
|
||||
|
||||
## 配置文件
|
||||
|
||||
Claude Code 将配置存储在 `~/.claude/settings.json`。如有需要可手动编辑:
|
||||
|
||||
```json
|
||||
{
|
||||
"baseUrl": "http://localhost:20128/v1",
|
||||
"defaultModel": "sonnet"
|
||||
}
|
||||
```
|
||||
|
||||
## 故障排除
|
||||
|
||||
### 连接问题
|
||||
|
||||
遇到连接错误时:
|
||||
|
||||
1. 确认 9Router 正在运行:`curl http://localhost:20128/health`
|
||||
2. 检查环境变量设置是否正确
|
||||
3. 确保防火墙没有阻止 20128 端口
|
||||
|
||||
### 模型未找到
|
||||
|
||||
出现 "model not found" 错误时:
|
||||
|
||||
1. 确认模型名与 9Router 配置一致
|
||||
2. 检查 9Router 仪表盘中提供商连接是否激活
|
||||
3. 确认所连接的提供商中包含该模型
|
||||
|
||||
## 云端 Endpoint
|
||||
|
||||
使用 9Router 云端 endpoint 而非 localhost:
|
||||
|
||||
```bash
|
||||
export ANTHROPIC_BASE_URL="https://9router.com"
|
||||
```
|
||||
|
||||
确保已在 9Router 云端仪表盘中配置 API key。
|
||||
201
gitbook/content/zh-CN/integration/cline.md
Normal file
201
gitbook/content/zh-CN/integration/cline.md
Normal file
@@ -0,0 +1,201 @@
|
||||
# Cline 集成
|
||||
|
||||
将 9Router 与 Cline VSCode 扩展集成,通过 9Router 的智能路由系统转发你的 AI 请求。
|
||||
|
||||
## 前置要求
|
||||
|
||||
- 已安装 Visual Studio Code
|
||||
- 从 VSCode 市场安装了 Cline 扩展
|
||||
- 9Router 本地运行或已配置云端 endpoint
|
||||
- 来自 9Router 仪表盘的 API key
|
||||
|
||||
## 设置
|
||||
|
||||
### 1. 打开 Cline 设置
|
||||
|
||||
1. 打开 Visual Studio Code
|
||||
2. 打开 Cline 扩展面板(点击侧边栏的 Cline 图标)
|
||||
3. 点击 Cline 面板中的 **Settings**(齿轮图标)
|
||||
|
||||
### 2. 选择 API Provider
|
||||
|
||||
1. 在 Cline 设置中找到 **API Provider** 下拉菜单
|
||||
2. 从列表中选择 **Ollama**
|
||||
- 注意:我们使用 Ollama provider 类型,因为它与 OpenAI 风格 API 兼容
|
||||
|
||||
### 3. 配置 Base URL
|
||||
|
||||
将 base URL 设为你的 9Router endpoint:
|
||||
|
||||
**本地 9Router:**
|
||||
```
|
||||
http://localhost:20128/v1
|
||||
```
|
||||
|
||||
**云端 9Router:**
|
||||
```
|
||||
https://9router.com
|
||||
```
|
||||
|
||||
**步骤:**
|
||||
1. 在 **Base URL** 字段中输入你的 9Router endpoint
|
||||
2. 末尾必须包含 `/v1`
|
||||
|
||||
### 4. 添加 API Key
|
||||
|
||||
1. 在 **API Key** 字段中输入你的 9Router API key
|
||||
2. 可在 9Router 仪表盘 **Settings → API Keys** 中找到 API key
|
||||
3. key 应以 `sk-9router-` 开头
|
||||
|
||||
### 5. 选择模型
|
||||
|
||||
1. 在 **Model** 下拉菜单中,可以:
|
||||
- 从可用模型中选择(若 Cline 自动检测)
|
||||
- 或手动输入 9Router 配置中的模型名
|
||||
|
||||
2. 常见模型名:
|
||||
- `gpt-4`
|
||||
- `gpt-4o`
|
||||
- `claude-opus-4-5`
|
||||
- `claude-sonnet-4-5`
|
||||
- `gemini-2.0-flash`
|
||||
|
||||
### 6. 保存配置
|
||||
|
||||
点击 **Save** 或关闭设置面板。Cline 会自动保存你的配置。
|
||||
|
||||
## 配置示例
|
||||
|
||||
你的 Cline 设置应如下所示:
|
||||
|
||||
```
|
||||
API Provider: Ollama
|
||||
Base URL: http://localhost:20128/v1
|
||||
API Key: sk-9router-xxxxxxxxxxxxx
|
||||
Model: gpt-4
|
||||
```
|
||||
|
||||
## 可用模型
|
||||
|
||||
你可以使用 9Router 仪表盘中配置的任意模型。常见示例:
|
||||
|
||||
| 模型名 | 提供商 | 描述 |
|
||||
|------------|----------|-------------|
|
||||
| `gpt-4` | OpenAI | GPT-4 Turbo |
|
||||
| `gpt-4o` | OpenAI | GPT-4 Optimized |
|
||||
| `claude-opus-4-5` | Anthropic | Claude Opus 4.5 |
|
||||
| `claude-sonnet-4-5` | Anthropic | Claude Sonnet 4.5 |
|
||||
| `gemini-2.0-flash` | Google | Gemini 2.0 Flash |
|
||||
|
||||
## 使用
|
||||
|
||||
### 与 AI 对话
|
||||
|
||||
1. 在 VSCode 中打开 Cline 面板
|
||||
2. 在聊天输入框中输入消息
|
||||
3. 按 Enter 发送
|
||||
4. Cline 会通过 9Router 处理你的请求
|
||||
|
||||
### 生成代码
|
||||
|
||||
1. 让 Cline 生成代码:"创建一个登录表单的 React 组件"
|
||||
2. Cline 会通过 9Router 生成代码
|
||||
3. 检查并接受生成的代码
|
||||
|
||||
### 代码解释
|
||||
|
||||
1. 在编辑器中选中代码
|
||||
2. 让 Cline:"解释这段代码"
|
||||
3. 通过 9Router 获得 AI 驱动的解释
|
||||
|
||||
### 文件操作
|
||||
|
||||
1. 让 Cline 创建、修改或删除文件
|
||||
2. Cline 会通过 9Router 理解上下文并进行修改
|
||||
3. 在接受前检查变更
|
||||
|
||||
## 故障排除
|
||||
|
||||
### "Connection Failed" 错误
|
||||
|
||||
1. 确认 9Router 正在运行:`curl http://localhost:20128/health`
|
||||
2. 确认 base URL 正确且包含 `/v1`
|
||||
3. 确保防火墙没有阻止 20128 端口
|
||||
4. 尝试重启 VSCode
|
||||
|
||||
### "Invalid API Key" 错误
|
||||
|
||||
1. 在 9Router 仪表盘中确认 API key
|
||||
2. 确保复制了包含 `sk-9router-` 前缀在内的完整 key
|
||||
3. 检查 API key 是否过期
|
||||
4. 尝试重新生成 API key
|
||||
|
||||
### "Model Not Found" 错误
|
||||
|
||||
1. 确认模型名与 9Router 配置完全一致
|
||||
2. 检查 9Router 仪表盘中提供商连接是否激活
|
||||
3. 确认连接的提供商中包含该模型
|
||||
4. 尝试使用完整模型名(例如用 `openai/gpt-4` 代替 `gpt-4`)
|
||||
|
||||
### Cline 无响应
|
||||
|
||||
1. 查看 Cline 输出面板中的错误信息
|
||||
2. 确认 9Router 实例正在运行且健康
|
||||
3. 重新加载 VSCode 窗口(Cmd/Ctrl + Shift + P → "Reload Window")
|
||||
4. 检查 9Router 日志是否有错误
|
||||
|
||||
## 高级配置
|
||||
|
||||
### 使用云端 Endpoint
|
||||
|
||||
使用 9Router 云端 endpoint 而非 localhost:
|
||||
|
||||
1. 在 Cline 设置中将 Base URL 设为:`https://9router.com`
|
||||
2. 确保已在 9Router 云端仪表盘中配置 API key
|
||||
3. 确保云端 endpoint 已激活且可访问
|
||||
|
||||
### 多个模型
|
||||
|
||||
可以快速切换模型:
|
||||
|
||||
1. 打开 Cline 设置
|
||||
2. 将 **Model** 字段改为另一个模型
|
||||
3. 保存并继续使用新模型对话
|
||||
|
||||
### 自定义超时
|
||||
|
||||
如果大请求出现超时:
|
||||
|
||||
1. 打开 VSCode 设置(Cmd/Ctrl + ,)
|
||||
2. 搜索 "Cline timeout"
|
||||
3. 提高超时值(默认通常为 30 秒)
|
||||
|
||||
## 最佳实践
|
||||
|
||||
1. **使用合适的模型**:简单任务用更快的模型(如 Haiku 或 Flash),复杂任务用更强的模型(如 Opus 或 GPT-4)
|
||||
2. **监控使用**:在 9Router 仪表盘查看用量统计和成本
|
||||
3. **管理上下文**:保持对话聚焦以减少 token 用量
|
||||
4. **切换模型**:根据任务复杂度切换模型,优化成本和性能
|
||||
5. **API Key 安全**:绝不将 API key 提交到版本控制
|
||||
|
||||
## 与 9Router 功能的集成
|
||||
|
||||
### 模型路由
|
||||
|
||||
9Router 会根据以下因素自动将请求路由到最佳提供商:
|
||||
- 模型可用性
|
||||
- 提供商健康状态
|
||||
- 成本优化
|
||||
- 负载均衡
|
||||
|
||||
### 回退支持
|
||||
|
||||
某个提供商失败时,9Router 会自动回退到仪表盘中配置的备用提供商。
|
||||
|
||||
### 使用跟踪
|
||||
|
||||
通过 9Router 仪表盘监控你的 Cline 使用:
|
||||
- 请求总数
|
||||
- Token 使用
|
||||
- 每个模型的成本
|
||||
- 提供商分布
|
||||
136
gitbook/content/zh-CN/integration/codex.md
Normal file
136
gitbook/content/zh-CN/integration/codex.md
Normal file
@@ -0,0 +1,136 @@
|
||||
# OpenAI Codex CLI 集成
|
||||
|
||||
将 9Router 与 OpenAI Codex CLI 集成,通过 9Router 的智能路由系统转发你的 OpenAI API 请求。
|
||||
|
||||
## 前置要求
|
||||
|
||||
- 已安装 OpenAI Codex CLI
|
||||
- 9Router 本地运行或已配置云端 endpoint
|
||||
- 来自 9Router 仪表盘的 API key
|
||||
|
||||
## 设置
|
||||
|
||||
### 1. 配置环境变量
|
||||
|
||||
在 shell 配置文件(`~/.bashrc`、`~/.zshrc` 或 `~/.bash_profile`)中设置以下环境变量:
|
||||
|
||||
```bash
|
||||
# 9Router 的 Base URL
|
||||
export OPENAI_BASE_URL="http://localhost:20128/v1"
|
||||
|
||||
# 来自 9Router 仪表盘的 API Key
|
||||
export OPENAI_API_KEY="your-9router-api-key"
|
||||
```
|
||||
|
||||
### 2. 重新加载 Shell 配置
|
||||
|
||||
```bash
|
||||
source ~/.zshrc # 或 ~/.bashrc
|
||||
```
|
||||
|
||||
### 3. 验证配置
|
||||
|
||||
检查环境变量是否设置正确:
|
||||
|
||||
```bash
|
||||
echo $OPENAI_BASE_URL
|
||||
echo $OPENAI_API_KEY
|
||||
```
|
||||
|
||||
## 可用模型
|
||||
|
||||
9Router 提供以下 Codex 模型:
|
||||
|
||||
| 模型 ID | 描述 |
|
||||
|----------|-------------|
|
||||
| `cx/gpt-5.2-codex` | GPT-5.2 Codex - 最新版本 |
|
||||
| `cx/gpt-5.1-codex-max` | GPT-5.1 Codex Max - 扩展上下文 |
|
||||
|
||||
## 使用示例
|
||||
|
||||
### 基础用法
|
||||
|
||||
```bash
|
||||
# 使用 GPT-5.2 Codex
|
||||
codex --model cx/gpt-5.2-codex "Write a function to sort an array"
|
||||
|
||||
# 使用 GPT-5.1 Codex Max
|
||||
codex --model cx/gpt-5.1-codex-max "Explain this complex algorithm"
|
||||
```
|
||||
|
||||
### 代码生成
|
||||
|
||||
```bash
|
||||
codex --model cx/gpt-5.2-codex "Create a REST API endpoint for user authentication"
|
||||
```
|
||||
|
||||
### 代码解释
|
||||
|
||||
```bash
|
||||
codex --model cx/gpt-5.1-codex-max "Explain what this code does: $(cat myfile.js)"
|
||||
```
|
||||
|
||||
## 配置文件
|
||||
|
||||
也可以通过配置文件配置 Codex CLI。创建或编辑 `~/.codex/config.json`:
|
||||
|
||||
```json
|
||||
{
|
||||
"baseUrl": "http://localhost:20128/v1",
|
||||
"apiKey": "your-9router-api-key",
|
||||
"defaultModel": "cx/gpt-5.2-codex"
|
||||
}
|
||||
```
|
||||
|
||||
## 故障排除
|
||||
|
||||
### 认证错误
|
||||
|
||||
遇到认证错误时:
|
||||
|
||||
1. 在 9Router 仪表盘中确认 API key 正确
|
||||
2. 检查 `OPENAI_API_KEY` 环境变量已设置
|
||||
3. 确认 API key 未过期
|
||||
|
||||
### 连接问题
|
||||
|
||||
遇到连接错误时:
|
||||
|
||||
1. 确认 9Router 正在运行:`curl http://localhost:20128/health`
|
||||
2. 检查环境变量设置是否正确
|
||||
3. 确保防火墙没有阻止 20128 端口
|
||||
|
||||
### 模型不可用
|
||||
|
||||
出现 "model not available" 错误时:
|
||||
|
||||
1. 确认模型名与 9Router 配置一致
|
||||
2. 检查 9Router 仪表盘中 OpenAI 提供商连接是否激活
|
||||
3. 确认连接的提供商中包含该模型
|
||||
|
||||
## 云端 Endpoint
|
||||
|
||||
使用 9Router 云端 endpoint 而非 localhost:
|
||||
|
||||
```bash
|
||||
export OPENAI_BASE_URL="https://9router.com"
|
||||
```
|
||||
|
||||
确保已在 9Router 云端仪表盘中配置 API key。
|
||||
|
||||
## 高级配置
|
||||
|
||||
### 自定义超时
|
||||
|
||||
```bash
|
||||
export OPENAI_TIMEOUT=60 # 秒
|
||||
```
|
||||
|
||||
### Debug 模式
|
||||
|
||||
启用 debug 模式查看详细请求/响应日志:
|
||||
|
||||
```bash
|
||||
export CODEX_DEBUG=true
|
||||
codex --model cx/gpt-5.2-codex "Your prompt"
|
||||
```
|
||||
249
gitbook/content/zh-CN/integration/continue.md
Normal file
249
gitbook/content/zh-CN/integration/continue.md
Normal file
@@ -0,0 +1,249 @@
|
||||
# Continue VSCode 扩展集成
|
||||
|
||||
将 9Router 与 Continue 扩展集成,直接在 Visual Studio Code 中获得 AI 协助。
|
||||
|
||||
## 前置要求
|
||||
|
||||
- 已安装 Visual Studio Code
|
||||
- 从 VSCode 市场安装了 Continue 扩展
|
||||
- 来自 [仪表盘](https://9router.com/dashboard) 的 9Router API key
|
||||
- 9Router 正在运行(本地或云端)
|
||||
|
||||
## 配置步骤
|
||||
|
||||
### 1. 打开 Continue 配置
|
||||
|
||||
1. 打开 VSCode
|
||||
2. 按 `Cmd+Shift+P` (Mac) 或 `Ctrl+Shift+P` (Windows/Linux)
|
||||
3. 输入 "Continue: Open Config" 并选择
|
||||
4. 这会打开 `~/.continue/config.json`
|
||||
|
||||
### 2. 添加 9Router 模型配置
|
||||
|
||||
将以下配置添加到 `config.json`:
|
||||
|
||||
**单模型设置:**
|
||||
```json
|
||||
{
|
||||
"models": [
|
||||
{
|
||||
"title": "9Router - Claude Opus",
|
||||
"provider": "openai",
|
||||
"model": "cc/claude-opus-4-5-20251101",
|
||||
"apiKey": "your-api-key-from-dashboard",
|
||||
"apiBase": "http://localhost:20128/v1"
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
**多模型设置:**
|
||||
```json
|
||||
{
|
||||
"models": [
|
||||
{
|
||||
"title": "9Router - Claude Opus (Best)",
|
||||
"provider": "openai",
|
||||
"model": "cc/claude-opus-4-5-20251101",
|
||||
"apiKey": "your-api-key-from-dashboard",
|
||||
"apiBase": "http://localhost:20128/v1"
|
||||
},
|
||||
{
|
||||
"title": "9Router - Claude Sonnet (Balanced)",
|
||||
"provider": "openai",
|
||||
"model": "cc/claude-sonnet-4-20250514",
|
||||
"apiKey": "your-api-key-from-dashboard",
|
||||
"apiBase": "http://localhost:20128/v1"
|
||||
},
|
||||
{
|
||||
"title": "9Router - DeepSeek Chat (Code)",
|
||||
"provider": "openai",
|
||||
"model": "cx/deepseek-chat",
|
||||
"apiKey": "your-api-key-from-dashboard",
|
||||
"apiBase": "http://localhost:20128/v1"
|
||||
},
|
||||
{
|
||||
"title": "9Router - Claude Haiku (Fast)",
|
||||
"provider": "openai",
|
||||
"model": "cc/claude-haiku-4-20250514",
|
||||
"apiKey": "your-api-key-from-dashboard",
|
||||
"apiBase": "http://localhost:20128/v1"
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
**云端 9Router:**
|
||||
将 `apiBase` 替换为:
|
||||
```json
|
||||
"apiBase": "https://9router.com/v1"
|
||||
```
|
||||
|
||||
### 3. 保存并重新加载
|
||||
|
||||
1. 保存配置文件
|
||||
2. 重新加载 VSCode 窗口:`Cmd+Shift+P` → "Developer: Reload Window"
|
||||
3. Continue 扩展会加载新配置
|
||||
|
||||
### 4. 选择模型
|
||||
|
||||
1. 打开 Continue 侧边栏(点击左侧 Continue 图标)
|
||||
2. 点击顶部模型选择下拉菜单
|
||||
3. 选择你偏好的 9Router 模型
|
||||
|
||||
## 可用模型
|
||||
|
||||
### Claude 模型(Anthropic)
|
||||
- `cc/claude-opus-4-5-20251101` - 最强,适合复杂任务
|
||||
- `cc/claude-sonnet-4-20250514` - 性能与速度平衡
|
||||
- `cc/claude-haiku-4-20250514` - 最快,适合简单任务
|
||||
|
||||
### DeepSeek 模型
|
||||
- `cx/deepseek-chat` - 出色的代码生成
|
||||
- `cx/deepseek-reasoner` - 复杂问题求解
|
||||
|
||||
### GLM 模型(Zhipu AI)
|
||||
- `glm/glm-4-plus` - 高级中文与英文
|
||||
- `glm/glm-4-flash` - 快速响应
|
||||
|
||||
## 使用示例
|
||||
|
||||
### 代码解释
|
||||
1. 在编辑器中选中代码
|
||||
2. 打开 Continue 侧边栏
|
||||
3. 输入:"Explain this code"
|
||||
4. 模型:`cc/claude-sonnet-4-20250514`
|
||||
|
||||
### 代码生成
|
||||
1. 打开 Continue 侧边栏
|
||||
2. 输入:"Create a React component for user profile card"
|
||||
3. 模型:`cx/deepseek-chat`
|
||||
|
||||
### 重构
|
||||
1. 选中要重构的代码
|
||||
2. 输入:"Refactor this to use async/await"
|
||||
3. 模型:`cc/claude-sonnet-4-20250514`
|
||||
|
||||
### Bug 修复
|
||||
1. 选中有问题的代码
|
||||
2. 输入:"Find and fix the bug in this code"
|
||||
3. 模型:`cx/deepseek-reasoner`
|
||||
|
||||
## 高级配置
|
||||
|
||||
### 自定义系统 Prompt
|
||||
|
||||
为特定行为添加自定义系统 prompt:
|
||||
|
||||
```json
|
||||
{
|
||||
"models": [
|
||||
{
|
||||
"title": "9Router - Code Expert",
|
||||
"provider": "openai",
|
||||
"model": "cx/deepseek-chat",
|
||||
"apiKey": "your-api-key",
|
||||
"apiBase": "http://localhost:20128/v1",
|
||||
"systemMessage": "You are an expert programmer. Always provide clean, well-documented code with best practices."
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
### Temperature 与参数
|
||||
|
||||
通过参数调整模型行为:
|
||||
|
||||
```json
|
||||
{
|
||||
"models": [
|
||||
{
|
||||
"title": "9Router - Creative Writer",
|
||||
"provider": "openai",
|
||||
"model": "cc/claude-opus-4-5-20251101",
|
||||
"apiKey": "your-api-key",
|
||||
"apiBase": "http://localhost:20128/v1",
|
||||
"temperature": 0.9,
|
||||
"topP": 0.95
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
### Context Provider
|
||||
|
||||
配置 Continue 发送给模型的上下文:
|
||||
|
||||
```json
|
||||
{
|
||||
"contextProviders": [
|
||||
{
|
||||
"name": "code",
|
||||
"params": {
|
||||
"maxLines": 100
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "diff",
|
||||
"params": {}
|
||||
},
|
||||
{
|
||||
"name": "terminal",
|
||||
"params": {}
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
## 键盘快捷键
|
||||
|
||||
- `Cmd+L` (Mac) / `Ctrl+L` (Windows/Linux) - 打开 Continue 聊天
|
||||
- `Cmd+I` (Mac) / `Ctrl+I` (Windows/Linux) - 内联编辑
|
||||
- `Cmd+Shift+R` (Mac) / `Ctrl+Shift+R` (Windows/Linux) - 重新生成响应
|
||||
|
||||
## 故障排除
|
||||
|
||||
### 模型无响应
|
||||
- 确认 9Router 正在运行:`curl http://localhost:20128/health`
|
||||
- 检查 config.json 中的 API key
|
||||
- 查看 VSCode 开发者控制台错误:`Help` → `Toggle Developer Tools`
|
||||
|
||||
### 选错模型
|
||||
- 点击 Continue 侧边栏的模型下拉菜单
|
||||
- 选择正确的 9Router 模型
|
||||
- 模型名必须完全匹配(大小写敏感)
|
||||
|
||||
### 配置未加载
|
||||
- 确认 JSON 语法有效(使用 JSON 验证工具)
|
||||
- 检查文件位置:`~/.continue/config.json`
|
||||
- 修改后重新加载 VSCode 窗口
|
||||
|
||||
### 性能缓慢
|
||||
- 切换到更快的模型(haiku、flash)
|
||||
- 在 contextProviders 中减少上下文大小
|
||||
- 检查到 9Router 的网络延迟
|
||||
|
||||
## 最佳实践
|
||||
|
||||
### 模型选择策略
|
||||
- **快速编辑**:使用 `cc/claude-haiku-4-20250514`
|
||||
- **代码生成**:使用 `cx/deepseek-chat`
|
||||
- **复杂重构**:使用 `cc/claude-opus-4-5-20251101`
|
||||
- **问题求解**:使用 `cx/deepseek-reasoner`
|
||||
|
||||
### 上下文管理
|
||||
- 提问前只选中相关代码
|
||||
- 使用具体、清晰的 prompt
|
||||
- 将复杂任务拆分为小步骤
|
||||
|
||||
### 成本优化
|
||||
- 简单任务使用更快/更便宜的模型
|
||||
- 尽可能限制上下文大小
|
||||
- 缓存常用响应
|
||||
|
||||
## 下一步
|
||||
|
||||
- [配置 Cursor](cursor.md) 以增强 IDE 集成
|
||||
- [设置 Roo](roo.md) AI 助手
|
||||
- [探索 CLI 用法](../cli/basic-usage.md)
|
||||
- [了解模型选择](../models/overview.md)
|
||||
149
gitbook/content/zh-CN/integration/cursor.md
Normal file
149
gitbook/content/zh-CN/integration/cursor.md
Normal file
@@ -0,0 +1,149 @@
|
||||
# Cursor 集成
|
||||
|
||||
将 9Router 与 Cursor IDE 集成,通过 9Router 的智能路由系统转发你的 AI 请求。
|
||||
|
||||
## 前置要求
|
||||
|
||||
- 已安装 Cursor IDE
|
||||
- Cursor Pro 账户(使用自定义 API endpoint 必需)
|
||||
- 已配置 9Router 云端 endpoint
|
||||
- 来自 9Router 仪表盘的 API key
|
||||
|
||||
## ⚠️ 重要说明
|
||||
|
||||
> **必须使用云端 Endpoint**:Cursor 会通过自己的服务器转发请求,不支持 localhost endpoint。你必须使用 9Router 云端 endpoint:`https://9router.com`
|
||||
|
||||
> **必须有 Cursor Pro**:此功能需要 Cursor Pro 账户才能使用自定义 API endpoint。
|
||||
|
||||
## 设置
|
||||
|
||||
### 1. 打开 Cursor 设置
|
||||
|
||||
1. 打开 Cursor IDE
|
||||
2. 进入 **Settings**(Cmd/Ctrl + ,)
|
||||
3. 导航到 **Models** 部分
|
||||
|
||||
### 2. 启用 OpenAI API
|
||||
|
||||
1. 找到 **OpenAI API key** 选项
|
||||
2. 启用开关以激活自定义 API 配置
|
||||
|
||||
### 3. 配置 Base URL
|
||||
|
||||
将 base URL 设为 9Router 云端 endpoint:
|
||||
|
||||
```
|
||||
https://9router.com
|
||||
```
|
||||
|
||||
**步骤:**
|
||||
1. 在 Models 设置中找到 **Base URL** 字段
|
||||
2. 输入:`https://9router.com`
|
||||
3. 点击 **Save**
|
||||
|
||||
### 4. 添加 API Key
|
||||
|
||||
1. 在 **API Key** 字段中输入你的 9Router API key
|
||||
2. 可在 9Router 仪表盘 **Settings → API Keys** 中找到 API key
|
||||
3. 点击 **Save**
|
||||
|
||||
### 5. 添加自定义模型
|
||||
|
||||
1. 点击 **View All Models** 按钮
|
||||
2. 点击 **Add Custom Model**
|
||||
3. 输入 9Router 配置中的模型名(例如 `gpt-4`、`claude-opus-4-5` 等)
|
||||
4. 点击 **Add**
|
||||
|
||||
### 6. 选择模型
|
||||
|
||||
1. 在 Cursor 聊天界面,点击模型选择下拉菜单
|
||||
2. 从列表中选择你的自定义模型
|
||||
3. 开始在 Cursor 中使用 9Router!
|
||||
|
||||
## 配置示例
|
||||
|
||||
你的 Cursor 设置应如下所示:
|
||||
|
||||
```
|
||||
OpenAI API: ✓ 已启用
|
||||
Base URL: https://9router.com
|
||||
API Key: sk-9router-xxxxxxxxxxxxx
|
||||
Custom Models: gpt-4, claude-opus-4-5, gemini-2.0-flash
|
||||
```
|
||||
|
||||
## 可用模型
|
||||
|
||||
你可以使用 9Router 仪表盘中配置的任意模型。常见示例:
|
||||
|
||||
| 模型名 | 提供商 | 描述 |
|
||||
|------------|----------|-------------|
|
||||
| `gpt-4` | OpenAI | GPT-4 Turbo |
|
||||
| `gpt-4o` | OpenAI | GPT-4 Optimized |
|
||||
| `claude-opus-4-5` | Anthropic | Claude Opus 4.5 |
|
||||
| `claude-sonnet-4-5` | Anthropic | Claude Sonnet 4.5 |
|
||||
| `gemini-2.0-flash` | Google | Gemini 2.0 Flash |
|
||||
|
||||
## 使用
|
||||
|
||||
### 聊天界面
|
||||
|
||||
1. 打开 Cursor 聊天(Cmd/Ctrl + L)
|
||||
2. 从下拉菜单中选择模型
|
||||
3. 通过 9Router 与 AI 对话
|
||||
|
||||
### 内联代码生成
|
||||
|
||||
1. 在编辑器中选中代码
|
||||
2. 按 Cmd/Ctrl + K
|
||||
3. 输入 prompt
|
||||
4. Cursor 会通过 9Router 生成代码
|
||||
|
||||
### 代码解释
|
||||
|
||||
1. 在编辑器中选中代码
|
||||
2. 按 Cmd/Ctrl + L
|
||||
3. 询问 "Explain this code"
|
||||
4. 通过 9Router 获得 AI 驱动的解释
|
||||
|
||||
## 故障排除
|
||||
|
||||
### "Invalid API Key" 错误
|
||||
|
||||
1. 在 9Router 仪表盘中确认 API key
|
||||
2. 确保复制了包含 `sk-9router-` 前缀在内的完整 key
|
||||
3. 检查 API key 是否过期
|
||||
4. 尝试重新生成 API key
|
||||
|
||||
### "Model Not Found" 错误
|
||||
|
||||
1. 确认模型名与 9Router 配置完全一致
|
||||
2. 检查 9Router 仪表盘中提供商连接是否激活
|
||||
3. 确认连接的提供商中包含该模型
|
||||
4. 尝试使用完整模型名(例如用 `openai/gpt-4` 代替 `gpt-4`)
|
||||
|
||||
### 连接问题
|
||||
|
||||
1. 确认使用的是云端 endpoint:`https://9router.com`
|
||||
2. 检查网络连接
|
||||
3. 确认 9Router 云端服务运行正常
|
||||
4. 若启用了 VPN 或代理,尝试关闭
|
||||
|
||||
### Localhost 无法使用
|
||||
|
||||
> **请记住**:Cursor 不支持 localhost endpoint。你必须使用云端 endpoint `https://9router.com`。如果需要使用本地 9Router 实例,可以考虑使用 ngrok 之类的隧道服务把本地 endpoint 暴露到公网。
|
||||
|
||||
## 云端 Endpoint 设置
|
||||
|
||||
如果你在本地运行 9Router 并希望搭配 Cursor 使用:
|
||||
|
||||
1. 在 9Router 设置中启用云端 endpoint
|
||||
2. 在 9Router 仪表盘中配置云端 endpoint URL
|
||||
3. 在 Cursor 设置中使用该云端 URL
|
||||
4. 确保本地 9Router 实例可从互联网访问
|
||||
|
||||
## 最佳实践
|
||||
|
||||
1. **使用模型别名**:为常用模型在 9Router 中创建简短别名
|
||||
2. **监控使用**:在 9Router 仪表盘查看用量统计和成本
|
||||
3. **轮换 API Keys**:为安全起见定期轮换 API key
|
||||
4. **测试模型**:尝试不同模型,找到最适合你场景的那个
|
||||
416
gitbook/content/zh-CN/integration/other-tools.md
Normal file
416
gitbook/content/zh-CN/integration/other-tools.md
Normal file
@@ -0,0 +1,416 @@
|
||||
# 其他工具集成
|
||||
|
||||
9Router 兼容任何支持 OpenAI API 格式的工具。本指南介绍各种工具和自定义应用的通用集成模式。
|
||||
|
||||
## 概览
|
||||
|
||||
9Router 提供 OpenAI 兼容的 API endpoint,可与以下场景配合使用:
|
||||
- 自定义脚本与应用
|
||||
- API 客户端与测试工具
|
||||
- CLI 工具与实用程序
|
||||
- 第三方集成
|
||||
- 开发框架
|
||||
|
||||
## 通用设置模式
|
||||
|
||||
任何 OpenAI 兼容的工具都可以通过以下设置连接到 9Router:
|
||||
|
||||
**本地 9Router:**
|
||||
```
|
||||
Base URL: http://localhost:20128/v1
|
||||
API Key: your-api-key-from-dashboard
|
||||
Model: 任意 9Router 模型(cc/*, cx/*, glm/*, 等)
|
||||
```
|
||||
|
||||
**云端 9Router:**
|
||||
```
|
||||
Base URL: https://9router.com/v1
|
||||
API Key: your-api-key-from-dashboard
|
||||
Model: 任意 9Router 模型(cc/*, cx/*, glm/*, 等)
|
||||
```
|
||||
|
||||
## 可用模型
|
||||
|
||||
### Claude 模型(Anthropic)
|
||||
- `cc/claude-opus-4-5-20251101`
|
||||
- `cc/claude-sonnet-4-20250514`
|
||||
- `cc/claude-haiku-4-20250514`
|
||||
|
||||
### DeepSeek 模型
|
||||
- `cx/deepseek-chat`
|
||||
- `cx/deepseek-reasoner`
|
||||
|
||||
### GLM 模型(Zhipu AI)
|
||||
- `glm/glm-4-plus`
|
||||
- `glm/glm-4-flash`
|
||||
|
||||
## 集成示例
|
||||
|
||||
### Python 使用 OpenAI SDK
|
||||
|
||||
```python
|
||||
from openai import OpenAI
|
||||
|
||||
client = OpenAI(
|
||||
api_key="your-api-key-from-dashboard",
|
||||
base_url="http://localhost:20128/v1"
|
||||
)
|
||||
|
||||
response = client.chat.completions.create(
|
||||
model="cc/claude-sonnet-4-20250514",
|
||||
messages=[
|
||||
{"role": "user", "content": "Hello, how are you?"}
|
||||
]
|
||||
)
|
||||
|
||||
print(response.choices[0].message.content)
|
||||
```
|
||||
|
||||
### Node.js 使用 OpenAI SDK
|
||||
|
||||
```javascript
|
||||
import OpenAI from "openai";
|
||||
|
||||
const client = new OpenAI({
|
||||
apiKey: "your-api-key-from-dashboard",
|
||||
baseURL: "http://localhost:20128/v1"
|
||||
});
|
||||
|
||||
const response = await client.chat.completions.create({
|
||||
model: "cc/claude-sonnet-4-20250514",
|
||||
messages: [
|
||||
{ role: "user", content: "Hello, how are you?" }
|
||||
]
|
||||
});
|
||||
|
||||
console.log(response.choices[0].message.content);
|
||||
```
|
||||
|
||||
### cURL 命令
|
||||
|
||||
```bash
|
||||
curl http://localhost:20128/v1/chat/completions \
|
||||
-H "Content-Type: application/json" \
|
||||
-H "Authorization: Bearer your-api-key-from-dashboard" \
|
||||
-d '{
|
||||
"model": "cc/claude-sonnet-4-20250514",
|
||||
"messages": [
|
||||
{"role": "user", "content": "Hello, how are you?"}
|
||||
]
|
||||
}'
|
||||
```
|
||||
|
||||
### HTTP 客户端(Postman、Insomnia)
|
||||
|
||||
**Request:**
|
||||
```
|
||||
POST http://localhost:20128/v1/chat/completions
|
||||
```
|
||||
|
||||
**Headers:**
|
||||
```
|
||||
Content-Type: application/json
|
||||
Authorization: Bearer your-api-key-from-dashboard
|
||||
```
|
||||
|
||||
**Body:**
|
||||
```json
|
||||
{
|
||||
"model": "cc/claude-sonnet-4-20250514",
|
||||
"messages": [
|
||||
{"role": "user", "content": "Hello, how are you?"}
|
||||
],
|
||||
"temperature": 0.7,
|
||||
"max_tokens": 1000
|
||||
}
|
||||
```
|
||||
|
||||
### LangChain 集成
|
||||
|
||||
```python
|
||||
from langchain.chat_models import ChatOpenAI
|
||||
from langchain.schema import HumanMessage
|
||||
|
||||
llm = ChatOpenAI(
|
||||
model_name="cc/claude-sonnet-4-20250514",
|
||||
openai_api_key="your-api-key-from-dashboard",
|
||||
openai_api_base="http://localhost:20128/v1",
|
||||
temperature=0.7
|
||||
)
|
||||
|
||||
messages = [HumanMessage(content="Explain quantum computing")]
|
||||
response = llm(messages)
|
||||
print(response.content)
|
||||
```
|
||||
|
||||
### LlamaIndex 集成
|
||||
|
||||
```python
|
||||
from llama_index.llms import OpenAI
|
||||
|
||||
llm = OpenAI(
|
||||
model="cc/claude-sonnet-4-20250514",
|
||||
api_key="your-api-key-from-dashboard",
|
||||
api_base="http://localhost:20128/v1"
|
||||
)
|
||||
|
||||
response = llm.complete("What is machine learning?")
|
||||
print(response.text)
|
||||
```
|
||||
|
||||
## 自定义脚本示例
|
||||
|
||||
### 批处理脚本
|
||||
|
||||
```python
|
||||
import openai
|
||||
import json
|
||||
|
||||
openai.api_key = "your-api-key-from-dashboard"
|
||||
openai.api_base = "http://localhost:20128/v1"
|
||||
|
||||
def process_batch(prompts, model="cx/deepseek-chat"):
|
||||
results = []
|
||||
for prompt in prompts:
|
||||
response = openai.ChatCompletion.create(
|
||||
model=model,
|
||||
messages=[{"role": "user", "content": prompt}]
|
||||
)
|
||||
results.append({
|
||||
"prompt": prompt,
|
||||
"response": response.choices[0].message.content
|
||||
})
|
||||
return results
|
||||
|
||||
prompts = [
|
||||
"Explain AI in one sentence",
|
||||
"What is machine learning?",
|
||||
"Define neural networks"
|
||||
]
|
||||
|
||||
results = process_batch(prompts)
|
||||
print(json.dumps(results, indent=2))
|
||||
```
|
||||
|
||||
### 流式响应处理
|
||||
|
||||
```javascript
|
||||
import OpenAI from "openai";
|
||||
|
||||
const client = new OpenAI({
|
||||
apiKey: "your-api-key-from-dashboard",
|
||||
baseURL: "http://localhost:20128/v1"
|
||||
});
|
||||
|
||||
async function streamResponse(prompt) {
|
||||
const stream = await client.chat.completions.create({
|
||||
model: "cc/claude-sonnet-4-20250514",
|
||||
messages: [{ role: "user", content: prompt }],
|
||||
stream: true
|
||||
});
|
||||
|
||||
for await (const chunk of stream) {
|
||||
const content = chunk.choices[0]?.delta?.content || "";
|
||||
process.stdout.write(content);
|
||||
}
|
||||
}
|
||||
|
||||
streamResponse("Write a short story about AI");
|
||||
```
|
||||
|
||||
### 多模型对比
|
||||
|
||||
```python
|
||||
from openai import OpenAI
|
||||
|
||||
client = OpenAI(
|
||||
api_key="your-api-key-from-dashboard",
|
||||
base_url="http://localhost:20128/v1"
|
||||
)
|
||||
|
||||
models = [
|
||||
"cc/claude-sonnet-4-20250514",
|
||||
"cx/deepseek-chat",
|
||||
"glm/glm-4-plus"
|
||||
]
|
||||
|
||||
prompt = "Explain quantum computing in simple terms"
|
||||
|
||||
for model in models:
|
||||
response = client.chat.completions.create(
|
||||
model=model,
|
||||
messages=[{"role": "user", "content": prompt}]
|
||||
)
|
||||
print(f"\n=== {model} ===")
|
||||
print(response.choices[0].message.content)
|
||||
```
|
||||
|
||||
## 常见集成模式
|
||||
|
||||
### 环境变量
|
||||
|
||||
安全地存储凭据:
|
||||
|
||||
```bash
|
||||
# .env file
|
||||
ROUTER_API_KEY=your-api-key-from-dashboard
|
||||
ROUTER_BASE_URL=http://localhost:20128/v1
|
||||
ROUTER_MODEL=cc/claude-sonnet-4-20250514
|
||||
```
|
||||
|
||||
```python
|
||||
import os
|
||||
from openai import OpenAI
|
||||
|
||||
client = OpenAI(
|
||||
api_key=os.getenv("ROUTER_API_KEY"),
|
||||
base_url=os.getenv("ROUTER_BASE_URL")
|
||||
)
|
||||
```
|
||||
|
||||
### 错误处理
|
||||
|
||||
```python
|
||||
from openai import OpenAI, OpenAIError
|
||||
|
||||
client = OpenAI(
|
||||
api_key="your-api-key",
|
||||
base_url="http://localhost:20128/v1"
|
||||
)
|
||||
|
||||
try:
|
||||
response = client.chat.completions.create(
|
||||
model="cc/claude-sonnet-4-20250514",
|
||||
messages=[{"role": "user", "content": "Hello"}]
|
||||
)
|
||||
print(response.choices[0].message.content)
|
||||
except OpenAIError as e:
|
||||
print(f"Error: {e}")
|
||||
```
|
||||
|
||||
### 重试逻辑
|
||||
|
||||
```python
|
||||
import time
|
||||
from openai import OpenAI, RateLimitError
|
||||
|
||||
client = OpenAI(
|
||||
api_key="your-api-key",
|
||||
base_url="http://localhost:20128/v1"
|
||||
)
|
||||
|
||||
def chat_with_retry(prompt, max_retries=3):
|
||||
for attempt in range(max_retries):
|
||||
try:
|
||||
response = client.chat.completions.create(
|
||||
model="cc/claude-sonnet-4-20250514",
|
||||
messages=[{"role": "user", "content": prompt}]
|
||||
)
|
||||
return response.choices[0].message.content
|
||||
except RateLimitError:
|
||||
if attempt < max_retries - 1:
|
||||
time.sleep(2 ** attempt) # Exponential backoff
|
||||
else:
|
||||
raise
|
||||
```
|
||||
|
||||
## 故障排除
|
||||
|
||||
### 连接问题
|
||||
|
||||
**问题:** 无法连接到 9Router
|
||||
```bash
|
||||
# 检查 9Router 是否运行
|
||||
curl http://localhost:20128/health
|
||||
|
||||
# 预期响应:
|
||||
{"status": "ok"}
|
||||
```
|
||||
|
||||
**方案:**
|
||||
- 确认 9Router 正在运行
|
||||
- 检查 20128 端口未被阻止
|
||||
- 确保 base URL 正确(包含 `/v1`)
|
||||
|
||||
### 认证错误
|
||||
|
||||
**问题:** 401 Unauthorized
|
||||
```
|
||||
Error: Invalid API key
|
||||
```
|
||||
|
||||
**方案:**
|
||||
- 在仪表盘中确认 API key
|
||||
- 检查 Authorization 头格式:`Bearer your-api-key`
|
||||
- 确保 API key 中没有多余的空格或换行
|
||||
|
||||
### 模型未找到
|
||||
|
||||
**问题:** 404 Model not found
|
||||
```
|
||||
Error: Model 'cc/claude-opus' not found
|
||||
```
|
||||
|
||||
**方案:**
|
||||
- 使用精确的模型名(大小写敏感)
|
||||
- 查看可用模型:`curl http://localhost:20128/v1/models`
|
||||
- 确认套餐中已启用该模型
|
||||
|
||||
### 超时问题
|
||||
|
||||
**问题:** 请求超时
|
||||
```
|
||||
Error: Request timed out after 30s
|
||||
```
|
||||
|
||||
**方案:**
|
||||
- 在客户端配置中增大超时
|
||||
- 时间敏感任务使用更快的模型
|
||||
- 检查到 9Router 的网络连接
|
||||
|
||||
### 速率限制
|
||||
|
||||
**问题:** 429 Too Many Requests
|
||||
```
|
||||
Error: Rate limit exceeded
|
||||
```
|
||||
|
||||
**方案:**
|
||||
- 实现指数退避
|
||||
- 降低请求频率
|
||||
- 在仪表盘中查看速率限制
|
||||
- 考虑升级套餐
|
||||
|
||||
## 最佳实践
|
||||
|
||||
### 安全
|
||||
- 将 API key 存储在环境变量中
|
||||
- 绝不将 API key 提交到版本控制
|
||||
- 云端部署使用 HTTPS
|
||||
- 定期轮换 API keys
|
||||
|
||||
### 性能
|
||||
- 根据任务复杂度选择合适的模型
|
||||
- 对重复查询实现缓存
|
||||
- 长响应使用流式输出
|
||||
- 尽可能批量请求
|
||||
|
||||
### 错误处理
|
||||
- 始终用 try-catch 块包裹
|
||||
- 添加带指数退避的重试逻辑
|
||||
- 记录错误以便调试
|
||||
- 提供回退机制
|
||||
|
||||
### 成本优化
|
||||
- 简单任务选择高性价比的模型
|
||||
- 适当时缓存响应
|
||||
- 在仪表盘监控使用
|
||||
- 在代码中设置请求上限
|
||||
|
||||
## 下一步
|
||||
|
||||
- [配置 Cursor](cursor.md) 进行 IDE 集成
|
||||
- [设置 Continue](continue.md) 用于 VSCode
|
||||
- [探索 CLI 用法](../cli/basic-usage.md)
|
||||
- [了解模型选择](../models/overview.md)
|
||||
- [API 参考](../api/reference.md)
|
||||
127
gitbook/content/zh-CN/integration/roo.md
Normal file
127
gitbook/content/zh-CN/integration/roo.md
Normal file
@@ -0,0 +1,127 @@
|
||||
# Roo AI 助手集成
|
||||
|
||||
将 9Router 与 Roo AI 助手集成,通过统一界面访问多个 AI 模型。
|
||||
|
||||
## 前置要求
|
||||
|
||||
- 已安装 Roo AI 助手
|
||||
- 来自 [仪表盘](https://9router.com/dashboard) 的 9Router API key
|
||||
- 9Router 正在运行(本地或云端)
|
||||
|
||||
## 配置步骤
|
||||
|
||||
### 1. 打开 Roo 设置
|
||||
|
||||
启动 Roo AI 助手并打开设置面板。
|
||||
|
||||
### 2. 配置 API Provider
|
||||
|
||||
1. 进入 **API Provider** 设置
|
||||
2. 选择 **Ollama** 作为 provider 类型
|
||||
3. 配置以下设置:
|
||||
|
||||
**本地 9Router:**
|
||||
```
|
||||
Base URL: http://localhost:20128/v1
|
||||
API Key: your-api-key-from-dashboard
|
||||
```
|
||||
|
||||
**云端 9Router:**
|
||||
```
|
||||
Base URL: https://9router.com/v1
|
||||
API Key: your-api-key-from-dashboard
|
||||
```
|
||||
|
||||
### 3. 选择模型
|
||||
|
||||
从可用的 9Router 模型中选择:
|
||||
|
||||
**Claude 模型:**
|
||||
- `cc/claude-opus-4-5-20251101` - 最强
|
||||
- `cc/claude-sonnet-4-20250514` - 平衡
|
||||
- `cc/claude-haiku-4-20250514` - 快速
|
||||
|
||||
**DeepSeek 模型:**
|
||||
- `cx/deepseek-chat` - 通用
|
||||
- `cx/deepseek-reasoner` - 复杂推理
|
||||
|
||||
**GLM 模型:**
|
||||
- `glm/glm-4-plus` - 高级
|
||||
- `glm/glm-4-flash` - 快速响应
|
||||
|
||||
### 4. 测试连接
|
||||
|
||||
发送测试消息验证集成:
|
||||
|
||||
```
|
||||
Hello! Can you confirm you're connected through 9Router?
|
||||
```
|
||||
|
||||
## 使用示例
|
||||
|
||||
### 基础聊天
|
||||
```
|
||||
向 Roo 提问: "Explain quantum computing in simple terms"
|
||||
模型: cc/claude-sonnet-4-20250514
|
||||
```
|
||||
|
||||
### 代码生成
|
||||
```
|
||||
向 Roo 提问: "Write a Python function to calculate Fibonacci numbers"
|
||||
模型: cx/deepseek-chat
|
||||
```
|
||||
|
||||
### 复杂推理
|
||||
```
|
||||
向 Roo 提问: "Analyze the trade-offs between microservices and monolithic architecture"
|
||||
模型: cx/deepseek-reasoner
|
||||
```
|
||||
|
||||
## 模型选择建议
|
||||
|
||||
- **快速任务**:使用 `cc/claude-haiku-4-20250514` 或 `glm/glm-4-flash`
|
||||
- **均衡性能**:使用 `cc/claude-sonnet-4-20250514` 或 `cx/deepseek-chat`
|
||||
- **复杂推理**:使用 `cc/claude-opus-4-5-20251101` 或 `cx/deepseek-reasoner`
|
||||
- **成本优化**:使用 DeepSeek 或 GLM 模型
|
||||
|
||||
## 故障排除
|
||||
|
||||
### 连接失败
|
||||
- 确认 9Router 正在运行:`curl http://localhost:20128/health`
|
||||
- 检查 API key 是否正确
|
||||
- 确保 Base URL 末尾包含 `/v1`
|
||||
|
||||
### 模型不可用
|
||||
- 检查模型名是否完全匹配(大小写敏感)
|
||||
- 确认 9Router 套餐中已启用该模型
|
||||
- 尝试列表中的其他模型
|
||||
|
||||
### 响应缓慢
|
||||
- 切换到更快的模型(haiku、flash)
|
||||
- 检查网络连接
|
||||
- 查看 9Router 日志排查问题
|
||||
|
||||
## 高级配置
|
||||
|
||||
### 自定义模型别名
|
||||
|
||||
可在 Roo 设置中为常用模型创建快捷别名:
|
||||
|
||||
```
|
||||
别名: "fast" → cc/claude-haiku-4-20250514
|
||||
别名: "smart" → cc/claude-opus-4-5-20251101
|
||||
别名: "code" → cx/deepseek-chat
|
||||
```
|
||||
|
||||
### 多个配置文件
|
||||
|
||||
为不同场景设置不同配置:
|
||||
- **开发**:DeepSeek 模型用于编码
|
||||
- **写作**:Claude 模型用于内容创作
|
||||
- **研究**:Reasoner 模型用于分析
|
||||
|
||||
## 下一步
|
||||
|
||||
- [配置 Cursor](cursor.md) 进行 IDE 集成
|
||||
- [设置 Continue](continue.md) 用于 VSCode
|
||||
- [探索 CLI 用法](../cli/basic-usage.md)
|
||||
462
gitbook/content/zh-CN/providers/cheap.md
Normal file
462
gitbook/content/zh-CN/providers/cheap.md
Normal file
@@ -0,0 +1,462 @@
|
||||
# 低价提供商 - 超低价备用
|
||||
|
||||
订阅配额耗尽时,只花几分钱而不是几美元。比 ChatGPT API 便宜 ~90%!
|
||||
|
||||
---
|
||||
|
||||
## 概览
|
||||
|
||||
低价层提供商是订阅配额耗尽时的 **备用**:
|
||||
|
||||
- 💰 **GLM-4.7** - 每 1M tokens $0.6/$2.2(每日重置)
|
||||
- 💰 **MiniMax M2.1** - 每 1M tokens $0.2/$1.0(5h 重置)
|
||||
- 💰 **Kimi K2** - $9/月固定(10M tokens)
|
||||
|
||||
**策略:** 在订阅配额用完后、免费层之前使用。相比 ChatGPT API(每 1M $20),省钱巨大。
|
||||
|
||||
---
|
||||
|
||||
## GLM-4.7(每日重置)
|
||||
|
||||
### 价格
|
||||
|
||||
| 套餐 | 输入 | 输出 | 重置 |
|
||||
|------|-------|--------|-------|
|
||||
| 标准 | $0.60/1M | $2.20/1M | 每日 10:00 AM |
|
||||
| Coding Plan | $0.60/1M | $2.20/1M | 每日 10:00 AM(3× 配额) |
|
||||
|
||||
**成本示例(10M tokens):**
|
||||
- 输入: 10M × $0.60 = $6
|
||||
- 输出: 10M × $2.20 = $22
|
||||
- **合计: $6-22**,而 ChatGPT API 需 $200!
|
||||
|
||||
### 设置
|
||||
|
||||
**步骤 1:注册**
|
||||
|
||||
1. 访问 [Zhipu AI](https://open.bigmodel.cn/)
|
||||
2. 创建账户(手机验证)
|
||||
3. 选择 **Coding Plan**,相同价格下 3× 配额
|
||||
|
||||
**步骤 2:获取 API Key**
|
||||
|
||||
```bash
|
||||
仪表盘 → API Keys → 创建新 Key
|
||||
→ 复制 API key(以 "zhipu-" 开头)
|
||||
```
|
||||
|
||||
**步骤 3:添加到 9Router**
|
||||
|
||||
```bash
|
||||
9router
|
||||
# 仪表盘 → 提供商 → 添加 API Key
|
||||
|
||||
Provider: glm
|
||||
API Key: zhipu-your-api-key-here
|
||||
```
|
||||
|
||||
**步骤 4:在 CLI 中使用**
|
||||
|
||||
```
|
||||
Model: glm/glm-4.7
|
||||
glm/glm-4.6v (vision)
|
||||
```
|
||||
|
||||
### 可用模型
|
||||
|
||||
| 模型 ID | 描述 | 上下文 | 最佳场景 |
|
||||
|----------|-------------|---------|----------|
|
||||
| `glm/glm-4.7` | GLM 4.7 | 128K | 编码、通用任务 |
|
||||
| `glm/glm-4.6v` | GLM 4.6V Vision | 128K | 图像分析 |
|
||||
|
||||
### 专业建议
|
||||
|
||||
- **Coding Plan** - 相同价格下 3× 配额($0.6/$2.2)
|
||||
- **每日重置** - 每天北京时间 10:00 AM 重置
|
||||
- **编码首选** - 针对代码生成优化
|
||||
- **128K 上下文** - 可处理大文件
|
||||
|
||||
### 配额重置
|
||||
|
||||
```
|
||||
每日重置: 北京时间 10:00 AM(UTC+8)
|
||||
→ UTC 02:00
|
||||
→ PST 前一天 18:00
|
||||
→ EST 前一天 21:00
|
||||
|
||||
围绕重置时间规划重任务!
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## MiniMax M2.1(5 小时重置)
|
||||
|
||||
### 价格
|
||||
|
||||
| 套餐 | 输入 | 输出 | 重置 |
|
||||
|------|-------|--------|-------|
|
||||
| 标准 | $0.20/1M | $1.00/1M | 5 小时滚动 |
|
||||
|
||||
**成本示例(10M tokens):**
|
||||
- 输入: 10M × $0.20 = $2
|
||||
- 输出: 10M × $1.00 = $10
|
||||
- **合计: $2-10** - 最便宜的选择!
|
||||
|
||||
### 设置
|
||||
|
||||
**步骤 1:注册**
|
||||
|
||||
1. 访问 [MiniMax](https://www.minimax.io/)
|
||||
2. 创建账户
|
||||
3. 验证邮箱/手机
|
||||
|
||||
**步骤 2:获取 API Key**
|
||||
|
||||
```bash
|
||||
仪表盘 → API Management → Create Key
|
||||
→ 复制 API key
|
||||
```
|
||||
|
||||
**步骤 3:添加到 9Router**
|
||||
|
||||
```bash
|
||||
9router
|
||||
# 仪表盘 → 提供商 → 添加 API Key
|
||||
|
||||
Provider: minimax
|
||||
API Key: your-minimax-api-key
|
||||
```
|
||||
|
||||
**步骤 4:在 CLI 中使用**
|
||||
|
||||
```
|
||||
Model: minimax/MiniMax-M2.1
|
||||
```
|
||||
|
||||
### 可用模型
|
||||
|
||||
| 模型 ID | 描述 | 上下文 | 最佳场景 |
|
||||
|----------|-------------|---------|----------|
|
||||
| `minimax/MiniMax-M2.1` | MiniMax M2.1 | 1M tokens | 长上下文、编码 |
|
||||
|
||||
### 专业建议
|
||||
|
||||
- **最便宜的选择** - 输入每 1M $0.20(比 ChatGPT 便宜 90%)
|
||||
- **5 小时滚动** - 每 5 小时配额重置
|
||||
- **1M 上下文** - 超大上下文窗口
|
||||
- **处理整个代码库** - 适合大文件
|
||||
|
||||
### 配额重置
|
||||
|
||||
```
|
||||
5 小时滚动窗口:
|
||||
→ 使用配额 → 等待 5 小时 → 配额刷新
|
||||
|
||||
示例:
|
||||
10:00 AM - 使用 5M tokens
|
||||
3:00 PM - 配额刷新
|
||||
8:00 PM - 配额刷新
|
||||
|
||||
24/7 编码,成本极低!
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Kimi K2(固定 $9/月)
|
||||
|
||||
### 价格
|
||||
|
||||
| 套餐 | 月费 | 包含 Tokens | 折合成本 |
|
||||
|------|--------------|-----------------|----------------|
|
||||
| 订阅 | $9 | 10M tokens | $0.90/1M |
|
||||
|
||||
**成本示例:**
|
||||
- $9/月固定
|
||||
- 包含 10M tokens
|
||||
- **折合: $0.90/1M** - 持续使用的最佳性价比!
|
||||
|
||||
### 设置
|
||||
|
||||
**步骤 1:订阅**
|
||||
|
||||
1. 访问 [Moonshot AI](https://platform.moonshot.ai/)
|
||||
2. 创建账户
|
||||
3. 订阅 $9/月套餐
|
||||
|
||||
**步骤 2:获取 API Key**
|
||||
|
||||
```bash
|
||||
仪表盘 → API Keys → 创建新 Key
|
||||
→ 复制 API key
|
||||
```
|
||||
|
||||
**步骤 3:添加到 9Router**
|
||||
|
||||
```bash
|
||||
9router
|
||||
# 仪表盘 → 提供商 → 添加 API Key
|
||||
|
||||
Provider: kimi
|
||||
API Key: your-kimi-api-key
|
||||
```
|
||||
|
||||
**步骤 4:在 CLI 中使用**
|
||||
|
||||
```
|
||||
Model: kimi/kimi-latest
|
||||
```
|
||||
|
||||
### 可用模型
|
||||
|
||||
| 模型 ID | 描述 | 上下文 | 最佳场景 |
|
||||
|----------|-------------|---------|----------|
|
||||
| `kimi/kimi-latest` | Kimi Latest | 200K | 通用编码 |
|
||||
|
||||
### 专业建议
|
||||
|
||||
- **固定成本** - $9/月,不限用量(最多 10M)
|
||||
- **稳定使用最佳** - 若每月用 10M,折合 $0.90/1M
|
||||
- **每月重置** - 10M tokens 每月重置
|
||||
- **可预测账单** - 无意外费用
|
||||
|
||||
### 配额重置
|
||||
|
||||
```
|
||||
每月重置: 每月 1 日
|
||||
→ 10M tokens 刷新
|
||||
|
||||
每月用量示例:
|
||||
第 1 周: 3M tokens
|
||||
第 2 周: 2M tokens
|
||||
第 3 周: 3M tokens
|
||||
第 4 周: 2M tokens
|
||||
合计: 10M tokens = $9 固定
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 价格对比
|
||||
|
||||
| 提供商 | 输入/1M | 输出/1M | 重置 | 10M 成本 | 最佳场景 |
|
||||
|----------|----------|-----------|-------|----------|----------|
|
||||
| **GLM-4.7** | $0.60 | $2.20 | 每日 10AM | $6-22 | 每日配额用户 |
|
||||
| **MiniMax M2.1** | $0.20 | $1.00 | 5 小时 | $2-10 | **最便宜!** |
|
||||
| **Kimi K2** | $0.90 | $0.90 | 每月 | **$9 固定** | 稳定使用 |
|
||||
| ChatGPT API | $20.00 | $20.00 | 无 | $200 | ❌ 昂贵 |
|
||||
|
||||
**节省:** 比 ChatGPT API 便宜 90-95%!
|
||||
|
||||
---
|
||||
|
||||
## 使用示例
|
||||
|
||||
### Cursor IDE 设置
|
||||
|
||||
```
|
||||
Settings → Models → Advanced:
|
||||
OpenAI API Base URL: http://localhost:20128/v1
|
||||
OpenAI API Key: [从 9router 仪表盘获取]
|
||||
Model: glm/glm-4.7
|
||||
```
|
||||
|
||||
### 创建组合(推荐)
|
||||
|
||||
```
|
||||
仪表盘 → 组合 → 新建
|
||||
|
||||
名称: cheap-backup
|
||||
模型:
|
||||
1. cc/claude-opus-4-5 (订阅主力)
|
||||
2. glm/glm-4.7 (低价备用, 每日重置)
|
||||
3. minimax/MiniMax-M2.1 (最便宜的回退)
|
||||
4. if/kimi-k2-thinking (免费应急)
|
||||
|
||||
CLI 中使用: cheap-backup
|
||||
```
|
||||
|
||||
**结果:** 订阅 → 低价 → 最便宜 → 免费
|
||||
|
||||
---
|
||||
|
||||
## 成本优化
|
||||
|
||||
### 策略 1:每日重置例程
|
||||
|
||||
```
|
||||
早上(10AM): 全新 GLM 配额
|
||||
→ 用 GLM 处理重任务
|
||||
→ 节省订阅配额
|
||||
|
||||
下午: 订阅配额
|
||||
→ 用 Claude/Codex 处理复杂任务
|
||||
|
||||
晚上: MiniMax(5h 重置)
|
||||
→ 深夜的低价备用
|
||||
|
||||
夜里: 免费层(iFlow)
|
||||
→ 零成本应急备用
|
||||
```
|
||||
|
||||
### 策略 2:预算优先
|
||||
|
||||
```
|
||||
设置月预算: $20
|
||||
|
||||
分配:
|
||||
- $9 Kimi K2(10M tokens 固定)
|
||||
- $6 GLM 每日配额(10M tokens)
|
||||
- $5 MiniMax 溢出(25M tokens)
|
||||
|
||||
合计: $20 拿到 45M tokens
|
||||
而 ChatGPT API 同样的钱只能拿 1M tokens!
|
||||
```
|
||||
|
||||
### 策略 3:订阅优先最大化
|
||||
|
||||
```
|
||||
优先级:
|
||||
1. Gemini CLI(每月免费 180K)
|
||||
2. Claude Code(已付费订阅)
|
||||
3. GLM-4.7(低价备用,每 1M $0.6)
|
||||
4. MiniMax M2.1(最便宜,每 1M $0.2)
|
||||
5. iFlow(免费应急)
|
||||
|
||||
月成本示例(100M tokens):
|
||||
- 60M 通过 Gemini CLI: $0(免费)
|
||||
- 30M 通过 Claude Code: $0(订阅)
|
||||
- 8M 通过 GLM: $4.80
|
||||
- 2M 通过 MiniMax: $0.40
|
||||
合计: $5.20/月!
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 真实案例
|
||||
|
||||
### 案例 1:重度编码月(100M tokens)
|
||||
|
||||
```
|
||||
分解:
|
||||
- 60M 通过订阅(Claude/Codex): 无额外费用
|
||||
- 30M 通过 GLM-4.7: $18
|
||||
- 10M 通过 MiniMax M2.1: $2
|
||||
|
||||
合计: $20/月
|
||||
而 ChatGPT API 需 $2000!
|
||||
|
||||
节省: 便宜 99%!
|
||||
```
|
||||
|
||||
### 案例 2:预算编码者($10/月)
|
||||
|
||||
```
|
||||
策略:
|
||||
- $9 Kimi K2(10M tokens)
|
||||
- $1 MiniMax 溢出(5M tokens)
|
||||
|
||||
合计: $10 拿到 15M tokens
|
||||
而 ChatGPT API 同样的钱只能拿 0.5M tokens!
|
||||
|
||||
多 30 倍 tokens!
|
||||
```
|
||||
|
||||
### 案例 3:自由职业(用量浮动)
|
||||
|
||||
```
|
||||
清淡月(20M tokens):
|
||||
- 15M 通过订阅: $0
|
||||
- 5M 通过 GLM: $3
|
||||
合计: $3
|
||||
|
||||
繁忙月(150M tokens):
|
||||
- 60M 通过订阅: $0
|
||||
- 60M 通过 GLM: $36
|
||||
- 30M 通过 MiniMax: $6
|
||||
合计: $42
|
||||
|
||||
平均: $22.50/月
|
||||
而 ChatGPT API 需 $3400!
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 最佳实践
|
||||
|
||||
### 1. 跟踪每日配额
|
||||
|
||||
```
|
||||
仪表盘显示:
|
||||
- GLM 配额: 已用 75%(6h 后重置)
|
||||
- MiniMax 配额: 已用 50%(2h 后重置)
|
||||
- Kimi 配额: 已用 8M/10M(15 天后重置)
|
||||
|
||||
围绕重置时间规划重任务!
|
||||
```
|
||||
|
||||
### 2. 使用 Coding Plan(GLM)
|
||||
|
||||
```
|
||||
标准: 1× 配额
|
||||
Coding Plan: 3× 配额(同价!)
|
||||
|
||||
→ 永远选 Coding Plan
|
||||
```
|
||||
|
||||
### 3. 结合免费层
|
||||
|
||||
```
|
||||
组合:
|
||||
1. gc/gemini-3-flash(免费主力)
|
||||
2. glm/glm-4.7(低价备用)
|
||||
3. minimax/MiniMax-M2.1(最便宜)
|
||||
4. if/kimi-k2-thinking(免费应急)
|
||||
|
||||
结果: 最小化成本,最大化在线
|
||||
```
|
||||
|
||||
### 4. 设置预算告警
|
||||
|
||||
```
|
||||
仪表盘 → 设置 → 预算告警
|
||||
|
||||
每日: $2 上限
|
||||
每周: $10 上限
|
||||
每月: $30 上限
|
||||
|
||||
→ 达到上限时自动切换到免费层
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 故障排除
|
||||
|
||||
### "Quota exhausted"
|
||||
|
||||
**方案:**
|
||||
- GLM: 等到北京时间 10:00 AM
|
||||
- MiniMax: 从首次使用起等 5 小时
|
||||
- Kimi: 等到下月 1 日
|
||||
- 使用组合回退到免费层
|
||||
|
||||
### "API key invalid"
|
||||
|
||||
**方案:**
|
||||
- 检查 API key 是否复制正确
|
||||
- 确认账户有余额
|
||||
- 必要时重新生成 API key
|
||||
|
||||
### "High costs"
|
||||
|
||||
**方案:**
|
||||
- 在仪表盘查看使用统计
|
||||
- 设置预算告警
|
||||
- 切换到 MiniMax(每 1M $0.2 最便宜)
|
||||
- 非关键任务用免费层
|
||||
|
||||
---
|
||||
|
||||
## 下一步
|
||||
|
||||
- **添加免费回退:** [免费提供商](./free.md)
|
||||
- **设置订阅:** [订阅型提供商](./subscription.md)
|
||||
- **创建组合:** 仪表盘 → 组合 → 新建
|
||||
442
gitbook/content/zh-CN/providers/free.md
Normal file
442
gitbook/content/zh-CN/providers/free.md
Normal file
@@ -0,0 +1,442 @@
|
||||
# 免费提供商 - 零成本回退
|
||||
|
||||
当其他一切都受配额限制时的应急备用。零成本 24/7 编码!
|
||||
|
||||
---
|
||||
|
||||
## 概览
|
||||
|
||||
免费层提供商是订阅和低价配额都耗尽时的 **回退**:
|
||||
|
||||
- 🆓 **iFlow** - 8 个免费模型(Kimi K2、Qwen3、GLM 4.7、MiniMax M2...)
|
||||
- 🆓 **Qwen** - 3 个免费模型(Qwen3 Coder Plus/Flash、Vision)
|
||||
- 🆓 **Kiro** - 2 个免费模型(Claude Sonnet 4.5、Haiku 4.5)
|
||||
|
||||
**策略:** 作为应急备用使用。无限用量,永久零成本!
|
||||
|
||||
---
|
||||
|
||||
## iFlow(8 个免费模型)
|
||||
|
||||
### 价格
|
||||
|
||||
| 套餐 | 月费 | 模型 | 配额 |
|
||||
|------|--------------|--------|-------|
|
||||
| 免费 | $0 | 8 个模型 | 无限 |
|
||||
|
||||
**最佳价值:** 免费层中模型最多!Kimi K2、Qwen3、GLM、MiniMax、DeepSeek。
|
||||
|
||||
### 设置
|
||||
|
||||
**步骤 1:通过仪表盘连接**
|
||||
|
||||
```bash
|
||||
9router
|
||||
# 仪表盘 → 提供商 → 连接 iFlow
|
||||
```
|
||||
|
||||
**步骤 2:iFlow OAuth 登录**
|
||||
|
||||
- 点击 "Connect iFlow"
|
||||
- 浏览器打开 → iFlow 登录页
|
||||
- 创建账户或登录
|
||||
- 授予权限
|
||||
- 启用自动 token 刷新
|
||||
|
||||
**步骤 3:在 CLI 中使用**
|
||||
|
||||
```
|
||||
Model: if/kimi-k2-thinking
|
||||
if/kimi-k2
|
||||
if/qwen3-coder-plus
|
||||
if/glm-4.7
|
||||
if/minimax-m2
|
||||
if/deepseek-r1
|
||||
if/deepseek-v3.2-chat
|
||||
if/deepseek-v3.2-reasoner
|
||||
```
|
||||
|
||||
### 可用模型
|
||||
|
||||
| 模型 ID | 描述 | 最佳场景 |
|
||||
|----------|-------------|----------|
|
||||
| `if/kimi-k2-thinking` | Kimi K2 Thinking | 复杂推理 |
|
||||
| `if/kimi-k2` | Kimi K2 | 通用编码 |
|
||||
| `if/qwen3-coder-plus` | Qwen3 Coder Plus | 代码生成 |
|
||||
| `if/glm-4.7` | GLM 4.7 | 中文 + 英文 |
|
||||
| `if/minimax-m2` | MiniMax M2 | 长上下文 |
|
||||
| `if/deepseek-r1` | DeepSeek R1 | 推理任务 |
|
||||
| `if/deepseek-v3.2-chat` | DeepSeek V3.2 Chat | 对话型 |
|
||||
| `if/deepseek-v3.2-reasoner` | DeepSeek V3.2 Reasoner | 复杂逻辑 |
|
||||
|
||||
### 专业建议
|
||||
|
||||
- **8 个免费模型** - 免费层中最丰富
|
||||
- **无限用量** - 无配额限制
|
||||
- **Kimi K2 Thinking** - 复杂推理最佳
|
||||
- **DeepSeek R1** - 强大的推理能力
|
||||
|
||||
---
|
||||
|
||||
## Qwen(3 个免费模型)
|
||||
|
||||
### 价格
|
||||
|
||||
| 套餐 | 月费 | 模型 | 配额 |
|
||||
|------|--------------|--------|-------|
|
||||
| 免费 | $0 | 3 个模型 | 无限 |
|
||||
|
||||
### 设置
|
||||
|
||||
**步骤 1:通过仪表盘连接**
|
||||
|
||||
```bash
|
||||
9router
|
||||
# 仪表盘 → 提供商 → 连接 Qwen
|
||||
```
|
||||
|
||||
**步骤 2:设备码授权**
|
||||
|
||||
- 点击 "Connect Qwen"
|
||||
- 仪表盘显示设备码
|
||||
- 访问授权 URL
|
||||
- 输入设备码
|
||||
- 登录 Qwen 账户
|
||||
- 启用自动 token 刷新
|
||||
|
||||
**步骤 3:在 CLI 中使用**
|
||||
|
||||
```
|
||||
Model: qw/qwen3-coder-plus
|
||||
qw/qwen3-coder-flash
|
||||
qw/vision-model
|
||||
```
|
||||
|
||||
### 可用模型
|
||||
|
||||
| 模型 ID | 描述 | 最佳场景 |
|
||||
|----------|-------------|----------|
|
||||
| `qw/qwen3-coder-plus` | Qwen3 Coder Plus | 高级编码 |
|
||||
| `qw/qwen3-coder-flash` | Qwen3 Coder Flash | 快速响应 |
|
||||
| `qw/vision-model` | Qwen3 Vision | 图像分析 |
|
||||
|
||||
### 专业建议
|
||||
|
||||
- **Qwen3 Coder Plus** - 编码能力强
|
||||
- **Qwen3 Coder Flash** - 快速任务首选
|
||||
- **Vision 模型** - 免费图像分析
|
||||
- **无限用量** - 无配额限制
|
||||
|
||||
---
|
||||
|
||||
## Kiro(免费 Claude)
|
||||
|
||||
### 价格
|
||||
|
||||
| 套餐 | 月费 | 模型 | 配额 |
|
||||
|------|--------------|--------|-------|
|
||||
| 免费 | $0 | Claude Sonnet 4.5、Haiku 4.5 | 无限 |
|
||||
|
||||
**最佳价值:** 免费 Claude!与付费 Claude Code 同质量。
|
||||
|
||||
### 设置
|
||||
|
||||
**步骤 1:通过仪表盘连接**
|
||||
|
||||
```bash
|
||||
9router
|
||||
# 仪表盘 → 提供商 → 连接 Kiro
|
||||
```
|
||||
|
||||
**步骤 2:AWS Builder ID 或 OAuth**
|
||||
|
||||
- 点击 "Connect Kiro"
|
||||
- 选择登录方式:
|
||||
- AWS Builder ID(推荐)
|
||||
- Google 账户
|
||||
- GitHub 账户
|
||||
- 授予权限
|
||||
- 启用自动 token 刷新
|
||||
|
||||
**步骤 3:在 CLI 中使用**
|
||||
|
||||
```
|
||||
Model: kr/claude-sonnet-4.5
|
||||
kr/claude-haiku-4.5
|
||||
```
|
||||
|
||||
### 可用模型
|
||||
|
||||
| 模型 ID | 描述 | 最佳场景 |
|
||||
|----------|-------------|----------|
|
||||
| `kr/claude-sonnet-4.5` | Claude Sonnet 4.5 | 质量/速度平衡 |
|
||||
| `kr/claude-haiku-4.5` | Claude Haiku 4.5 | 快速响应 |
|
||||
|
||||
### 专业建议
|
||||
|
||||
- **免费 Claude** - 与付费层同质量
|
||||
- **AWS Builder ID** - 用 AWS 账户轻松设置
|
||||
- **无限用量** - 无配额限制
|
||||
- **顶级质量** - 免费的 Claude 4.5!
|
||||
|
||||
---
|
||||
|
||||
## 特性对比
|
||||
|
||||
| 提供商 | 模型 | 最佳模型 | 设置方式 | 配额 |
|
||||
|----------|--------|------------|-------|-------|
|
||||
| **iFlow** | 8 | Kimi K2 Thinking | OAuth | 无限 |
|
||||
| **Qwen** | 3 | Qwen3 Coder Plus | 设备码 | 无限 |
|
||||
| **Kiro** | 2 | Claude Sonnet 4.5 | AWS Builder ID | 无限 |
|
||||
|
||||
**赢家:** 多样性看 iFlow,质量看 Kiro!
|
||||
|
||||
---
|
||||
|
||||
## 使用示例
|
||||
|
||||
### Cursor IDE 设置
|
||||
|
||||
```
|
||||
Settings → Models → Advanced:
|
||||
OpenAI API Base URL: http://localhost:20128/v1
|
||||
OpenAI API Key: [从 9router 仪表盘获取]
|
||||
Model: if/kimi-k2-thinking
|
||||
```
|
||||
|
||||
### 创建组合(推荐)
|
||||
|
||||
```
|
||||
仪表盘 → 组合 → 新建
|
||||
|
||||
名称: free-combo
|
||||
模型:
|
||||
1. if/kimi-k2-thinking (iFlow 主力)
|
||||
2. qw/qwen3-coder-plus (Qwen 备用)
|
||||
3. kr/claude-sonnet-4.5 (Kiro 质量)
|
||||
|
||||
CLI 中使用: free-combo
|
||||
```
|
||||
|
||||
**结果:** 零成本,最大在线!
|
||||
|
||||
---
|
||||
|
||||
## 完整回退策略
|
||||
|
||||
### 完整 3 层组合
|
||||
|
||||
```
|
||||
仪表盘 → 组合 → 新建
|
||||
|
||||
名称: complete-fallback
|
||||
模型:
|
||||
1. gc/gemini-3-flash-preview (免费订阅)
|
||||
2. cc/claude-opus-4-5 (付费订阅)
|
||||
3. glm/glm-4.7 (低价备用, 每 1M $0.6)
|
||||
4. minimax/MiniMax-M2.1 (最便宜, 每 1M $0.2)
|
||||
5. if/kimi-k2-thinking (免费回退)
|
||||
6. kr/claude-sonnet-4.5 (免费质量)
|
||||
|
||||
CLI 中使用: complete-fallback
|
||||
```
|
||||
|
||||
**结果:**
|
||||
- 第 1 层: 免费订阅(Gemini CLI)
|
||||
- 第 2 层: 付费订阅(Claude Code)
|
||||
- 第 3 层: 低价备用(GLM、MiniMax)
|
||||
- 第 4 层: 免费回退(iFlow、Kiro)
|
||||
|
||||
**永不停码!**
|
||||
|
||||
---
|
||||
|
||||
## 最佳实践
|
||||
|
||||
### 1. 作为应急备用
|
||||
|
||||
```
|
||||
优先级:
|
||||
1. 订阅层(最大化付费配额)
|
||||
2. 低价层(每 1M tokens 几分钱)
|
||||
3. 免费层(无限,零成本)
|
||||
|
||||
仅在以下情况使用免费层:
|
||||
- 订阅配额耗尽
|
||||
- 预算上限达到
|
||||
- 测试/非关键任务
|
||||
```
|
||||
|
||||
### 2. 选择合适的模型
|
||||
|
||||
```
|
||||
复杂推理: if/kimi-k2-thinking
|
||||
快速编码: qw/qwen3-coder-flash
|
||||
最佳质量: kr/claude-sonnet-4.5
|
||||
长上下文: if/minimax-m2
|
||||
视觉任务: qw/vision-model
|
||||
```
|
||||
|
||||
### 3. 创建仅免费组合
|
||||
|
||||
```
|
||||
零成本编码:
|
||||
|
||||
名称: zero-cost
|
||||
模型:
|
||||
1. kr/claude-sonnet-4.5 (最佳质量)
|
||||
2. if/kimi-k2-thinking (复杂任务)
|
||||
3. qw/qwen3-coder-plus (快速编码)
|
||||
|
||||
成本: 永远 $0!
|
||||
```
|
||||
|
||||
### 4. 上生产前先测试
|
||||
|
||||
```
|
||||
用免费层来:
|
||||
- 测试 prompt
|
||||
- 原型功能
|
||||
- 学习新框架
|
||||
- 非关键任务
|
||||
|
||||
把付费配额留给:
|
||||
- 生产代码
|
||||
- 复杂重构
|
||||
- 关键功能
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 真实案例
|
||||
|
||||
### 案例 1:学生/学习者(零预算)
|
||||
|
||||
```
|
||||
设置:
|
||||
1. kr/claude-sonnet-4.5 (最佳质量)
|
||||
2. if/kimi-k2-thinking (复杂推理)
|
||||
3. qw/qwen3-coder-plus (快速编码)
|
||||
|
||||
月成本: $0
|
||||
用量: 无限
|
||||
|
||||
适合:
|
||||
- 学习编程
|
||||
- 个人项目
|
||||
- 作业/任务
|
||||
```
|
||||
|
||||
### 案例 2:自由职业(预算敏感)
|
||||
|
||||
```
|
||||
设置:
|
||||
1. gc/gemini-3-flash-preview (每月免费 180K)
|
||||
2. glm/glm-4.7 (低价备用, 每 1M $0.6)
|
||||
3. if/kimi-k2-thinking (免费回退)
|
||||
|
||||
月成本: $5-10
|
||||
用量: 100M+ tokens
|
||||
|
||||
适合:
|
||||
- 客户项目(付费层)
|
||||
- 测试(免费层)
|
||||
- 应急备用
|
||||
```
|
||||
|
||||
### 案例 3:重度用户(全部最大化)
|
||||
|
||||
```
|
||||
设置:
|
||||
1. gc/gemini-3-flash-preview (每月免费 180K)
|
||||
2. cc/claude-opus-4-5 (订阅 $20-100)
|
||||
3. cx/gpt-5.2-codex (订阅 $20-200)
|
||||
4. glm/glm-4.7 (低价 每 1M $0.6)
|
||||
5. minimax/MiniMax-M2.1 (最便宜 每 1M $0.2)
|
||||
6. if/kimi-k2-thinking (免费无限)
|
||||
7. kr/claude-sonnet-4.5 (免费质量)
|
||||
|
||||
月成本: $40-320(订阅)+ $10-20(低价层)
|
||||
用量: 500M+ tokens
|
||||
|
||||
适合:
|
||||
- 专业开发
|
||||
- 团队项目
|
||||
- 24/7 编码
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 成本对比
|
||||
|
||||
### 场景:每月 100M tokens
|
||||
|
||||
**方案 1:仅 ChatGPT API**
|
||||
```
|
||||
100M × $20/1M = $2,000/月
|
||||
```
|
||||
|
||||
**方案 2:仅 9Router 免费层**
|
||||
```
|
||||
100M 通过免费层 = $0/月
|
||||
节省: $2,000/月 (100%)
|
||||
```
|
||||
|
||||
**方案 3:9Router 完整策略**
|
||||
```
|
||||
60M 通过 Gemini CLI(免费): $0
|
||||
30M 通过 Claude Code(订阅): 无额外费用
|
||||
8M 通过 GLM(低价): $4.80
|
||||
2M 通过 iFlow(免费): $0
|
||||
合计: $4.80/月 + 你已有的订阅
|
||||
节省: $1,995/月 (99.76%)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 故障排除
|
||||
|
||||
### "OAuth failed"
|
||||
|
||||
**方案:**
|
||||
- 检查网络连接
|
||||
- 尝试其他浏览器
|
||||
- 清除浏览器缓存
|
||||
- 在仪表盘重新连接
|
||||
|
||||
### "Model not available"
|
||||
|
||||
**方案:**
|
||||
- 检查仪表盘中提供商已连接
|
||||
- 确认 OAuth token 有效
|
||||
- 必要时重新连接提供商
|
||||
|
||||
### "Slow responses"
|
||||
|
||||
**方案:**
|
||||
- 免费层优先级较低
|
||||
- 在非高峰时段使用
|
||||
- 切换到其他免费提供商
|
||||
- 升级到低价层以提速
|
||||
|
||||
---
|
||||
|
||||
## 限制
|
||||
|
||||
### 免费层注意事项
|
||||
|
||||
- **速度** - 可能慢于付费层
|
||||
- **优先级** - 高峰期优先级较低
|
||||
- **速率限制** - 可能限速(但配额无限)
|
||||
- **可用性** - 偶尔可能宕机
|
||||
|
||||
**方案:** 使用 3 层回退策略保障可靠性!
|
||||
|
||||
---
|
||||
|
||||
## 下一步
|
||||
|
||||
- **设置订阅:** [订阅型提供商](./subscription.md)
|
||||
- **添加低价备用:** [低价提供商](./cheap.md)
|
||||
- **创建组合:** 仪表盘 → 组合 → 新建
|
||||
- **开始编码:** 使用 `complete-fallback` 组合最大化可靠性
|
||||
404
gitbook/content/zh-CN/providers/subscription.md
Normal file
404
gitbook/content/zh-CN/providers/subscription.md
Normal file
@@ -0,0 +1,404 @@
|
||||
# 订阅型提供商 - 最大化你的价值
|
||||
|
||||
通过智能配额跟踪和自动回退,最大化你已有的 AI 订阅价值。在重置前用完每一点订阅配额!
|
||||
|
||||
---
|
||||
|
||||
## 概览
|
||||
|
||||
订阅型提供商是你的 **首选** - 既然已经付费了,就要用足:
|
||||
|
||||
- ✅ **Claude Code**(Pro/Max)- Claude 4.5 Opus/Sonnet/Haiku
|
||||
- ✅ **OpenAI Codex**(Plus/Pro)- GPT 5.2 Codex、GPT 5.1 Codex Max
|
||||
- ✅ **Gemini CLI**(免费层!)- 每月 180K 次补全
|
||||
- ✅ **GitHub Copilot** - GPT-5、Claude 4.5、Gemini 3
|
||||
- ✅ **Antigravity**(Google)- Gemini 3 Pro、Claude Sonnet 4.5
|
||||
|
||||
**策略:** 优先使用这些,实时跟踪配额,耗尽时回退到低价/免费层。
|
||||
|
||||
---
|
||||
|
||||
## Claude Code(Pro/Max)
|
||||
|
||||
### 价格
|
||||
|
||||
| 套餐 | 月费 | 配额重置 | 模型 |
|
||||
|------|--------------|-------------|--------|
|
||||
| Pro | $20 | 5 小时 + 每周 | Opus、Sonnet、Haiku |
|
||||
| Max | $100 | 5 小时 + 每周 | Opus、Sonnet、Haiku |
|
||||
|
||||
### 设置
|
||||
|
||||
**步骤 1:通过仪表盘连接**
|
||||
|
||||
```bash
|
||||
9router
|
||||
# 仪表盘打开 → 提供商 → 连接 Claude Code
|
||||
```
|
||||
|
||||
**步骤 2:OAuth 登录**
|
||||
|
||||
- 点击 "Connect Claude Code"
|
||||
- 浏览器打开 → 登录 Claude.ai
|
||||
- 启用自动 token 刷新
|
||||
- 开始配额跟踪
|
||||
|
||||
**步骤 3:在 CLI 中使用**
|
||||
|
||||
```
|
||||
Model: cc/claude-opus-4-5-20251101
|
||||
cc/claude-sonnet-4-5-20250929
|
||||
cc/claude-haiku-4-5-20251001
|
||||
```
|
||||
|
||||
### 可用模型
|
||||
|
||||
| 模型 ID | 描述 | 最佳场景 |
|
||||
|----------|-------------|----------|
|
||||
| `cc/claude-opus-4-5-20251101` | Claude 4.5 Opus | 复杂任务、架构 |
|
||||
| `cc/claude-sonnet-4-5-20250929` | Claude 4.5 Sonnet | 平衡速度/质量 |
|
||||
| `cc/claude-haiku-4-5-20251001` | Claude 4.5 Haiku | 快速响应 |
|
||||
|
||||
### 专业建议
|
||||
|
||||
- **Opus 用于复杂任务** - 架构决策、重构
|
||||
- **Sonnet 用于速度** - 快速编辑、代码生成
|
||||
- **按模型跟踪配额** - 仪表盘按模型显示使用情况
|
||||
- **5 小时重置** - 每 5 小时刷新配额,加每周重置
|
||||
|
||||
---
|
||||
|
||||
## OpenAI Codex(Plus/Pro)
|
||||
|
||||
### 价格
|
||||
|
||||
| 套餐 | 月费 | 配额重置 | 模型 |
|
||||
|------|--------------|-------------|--------|
|
||||
| Plus | $20 | 5 小时 + 每周 | GPT 5.2、GPT 5.1 |
|
||||
| Pro | $200 | 5 小时 + 每周 | GPT 5.2 Codex、GPT 5.1 Max |
|
||||
|
||||
### 设置
|
||||
|
||||
**步骤 1:通过仪表盘连接**
|
||||
|
||||
```bash
|
||||
9router
|
||||
# 仪表盘 → 提供商 → 连接 Codex
|
||||
```
|
||||
|
||||
**步骤 2:OAuth 登录**
|
||||
|
||||
- 点击 "Connect Codex"
|
||||
- 浏览器打开 `http://localhost:1455`
|
||||
- 登录 OpenAI 账户
|
||||
- 启用自动 token 刷新
|
||||
|
||||
**步骤 3:在 CLI 中使用**
|
||||
|
||||
```
|
||||
Model: cx/gpt-5.2-codex
|
||||
cx/gpt-5.1-codex-max
|
||||
cx/gpt-5.2
|
||||
cx/gpt-5.1-codex
|
||||
```
|
||||
|
||||
### 可用模型
|
||||
|
||||
| 模型 ID | 描述 | 最佳场景 |
|
||||
|----------|-------------|----------|
|
||||
| `cx/gpt-5.2-codex` | GPT 5.2 Codex | 最新编码模型 |
|
||||
| `cx/gpt-5.1-codex-max` | GPT 5.1 Codex Max | 最大上下文 |
|
||||
| `cx/gpt-5.2` | GPT 5.2 | 通用任务 |
|
||||
| `cx/gpt-5.1-codex` | GPT 5.1 Codex | 稳定编码 |
|
||||
|
||||
### 专业建议
|
||||
|
||||
- **5 小时滚动配额** - 每 5 小时刷新配额
|
||||
- **每周重置** - 每周配额完全重置
|
||||
- **Pro 层** - 配额是 Plus 的 10 倍
|
||||
|
||||
---
|
||||
|
||||
## Gemini CLI(每月免费 180K!)
|
||||
|
||||
### 价格
|
||||
|
||||
| 套餐 | 月费 | 配额 | 重置 |
|
||||
|------|--------------|-------|-------|
|
||||
| 免费 | $0 | 180K 次补全/月 + 每日 1K | 每日 + 每月 |
|
||||
|
||||
**最佳性价比:** 巨大的免费层!请在付费层之前使用。
|
||||
|
||||
### 设置
|
||||
|
||||
**步骤 1:通过仪表盘连接**
|
||||
|
||||
```bash
|
||||
9router
|
||||
# 仪表盘 → 提供商 → 连接 Gemini CLI
|
||||
```
|
||||
|
||||
**步骤 2:Google OAuth**
|
||||
|
||||
- 点击 "Connect Gemini CLI"
|
||||
- 浏览器打开 → 登录 Google 账户
|
||||
- 授予权限
|
||||
- 启用自动 token 刷新
|
||||
|
||||
**步骤 3:在 CLI 中使用**
|
||||
|
||||
```
|
||||
Model: gc/gemini-3-flash-preview
|
||||
gc/gemini-3-pro-preview
|
||||
gc/gemini-2.5-pro
|
||||
gc/gemini-2.5-flash
|
||||
```
|
||||
|
||||
### 可用模型
|
||||
|
||||
| 模型 ID | 描述 | 最佳场景 |
|
||||
|----------|-------------|----------|
|
||||
| `gc/gemini-3-flash-preview` | Gemini 3 Flash Preview | 快速响应 |
|
||||
| `gc/gemini-3-pro-preview` | Gemini 3 Pro Preview | 复杂任务 |
|
||||
| `gc/gemini-2.5-pro` | Gemini 2.5 Pro | 稳定生产 |
|
||||
| `gc/gemini-2.5-flash` | Gemini 2.5 Flash | 快速任务 |
|
||||
|
||||
### 专业建议
|
||||
|
||||
- **每月 180K 次补全** - 大量免费层
|
||||
- **每日 1K 限制** - 每天午夜重置
|
||||
- **优先使用** - 免费层,先于付费订阅
|
||||
- **无需信用卡** - Google 账户完全免费
|
||||
|
||||
---
|
||||
|
||||
## GitHub Copilot
|
||||
|
||||
### 价格
|
||||
|
||||
| 套餐 | 月费 | 配额重置 | 模型 |
|
||||
|------|--------------|-------------|--------|
|
||||
| 个人 | $10 | 每月(1 日) | GPT-5、Claude 4.5、Gemini 3 |
|
||||
| 商业 | $19 | 每月(1 日) | GPT-5、Claude 4.5、Gemini 3 |
|
||||
|
||||
### 设置
|
||||
|
||||
**步骤 1:通过仪表盘连接**
|
||||
|
||||
```bash
|
||||
9router
|
||||
# 仪表盘 → 提供商 → 连接 GitHub
|
||||
```
|
||||
|
||||
**步骤 2:通过 GitHub 进行 OAuth**
|
||||
|
||||
- 点击 "Connect GitHub"
|
||||
- 浏览器打开 → 登录 GitHub
|
||||
- 授权 GitHub Copilot
|
||||
- 启用自动 token 刷新
|
||||
|
||||
**步骤 3:在 CLI 中使用**
|
||||
|
||||
```
|
||||
Model: gh/gpt-5
|
||||
gh/gpt-5.1-codex-max
|
||||
gh/claude-4.5-sonnet
|
||||
gh/gemini-3-pro
|
||||
```
|
||||
|
||||
### 可用模型
|
||||
|
||||
| 模型 ID | 描述 | 最佳场景 |
|
||||
|----------|-------------|----------|
|
||||
| `gh/gpt-5` | GPT-5 | 最新 OpenAI 模型 |
|
||||
| `gh/gpt-5.1-codex-max` | GPT-5.1 Codex Max | 最大上下文 |
|
||||
| `gh/claude-4.5-sonnet` | Claude 4.5 Sonnet | Anthropic 质量 |
|
||||
| `gh/gemini-3-pro` | Gemini 3 Pro | Google 质量 |
|
||||
|
||||
### 专业建议
|
||||
|
||||
- **每月重置** - 每月 1 日完全重置
|
||||
- **多模型** - 一个订阅访问 GPT、Claude、Gemini
|
||||
- **商业层** - 团队更高配额
|
||||
|
||||
---
|
||||
|
||||
## Antigravity(Google 账户)
|
||||
|
||||
### 价格
|
||||
|
||||
| 套餐 | 月费 | 配额 | 模型 |
|
||||
|------|--------------|-------|--------|
|
||||
| 免费 | $0 | 类似 Gemini CLI | Gemini 3 Pro、Claude Sonnet 4.5 |
|
||||
|
||||
### 设置
|
||||
|
||||
**步骤 1:通过仪表盘连接**
|
||||
|
||||
```bash
|
||||
9router
|
||||
# 仪表盘 → 提供商 → 连接 Antigravity
|
||||
```
|
||||
|
||||
**步骤 2:Google OAuth**
|
||||
|
||||
- 点击 "Connect Antigravity"
|
||||
- 浏览器打开 → 登录 Google 账户
|
||||
- 授予权限
|
||||
- 启用自动 token 刷新
|
||||
|
||||
**步骤 3:在 CLI 中使用**
|
||||
|
||||
```
|
||||
Model: ag/gemini-3-pro-high
|
||||
ag/claude-sonnet-4-5
|
||||
ag/claude-opus-4-5-thinking
|
||||
```
|
||||
|
||||
### 可用模型
|
||||
|
||||
| 模型 ID | 描述 | 最佳场景 |
|
||||
|----------|-------------|----------|
|
||||
| `ag/gemini-3-pro-high` | Gemini 3 Pro High | 高质量响应 |
|
||||
| `ag/claude-sonnet-4-5` | Claude Sonnet 4.5 | Anthropic 质量 |
|
||||
| `ag/claude-opus-4-5-thinking` | Claude Opus 4.5 Thinking | 复杂推理 |
|
||||
|
||||
### 专业建议
|
||||
|
||||
- **免费层** - Google 账户零成本
|
||||
- **可访问 Claude** - 免费的 Claude Sonnet/Opus
|
||||
- **配额类似 Gemini CLI** - 每日/每月上限
|
||||
|
||||
---
|
||||
|
||||
## 价格对比
|
||||
|
||||
| 提供商 | 月费 | 配额重置 | 价值 |
|
||||
|----------|--------------|-------------|-------|
|
||||
| **Claude Code Pro** | $20 | 5 小时 + 每周 | ⭐⭐⭐⭐⭐ 最佳质量 |
|
||||
| **Claude Code Max** | $100 | 5 小时 + 每周 | ⭐⭐⭐⭐⭐ 最高配额 |
|
||||
| **Codex Plus** | $20 | 5 小时 + 每周 | ⭐⭐⭐⭐ 良好性价比 |
|
||||
| **Codex Pro** | $200 | 5 小时 + 每周 | ⭐⭐⭐⭐⭐ 10× 配额 |
|
||||
| **Gemini CLI** | **$0** | 每日 + 每月 | ⭐⭐⭐⭐⭐ 免费 180K/月! |
|
||||
| **GitHub Copilot** | $10-19 | 每月(1 日) | ⭐⭐⭐⭐ 多模型 |
|
||||
| **Antigravity** | **$0** | 每日 + 每月 | ⭐⭐⭐⭐ 免费 Claude! |
|
||||
|
||||
---
|
||||
|
||||
## 使用示例
|
||||
|
||||
### Cursor IDE 设置
|
||||
|
||||
```
|
||||
Settings → Models → Advanced:
|
||||
OpenAI API Base URL: http://localhost:20128/v1
|
||||
OpenAI API Key: [从 9router 仪表盘获取]
|
||||
Model: cc/claude-opus-4-5-20251101
|
||||
```
|
||||
|
||||
### 创建组合(推荐)
|
||||
|
||||
```
|
||||
仪表盘 → 组合 → 新建
|
||||
|
||||
名称: premium-coding
|
||||
模型:
|
||||
1. gc/gemini-3-flash-preview (免费, 优先使用)
|
||||
2. cc/claude-opus-4-5-20251101 (订阅)
|
||||
3. cx/gpt-5.2-codex (订阅备用)
|
||||
|
||||
CLI 中使用: premium-coding
|
||||
```
|
||||
|
||||
**结果:** 最大化免费层 → 使用订阅 → 自动回退
|
||||
|
||||
---
|
||||
|
||||
## 配额跟踪
|
||||
|
||||
9Router 实时跟踪配额:
|
||||
|
||||
- **Token 消耗** - 每次请求的输入/输出 tokens
|
||||
- **重置倒计时** - 下次配额重置剩余时间
|
||||
- **使用百分比** - 配额已用比例
|
||||
- **自动回退** - 耗尽时切换到下一层
|
||||
|
||||
**仪表盘视图:**
|
||||
|
||||
```
|
||||
Claude Code Pro
|
||||
├─ 配额: 已用 75%
|
||||
├─ 重置: 2h 15m(5 小时)
|
||||
├─ 每周重置: 3 天
|
||||
└─ 回退: glm/glm-4.7(低价层)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 最佳实践
|
||||
|
||||
### 1. 优先使用免费层
|
||||
|
||||
```
|
||||
优先级:
|
||||
1. Gemini CLI(每月免费 180K)
|
||||
2. Antigravity(免费 Claude)
|
||||
3. Claude Code/Codex(付费订阅)
|
||||
```
|
||||
|
||||
### 2. 每日跟踪配额
|
||||
|
||||
- 每天早上查看仪表盘
|
||||
- 围绕配额重置规划重任务
|
||||
- 非关键任务用低价/免费层
|
||||
|
||||
### 3. 创建智能组合
|
||||
|
||||
```
|
||||
示例组合:
|
||||
1. gc/gemini-3-flash-preview(免费主力)
|
||||
2. cc/claude-opus-4-5(复杂任务)
|
||||
3. glm/glm-4.7(低价备用)
|
||||
4. if/kimi-k2-thinking(免费回退)
|
||||
```
|
||||
|
||||
### 4. 按时间优化
|
||||
|
||||
```
|
||||
早上: 全新 5 小时配额(Claude/Codex)
|
||||
下午: Gemini CLI(每日 1K)
|
||||
晚上: 订阅配额
|
||||
深夜: 低价/免费层
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 故障排除
|
||||
|
||||
### "Quota exhausted"
|
||||
|
||||
**方案:**
|
||||
- 查看仪表盘配额跟踪
|
||||
- 等待重置(5 小时或每日)
|
||||
- 使用组合回退到低价/免费层
|
||||
|
||||
### "OAuth token expired"
|
||||
|
||||
**方案:**
|
||||
- 9Router 会自动刷新
|
||||
- 若仍有问题: 仪表盘 → 提供商 → 重新连接
|
||||
|
||||
### "Rate limiting"
|
||||
|
||||
**方案:**
|
||||
- 订阅配额已用尽
|
||||
- 添加回退:`cc/claude-opus → glm/glm-4.7`
|
||||
- 使用免费层:`if/kimi-k2-thinking`
|
||||
|
||||
---
|
||||
|
||||
## 下一步
|
||||
|
||||
- **设置低价备用:** [低价提供商](./cheap.md)
|
||||
- **添加免费回退:** [免费提供商](./free.md)
|
||||
- **创建组合:** 仪表盘 → 组合 → 新建
|
||||
351
gitbook/content/zh-CN/troubleshooting.md
Normal file
351
gitbook/content/zh-CN/troubleshooting.md
Normal file
@@ -0,0 +1,351 @@
|
||||
# 故障排除
|
||||
|
||||
使用 9Router 时常见的问题与解决方案。
|
||||
|
||||
---
|
||||
|
||||
## "Language model did not provide messages"
|
||||
|
||||
**问题:** 请求失败,响应为空或返回错误。
|
||||
|
||||
**原因:**
|
||||
- 提供商配额耗尽
|
||||
- API key 无效或过期
|
||||
- 模型不可用
|
||||
|
||||
**解决方案:**
|
||||
|
||||
1. **查看配额状态:**
|
||||
```
|
||||
仪表盘 → 提供商 → 查看配额跟踪
|
||||
```
|
||||
若配额耗尽,等待重置或切换提供商。
|
||||
|
||||
2. **使用组合回退:**
|
||||
```
|
||||
仪表盘 → 组合 → 创建回退链
|
||||
示例: cc/claude-opus → glm/glm-4.7 → if/kimi-k2
|
||||
```
|
||||
|
||||
3. **验证提供商连接:**
|
||||
```
|
||||
仪表盘 → 提供商 → 必要时重新连接
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 速率限制
|
||||
|
||||
**问题:** 出现 "Rate limit exceeded" 或 "Too many requests" 错误。
|
||||
|
||||
**原因:**
|
||||
- 订阅配额用完(5 小时/每日/每周限制)
|
||||
- 触发了 API 速率限制
|
||||
- 并发请求过多
|
||||
|
||||
**解决方案:**
|
||||
|
||||
1. **查看重置时间:**
|
||||
```
|
||||
仪表盘 → 配额跟踪 → 查看重置倒计时
|
||||
```
|
||||
|
||||
2. **切换到低价层:**
|
||||
```
|
||||
使用: glm/glm-4.7 (每 1M tokens $0.6)
|
||||
minimax/MiniMax-M2.1 (每 1M tokens $0.20)
|
||||
```
|
||||
|
||||
3. **添加回退组合:**
|
||||
```
|
||||
仪表盘 → 组合 → 添加备用模型
|
||||
主力: cc/claude-opus (订阅)
|
||||
备用: glm/glm-4.7 (低价)
|
||||
应急: if/kimi-k2 (免费)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## OAuth Token 过期
|
||||
|
||||
**问题:** 出现 "Unauthorized" 或 "Token expired" 错误。
|
||||
|
||||
**原因:**
|
||||
- OAuth token 过期(自动刷新失败)
|
||||
- 提供商会话失效
|
||||
- 刷新过程中出现网络问题
|
||||
|
||||
**解决方案:**
|
||||
|
||||
1. **自动刷新(默认):**
|
||||
9Router 会自动刷新 token。等待 30 秒后重试。
|
||||
|
||||
2. **手动重连:**
|
||||
```
|
||||
仪表盘 → 提供商 → [提供商名称] → 重新连接
|
||||
→ 再次完成 OAuth 流程
|
||||
```
|
||||
|
||||
3. **检查提供商状态:**
|
||||
确认提供商服务在线(Claude Code、Codex 等)。
|
||||
|
||||
---
|
||||
|
||||
## 成本过高
|
||||
|
||||
**问题:** 出现意外的高用量或高成本。
|
||||
|
||||
**原因:**
|
||||
- 不必要地使用了昂贵模型
|
||||
- 没有回退到便宜层级
|
||||
- 上下文窗口过大
|
||||
|
||||
**解决方案:**
|
||||
|
||||
1. **查看使用统计:**
|
||||
```
|
||||
仪表盘 → 使用统计 → 查看 token 消耗
|
||||
→ 找出高成本模型
|
||||
```
|
||||
|
||||
2. **切换到更便宜的模型:**
|
||||
```
|
||||
替换: cc/claude-opus ($20-100/月 订阅)
|
||||
为: glm/glm-4.7 (每 1M tokens $0.6)
|
||||
minimax/MiniMax-M2.1 (每 1M tokens $0.20)
|
||||
```
|
||||
|
||||
3. **使用免费层:**
|
||||
```
|
||||
if/kimi-k2-thinking (免费)
|
||||
qw/qwen3-coder-plus (免费)
|
||||
kr/claude-sonnet-4.5 (免费)
|
||||
gc/gemini-3-flash-preview (每月免费 180K)
|
||||
```
|
||||
|
||||
4. **优化 prompt:**
|
||||
- 减少上下文大小
|
||||
- 长响应使用流式输出
|
||||
- 缓存常用 prompt
|
||||
|
||||
---
|
||||
|
||||
## 连接被拒绝
|
||||
|
||||
**问题:** 出现 "ECONNREFUSED" 或 "Cannot connect to localhost:20128"。
|
||||
|
||||
**原因:**
|
||||
- 9Router 未运行
|
||||
- 端口 20128 被阻止
|
||||
- 防火墙拦截连接
|
||||
|
||||
**解决方案:**
|
||||
|
||||
1. **启动 9Router:**
|
||||
```bash
|
||||
9router
|
||||
```
|
||||
仪表盘应该在 http://localhost:3000 打开。
|
||||
|
||||
2. **检查端口 20128:**
|
||||
```bash
|
||||
# 检查端口是否监听
|
||||
lsof -i :20128
|
||||
|
||||
# Windows
|
||||
netstat -ano | findstr :20128
|
||||
```
|
||||
|
||||
3. **检查防火墙:**
|
||||
- macOS: 系统设置 → 网络 → 防火墙
|
||||
- Windows: Windows Defender 防火墙 → 允许应用
|
||||
- Linux: `sudo ufw allow 20128`
|
||||
|
||||
4. **使用云端 endpoint:**
|
||||
如果 localhost 不行(例如 Cursor IDE):
|
||||
```
|
||||
Endpoint: https://9router.com/v1
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 仪表盘无法打开
|
||||
|
||||
**问题:** 仪表盘无法在 http://localhost:3000 加载。
|
||||
|
||||
**原因:**
|
||||
- 端口 3000 被占用
|
||||
- 9Router 崩溃
|
||||
- 浏览器缓存问题
|
||||
|
||||
**解决方案:**
|
||||
|
||||
1. **确认 9Router 是否运行:**
|
||||
```bash
|
||||
# 检查进程
|
||||
ps aux | grep 9router
|
||||
|
||||
# 检查端口 3000
|
||||
lsof -i :3000
|
||||
```
|
||||
|
||||
2. **杀掉冲突进程:**
|
||||
```bash
|
||||
# macOS/Linux
|
||||
lsof -ti:3000 | xargs kill -9
|
||||
|
||||
# Windows
|
||||
netstat -ano | findstr :3000
|
||||
taskkill /PID <PID> /F
|
||||
```
|
||||
|
||||
3. **重启 9Router:**
|
||||
```bash
|
||||
# 停止
|
||||
pkill -f 9router
|
||||
|
||||
# 启动
|
||||
9router
|
||||
```
|
||||
|
||||
4. **清除浏览器缓存:**
|
||||
- Chrome: Ctrl+Shift+Delete → 清除缓存
|
||||
- 尝试无痕模式
|
||||
|
||||
5. **检查防火墙设置:**
|
||||
确认端口 3000 未被阻止。
|
||||
|
||||
---
|
||||
|
||||
## 模型未找到
|
||||
|
||||
**问题:** 出现 "Model not found" 或 "Invalid model" 错误。
|
||||
|
||||
**原因:**
|
||||
- 提供商未连接
|
||||
- 模型 ID 拼写错误
|
||||
- 提供商未激活
|
||||
|
||||
**解决方案:**
|
||||
|
||||
1. **验证提供商连接:**
|
||||
```
|
||||
仪表盘 → 提供商 → 检查状态(绿色 = 已激活)
|
||||
```
|
||||
|
||||
2. **检查模型 ID 格式:**
|
||||
```
|
||||
正确: cc/claude-opus-4-5-20251101
|
||||
错误: claude-opus-4-5-20251101
|
||||
|
||||
格式: [provider-prefix]/[model-name]
|
||||
```
|
||||
|
||||
3. **列出可用模型:**
|
||||
```bash
|
||||
curl http://localhost:20128/v1/models \
|
||||
-H "Authorization: Bearer your-api-key"
|
||||
```
|
||||
|
||||
4. **重新连接提供商:**
|
||||
```
|
||||
仪表盘 → 提供商 → [提供商] → 重新连接
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 响应缓慢
|
||||
|
||||
**问题:** 请求耗时过长或超时。
|
||||
|
||||
**原因:**
|
||||
- 提供商延迟
|
||||
- 网络问题
|
||||
- 上下文/响应过大
|
||||
- 提供商速率限制
|
||||
|
||||
**解决方案:**
|
||||
|
||||
1. **查看提供商状态:**
|
||||
```
|
||||
仪表盘 → 提供商 → 查看延迟统计
|
||||
```
|
||||
|
||||
2. **切换到更快的模型:**
|
||||
```
|
||||
快速: cc/claude-haiku-4-5 (Haiku 比 Opus 快)
|
||||
gc/gemini-3-flash-preview
|
||||
qw/qwen3-coder-flash
|
||||
```
|
||||
|
||||
3. **使用流式响应:**
|
||||
```json
|
||||
{
|
||||
"model": "cc/claude-opus-4-5",
|
||||
"messages": [...],
|
||||
"stream": true
|
||||
}
|
||||
```
|
||||
|
||||
4. **检查网络:**
|
||||
```bash
|
||||
# 测试延迟
|
||||
ping api.anthropic.com
|
||||
ping api.openai.com
|
||||
```
|
||||
|
||||
5. **减小上下文:**
|
||||
- 精简消息历史
|
||||
- 使用更短的 prompt
|
||||
- 在 CLI 工具中启用上下文裁剪
|
||||
|
||||
---
|
||||
|
||||
## API Key 无效
|
||||
|
||||
**问题:** 出现 "Invalid API key" 或 "Authentication failed" 错误。
|
||||
|
||||
**原因:**
|
||||
- 复制了错误的 API key
|
||||
- API key 已过期
|
||||
- 未生成 API key
|
||||
|
||||
**解决方案:**
|
||||
|
||||
1. **重新生成 API key:**
|
||||
```
|
||||
仪表盘 → 设置 → API Keys → 生成新 Key
|
||||
→ 复制并使用新 key
|
||||
```
|
||||
|
||||
2. **检查 key 格式:**
|
||||
```
|
||||
正确: 9r_xxxxxxxxxxxxxxxxxxxxxxxx
|
||||
错误: 缺少 9r_ 前缀
|
||||
```
|
||||
|
||||
3. **检查 CLI 配置中的 key:**
|
||||
```bash
|
||||
# Cursor
|
||||
Settings → Models → OpenAI API Key
|
||||
|
||||
# Cline
|
||||
Settings → API Key
|
||||
|
||||
# 环境变量
|
||||
export OPENAI_API_KEY="9r_your_key"
|
||||
```
|
||||
|
||||
4. **测试 API key:**
|
||||
```bash
|
||||
curl http://localhost:20128/v1/models \
|
||||
-H "Authorization: Bearer 9r_your_key"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 需要更多帮助?
|
||||
|
||||
- **GitHub Issues:** [github.com/decolua/9router/issues](https://github.com/decolua/9router/issues)
|
||||
- **文档:** [9router.com/docs](https://9router.com/docs)
|
||||
- **常见问题:** [faq.md](faq.md)
|
||||
Reference in New Issue
Block a user