ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

OpenCodex 官方 OpenAI API 合约:GPT-5.6 系列元数据、Pro 虚拟模型与推理边界实现解析

OpenCodex 官方 OpenAI API 合约:GPT-5.6 系列元数据、Pro 虚拟模型与推理边界实现解析 【免费下载链接】opencodexUniversal provider proxy for OpenAI Codex Claude Code — use any LLM (Claude, Gemini, Grok, DeepSeek, Ollama…) with Codex CLI, App, SDK, and Claude Code项目地址https://gitcode.com/gh_mirrors/ope/opencodex点击查看免费下载本文以 OpenCodex 仓库中 002_official_api_contract.md 为骨架系统讲解 OpenCodex 的openai-apikey提供者在接入 OpenAI 官方 API 时锁定的模型合约GPT-5.6 家族Sol / Terra / Luna的官方元数据基线、推理 effort 阶梯与 Pro 虚拟模型的选择语义、虚拟 ID 到上游基模型的转换边界以及/v1/responses/compact在压缩边界上的特殊处理。读完本文你将理解 OpenCodex 如何在不把-pro后缀发往上游的前提下提供 Pro 模式如何把自动压缩阈值严格钳制在官方 922,000 最大输入之内以及哪些官方能力被有意延期。一、官方文档是唯一权威单元契约的制定原则该单元OpenAI Hardening见 000_plan.md的起点是一条纪律只有 OpenAI 官方文档对模型族、推理模式与请求参数具有权威性。OpenCodex 不依据第三方博客、社区推测或抓包结果来推导模型能力而是把官方模型页与官方指南中的事实固化为可信元数据再让实现只信任这些元数据。这套原则直接体现在代码结构上官方元数据被写入提供者注册表registry的可信种子而非用户可覆盖的持久化配置。例如 model-seeds.ts 中集中定义了 GPT-5.6 家族的全部模型 ID、上下文窗口、最大输入与 Pro 虚拟映射而配置面OcxProviderConfig只接受modelMaxInputTokens这样的普通正整数映射不允许注入虚拟模型映射openai-tiers.ts 及 Cycle 150 的config_virtual_map_rejection均验证了这一点。二、模型族GPT-5.6 三兄弟的官方元数据基线2.1 官方共享元数据依据官方模型页OpenCodex 为openai-apikey提供者核验并固化如下共享元数据ModelContextMax inputMax outputInputOutputgpt-5.6-sol1,050,000922,000128,000text, imagetextgpt-5.6-terra1,050,000922,000128,000text, imagetextgpt-5.6-luna1,050,000922,000128,000text, imagetext对应实现位于 model-seeds.tsexport const OPENAI_API_GPT56_CONTEXT_WINDOW 1_050_000; export const OPENAI_API_GPT56_CONTEXT_WINDOWS: Recordstring, number { ...Object.fromEntries([...OPENAI_GPT56_MODELS, ...OPENAI_GPT56_PRO_MODELS].map(id [id, OPENAI_API_GPT56_CONTEXT_WINDOW])), gpt-5.5: OPENAI_API_GPT56_CONTEXT_WINDOW, }; export const OPENAI_API_GPT56_MAX_INPUT_TOKENS: Recordstring, number { ...Object.fromEntries([...OPENAI_GPT56_MODELS, ...OPENAI_GPT56_PRO_MODELS].map(id [id, 922_000])), gpt-5.5: 922_000, };值得注意的是gpt-5.5也共享了 1,050,000 上下文与 922,000 最大输入基线而gpt-5.6是上游别名路由到 Sol它在 API 提供者侧就是一个普通的 upstream 模型 ID不是OpenCodex 定义的虚拟 Pro 别名。2.2 自动压缩阈值的窄带钳制OpenCodex 目录catalog计算路由模型的自动压缩阈值auto_compact_token_limit默认取上下文的 90%。对于 1,050,000 上下文90% 即 945,000超过了官方 922,000 的最大输入上限。因此本单元把最大输入上限窄带写入目录元数据并将自动压缩阈值钳制为auto_compact_token_limit min(floor(context_window × 0.9), maxInputTokens)即min(945,000, 922,000) 922,000。实现位于 auto-compact-budget.tsexport function clampAutoCompactTokenLimit( contextWindow: number, maxInputTokens?: number, configuredLimit?: number, ): number { const candidates [Math.floor(contextWindow * 0.9), contextWindow]; if (positiveSafeInteger(maxInputTokens)) candidates.push(maxInputTokens); if (positiveSafeInteger(configuredLimit)) candidates.push(configuredLimit); return Math.min(...candidates); }该函数被目录构建流程调用effort.ts当模型带maxInputTokens时压缩阈值取上下文窗口、90% 预算与最大输入三者中的最小值。Cycle 110 的auto_compact_max_input_cap与 Cycle 160 的router_max_input_lowering进一步规定了合并语义注册表元数据作为可信默认值用户的modelContextWindows/modelMaxInputTokens提示只能作为下调封顶min-wins任何高于官方 922,000 的数值都不会被采纳。目录中的max output128,000也被记录但在本单元不需要单独的 Codex picker 字段。三、推理契约effort 阶梯与 Pro 模式语义3.1 官方 effort 阶梯与 OpenCodex 的交集官方文档记录的 GPT-5.6 effort 阶梯为none, low, medium, high, xhigh, maxOpenCodex 当前的 Codex picker 契约只表示low到max不把none定义为可选的 Codex effort。因此本单元在目录中广告的是交集low, medium, high, xhigh, max对应实现见 model-seeds.tsOPENAI_API_GPT56_REASONING_EFFORTS [low, medium, high, xhigh, max]。省略 effort 时交给 API 默认值medium。在标准模式与 Pro 模式下GPT-5.6 的省略 effort 默认值均为medium。添加全局none档位属于跨提供者的独立契约变更不在本单元范围。3.2 Pro 是推理模式不是模型 slug官方指南规定Pro 是在基础模型之上通过reasoning.mode选择的{ model: gpt-5.6-sol, reasoning: { mode: pro } }因此 OpenCodex绝不能把gpt-5.6-sol-pro当作上游模型 slug 发出Sol、Terra、Luna 三条 Pro 虚拟选择一律遵守该规则。官方还明确推理模式与 effort 相互独立Pro 虚拟选择可以保留或设置受支持的reasoning.efforteffort 被省略时默认medium。四、翻译边界虚拟模型如何转换为上游基模型4.1 五步转换流程对于选择openai-apikey/gpt-5.6-sol-pro的请求OpenCodex 的转换流程为路由识别出openai-apikey命名空间并在日志/历史状态中保留原始被选 IDrequestedModel可信提供者虚拟模型解析器把路由 ID 映射为上游基模型gpt-5.6-solresolvedModel把mode: pro合并进原始reasoning对象同时保留独立受支持的 effort 及其他受支持字段OpenAI Responses 适配器把重写后的请求体序列化发送至https://api.openai.com/v1/responses该转换在openai-apikey之外、以及三个精确虚拟 ID 之外一律拒绝 / no-op。4.2 源码级实现核心实现在 openai-virtual-models.ts。虚拟映射的种子定义如下model-seeds.tsexport const OPENAI_API_GPT56_VIRTUAL_MODELS: Recordstring, { wireModelId: string; reasoningMode: pro } { gpt-5.6-sol-pro: { wireModelId: gpt-5.6-sol, reasoningMode: pro }, gpt-5.6-terra-pro: { wireModelId: gpt-5.6-terra, reasoningMode: pro }, gpt-5.6-luna-pro: { wireModelId: gpt-5.6-luna, reasoningMode: pro }, };解析器只认openai-apikey提供者与精确键普通未命中返回undefined命中但 wire ID 为空白、带命名空间、非字符串或模式不受支持时抛出InvalidOpenAiVirtualModelRegistryError且永不从-pro后缀推断openai-virtual-models.ts。applyOpenAiVirtualModel的合并语义openai-virtual-models.tslogCtx.model设为本地选中 ID如gpt-5.6-sol-prologCtx.resolvedModel设为上游基模型route.modelId、parsed.modelId与原始请求体model均改写为基模型reasoning.mode强制为pro调用方若提供冲突的reasoning.mode虚拟选中模型优先并强制pro原始reasoning为对象时克隆并合并保留 effort、summary 及其他允许字段为null或缺省时生成{ mode: pro }解析器已拒绝的标量/数组reasoning不会到达此处该函数对二次调用幂等。请求日志会记录应用过虚拟转换但不记录凭据与请求内容。applyOpenAiVirtualModel在src/server/responses.ts的路由模型解析与命名空间剥离之后、effort 封顶/原生钳制之前被调用因此 Pro 路由不会伪装成原生 Direct 选择。4.3 三层提供者上下文该翻译边界是 000_plan.md 所定义三层提供者架构的一部分Provider id用户层凭据所有者上游openaiCodex Direct调用方 / 主 Codex 登录chatgpt.com/backend-api/codexopenai-multiCodex 多账号OpenCodex Codex 账号池chatgpt.com/backend-api/codexopenai-apikeyOpenAI API配置的 OpenAI API key/key 池api.openai.com/v1虚拟 Pro 转换只作用于openai-apikey层openai-virtual-models.ts 明确providerName ! OPENAI_API_PROVIDER_ID即返回undefinedDirect/Multi 行永不接收 API 虚拟 ID 或 API 上下文值。上游 HTTP JSON/SSE 与真实 WebSocket 的响应负载仍保留基模型不变从而维持 Windows native-relay 的安全不变量。五、压缩边界compact 时剥离 reasoning官方POST /v1/responses/compact的 OpenAPI 模式与当前官方 SDK 的ResponseCompactParams不包含reasoning字段。因此对于 Pro 虚拟选择OpenCodex 向 compact 发送基模型 ID且不带任何 mode/effort 成员openai-virtual-models.ts 中resolveOpenAiCompactModel复用同一解析器export function resolveOpenAiCompactModel( providerName: string, selectedModelId: string, ): OpenAiVirtualModelResolution | undefined { return resolveOpenAiVirtualModel(providerName, selectedModelId); }这不会降级下一次生成的回答紧随其后的普通 Responses 请求会重新解析同一虚拟选择并重新应用reasoning.mode: pro。压缩行为由官方 schema 固定虚拟 ID → 基模型 ID不发送reasoning成员。OpenCodex 的 compact 处理compact.ts在日志中同时保留三种身份model本地选中虚拟 ID、requestedModel含命名空间的原始调用 ID、resolvedModel上游基模型并支持 32 MiB 读取上限、溢出取消与单行日志所有权Cycle 060。六、身份三要素model / requestedModel / resolvedModel翻译边界最终落在日志与用量系统的三种身份上Cycle 140model 本地选中 IDPro 虚拟选择时为虚拟 IDrequestedModel 调用方原始 ID含提供者命名空间resolvedModel 上游响应 / 基模型。用量汇总summary.ts按 provider 持久化的选中model分组绝不分按resolvedModel分组从而保证三条 Pro 行不会塌缩进基模型行Cycle 130 的回归测试验证了这一点。七、验证与测试该契约由专门的测试套件锁定openai-api-virtual-models.test.ts覆盖解析器单测命中 / 未命中、其他提供者、空白/带命名空间 wire ID、不受支持的模式、省略 / null / 冲突 reasoning、effort/summary 保留、解析器拒绝的非对象形状、二次应用幂等畸形定义通过validateOpenAiVirtualModelDefinition用合成值验证且不污染全局注册表传输身份测试对三个 Pro ID 分别捕获 HTTP、HTTP SSE、真实 WebSocket 升级与response.create断言 API URL/key、上游基模型、modePro、effort 保留、日志中的选中模型/命名空间 requestedModel/基 resolvedModel以及客户端可见的上游基模型不变、零 Codex 账号请求头compact 传输测试标准与全部 Pro ID 的 compact 请求仅发送 API key 基模型且无reasoning还包括 abort、body-read 失败、本地/上游 4xx/5xx、超大Content-Length与 chunked 溢出等场景每个结果恰好产生一条日志与 JSONL 行。目录层的精确八 ID 允许列表gpt-5.5 七个 GPT-5.6 行别名、三基模型、三 Pro 虚拟由 catalog 的augmentRoutedModelsWithRegistryOpenAiApiRows在 live/static 收集之后、可见性/排序之前确定性重建Cycle 080其碰撞签名基于 provider/id、context、max-input、输入模态、effort 与 owned-by且同一不匹配跨轮询只告警一次。八、有意延期的官方能力官方指南还记录了持久化推理persisted reasoning、显式提示缓存explicit prompt caching与编程式工具调用Programmatic Tool Calling。本单元有意排除这三项直到 provider/auth 归属与 Pro 别名边界稳定并独立测试通过见 000_plan.md 的范围排除清单pricing、Programmatic Tool Calling UI、显式 prompt-cache 控件、持久化推理 UI 均为独立后续单元。总结OpenCodex 对 OpenAI 官方 API 的接入遵循官方文档为唯一权威的契约纪律以官方元数据为可信基线1,050,000 上下文 / 922,000 最大输入 / 128,000 最大输出、以reasoning.mode: pro而非伪造 slug 表达 Pro、把自动压缩钳制在min(90% 上下文, 最大输入)、在 compact 边界剥离reasoning、并在日志与用量中完整保留选中 / 请求 / 解析三种模型身份。这套契约既保证了上游请求的合规性也让 Pro 虚拟选择的身份在 picker、历史与用量报表中全程可见。赞分享【免费下载链接】opencodexUniversal provider proxy for OpenAI Codex Claude Code — use any LLM (Claude, Gemini, Grok, DeepSeek, Ollama…) with Codex CLI, App, SDK, and Claude Code项目地址https://gitcode.com/gh_mirrors/ope/opencodex点击查看免费下载相关推荐ScyllaDB Hinted Handoff 技术指南写入容错机制与 Sync Point API 实战ScyllaDB Hinted Handoff 技术指南写入容错机制与 Sync Point API 实战 ScyllaDB 是一款基于 Seastar 框架OpenCodex 模型目录实操gpt-5.6 家族别名注册与 OpenAI API 模型一致性保障OpenCodex 模型目录实操gpt 5.6 家族别名注册与 OpenAI API 模型一致性保障 本文以 170_gpt56_alias_registraopencodex 对齐 Codex 上游 GPT-5.6 模型元数据PR 31684 models.json 快照移植实战opencodex 对齐 Codex 上游 GPT 5.6 模型元数据PR 31684 models.json 快照移植实战 本文基于 opencodexO上一篇COLMAP三维重建完整指南从零掌握多视角几何核心技术下一篇3步搞定虚拟显示器驱动从安装到彻底清理的完整指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表