系统状态
{{ st.status==='running'?'运行中':'N/A' }}
账户总数
{{ st.total_creds || 0 }}
活跃账户
{{ (st.by_status||{}).active || 0 }}
冷却/离线
{{ (st.by_status||{}).cooling || 0 }}
已暂停
{{ (st.by_status||{}).disabled || 0 }}
已作废
{{ (st.by_status||{}).deprecated || 0 }}
{{ groupLabel(gname) }}
{{ info.total||0 }}个 {{ info.active||0 }}活跃
总请求数
{{ (st.request_stats||{}).total_all_time || 0 }}
平均延迟
{{ (st.request_stats||{}).avg_latency_ms || 0 }}ms
成功
{{ (st.request_stats||{}).success_count || 0 }}
失败
{{ (st.request_stats||{}).error_count || 0 }}

账户额度概览

{{ q.provider }}
{{ q.totalAccounts }}个账户 | {{ q.usedReqs }}/{{ q.quotaLabel }}
暂无账户,请到"账户管理"添加 API Key / Token / Cookie 后查看额度

24小时统计

24h 请求
{{ (st.recent_24h||{}).total_requests || 0 }}
24h 成功
{{ (st.recent_24h||{}).success || 0 }}
24h 失败
{{ (st.recent_24h||{}).errors || 0 }}
24h 延迟
{{ (st.recent_24h||{}).avg_latency_ms || 0 }}ms

请求趋势 (24h)

{{ (chartData.hourly[0]||{}).hour||'' }} {{ (chartData.hourly[chartData.hourly.length-1]||{}).hour||'' }}
暂无请求数据。有 API 请求后此处会显示趋势图。

供应商用量 (24h)

{{ ps.provider }}
{{ ps.total }}次 ({{ ps.avg_ms }}ms)
暂无用量数据。有请求后自动统计各供应商使用情况。

巡检状态 (Patrol)

间隔: {{ st.patrol.interval_min || 30 }}分钟 | 上次: {{ fmtTime(st.patrol.last_run) }}
{{ r.provider }} {{ r.cred_name }} 已恢复 仍离线 {{ r.error }} {{ r.latency_ms }}ms
{{ st.patrol&&st.patrol.running?'巡检运行中,暂无结果':'暂无巡检记录' }}

供应商概览

{{ p.name }}
{{ p.type==='official'?'官方':'逆向' }} {{ p.enabled?'启用':'停用' }}
{{ p.model_count }}
模型数
{{ p.credential_count }}
账户
{{ p.active_cred_count }}
活跃
{{ m }} +{{ p.models.length-5 }}
{{ p.name }}
{{ p.type==='official'?'官方':'逆向' }}
{{ p.model_count }}
模型
{{ p.credential_count }}
账户
{{ p.active_cred_count }}
活跃
{{ m }} +{{ p.models.length-10 }} 展开 收起
{{ p._testResult.status==='ok'?'连接成功 ('+p._testResult.latency_ms+'ms, '+p._testResult.model_count+'个模型)':p._testResult.error||p._testResult.message||'无可用账户' }}
ID {{credSortIndicator('id')}}供应商 {{credSortIndicator('display_provider')}}分组名称 {{credSortIndicator('name')}}Key/Token状态 {{credSortIndicator('status')}}离线原因额度 {{credSortIndicator('quota')}}请求数 {{credSortIndicator('request_count')}}Tokens(24h)创建时间 {{credSortIndicator('created_at')}}最后使用 {{credSortIndicator('last_used_at')}}操作
{{ c.id }} {{ c.display_provider||c.provider }} {{ groupLabel(c.group) }} {{ c.name || '-' }} {{ c.key_preview }} {{ statusLabel(c.status) }} {{ c.offline_reason||'-' }} {{ c.quota===-1?'无限':c.quota }} {{ c.request_count }} {{ credUsageMap[c.id]?fmtTokens(credUsageMap[c.id].total_tokens):'-' }} {{ fmtTime(c.created_at) }} {{ fmtTime(c.last_used_at) }}
暂无账户。点击"+ 添加账户"或"批量添加"来导入 API Key / OAuth Token / Cookie 等认证凭证。
支持 OpenAI API Key、Claude API Key、Gemini API Key、Grok SSO Cookie、Kiro/Copilot/Windsurf OAuth Token
共 {{ allFilteredCreds.length }} 条,第 {{ credPage }}/{{ credTotalPages }} 页
{{ credPage }} / {{ credTotalPages }}
模型 ID来源类型可用账户
{{ m.id }} 别名 {{ m._source }} {{ m._isAlias?'别名映射':m._provType }} {{ m._credCount }}
ID别名目标模型目标供应商状态操作
{{ a.id }} {{ a.alias }} {{ a.target_model }} {{ a.target_provider || '自动' }} {{ a.enabled?'启用':'停用' }}
暂无别名。创建别名可将自定义模型名映射到真实模型。
上游调试
外部接口

