CodexManager网关内幕:/v1/chat/completions与/v1/responses如何实现协议适配与SSE流式转换
CodexManager网关内幕/v1/chat/completions与/v1/responses如何实现协议适配与SSE流式转换【免费下载链接】Codex-Manager一个Codex cli 账号管理与切换工具。为 Codex cli提供本地网关转发。项目地址: https://gitcode.com/gh_mirrors/co/Codex-ManagerCodex-ManagerCodexManager是一款面向 Codex CLI 的账号管理与切换工具内置本地网关转发能力。它的网关同时受理 OpenAI 生态中最常用的两条接口/v1/chat/completionsChat Completions与/v1/responsesResponses API。两者请求结构、事件流格式完全不同CodexManager 通过一套“协议适配 SSE 流式转换”机制让任意客户端都能透明接入上游 Codex 账号这篇文章带你拆解它的实现内幕。先搞懂问题两条协议差在哪想理解网关的难度先要清楚两套协议的“语言习惯”不同维度/v1/chat/completions/v1/responses输入结构messages数组role contentinputitemstext、function_call 等角色user/assistant/systemuser/assistant/developer工具调用tool_calls增量 arguments 片段function_call/function_call_outputitems流式输出data: {...choices...}逐块 data: [DONE]带event:名的语义事件response.output_text.delta等也就是说即便客户端都发的是“流式请求”Chat Completions 拿到的是块级 delta而 Responses 拿到的是带事件名的语义流。网关要做的事就是让两条链路在入口改写请求、在出口逐帧改写响应做到客户端无感。网关总架构请求进来后走了哪些子模块CodexManager 的网关实现集中在 crates/service/src/gateway/ 目录官方协作文档把职责拆得很清晰典型链路是request/入站请求规范化与 chat/responses 请求改写routing/按模型目录 V2 选择候选账号与路由策略auth/upstream/补全上游鉴权并发送请求protocol_adapter/产出内部统一请求结构与响应适配标记observability/写入 trace、请求日志与指标其中决定“这条响应该怎么做适配”的核心是 protocol_adapter/types.rs 中的ResponseAdapter枚举它定义了网关支持的全部适配方向包括Passthrough原样透传、ChatCompletionsFromResponsesResponses 流转 Chat Completions 流、ResponsesFromAnthropicMessages、ImagesB64JsonFromResponses等——这正是文章标题里“协议适配”的代码级对应物。/v1/chat/completions 入站改写把“旧协议”翻译成 Responses当客户端以 Chat Completions 协议接入、而上游链路是 Responses 时请求体会先在 request_rewrite_chat_completions.rs 中完成结构化改写关键动作包括角色映射developer/system归一为systemassistant、tool保持其余落入user内容扁平化Responses 的多段 contentinput_text、input_image等被展平为 Chat Completions 的字符串或image_url结构流式判定读取请求体中的stream字段决定后续走 SSE 转换器还是 JSON 直出配套的路径识别与字段白名单逻辑放在 request_rewrite_shared.rs协议路由的总入口则是 protocol_adapter/request_router.rs 中的adapt_request_for_protocol。改写完成后网关内部持有的是一份统一结构AdaptedGatewayRequestpath body 响应适配器 工具名还原映射上游发出去的才是对应协议的原始报文。/v1/responses 直通链路能不动就不动与 Chat Completions 需要“翻译”不同/v1/responses是 Codex 官方链路CodexManager 对它采取透传优先策略请求侧默认完全跟随客户端model字段不做隐式改写仅在显式转发规则、平台密钥强绑模型等明确配置下才替换流式响应由 stream_readers/openai_responses.rs 中的OpenAIResponsesPassthroughSseReader逐帧透传唯一的“加工”是旁路收集 usage 与首响应耗时供日志与计费使用这种设计保证了 Codex CLI 官方体验不被网关“损耗”而跨协议兼容只在确实需要时才发生。SSE 流式转换核心Responses 事件流 → Chat Completions 帧真正体现工程功力的是出口侧的ChatCompletionsFromResponsesSseReader实现位于 stream_readers/chat_completions.rs。它的工作方式可以概括为“读一帧、翻译一帧、立刻下发”帧泵驱动底层的UpstreamSseFramePump从上游响应体中持续切出 SSE 帧解析data:与event:行[DONE]被识别为终止信号元数据记忆首个带response的帧会被提取id、model、created_at并顺手合并 usage 到共享收集器保证计费数据完整状态机去重读者内部维护emitted_assistant_role、emitted_text、emitted_tool_call_indices等状态确保choices[0].delta.role只发一次、工具调用按索引顺序聚合 arguments 片段不会把 Responses 的语义事件“原样泄漏”给 Chat Completions 客户端流保护配合公共模块 stream_readers/common.rs 提供首响应计时、流空闲超时判定与 keepalive 帧慢首字时下游不会被挂死非流式场景则由 http_bridge 的 body_conversion.rs 完成整包 JSON 的结构转换错误体统一由 compact_errors.rs 收敛客户端看到始终是标准 OpenAI 错误格式。可观测性每一次适配都留痕协议转换最怕“出了问题查不到”因此 observability/request_log.rs 会把每条请求的入站路径、适配方向、账号命中、token 用量与耗时写入请求日志metrics.rs 则汇总成面板趋势。网关侧还保留了与官方 Codex 请求头/参数的逐项对照文档方便排查兼容性问题docs/zh-CN/report/当前网关与Codex官方请求参数对照表.mddocs/zh-CN/report/当前网关与Codex请求头和参数差异表.mddocs/zh-CN/ARCHITECTURE.md关键文件速查表模块路径职责协议路由protocol_adapter/request_router.rs选择适配方向并改写请求Chat 入站改写request/request_rewrite_chat_completions.rs角色映射、内容扁平化SSE 帧转换observability/http_bridge/stream_readers/chat_completions.rsResponses 流 → Chat Completions 流透传读取observability/http_bridge/stream_readers/openai_responses.rs/v1/responses 原样透传非流式转换observability/http_bridge/body_conversion.rs整包 JSON 协议互转目录协作文档crates/service/src/gateway/README.md子模块职责与修改建议小结网关价值的本质是“翻译层”CodexManager 网关的设计哲学可以总结为三点入站先归一、上游能透传就透传、出口按客户端协议逐帧回译。/v1/responses链路追求零损耗直通/v1/chat/completions链路靠请求改写与 SSE 状态机实现无损兼容两条链路共用同一套路由、鉴权与可观测性底座。理解了这套协议适配与 SSE 流式转换机制你也就理解了它为什么能让 Codex 账号同时服务 Chat Completions、Responses、Anthropic 乃至图像等多类客户端。【免费下载链接】Codex-Manager一个Codex cli 账号管理与切换工具。为 Codex cli提供本地网关转发。项目地址: https://gitcode.com/gh_mirrors/co/Codex-Manager创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

