Skip to content
FunCoding

Search

Search docs, Skills and MCP

OpenAI API 路由与 Responses

使用 wireApi 选择请求格式,处理旧配置、推理状态和请求体覆盖。

This page has not been translated into English yet. The original Chinese version is shown below.

新配置在 openai 模型条目上设置 wireApi。它是本地路由元数据,不属于 generationConfig,也不会作为请求体字段发送。

选择 API

{
  "modelProviders": {
    "openai": [
      {
        "id": "my-model",
        "wireApi": "responses",
        "envKey": "OPENAI_API_KEY",
        "baseUrl": "https://api.openai.com/v1"
      }
    ]
  },
  "security": { "auth": { "selectedType": "openai" } },
  "model": { "name": "my-model" }
}

将 my-model 替换为真实可用的 Responses 模型。wireApi 仅接受 chat-completions 与 responses;openai 省略该字段时使用 Chat Completions,自定义映射到 openai 的 provider 也相同。

Anthropic、Gemini、Vertex AI 或 Qwen OAuth 条目不能使用 wireApi。api 也不是它的别名。交互设置时从 /auth → Custom Provider 选择 OpenAI-compatible,再选择 API 格式。

两种路由如何共存

同名模型和同一个 baseUrl 可以同时定义两个 API 路由,选择器与会话记录保留有效协议,因而能分别选择和恢复。启动 selectedType 为 openai 时,如果所选端点没有匹配 Chat 路由,可以解析到显式 Responses 路由。

请求失败不会触发端点探测或自动改用另一 API。配置两条路由与自动故障回退是不同能力。

自定义设置向导会为同一 OpenAI 端点的两种 API 共用凭据槽,轮换 Key 会影响两条路由。手工配置独立 envKey 可分开凭据。

旧格式兼容

v0.23.3 发布的 modelProviders.openai-responses 与映射到 openai-responses 的 providerProtocol 仍可读取。显式 provider 映射优先于桶名称,显式 wireApi 优先于二者。

读取不会直接重写配置或改变 Key 引用。重新配置时,只迁移可写范围内选中的匹配旧条目;包含点号的 provider ID 保留原位,无关模型、端点、API 与范围不受影响。

推理内容与恢复

兼容端点返回 reasoning.encrypted_content 时,可在后续轮次和 --resume 时重放不透明推理状态。只提供 response.reasoning_text.delta 的端点可显示思考文本,但没有 encrypted_content 就不能重放该不透明状态。

推理强度使用 generationConfig.reasoning.effort。Responses 的 extra_body 只补充生成请求中尚不存在的字段,不能覆盖已有 model、input、reasoning、temperature 或 max_output_tokens。

旧 extra_body.enable_thinking 不会原样发送;未显式配置 reasoning 时,true 会转换为 medium effort。新配置应直接设置 reasoning,避免依赖兼容转换。