请求(走 admin/playground,直接测上游模型)

{{ testLatency }}ms

响应

{{ testResult || '响应内容将在此处显示...' }}
ℹ️ 外部接口调试走真实的 /v1/ 端点,需要 API Key 认证,完全模拟外部调用方的体验。
模型列表
聊天补全
图片生成
视频生成
语音合成
健康检查
请先选择 API Key
加载中...
HTTP {{ extStatus }} {{ extLatency }}ms
{{ extResult || '选择 API Key 后自动加载模型列表...' }}
HTTP {{ extStatus }} {{ extLatency }}ms

响应

{{ extResult || '响应内容将在此处显示...' }}
{{ extCurl }}
HTTP {{ extStatus }} {{ extLatency }}ms

响应

{{ extResult || '响应内容将在此处显示...' }}
HTTP {{ extStatus }} {{ extLatency }}ms

响应

{{ extResult || '响应内容将在此处显示...' }}
HTTP {{ extStatus }} {{ extLatency }}ms

响应

{{ extResult || '响应内容将在此处显示...' }}
HTTP {{ extStatus }} {{ extLatency }}ms

响应

{{ extResult || '点击检查按钮...' }}
共 {{ logTotal }} 条
时间供应商模型路径分组Key状态码延迟类型客户端IP错误信息
{{ fmtTime(l.timestamp) }} {{ l.provider }} {{ l.model }} {{ l.request_path||'-' }} {{ l.group||'-' }} {{ l.api_key_hint||'-' }} {{ l.status_code }} {{ l.latency_ms }}ms {{ l.stream?'流式':'普通' }} {{ l.client_ip }} {{ l.error||'-' }}
暂无日志
{{ quotaData.summary.total }}
总账户数
{{ quotaData.summary.unlimited }}
无限制
{{ quotaData.summary.low_quota }}
配额不足
{{ quotaData.summary.exhausted }}
已耗尽
ID{{quotaSortDir==='asc'?' ▲':' ▼'}} 供应商{{quotaSortDir==='asc'?' ▲':' ▼'}} 名称{{quotaSortDir==='asc'?' ▲':' ▼'}} 分组{{quotaSortDir==='asc'?' ▲':' ▼'}} 状态{{quotaSortDir==='asc'?' ▲':' ▼'}} 配额{{quotaSortDir==='asc'?' ▲':' ▼'}} 已用{{quotaSortDir==='asc'?' ▲':' ▼'}} 使用率{{quotaSortDir==='asc'?' ▲':' ▼'}} 最后使用{{quotaSortDir==='asc'?' ▲':' ▼'}} 操作
{{ q.id }} {{ q.display_provider }} {{ q.name }} {{ q.group }} {{ q.status }} ({{ q.offline_reason }}) ∞ 无限 0 (已耗尽) {{ q.quota }} {{ q.request_count.toLocaleString() }}
{{ q.quota_percent.toFixed(0) }}%
-
{{ q.last_used_at ? new Date(q.last_used_at).toLocaleString('zh-CN',{month:'2-digit',day:'2-digit',hour:'2-digit',minute:'2-digit'}) : '-' }}
暂无数据
共 {{ allFilteredQuota.length }} 条,第 {{ quotaPage }}/{{ quotaTotalPages }} 页
{{ quotaPage }} / {{ quotaTotalPages }}
🔐
暂无 API Key
当前 /v1/ 接口开放访问。创建 API Key 后将自动启用鉴权。
ID名称分组Key状态请求数速率限制过期时间最后使用创建时间操作
{{ k.id }} {{ k.name }} {{ groupLabel(k.group) }} {{ k.key }} {{ k.status==='active'?'启用':'禁用' }} {{ k.request_count }} {{ k.rate_limit===0?'无限制':k.rate_limit+'/分钟' }} {{ k.expires_at&&k.expires_at!=='0001-01-01T00:00:00Z'?fmtTime(k.expires_at):'永不' }} {{ fmtTime(k.last_used_at) }} {{ fmtTime(k.created_at) }}
使用方式:在调用 /v1/ 接口时,通过以下任一方式传入 API Key:
• Header: Authorization: Bearer rp-xxx...
• Header: X-API-Key: rp-xxx...
• Query: ?key=rp-xxx...

