Github 上有一个很火的项目:https://github.com/Yidadaa/ChatGPT-Next-Web
可以一键拥有你自己的跨平台 ChatGPT 应用。
部署方法也非常简单,可以根据其文档通过 vercel 一键部署,也可以使用 docker 在自己的服务器进行部署。
我在这里选择将这个应用部署到自己的服务器上。
准备:一台服务器、openai api key、域名(可选)
先看效果
获取 openai api key
登录 https://platform.openai.com/,进入左上角 API Keys。
点击创建 API keys
但是 API Keys 需要绑定国外有额度的信用卡,因为调用 chatgpt 的 api 是需要付费的,国内搞国外的信用卡比较麻烦。可以直接在某宝买 API Keys 试试。
Docker 部署 ChatGPT-Next-Web
参考官方的文档 https://github.com/Yidadaa/ChatGPT-Next-Web,非常简单就可以进行部署。
拉取镜像
docker pull yidadaa/chatgpt-next-web
创建并启动容器
docker run -d -p 3000:3000 \
-e OPENAI_API_KEY=sk-xxxx \
-e CODE=页面访问密码 \
yidadaa/chatgpt-next-web
我的启动命令:
docker run -d -p 3001:3000 --name=chatgpt-web \
-e BASE_URL=https://api.openai.com \
-e OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxxxx \
-e CODE=xxxxxxxxxxxxxxx \
-e DISABLE_GPT4=1 \
-e ENABLE_BALANCE_QUERY=1 \
yidadaa/chatgpt-next-web
访问项目
通过服务器 ip:3000 即可访问。
配置项
有比较多的配置项可选,在 docker 命令添加
-e 环境变量=环境变量值
即可
OPENAI_API_KEY
(必填项)
OpanAI 密钥,你在 openai 账户页面申请的 api key,使用英文逗号隔开多个 key,这样可以随机轮询这些 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。
AZURE_URL
(可选)
形如:https://{azure-resource-url}/openai/deployments/{deploy-name}
Azure 部署地址。
AZURE_API_KEY
(可选)
Azure 密钥。
AZURE_API_VERSION
(可选)
Azure Api 版本,你可以在这里找到:Azure 文档。
HIDE_USER_API_KEY
(可选)
如果你不想让用户自行填入 API Key,将此环境变量设置为 1 即可。
DISABLE_GPT4
(可选)
如果你不想让用户使用 GPT-4,将此环境变量设置为 1 即可。
ENABLE_BALANCE_QUERY
(可选)
如果你想启用余额查询功能,将此环境变量设置为 1 即可。
DISABLE_FAST_LINK
(可选)
如果你想禁用从链接解析预制设置,将此环境变量设置为 1 即可。
CUSTOM_MODELS
(可选)
示例:
+qwen-7b-chat,+glm-6b,-gpt-3.5-turbo,gpt-4-1106-preview=gpt-4-turbo
表示增加qwen-7b-chat
和glm-6b
到模型列表,而从列表中删除gpt-3.5-turbo
,并将gpt-4-1106-preview
模型名字展示为gpt-4-turbo
。 如果你想先禁用所有模型,再启用指定模型,可以使用-all,+gpt-3.5-turbo
,则表示仅启用gpt-3.5-turbo
用来控制模型列表,使用 +
增加一个模型,使用 -
来隐藏一个模型,使用 模型名=展示名
来自定义模型的展示名,用英文逗号隔开。
配置域名
准备域名,并解析到服务器,使用宝塔面板进行反代即可
参考https://blog.miykah.top/archives/Ns7n1T6d
遇到的问题
项目正常运行两天之后,出现问题:给 chatgpt 发消息,报错:
chatgpt-next-web 仓库中也有很多 issue 提到这个问题:https://github.com/Yidadaa/ChatGPT-Next-Web/issues?q=3001
应该是这个 docker 的容器 ping 不通外网域名,不知道为什么。
进入容器,尝试 ping api.openai.com
docker exec -it chatgpt-web sh
/app # ping api.openai.com
没有任何反应。
然后一直解决不了这个问题。
最后我将容器的网络 换成了 halo_default 的网络后,解决了这个问题。。。。。
就这样吧 - -
评论区