Router 接口
本文档按当前后端代理逻辑同步整理,包含模型代理与仪表盘查询入口。
基础信息
- 启动模式域名:
- SaaS 单租户:
https://api.xairouter.com - BYOK 多租户:
https://api.xaicontrol.com
- SaaS 单租户:
- 文中示例统一使用
$BASE_URL,先按模式设置:
export BASE_URL="https://api.xairouter.com" # SaaS
# export BASE_URL="https://api.xaicontrol.com" # BYOK
- 认证:
Authorization: Bearer sk-Xvs...
curl ${BASE_URL}/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"gpt-4o-mini","messages":[{"role":"user","content":"hi"}]}'
兼容接口(代理)
当前代码中已覆盖的常见入口包括:
OpenAI 兼容
/v1/chat/completions/v2/chat/completions/chat/completions/v1/responses/responses/v1/embeddings/embeddings/v1/images/generations/v1/images/edits/v1/images/variations/v1/audio/transcriptions/v1/audio/translations/v1/realtime/client_secrets/v1/realtime(WebSocket)/v1/moderations/v1/threads/v1/files/v1/models、/models(模型列表)
Anthropic 兼容
/v1/messages/messages
仪表盘接口(同域 GET)
以下查询同样走代理服务域名:
/dashboard/status/dashboard/info/dashboard/live/dashboard/bill/dashboard/logs/dashboard/news/dashboard/models
路由与策略(代码行为)
1) 模型映射
请求模型会按配置映射:
- 用户级
ModelMapper - Owner 级
ModelMapper
映射后模型再参与后续路由与计费。
2) Level 路由
通过 LevelMapper 选择密钥池 Level,并在该 Level 内轮询密钥。
3) 故障转移
支持两层故障转移:
ModelFailover:模型级备用链SwitchOver:Level 级切换
4) ACL 与限速
请求会经过:
- IP 白名单(
AllowIPs) - 资源白名单(
Resources,前缀匹配) - 模型白名单(
AllowModels) - 用户速率限制与模型级
ModelLimits
常用示例
Chat Completions
curl ${BASE_URL}/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-4o-mini",
"messages": [{"role":"user","content":"给我一句问候"}]
}'
Anthropic Messages
curl ${BASE_URL}/v1/messages \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-3-5-sonnet-latest",
"max_tokens": 256,
"messages": [{"role":"user","content":"hello"}]
}'
模型列表
curl ${BASE_URL}/v1/models \
-H "Authorization: Bearer $API_KEY"