作为开发人员,想要自己部署一个渠道访问或是想随时访问但是奈何魔法有限,又或是海外服务器太贵,不想耗费这个钱,本文借助 Serverless 来搭建一下私有 ChatGPT 服务,Serverless 按照使用量来计费,个人使用下(满足工作和生活)费用相当低。

本文过程较为繁琐,也有更为简便的其他方式:

https://rptzik3toh.feishu.cn/docx/XtrdduHwXoSCGIxeFLlcEPsdn8b

前言

本次搭建过程需要满足以下几个条件,需要预先满足,已经注册或是从一些渠道获取到了 Api key,有自己的备案域名。

  • 已有 Api key
  • 需要开通阿里云 Serverless
  • 需要开通阿里云容器镜像服务
  • 已有备案域名

云函数

开通服务(略过,免费开通), https://www.aliyun.com/product/fc

  1. 顶部选择地域,如硅谷
  2. 左侧选择服务及函数
  3. 创建服务,填写服务描述信息即可

容器镜像服务

开通服务(掠过,免费开通), https://www.aliyun.com/product/acr

  1. 顶部选择海外站点,如硅谷

  1. 进入个人实例。创建镜像仓库,下一步中选择本地仓库,保存。

  1. 点击仓库名称进入仓库内部,该部分命令稍后会用到,此处只需看到即可。

ChatGPTVNextWeb

https://github.com/Yidadaa/ChatGPT-Next-Web

该仓库实现了 ChatGPT 的交互 UI,提供了 Docker 镜像方便部署。可将该镜像上传到个人的容器镜像服务(供 Serverless 绑定部署使用)。

  1. 拉取 VNextWeb 镜像到本地
docker pull yidadaa/chatgpt-next-web
  1. 本地登录容器镜像服务(见容器镜像服务节末图)
docker login --username=用户名 registry.us-west-1.aliyuncs.com
  1. 标记本地 VNextWeb 镜像版本
  • 查看镜像 id
docker images

eg:查看本地镜像,复制Id

  • 设置镜像版本
docker tag [ImageId] registry.us-west-1.aliyuncs.com/partner/chatgptnextweb:[镜像版本号]

eg:此处直接标记最新版本 latest

docker tag a58372f00c78 registry.us-west-1.aliyuncs.com/partner/chatgptnextweb:latest
  1. 上传镜像到容器镜像服务
docker push registry.us-west-1.aliyuncs.com/partner/chatgptnextweb:[镜像版本号]

eg:推送镜像

docker push registry.us-west-1.aliyuncs.com/partner/chatgptnextweb:latest

创建函数

回到 Serverless 管理页面中,开始创建函数

基础设置

使用镜像创建方式,填写描述信息,选择如下设置即可。

选择镜像与端口设置

选择容器镜像服务中个人实例下镜像仓库中的镜像,仓库需要和当前 Serverless 地域相同,设置监听端口 3000

高级设置

选择最低配置即可,该配置足矣满足个人使用。

环境变量设置

  • CODE, 设置访问密码,可设置多个(逗号隔开)以方便共享给其他人使用,不设置则任何人都可访问(谨慎)。
  • OPENAI_API_KEY, ChatGPT 的 Api key。

一切完毕点击创建即可。

访问函数

如上创建完毕后会跳转到详情页,点击测试函数,开始部署

如执行完毕,得到返回页面则部署成功。

私有域名

当部署完毕云服务商会提供一个生成好的域名(点击触发器管理),但不能在浏览器中访问(直接访问会下载访问页面成文件形式),需要配合自定义域名使用。

添加自定义域名

点击创建自定义域名跳转到新页面中,点击添加自定义域名跳转到添加页面。复制如下红箭头地址,进入到下一步中。

此处需要已经有了一个备案好的域名,不管是在阿里云还是腾讯云。此处以腾讯云为例,进入 dns 解析页 https://console.dnspod.cn/dns

添加记录,设置想要的域名前缀,记录类型选择 CNAME,记录值中粘贴上一步的复制的公网 CNAME 值,确认即可。

回到添加自定义域名页面,设置域名地址(域名前缀.域名主体, 例如 cn.bing.com),再选择服务名,函数名和版本,创建即可。

通过域名地址访问,则可看到页面内容,点击设置填写预先设置好的访问密码。便可使用自己的 ChatGPT 服务了。

2023-05-11,望技术有成后能回来看见自己的脚步

