SubLaneSubLane

模型目录

按账号发现原生模型,并按组权限聚合可用目录。

查看模型

管理员在「订阅账号 → 模型」查看账号上次返回的模型与同步时间,在「账号组 → 模型」查看授权后的聚合结果。成员在「API 密钥 → 模型」查看自己的可用模型。客户端调用 GET /v1/models,使用个人 Bearer 密钥认证。

模型 ID 保持上游原生形式,不添加供应商前缀。相同 ID 合并显示,多个供应商共同支持时 owned_bysublane。模型目录表示上游声明支持,不保证剩余配额、即时容量或实际生成成功。

同步与有效期

导入、OAuth 完成或重新授权后启动发现。旧账号在读取目录或首次请求时按需发现;重新授权会清除旧目录。手动「验证连接」和「刷新模型」使用同一发现机制。

快照在 15 分钟内视为新鲜。过期读取先返回已有结果并触发共享后台刷新;空闲时不周期轮询。刷新失败保留上次成功快照与时间,退避 30 秒;手动刷新有 5 秒冷却。超过 24 小时的目录仍供管理员查看,但不再用于公开目录与路由。

成功获取的空列表意味着已知不支持任何模型;没有快照表示能力未知,两者不同。单账号最多记录 512 个模型 ID。最多同时执行两个发现操作,仍受全局上游并发限制。

组目录与推理

组目录是启用且可用账号的目录并集,再应用 精确白名单。它不是第二份可编辑权限策略。停用、需要重新授权的账号不参与目录,未知账号不会被当成支持全部模型。

路由先检查具体账号是否支持模型,再执行并发、冷却与轮换规则。已知不支持返回 404 model_not_available;能力未知或过旧可能返回 503 model_catalog_unavailable。一个账号发现失败,不妨碍其他已知可用账号提供服务。

现有对话保持账号绑定;模型变化、冷却或容量不足都不会自动切换。原账号无法支持目标模型时返回 conversation_account_unavailable。更改 Codex 版本策略 会触发按需重新发现,不会改写组白名单。

接口

接口权限
GET /api/accounts/{id}/models管理员
POST /api/accounts/{id}/models/refresh管理员,空 JSON 请求体
GET /api/groups/{id}/models管理员
GET /api/keys/{id}/models有效密钥的本人
GET /v1/models网关密钥

个人结果不包含订阅账号身份或凭据。合成测试覆盖目录持久化、刷新竞态与权限撤销;发现接口本身不会探测模型生成。