STM32CubeMX 6.14 全流程实战:从下载安装到工程生成

STM32CubeMX 6.14 全流程实战:从下载安装到工程生成

1. 为什么STM32CubeMX 6.14值得单独写一篇全流程搞STM32开发的人,绕不开STM32CubeMX这个工具。它把芯片选型、引脚分配、时钟树配置、外设初始化代码生成这些原本要翻几百页参考手册才能搞定的事情,压缩到了一个图形界面里。6.14这个版本在时钟树可视化、…

2026/9/30 21:42:02 阅读更多 →
SQL Server自定义函数实战:用TaoToken统一Key打通AI辅助开发链路

SQL Server自定义函数实战:用TaoToken统一Key打通AI辅助开发链路

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/30 21:41:01 阅读更多 →
Windows 本地 Hermes 完整落地流程:从下载到对话可用分步排坑教程(TaoToken 统一 Key 接入版)

Windows 本地 Hermes 完整落地流程:从下载到对话可用分步排坑教程(TaoToken 统一 Key 接入版)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/30 21:41:01 阅读更多 →

最新新闻

收藏!小白程序员轻松上手大模型:用 Skill 把 Markdown 知识库接入 TaoToken 的配置指南

收藏!小白程序员轻松上手大模型:用 Skill 把 Markdown 知识库接入 TaoToken 的配置指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/30 22:10:20 阅读更多 →
SeLATM:面向数据探索与资源效率的片段级智能体主题建模

SeLATM:面向数据探索与资源效率的片段级智能体主题建模

SeLATM:面向数据探索与资源效率的片段级智能体主题建模 arXiv编号:arXiv:2609.31460v1 摘要 主题建模是挖掘文档集合隐藏主题的有效技术,广泛应用于多行业文本挖掘与数据分析。近期出现基于大语言模型LLM的主题建模方法:通过提示大…

