ChatGPT
逆向 ChatGPT 网页协议,让 Python 开发者直接调用 GPT 的开源工具包
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
逆向 ChatGPT 网页协议,让 Python 开发者直接调用 GPT 的开源工具包
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
2022 年底,OpenAI 发布 ChatGPT,瞬间引爆全球互联网。然而,ChatGPT 并没有提供官方的 API 接口——用户只能通过网页聊天界面与它交互,这给开发者生态设置了极高的门槛:无法批量调用、无法集成到自动化工作流、无法做大规模测试。
面对这一困境,一位当时还在读大学的开发者 Antonio Cheong(网名 acheong08)决定自己动手。他通过抓包分析 ChatGPT 网页版与后端服务器的通信协议,成功逆向出了完整的 API 调用方式,并于 2022 年底将成果开源为 revChatGPT 项目。
这个项目在 GitHub 上迅速走红,star 数一度突破 27,000,成为 2023 年初最受关注的开源项目之一。它解决了一个真实的痛点:让任何人都能用 Python 代码直接调用 ChatGPT,无需翻网页,无需手动复制粘贴。
revChatGPT 项目并非单一实现,而是采用了双版本并行的架构设计,对应源码中两个核心模块:V1.py 和 V3.py。
V1 是这个项目的起点,也是它最核心、最具技术含量的部分。它的目标是通过逆向工程,模拟浏览器与 ChatGPT 网页版后端的 WebSocket/SSE 通信,从而获取模型响应。
核心技术栈:
bypass.churchless.tech 代理服务器来绕过 Cloudflare 的机器人检测。该代理服务由作者独立维护,开源于 ChatGPT-Proxy-V4工作原理(简化版):
OpenAIAuth 模块完成登录认证,获取 session tokenV1 支持的功能相当丰富:多轮对话管理、插件系统(通过 plugin_ids 配置)、GPT-4 模型切换、会话历史控制等。其中插件系统允许加载第三方插件,示例中配置了 Wolfram Alpha 插件来增强 ChatGPT 的计算能力。
重要限制: 由于 OpenAI 持续加强安全策略,V1 所依赖的 Cloudflare bypass 机制在实际使用中稳定性较差,access_token 也容易快速失效。这不是代码 bug,而是"猫鼠游戏"的必然结果。
V3 是项目后期新增的模块,专门针对 OpenAI 官方 Chat API(即 gpt-3.5-turbo / gpt-4 系列)提供简洁的 Python 封装。
V3 的实现相对简单:
from revChatGPT.V3 import Chatbot
chatbot = Chatbot(api_key="<your_api_key>")
response = chatbot.ask("Hello world")
这个模块的核心价值在于:
ask_stream() 方法实现打字机效果tiktoken 做 token 计数,自动截断超长对话V3 支持所有 OpenAI 官方支持的模型:gpt-3.5-turbo(包含 16k 上下文版本)、gpt-4(包含 32k 上下文版本),并允许配置 temperature、top_p、presence_penalty 等采样参数。
| 维度 | 评分 | 说明 |
|---|---|---|
| 代码组织 | ★★★★☆ | 模块化清晰,V1/V3 职责分离,utils 提供公共工具 |
| 类型系统 | ★★★☆☆ | 使用 typings.py 定义错误类型体系,但缺少完整类型注解 |
| 测试覆盖 | ★★☆☆☆ | 有 tests/ 目录,但覆盖范围有限 |
| 文档质量 | ★★★★★ | 多语言 README(中文/日文/韩文/西班牙文),wiki 详尽 |
| 错误处理 | ★★★★☆ | 完善的错误类型层次(9 种 ErrorType),Python 3.11+ 支持 add_note |
| 安全实践 | ★★☆☆☆ | config.json 明文存储 access_token,无加密 |
项目最明显的安全隐患是 config.json 以明文存储 access_token。在生产环境中,建议:
.gitignore 但仍需注意)此外,V1 本质上是对抗性使用 OpenAI 服务的行为,存在账号被封禁的风险。项目 README 也明确声明:"This is not an official OpenAI product"。
截至分析时,项目最近一次代码提交为 2023 年 8 月 2 日,最新 release 版本为 v6.8.6(2023 年 7 月 20 日)。这意味着 revChatGPT V1 模块所依赖的逆向接口已超过一年未更新。
原因分析: V1 的 Cloudflare bypass 机制依赖持续迭代的"打补丁"工作,一旦 OpenAI 加强反爬措施,绕过方案可能直接失效。维护成本高、收益递减,加上 OpenAI 官方 Chat API 逐渐成熟(V3 方案更稳定),作者逐渐失去了继续维护 V1 的动力。
对于新用户: 如果你需要调用 GPT,建议直接使用 OpenAI 官方 API(V3 方式),而非依赖 V1 的逆向接口。官方 API 稳定、符合 TOS、长期可用。
尽管 V1 已不再维护,revChatGPT 项目在 AI 开源史上留下了浓墨重彩的一笔:
图1:revChatGPT 贡献者列表。该项目吸引了来自全球的开发者参与,成为 2023 年初最具影响力的 AI 开源项目之一。