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,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。

View 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 使用
- 每个模型的成本
- 提供商分布

View 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"
```

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

View 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. **测试模型**:尝试不同模型,找到最适合你场景的那个

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

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