非常火爆的A well-designed cross-platform ChatGPT UI (Web / PWA / Linux / Win / MacOS). 一键拥有你自己的跨平台 ChatGPT 应用。
这个开源项目可以做到一键免费部署你的私人 ChatGPT 网页应用。如果部署Vercel,Vercel可以绑定自己的域名,或者配合Cloudflare自定义域名中转,应该可以让国内访问。
主要功能
在 1 分钟内使用 Vercel 免费一键部署
提供体积极小(~5MB)的跨平台客户端(Linux/Windows/MacOS), 下载地址
完整的 Markdown 支持:LaTex 公式、Mermaid 流程图、代码高亮等等
精心设计的 UI,响应式设计,支持深色模式,支持 PWA
极快的首屏加载速度(~100kb),支持流式响应
隐私安全,所有数据保存在用户浏览器本地
预制角色功能(面具),方便地创建、分享和调试你的个性化对话
海量的内置 prompt 列表,来自中文和英文
自动压缩上下文聊天记录,在节省 Token 的同时支持超长对话
多国语言支持:English, 简体中文, 繁体中文, 日本語, Español, Italiano, Türkçe, Deutsch, Tiếng Việt, Русский, Čeština
拥有自己的域名?好上加好,绑定后即可在任何地方无障碍快速访问
开始使用
准备好你的 OpenAI API Key;
点击右侧按钮开始部署: Deploy with Vercel,直接使用 Github 账号登录即可,记得在环境变量页填入 API Key 和页面访问密码 CODE;
部署完毕后,即可开始使用;
(可选)绑定自定义域名:Vercel 分配的域名 DNS 在某些区域被污染了,绑定自定义域名即可直连。
配置页面访问密码
配置密码后,用户需要在设置页手动填写访问码才可以正常聊天,否则会通过消息提示未授权状态。
警告:请务必将密码的位数设置得足够长,最好 7 位以上,否则会被爆破。
本项目提供有限的权限控制功能,请在 Vercel 项目控制面板的环境变量页增加名为 CODE 的环境变量,值为用英文逗号分隔的自定义密码:
code1,code2,code3
增加或修改该环境变量后,请重新部署项目使改动生效。
环境变量
本项目大多数配置项都通过环境变量来设置,教程:如何修改 Vercel 环境变量。
OPENAI_API_KEY (必填项)
OpanAI 密钥,你在 openai 账户页面申请的 api key。
CODE (可选)
访问密码,可选,可以使用逗号隔开多个密码。
警告:如果不填写此项,则任何人都可以直接使用你部署后的网站,可能会导致你的 token 被急速消耗完毕,建议填写此选项。
BASE_URL (可选)
Default: https://api.openai.com
Examples: http://your-openai-proxy.com
OpenAI 接口代理 URL,如果你手动配置了 openai 接口代理,请填写此选项。
如果遇到 ssl 证书问题,请将 BASE_URL 的协议设置为 http。
OPENAI_ORG_ID (可选)
指定 OpenAI 中的组织 ID。
HIDE_USER_API_KEY (可选)
如果你不想让用户自行填入 API Key,将此环境变量设置为 1 即可。
DISABLE_GPT4 (可选)
如果你不想让用户使用 GPT-4,将此环境变量设置为 1 即可。
HIDE_BALANCE_QUERY (可选)
如果你不想让用户查询余额,将此环境变量设置为 1 即可。
部署
容器部署 (推荐)
Docker 版本需要在 20 及其以上,否则会提示找不到镜像。
⚠️ 注意:docker 版本在大多数时间都会落后最新的版本 1 到 2 天,所以部署后会持续出现“存在更新”的提示,属于正常现象。
docker pull yidadaa/chatgpt-next-web
docker run -d -p 3000:3000 \
-e OPENAI_API_KEY=sk-xxxx \
-e CODE=页面访问密码 \
yidadaa/chatgpt-next-web
你也可以指定 proxy:
docker run -d -p 3000:3000 \
-e OPENAI_API_KEY=sk-xxxx \
-e CODE=页面访问密码 \
--net=host \
-e PROXY_URL=http://127.0.0.1:7890 \
yidadaa/chatgpt-next-web
如果你的本地代理需要账号密码,可以使用:
-e PROXY_URL="http://127.0.0.1:7890 user password"
如果你需要指定其他环境变量,请自行在上述命令中增加 -e 环境变量=环境变量值 来指定。
本地部署
在控制台运行下方命令:
bash <(curl -s https://raw.githubusercontent.com/Yidadaa/ChatGPT-Next-Web/main/scripts/setup.sh)
⚠️ 注意:如果你安装过程中遇到了问题,请使用 docker 部署。
Vercel 的使用说明
如何新建项目
当你从 Github fork 本项目之后,需要重新在 Vercel 创建一个全新的 Vercel 项目来重新部署,你需要按照下列步骤进行。
进入 Vercel 控制台首页;
点击 Add New;
选择 Project。
在 Import Git Repository 处,搜索 chatgpt-next-web;
选中新 fork 的项目,点击 Import。
在项目配置页,点开 Environmane Variables 开始配置环境变量;
依次新增名为 OPENAI_API_KEY 和 CODE (访问密码) 的环境变量;
填入环境变量对应的值;
点击 Add 确认增加环境变量;
请确保你添加了 OPENAI_API_KEY,否则无法使用;
点击 Deploy,创建完成,耐心等待 5 分钟左右部署完成。
如何增加自定义域名
[TODO]
如何更改环境变量
进去 Vercel 项目内部控制台,点击顶部的 Settings 按钮;
点击左侧的 Environment Variables;
点击已有条目的右侧按钮;
选择 Edit 进行编辑,然后保存即可。
⚠️️ 注意:每次修改完环境变量,你都需要重新部署项目来让改动生效!
如何重新部署
进入 Vercel 项目内部控制台,点击顶部的 Deployments 按钮;
选择列表最顶部一条的右侧按钮;
点击 Redeploy 即可重新部署。
常见问题
如何快速获得帮助?
询问 ChatGPT / Bing / 百度 / Google 等。
询问网友。请提供问题的背景信息和碰到问题的详细描述。高质量的提问容易获得有用的答案。
部署相关问题
各种部署方式详细教程参考:https://rptzik3toh.feishu.cn/docx/XtrdduHwXoSCGIxeFLlcEPsdn8b
为什么 Docker 部署版本一直提示更新
Docker 版本相当于稳定版,latest Docker 总是与 latest release version 一致,目前我们的发版频率是一到两天发一次,所以 Docker 版本会总是落后最新的提交一到两天,这在预期内。
如何部署在 Vercel 上
注册 Github 账号,fork 该项目
注册 Vercel(需手机验证,可以用中国号码),连接你的 Github 账户
Vercel 上新建项目,选择你在 Github fork 的项目,按需填写环境变量,开始部署。部署之后,你可以在有梯子的条件下,通过 vercel 提供的域名访问你的项目。
如果需要在国内无墙访问:在你的域名管理网站,添加一条域名的 CNAME 记录,指向 cname.vercel-dns.com。之后在 Vercel 上设置你的域名访问。
如何修改 Vercel 环境变量
进入 vercel 的控制台页面;
选中你的 chatgpt next web 项目;
点击页面头部的 Settings 选项;
找到侧边栏的 Environment Variables 选项;
修改对应的值即可。
环境变量 CODE 是什么?必须设置吗?
这是你自定义的访问密码,你可以选择:
不设置,删除该环境变量即可。谨慎:此时任何人可以访问你的项目。
部署项目时,设置环境变量 CODE(支持多个密码逗号分隔)。设置访问密码后,用户需要在设置界面输入访问密码才可以使用。参见相关说明
为什么我部署的版本没有流式响应
相关讨论:#386
如果你使用 nginx 反向代理,需要在配置文件中增加下列代码:
不缓存,支持流式输出
proxy_cache off; # 关闭缓存
proxy_buffering off; # 关闭代理缓冲
chunked_transfer_encoding on; # 开启分块传输编码
tcp_nopush on; # 开启TCP NOPUSH选项,禁止Nagle算法
tcp_nodelay on; # 开启TCP NODELAY选项,禁止延迟ACK算法
keepalive_timeout 300; # 设定keep-alive超时时间为65秒
如果你是在 netlify 部署,此问题依然等待解决,请耐心等待。
我部署好了,但是无法访问
请检查排除以下问题:
服务启动了吗?
端口正确映射了吗?
防火墙开放端口了吗?
到服务器的路由通吗?
域名正确解析了吗?
什么是代理,如何使用?
由于 OpenAI 的 IP 限制,中国和其他一些国家/地区无法直接连接 OpenAI API,需要通过代理。你可以使用代理服务器(正向代理),或者已经设置好的 OpenAI API 反向代理。
正向代理例子:科学上网梯子。docker 部署的情况下,设置环境变量 HTTP_PROXY 为你的代理地址(例如:10.10.10.10:8002)。
反向代理例子:可以用别人搭建的代理地址,或者通过 Cloudflare 免费设置。设置项目环境变量 BASE_URL 为你的代理地址。
国内服务器可以部署吗?
可以但需要解决的问题:
需要代理才能连接 github 和 openAI 等网站;
国内服务器要设置域名解析的话需要备案;
国内政策限制代理访问外网/ChatGPT 相关应用,可能被封。
为什么 docker 部署后出现网络错误?
详见讨论:#1569
使用相关问题
为什么会一直提示“出错了,稍后重试吧”
原因可能有很多,请依次排查:
请先检查你的代码版本是否为最新版本,更新到最新版本后重试;
请检查 api key 是否设置正确,环境变量名称必须为全大写加下划线;
请检查 api key 是否可用;
如果经历了上述步骤依旧无法确定问题,请在 issue 区提交一个新 issue,并附上 vercel 的 runtime log 或者 docker 运行时的 log。
为什么 ChatGPT 的回复会乱码
设置界面 - 模型设置项中,有一项为 temperature,如果此值大于 1,那么就有可能造成回复乱码,将其调回 1 以内即可。
使用时提示“现在是未授权状态,请在设置页输入访问密码”?
项目通过环境变量 CODE 设置了访问密码。第一次使用时,需要到设置中,输入访问码才可以使用。
使用时提示 “You exceeded your current quota, …”
API KEY 有问题。余额不足。
使用时遇到 “Error: Loading CSS chunk xxx failed…”
为了减少首屏白屏时间,默认启用了分块编译,技术原理见下:
https://nextjs.org/docs/app/building-your-application/optimizing/lazy-loading
https://stackoverflow.com/questions/55993890/how-can-i-disable-chunkcode-splitting-with-webpack4
vercel/next.js#38507
https://stackoverflow.com/questions/55993890/how-can-i-disable-chunkcode-splitting-with-webpack4
然而 NextJS 的兼容性比较差,在比较老的浏览器上会导致此报错,可以在编译时关闭分块编译。
对于 Vercel 平台,在环境变量中增加 DISABLE_CHUNK=1,然后重新部署即可; 对于自行编译部署的项目,在构建时使用 DISABLE_CHUNK=1 yarn build 构建即可; 对于 Docker 用户,由于 Docker 打包时已经构建完毕,所以暂不支持关闭此特性。
注意,关闭此特性后,用户会在第一次访问网站时加载所有资源,如果用户网络状况较差,可能会引起较长时间的白屏,从而影响用户使用体验,所以自行考虑。
使用时遇到 “NotFoundError: Failed to execute ‘removeChild’ on ‘Node’: The node…”
请关闭浏览器自身的自动翻译功能,并关闭所有自动翻译插件。
网络服务相关问题
Cloudflare 是什么?
Cloudflare(CF)是一个提供 CDN,域名管理,静态页面托管,边缘计算函数部署等的网络服务供应商。常见的用途:购买和/或托管你的域名(解析、动态域名等),给你的服务器套上 CDN(可以隐藏 ip 免被墙),部署网站(CF Pages)。CF 免费提供大多数服务。
Vercel 是什么?
Vercel 是一个全球化的云平台,旨在帮助开发人员更快地构建和部署现代 Web 应用程序。本项目以及许多 Web 应用可以一键免费部署在 Vercel 上。无需懂代码,无需懂 linux,无需服务器,无需付费,无需设置 OpenAI API 代理。缺点是需要绑定域名才可以在国内无墙访问。
如何获得一个域名?
自己去域名供应商处注册,国外有 Namesilo(支持支付宝), Cloudflare 等等,国内有万网等等;
免费的域名供应商:eu.org(二级域名)等;
问朋友要一个免费的二级域名。
如何获得一台服务器
国外服务器供应商举例:亚马逊云,谷歌云,Vultr,Bandwagon,Hostdare,等等; 国外服务器事项:服务器线路影响国内访问速度,推荐 CN2 GIA 和 CN2 线路的服务器。若服务器在国内访问困难(丢包严重等),可以尝试套 CDN(Cloudflare 等供应商)。
国内服务器供应商:阿里云,腾讯等; 国内服务器事项:解析域名需要备案;国内服务器带宽较贵;访问国外网站(Github, openAI 等)需要代理。
什么情况下服务器要备案?
在中国大陆经营的网站按监管要求需要备案。实际操作中,服务器位于国内且有域名解析的情况下,服务器供应商会执行监管的备案要求,否则会关停服务。通常的规则如下:
服务器位置 域名供应商 是否需要备案
国内 国内 是
国内 国外 是
国外 国外 否
国外 国内 通常否
换服务器供应商后需要转备案。
OpenAI 相关问题
如何注册 OpenAI 账号?
去 chat.openai.com 注册。你需要:
一个良好的梯子(OpenAI 支持地区原生 IP 地址)
一个支持的邮箱(例如 Gmail 或者公司/学校邮箱,非 Outlook 或 qq 邮箱)
接收短信认证的方式(例如 SMS-activate 网站)
怎么开通 OpenAI API? 怎么查询 API 余额?
官网地址(需梯子):https://platform.openai.com/account/usage 有网友搭建了无需梯子的余额查询代理,请询问网友获取。请鉴别来源是否可靠,以免 API Key 泄露。
我新注册的 OpenAI 账号怎么没有 API 余额?
(4 月 6 日更新)新注册账号通常会在 24 小时后显示 API 余额。当前新注册账号赠送 5 美元余额。
如何给 OpenAI API 充值?
OpenAI 只接受指定地区的信用卡(中国信用卡无法使用)。一些途径举例:
Depay 虚拟信用卡
申请国外信用卡
网上找人代充
如何使用 GPT-4 的 API 访问?
GPT-4 的 API 访问需要单独申请。到以下地址填写你的信息进入申请队列 waitlist(准备好你的 OpenAI 组织 ID):https://openai.com/waitlist/gpt-4-api 之后等待邮件消息。
开通 ChatGPT Plus 不代表有 GPT-4 权限,两者毫无关系。
如何使用 Azure OpenAI 接口
请参考:#371
为什么我的 Token 消耗得这么快?
相关讨论:#518
如果你有 GPT 4 的权限,并且日常在使用 GPT 4 api,那么由于 GPT 4 价格是 GPT 3.5 的 15 倍左右,你的账单金额会急速膨胀;
如果你在使用 GPT 3.5,并且使用频率并不高,仍然发现自己的账单金额在飞快增加,那么请马上按照以下步骤排查:
去 openai 官网查看你的 api key 消费记录,如果你的 token 每小时都有消费,并且每次都消耗了上万 token,那你的 key 一定是泄露了,请立即删除重新生成。不要在乱七八糟的网站上查余额。
如果你的密码设置很短,比如 5 位以内的字母,那么爆破成本是非常低的,建议你搜索一下 docker 的日志记录,确认是否有人大量尝试了密码组合,关键字:got access code
通过上述两个方法就可以定位到你的 token 被快速消耗的原因:
如果 openai 消费记录异常,但是 docker 日志没有问题,那么说明是 api key 泄露;
如果 docker 日志发现大量 got access code 爆破记录,那么就是密码被爆破了。
API 是怎么计费的?
OpenAI 网站计费说明:https://openai.com/pricing#language-models
OpenAI 根据 token 数收费,1000 个 token 通常可代表 750 个英文单词,或 500 个汉字。输入(Prompt)和输出(Completion)分别统计费用。
模型 用户输入(Prompt)计费 模型输出(Completion)计费 每次交互最大 token 数
gpt-3.5-turbo $0.0015 / 1 千 tokens $0.002 / 1 千 tokens 4096
gpt-3.5-turbo-16K $0.003 / 1 千 tokens $0.004 / 1 千 tokens 16384
gpt-4 $0.03 / 1 千 tokens $0.06 / 1 千 tokens 8192
gpt-4-32K $0.06 / 1 千 tokens $0.12 / 1 千 tokens 32768
gpt-3.5-turbo 和 gpt3.5-turbo-0301(或者 gpt3.5-turbo-mmdd)模型有什么区别?
官方文档说明:https://platform.openai.com/docs/models/gpt-3-5文章来源:https://www.toymoban.com/news/detail-771375.html
gpt-3.5-turbo 是最新的模型,会不断得到更新。
gpt-3.5-turbo-0301 是 3 月 1 日定格的模型快照,不会变化,预期 3 个月后被新快照替代。文章来源地址https://www.toymoban.com/news/detail-771375.html
到了这里,关于非常火爆的ChatGPT 一键轻松拥有自己专属的 ChatGPT 网页服务,支持跨平台 ChatGPT 应用 (Web / PWA / Linux / Win / MacOS)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!