系统状态
{{ 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 }}
总请求数
{{ (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.credential_count }}
账户
{{ p.active_cred_count }}
活跃
{{ m }}
+{{ p.models.length-5 }}
{{ p.credential_count }}
账户
{{ p.active_cred_count }}
活跃
{{ m }}
{{ p._testResult.status==='ok'?'连接成功 ('+p._testResult.latency_ms+'ms, '+p._testResult.model_count+'个模型)':p._testResult.error||p._testResult.message||'无可用账户' }}
加载中...
{{ usageModal.data.total_requests }}
总请求
{{ usageModal.data.success }}
成功
{{ usageModal.data.errors }}
失败
{{ usageModal.data.avg_latency_ms }}ms
平均延迟
{{ fmtTokens(usageModal.data.prompt_tokens) }}
输入 Tokens
{{ fmtTokens(usageModal.data.completion_tokens) }}
输出 Tokens
{{ fmtTokens(usageModal.data.total_tokens) }}
总 Tokens
按模型分布
| 模型 | 请求 | 输入 Tokens | 输出 Tokens | 总 Tokens |
| {{ m.model }} | {{ m.requests }} | {{ fmtTokens(m.prompt_tokens) }} | {{ fmtTokens(m.completion_tokens) }} | {{ fmtTokens(m.total_tokens) }} |
时段趋势
{{ (usageModal.data.hourly[0]||{}).hour }}{{ (usageModal.data.hourly[usageModal.data.hourly.length-1]||{}).hour }}
| ID | 别名 | 目标模型 | 目标供应商 | 状态 | 操作 |
| {{ a.id }} |
{{ a.alias }} |
{{ a.target_model }} |
{{ a.target_provider || '自动' }} |
{{ a.enabled?'启用':'停用' }} |
|
| 暂无别名。创建别名可将自定义模型名映射到真实模型。 |
请求
{{ testLatency }}ms
响应
{{ testResult || '响应内容将在此处显示...' }}
🔐
暂无 API Key
当前 /v1/ 接口开放访问。创建 API Key 后将自动启用鉴权。
| ID | 名称 | 分组 | Key | 状态 | 请求数 | 速率限制 | 过期时间 | 最后使用 | 创建时间 | 操作 |
| {{ k.id }} |
{{ k.name }} |
{{ k.group==='commercial'?'商用':'自用' }} |
{{ 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
}'
请求参数
| 参数 | 类型 | 必填 | 说明 |
| model | string | 是 | 模型名称(支持别名映射) |
| messages | array | 是 | 消息列表,每条包含 role 和 content |
| max_tokens | integer | 否 | 最大生成 token 数 |
| stream | boolean | 否 | 是否使用 SSE 流式输出 |
| temperature | number | 否 | 采样温度 (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 状态码 | 类型 | 说明 |
| 401 | authentication_error | API Key 缺失或无效 |
| 400 | invalid_request | 请求参数错误(如缺少 model) |
| 502 | proxy_error | 上游供应商请求失败 |
请求路由 (Conductor)