通过Serverless私有化部署ChatGPT Web的更多相关文章

  1. 快速使用ChatGpt Web Server

    快速使用ChatGpt Web Server ChatGpt Web Server是使用Blazor Server模式部署的一个服务,所有的逻辑和代码执行都会在服务器执行,然后通过SignalR传输到 ...

  2. Spire.Cloud 私有化部署教程(二)- Ubuntu 18.04 系统

    本教程主要介绍如何在Ubuntu 18.04系统上实现Spire.Cloud私有化部署.CentOS 7系统部署请参考 这篇教程. 详细步骤如下: 一.环境配置 1.关闭防火墙 1)首先查看防火墙状态 ...

  3. Spire.Cloud 私有化部署教程(一) - CentOS 7 系统

    Spire.Cloud支持的Linux服务器系统包括CentOS和Ubuntu(推荐使用CentOS 7和Ubuntu 18版本),本教程主要介绍如何在CentOS 7系统上实现Spire.Cloud ...

  4. .net core 和 WPF 开发升讯威在线客服系统【私有化部署免费版】发布

    希望 .net 和 WPF 技术时至今日,还能有一些存在感. 这个项目源于2015年前后,当时开发的初版,我使用了 ASP.NET MVC 做为后端,数据库使用原生 ADO.NET 进行操作.WPF ...

  5. 10分钟学会VS NuGet包私有化部署

    前言 我们之前实现了打包发布NuGet,但是发布后的引用是公有的,谁都可以访问,显然这种方式是不可取的. 命令版本:10分钟学会Visual Studio将自己创建的类库打包到NuGet进行引用(ne ...

  6. Spire.Cloud 私有化部署教程(三) - Windows 系统

    本教程主要介绍如何在 Windows 系统上实现 Spire.Cloud 私有化部署. 详细步骤如下: 一.安装依赖 我们的私有部署的依赖有 Nodejs.MySQL.Redis 和 RabbitMQ ...

  7. GitLab私有化部署 - CI/CD - 持续集成/交付/部署 - 源代码托管 & 自动化部署

    预期目标 源代码管理 借助GitLab实现源代码托管,私有化部署版本,创建项目,创建用户组,分配权限,项目的签入/牵出等. 自动化部署 源代码产生变更时(如签入),自动化编译并发布到指定服务器中部署, ...

  8. 基于开源的 ChatGPT Web UI 项目,快速构建属于自己的 ChatGPT 站点

    作为一个技术博主,了不起比较喜欢各种折腾,之前给大家介绍过 ChatGPT 接入微信,钉钉和知识星球(如果没看过的可以翻翻前面的文章),最近再看开源项目的时候,发现了一个 ChatGPT Web UI ...

  9. Eclipse部署Maven web项目到tomcat服务器时,没有将lib下的jar复制过去的解决办法

    我们在做web开发是,经常都要在eclipse中搭建web服务器,并将开发中的web项目部署到web服务器进行调试,在此,我选择的是tomcat服务器.之前部署web项目到tomcat进行启动调试都很 ...

  10. 阿里云部署Java web项目初体验(转)

    林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 摘要:本文主要讲了如何在阿里云上安装JDK.Tomcat以及其配置过程.最后以一个实例来演示在 ...

随机推荐

  1. linux虚拟机设置网络显示NetworkManager need to be running

    问题描述:在设置一台centOS7虚拟机的网络时出现: 解决方法: 命令行重启NetworkManager systemctl restart NetworkManager 刷新一次就好了

  2. iframe跨域通信window.postMessage()方法

    需求:A页面中要嵌入一个iframe,这个iframe是B页面,此时A页面需要得到B页面的一些信息. window.postMessage() 我们都知道浏览器的同源策略,即对于两个不同页面的脚本,只 ...

  3. 国内免费好用的chatgpt在线应用程序

    我们很高兴向大家介绍我们的全新AI微信小程序:AI文案助手,这是一款功能强大的智能助手,可以为您提供多种实用功能. 首先,我们的AI微信小程序拥有一款聊天机器人,能够与您进行自然对话,并为您提供所需的 ...

  4. spring aop切面说明

    execution:处理Join Point的类型,例如call.execution (* android.app.Activity.on**(..)):这个是最重要的表达式,第一个*表示返回值,*表 ...

  5. 基于Mindspore2.0的GPT2预训练模型迁移教程

    摘要: 这篇文章主要目的是为了让大家能够清楚如何用MindSpore2.0来进行模型的迁移. 本文分享自华为云社区<MindNLP-基于Mindspore2.0的GPT2预训练模型迁移教程> ...

  6. Python学习笔记--从继承开始继续

    继承的基础语法 单继承: 多继承:一个子类继承多个父类 pass关键字补全语法 注意事项: 复写和使用父类成员 复写父类成员 也就是相当于Java中的方法重写 调用父类成员 变量的类型注解 举例: 更 ...

  7. Python学习笔记--布尔类型和比较运算符、if判断语句以及相关案例的实现

    布尔类型和比较运算符 代码: 结果: 主要有以下几类: 注意:bool类型的真假表示开头必须大写,例如:True和False 而要是想要得到布尔类型,除了直接定义,还可以通过比较运算得到布尔类型: i ...

  8. Activiti7开发(一)

    0.前言 开发背景 项目开发设计审批工作流,企业微信的审批不错,但是下拉列表不支持后期添加,所以只能自己实现,通过gitee查找相关工作流的开源项目,参考有 闲鹿(RuoYi+Activiti6) h ...

  9. 11.8 消除闪烁(2)(harib08h)

    ps:看书比较急,有错误的地方欢迎指正,不细致的地方我会持续的修改 11.8 消除闪烁(2)(harib08h) 11.7 消除闪烁(1)(harib08g)存在的问题: 鼠标放在计时器上会有 闪烁, ...

  10. [WinUI 3] 如何利用D3D11在SwapChainPanel控件上绘制OpenGL(Uwp通用)

    预览 技术实现 看过我上篇在 WPF 中实现 OpenGL 与 D3D 渲染的同学应该知道,我是依靠 WGL 中 WGL_NV_DX_interop 扩展与 D3D Surface 关联并在使用该 S ...