webchat2api:把网页版 ChatGPT 和 Grok 转成标准 API

行业快讯

开源项目 webchat2api 整合了 chatgpt2api 和 grok2api 两个已停更项目,让用户通过 AccessToken 或 RefreshToken 把网页版账号转为 OpenAI 格式 API,支持 GPT-4、O1、Grok 等模型,解决了官方 API 限流和计费问题。

webchat2api:把网页版 ChatGPT 和 Grok 转成标准 API

开源社区又出了个实用工具。一个叫 webchat2api 的项目最近在 Linux.do 社区引起关注,它做的事很直接:把你的 ChatGPT 或 Grok 网页账号转成标准的 OpenAI API 格式,让你能用熟悉的方式调用这些模型。

为什么会有这个项目

webchat2api 的作者 zqbxdev 说得很直白:之前有两个类似项目 chenyme/grok2api 和 basketikun/chatgpt2api,但都停更很久了。这两个项目本质上都是 web-to-api 的思路,既然如此,不如把它们整合到一起,顺便完善一下功能。

这类工具存在的原因也很现实。OpenAI 官方 API 虽然标准,但限流严格(免费层每分钟只能发 3 条消息),计费也不便宜。而网页版 ChatGPT Plus 账号每月 20 美元包月,Grok 也有类似的订阅模式。如果你已经有了这些账号,为什么不直接把它们转成 API 用?

类似的项目其实不少。lanqian528/chat2api 是另一个活跃的同类工具,支持 O3-mini、O1-Pro、GPT-4o 等模型,还提供了 Token 管理界面和多 Token 轮询功能。这些项目的核心逻辑都差不多:通过逆向工程模拟网页端的请求流程,把你的账号凭证(AccessToken 或 RefreshToken)转换成 API 调用。

webchat2api 能做什么

从功能上看,webchat2api 支持的模型覆盖面不错:

  • ChatGPT 系列:GPT-4、GPT-4o、GPT-4o-mini、O1、O1-mini、O1-Pro,以及各种 GPTs
  • Grok 系列:Grok-2、Grok-2-mini 等 xAI 的模型
  • 多模态能力:支持 GPT-4 的图片生成(DALL-E)、代码解释器、联网搜索等功能

使用方式也很标准。你只需要把 AccessToken 或 RefreshToken 作为 API Key 传入,请求格式完全兼容 OpenAI 的接口规范。比如:

curl --location 'http://your-server:5005/v1/chat/completions' \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
  --data '{
    "model": "gpt-4",
    "messages": [
      {"role": "user", "content": "Hello"}
    ]
  }'

这意味着几乎所有支持 OpenAI API 的客户端(ChatGPT-Next-Web、Chatbox、各种 IDE 插件)都能直接接入,不需要改代码。

Token 管理和安全性

这类工具最核心的部分是 Token 管理。webchat2api 支持三种 Token 类型:

  1. AccessToken:有效期 10 天,通过账号密码或 RefreshToken 获取
  2. RefreshToken:有效期 3 个月,可以用来刷新 AccessToken
  3. SessionToken:有效期也是 3 个月,可以直接用于登录

Token 的获取方式有两种。一种是通过浏览器访问 https://chatgpt.com/api/auth/session,登录后能看到返回的 JSON 数据,里面包含 AccessToken。SessionToken 则藏在浏览器的 Cookie 里,需要打开开发者工具手动提取。

另一种是用第三方服务(比如 Pandora 提供的 Token 获取接口),输入账号密码自动提取。但这种方式有个明显的风险:你得把账号密码交给第三方。虽然 Pandora 声称不会存储,但谁也说不准。更稳妥的做法还是自己手动提取。

lanqian528/chat2api 在这方面做得更细致。它提供了一个 Web 管理界面(/tokens 路径),可以可视化地上传、查看、删除 Token。还支持设置 AUTHORIZATION 环境变量作为授权码,实现多 Token 轮询,避免单个账号被限流。

安全性方面,这些项目都建议设置 API 前缀(API_PREFIX)来防止未授权访问。比如你设置了 /my-secret-path,那 API 地址就变成 http://your-server:5005/my-secret-path/v1/chat/completions,别人不知道这个前缀就没法调用。

另外,如果你的服务器 IP 被 OpenAI 或 xAI 拉黑(返回 403 错误),可以配置代理(PROXY_URL)来绕过。对于 ChatGPT Plus 账号,还需要额外配置 Ark0seToken 来通过人机验证。

部署和使用成本

部署方式很常规,支持 Docker 和 Docker Compose。以 webchat2api 为例:

git clone https://github.com/zqbxdev/webchat2api
cd webchat2api
docker-compose up -d

配置文件里需要填几个关键参数:

  • API_PREFIX:API 路径前缀,防止被扫
  • PROXY_URL:代理地址,遇到 403 时启用
  • ENABLE_LIMIT:是否启用官方限流保护,避免账号被封
  • SCHEDULED_REFRESH:是否定时刷新 AccessToken