2026/9/30 22:10:20 阅读更多 →
Kling 4.0 Flash 已开放:这次升级,怎样改变一条视频的制作流程?

Kling 4.0 Flash 已开放:这次升级,怎样改变一条视频的制作流程?

Ultra Yearly 用户已可使用 Flash,Kling 4.0 将于十月推出。比参数更值得拆解的,是声音、参考素材与镜头控制怎样服务一段完整作品。 Kling 4.0 的进展已经从预告走到了实际开放。​Kling AI 的官方发布公告确认,Kling 4.0 Flash 现已向 Ult…

2026/9/30 22:09:19 阅读更多 →
Cortex-M IAP升级死机真相:VTOR重映射三大硬约束

Cortex-M IAP升级死机真相:VTOR重映射三大硬约束

1. 这不是配置问题,是硬件级生死线:IAP升级后死机的本质真相“IAP升级完设备直接黑屏”“复位后进不了main,卡在HardFault”“烧录成功但一运行就飞掉”——这类问题在Cortex-M系列MCU的固件升级场景中高频出现,尤其在华大HC32L13…

2026/9/30 22:09:19 阅读更多 →
嵌入式偶发故障三阶诊断法:换机、录屏、批次对照

嵌入式偶发故障三阶诊断法:换机、录屏、批次对照

1. 偶发性故障的本质:不是“玄学”,而是信号链路上的时序裂缝你有没有遇到过这样的场景:设备在实验室连着示波器和逻辑分析仪,一切正常;可一拿到客户现场,隔三差五就“串口没数据”“蓝牙突然断开”“烧录到…

2026/9/30 22:09:19 阅读更多 →
通达信主力趋势动向指标公式源码副图

通达信主力趋势动向指标公式源码副图

1、股价下降主力线上升主力建仓;2、股价上升主力线上升主力拉升;3、股价下降主力线下降主力出货;4、股价上升主力线下降主力出货;5、股价下降主力线横盘主力洗盘;} ABC1:90;ABC2:ABC1(100-ABC1)/2;ABC3:(100-ABC1)/2;ABC5:COST(ABC2);ABC6:COST(ABC3);Scr:(ABC5-ABC6)/(ABC5ABC…

2026/9/30 22:09:19 阅读更多 →

日新闻

Base64 图片头部特征识别:从文件头到格式判断的完整指南

Base64 图片头部特征识别:从文件头到格式判断的完整指南

1. 项目概述:为什么说看懂 base64 图片头部是基本功这几年跟 base64 打交道的机会越来越多,后端接口返回图片、前端渲染验证码、小程序里存小图、还有一些老系统导出报表,动不动就给你一段长到怀疑人生的 base64 字符串。很多人拿到字符串就直…

2026/9/30 0:00:35 阅读更多 →
Java公交站牌广告管理系统:JSP+Servlet+MySQL实战落地指南

Java公交站牌广告管理系统:JSP+Servlet+MySQL实战落地指南

简介:本资源是一份面向Java初学者与课程设计学生的公交站牌广告灯箱管理系统毕业设计文档,聚焦城市公共广告资源信息化管理痛点,提供从需求分析到技术实现的完整方案。文档采用标准学术论文结构,含摘要、英文摘要、目录及五章正文…

2026/9/30 0:00:35 阅读更多 →
用 Redis Lua 构建大模型 API 多租户原子配额治理体系

用 Redis Lua 构建大模型 API 多租户原子配额治理体系

我去年年底接了一个内部 AI 平台的治理需求,背景很直接:公司把 DeepSeek、MiniMax 这类大模型 API 统一封装成内部网关,开放给几个业务团队用。结果第一个月账单出来,额度直接超了 4 倍。仔细查日志,发现原因并不复杂—…

2026/9/30 0:00:35 阅读更多 →

周新闻

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/9/30 13:14:22 阅读更多 →
SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/9/30 18:13:06 阅读更多 →
FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏 【免费下载链接】FireRed-OpenStoryline FireRed-OpenStoryline is an AI video editing agent that transforms manual editing into intention-driven directing through natural language …

2026/9/30 13:14:49 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/29 19:29:29 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/29 5:58:00 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/30 15:27:04 阅读更多 →