claude-code-router icon indicating copy to clipboard operation
claude-code-router copied to clipboard

功能需求: 添加对 OpenAI Responses API 的支持

Open calloc134 opened this issue 5 months ago • 2 comments

🌠 需求描述

我希望在 claude-code-router 中启用更强大的 OpenAI Responses API,从而能够使用以下工具:

  • web_search_preview(网页搜索)
  • file_search(文件搜索)
  • MCP 服务器调用

https://platform.openai.com/docs/quickstart?api-mode=responses https://platform.openai.com/docs/api-reference/responses

我主要使用 o4-mini,希望能够在启用上述搜索功能的 o4-mini 模型上进行编码,进一步增强在线搜索与文档检索能力。 https://platform.openai.com/docs/guides/tools-web-search

🌠 解决方案

  1. API 调用方式变更 将现有的

    openai.chat.completions.create(req.body)
    

    替换为

    client.responses.create({
      model: "o4-mini",
      input: prompt,
      stream: true,
      tools: [{ type: "web_search_preview" }, { type: "file_search" }, /* ... */],
    });
    
  2. 请求格式转换

    • messagesinput
    • 增加 instructions 参数
    • 适配 tools 列表的传入格式
  3. 响应流处理改造

    • 现有的 streamOpenAIResponse 需支持 response.output_text.deltaresponse.output_text.done 事件
    • 重写工具调用(tool_calls)和文本拼接逻辑

🌠 补充信息

calloc134 avatar Jun 29 '25 02:06 calloc134

感觉可以提个PR

JoeChen2me avatar Jun 29 '25 02:06 JoeChen2me

明白了。如果能够做出一个简单的概念验证,我会先以草稿形式提交一个 PR。我不太擅长编码,所以如果由其他开发者来编写代码,我就寄希望于他们。

calloc134 avatar Jun 29 '25 02:06 calloc134

将附件代码保存为.claude-code-router/plugins/responses-api.js 并在.claude-code-router/config.json中对应api处引用,即可 引用示例如下

{
  "API_TIMEOUT_MS": 600000,
  "LOG": true,
  "Providers": [
    {
      "name": "codex-responses",
      "api_base_url": "https://sample.url/openai/v1/responses",
      "api_key": "$OPENAI_API_KEY",
      "models": ["gpt-5-codex"],
      "transformer": {
        "use": ["responses-api"]
      }
    }
  ],
  "transformers": [
    {
      "path": "/home/youruser/.claude-code-router/plugins/responses-api.js"
    }
  ],
  "Router": {
    "default": "codex-responses,gpt-5-codex"
  }
}

(代码由codex编写) (有些问题还没有解决,比如编辑文件还不能用,还在修改中)

responses-api.js

xlbljz avatar Oct 31 '25 14:10 xlbljz

更新并发布在我的仓库里了,编辑文件等工具使用也修复了。目前使用没发现问题 https://github.com/xlbljz/ccr-plugin-openai-res

xlbljz avatar Nov 03 '25 07:11 xlbljz