ChatGPT-Plus 是使用官方 ChatGPT API 的应用程序。
演示 Demo / 反馈 Issues / 开发 Gitpod / 部署 Vercel
喜欢这个项目吗?请帮忙点个 Star ⭐️
或者分享给您的朋友,以帮助它得到改善!
ChatGPT-Plus 客户端是官方 ChatGPT API 的应用程序。该应用程序是对 OpenAI 的ChatGPT的官方 API 的封装应用。
- 📦 一个完整的 ChatGPT 客户端。
- 🚀 使用 Nextjs & Nestjs 构建,快速启动。
- 📱 响应式设计,支持移动端访问。
- 🌈 支持多种主题, 白天/夜间模式。
- 🌍 国际化支持,目前支持中文和英文。
- 📦 支持自定义提示词,查看在线推荐提示词
- 🎨 使用 CSS-in-JS 技术,支持主题定制。
- 📦 支持 Docker & Vercel 部署。
提供两种方式进行访问,要在 Node.js 中使用此模块,您需要在两种方法之间选择:
方法 | 免费? | 健壮? | 质量? |
---|---|---|---|
ChatGPTAPI |
❌ 否 | ✅ 是 | ✅️ 真实的 ChatGPT 模型 |
ChatGPTUnofficialProxyAPI |
✅ 是 | ☑️ 可能 | ✅ 真实的 ChatGPT |
-
ChatGPTAPI
- 使用带有官方 OpenAI 聊天完成 API(官方、强大的方法,但不免费)的gpt-3.5-turbo-0301
模型。您可以覆盖模型、完成参数和系统消息,以完全自定义您的助手。 -
ChatGPTUnofficialProxyAPI
- 使用非官方代理服务器以绕过 Cloudflare 的方式访问 ChatGPT 的后端 API(使用真实的 ChatGPT,比较轻量级,但依赖第三方服务器且有速率限制)。
这两种方法具有非常相似的 API,因此在它们之间切换应该很简单。
注意:我们强烈建议使用ChatGPTAPI
,因为它使用 OpenAI 官方支持的 API。在未来的发布版本中,我们可能会停止对ChatGPTUnofficialProxyAPI
的支持。
该请求原理采用的是 chatgpt-api提供的功能模块.
你可以使用 Gitpod 进行在线开发:
或者克隆到本地开发,按照以下步骤进行:
# clone the project
git clone https://github.com/zhpd/chatgpt-plus.git
如果没有 git 环境,可以直接下载 zip 包,解压后进入项目目录
本项目基于 Node.js 进行开发,需要 Node.js 14.0+ 环境。Make sure you're using
node >= 18
sofetch
is available (ornode >= 14
if you install a fetch polyfill).
本项目使用的是 OpenAI 官方提供的 API,需要申请 Api Key 和 AccessToken
- OpenAI 官方注册申请地址:https://platform.openai.com/,需要科学上网
- 通过其他方式获取
ApiKey
或AccessToken
点击查看
申请成功后,将 APIKey 和 AccessToken 填写到 chatgpt-plus/service/.env
文件中
推荐使用 VSCode 编辑器进行开发,安装插件
ESLint
和Prettier
,并在设置中开启Format On Save
配置端口和接口请求地址在根目录.env 里。 可直接复制根目录下的.env.example 文件进行修改,文件名修改为.env)
环境变量名 | 默认值 | 说明 |
---|---|---|
PORT |
3000 |
端口 |
NEXT_PUBLIC_API_URL |
http://localhost:3002 |
接口地址 |
配置文件
可直接复制根目录下的.env.example 文件进行修改,文件名修改为.env
# port
PORT=3000
# api url
NEXT_PUBLIC_API_URL=http://localhost:3002
# enter the project directory
cd chatgpt-plus
# install dependency
npm install
# develop
npm run dev
运行启动成功后,可在浏览器打开 http://localhost:3000 查看效果
配置端口和 ApiKey、AccessToken 在 service 目录下.env 里
环境变量名 | 默认值 | 说明 | |
---|---|---|---|
PORT |
3002 |
端口 | |
OPENAI_API_KEY |
- | API_KEY | |
OPENAI_ACCESS_TOKEN |
- | ACCESS_TOKEN | |
API_REVERSE_PROXY |
https://api.pawan.krd/backend-api/conversation |
代理 | |
TIMEOUT_MS |
60000 | 超时毫秒数 |
反向代理 URL | 作者 | 速率限制 | 最后检查日期 |
---|---|---|---|
https://bypass.churchless.tech/api/conversation |
@acheong08 | 5 req / 10 seconds by IP | 3/24/2023 |
https://api.pawan.krd/backend-api/conversation |
@PawanOsman | 50 req / 15 seconds (~3 r/s) | 3/23/2023 |
注:目前不公布反向代理工作方式的信息,以防止 OpenAI 禁用访问。
Q: 如果只使用前端页面,在哪里改请求接口?
A: 根目录下 .env
文件中的 API_URL
字段。
Q: 前端没有打字机效果?
A: 一种可能原因是经过 Nginx 反向代理,开启了 buffer,则 Nginx 会尝试从后端缓冲一定大小的数据再发送给浏览器。请尝试在反代参数后添加 proxy_buffering off;
,然后重载 Nginx。其他 web server 配置同理。
感谢所有做过贡献的人!
- 非常感谢项目支持者和所有其他贡献者 💪
- 非常感谢最初构建的参考项目@transitive-bullshit的chatgpt-api和@Chanzhaoyu的chatgpt-web提供的思路。👍
- 非常感谢OpenAI 创建的 ChatGPT 🔥
如果您觉得本项目对您有帮助,可以帮忙点个 Star ⭐️,或者分享给您的朋友,您的支持是我最大的动力!
MIT © zhpd