mirror of
https://github.com/zyycn/codex-proxy-rs.git
synced 2026-11-06 08:06:19 +00:00
fix(routing): bind known models to their providers
Preserve known model ownership when provider catalog refreshes fail. Reject ambiguous unknown-provider routes and exclude ChatGPT OAuth accounts from Grok requests while preserving API key passthrough. Refs #391 Co-authored-by: Codex <noreply@openai.com>
This commit is contained in:
@@ -377,6 +377,11 @@ xAI 没有 Codex 原生目录,使用官方 CLI proxy 当前目录生成通用
|
||||
`reasoning_efforts` 对象列表,默认值只取菜单中的显式标记;缺失时保持未知,不以首项代替,
|
||||
也不回退旧字段或其他端点的目录形状
|
||||
|
||||
已知模型只路由到明确提供该模型的 Provider,账号不可用时不转发给其他平台的未知模型通道。
|
||||
未知模型只在当前范围与路由约束下存在唯一 Provider 透传候选时发送;无法确定归属时返回不可用错误,
|
||||
可通过 Client Key 分组限定目标平台。一个 Provider 内的多个 API Key 账号仍按账号模型政策与调度规则选择,
|
||||
不要求模型已被上游目录收录;ChatGPT OAuth 账号不接受 Grok 模型
|
||||
|
||||
目录账号只能来自本次 Client Key 冻结的账号范围。OpenAI 的 OAuth 目录按账号 ID 排序,使用首个成功读取的
|
||||
合格账号,最多尝试三个账号;API Key 目录按账号模型权限过滤后聚合。同名模型优先采用 OAuth 原生对象,
|
||||
其次采用 API Key 的完整 Codex 对象,再使用普通模型 ID;同类 API Key 目录按账号 ID 确定来源,不跨账号
|
||||
|
||||
@@ -613,9 +613,11 @@ Client Key 与账号分组形成授权范围:
|
||||
- 已绑定分组为空或全部禁用时得到空池,绝不回退为全部账号
|
||||
- 分组可以包含多个 Provider,账号也可以属于多个分组
|
||||
|
||||
Core 在账号授权、模型政策与请求路由约束内,优先选择目录明确包含映射后模型且能力匹配的 Provider,
|
||||
再保留发现型或暂不可读目录的未知模型候选;两类候选各自保持 Provider 标识顺序。
|
||||
目录缺项不阻止 OpenAI 模型透传,重试和跨 Provider fallback 仍受原有发送与重放安全边界约束
|
||||
Core 按映射后的模型冻结 Provider 归属:已知模型只在明确声明该模型且能力匹配的 Provider 中路由,
|
||||
再应用账号授权、模型政策和请求约束;账号不可用或所属 Provider 被排除不能扩大归属范围。
|
||||
同名模型的多个所属 Provider 保持标识顺序,重试仍受发送与重放安全边界约束。
|
||||
未被任何目录识别的模型只有一个 Provider 透传候选时才交由上游验证,多个未知候选不按名称顺序猜选平台。
|
||||
OpenAI Provider 在选号时排除 Grok 模型的 ChatGPT OAuth 账号,API Key 兼容上游仍可透传
|
||||
|
||||
账号选择综合启停状态、credential/quota 事实、Redis cooldown、并发上限、权重、请求间隔和会话亲和。
|
||||
默认账号并发上限为 `0` 时表示无限;账号独立正数上限仍优先,未设置则继承默认值。
|
||||
@@ -799,7 +801,10 @@ PostgreSQL 周期对账才是正确性基础
|
||||
|
||||
同一 publisher 的管理提交、订阅通知与周期对账共享编译到发布/暂停的临界区,避免旧结果覆盖新授权或
|
||||
晚到的失败暂停新快照;请求读取不等待刷新锁。对账仍允许持久 revision 回退,不能只比较版本大小。
|
||||
配置不可确认时暂停新请求;仅目录 generation 变化且编译失败时继续使用旧快照,留待下次对账
|
||||
配置不可确认时暂停新请求;仅目录 generation 变化且编译失败时继续使用旧快照,留待下次对账。
|
||||
同一扩展集合内,单个 Provider 目录读取失败保留上次成功的模型、能力和来源账号事实,
|
||||
新账号授权仍按当前配置发布,后续目录 generation 变化或刷新成功后更新模型事实。
|
||||
成功返回空目录表示模型撤回,移除 Provider 或切换扩展集合时不复用旧归属
|
||||
|
||||
## 8. 状态所有权
|
||||
|
||||
|
||||
Reference in New Issue
Block a user