lanqian528/chat2api 还支持一个有意思的功能:AUTO_SEED 模式。开启后,你可以用一个随机的 seed 值作为 API Key,系统会自动从后台 Token 池里随机匹配一个账号。这样可以实现负载均衡,避免单个账号被打爆。

成本方面,如果你用的是 Pandora 这类需要授权的服务,会有额度限制。Pandora 根据 GitHub 账号注册年限分配额度,注册满 2 年的账号每 24 小时有 2000 条额度。每次调用账号密码获取 Token 的接口会消耗 100 条,用 API 发送一条消息会消耗 4 条(因为要处理上下文)。

但如果你自己部署 webchat2api 或 chat2api,只要有 VPS 和账号 Token,就没有额外的调用限制。唯一的成本是 ChatGPT Plus 或 Grok 的订阅费,以及 VPS 的费用(一台基础配置的 VPS 一个月几美元)。

和官方 API 比怎么样

这类工具最大的优势是绕过了官方 API 的限流。OpenAI 免费层 API 每分钟只能发 3 条消息,付费层虽然额度更高,但按 Token 计费,成本不低。而网页版账号是包月制,理论上可以无限调用(当然实际上还是有隐藏的频率限制,只是比 API 宽松得多)。

另一个好处是功能完整性。网页版 ChatGPT 支持的所有功能(联网搜索、代码解释器、DALL-E 画图、GPTs)都能通过这些工具调用,而官方 API 有些功能是单独计费或者根本不开放的。

但劣势也很明显:

  1. 稳定性差:这些工具都是逆向工程,OpenAI 或 xAI 随时可能改接口,导致工具失效。chat2api 和 grok2api 停更就是例子。
  2. 封号风险:频繁调用或者异常行为可能被检测到,导致账号被封。虽然可以通过 ENABLE_LIMIT 等参数降低风险,但不能完全避免。
  3. 维护成本:Token 会过期,需要定期刷新。虽然有自动化脚本,但还是得盯着。
  4. 合规问题:严格来说,这种用法违反了 OpenAI 和 xAI 的服务条款。虽然目前没听说有人因此被起诉,但理论上存在法律风险。

适合谁用

这类工具的目标用户很明确:

  • 已经有 ChatGPT Plus 或 Grok 订阅的开发者,想把账号价值最大化
  • 需要频繁调用但不想按 Token 付费的个人项目
  • 对官方 API 限流不满的用户
  • 想在自己的应用里集成 GPT-4 或 Grok,但不想走官方渠道的开发者

不适合的场景:

  • 商业项目:封号风险和合规问题都是大坑
  • 需要高稳定性的生产环境:逆向工具随时可能挂
  • 没有技术背景的普通用户:部署和维护都有门槛

社区生态

webchat2api 在 Linux.do 社区发布后,引起了不少讨论。有人觉得这是刚需工具,也有人担心会加速 OpenAI 封杀这类用法。从评论来看,大部分用户还是持实用主义态度:能用就用,挂了再说。

类似的项目还有不少。除了前面提到的 chat2api 和 grok2api,还有 PandoraNext(一个更完整的 ChatGPT 代理方案,支持 Web UI 和 API)、ChatGPT-Next-Web(一个流行的 ChatGPT 前端,可以对接各种 API)。这些工具形成了一个小生态,互相借鉴和整合。

webchat2api 的作者表示后续可能会加入 Gemini 的支持,进一步扩大覆盖面。但考虑到 Google 的接口变化频率,这个计划能不能落地还不好说。

一些实际问题

用这类工具会遇到一些坑:

  1. 403 错误:最常见的问题,通常是 IP 被拉黑。解决方法是配置代理,或者换个 VPS。
  2. Token 失效:AccessToken 10 天过期,RefreshToken 3 个月过期。需要定期刷新,或者用脚本自动化。
  3. 人机验证:ChatGPT Plus 账号可能需要 Ark0seToken 来通过 Cloudflare 的验证。获取方式比较麻烦,需要用浏览器插件或者第三方服务。
  4. 额度消耗:如果用 Pandora 这类有额度限制的服务,需要注意消耗速度。一条 API 消息会消耗 4 条额度(因为要处理上下文),很容易超。

另外,这些工具都不支持流式输出(Server-Sent Events),返回的是完整的响应。对于长文本生成,体验会比官方 API 差一些。

总结

webchat2api 和同类工具解决了一个真实的痛点:让已有的网页账号发挥更大价值。对于个人开发者和小项目来说,这是个性价比不错的选择。但要清楚它的局限性:不稳定、有风险、不适合商业用途。

如果你只是想体验一下 GPT-4 或 Grok,或者做些个人项目,可以试试。但如果是正经的生产环境,还是老老实实用官方 API 吧。毕竟,省下的那点钱和可能的麻烦比起来,不一定划算。


参考来源