Base URL

{{ apiBaseURL }}

认证方式

所有 API 请求需要携带 API Key(如已配置):

Authorization: Bearer rp-your-api-key

也支持 X-API-Key Header 或 ?key= Query 参数。

当前未配置 API Key,接口开放访问。

GET /v1/models

获取所有可用模型列表。

curl {{ apiBaseURL }}/v1/models \ -H "Authorization: Bearer YOUR_API_KEY"
响应示例
{ "object": "list", "data": [ {"id": "gpt-4o", "object": "model", "owned_by": "openai"}, {"id": "claude-sonnet-4-20250514", "object": "model", "owned_by": "claude"}, {"id": "my-alias", "object": "model", "owned_by": "alias:openai"} ] }

POST /v1/chat/completions

发送聊天补全请求。完全兼容 OpenAI Chat Completions API 格式。

curl {{ apiBaseURL }}/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "gpt-4o", "messages": [ {"role": "system", "content": "You are a helpful assistant."}, {"role": "user", "content": "Hello!"} ], "max_tokens": 1000, "stream": false }'
请求参数
参数类型必填说明
modelstring模型名称(支持别名映射)
messagesarray消息列表,每条包含 role 和 content
max_tokensinteger最大生成 token 数
streamboolean是否使用 SSE 流式输出
temperaturenumber采样温度 (0-2)
响应示例
{ "id": "chatcmpl-xxx", "object": "chat.completion", "choices": [{ "index": 0, "message": {"role": "assistant", "content": "Hello! How can I help you?"}, "finish_reason": "stop" }], "usage": {"prompt_tokens": 20, "completion_tokens": 10, "total_tokens": 30} }

支持的供应商和模型

{{ p.name }} {{ (p.models||[]).slice(0,5).join(', ') }}{{ (p.models||[]).length>5?' ...(+'+(p.models.length-5)+')':'' }}

集成示例

Python (openai SDK)
from openai import OpenAI client = OpenAI( base_url="{{ apiBaseURL }}/v1", api_key="rp-your-api-key" ) resp = client.chat.completions.create( model="gpt-4o", messages=[{"role": "user", "content": "Hello!"}] ) print(resp.choices[0].message.content)
Node.js (openai SDK)
import OpenAI from 'openai'; const client = new OpenAI({ baseURL: '{{ apiBaseURL }}/v1', apiKey: 'rp-your-api-key' }); const resp = await client.chat.completions.create({ model: 'gpt-4o', messages: [{ role: 'user', content: 'Hello!' }] }); console.log(resp.choices[0].message.content);

错误码

HTTP 状态码类型说明
401authentication_errorAPI Key 缺失或无效
400invalid_request请求参数错误(如缺少 model)
502proxy_error上游供应商请求失败
ID标识 (slug)显示名称描述关联账户数创建时间操作
{{ g.id }} {{ g.name }} {{ g.label }} {{ g.description || '-' }} {{ g.cred_count }} {{ g.created_at }}
暂无分组

请求路由 (Conductor)

最大重试次数
每次请求的最大重试次数
最大尝试账户数
尝试的最大账户数 (0 = 全部)
重试时间预算 (秒)
重试的总时间预算
冷却时间 (秒)
账户失败后的冷却时间
最大失败次数
触发冷却前允许的失败次数
负载均衡策略
账户选择策略
巡检间隔 (分钟)
自动巡检离线账户的间隔时间,检查额度/权限是否恢复
{{ toast.msg }}