前言
ChatGPT免费版,如果多聊几句,gpt-4/4o的quota的不够用;但如果开通Plus,每个月$20美元也不便宜,如果用得不够多总觉得很亏。
还是通过api部署自己的服务比较好,用多少算多少,而且现在Azure中申请4/4o的API也很容易,不用一等再等了。
通过部署ChatGPT-Next-Web来实现自建ChatGPT服务ChatGPT-Next-Web。
提前条件
本篇中ChatGPT-Next-Web服务是通过微软Azure OpenAI API + docker部署的,所以你必须先拥有以下两样:
– Azure账户。最好是非国内的,国内的账户的没试过。
– 公网上的虚拟机。同样,最好是非国内的,虽然目前可以直接Azure API,但不知以后怎样;另外,国内的主机要开web访问也非常麻烦。
创建Azure OpenAI服务
- 找到Azure OpenAI(没看到的话直接搜索),然后按”创建”
-
订阅账户、资源群组、名称、定价层等,按照自身实际情况选择或填写就可以。这里最重要的选择是区域,因为不同区域提供的模型是不一样的,详细可以参考这里 ,还有价格。
-
网络和tag根据自身情况选择,本例中是对所有网络开放存取,提交后后台会进行部署,约1、2分钟就能创建完成。
- 点击”Azure OpenAI”的图标,就能看到刚才创建的服务。
- 点击进去,在”资源管理”->”金钥与端点”可以看到API的key和url
- 还需要部署模型,点击“模型部署”->“管理部署”,部署新的模型(会打开新的页面)。
- 点击”部署模型”->”部署基本模型”,选择要部署的模型(不同区域这里的选项会有不同)
- 下一步要输入部署名称,点击”确定”即部署完成。需要注意,调用是以”部署名称”为准,不是模型名称(本例中部署名称跟模型名称一样)。
容器部署ChatGPT-Next-Web
确保虚拟机已经安装好docker相关组件,运行以下命令就可以直接部署完成(相关变量替换为实际参数):
docker run \
--name=nextchat \
-p 3000:3000 \
-e CODE=xxx \
-e AZURE_URL=https://fortestme.openai.azure.com/openai \
-e AZURE_API_KEY=xxx \
-e AZURE_API_VERSION=2024-06-01 \
-e CUSTOM_MODELS="-all,+gpt-4o-mini@Azure=gpt-4o-mini" \
-e DEFAULT_MODEL="gpt-4o-mini@Azure" \
--privileged \
--restart unless-stopped \
-d yidadaa/chatgpt-next-web
环境变量说明:
- CODE,访问密码
- AZURE_URL,AZURE API接口URL,在endpoint的url后再加上openai就可以
- AZURE_API_KEY,API key,页面中看到的key1、key2通用
- AZURE_API_VERSION,API版本,详细参考这里
- CUSTOM_MODELS,自定义模型。ChatGPT-Next-Web支持多家公司的多种模型,都内置到选项中,不便于选择使用,可以自定义需要的选项。
- DEFAULT_MODEL,默认使用哪个模型
CUSTOM_MODELS语法简要说明,详细见项目文档
-all, 禁用所有模型
+gpt-4o-mini@azure=gpt-4o-mini,增加一个Azure的模型,’@’前面的是模型的部署名称,’=’后面的是使用时选项中显示的名称
ChatGPT-Next-Web的容器正常运行后,浏览器输入http://ip:3000就访问自己的ChatGPT服务,如果访问不了,注意虚拟机上的防火墙配置。
服务发布
完成以上步骤,虽然已经可以正常使用,但基于安全性等种种原因,还是不建议直接3000端口进行访问。以下提供几种对外发布的方案供参考(不作详细展开说明)。
- 安装nginx,以反代方式进行部署,再把DNS指向过来就可以通过域名访问;
- 通过caddy来进行反代部署,原理跟nginx一样,但caddy能自动申请免费证书并自动续期,省事并提高安全性。
- 在主机上安装cloudflared,再通过Tunnels发布,天然享有ssl和cdn,但前提是你的域名托管在CF。
發佈留言