• boa

    省流

    在Codex供应商配置中添加supports_standalone_web_search = true,在New API中把CPA的渠道类型设为New API。

    背景

    和几个朋友合砍了一个 GPT Pro 20x 账号,放在美国的VPS上来分发,给 Codex 用。之前使用的是sub2api ,不过自从GPT升级到5.6后 web search 网络搜索工具就再也没法使用了,而且最近sub2api被Tibo点名,导致我们想换一个中转站的软件,但又想同时保留codex认证和用量记录两个功能,参考站内的一些方案选择了New API 套 Tibo推荐的CPA 这个方案,让CPA发送最终的请求。

    然而搭建好后发现仍然不能使用网页搜索,网上也没有可行的解决方案,正好最近有时间了就让GPT把三者(Codex、CPA、New API)的代码全梳理了一遍,也是把 web search 修好了。问题主要出在Codex和New API配置上,CPA没有任何问题。

    Codex 配置

    GPT 5.5和 5.6 使用web search功能的最大不同是5.6需要使用新增的/alpha/search搜索接口(独立搜索,alpha search),而5.5使用的是responses api里面的搜索工具。而根据 OpenAI的官方文档,使用自定义provider时,需要显式配置supports_standalone_web_search = true,例如这样```
    model_provider = "custom"

    [model_providers.custom]
    name = "Custom Responses provider"
    base_url = "https://example.com/v1"
    env_key = "CUSTOM_RESPONSES_API_KEY"
    supports_standalone_web_search = true
    ```如果你使用 CC-Switch,就需要手动在供应商设置最底下的config.toml中手动加上这一行并保存,就像这样:

    图片

    完成上述的Codex配置后,如果直连CPA,应该就可以进行网页搜索了。

    之前看到网上有说必须把provider设为OpenAI才能支持联网搜索,目前实测下来不存在这个问题,加上supports_standalone_web_search就能用,可能是OpenAI最近才加上的新功能?(Wayback Machine上的记录显示是在7/20到8/9之间的某天增加的)

    New API 配置

    但如果连接的是New API,模型会说有web search工具,但是一进行搜索就会失败。其原因就是,尽管CPA支持,但New API的OpenAI渠道类型不支持独立搜索接口,导致搜索请求到New API就被拦截了。如果你抓包的话,会提示```
    channel does not support /v1/alpha/search
    ```让GPT分析了New API的代码后,目前只有4种渠道类型支持独立搜索接口:

    类型值 |
    渠道类型 |
    额外条件 |

    57 |
    ChatGPT Subscription (Codex) |
    使用 Codex OAuth JSON 凭证 |

    58 |
    Advanced Custom (高级自定义) |
    必须配置匹配 /v1/alpha/search 的路由 |

    59 |
    Sub2API |
    上游必须实现同名接口 |

    60 |
    New API |
    上游必须实现同名接口 |

    白名单判断位于 alpha_search_handler.go,类型常量位于 channel.go。

    也就是说,要想使用独立搜索接口,就必须要将渠道类型配置为以上四种。我们是要套CPA,所以Codex类型肯定不行,高级自定义配起来又太麻烦,于是我的选择就是把渠道类型设为New API,就像这样:

    图片

    现在再去Codex里进行网络搜索就能成功了。

    副作用

    可能有佬友担心这样将CPA的渠道类型设为New API可能会有副作用,让GPT分析了一下,New API渠道类型和原来的OpenAI的主要不同如下:

    - 不支持部分端点,例如/v1/realtime,/v1/audio/*,/v1/rerank,图像编辑

    - Claude/Gemini 请求会原样发送

    - 不解析模型名称中的 reasoning-effort 后缀

    我们很难用到上面这些端点(GPT本身好像也不支持?),而 Claude/Gemini 请求会交由CPA直接处理。所以这么一看其实对我们的使用场景几乎没有影响,如果你要用到这些功能的话可能需要谨慎切换。


    经过上面一通操作之后,web search工具应该时可以使用了,可以试试问让GPT不使用浏览器进行搜索,如果能搜到东西,且思考里显示“已搜索网页”就说明web search可以使用了:

    图片

    主楼
  • joing

    不知道你的痛点是什么,直接使用chatgpt(desktop)官方的chrome插件还是很不错的,已经集成的非常好了

    #1
  • boa

    用浏览器插件确实也可以达到网页搜索的目的,不过每次他都得读取技能说明,然后等好长时间才能打开浏览器开始查看页面,如果用web search工具就会快很多,也省token

    #2

发表回复

登录后回复