侧边栏壁纸
  • 累计撰写 27 篇文章
  • 累计创建 42 个标签
  • 累计收到 33 条评论

目 录CONTENT

文章目录

如何搭建自己专属的 ChatGPT(ChatGPT-Next-Web)

miykah
2023-12-06 / 2 评论 / 2 点赞 / 442 阅读 / 6867 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2023-12-11,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

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-chatglm-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 的网络后,解决了这个问题。。。。。

就这样吧 - -

2

评论区