资源描述
chatgpt.js 是一个轻量、无依赖的客户端 JavaScript 库,专为在浏览器或 Node.js 环境中安全、高效地与 ChatGPT(基于官方 Web API)交互而设计。支持会话管理、消息流式渲染、上下文持久化与错误重试机制,适用于构建嵌入式聊天界面、AI 增强型 Web 应用及低代码 AI 集成场景,显著降低前端接入门槛。
详细内容
# chatgpt.js — 轻量级 ChatGPT 客户端 JavaScript 库
## 框架简介与定位
`chatgpt.js` 是一个开源、零依赖的纯 JavaScript 库,专注于在**客户端环境**(浏览器或 Deno/Node.js 的现代运行时)中安全、合规地调用 ChatGPT 的 Web 端通信协议(非反向代理,不绕过官方认证)。它不封装 OpenAI REST API,而是模拟并抽象化官方 `chat.openai.com` 前端会话交互逻辑,适用于需保留原生 ChatGPT 会话上下文、身份状态与 UI 兼容性的嵌入式集成场景。
## 核心特性
- ✅ **无 Token 代理模式**:直接复用用户已登录的 ChatGPT 会话 Cookie(需用户授权),避免暴露 API Key,符合安全合规要求;
- ✅ **流式响应支持**:完整解析 `text/event-stream`,逐字节触发 `onMessageChunk` 回调,实现类官方的打字机效果;
- ✅ **会话状态管理**:自动维护 conversation ID、parent message ID、model 版本等关键元数据,支持多轮连续对话;
- ✅ **错误弹性处理**:内置网络中断重试、429 限流退避、会话过期自动刷新(需配合登录态维持);
- ✅ **轻量可嵌入**:ESM/CJS/UMD 多格式发布,压缩后仅 ~12 KB,无外部依赖,可直接 `<script type="module">` 引入;
## 适用场景
- 在自有 Web 应用中嵌入 ChatGPT 对话面板(如客服助手、文档智能问答);
- 构建基于 ChatGPT 会话能力的 PWA 或桌面 Electron 应用;
- 教育/演示类项目中快速验证 ChatGPT 交互逻辑,无需后端中转;
- 低代码平台中作为「AI 连接器」组件,供非开发者配置调用;
- 合规前提下,对已有 ChatGPT 账户进行自动化会话测试与行为分析(需遵守 [OpenAI Terms](https://openai.com/policies/terms-of-use))。
## 快速入门
### 安装
```bash
# npm
npm install chatgpt.js
# 或直接通过 CDN(浏览器)
<script type="module">
import { ChatGPT } from 'https://cdn.jsdelivr.net/npm/chatgpt.js@latest/dist/index.esm.js';
</script>
```
### 最小示例(浏览器环境,需用户已登录 chat.openai.com)
```js
const chat = new ChatGPT();
chat.on('message', (msg) => console.log('Received:', msg.content));
chat.on('error', (err) => console.error('Chat error:', err));
await chat.init(); // 自动检测并复用当前页面 ChatGPT 登录态
await chat.sendMessage('Hello, explain quantum computing in simple terms.');
```
> ⚠️ 注意:首次使用需确保用户已在同一浏览器上下文中登录 https://chat.openai.com,且未启用严格第三方 Cookie 限制。
## 生态与社区
- **源码与文档**:主仓库托管于 GitHub(项目名 `chatgpt.js`),文档站点为 [https://chatgpt.js.org](https://chatgpt.js.org),含 API 参考、最佳实践与常见问题;
- **社区支持**:活跃 Discord 社区提供实时答疑,GitHub Issues 用于 bug 报告与功能建议;
- **兼容性**:持续适配 ChatGPT Web 界面更新(v2023–2024 主要版本),版本号遵循语义化规范(SemVer);
- **贡献友好**:提供完整的 E2E 测试套件(基于 Playwright),欢迎提交 PR 改进会话稳定性与新特性支持。