UnlimitedGPT
用 Selenium 自动化浏览器绕过 OpenAI 付费 API,免费调用 ChatGPT 网页版
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
用 Selenium 自动化浏览器绕过 OpenAI 付费 API,免费调用 ChatGPT 网页版
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
2022 年底 ChatGPT 发布后,OpenAI 仅开放了付费的官方 API(GPT-3.5/4),每千 Token 都要计费。对于想快速实验、快速集成的开发者而言,这笔成本不可忽视。而 ChatGPT 网页版本身免费(需要账号),于是社区出现了「用浏览器自动化模拟真人操作,拦截网络请求来获取回复」的技术路线——UnlimitedGPT 就是这一路线的代表性 Python 封装库。
作者 Sxvxgee(Twitter @Sxvxgeness)独立开发维护,项目托管在 GitHub 和 PyPI,当前版本 0.1.9.3,采用 GPL-3.0 开源许可。
UnlimitedGPT 的工作原理可以类比为「给 Python 写了一个自动化的 Chrome 插件」:
undetected_chromedriver(uc)启动 Chrome,绕过 Cloudflare 等反爬机制。相比普通 Selenium,uc 额外对 WebDriver 进行底层特征伪装,让网站难以识别自动化请求。Network.setCookie 将用户的 __Secure-next-auth.session-token 写入浏览器 cookie,完成身份认证,无需用户名密码。WebDriverWait 等待 ChatGPT 前端元素(输入框、发送按钮、回复区域)就绪,模拟人类打字输入消息。goog:loggingPrefs),从中提取网络接口返回的流式响应。# 核心调用示例
from UnlimitedGPT import ChatGPT
bot = ChatGPT(session_token="your_token_here", headless=True)
response = bot.send_message("解释量子纠缠")
print(response.response)
这套方案的关键依赖为:
undetected-chromedriver==3.4.5:反检测 Chrome 自动化selenium==4.9.1:浏览器控制框架PyVirtualDisplay==3.0:Linux 无头环境下的虚拟显示器(Xvfb)pyperclip:剪贴板操作,支持「模拟人类打字」功能UnlimitedGPT 的野心不只是「替代 openai 包」——它实际上是一个 ChatGPT 网页版的完整自动化 SDK:
| 功能 | 说明 |
|---|---|
| 发送/接收消息 | 流式响应,支持 conversation_id 续接对话 |
| 对话管理 | 重置当前对话、清空所有对话历史 |
| 多账号切换 | 在多个 ChatGPT 账号之间切换 |
| 主题切换 | 自动切换 ChatGPT 深色/浅色主题 |
| 会话数据 | 获取用户信息、Session 数据 |
| 打字模拟 | 自定义延迟,模拟人类输入节奏 |
| 反内容审核 | 通过 CDP 拦截 moderations 接口,禁用输出审核 |
| 云端协同 | 支持 Google Colab、Linux 无头服务器 |
| 代理支持 | 支持 HTTP/SOCKS 代理(无 Basic Auth) |
项目甚至支持获取共享对话链接的数据(shared_links_manage),这是通过 Backend API 实现的——不依赖浏览器 UI,直接调用 ChatGPT 内部接口。
代码结构清晰,采用分层设计:
UnlimitedGPT/
├── UnlimitedGPT.py # 主入口,ChatGPT 类
└── internal/
├── driver.py # ChatGPTDriver,封装 uc.Chrome
├── exceptions.py # 自定义异常(InvalidConversationID)
├── objects.py # 数据模型(ChatGPTResponse, User, SessionData, Conversation 等)
└── selectors.py # ChatGPTVariables,所有前端 XPath/CSS Selector 常量
selectors.py 是整个项目的「前端适配层」——作者通过 XPath 硬编码了 ChatGPT 页面元素的位置。这些 Selector 是高度脆弱的,一旦 ChatGPT 网页改版就会失效。项目中大量使用 try/except + 超时重试来处理 DOM 元素查找失败,体现了对页面不稳定性的预期。
第一,账号封禁风险。 OpenAI 的服务条款明确禁止使用自动化工具模拟真实用户。通过 Selenium 操作 ChatGPT 违反了 ToS,账号有被封禁的风险。作者在文档中也承认这一点。
第二,页面改版脆弱性。 Selector 硬编码依赖前端 DOM 结构,ChatGPT 每次 UI 更新都可能导致库失效。项目需要持续维护 selectors.py,这是维护成本的主要来源。
第三,官方 API 的竞争。 2023 年 OpenAI 开放了 GPT-3.5 Turbo API,价格已降至每千 Token $0.002,成本极低。同时 GPT-4o mini 等模型也在持续降价。对于大多数生产场景,直接调用官方 API 在稳定性、法律合规性上都更优。
第四,undetected-chromedriver 的依赖困境。 uc 是一个「反反爬」工具,其实现依赖 Chrome 内部 API 细节,Chrome 版本更新可能随时破坏功能。项目在 requirements 中固定了 undetected-chromedriver==3.4.5 版本,说明作者已意识到这个问题。
UnlimitedGPT 真正有价值的地方在于:
对于生产级应用,使用官方 API 或 Azure OpenAI Service 是更稳妥的选择。
UnlimitedGPT 代表了开源社区对「封闭平台」的一种技术回应——通过逆向工程让用户能够访问本应免费(或已付费)的服务。它与 pip install chatgpt(Node.js)、PyChatGPT 等同类项目共同构成了「ChatGPT 非官方 API 生态」。
这类项目的存在也反向推动了 OpenAI 加速开放更多官方能力(如 Assistants API、Fine-tuning),形成了良性的竞争关系。