pyChatGPT
通过无头浏览器自动化实现 ChatGPT 网页调用的 Python 非官方封装库
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
通过无头浏览器自动化实现 ChatGPT 网页调用的 Python 非官方封装库
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
2022 年 11 月底,OpenAI 推出 ChatGPT,随即在全球引发 AI 热潮。彼时 ChatGPT 仅通过网页界面提供服务,开发者若想在自有应用中调用 ChatGPT,只能依赖网页抓取或逆向工程——既不稳定,也不合规。在此背景下,台湾开发者 terry3041 于 2022 年 12 月初发布了 pyChatGPT 开源项目,成为最早一批尝试用 Python 程序化调用 ChatGPT 的非官方方案之一。
作者 terry3041 在项目 README 中明确写道:"I stopped maintaining this project as ChatGPT now has an official API." —— 随着 OpenAI 于 2023 年初正式发布 ChatGPT 官方 API,该项目的核心使命已经完成,作者停止了维护。但截至目前该项目仍有 1,337 颗 GitHub Stars,说明其技术思路和实现方式对后来者仍有参考价值。
pyChatGPT 的技术核心是无头浏览器自动化:通过 Selenium 控制 Chrome/Chromium 浏览器模拟真实用户访问 ChatGPT 网页,再提取回复内容。整个架构分为两层:

图1:pyChatGPT 要求用户从 ChatGPT 网页中手动提取 __Secure-next-auth.session-token Cookie,作为认证凭据
项目支持三种认证方式:
__Secure-next-auth.session-token Cookie 值,传入 ChatGPT(session_token='...')。最稳定,但需要人工操作一次。pypasser 和 2Captcha 两种自动破解方案。login_cookies_path 参数支持将认证 Cookie 写入本地文件,下次启动直接复用,避免重复登录。这是整个项目最具技术含量的部分。ChatGPT 网站部署了 Cloudflare 的 Bot 检测机制,传统 HTTP 请求会被直接拦截。pyChatGPT 使用了 undetected-chromedriver(uc)库,这是一款专为绕过反爬检测而设计的 Selenium 封装。它通过以下技术手段伪装为真实浏览器:
send_message() 方法是整个库的执行引擎:
https://chat.openai.com/chatsession_token Cookie 或执行邮箱登录流程<textarea> 输入框中填入用户问题,模拟回车提交result-streaming 元素){'message': content, 'conversation_id': id, 'parent_id': id} 结构from pyChatGPT import ChatGPT
api = ChatGPT(session_token='abc123')
resp = api.send_message('你好,介绍一下自己')
print(resp['message'])
项目源码位于 src/pyChatGPT/,结构清晰:
| 文件 | 职责 |
|---|---|
pyChatGPT.py | 核心类,含 ChatGPT 主类(550+ 行)和 Auth0 认证 |
__init__.py | 包导出接口 |
__main__.py | CLI 交互模式入口 |
关键依赖仅两个:undetected-chromedriver >= 3.2.1 和 markdownify >= 0.11.6(将 HTML 回复转为 Markdown)。
作者在 README 首页明确标注 "I stopped maintaining this project",原因很直接:OpenAI 在 2023 年初发布了官方 ChatGPT API(gpt-3.5-turbo / gpt-4),提供了稳定、合规、官方的程序化调用方式。任何继续维护非官方绕路方案的意义都不大了。
这意味着:
pyChatGPT 依赖 Chrome/Chromium 浏览器,这意味着:
pip install 即可因此,虽然它是 Python 库,但部署难度并不低,属于"桌面应用逻辑"而非"服务端 API"。
尽管项目已停止维护,它在 AI 开源史上留下了自己的印记:
chatgpt-api(Node.js)、revChatGPT(Python)等大量非官方客户端都借鉴了类似的 Cookie 认证思路!
图2:pyChatGPT 仓库封面图
pyChatGPT 是一个典型的"时代产物"项目:在官方 API 缺席的空窗期,用技术手段填补了开发者的迫切需求。它的技术实现(Selenium + Cloudflare 绕过)有相当的工程复杂度,代码质量在当时属于上乘。但随着官方 API 的发布,项目自然完成了历史使命。
对于今天想调用 ChatGPT 的开发者,强烈建议直接使用 OpenAI 官方 API;对于想学习浏览器自动化和反爬绕过技术的学习者,pyChatGPT 的源码仍然值得一读。