大模型网关
业务面对的是平台模型名和统一接口,而不是某一个供应商账号。协议适配、渠道选路、账号调度与异常切换由平台完成。
| 问题 | 普通中转 | Ai Lubricant 大模型网关 |
|---|---|---|
| 协议转换丢字段 | 全部归一成内部格式再转出,thinking 签名、缓存标记被丢弃 | 同协议直接原样转发(直通),只有跨协议才做字段映射 |
| 故障账号反复试 | 轮询/权重随机,故障账号被反复命中 | 多因子评分 + 冻结 + 熔断,评分全零直接回退或 429 |
| 限流与重试自己写 | 客户端自己处理 429 和退避 | 双层限流(Key 级 + 账号级)+ 失败分类重试 + 模型组回退 |
| usage 口径不一 | 直接透传上游自报 total,各家字段名不同 | 出口层统一归一:total = prompt + completion 重算,不采信上游 |
| 特定出口/地区 IP | 另购代理服务 | 四种代理模式,含用自己节点当出口的 node 模式 |
统一入口
统一入口
截图待补
把截图放到该路径,或把
把截图放到该路径,或把
src 改成实际图片地址assets/screenshots/cap-llm-server/entry.png| 入口 | 协议 | 处理 |
|---|---|---|
/v1/chat/completions | OpenAI Chat | 标准链路 |
/v1/responses | OpenAI Responses | 同协议直通 / 跨协议转换 |
/v1/messages | Anthropic Messages | 同协议直通 / 跨协议转换 |
/v1/images/generations · /v1/videos/generations · /v1/audio/speech | 媒体 | 按输出模态路由 |
每类都注册带 /v1 前缀和不带前缀两个路径。调用方式见 API 接入指南。
功能:同协议直通,不丢字段
同协议直通,不丢字段
截图待补
把截图放到该路径,或把
把截图放到该路径,或把
src 改成实际图片地址assets/screenshots/cap-llm-server/passthrough.png| 客户端请求 | 上游渠道协议 | 平台行为 |
|---|---|---|
| Anthropic Messages | Anthropic | 原样直通,保留 thinking 签名与 cache_control |
| Anthropic Messages | OpenAI | 转为 OpenAI 请求,响应再转回 Anthropic 语义 |
| OpenAI Responses | Responses | 原样直通,保留 reasoning 与加密推理内容 |
| OpenAI Chat | Anthropic / Responses | 按目标协议构造,响应与流式帧转回 OpenAI 形态 |
为什么这点值钱推理签名、缓存标记这类字段一旦在中转层被丢弃,上游的缓存命中和思考连续性就失效——账单和效果同时变差。
功能:客户端模板
客户端模板
截图待补
把截图放到该路径,或把
把截图放到该路径,或把
src 改成实际图片地址assets/screenshots/cap-llm-server/preset.pngClaude Code、Codex、Cursor、Cline 等编码工具对上游有各自的请求约定。渠道可指定客户端模板,平台按目标客户端补齐协议、headers 和默认字段:
| 预设 | 目标协议 | 补齐的默认字段(节选) |
|---|---|---|
claude-code | Anthropic Messages | 缓存标记、thinking 语义 |
codex-cli / codex-tui | OpenAI Responses | instructions、text.verbosity、store=false、reasoning.effort、prompt_cache_key、每请求会话身份(client_metadata 与 header 同源) |
gemini-cli | Gemini | path 模板占位符 |
cursor / cline / roo-code / opencode / workbuddy | OpenAI Chat | 按对应客户端形态构造 |
- 只补不覆盖:仅当客户端未显式提供时才填入默认值,不污染调用方意图。
- 思考参数按协议表达:关闭推理时省略参数而非传空值。
- 客户端识别:依次从 header(User-Agent)、body 的
client_type/client_preset、system 首条消息特征判定。
这是渠道侧配置,不是调用方负担客户端模板由管理员在渠道上配置。作为 API 调用方,你按标准协议请求即可。
功能:模型监控与模型列表自动更新
模型监控与模型列表自动更新
截图待补
把截图放到该路径,或把
把截图放到该路径,或把
src 改成实际图片地址assets/screenshots/cap-llm-server/monitor.png| 能力 | 行为 |
|---|---|
| 免费模型监控 | 对免费模型/免费账号做可用性与失败状态观察;免费模型不靠价格字段猜测,按真实上游返回判断 |
| 模型列表刷新 | 渠道账号初始化、配置变更或手动刷新时同步上游模型列表;后台按 model_refresh.interval_minutes 周期自动刷新 |
| 模型元数据 | 同步模型 ID、能力与输出模态;图片/视频/语音按模型元数据判定,不靠渠道开关硬猜 |
| 异常处理 | 上游模型列表失败不影响已有路由;管理员可在渠道页手动刷新并查看结果 |
功能:多因子实时评分选路
多因子实时评分选路
截图待补
把截图放到该路径,或把
把截图放到该路径,或把
src 改成实际图片地址assets/screenshots/cap-llm-server/selection.png| 评分维度 | 解决的实际问题 |
|---|---|
| 额度余量与限流余量 | RPM/TPM/并发用尽的账号直接零分,不浪费一次尝试 |
| 连续失败指数降权 | 失败越多权重越低(intelligent 0.8ⁿ、fast 0.7ⁿ),一次成功立即清零 |
| 窗口失败熔断 | 5 分钟内阈值 2 次触发冷却,基数/步长 15s、上限 120s |
| 会话亲和 / 反亲和 | 同会话优先回上次成功账号命中缓存;失败过的降权 |
| 上游模型亲和 | 复用同一上游模型保住 prompt cache |
| 计费模式滑动偏好 | 按次计费账号按 prompt token 量线性偏好(约 2000 token 交叉) |
| 连续成功让权 | 避免单账号被打爆,成功若干次后让位给池中其他账号 |
| 短期成功率与延迟 | 把最近真实表现纳入评分,快且稳的账号自然胜出 |
六种渠道选路策略,按 API Key 分别指定
顺序 / 成员随机 / 按模型随机 / 全局随机 / 智能(默认,多因子评分)/ 快速智能(速度主导并保留少量探索)。同一套渠道池可同时服务"要最稳"和"要最快"两类业务。
评分全零就不再试探所有候选被冻结、熔断或额度耗尽时不做恢复性探测,直接交给模型组回退或返回 429。
功能:多种冻结 + 双层限流重试
多种冻结 + 双层限流重试
截图待补
把截图放到该路径,或把
把截图放到该路径,或把
src 改成实际图片地址assets/screenshots/cap-llm-server/freeze.png- 四种冻结对象 × 多种周期:账号 / 账号+模型 / 渠道 / 渠道+模型四个对象维度,固定时长(含秒级 TTL)/ 当天 / 按周 / 按月 / 永久多种周期组合,可由状态码、响应头、错误码或模型匹配触发。
- 可配冻结策略(freeze_policy):渠道级规则表,按状态码/响应头/错误码/模型自由组合匹配,还支持「失败时刷新冻结窗口」等开关——冻结方式不止九种预设,规则可自由扩展。
- 非重试 4xx 也走冻结:403 命中规则当天冻结该账号,而不是每次请求都撞一次。
- 双层限流 + 8 种速率限制:Key 级 RPM / 每 5 小时请求数 / RPD / TPM / 每日 Token / 每周请求 / 每周 Token / 并发请求,外加 IP 个数上限与刷新窗口——维度比常见 RPM/TPM 两项多得多,能贴合各家上游的真实配额形态。
- 失败分类而非一律重试:参数错误原样透传不浪费候选;限流与 5xx 才切账号;已输出内容的流式不重推;账号级重试 + 模型组回退管线(visited 防环)。
- 上下文超限归一:prompt_too_long / context_length_exceeded 统一成 400,不当作可重试错误反复消耗候选。
功能:自定义代码渠道 + 多协议链路
自定义代码渠道 + 多协议链路
截图待补
把截图放到该路径,或把
把截图放到该路径,或把
src 改成实际图片地址assets/screenshots/cap-llm-server/custom.png不标准的上游不用等平台发版:在渠道「源码」Tab 贴一个 spec 类即可接入,保存即热更新。只写要改变的部分,其余沿用配置驱动实现。
| 可配置项 | 用途 |
|---|---|
| 代码渠道(spec 类) | 贴 Python 类接任意上游:兼容接口、设备码、账密登录、非标 SSE、动态地址;13 类场景各有单钩子写法 |
| base URL、对话/模型列表路径 | 接入任何路径约定不同的兼容服务 |
| 认证头风格 | Bearer、x-api-key、自定义头三种风格 |
| 多协议链路(chat_protocols) | 同一渠道配多条协议行,各自协议/路径/流式形态/客户端模板;按请求协议同协议优先选行——同一渠道同时服务 OpenAI / Anthropic / Responses / Gemini 客户端成为可能 |
| 渠道标签管理 | 渠道与账号打彩色标签,管理端按标签筛选(含「未设置」过滤);API Key 按渠道标签白/黑名单收窄可用范围,子 Key 自动继承父 Key 约束 |
| 客户端模板(可按模型覆盖) | 整体模拟某客户端,个别模型还能单独覆盖 |
| 图片/视频/语音路径与开关 | 媒体能力按上游实际情况分别启用 |
| 模型别名与白名单 | 把上游模型名映射成对外暴露名并限制范围 |
功能:四种代理模式
四种代理模式
截图待补
把截图放到该路径,或把
把截图放到该路径,或把
src 改成实际图片地址assets/screenshots/cap-llm-server/proxy.png| 模式 | 行为 | 典型场景 |
|---|---|---|
network | 标准 HTTP/HTTPS 代理,支持账密注入 | 常规代理服务器 |
url_prefix | 把上游完整 URL 拼到前缀之后转发 | Cloudflare Workers 类反代 |
direct | 显式强制直连,不走任何代理 | 明确要求本机出网 |
node | 通过你自己的执行节点出网,用那台机器的 IP | 需特定地区/内网出口,又不想另买代理 |
- 按账号绑定:每个渠道账号引用代理池条目,不同账号走不同出口。
- 热更新不丢运行态:修改后原地刷新运行中的账号,限流计数、认证状态与冷却记录保留。
搭建方式:Cloudflare Workers(url_prefix 模式)
- 在 Cloudflare Dashboard 打开 Workers & Pages → Create application → Create Worker,创建一个新的 Worker。
- 下载本页附带的
cloudflare-url-proxy-worker.js,把其中的 Worker 代码粘贴到编辑器并部署。 - 为 Worker 绑定一个专用域名或 routes,确认 HTTPS 地址,例如
https://proxy.example.com。不要把带真实上游密钥的 URL 写进公开代码或日志。 - 在管理端进入代理池,新增代理条目:模式选
url_prefix,URL 填 Worker 地址(不要在末尾加/),用户名和密码留空;再把条目绑定到需要经过该出口的渠道账号。 - 先用低风险渠道发起一次模型列表或测试请求,检查 Worker 日志、上游响应状态和流式响应是否完整,再投入生产流量。
代理池条目
模式:url_prefix
URL: https://proxy.example.com
用户名:留空
密码:留空
安全与兼容性Worker 必须限制可用来源、目标域名和请求方法,并妥善处理超时、响应头、SSE 流和错误状态;否则可能变成开放代理或泄露上游凭据。Cloudflare Worker 的出口 IP、配额、请求体/响应体限制和上游服务条款也需要单独确认。管理端「添加代理」弹框选中 URL 前缀模式时,会链接回本小节获取 Worker 源码与部署步骤。
功能:用量口径归一
用量口径归一
截图待补
把截图放到该路径,或把
把截图放到该路径,或把
src 改成实际图片地址assets/screenshots/cap-llm-server/usage.png- total = 输入 + 输出。缓存读、缓存写是输入 token 明细子集,不额外计入 total;不采信上游自报 total,一律用 prompt + completion 重算。
- 零 completion 兜底(协议无关):usage 里 completion 为 0 但响应确有内容时,删除该 usage 让后续估算兜底。
- 口径一致:管理端面板与主链路使用同一套 usage 归一逻辑。
功能:灵活测试配置与上游拒绝
灵活测试配置与上游拒绝
截图待补
把截图放到该路径,或把
把截图放到该路径,或把
src 改成实际图片地址assets/screenshots/cap-llm-server/testing.png测活不是只发一句 "hi"。测试场景类型可自定义(默认八类:聊天/流式/工具/思考/多轮/图片/视频/语音,管理员可在「渠道配置 → 测试类型」增改),还能:
- 模拟真实客户端:测试时指定按哪种客户端形态发请求(claude-code / codex-cli / opencode 等),与真实流量同源,不是裸 curl。
- 指定协议链路:走渠道配置的哪条协议行,测试 body/header/parser 按该协议构造。
- 上游拒绝判断:请求发送前先过
check_message放行判定(模型、消息数、内容限制等),上游不支持的组合提前拒绝、不浪费一次计费请求;免费账号 403 等不可用状态也会被探测并剔除。 - 自动解冻:测试通过自动解除该账号运行时冻结;另有定时巡检、模型列表刷新与余额探测。
功能:请求级实时记录
请求级实时记录
截图待补
把截图放到该路径,或把
把截图放到该路径,或把
src 改成实际图片地址assets/screenshots/cap-llm-server/record.png一次客户端调用对应一个 request_id,其下每次渠道尝试单独成行并按序编号:哪个账号试过、走什么路径、成功还是失败、首 Token 多久、各类 Token 各多少,都能按 request_id 追到完整序列。PostgreSQL 是权威存储;ClickHouse 只做大字段 payload 旁路双写,失败只丢批、不影响主链路。