Feat : Gitbook

This commit is contained in:
decolua
2026-05-11 11:50:24 +07:00
parent 7ad538bcf2
commit fd92af77a0
124 changed files with 34154 additions and 4 deletions

View 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)

View 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)