docker 一键部署 ChatGPT 服务端
通过 openai 的 API 调用 ChatGPT 的能力,便于共享给家人使用:
历史对话存储在浏览器中,确保个人隐私:
优点:
- Docker 一键部署,任何环境均可使用
- 模仿 ChatGPT 的操作 UI,保持用户习惯
- 在个人 VPS 上部署可免处挂梯子麻烦,便于家人共享
- 避免一号多用带来的风控
- Web 页面有 BasicAuth 认证,防止未授权访问
- 自带防爬虫机制,避免被搜索引擎抓取
本质就是通过官方 API 使用 ChatGPT 的能力,与直接使用 ChatGPT 是一样的。API 好处是自选模型,价格上比 ChatGPT Plus 包月划算。
- 部署一台 VPS 服务器(可用于直接部署 ChatGPT-Docker、亦可用于本地部署后利用 VPS 代理科学上网再使用)
- VPS/本地安装 docker、docker-compose
- VPS/本地安装 python3
- 申请一个 openai 账户,同时绑定一张境外银行卡以激活 API 调用权限(费用自负)
- 生成一个 API key
- 安装依赖:
python3 -m pip install -r py/requirements.txt
- 构建镜像:
bin/build.sh
- 生成 Nginx BasicAuth:
python py/gen_basicauth.py -u "chatgpt" -p "TPGtahc#654321"
- 运行容器:
bin/run.sh|ps1 -k "${OPENAI_API_KEY}"
- 访问服务: http://127.0.0.1:7080 (默认账密:
chatgpt / TPGtahc#654321
)
Nginx 支持多个 BasicAuth,可以重复执行
python py/gen_basicauth.py
命令得到帐密后,把他们复制到 .basicauth 中即可(一行一个帐密)
更多运行参数:
参数 | 示例值 | 说明 |
---|---|---|
-t ${PROTOCOL} |
https | Web 页面使用 http/https 协议 |
-d ${DOMAIN}] |
local.chatgpt.com | 服务域名(浏览器访问地址),没有申请域名时需指定为 IP。亦可指定本地域名、使用 sudo (管理员权限)执行脚本会自动把本地解析写到 hosts |
-i ${IP} |
127.0.0.1 | 域名解析到的 IP,若需要对公访问,这里需要设置为公网 IP |
-k ${OPENAI_API_KEY} |
sk-...abcd |
ChatGPT API key |
-m ${OPENAI_MODEL} |
gpt-3.5-turbo | ChatGPT Model,枚举值和价格请参考官网文档 |
-s ${SOCKS_PROXY_HOST} |
host.docker.internal | Socks5 代理服务,如果代理在宿主机上,需要使用 host.docker.internal 作为 IP |
-r ${SOCKS_PROXY_PORT} |
10089 | Socks5 代理服务端口 |
-r ${HTTPS_PROXY} |
http://host.docker.internal:10088 | HTTP 代理服务,和 Socks5 二选一 |
本项目引用了 chatgpt-web 作为子工程,主要是修改了原工程的部分配置代码。
拉取子工程更新: git submodule update --remote --recursive