feat: add documentation system with Docus framework

- Add complete documentation structure with 25+ markdown files
- Add introduction, user guide, provider configs, API reference
- Add troubleshooting and development guides
- Add disclaimer for legal use
- Add GitHub Actions workflow for auto-deploying docs to GitHub Pages
- Bump version to v0.11.0
This commit is contained in:
coso
2025-12-17 13:10:58 +08:00
parent 117085e597
commit 267bbf75e3
40 changed files with 4879 additions and 4 deletions
+41
View File
@@ -0,0 +1,41 @@
export default {
docus: {
title: "ProxyCast",
description: "把你的 AI 客户端额度用到任何地方",
url: "https://aiclientproxy.github.io/proxycast",
image: "/images/logo-banner.svg",
socials: {
github: "aiclientproxy/proxycast",
},
header: {
logo: true,
title: "ProxyCast",
showLinkIcon: true,
},
aside: {
level: 0,
collapsed: false,
exclude: [],
},
footer: {
credits: {
icon: "",
text: "Made with 💜 by ProxyCast Team",
href: "https://github.com/aiclientproxy",
},
textLinks: [
{
text: "GitHub",
href: "https://github.com/aiclientproxy/proxycast",
target: "_blank",
},
],
iconLinks: [],
},
},
};
@@ -0,0 +1,73 @@
---
title: 概述
description: ProxyCast 项目介绍和核心价值
navigation:
icon: i-heroicons-home
---
# ProxyCast 概述
ProxyCast 是一款基于 Tauri 2.0 的跨平台桌面应用,让你可以**把 AI 客户端的订阅额度用到任何地方**。
::alert{type="warning"}
**免责声明**: 本工具仅限于个人合法使用,严禁用于非法盈利目的。初衷是帮助用户充分利用已订阅的 AI 服务 Token。[查看完整声明](/legal/disclaimer)
::
## 核心价值
你是否有以下困扰?
- 订阅了 Kiro、Claude Code 等 AI 编程助手,但只能在特定 IDE 中使用
- 想在其他工具(如 Cursor、Continue、自定义脚本)中使用已有的 AI 额度
- 需要管理多个 AI 服务的凭证,频繁切换很麻烦
ProxyCast 解决这些问题:将你的 AI 客户端凭证转换为标准的 OpenAI/Claude 兼容 API,让任何支持 OpenAI 接口的工具都能使用你的订阅额度。
## 支持的 Provider
| Provider | 类型 | 认证方式 | 说明 |
|----------|------|----------|------|
| Kiro Claude | OAuth | 自动刷新 | AWS Kiro IDE 的 Claude 凭证 |
| Gemini CLI | OAuth | 自动刷新 | Google Gemini CLI 凭证 |
| Qwen (通义千问) | OAuth | 自动刷新 | 阿里云通义千问凭证 |
| OpenAI Custom | API Key | 手动配置 | 自定义 OpenAI 兼容服务 |
| Claude Custom | API Key | 手动配置 | 自定义 Claude 兼容服务 |
## 核心特性
### 🔑 凭证池管理
- 支持多个 Provider 凭证的统一管理
- 自动检测和加载本地凭证文件
- OAuth Token 自动刷新机制
### ⚖️ 智能路由
- 基于模型名称的请求路由
- 负载均衡和优先级配置
- 健康检查和自动故障转移
### 🛡️ 容错机制
- 可配置的重试策略
- 超时控制和熔断器
- 多 Provider 故障转移
### 🔄 协议转换
- OpenAI Chat Completions API 兼容
- Claude Messages API 兼容
- 自动格式转换
### 📊 监控统计
- 实时请求统计
- Token 使用追踪
- 详细的请求日志
## 使用场景
1. **IDE 集成**: 在 Cursor、Continue 等编辑器中使用 Kiro/Claude Code 额度
2. **脚本调用**: 在 Python/Node.js 脚本中调用 AI API
3. **多账户管理**: 统一管理多个 AI 服务账户
4. **团队共享**: 通过配置导出分享 Provider 设置
## 下一步
- [安装指南](/introduction/installation) - 下载并安装 ProxyCast
- [快速开始](/introduction/quickstart) - 5 分钟内完成首次 API 调用
@@ -0,0 +1,78 @@
---
title: 安装指南
description: 下载并安装 ProxyCast
navigation:
icon: i-heroicons-arrow-down-tray
---
# 安装指南
## 系统要求
| 平台 | 最低版本 | 架构 |
|------|----------|------|
| macOS | 11.0 (Big Sur) | Apple Silicon (arm64) |
| Windows | 10 | x64 |
## 下载
从 GitHub Releases 下载最新版本:
::button-link
---
to: https://github.com/aiclientproxy/proxycast/releases
target: _blank
icon: i-simple-icons-github
---
下载 ProxyCast
::
### 安装包
| 平台 | 文件名 | 说明 |
|------|--------|------|
| macOS | `ProxyCast_x.x.x_aarch64.dmg` | Apple Silicon Mac |
| Windows | `ProxyCast_x.x.x_x64-setup.exe` | Windows 64位 |
## macOS 安装
1. 下载 `.dmg` 文件
2. 双击打开 DMG 镜像
3. 将 ProxyCast 拖入 Applications 文件夹
4. 首次运行时,右键点击应用选择"打开"(绕过 Gatekeeper)
::alert{type="info"}
如果提示"无法验证开发者",请在系统偏好设置 > 安全性与隐私中点击"仍要打开"。
::
## Windows 安装
1. 下载 `.exe` 安装程序
2. 双击运行安装程序
3. 按照安装向导完成安装
4. 从开始菜单启动 ProxyCast
## 验证安装
启动 ProxyCast 后,你应该看到:
1. 系统托盘图标出现
2. 主窗口显示仪表盘
3. 服务状态显示"已停止"(首次启动)
## 常见安装问题
### macOS: "应用已损坏"
```bash
# 移除隔离属性
xattr -cr /Applications/ProxyCast.app
```
### Windows: SmartScreen 警告
点击"更多信息" > "仍要运行"即可继续安装。
## 下一步
安装完成后,继续阅读 [快速开始](/introduction/quickstart) 配置你的第一个 Provider。
@@ -0,0 +1,116 @@
---
title: 快速开始
description: 5 分钟内完成首次 API 调用
navigation:
icon: i-heroicons-rocket-launch
---
# 快速开始
本指南帮助你在 5 分钟内完成 ProxyCast 的基本配置和首次 API 调用。
## 前置准备
确保你已经:
- [x] 安装了 ProxyCast
- [x] 拥有至少一个 AI 客户端的有效订阅(Kiro、Gemini CLI、Qwen 等)
## 步骤 1: 启动 ProxyCast
1. 启动 ProxyCast 应用
2. 主窗口会显示仪表盘界面
## 步骤 2: 加载凭证
ProxyCast 会自动检测本地的 AI 客户端凭证文件。
### 凭证文件位置
| Provider | 凭证路径 |
|----------|----------|
| Kiro Claude | `~/.kiro/credentials.json` |
| Gemini CLI | `~/.config/gemini-cli/oauth_creds.json` |
| Qwen | `~/.config/qwen/credentials.json` |
### 手动添加凭证
如果自动检测未找到凭证:
1. 进入 **凭证池** 页面
2. 点击 **添加凭证**
3. 选择 Provider 类型
4. 输入凭证信息或选择凭证文件
## 步骤 3: 启动 API Server
1. 在仪表盘点击 **启动服务**
2. 服务状态变为"运行中"
3. 记下 API 地址(默认 `http://127.0.0.1:9090`)
## 步骤 4: 测试 API
### 使用内置测试面板
1. 在仪表盘找到 **API 测试** 区域
2. 输入测试消息
3. 点击发送,查看响应
### 使用 curl 测试
**OpenAI 格式:**
```bash
curl http://127.0.0.1:9090/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer your-api-key" \
-d '{
"model": "claude-sonnet-4-20250514",
"messages": [{"role": "user", "content": "Hello!"}]
}'
```
**Claude 格式:**
```bash
curl http://127.0.0.1:9090/v1/messages \
-H "Content-Type: application/json" \
-H "x-api-key: your-api-key" \
-H "anthropic-version: 2023-06-01" \
-d '{
"model": "claude-sonnet-4-20250514",
"max_tokens": 1024,
"messages": [{"role": "user", "content": "Hello!"}]
}'
```
## 步骤 5: 集成到其他工具
### Cursor 配置
在 Cursor 设置中配置 OpenAI API:
- API Base URL: `http://127.0.0.1:9090/v1`
- API Key: 你在 ProxyCast 中设置的 API Key
### Continue 配置
编辑 `~/.continue/config.json`:
```json
{
"models": [{
"title": "ProxyCast Claude",
"provider": "openai",
"model": "claude-sonnet-4-20250514",
"apiBase": "http://127.0.0.1:9090/v1",
"apiKey": "your-api-key"
}]
}
```
## 下一步
- [仪表盘](/user-guide/dashboard) - 了解仪表盘功能
- [凭证池](/user-guide/credential-pool) - 管理多个凭证
- [智能路由](/user-guide/smart-routing) - 配置请求路由规则
+75
View File
@@ -0,0 +1,75 @@
---
title: 仪表盘
description: 监控和控制代理服务
navigation:
icon: i-heroicons-chart-bar
---
# 仪表盘
仪表盘是 ProxyCast 的主界面,提供服务状态监控和快速操作入口。
## 服务状态
仪表盘顶部显示当前服务状态:
| 状态 | 说明 |
|------|------|
| 🟢 运行中 | API Server 正在运行,可以接收请求 |
| 🔴 已停止 | API Server 未启动 |
| 🟡 启动中 | 服务正在初始化 |
## 控制按钮
- **启动服务**: 启动 API Server
- **停止服务**: 停止 API Server
- **重启服务**: 重新启动服务
## API 信息
服务运行时显示:
- **API 地址**: 本地 API 端点(如 `http://127.0.0.1:9090`)
- **API Key**: 当前配置的访问密钥
- **复制按钮**: 一键复制 API 地址或 Key
## API 测试面板
内置的 API 测试工具:
1. **消息输入**: 输入测试消息
2. **模型选择**: 选择要使用的模型
3. **发送请求**: 点击发送测试请求
4. **响应显示**: 查看 AI 响应结果
### 测试示例
```
用户: Hello, how are you?
助手: I'm doing well, thank you for asking! How can I help you today?
```
## 请求统计
实时统计信息:
- **总请求数**: 累计处理的请求数量
- **成功率**: 请求成功百分比
- **平均延迟**: 请求平均响应时间
- **Token 使用**: 累计 Token 消耗
## 凭证状态
显示当前可用的凭证:
| 字段 | 说明 |
|------|------|
| Provider | 凭证类型 |
| 状态 | 有效/过期/错误 |
| 剩余额度 | 可用额度(如支持) |
## 快捷操作
- **打开设置**: 进入设置页面
- **查看日志**: 打开请求日志
- **刷新凭证**: 重新加载凭证文件
+150
View File
@@ -0,0 +1,150 @@
---
title: Prompts 管理
description: 提示词存储和管理
navigation:
icon: i-heroicons-document-text
---
# Prompts 管理
Prompts 功能帮助你存储、组织和复用常用的提示词模板。
## 提示词存储
### 创建提示词
1. 进入 **Prompts** 页面
2. 点击 **新建提示词**
3. 填写提示词信息:
| 字段 | 说明 |
|------|------|
| 名称 | 提示词标识名称 |
| 描述 | 提示词用途说明 |
| 内容 | 提示词正文 |
| 标签 | 分类标签 |
### 提示词示例
```yaml
name: "代码审查"
description: "审查代码质量和最佳实践"
content: |
请审查以下代码,关注:
1. 代码质量和可读性
2. 潜在的 bug 和安全问题
3. 性能优化建议
4. 最佳实践遵循情况
请提供具体的改进建议。
tags:
- 代码
- 审查
```
## 组织方式
### 文件夹分类
创建文件夹组织提示词:
- 📁 代码相关
- 代码审查
- 代码重构
- 单元测试
- 📁 写作相关
- 文档撰写
- 邮件回复
- 📁 翻译相关
- 中英翻译
- 技术翻译
### 标签系统
使用标签快速筛选:
- `#代码` - 代码相关提示词
- `#写作` - 写作相关提示词
- `#常用` - 常用提示词
### 搜索功能
支持按以下条件搜索:
- 名称
- 描述
- 内容
- 标签
## 注入请求
### 系统提示词
将提示词作为系统消息注入:
```json
{
"model": "claude-sonnet-4-20250514",
"messages": [
{"role": "system", "content": "你是一个代码审查专家..."},
{"role": "user", "content": "请审查这段代码..."}
]
}
```
### 使用方式
1. **手动复制**: 复制提示词内容到请求
2. **快捷插入**: 在 API 测试面板选择提示词
3. **自动注入**: 配置默认系统提示词
### 配置默认提示词
1. 进入 **设置** > **API Server**
2. 选择 **默认系统提示词**
3. 所有请求自动注入该提示词
## 变量支持
### 定义变量
在提示词中使用变量:
```
请将以下 {{source_lang}} 文本翻译成 {{target_lang}}:
{{content}}
```
### 使用变量
调用时替换变量值:
```json
{
"prompt": "翻译模板",
"variables": {
"source_lang": "英文",
"target_lang": "中文",
"content": "Hello, world!"
}
}
```
## 导入导出
### 导出提示词
1. 选择要导出的提示词
2. 点击 **导出**
3. 保存为 `.json` 或 `.yaml` 文件
### 导入提示词
1. 点击 **导入**
2. 选择提示词文件
3. 确认导入
### 分享提示词
导出的提示词文件可以分享给他人使用。
+171
View File
@@ -0,0 +1,171 @@
---
title: Skills 技能
description: 可扩展的技能模块系统
navigation:
icon: i-heroicons-sparkles
---
# Skills 技能
Skills 是预定义的 AI 交互模式,封装了特定任务的提示词、参数和工具配置。
## 技能定义
### 什么是技能
技能是一个完整的 AI 交互配置包,包含:
- 系统提示词
- 参数配置
- 工具绑定
- 输出格式
### 技能示例
```yaml
name: "代码解释器"
description: "解释代码功能和逻辑"
system_prompt: |
你是一个代码解释专家。请详细解释用户提供的代码:
1. 代码的整体功能
2. 关键逻辑的解释
3. 使用的设计模式
4. 潜在的改进点
parameters:
temperature: 0.3
max_tokens: 2000
output_format: markdown
```
## 创建技能
### 新建技能
1. 进入 **Skills** 页面
2. 点击 **新建技能**
3. 配置技能信息
### 配置选项
| 字段 | 说明 |
|------|------|
| 名称 | 技能标识名称 |
| 描述 | 技能用途说明 |
| 系统提示词 | 技能的核心提示词 |
| 参数 | 模型参数配置 |
| 工具 | 绑定的 MCP 工具 |
| 输出格式 | 期望的输出格式 |
## 参数配置
### 模型参数
| 参数 | 说明 | 默认值 |
|------|------|--------|
| temperature | 创造性程度 | 0.7 |
| max_tokens | 最大输出长度 | 4096 |
| top_p | 采样范围 | 1.0 |
| presence_penalty | 重复惩罚 | 0 |
### 参数模板
为不同场景预设参数:
```yaml
# 精确任务
precise:
temperature: 0.1
top_p: 0.9
# 创意任务
creative:
temperature: 0.9
top_p: 1.0
# 代码生成
coding:
temperature: 0.2
max_tokens: 8000
```
## 应用技能
### 在 API 测试中使用
1. 打开 **API 测试** 面板
2. 点击 **选择技能**
3. 选择要使用的技能
4. 输入用户消息
5. 发送请求
### 通过 API 调用
```bash
curl http://127.0.0.1:9090/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer your-api-key" \
-d '{
"model": "claude-sonnet-4-20250514",
"skill": "代码解释器",
"messages": [
{"role": "user", "content": "解释这段代码: function add(a, b) { return a + b; }"}
]
}'
```
### 技能链
组合多个技能形成工作流:
```yaml
name: "代码审查流程"
steps:
- skill: "代码分析"
- skill: "安全检查"
- skill: "性能评估"
- skill: "改进建议"
```
## 内置技能
### 代码相关
| 技能 | 说明 |
|------|------|
| 代码解释 | 解释代码功能 |
| 代码审查 | 审查代码质量 |
| 代码重构 | 提供重构建议 |
| Bug 修复 | 分析和修复 bug |
### 写作相关
| 技能 | 说明 |
|------|------|
| 文档撰写 | 撰写技术文档 |
| 邮件回复 | 生成邮件回复 |
| 内容总结 | 总结长文内容 |
### 翻译相关
| 技能 | 说明 |
|------|------|
| 通用翻译 | 中英互译 |
| 技术翻译 | 技术文档翻译 |
## 技能管理
### 编辑技能
1. 点击技能的 **编辑** 按钮
2. 修改配置
3. 保存更改
### 删除技能
1. 点击 **删除** 按钮
2. 确认删除
### 导入导出
- **导出**: 将技能导出为 `.yaml` 文件
- **导入**: 从文件导入技能
+141
View File
@@ -0,0 +1,141 @@
---
title: 设置
description: 应用设置和偏好管理
navigation:
icon: i-heroicons-cog-6-tooth
---
# 设置
设置页面用于配置 ProxyCast 的各项参数和偏好。
## 通用设置
### 应用行为
| 选项 | 说明 |
|------|------|
| 开机自启动 | 系统启动时自动运行 ProxyCast |
| 启动时运行服务 | 应用启动时自动启动 API Server |
| 最小化到托盘 | 关闭窗口时最小化到系统托盘 |
| 显示托盘图标 | 在系统托盘显示图标 |
### 更新设置
| 选项 | 说明 |
|------|------|
| 自动检查更新 | 定期检查新版本 |
| 自动下载更新 | 有新版本时自动下载 |
| 更新通知 | 有更新时显示通知 |
## 认证目录
### 默认凭证路径
ProxyCast 默认扫描以下路径:
| Provider | 默认路径 |
|----------|----------|
| Kiro | `~/.kiro/credentials.json` |
| Gemini CLI | `~/.config/gemini-cli/oauth_creds.json` |
| Qwen | `~/.config/qwen/credentials.json` |
### 自定义路径
添加自定义凭证扫描路径:
1. 进入 **设置** > **认证目录**
2. 点击 **添加路径**
3. 选择目录或文件
4. 指定 Provider 类型
### 路径配置
```yaml
auth_dirs:
- path: "~/.kiro"
provider: kiro
pattern: "credentials*.json"
- path: "/custom/path"
provider: gemini
pattern: "*.json"
```
## 偏好管理
### 主题设置
| 选项 | 说明 |
|------|------|
| 浅色模式 | 使用浅色主题 |
| 深色模式 | 使用深色主题 |
| 跟随系统 | 跟随系统主题设置 |
### 语言设置
支持的语言:
- 简体中文
- English
### 通知设置
| 选项 | 说明 |
|------|------|
| 服务状态通知 | 服务启动/停止时通知 |
| 错误通知 | 发生错误时通知 |
| 凭证过期通知 | 凭证即将过期时通知 |
## 数据管理
### 数据存储位置
ProxyCast 数据存储在:
| 平台 | 路径 |
|------|------|
| macOS | `~/Library/Application Support/ProxyCast` |
| Windows | `%APPDATA%\ProxyCast` |
### 清除数据
| 选项 | 说明 |
|------|------|
| 清除日志 | 删除所有请求日志 |
| 清除统计 | 重置统计数据 |
| 清除缓存 | 清除应用缓存 |
| 重置设置 | 恢复默认设置 |
::alert{type="warning"}
清除数据操作不可恢复,请谨慎操作。
::
## 高级设置
### 日志级别
| 级别 | 说明 |
|------|------|
| Error | 仅记录错误 |
| Warn | 记录警告和错误 |
| Info | 记录一般信息 |
| Debug | 记录调试信息 |
| Trace | 记录所有信息 |
### 代理设置
配置网络代理:
| 选项 | 说明 |
|------|------|
| HTTP 代理 | HTTP 代理地址 |
| HTTPS 代理 | HTTPS 代理地址 |
| 不代理地址 | 不使用代理的地址列表 |
### 性能设置
| 选项 | 默认值 | 说明 |
|------|--------|------|
| 最大并发请求 | 10 | 同时处理的最大请求数 |
| 请求队列大小 | 100 | 等待队列的最大长度 |
| 日志保留天数 | 30 | 日志文件保留时间 |
+103
View File
@@ -0,0 +1,103 @@
---
title: 监控中心
description: 请求统计和性能监控
navigation:
icon: i-heroicons-eye
---
# 监控中心
监控中心提供详细的请求统计、性能指标和日志查看功能。
## 监控界面
### 概览面板
显示关键指标的实时数据:
- **请求总数**: 今日/本周/本月请求量
- **成功率**: 请求成功百分比
- **平均延迟**: 响应时间统计
- **活跃凭证**: 当前可用凭证数量
### 图表展示
- **请求趋势图**: 按时间显示请求量变化
- **延迟分布图**: 响应时间分布
- **Provider 使用占比**: 各 Provider 请求比例
## 请求统计
### 按 Provider 统计
| Provider | 请求数 | 成功率 | 平均延迟 |
|----------|--------|--------|----------|
| Kiro Claude | 1,234 | 99.2% | 1.2s |
| Gemini CLI | 567 | 98.5% | 0.8s |
| Qwen | 890 | 99.0% | 1.0s |
### 按模型统计
查看每个模型的使用情况:
- 请求次数
- Token 消耗
- 平均响应时间
## Token 使用追踪
### 使用量统计
| 指标 | 说明 |
|------|------|
| 输入 Token | 请求消息的 Token 数 |
| 输出 Token | 响应消息的 Token 数 |
| 总计 Token | 输入 + 输出 |
### 按时间段查看
- 今日使用量
- 本周使用量
- 本月使用量
- 自定义时间范围
## 请求日志
### 日志列表
每条日志包含:
| 字段 | 说明 |
|------|------|
| 时间 | 请求时间戳 |
| 模型 | 请求的模型名称 |
| Provider | 实际使用的 Provider |
| 状态 | 成功/失败 |
| 延迟 | 响应时间 |
| Token | Token 使用量 |
### 日志过滤
支持按以下条件过滤:
- 时间范围
- Provider
- 模型
- 状态(成功/失败)
### 日志详情
点击日志条目查看详细信息:
- 完整请求内容
- 完整响应内容
- 错误信息(如有)
- 请求头信息
## 导出数据
支持导出统计数据:
- CSV 格式
- JSON 格式
- 自定义时间范围
@@ -0,0 +1,130 @@
---
title: 凭证池
description: 管理多个 AI 服务凭证
navigation:
icon: i-heroicons-key
---
# 凭证池
凭证池用于管理多个 AI 服务凭证,支持负载均衡和故障转移。
## 池管理界面
### 凭证列表
显示所有已添加的凭证:
| 字段 | 说明 |
|------|------|
| 名称 | 凭证标识名称 |
| Provider | 凭证类型 |
| 状态 | 有效/过期/错误 |
| 优先级 | 负载均衡优先级 |
| 操作 | 编辑/删除/测试 |
### 状态指示
- 🟢 **有效**: 凭证可正常使用
- 🟡 **即将过期**: Token 即将过期,需要刷新
- 🔴 **已过期**: Token 已过期
- ⚪ **未验证**: 尚未验证凭证有效性
## 添加凭证
### 自动检测
ProxyCast 会自动检测以下位置的凭证:
```
~/.kiro/credentials.json # Kiro Claude
~/.config/gemini-cli/oauth_creds.json # Gemini CLI
~/.config/qwen/credentials.json # Qwen
```
点击 **刷新凭证** 重新扫描。
### 从文件加载
1. 点击 **添加凭证**
2. 选择 **从文件加载**
3. 选择凭证文件
4. 确认 Provider 类型
### 手动输入
1. 点击 **添加凭证**
2. 选择 **手动输入**
3. 选择 Provider 类型
4. 填写凭证信息:
**OAuth 类型 (Kiro/Gemini/Qwen):**
- Access Token
- Refresh Token
- 过期时间
**API Key 类型 (OpenAI/Claude Custom):**
- API Key
- Base URL(可选)
## 负载均衡配置
### 策略选择
| 策略 | 说明 |
|------|------|
| 轮询 (Round Robin) | 依次使用每个凭证 |
| 优先级 (Priority) | 按优先级顺序使用 |
| 随机 (Random) | 随机选择凭证 |
| 最少使用 (Least Used) | 优先使用请求数最少的凭证 |
### 优先级设置
为每个凭证设置优先级(1-100):
- 数值越小优先级越高
- 相同优先级按策略选择
- 优先级为 0 表示禁用
### 健康检查
启用健康检查后:
- 定期验证凭证有效性
- 自动跳过失效凭证
- 凭证恢复后自动重新启用
配置选项:
| 选项 | 默认值 | 说明 |
|------|--------|------|
| 检查间隔 | 60s | 健康检查频率 |
| 失败阈值 | 3 | 连续失败次数后标记为不健康 |
| 恢复阈值 | 1 | 成功次数后恢复健康状态 |
## 凭证操作
### 测试凭证
点击 **测试** 按钮验证凭证:
1. 发送测试请求
2. 显示测试结果
3. 更新凭证状态
### 刷新 Token
对于 OAuth 凭证:
- 自动刷新:Token 过期前自动刷新
- 手动刷新:点击 **刷新** 按钮
### 删除凭证
1. 点击 **删除** 按钮
2. 确认删除操作
3. 凭证从池中移除
::alert{type="warning"}
删除凭证不会删除本地凭证文件,只是从 ProxyCast 中移除。
::
@@ -0,0 +1,142 @@
---
title: 智能路由
description: 配置请求路由规则
navigation:
icon: i-heroicons-arrows-right-left
---
# 智能路由
智能路由允许你根据模型名称将请求定向到特定的 Provider。
## 模型映射
### 映射规则
将请求中的模型名称映射到实际的 Provider 和模型:
| 请求模型 | 目标 Provider | 目标模型 |
|----------|---------------|----------|
| `gpt-4` | Kiro Claude | `claude-sonnet-4-20250514` |
| `gpt-3.5-turbo` | Gemini CLI | `gemini-2.0-flash` |
| `claude-*` | Kiro Claude | 保持原样 |
### 配置映射
1. 进入 **智能路由** 页面
2. 点击 **添加规则**
3. 配置映射:
```yaml
# 示例配置
routes:
- pattern: "gpt-4*"
provider: kiro-claude
model: claude-sonnet-4-20250514
- pattern: "gpt-3.5*"
provider: gemini-cli
model: gemini-2.0-flash
```
## 规则语法
### 模式匹配
| 模式 | 说明 | 示例 |
|------|------|------|
| `exact` | 精确匹配 | `gpt-4` 只匹配 `gpt-4` |
| `prefix*` | 前缀匹配 | `gpt-4*` 匹配 `gpt-4`, `gpt-4-turbo` |
| `*suffix` | 后缀匹配 | `*-turbo` 匹配 `gpt-4-turbo` |
| `*contains*` | 包含匹配 | `*claude*` 匹配任何包含 claude 的模型 |
### 规则字段
| 字段 | 必填 | 说明 |
|------|------|------|
| pattern | ✅ | 模型名称匹配模式 |
| provider | ✅ | 目标 Provider |
| model | ❌ | 目标模型(不填则保持原样) |
| priority | ❌ | 规则优先级(默认 100) |
| enabled | ❌ | 是否启用(默认 true) |
## 优先级排序
### 规则优先级
- 数值越小优先级越高
- 相同优先级按添加顺序
- 第一个匹配的规则生效
### 示例
```yaml
routes:
# 优先级 10:精确匹配优先
- pattern: "gpt-4-turbo"
provider: openai-custom
priority: 10
# 优先级 50:前缀匹配
- pattern: "gpt-4*"
provider: kiro-claude
priority: 50
# 优先级 100:默认规则
- pattern: "*"
provider: gemini-cli
priority: 100
```
## 默认回退
### 无规则匹配时
当请求的模型不匹配任何规则时:
1. 使用默认 Provider
2. 保持原始模型名称
3. 如果默认 Provider 不支持该模型,返回错误
### 配置默认 Provider
```yaml
default:
provider: kiro-claude
fallback: true # 启用回退
```
## Provider 选择
### 可用 Provider
| Provider | 标识 | 说明 |
|----------|------|------|
| Kiro Claude | `kiro-claude` | Kiro IDE 的 Claude |
| Gemini CLI | `gemini-cli` | Google Gemini |
| Qwen | `qwen` | 通义千问 |
| OpenAI Custom | `openai-custom` | 自定义 OpenAI |
| Claude Custom | `claude-custom` | 自定义 Claude |
### 多 Provider 负载均衡
同一规则可以指定多个 Provider:
```yaml
routes:
- pattern: "gpt-4*"
providers:
- kiro-claude
- claude-custom
strategy: round-robin
```
## 测试路由
### 路由测试工具
1. 输入模型名称
2. 点击 **测试路由**
3. 查看匹配结果:
- 匹配的规则
- 目标 Provider
- 目标模型
+145
View File
@@ -0,0 +1,145 @@
---
title: 容错配置
description: 重试、超时和故障转移设置
navigation:
icon: i-heroicons-shield-check
---
# 容错配置
容错配置帮助你的应用优雅地处理 API 故障,确保服务稳定性。
## 重试机制
### 重试配置
| 选项 | 默认值 | 说明 |
|------|--------|------|
| 最大重试次数 | 3 | 失败后重试的最大次数 |
| 初始延迟 | 1s | 首次重试前的等待时间 |
| 最大延迟 | 30s | 重试延迟的上限 |
| 退避倍数 | 2 | 每次重试延迟的增长倍数 |
### 退避策略
```
第1次重试: 1s
第2次重试: 2s
第3次重试: 4s
...
```
### 可重试错误
以下错误会触发重试:
- 网络超时
- 连接失败
- 5xx 服务器错误
- 429 速率限制
不重试的错误:
- 4xx 客户端错误(除 429)
- 认证失败
- 无效请求
## 超时设置
### 超时配置
| 选项 | 默认值 | 说明 |
|------|--------|------|
| 连接超时 | 10s | 建立连接的超时时间 |
| 请求超时 | 120s | 整个请求的超时时间 |
| 流式超时 | 300s | 流式响应的超时时间 |
### 按 Provider 配置
可以为不同 Provider 设置不同的超时:
```yaml
timeouts:
default:
connect: 10s
request: 120s
kiro-claude:
request: 180s # Claude 响应较慢
gemini-cli:
request: 60s # Gemini 响应较快
```
## 故障转移
### 自动故障转移
当主 Provider 失败时,自动切换到备用 Provider:
1. 主 Provider 请求失败
2. 检查是否有可用的备用 Provider
3. 使用备用 Provider 重试请求
4. 记录故障转移事件
### 配置故障转移
```yaml
failover:
enabled: true
providers:
- kiro-claude # 主 Provider
- claude-custom # 备用 Provider 1
- gemini-cli # 备用 Provider 2
maxAttempts: 3 # 最大尝试 Provider 数
```
### 故障转移条件
| 条件 | 说明 |
|------|------|
| 连接失败 | 无法连接到 Provider |
| 认证失败 | Token 过期或无效 |
| 速率限制 | 达到 Provider 限制 |
| 服务不可用 | Provider 返回 503 |
## 熔断器
### 熔断器状态
| 状态 | 说明 |
|------|------|
| 关闭 | 正常工作,请求通过 |
| 打开 | 熔断激活,请求直接失败 |
| 半开 | 尝试恢复,允许部分请求 |
### 熔断配置
| 选项 | 默认值 | 说明 |
|------|--------|------|
| 失败阈值 | 5 | 触发熔断的连续失败次数 |
| 恢复时间 | 30s | 熔断后尝试恢复的等待时间 |
| 半开请求数 | 3 | 半开状态允许的测试请求数 |
### 熔断流程
```
正常 → 连续失败5次 → 熔断打开
熔断打开 → 等待30s → 半开状态
半开状态 → 3次成功 → 恢复正常
半开状态 → 1次失败 → 重新熔断
```
## 监控告警
### 告警条件
- 错误率超过阈值
- 延迟超过阈值
- 熔断器打开
- 所有 Provider 不可用
### 告警通知
当前支持:
- 应用内通知
- 系统通知(macOS/Windows)
@@ -0,0 +1,154 @@
---
title: 配置管理
description: 导出和导入配置
navigation:
icon: i-heroicons-document-duplicate
---
# 配置管理
配置管理功能允许你导出、导入和分享 ProxyCast 配置。
## YAML 导出
### 导出内容
导出的 YAML 文件包含:
- Provider 配置
- 路由规则
- 容错设置
- API Server 配置
- 通用设置
### 导出步骤
1. 进入 **设置** > **配置管理**
2. 点击 **导出配置**
3. 选择保存位置
4. 配置保存为 `.yaml` 文件
### 导出格式
```yaml
version: "1.0"
providers:
- name: kiro-claude
type: kiro
enabled: true
priority: 1
- name: gemini-cli
type: gemini
enabled: true
priority: 2
routes:
- pattern: "gpt-4*"
provider: kiro-claude
model: claude-sonnet-4-20250514
resilience:
retry:
maxAttempts: 3
initialDelay: 1s
timeout:
request: 120s
server:
host: "127.0.0.1"
port: 9090
```
### 敏感信息处理
::alert{type="warning"}
导出的配置**不包含**凭证信息(Token、API Key)。导入后需要重新配置凭证。
::
## 导入配置
### 导入步骤
1. 进入 **设置** > **配置管理**
2. 点击 **导入配置**
3. 选择 `.yaml` 配置文件
4. 预览导入内容
5. 确认导入
### 冲突解决
当导入的配置与现有配置冲突时:
| 选项 | 说明 |
|------|------|
| 覆盖 | 用导入的配置替换现有配置 |
| 跳过 | 保留现有配置,跳过冲突项 |
| 合并 | 合并两个配置(仅适用于列表类型) |
### 验证导入
导入前会验证:
- YAML 语法正确性
- 配置版本兼容性
- 必填字段完整性
## .env 格式导出
### 用途
导出为 `.env` 格式,方便在其他工具中使用:
- 脚本调用
- Docker 环境
- CI/CD 配置
### 导出内容
```bash
# ProxyCast API Configuration
PROXYCAST_API_BASE=http://127.0.0.1:9090/v1
PROXYCAST_API_KEY=your-api-key
# OpenAI Compatible
OPENAI_API_BASE=http://127.0.0.1:9090/v1
OPENAI_API_KEY=your-api-key
# Claude Compatible
ANTHROPIC_API_BASE=http://127.0.0.1:9090
ANTHROPIC_API_KEY=your-api-key
```
### 导出步骤
1. 进入 **设置** > **配置管理**
2. 点击 **导出 .env**
3. 选择保存位置
## 配置备份
### 自动备份
ProxyCast 会自动备份配置:
- 每次修改后自动保存
- 保留最近 10 个版本
- 备份位置:`~/.proxycast/backups/`
### 恢复备份
1. 进入 **设置** > **配置管理**
2. 点击 **备份历史**
3. 选择要恢复的版本
4. 点击 **恢复**
## 配置同步
### 跨设备同步
通过导出/导入实现跨设备配置同步:
1. 在设备 A 导出配置
2. 将配置文件传输到设备 B
3. 在设备 B 导入配置
4. 重新配置凭证
@@ -0,0 +1,152 @@
---
title: 配置切换
description: 快速切换 AI 客户端配置
navigation:
icon: i-heroicons-arrows-up-down
---
# 配置切换
配置切换功能让你可以一键在不同的 AI 客户端配置之间切换。
## 功能目的
当你需要在不同场景使用不同的 AI 服务时:
- 开发时使用 Kiro Claude
- 测试时使用 Gemini CLI
- 生产时使用自定义 OpenAI
配置切换让你无需手动修改配置,一键完成切换。
## 预设配置
### 内置配置档案
| 档案 | 说明 |
|------|------|
| Claude Code | 适用于 Claude Code 客户端 |
| Codex | 适用于 OpenAI Codex |
| Gemini CLI | 适用于 Gemini CLI |
### 配置内容
每个档案包含:
- 默认 Provider
- 路由规则
- 模型映射
- API 端点配置
## 创建配置档案
### 新建档案
1. 进入 **配置切换** 页面
2. 点击 **新建档案**
3. 输入档案名称
4. 配置以下内容:
```yaml
name: "我的配置"
description: "自定义配置档案"
provider: kiro-claude
routes:
- pattern: "*"
provider: kiro-claude
settings:
timeout: 120s
retry: 3
```
### 从当前配置创建
1. 配置好当前设置
2. 点击 **保存为档案**
3. 输入档案名称
4. 档案保存成功
## 切换配置
### 一键切换
1. 进入 **配置切换** 页面
2. 查看可用档案列表
3. 点击目标档案的 **应用** 按钮
4. 配置立即生效
### 快捷切换
使用标签页快速切换:
- **Claude Code** 标签
- **Codex** 标签
- **Gemini CLI** 标签
点击标签即可切换到对应配置。
## 设置活动配置
### 标记当前配置
当前使用的配置会显示 **当前使用中** 标记。
### 切换活动配置
1. 选择目标档案
2. 点击 **设为活动**
3. 该档案成为当前活动配置
## 档案管理
### 编辑档案
1. 点击档案的 **编辑** 按钮
2. 修改配置内容
3. 点击 **保存**
### 删除档案
1. 点击档案的 **删除** 按钮
2. 确认删除操作
::alert{type="warning"}
内置档案无法删除,但可以修改。
::
### 导出档案
单独导出某个档案:
1. 点击档案的 **导出** 按钮
2. 选择保存位置
3. 档案保存为 `.yaml` 文件
### 导入档案
1. 点击 **导入档案**
2. 选择 `.yaml` 文件
3. 档案添加到列表
## 使用场景
### 场景 1: 开发/测试切换
```
开发环境: 使用 Kiro Claude(免费额度)
测试环境: 使用 Gemini CLI(快速响应)
```
### 场景 2: 模型切换
```
代码生成: Claude Sonnet(高质量)
快速问答: Gemini Flash(低延迟)
```
### 场景 3: 团队协作
```
团队成员 A: 使用个人 Kiro 账户
团队成员 B: 使用共享 API Key
```
+167
View File
@@ -0,0 +1,167 @@
---
title: API Server
description: 配置和管理 API 服务
navigation:
icon: i-heroicons-server
---
# API Server
API Server 是 ProxyCast 的核心组件,提供 OpenAI/Claude 兼容的 API 端点。
## 服务器配置
### 基本配置
| 选项 | 默认值 | 说明 |
|------|--------|------|
| 主机地址 | `127.0.0.1` | 监听地址 |
| 端口 | `9090` | 监听端口 |
| API Key | 自动生成 | 访问密钥 |
### 配置步骤
1. 进入 **设置** > **API Server**
2. 修改配置选项
3. 点击 **保存**
4. 重启服务生效
### 监听地址
| 地址 | 说明 |
|------|------|
| `127.0.0.1` | 仅本机访问 |
| `0.0.0.0` | 允许局域网访问 |
::alert{type="warning"}
使用 `0.0.0.0` 时请确保配置了 API Key 认证。
::
## API 端点
### OpenAI 兼容端点
| 端点 | 方法 | 说明 |
|------|------|------|
| `/v1/chat/completions` | POST | 聊天补全 |
| `/v1/models` | GET | 模型列表 |
| `/v1/embeddings` | POST | 文本嵌入 |
### Claude 兼容端点
| 端点 | 方法 | 说明 |
|------|------|------|
| `/v1/messages` | POST | 消息 API |
| `/v1/messages/count_tokens` | POST | Token 计数 |
## 请求日志
### 日志查看
1. 进入 **监控中心**
2. 查看 **请求日志** 标签
3. 实时显示所有请求
### 日志内容
每条日志包含:
- 时间戳
- 请求方法和路径
- 请求模型
- 响应状态
- 响应时间
- Token 使用量
### 日志过滤
支持按以下条件过滤:
- 时间范围
- 状态码
- 模型名称
- Provider
## 访问控制
### API Key 认证
启用 API Key 认证:
1. 进入 **设置** > **API Server**
2. 开启 **启用认证**
3. 设置或生成 API Key
4. 保存配置
### 请求认证
请求时需要携带 API Key:
**OpenAI 格式:**
```bash
curl http://127.0.0.1:9090/v1/chat/completions \
-H "Authorization: Bearer your-api-key" \
-H "Content-Type: application/json" \
-d '{"model": "gpt-4", "messages": [...]}'
```
**Claude 格式:**
```bash
curl http://127.0.0.1:9090/v1/messages \
-H "x-api-key: your-api-key" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{"model": "claude-3-sonnet", "messages": [...]}'
```
### 多 API Key
支持配置多个 API Key:
```yaml
auth:
keys:
- name: "开发环境"
key: "dev-key-xxx"
- name: "生产环境"
key: "prod-key-xxx"
```
## CORS 配置
### 跨域设置
| 选项 | 默认值 | 说明 |
|------|--------|------|
| 允许来源 | `*` | 允许的请求来源 |
| 允许方法 | `GET,POST,OPTIONS` | 允许的 HTTP 方法 |
| 允许头部 | `*` | 允许的请求头 |
### 配置示例
```yaml
cors:
origins:
- "http://localhost:3000"
- "https://myapp.com"
methods:
- GET
- POST
headers:
- Authorization
- Content-Type
```
## 服务管理
### 启动/停止
- **启动**: 点击仪表盘的 **启动服务** 按钮
- **停止**: 点击 **停止服务** 按钮
- **重启**: 点击 **重启服务** 按钮
### 开机自启
1. 进入 **设置** > **通用**
2. 开启 **开机自动启动**
3. 开启 **启动时自动运行服务**
+185
View File
@@ -0,0 +1,185 @@
---
title: MCP 服务器
description: Model Context Protocol 集成
navigation:
icon: i-heroicons-puzzle-piece
---
# MCP 服务器
MCP (Model Context Protocol) 是一种标准协议,允许 AI 模型与外部工具和数据源交互。
## MCP 概念
### 什么是 MCP
MCP 定义了 AI 模型与外部系统交互的标准方式:
- **工具调用**: AI 可以调用外部工具执行操作
- **资源访问**: AI 可以读取外部数据源
- **上下文扩展**: 为 AI 提供额外的上下文信息
### 集成优势
- 扩展 AI 能力,执行实际操作
- 访问实时数据和外部服务
- 标准化的工具接口
## 服务器配置
### 添加 MCP 服务器
1. 进入 **MCP** 页面
2. 点击 **添加服务器**
3. 配置服务器信息:
| 字段 | 说明 |
|------|------|
| 名称 | 服务器标识名称 |
| 命令 | 启动命令 |
| 参数 | 命令参数 |
| 环境变量 | 环境变量配置 |
### 配置示例
```json
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/dir"],
"env": {}
},
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_TOKEN": "your-token"
}
}
}
}
```
### 连接设置
| 选项 | 说明 |
|------|------|
| 自动启动 | 应用启动时自动连接 |
| 重连间隔 | 断开后重连的等待时间 |
| 超时时间 | 连接超时设置 |
## 工具调用
### 可用工具
连接 MCP 服务器后,可以查看提供的工具:
1. 进入 **MCP** 页面
2. 选择已连接的服务器
3. 查看 **工具列表**
### 工具信息
每个工具显示:
- 工具名称
- 功能描述
- 输入参数
- 返回类型
### 调用示例
通过 API 调用 MCP 工具:
```bash
curl http://127.0.0.1:9090/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer your-api-key" \
-d '{
"model": "claude-sonnet-4-20250514",
"messages": [
{"role": "user", "content": "读取 /tmp/test.txt 文件内容"}
],
"tools": [
{
"type": "function",
"function": {
"name": "read_file",
"description": "读取文件内容",
"parameters": {
"type": "object",
"properties": {
"path": {"type": "string"}
}
}
}
}
]
}'
```
## 常用 MCP 服务器
### 文件系统
```json
{
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/allowed/path"]
}
}
```
### GitHub
```json
{
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_TOKEN": "ghp_xxx"
}
}
}
```
### 数据库
```json
{
"postgres": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-postgres"],
"env": {
"DATABASE_URL": "postgresql://..."
}
}
}
```
## 服务器管理
### 启动/停止
- **启动**: 点击服务器的 **启动** 按钮
- **停止**: 点击 **停止** 按钮
- **重启**: 点击 **重启** 按钮
### 状态监控
| 状态 | 说明 |
|------|------|
| 🟢 已连接 | 服务器正常运行 |
| 🔴 已断开 | 服务器未连接 |
| 🟡 连接中 | 正在建立连接 |
### 日志查看
查看 MCP 服务器的运行日志:
1. 选择服务器
2. 点击 **查看日志**
3. 实时显示服务器输出
+120
View File
@@ -0,0 +1,120 @@
---
title: Provider 概述
description: 支持的 AI 服务提供商
navigation:
icon: i-heroicons-squares-2x2
---
# Provider 概述
ProxyCast 支持多种 AI 服务提供商(Provider),每种 Provider 有不同的认证方式和特点。
## Provider 类型
### OAuth 类型
通过 OAuth 协议认证,支持自动刷新 Token:
| Provider | 说明 |
|----------|------|
| Kiro Claude | AWS Kiro IDE 的 Claude 凭证 |
| Gemini CLI | Google Gemini CLI 凭证 |
| Qwen | 阿里云通义千问凭证 |
### API Key 类型
使用 API Key 认证,需要手动配置:
| Provider | 说明 |
|----------|------|
| OpenAI Custom | 自定义 OpenAI 兼容服务 |
| Claude Custom | 自定义 Claude 兼容服务 |
## 选择指南
### 根据使用场景选择
| 场景 | 推荐 Provider |
|------|---------------|
| 已有 Kiro 订阅 | Kiro Claude |
| 已有 Google AI 订阅 | Gemini CLI |
| 已有阿里云订阅 | Qwen |
| 有 OpenAI API Key | OpenAI Custom |
| 有 Anthropic API Key | Claude Custom |
### 根据模型需求选择
| 模型系列 | Provider |
|----------|----------|
| Claude 系列 | Kiro Claude, Claude Custom |
| Gemini 系列 | Gemini CLI |
| Qwen 系列 | Qwen |
| GPT 系列 | OpenAI Custom |
## Provider 特性对比
| 特性 | Kiro | Gemini | Qwen | OpenAI Custom | Claude Custom |
|------|------|--------|------|---------------|---------------|
| 自动刷新 Token | ✅ | ✅ | ✅ | ❌ | ❌ |
| 流式响应 | ✅ | ✅ | ✅ | ✅ | ✅ |
| 工具调用 | ✅ | ✅ | ✅ | ✅ | ✅ |
| 视觉能力 | ✅ | ✅ | ✅ | ✅ | ✅ |
| 自定义 Base URL | ❌ | ❌ | ❌ | ✅ | ✅ |
## 配置流程
### OAuth Provider
1. 确保已安装对应的 AI 客户端
2. 在客户端中完成登录
3. ProxyCast 自动检测凭证文件
4. 在凭证池中确认凭证状态
### API Key Provider
1. 获取 API Key
2. 在 ProxyCast 中添加凭证
3. 配置 Base URL(如需要)
4. 测试凭证有效性
## 多 Provider 配置
### 负载均衡
配置多个 Provider 实现负载均衡:
```yaml
providers:
- name: kiro-1
type: kiro
priority: 1
- name: kiro-2
type: kiro
priority: 2
- name: gemini-backup
type: gemini
priority: 10
```
### 故障转移
主 Provider 失败时自动切换:
```yaml
failover:
enabled: true
order:
- kiro-claude
- claude-custom
- gemini-cli
```
## 下一步
选择你要配置的 Provider:
- [Kiro Claude](/providers/kiro-claude)
- [Gemini CLI](/providers/gemini-cli)
- [Qwen](/providers/qwen)
- [OpenAI Custom](/providers/openai-custom)
- [Claude Custom](/providers/claude-custom)
+116
View File
@@ -0,0 +1,116 @@
---
title: Kiro Claude
description: 配置 Kiro IDE 的 Claude 凭证
navigation:
icon: i-heroicons-cpu-chip
---
# Kiro Claude
Kiro Claude 是 AWS Kiro IDE 提供的 Claude AI 服务凭证。
## 凭证位置
### 默认路径
Kiro 凭证文件位于:
| 平台 | 路径 |
|------|------|
| macOS | `~/.kiro/credentials.json` |
| Windows | `%USERPROFILE%\.kiro\credentials.json` |
### 凭证格式
```json
{
"accessToken": "eyJ...",
"refreshToken": "eyJ...",
"expiresAt": "2024-01-01T00:00:00Z"
}
```
## 自动刷新机制
### Token 生命周期
- Access Token 有效期:约 1 小时
- Refresh Token 有效期:约 30 天
### 自动刷新
ProxyCast 会自动处理 Token 刷新:
1. 检测 Access Token 即将过期
2. 使用 Refresh Token 获取新 Token
3. 更新本地凭证文件
4. 继续处理请求
### 刷新失败处理
如果刷新失败:
1. 标记凭证为"已过期"
2. 尝试使用其他可用凭证
3. 通知用户重新登录 Kiro
## 配置步骤
### 自动检测
1. 确保已安装 Kiro IDE
2. 在 Kiro 中完成登录
3. 启动 ProxyCast
4. 凭证自动出现在凭证池中
### 手动添加
如果自动检测失败:
1. 进入 **凭证池** 页面
2. 点击 **添加凭证**
3. 选择 **Kiro Claude**
4. 选择凭证文件或手动输入
## 支持的模型
| 模型 | 说明 |
|------|------|
| claude-sonnet-4-20250514 | Claude Sonnet 4 |
| claude-3-5-sonnet-20241022 | Claude 3.5 Sonnet |
| claude-3-5-haiku-20241022 | Claude 3.5 Haiku |
## 使用限制
### 额度限制
Kiro 订阅有使用额度限制,具体取决于订阅计划。
### 并发限制
建议单个凭证的并发请求数不超过 5。
## 故障排除
### 凭证未检测到
1. 确认 Kiro 已安装并登录
2. 检查凭证文件是否存在
3. 点击 **刷新凭证** 重新扫描
### Token 过期
1. 打开 Kiro IDE
2. 确认登录状态
3. 如需要,重新登录
4. 在 ProxyCast 中刷新凭证
### 请求失败
常见错误:
| 错误 | 原因 | 解决方案 |
|------|------|----------|
| 401 Unauthorized | Token 无效 | 刷新凭证或重新登录 |
| 429 Too Many Requests | 超出限制 | 等待或使用其他凭证 |
| 503 Service Unavailable | 服务不可用 | 稍后重试 |
+143
View File
@@ -0,0 +1,143 @@
---
title: Gemini CLI
description: 配置 Google Gemini CLI 凭证
navigation:
icon: i-heroicons-sparkles
---
# Gemini CLI
Gemini CLI 是 Google 提供的命令行 AI 工具,使用 OAuth 认证。
## 凭证位置
### 默认路径
Gemini CLI 凭证文件位于:
| 平台 | 路径 |
|------|------|
| macOS | `~/.config/gemini-cli/oauth_creds.json` |
| Windows | `%USERPROFILE%\.config\gemini-cli\oauth_creds.json` |
| Linux | `~/.config/gemini-cli/oauth_creds.json` |
### 凭证格式
```json
{
"client_id": "...",
"client_secret": "...",
"refresh_token": "...",
"token_uri": "https://oauth2.googleapis.com/token"
}
```
## 项目设置
### Google Cloud 项目
Gemini CLI 需要关联 Google Cloud 项目:
1. 访问 [Google Cloud Console](https://console.cloud.google.com)
2. 创建或选择项目
3. 启用 Gemini API
4. 配置 OAuth 同意屏幕
### 配置项目 ID
在 ProxyCast 中配置项目:
```yaml
gemini:
project_id: "your-project-id"
location: "us-central1"
```
## 自动刷新机制
### Token 刷新
ProxyCast 自动处理 OAuth Token 刷新:
1. 使用 Refresh Token 获取 Access Token
2. Access Token 过期前自动刷新
3. 无需用户干预
### 刷新失败
如果刷新失败:
1. 检查网络连接
2. 确认 Google 账户状态
3. 重新运行 `gemini auth login`
## 配置步骤
### 安装 Gemini CLI
```bash
# 使用 npm 安装
npm install -g @anthropic-ai/gemini-cli
# 或使用 pip
pip install gemini-cli
```
### 登录认证
```bash
gemini auth login
```
按提示完成 OAuth 认证流程。
### 在 ProxyCast 中配置
1. 完成 Gemini CLI 登录
2. 启动 ProxyCast
3. 凭证自动出现在凭证池中
## 支持的模型
| 模型 | 说明 |
|------|------|
| gemini-2.0-flash | Gemini 2.0 Flash |
| gemini-1.5-pro | Gemini 1.5 Pro |
| gemini-1.5-flash | Gemini 1.5 Flash |
## 使用限制
### 免费额度
Google 提供一定的免费使用额度,超出后需要付费。
### 速率限制
| 限制类型 | 限制值 |
|----------|--------|
| 每分钟请求数 | 60 |
| 每日请求数 | 1500 |
## 故障排除
### 凭证未检测到
1. 确认已运行 `gemini auth login`
2. 检查凭证文件是否存在
3. 确认文件权限正确
### 认证失败
```bash
# 重新登录
gemini auth logout
gemini auth login
```
### 项目配置错误
确认 Google Cloud 项目:
1. 已启用 Gemini API
2. 有足够的配额
3. 账单设置正确
+144
View File
@@ -0,0 +1,144 @@
---
title: Qwen (通义千问)
description: 配置阿里云通义千问凭证
navigation:
icon: i-heroicons-language
---
# Qwen (通义千问)
Qwen 是阿里云提供的大语言模型服务。
## 凭证位置
### 默认路径
Qwen 凭证文件位于:
| 平台 | 路径 |
|------|------|
| macOS | `~/.config/qwen/credentials.json` |
| Windows | `%USERPROFILE%\.config\qwen\credentials.json` |
| Linux | `~/.config/qwen/credentials.json` |
### 凭证格式
```json
{
"access_token": "...",
"refresh_token": "...",
"expires_at": "2024-01-01T00:00:00Z"
}
```
## 认证设置
### 获取凭证
1. 访问 [阿里云控制台](https://www.aliyun.com)
2. 开通通义千问服务
3. 获取 API 凭证
### 使用阿里云 CLI
```bash
# 安装阿里云 CLI
pip install aliyun-cli
# 配置凭证
aliyun configure
```
### 手动配置
在 ProxyCast 中手动添加:
1. 进入 **凭证池** 页面
2. 点击 **添加凭证**
3. 选择 **Qwen**
4. 输入凭证信息
## 自动刷新
ProxyCast 支持 Qwen Token 的自动刷新:
1. 检测 Token 即将过期
2. 使用 Refresh Token 获取新 Token
3. 更新凭证文件
## 支持的模型
| 模型 | 说明 |
|------|------|
| qwen-turbo | 通义千问 Turbo |
| qwen-plus | 通义千问 Plus |
| qwen-max | 通义千问 Max |
| qwen-long | 通义千问 Long(长文本) |
## 配置选项
### 区域设置
```yaml
qwen:
region: "cn-hangzhou"
endpoint: "https://dashscope.aliyuncs.com"
```
### 模型映射
将 OpenAI 模型名映射到 Qwen:
```yaml
routes:
- pattern: "gpt-4*"
provider: qwen
model: qwen-max
- pattern: "gpt-3.5*"
provider: qwen
model: qwen-turbo
```
## 使用限制
### 并发限制
| 模型 | 并发数 |
|------|--------|
| qwen-turbo | 10 |
| qwen-plus | 5 |
| qwen-max | 3 |
### Token 限制
| 模型 | 最大 Token |
|------|-----------|
| qwen-turbo | 8K |
| qwen-plus | 32K |
| qwen-max | 32K |
| qwen-long | 1M |
## 故障排除
### 凭证无效
1. 检查阿里云账户状态
2. 确认服务已开通
3. 重新获取凭证
### 请求失败
| 错误码 | 原因 | 解决方案 |
|--------|------|----------|
| InvalidApiKey | API Key 无效 | 检查凭证配置 |
| QuotaExhausted | 配额用尽 | 充值或等待重置 |
| RateLimitExceeded | 超出速率限制 | 降低请求频率 |
### 网络问题
如果在中国大陆以外使用,可能需要配置代理:
```yaml
qwen:
proxy: "http://proxy.example.com:8080"
```
@@ -0,0 +1,139 @@
---
title: OpenAI Custom
description: 配置自定义 OpenAI 兼容服务
navigation:
icon: i-heroicons-cube
---
# OpenAI Custom
OpenAI Custom 允许你配置任何 OpenAI 兼容的 API 服务。
## 适用场景
- 使用 OpenAI 官方 API
- 使用 Azure OpenAI
- 使用其他 OpenAI 兼容服务(如 Groq、Together AI)
- 使用本地部署的模型(如 Ollama、vLLM)
## API Key 配置
### 获取 API Key
**OpenAI 官方:**
1. 访问 [OpenAI Platform](https://platform.openai.com)
2. 进入 API Keys 页面
3. 创建新的 API Key
**Azure OpenAI:**
1. 访问 Azure Portal
2. 创建 Azure OpenAI 资源
3. 获取 API Key 和端点
### 在 ProxyCast 中配置
1. 进入 **凭证池** 页面
2. 点击 **添加凭证**
3. 选择 **OpenAI Custom**
4. 填写配置信息:
| 字段 | 说明 |
|------|------|
| 名称 | 凭证标识名称 |
| API Key | OpenAI API Key |
| Base URL | API 端点(可选) |
## Base URL 设置
### 默认端点
不填写 Base URL 时,使用 OpenAI 官方端点:
```
https://api.openai.com/v1
```
### 自定义端点
| 服务 | Base URL |
|------|----------|
| Azure OpenAI | `https://{resource}.openai.azure.com/openai/deployments/{deployment}` |
| Groq | `https://api.groq.com/openai/v1` |
| Together AI | `https://api.together.xyz/v1` |
| Ollama | `http://localhost:11434/v1` |
### 配置示例
```yaml
providers:
- name: openai-official
type: openai-custom
api_key: "sk-..."
# 使用默认 Base URL
- name: azure-openai
type: openai-custom
api_key: "..."
base_url: "https://myresource.openai.azure.com/openai/deployments/gpt-4"
- name: ollama-local
type: openai-custom
api_key: "ollama" # Ollama 不需要真实 key
base_url: "http://localhost:11434/v1"
```
## 支持的模型
取决于你使用的服务,常见模型:
| 服务 | 模型 |
|------|------|
| OpenAI | gpt-4, gpt-4-turbo, gpt-3.5-turbo |
| Azure | 取决于部署 |
| Groq | llama-3.1-70b, mixtral-8x7b |
| Ollama | llama3, mistral, codellama |
## 高级配置
### 请求头
添加自定义请求头:
```yaml
openai-custom:
headers:
X-Custom-Header: "value"
```
### Azure 特殊配置
Azure OpenAI 需要额外配置:
```yaml
azure-openai:
api_key: "..."
base_url: "https://..."
api_version: "2024-02-15-preview"
headers:
api-key: "..." # Azure 使用 api-key 头
```
## 故障排除
### API Key 无效
1. 确认 API Key 正确
2. 检查 Key 是否过期
3. 确认账户有足够余额
### 连接失败
1. 检查 Base URL 是否正确
2. 确认网络可以访问端点
3. 检查是否需要代理
### 模型不存在
1. 确认模型名称正确
2. 检查账户是否有该模型的访问权限
3. Azure 用户确认部署名称
@@ -0,0 +1,172 @@
---
title: Claude Custom
description: 配置自定义 Claude 兼容服务
navigation:
icon: i-heroicons-beaker
---
# Claude Custom
Claude Custom 允许你配置 Anthropic 官方 API 或其他 Claude 兼容服务。
## 适用场景
- 使用 Anthropic 官方 API
- 使用 AWS Bedrock Claude
- 使用其他 Claude 兼容服务
## API Key 配置
### 获取 API Key
**Anthropic 官方:**
1. 访问 [Anthropic Console](https://console.anthropic.com)
2. 进入 API Keys 页面
3. 创建新的 API Key
**AWS Bedrock:**
1. 访问 AWS Console
2. 配置 Bedrock 访问权限
3. 获取 AWS 凭证
### 在 ProxyCast 中配置
1. 进入 **凭证池** 页面
2. 点击 **添加凭证**
3. 选择 **Claude Custom**
4. 填写配置信息:
| 字段 | 说明 |
|------|------|
| 名称 | 凭证标识名称 |
| API Key | Anthropic API Key |
| Base URL | API 端点(可选) |
## Base URL 设置
### 默认端点
不填写 Base URL 时,使用 Anthropic 官方端点:
```
https://api.anthropic.com
```
### 自定义端点
| 服务 | Base URL |
|------|----------|
| Anthropic 官方 | `https://api.anthropic.com` |
| AWS Bedrock | 使用 AWS SDK |
| 代理服务 | 自定义 URL |
### 配置示例
```yaml
providers:
- name: anthropic-official
type: claude-custom
api_key: "sk-ant-..."
# 使用默认 Base URL
- name: claude-proxy
type: claude-custom
api_key: "..."
base_url: "https://my-proxy.example.com"
```
## 支持的模型
| 模型 | 说明 |
|------|------|
| claude-sonnet-4-20250514 | Claude Sonnet 4 |
| claude-3-5-sonnet-20241022 | Claude 3.5 Sonnet |
| claude-3-5-haiku-20241022 | Claude 3.5 Haiku |
| claude-3-opus-20240229 | Claude 3 Opus |
## API 版本
### 版本配置
Anthropic API 需要指定版本:
```yaml
claude-custom:
api_version: "2023-06-01"
```
### 请求头
Claude API 使用特定的请求头:
```
x-api-key: your-api-key
anthropic-version: 2023-06-01
```
## AWS Bedrock 配置
### 使用 AWS 凭证
```yaml
bedrock-claude:
type: claude-custom
aws_region: "us-east-1"
aws_access_key: "..."
aws_secret_key: "..."
model_id: "anthropic.claude-3-sonnet-20240229-v1:0"
```
### IAM 角色
推荐使用 IAM 角色而非 Access Key:
1. 配置 IAM 角色
2. 授予 Bedrock 访问权限
3. ProxyCast 自动使用角色凭证
## 高级配置
### 自定义请求头
```yaml
claude-custom:
headers:
X-Custom-Header: "value"
```
### 超时设置
```yaml
claude-custom:
timeout:
connect: 10s
request: 180s # Claude 响应可能较慢
```
## 故障排除
### API Key 无效
1. 确认 API Key 正确
2. 检查 Key 是否过期
3. 确认账户状态正常
### 模型访问被拒
1. 确认账户有该模型的访问权限
2. 某些模型需要申请访问
3. 检查使用限制
### 速率限制
| 错误 | 解决方案 |
|------|----------|
| 429 Too Many Requests | 降低请求频率 |
| rate_limit_error | 等待后重试 |
### Bedrock 问题
1. 确认 AWS 凭证正确
2. 检查 IAM 权限
3. 确认区域支持 Claude
@@ -0,0 +1,88 @@
---
title: API 概述
description: ProxyCast API 端点和认证
navigation:
icon: i-heroicons-code-bracket
---
# API 概述
ProxyCast 提供 OpenAI 和 Claude 兼容的 API 端点。
## 支持的端点
### OpenAI 兼容
| 端点 | 方法 | 说明 |
|------|------|------|
| `/v1/chat/completions` | POST | 聊天补全 |
| `/v1/models` | GET | 模型列表 |
| `/v1/embeddings` | POST | 文本嵌入 |
### Claude 兼容
| 端点 | 方法 | 说明 |
|------|------|------|
| `/v1/messages` | POST | 消息 API |
| `/v1/messages/count_tokens` | POST | Token 计数 |
## 认证方式
### OpenAI 格式
使用 `Authorization` 头:
```bash
curl http://127.0.0.1:9090/v1/chat/completions \
-H "Authorization: Bearer your-api-key" \
-H "Content-Type: application/json" \
-d '...'
```
### Claude 格式
使用 `x-api-key` 头:
```bash
curl http://127.0.0.1:9090/v1/messages \
-H "x-api-key: your-api-key" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '...'
```
## 基础 URL
默认地址:`http://127.0.0.1:9090`
可在设置中修改主机和端口。
## 错误响应
### 错误格式
```json
{
"error": {
"message": "错误描述",
"type": "error_type",
"code": "error_code"
}
}
```
### 常见错误码
| 状态码 | 说明 |
|--------|------|
| 400 | 请求格式错误 |
| 401 | 认证失败 |
| 404 | 端点不存在 |
| 429 | 速率限制 |
| 500 | 服务器错误 |
| 503 | 服务不可用 |
## 下一步
- [OpenAI API](/api-reference/openai-api) - OpenAI 兼容端点详情
- [Claude API](/api-reference/claude-api) - Claude 兼容端点详情
@@ -0,0 +1,233 @@
---
title: OpenAI API
description: OpenAI 兼容 API 端点
navigation:
icon: i-heroicons-chat-bubble-left-right
---
# OpenAI API
ProxyCast 提供完整的 OpenAI Chat Completions API 兼容。
## /v1/chat/completions
### 请求
```bash
POST /v1/chat/completions
Content-Type: application/json
Authorization: Bearer your-api-key
```
### 请求体
```json
{
"model": "claude-sonnet-4-20250514",
"messages": [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Hello!"}
],
"temperature": 0.7,
"max_tokens": 1024,
"stream": false
}
```
### 参数说明
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| model | string | ✅ | 模型名称 |
| messages | array | ✅ | 消息列表 |
| temperature | number | ❌ | 温度 (0-2) |
| max_tokens | integer | ❌ | 最大输出 Token |
| stream | boolean | ❌ | 是否流式响应 |
| top_p | number | ❌ | 采样参数 |
| presence_penalty | number | ❌ | 存在惩罚 |
| frequency_penalty | number | ❌ | 频率惩罚 |
| stop | array | ❌ | 停止序列 |
| tools | array | ❌ | 工具定义 |
| tool_choice | string/object | ❌ | 工具选择策略 |
### 消息格式
```json
{
"role": "user",
"content": "Hello!"
}
```
支持的角色:`system`, `user`, `assistant`, `tool`
### 响应
```json
{
"id": "chatcmpl-xxx",
"object": "chat.completion",
"created": 1234567890,
"model": "claude-sonnet-4-20250514",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "Hello! How can I help you today?"
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 10,
"completion_tokens": 20,
"total_tokens": 30
}
}
```
### 流式响应
设置 `stream: true` 启用流式响应:
```bash
curl http://127.0.0.1:9090/v1/chat/completions \
-H "Authorization: Bearer your-api-key" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-4-20250514",
"messages": [{"role": "user", "content": "Hello!"}],
"stream": true
}'
```
响应格式(SSE):
```
data: {"id":"chatcmpl-xxx","choices":[{"delta":{"content":"Hello"}}]}
data: {"id":"chatcmpl-xxx","choices":[{"delta":{"content":"!"}}]}
data: [DONE]
```
## /v1/models
### 请求
```bash
GET /v1/models
Authorization: Bearer your-api-key
```
### 响应
```json
{
"object": "list",
"data": [
{
"id": "claude-sonnet-4-20250514",
"object": "model",
"created": 1234567890,
"owned_by": "anthropic"
},
{
"id": "gemini-2.0-flash",
"object": "model",
"created": 1234567890,
"owned_by": "google"
}
]
}
```
## 工具调用
### 定义工具
```json
{
"model": "claude-sonnet-4-20250514",
"messages": [{"role": "user", "content": "What's the weather in Tokyo?"}],
"tools": [
{
"type": "function",
"function": {
"name": "get_weather",
"description": "Get weather information",
"parameters": {
"type": "object",
"properties": {
"location": {"type": "string"}
},
"required": ["location"]
}
}
}
]
}
```
### 工具调用响应
```json
{
"choices": [
{
"message": {
"role": "assistant",
"tool_calls": [
{
"id": "call_xxx",
"type": "function",
"function": {
"name": "get_weather",
"arguments": "{\"location\":\"Tokyo\"}"
}
}
]
}
}
]
}
```
## 示例代码
### Python
```python
import openai
client = openai.OpenAI(
base_url="http://127.0.0.1:9090/v1",
api_key="your-api-key"
)
response = client.chat.completions.create(
model="claude-sonnet-4-20250514",
messages=[{"role": "user", "content": "Hello!"}]
)
print(response.choices[0].message.content)
```
### Node.js
```javascript
import OpenAI from 'openai';
const client = new OpenAI({
baseURL: 'http://127.0.0.1:9090/v1',
apiKey: 'your-api-key'
});
const response = await client.chat.completions.create({
model: 'claude-sonnet-4-20250514',
messages: [{ role: 'user', content: 'Hello!' }]
});
console.log(response.choices[0].message.content);
```
@@ -0,0 +1,233 @@
---
title: Claude API
description: Claude 兼容 API 端点
navigation:
icon: i-heroicons-chat-bubble-bottom-center-text
---
# Claude API
ProxyCast 提供 Anthropic Claude Messages API 兼容。
## /v1/messages
### 请求
```bash
POST /v1/messages
Content-Type: application/json
x-api-key: your-api-key
anthropic-version: 2023-06-01
```
### 请求体
```json
{
"model": "claude-sonnet-4-20250514",
"max_tokens": 1024,
"messages": [
{"role": "user", "content": "Hello!"}
]
}
```
### 参数说明
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| model | string | ✅ | 模型名称 |
| max_tokens | integer | ✅ | 最大输出 Token |
| messages | array | ✅ | 消息列表 |
| system | string | ❌ | 系统提示词 |
| temperature | number | ❌ | 温度 (0-1) |
| top_p | number | ❌ | 采样参数 |
| top_k | integer | ❌ | Top-K 采样 |
| stream | boolean | ❌ | 是否流式响应 |
| stop_sequences | array | ❌ | 停止序列 |
| tools | array | ❌ | 工具定义 |
| tool_choice | object | ❌ | 工具选择策略 |
### 消息格式
```json
{
"role": "user",
"content": "Hello!"
}
```
或带图片:
```json
{
"role": "user",
"content": [
{"type": "text", "text": "What's in this image?"},
{"type": "image", "source": {"type": "base64", "media_type": "image/png", "data": "..."}}
]
}
```
### 响应
```json
{
"id": "msg_xxx",
"type": "message",
"role": "assistant",
"content": [
{"type": "text", "text": "Hello! How can I help you today?"}
],
"model": "claude-sonnet-4-20250514",
"stop_reason": "end_turn",
"usage": {
"input_tokens": 10,
"output_tokens": 20
}
}
```
### 流式响应
设置 `stream: true` 启用流式响应:
```bash
curl http://127.0.0.1:9090/v1/messages \
-H "x-api-key: your-api-key" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-4-20250514",
"max_tokens": 1024,
"messages": [{"role": "user", "content": "Hello!"}],
"stream": true
}'
```
响应格式(SSE):
```
event: message_start
data: {"type":"message_start","message":{"id":"msg_xxx"}}
event: content_block_start
data: {"type":"content_block_start","index":0,"content_block":{"type":"text","text":""}}
event: content_block_delta
data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"Hello"}}
event: message_stop
data: {"type":"message_stop"}
```
## /v1/messages/count_tokens
### 请求
```bash
POST /v1/messages/count_tokens
Content-Type: application/json
x-api-key: your-api-key
anthropic-version: 2023-06-01
```
### 请求体
```json
{
"model": "claude-sonnet-4-20250514",
"messages": [
{"role": "user", "content": "Hello!"}
]
}
```
### 响应
```json
{
"input_tokens": 10
}
```
## 工具调用
### 定义工具
```json
{
"model": "claude-sonnet-4-20250514",
"max_tokens": 1024,
"messages": [{"role": "user", "content": "What's the weather in Tokyo?"}],
"tools": [
{
"name": "get_weather",
"description": "Get weather information",
"input_schema": {
"type": "object",
"properties": {
"location": {"type": "string"}
},
"required": ["location"]
}
}
]
}
```
### 工具调用响应
```json
{
"content": [
{
"type": "tool_use",
"id": "toolu_xxx",
"name": "get_weather",
"input": {"location": "Tokyo"}
}
],
"stop_reason": "tool_use"
}
```
## 示例代码
### Python
```python
import anthropic
client = anthropic.Anthropic(
base_url="http://127.0.0.1:9090",
api_key="your-api-key"
)
message = client.messages.create(
model="claude-sonnet-4-20250514",
max_tokens=1024,
messages=[{"role": "user", "content": "Hello!"}]
)
print(message.content[0].text)
```
### Node.js
```javascript
import Anthropic from '@anthropic-ai/sdk';
const client = new Anthropic({
baseURL: 'http://127.0.0.1:9090',
apiKey: 'your-api-key'
});
const message = await client.messages.create({
model: 'claude-sonnet-4-20250514',
max_tokens: 1024,
messages: [{ role: 'user', content: 'Hello!' }]
});
console.log(message.content[0].text);
```
@@ -0,0 +1,144 @@
---
title: 常见问题
description: 常见问题汇总和解决方案
navigation:
icon: i-heroicons-question-mark-circle
---
# 常见问题
本页汇总了 ProxyCast 使用中的常见问题和解决方案。
## 启动问题
### 应用无法启动
**症状**: 双击应用图标后无反应
**解决方案**:
1. **macOS**: 右键点击应用,选择"打开"
2. **Windows**: 以管理员身份运行
3. 检查系统日志查看错误信息
### 端口被占用
**症状**: 服务启动失败,提示端口已被使用
**解决方案**:
```bash
# 查找占用端口的进程
# macOS/Linux
lsof -i :9090
# Windows
netstat -ano | findstr :9090
```
或在设置中更改端口号。
## 凭证问题
### 凭证未检测到
**症状**: 凭证池为空,未显示任何凭证
**解决方案**:
1. 确认 AI 客户端已安装并登录
2. 检查凭证文件是否存在
3. 点击"刷新凭证"重新扫描
4. 手动添加凭证
详见 [凭证错误](/troubleshooting/credential-errors)
### Token 过期
**症状**: 请求返回 401 错误
**解决方案**:
1. 打开对应的 AI 客户端
2. 确认登录状态
3. 在 ProxyCast 中刷新凭证
## 连接问题
### 无法连接到 Provider
**症状**: 请求超时或连接失败
**解决方案**:
1. 检查网络连接
2. 确认 Provider 服务正常
3. 检查代理设置
详见 [连接问题](/troubleshooting/connection-issues)
### SSL 证书错误
**症状**: 提示证书验证失败
**解决方案**:
1. 检查系统时间是否正确
2. 更新系统根证书
3. 检查代理是否拦截 HTTPS
## API 问题
### 请求返回错误
**常见错误码**:
| 错误码 | 原因 | 解决方案 |
|--------|------|----------|
| 400 | 请求格式错误 | 检查请求参数 |
| 401 | 认证失败 | 检查 API Key |
| 404 | 端点不存在 | 检查 URL |
| 429 | 速率限制 | 降低请求频率 |
| 500 | 服务器错误 | 查看日志 |
### 流式响应中断
**症状**: 流式响应突然停止
**解决方案**:
1. 检查网络稳定性
2. 增加超时时间
3. 检查 Provider 状态
## 性能问题
### 响应缓慢
**可能原因**:
1. Provider 响应慢
2. 网络延迟高
3. 请求内容过长
**解决方案**:
1. 切换到更快的 Provider
2. 使用更快的模型
3. 减少请求内容长度
### 内存占用高
**解决方案**:
1. 清除请求日志
2. 减少日志保留天数
3. 重启应用
## 获取帮助
如果以上方案无法解决问题:
1. 查看应用日志
2. 在 GitHub 提交 Issue
3. 提供详细的错误信息和复现步骤
@@ -0,0 +1,146 @@
---
title: 凭证错误
description: OAuth Token 问题诊断
navigation:
icon: i-heroicons-key
---
# 凭证错误
本页帮助你诊断和解决凭证相关的问题。
## 诊断步骤
### 1. 检查凭证文件
确认凭证文件存在:
```bash
# Kiro
ls -la ~/.kiro/credentials.json
# Gemini CLI
ls -la ~/.config/gemini-cli/oauth_creds.json
# Qwen
ls -la ~/.config/qwen/credentials.json
```
### 2. 验证文件格式
检查 JSON 格式是否正确:
```bash
# 验证 JSON 格式
cat ~/.kiro/credentials.json | python -m json.tool
```
### 3. 检查 Token 有效性
在 ProxyCast 中:
1. 进入凭证池
2. 点击凭证的"测试"按钮
3. 查看测试结果
## 常见错误
### Token 已过期
**症状**: 凭证状态显示"已过期"
**原因**:
- Access Token 超过有效期
- Refresh Token 也已过期
**解决方案**:
1. 打开对应的 AI 客户端
2. 重新登录
3. 在 ProxyCast 中刷新凭证
### Token 无效
**症状**: 测试凭证返回 401 错误
**原因**:
- Token 被撤销
- 账户状态异常
**解决方案**:
1. 检查 AI 客户端账户状态
2. 重新登录获取新 Token
3. 删除旧凭证,重新添加
### 刷新失败
**症状**: 自动刷新 Token 失败
**原因**:
- Refresh Token 过期
- 网络问题
- 服务端问题
**解决方案**:
1. 检查网络连接
2. 手动刷新凭证
3. 如仍失败,重新登录客户端
## Provider 特定问题
### Kiro Claude
**凭证位置**: `~/.kiro/credentials.json`
**常见问题**:
1. **未安装 Kiro**: 安装 Kiro IDE
2. **未登录**: 在 Kiro 中完成登录
3. **订阅过期**: 检查 Kiro 订阅状态
### Gemini CLI
**凭证位置**: `~/.config/gemini-cli/oauth_creds.json`
**常见问题**:
1. **未安装 CLI**: 安装 Gemini CLI
2. **未认证**: 运行 `gemini auth login`
3. **项目配额用尽**: 检查 Google Cloud 配额
### Qwen
**凭证位置**: `~/.config/qwen/credentials.json`
**常见问题**:
1. **账户未开通**: 开通阿里云通义千问服务
2. **配额用尽**: 检查阿里云账户余额
3. **区域限制**: 确认服务区域设置
## 手动修复
### 重置凭证
1. 删除凭证文件
2. 重新登录 AI 客户端
3. 在 ProxyCast 中刷新凭证
### 手动添加凭证
如果自动检测失败:
1. 从 AI 客户端获取 Token
2. 在 ProxyCast 中手动添加
3. 测试凭证有效性
## 日志查看
查看详细错误信息:
1. 进入设置 > 高级
2. 设置日志级别为 Debug
3. 重现问题
4. 查看日志文件
@@ -0,0 +1,176 @@
---
title: 连接问题
description: 网络和代理故障排除
navigation:
icon: i-heroicons-signal
---
# 连接问题
本页帮助你诊断和解决网络连接相关的问题。
## 诊断步骤
### 1. 检查网络连接
```bash
# 测试网络连通性
ping api.anthropic.com
ping api.openai.com
```
### 2. 检查 DNS 解析
```bash
# 测试 DNS 解析
nslookup api.anthropic.com
```
### 3. 测试 HTTPS 连接
```bash
# 测试 HTTPS 连接
curl -I https://api.anthropic.com
```
## 常见问题
### 连接超时
**症状**: 请求长时间无响应后超时
**可能原因**:
- 网络不稳定
- 防火墙阻止
- Provider 服务不可用
**解决方案**:
1. 检查网络连接
2. 检查防火墙设置
3. 尝试使用代理
4. 增加超时时间
### DNS 解析失败
**症状**: 无法解析域名
**解决方案**:
1. 检查 DNS 设置
2. 尝试使用公共 DNS(如 8.8.8.8)
3. 清除 DNS 缓存
```bash
# macOS
sudo dscacheutil -flushcache
# Windows
ipconfig /flushdns
```
### SSL/TLS 错误
**症状**: 证书验证失败
**可能原因**:
- 系统时间不正确
- 根证书过期
- 代理拦截 HTTPS
**解决方案**:
1. 同步系统时间
2. 更新系统证书
3. 检查代理设置
## 代理配置
### 设置代理
在 ProxyCast 设置中配置代理:
1. 进入 **设置** > **高级**
2. 配置代理设置:
| 选项 | 说明 |
|------|------|
| HTTP 代理 | HTTP 代理地址 |
| HTTPS 代理 | HTTPS 代理地址 |
| 不代理地址 | 排除的地址列表 |
### 代理格式
```
http://proxy.example.com:8080
http://user:password@proxy.example.com:8080
socks5://proxy.example.com:1080
```
### 环境变量
也可以通过环境变量设置:
```bash
export HTTP_PROXY=http://proxy.example.com:8080
export HTTPS_PROXY=http://proxy.example.com:8080
export NO_PROXY=localhost,127.0.0.1
```
## Provider 特定问题
### Anthropic API
**端点**: `https://api.anthropic.com`
**常见问题**:
- 某些地区可能需要代理
- 检查 API 状态页面
### Google Gemini
**端点**: `https://generativelanguage.googleapis.com`
**常见问题**:
- 需要 Google Cloud 项目
- 检查 API 是否启用
### 阿里云 Qwen
**端点**: `https://dashscope.aliyuncs.com`
**常见问题**:
- 海外访问可能需要代理
- 检查区域设置
## 防火墙设置
### 允许的端口
确保防火墙允许以下端口:
| 端口 | 用途 |
|------|------|
| 443 | HTTPS 请求 |
| 9090 | ProxyCast API(默认) |
### macOS 防火墙
1. 系统偏好设置 > 安全性与隐私
2. 防火墙 > 防火墙选项
3. 允许 ProxyCast 接收传入连接
### Windows 防火墙
1. 控制面板 > Windows Defender 防火墙
2. 允许应用通过防火墙
3. 添加 ProxyCast
## 调试模式
启用详细日志:
1. 进入 **设置** > **高级**
2. 设置日志级别为 **Debug**
3. 重现问题
4. 查看网络请求日志
@@ -0,0 +1,229 @@
---
title: 架构说明
description: ProxyCast 技术架构
navigation:
icon: i-heroicons-cube-transparent
---
# 架构说明
ProxyCast 是基于 Tauri 2.0 构建的跨平台桌面应用。
## 技术栈
| 层级 | 技术 |
|------|------|
| 前端 | React + TypeScript + Tailwind CSS |
| 后端 | Rust + Tauri 2.0 |
| 构建 | Vite |
| 包管理 | pnpm |
## Tauri 前后端通信
### 架构图
```
┌─────────────────────────────────────────────────────────┐
│ Frontend (React) │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ Dashboard │ │ Settings │ │ Monitoring │ │
│ └──────┬──────┘ └──────┬──────┘ └──────┬──────┘ │
│ │ │ │ │
│ └────────────────┼────────────────┘ │
│ │ │
│ ┌─────▼─────┐ │
│ │ Tauri │ │
│ │ Commands │ │
│ └─────┬─────┘ │
└──────────────────────────┼──────────────────────────────┘
│ IPC
┌──────────────────────────┼──────────────────────────────┐
│ ┌─────▼─────┐ │
│ │ Command │ │
│ │ Handler │ │
│ └─────┬─────┘ │
│ │ │
│ ┌───────────────────────┼───────────────────────┐ │
│ │ │ │ │
│ ▼ ▼ ▼ │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │Provider │ │Credential│ │ Router │ │
│ │ Manager │ │ Pool │ │ │ │
│ └────┬────┘ └────┬────┘ └────┬────┘ │
│ │ │ │ │
│ └──────────────────┼──────────────────────┘ │
│ │ │
│ ┌─────▼─────┐ │
│ │ API Server│ │
│ │ (Axum) │ │
│ └───────────┘ │
│ Backend (Rust) │
└───────────────────────────────────────────────────────┘
```
### 通信方式
前端通过 Tauri Commands 调用后端:
```typescript
// 前端调用
import { invoke } from '@tauri-apps/api/core';
const result = await invoke('get_credentials');
```
```rust
// 后端处理
#[tauri::command]
async fn get_credentials() -> Result<Vec<Credential>, String> {
// 处理逻辑
}
```
## Rust 后端模块
### 模块结构
```
src-tauri/src/
├── main.rs # 入口
├── lib.rs # 库导出
├── commands/ # Tauri 命令
│ ├── mod.rs
│ ├── config_cmd.rs
│ ├── credential_cmd.rs
│ └── server_cmd.rs
├── credential/ # 凭证管理
│ ├── mod.rs
│ ├── kiro.rs
│ ├── gemini.rs
│ └── qwen.rs
├── provider/ # Provider 实现
│ ├── mod.rs
│ ├── anthropic.rs
│ ├── openai.rs
│ └── gemini.rs
├── router/ # 请求路由
│ ├── mod.rs
│ └── rules.rs
├── converter/ # 协议转换
│ ├── mod.rs
│ ├── openai_to_claude.rs
│ └── claude_to_openai.rs
├── server/ # API Server
│ ├── mod.rs
│ ├── handlers.rs
│ └── middleware.rs
└── config/ # 配置管理
├── mod.rs
└── yaml.rs
```
### 核心模块
#### Credential 模块
负责凭证的加载、刷新和管理:
```rust
pub struct CredentialManager {
credentials: Vec<Credential>,
refresh_scheduler: RefreshScheduler,
}
impl CredentialManager {
pub async fn load_credentials(&mut self) -> Result<()>;
pub async fn refresh_token(&mut self, id: &str) -> Result<()>;
pub fn get_available(&self) -> Vec<&Credential>;
}
```
#### Provider 模块
实现不同 AI 服务的调用:
```rust
#[async_trait]
pub trait Provider: Send + Sync {
async fn chat_completion(&self, request: ChatRequest) -> Result<ChatResponse>;
async fn stream_completion(&self, request: ChatRequest) -> Result<impl Stream<Item = StreamChunk>>;
}
```
#### Router 模块
根据规则路由请求:
```rust
pub struct Router {
rules: Vec<RoutingRule>,
default_provider: String,
}
impl Router {
pub fn route(&self, model: &str) -> RoutingResult;
}
```
#### Converter 模块
在不同 API 格式之间转换:
```rust
pub fn openai_to_claude(request: OpenAIRequest) -> ClaudeRequest;
pub fn claude_to_openai(response: ClaudeResponse) -> OpenAIResponse;
```
## 请求处理流程
```
1. 客户端请求 → API Server (Axum)
│
2. 认证检查 ────────┤
│
3. 路由匹配 ────────┤ Router
│
4. 凭证选择 ────────┤ Credential Pool
│
5. 协议转换 ────────┤ Converter
│
6. Provider 调用 ───┤ Provider
│
7. 响应转换 ────────┤ Converter
│
8. 返回响应 ────────┘
```
## 数据流
### 请求流程
1. 前端发起 API 请求
2. Axum 服务器接收请求
3. 中间件进行认证和日志
4. Router 根据模型名称选择 Provider
5. Credential Pool 选择可用凭证
6. Converter 转换请求格式
7. Provider 调用实际 AI 服务
8. Converter 转换响应格式
9. 返回响应给客户端
### 事件流程
```
后端事件 → Tauri Event → 前端监听 → UI 更新
```
```rust
// 后端发送事件
app.emit("credential-updated", payload)?;
```
```typescript
// 前端监听
import { listen } from '@tauri-apps/api/event';
await listen('credential-updated', (event) => {
// 更新 UI
});
```
@@ -0,0 +1,200 @@
---
title: 贡献指南
description: 如何为 ProxyCast 做贡献
navigation:
icon: i-heroicons-heart
---
# 贡献指南
感谢你对 ProxyCast 的关注!本指南帮助你开始贡献。
## 开发环境设置
### 前置要求
| 工具 | 版本 |
|------|------|
| Node.js | >= 18 |
| pnpm | >= 8 |
| Rust | >= 1.70 |
| Tauri CLI | >= 2.0 |
### 安装依赖
```bash
# 克隆仓库
git clone https://github.com/aiclientproxy/proxycast.git
cd proxycast
# 安装前端依赖
pnpm install
# 安装 Tauri CLI
cargo install tauri-cli
```
### 开发模式
```bash
# 启动开发服务器
pnpm tauri dev
```
### 构建
```bash
# 构建发布版本
pnpm tauri build
```
## 代码规范
### TypeScript/React
- 使用 ESLint 和 Prettier
- 遵循 React Hooks 规范
- 组件使用函数式写法
```bash
# 检查代码
pnpm lint
# 格式化代码
pnpm format
```
### Rust
- 使用 rustfmt 格式化
- 使用 clippy 检查
- 遵循 Rust API Guidelines
```bash
# 格式化
cargo fmt
# 检查
cargo clippy
```
### 提交规范
使用 Conventional Commits:
```
feat: 添加新功能
fix: 修复 bug
docs: 更新文档
style: 代码格式调整
refactor: 代码重构
test: 添加测试
chore: 构建/工具变更
```
示例:
```
feat(credential): 添加 Qwen 凭证支持
fix(router): 修复路由规则匹配问题
docs: 更新安装指南
```
## PR 流程
### 1. Fork 仓库
在 GitHub 上 Fork 项目到你的账户。
### 2. 创建分支
```bash
git checkout -b feature/your-feature
```
### 3. 开发和测试
- 编写代码
- 添加测试
- 确保所有测试通过
### 4. 提交代码
```bash
git add .
git commit -m "feat: your feature description"
git push origin feature/your-feature
```
### 5. 创建 PR
1. 在 GitHub 上创建 Pull Request
2. 填写 PR 描述
3. 等待 Review
### PR 检查清单
- [ ] 代码通过 lint 检查
- [ ] 添加了必要的测试
- [ ] 更新了相关文档
- [ ] 提交信息符合规范
## 项目结构
```
proxycast/
├── src/ # 前端源码
│ ├── components/ # React 组件
│ ├── pages/ # 页面组件
│ ├── hooks/ # 自定义 Hooks
│ ├── lib/ # 工具函数
│ └── styles/ # 样式文件
├── src-tauri/ # Rust 后端
│ ├── src/ # 源码
│ ├── Cargo.toml # 依赖配置
│ └── tauri.conf.json # Tauri 配置
├── docs/ # 文档
└── public/ # 静态资源
```
## 测试
### 前端测试
```bash
# 运行测试
pnpm test
# 运行测试并生成覆盖率
pnpm test:coverage
```
### 后端测试
```bash
cd src-tauri
cargo test
```
## 问题反馈
### 报告 Bug
1. 搜索是否已有相同问题
2. 创建新 Issue
3. 提供详细信息:
- 操作系统和版本
- ProxyCast 版本
- 复现步骤
- 错误日志
### 功能建议
1. 创建 Feature Request Issue
2. 描述功能需求
3. 说明使用场景
## 社区
- GitHub Issues: 问题反馈
- GitHub Discussions: 讨论交流
+254
View File
@@ -0,0 +1,254 @@
---
title: 构建指南
description: 本地开发和构建发布
navigation:
icon: i-heroicons-wrench-screwdriver
---
# 构建指南
本指南介绍如何在本地开发和构建 ProxyCast。
## 本地开发
### 环境准备
1. **安装 Node.js**
```bash
# 使用 nvm 安装
nvm install 18
nvm use 18
```
2. **安装 pnpm**
```bash
npm install -g pnpm
```
3. **安装 Rust**
```bash
# macOS/Linux
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# Windows
# 下载并运行 rustup-init.exe
```
4. **安装 Tauri 依赖**
**macOS:**
```bash
xcode-select --install
```
**Windows:**
- 安装 Visual Studio Build Tools
- 安装 WebView2
**Linux:**
```bash
sudo apt install libwebkit2gtk-4.1-dev build-essential curl wget file libssl-dev libayatana-appindicator3-dev librsvg2-dev
```
### 启动开发
```bash
# 安装依赖
pnpm install
# 启动开发模式
pnpm tauri dev
```
开发模式特性:
- 前端热重载
- Rust 代码变更自动重新编译
- 开发者工具可用
### 开发配置
#### 前端配置
`vite.config.ts`:
```typescript
export default defineConfig({
plugins: [react()],
server: {
port: 1420,
strictPort: true,
},
});
```
#### Tauri 配置
`src-tauri/tauri.conf.json`:
```json
{
"build": {
"devPath": "http://localhost:1420",
"distDir": "../dist"
}
}
```
## 构建发布
### 构建命令
```bash
# 构建当前平台
pnpm tauri build
# 构建 debug 版本
pnpm tauri build --debug
```
### 构建产物
| 平台 | 产物位置 |
|------|----------|
| macOS | `src-tauri/target/release/bundle/dmg/` |
| Windows | `src-tauri/target/release/bundle/msi/` |
| Linux | `src-tauri/target/release/bundle/deb/` |
### 跨平台构建
#### macOS 构建
```bash
# 构建 Apple Silicon
pnpm tauri build --target aarch64-apple-darwin
# 构建 Intel
pnpm tauri build --target x86_64-apple-darwin
# 构建 Universal
pnpm tauri build --target universal-apple-darwin
```
#### Windows 构建
```bash
# 构建 64 位
pnpm tauri build --target x86_64-pc-windows-msvc
```
#### Linux 构建
```bash
# 构建 deb 包
pnpm tauri build --target x86_64-unknown-linux-gnu
```
## 版本管理
### 更新版本号
1. 更新 `package.json`:
```json
{
"version": "1.0.1"
}
```
2. 更新 `src-tauri/Cargo.toml`:
```toml
[package]
version = "1.0.1"
```
3. 更新 `src-tauri/tauri.conf.json`:
```json
{
"version": "1.0.1"
}
```
### 创建发布
```bash
# 创建 tag
git tag v1.0.1
git push origin v1.0.1
```
## CI/CD
### GitHub Actions
项目使用 GitHub Actions 自动构建:
- Push 到 main 分支触发构建
- 创建 tag 触发发布
### 构建矩阵
| 平台 | 架构 | Runner |
|------|------|--------|
| macOS | arm64 | macos-latest |
| macOS | x64 | macos-13 |
| Windows | x64 | windows-latest |
| Linux | x64 | ubuntu-latest |
## 调试
### 前端调试
开发模式下按 `F12` 打开开发者工具。
### 后端调试
```bash
# 启用 Rust 日志
RUST_LOG=debug pnpm tauri dev
```
### 日志位置
| 平台 | 路径 |
|------|------|
| macOS | `~/Library/Logs/ProxyCast/` |
| Windows | `%APPDATA%\ProxyCast\logs\` |
| Linux | `~/.local/share/proxycast/logs/` |
## 常见问题
### 构建失败
1. 确保所有依赖已安装
2. 清理构建缓存:
```bash
# 清理前端
rm -rf node_modules dist
pnpm install
# 清理 Rust
cd src-tauri
cargo clean
```
### 签名问题
macOS 构建需要代码签名:
```bash
# 设置签名身份
export APPLE_SIGNING_IDENTITY="Developer ID Application: ..."
```
Windows 构建可选签名:
```bash
# 设置签名证书
export TAURI_SIGNING_PRIVATE_KEY="..."
```
+57
View File
@@ -0,0 +1,57 @@
---
title: 免责声明
description: 使用条款和法律声明
navigation:
icon: i-heroicons-scale
---
# 免责声明
## 使用目的
ProxyCast 是一款开源工具,其设计初衷是帮助用户**充分利用已订阅的 AI 服务 Token**,在更多场景中发挥其价值。
::alert{type="warning"}
**重要提示**: 本工具仅限于个人合法使用,严禁用于任何非法盈利目的。
::
## 合法使用范围
本工具的合法使用场景包括但不限于:
- ✅ 个人学习和研究
- ✅ 个人开发项目中使用已订阅的 AI 服务
- ✅ 在不同开发工具间复用个人订阅额度
- ✅ 提高个人工作效率
## 禁止行为
以下行为严格禁止:
- ❌ 将本工具用于商业盈利目的
- ❌ 转售或分享他人的 AI 服务凭证
- ❌ 违反 AI 服务提供商的服务条款
- ❌ 任何形式的非法活动
## 责任声明
1. **用户责任**: 用户应确保其使用行为符合所在地区的法律法规,以及相关 AI 服务提供商的服务条款。
2. **风险自担**: 使用本工具所产生的任何后果由用户自行承担,包括但不限于账户封禁、服务终止等。
3. **无担保**: 本工具按"现状"提供,不提供任何明示或暗示的担保。
4. **免责**: 开发者不对因使用本工具而导致的任何直接或间接损失承担责任。
## 服务条款遵守
使用本工具时,请务必遵守以下服务提供商的使用条款:
- [Anthropic 使用政策](https://www.anthropic.com/policies)
- [Google AI 服务条款](https://policies.google.com/terms)
- [阿里云服务条款](https://terms.alibabacloud.com/)
- [OpenAI 使用政策](https://openai.com/policies)
## 联系我们
如对本声明有任何疑问,请通过 GitHub Issues 联系我们。
+137
View File
@@ -0,0 +1,137 @@
---
title: ProxyCast
description: 把你的 AI 客户端额度用到任何地方
navigation: false
layout: page
---
::hero
---
announcement:
title: 🎉 ProxyCast v1.0 发布
icon: i-heroicons-megaphone
to: /introduction/overview
actions:
- label: 快速开始
icon: i-heroicons-rocket-launch
to: /introduction/quickstart
color: primary
- label: GitHub
icon: i-simple-icons-github
to: https://github.com/aiclientproxy/proxycast
target: _blank
color: neutral
---
#title
ProxyCast
#description
把你的 AI 客户端额度用到任何地方。一款基于 Tauri 的桌面应用,将 Kiro、Gemini CLI、Qwen 等 AI 客户端凭证转换为标准 OpenAI/Claude 兼容 API。
::
::alert{type="warning"}
**免责声明**: 本工具仅限于个人合法使用,严禁用于非法盈利目的。初衷是帮助用户充分利用已订阅的 AI 服务 Token。[查看完整声明](/legal/disclaimer)
::
::card-group
::card
---
title: 凭证池管理
icon: i-heroicons-key
to: /user-guide/credential-pool
---
支持多种 AI 客户端凭证的统一管理,包括 Kiro、Gemini CLI、Qwen、Claude Code 等。
::
::card
---
title: 智能路由
icon: i-heroicons-arrows-right-left
to: /user-guide/smart-routing
---
基于负载均衡、优先级、健康检查的智能请求路由策略。
::
::card
---
title: 容错配置
icon: i-heroicons-shield-check
to: /user-guide/resilience
---
内置熔断器、重试机制、超时控制,确保服务稳定性。
::
::card
---
title: 配置切换
icon: i-heroicons-cog-6-tooth
to: /user-guide/config-switch
---
一键切换 Claude Code、Codex、Gemini CLI 等客户端配置。
::
::
::section
#title
核心特性
#description
ProxyCast 提供完整的 AI 客户端代理解决方案
::card-group
::card
---
title: 仪表盘
icon: i-heroicons-chart-bar
to: /user-guide/dashboard
---
实时监控请求统计、凭证状态、系统健康度。
::
::card
---
title: 监控中心
icon: i-heroicons-eye
to: /user-guide/monitoring
---
详细的请求日志、性能指标、错误追踪。
::
::card
---
title: API Server
icon: i-heroicons-server
to: /user-guide/api-server
---
OpenAI/Claude 兼容的 API 服务端点。
::
::card
---
title: MCP 支持
icon: i-heroicons-puzzle-piece
to: /user-guide/mcp
---
Model Context Protocol 集成支持。
::
::card
---
title: Prompts 管理
icon: i-heroicons-document-text
to: /user-guide/prompts
---
系统提示词模板管理与复用。
::
::card
---
title: Skills 技能
icon: i-heroicons-sparkles
to: /user-guide/skills
---
可扩展的技能模块系统。
::
::
::
+15
View File
@@ -0,0 +1,15 @@
export default {
extends: ["docus"],
app: {
baseURL: "/proxycast/",
},
image: {
provider: "none",
},
robots: {
robotsTxt: false,
},
llms: {
domain: "https://proxycast.local",
},
};
+14
View File
@@ -0,0 +1,14 @@
{
"name": "proxycast-docs",
"scripts": {
"dev": "nuxt dev --extends docus",
"build": "nuxt build --extends docus",
"generate": "nuxt generate --extends docus"
},
"dependencies": {
"docus": "latest",
"better-sqlite3": "^12.2.0",
"nuxt": "^4.2.1",
"mermaid": "^11.4.0"
}
}