GodeX v1.1.0:让国产大模型跑在 OpenAI Responses 协议上

2026-06-01 26 预计阅读时间:1 分钟
来源:oschina.net AI 摘要 原文链接

免责声明:本文为 AI 摘要整理,建议结合原文阅读。摘要可能省略上下文、版本差异或边界条件,不作为官方说明。

预计阅读时间:9 分钟

OpenAI 推出 /v1/responses 协议后,Codex CLI、各类开发者 Agent 纹纷跟进适配。问题在于——DeepSeek、MiniMax、智谱、小米等国产模型只暴露 Chat Completions API,协议不对齐,工具链直接断路。GodeX 做的事很明确:在中间当翻译层,把 Chat Completions 的请求/响应结构桥接成 OpenAI Responses 格式,让上层工具无感切换模型供应商。v1.1.0 又加了 MiniMax-M3、多模态理解和原生搜索结果桥接,覆盖面再拓宽一层。

协议断层与桥接思路

OpenAI Responses API 和 Chat Completions API 的核心差异不在"对话"本身,而在结构化输出与工具调用的表达方式。Responses 协议把工具调用、搜索结果、多模态输入统一收进一个 output 数组,每项带 type 标注;Chat Completions 则把同类信息塞进 choices[0].messagetool_calls 字段,扁平且不区分输出类型。

GodeX 的桥接逻辑可以简化为:

Client (Codex / Agent)  →  /v1/responses  →  GodeX 网关
                                              ↓ 协议翻译
                                         Chat Completions  →  模型供应商
                                              ↓ 响应翻译
                                         /v1/responses  →  Client

关键翻译动作包括:把 Responses 的 input 拆解成 Chat Completions 的 messages 数组;把模型返回的 tool_calls 和文本内容重新组装成 Responses 的 output 项。搜索结果和多模态内容在 v1.1.0 之前没有对应映射,现在被补上了。

v1.1.0 新增了什么

MiniMax-M3 支持——MiniMax 的 M3 模型进入了 GodeX 的供应商配置表,意味着你可以用 Responses 协议直接调用 M3 的长上下文和搜索增强能力,不需要单独对接 MiniMax 的 SDK。

多模态理解——图片、文件等非文本输入在 Chat Completions 侧通常以 image_urlcontent 多类型数组的方式传入。GodeX v1.1.0 把 Responses 协议中的多模态 input 项翻译成对应的 Chat Completions 格式,让视觉理解模型(如智谱的 GLM-4V)也能被 Codex 类工具直接调用。

原生搜索结果桥接——部分国产模型(如 DeepSeek 的搜索增强模式、MiniMax 的 search tool)在 Chat Completions 响应里返回搜索引用信息。v1.1.0 把这些信息映射到 Responses 协议的 output 中带 type: "search_result" 的条目,上层 Agent 可以直接消费搜索来源,而不是丢失在翻译过程中。

实操:五分钟跑起 GodeX 网关

以下示例假设你已经有一台能访问模型供应商 API 的机器。以 DeepSeek 为例,展示从安装到调用的完整流程。

1. 安装 GodeX

# 从 GitHub Releases 下载最新 v1.1.0 二进制
# Linux amd64 为例,其他架构替换对应文件名
curl -L -o godex https://github.com/godex-dev/godex/releases/download/v1.1.0/godex-v1.1.0-linux-amd64
chmod +x godex
sudo mv godex /usr/local/bin/

# 验证版本
godex version
# 预期输出: v1.1.0

2. 写配置文件

创建 godex.yaml,声明供应商和模型映射:

server:
  port: 8080
  host: "0.0.0.0"

providers:
  deepseek:
    api_key: "sk-your-deepseek-key-here"
    base_url: "https://api.deepseek.com/v1"
    models:
      - id: "deepseek-chat"
        responses_id: "deepseek-chat"   # Responses 协议中暴露的模型名

  minimax:
    api_key: "your-minimax-key-here"
    group_id: "your-group-id"
    base_url: "https://api.minimax.chat/v1"
    models:
      - id: "MiniMax-M3"
        responses_id: "minimax-m3"

  zhipu:
    api_key: "your-zhipu-key-here"
    base_url: "https://open.bigmodel.cn/api/paas/v4"
    models:
      - id: "glm-4v"
        responses_id: "glm-4v"          # 多模态模型
        multimodal: true

search_bridge:
  enabled: true
  # 将模型返回的搜索引用映射为 Responses 的 search_result 输出项
  providers: ["deepseek", "minimax"]

注意:api_keygroup_id 请替换为你自己的真实密钥。多模态模型需要标注 multimodal: true,GodeX 会据此调整输入翻译逻辑。

3. 启动网关

godex serve --config godex.yaml
# 输出类似: GodeX v1.1.0 listening on 0.0.0.0:8080

4. 用 Responses 协议调用 DeepSeek

curl -X POST http://localhost:8080/v1/responses \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-your-deepseek-key-here" \
  -d '{
    "model": "deepseek-chat",
    "input": "用 Python 写一个快速排序,要求有类型标注和 docstring"
  }'

返回结构遵循 OpenAI Responses 格式,output 数组中包含文本结果:

{
  "id": "resp_...",
  "model": "deepseek-chat",
  "output": [
    {
      "type": "message",
      "content": "def quick_sort(arr: list[int]) -> list[int]:\n    ..."
    }
  ],
  "status": "completed"
}

5. 调用 MiniMax-M3 并触发搜索桥接

curl -X POST http://localhost:8080/v1/responses \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer your-minimax-key-here" \
  -d '{
    "model": "minimax-m3",
    "input": "2025 年中国新能源汽车销量排名前十的品牌是哪些?"
  }'

如果 M3 启用了搜索增强,返回的 output 中会包含搜索来源条目:

{
  "output": [
    {
      "type": "search_result",
      "url": "https://...",
      "title": "2025年新能源销量统计",
      "snippet": "..."
    },
    {
      "type": "message",
      "content": "根据最新数据,排名前十的品牌包括..."
    }
  ]
}

6. 多模态调用(智谱 GLM-4V)

curl -X POST http://localhost:8080/v1/responses \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer your-zhipu-key-here" \
  -d '{
    "model": "glm-4v",
    "input": [
      {
        "type": "image_url",
        "image_url": { "url": "https://example.com/chart.png" }
      },
      {
        "type": "text",
        "text": "描述这张图表的趋势"
      }
    ]
  }'

GodeX 会把 image_urltext 翻译成智谱 API 要求的 content 多类型数组格式,模型返回的视觉理解结果再被包装回 Responses 的 output

接入前想清楚几件事

  • 延迟叠加:每次请求经过 GodeX 翻译层,增加一跳网络和一层序列化/反序列化。对低延迟场景(实时对话流),需要评估额外耗时是否可接受。
  • 功能边界:Responses 协议的部分能力(如 stream 细粒度事件类型、previous_response_id 会话链)在 Chat Completions 侧没有完全对等的字段,GodeX 会做合理降级或忽略。使用前查阅项目的兼容性矩阵,确认你依赖的特性已被映射。
  • 密钥管理:配置文件中集中存放多个供应商的 API Key,生产环境务必用环境变量或密钥管理服务注入,不要把明文密钥提交到版本库。
  • 模型能力差异:协议对齐不等于能力对齐。DeepSeek 的推理链、MiniMax 的长上下文搜索、智谱的视觉理解各有擅长,按场景选模型,不要指望一个网关抹平所有差异。

GodeX 解决的是一个很具体的管道问题——让已经适配 Responses 协议的工具链,不用重写就能接入国产模型。如果你的 Agent 或 CLI 正卡在协议不对齐这一步,v1.1.0 值得试一下。


相关推荐