基于Docker如何快速部署自己的ChatGPT

2023-11-15

背景

随着OpenAI在2022年底发布的LLM模型-ChatGPT展现出的强大效果,ChatGPT无疑成为了当下炙手可热的明星模型。

现有的基于GPT的开源项目已经非常多,本文以现有的高热度github开源项目chatgpt-web为例,教大家简单快速地搭建属于自己的ChatGPT。

ChatGPT-Web

chatgpt-web项目中的部署教程已经非常完整,本文不再过多解释。

仅以Docker部署为例

前置条件

  • 本地或者服务器应该具有Docker环境
  • 具有ChatGPT帐号

以token模式为例,请求chatgpt web版本,免费但稍微具有延迟

Step1. 找到你帐号的token

点击https://chat.openai.com/api/auth/session,获取你帐号的token,并记录他

Step2. 运行docker

按需配置访问Web页面的密码,Token、超时等信息

docker run --name chatgpt-web -d -p 127.0.0.1:3888:3002 --env OPENAI_ACCESS_TOKEN=your_access_token --env AUTH_SECRET_KEY=you_secret_key chenzhaoyu94/chatgpt-web

Step3. 访问localhost:3002查看效果
在这里插入图片描述
在上述步骤中我们无需进行任何代理,就可以直接与GPT交流,使用API方式同理。当然了,根据项目作者的介绍,使用API时需要进行代理自建

如果你只是在本地部署给自己使用,那么以上3步就满足了需求,如果想要在公网访问,或者像App一样访问你的ChatGPT,那么请接着往下看。

Nginx反向代理

以宝塔面板为例,我们在服务器上拉起docker镜像后,可以通过ip:port进行访问

但通常来说我们的网站带有域名,以笔者所使用的腾讯云服务器为例

前置条件

  • 拥有一个域名
  • 拥有一台云服务器

Step1. SSL证书

首先在云产品中找到SSL证书,点击我的证书-免费证书-申请免费证书

在这里插入图片描述

填写申请的域名,申请成功之后,点击下载,下载nginx格式的即可

Step2. 配置域名SSL

在宝塔面板中选择-网站-添加站点

填写刚刚申请SSL证书的域名,选择纯静态,其余默认,点击确定即可

在这里插入图片描述

Step3. 配置证书

点击添加好的网站,然后点击SSL,填入刚刚下载的文件中的keypem
在这里插入图片描述

配置完成后点击保存

Step4. 配置DNS解析

在云产品中搜索-云解析-选择DNS解析DNSPod

点击我的域名-添加记录

在这里插入图片描述

填入刚刚申请的域名,如果带有前缀,则第一个红框填入你的域名前缀,比如www.baidu.com,则这里填www

第二个红框填写你的服务器ip,或者你的CDN域名

在这里插入图片描述

Step5. 配置反向代理

在宝塔面板中,点击刚刚添加的网站,点击反向代理,填入刚刚docker启动时的宿主机端口
在这里插入图片描述

如上文中的3888

以上配置完成之后,访问https://你的域名就可以了~

PWA支持

PWA技术可以让我们访问网站能够拥有访问App一般的体验,在chatgpt-web中已经内嵌,但默认是关闭的

我们可以通过设置启动时的参数-env VITE_GLOB_APP_PWA=true将他打开

docker run --name chatgpt-web -d -p 127.0.0.1:3888:3002 --env OPENAI_ACCESS_TOKEN=your_access_token --env AUTH_SECRET_KEY=you_secret_key --env VITE_GLOB_APP_PWA=true chenzhaoyu94/chatgpt-web

部署成功之后,我们再到手机上访问该网站时便可以保存他在桌面了。

默认的PWA图标和全局用户信息配置在项目中,即使在网页可以修改当前登陆者的用户信息,在清除Cookie之后便会还原,如果你想定制这两种信息,请拉下chatgpt-web项目进行镜像自定义

本文使用PWA时采用了自定义镜像,效果在手机上如下,我定制为了可爱的花花

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于Docker如何快速部署自己的ChatGPT 的相关文章

随机推荐

  • Matlab统计分析 -- 聚类算法模型

    统计分析 聚类算法模型 距离分析 数据标准化 欧氏距离与量纲有关 因此 有时需要对数据进行预处理 如标准化等 在MATLAB中的命令是zscore 调用格式 Z zscore X 输入X表示N行p列的原始观测矩阵 行为个体 列为指标 输出Z
  • vofuria的开发(4)更换目标图片(target)

    1 首先进入vuforia的官网 接下来的操作就很简单了 如下图中所示 这里如果你不是Unity开发就选择SDK下载 里面有一个 bat的文件一个 xml的文件 将文件放到将这两个文件放到 vuforia sdk Android sampl
  • [Error] invalid operands of types ‘int‘ and ‘double‘ to binary ‘operator%‘

    在运行下面的代码时 编译器报错 Error invalid operands of types int and double to binary operator include
  • SpringMvc ModelAndView 视图解析器和Servlet详解

    一 设置ModelAndView对象 根据View的名称 和视图解析器跳转到指定的页面 页面 视图解析器的前缀 view name 视图解析器的后缀
  • 前端Vue自定义顶部导航栏navBar 导航栏搜索框searchBar 导航栏右侧菜单按钮button

    随着技术的发展 开发的复杂度也越来越高 传统开发方式将一个系统做成了整块应用 经常出现的情况就是一个小小的改动或者一个小功能的增加可能会引起整体逻辑的修改 造成牵一发而动全身 通过组件化开发 可以有效实现单独开发 单独维护 而且他们之间可以
  • RBAC权限模型

    权限 权限 是用户可以访问的资源 包括页面权限 操作权限和数据权限 页面权限 页面权限 即用户登录系统可以看到的页面 由菜单控制 菜单包括一级菜单 二级菜单 只有用户有一级菜单 二级菜单的权限 那么用户就可以访问页面 操作权限 操作权限 即
  • 二、UPC-A

    UPC A 1 概述 UPC A 条码是美国较常用也较被广泛认可的条码类型 它主要用于零售行业 例如杂货店 UPC A 由统一杂货产品代码委员会与 IBM 联合开发 2 条码的组成 UPC A 条码由 12 位组成 开头是个单数字系统字符
  • Java热编译热部署插件:JRebel

    修改代码时 会经常遇到一个问题 就是要修改代码 虽然如果是html css js这些会立即生效但是像Java代码还是不行 只要涉及到代码或者配置什么的要重启服务 类似与我修改一个文件 但是想要生效要不然就是单个文件重新run一下 或者服务器
  • day24第三阶段总结

    day24 三阶段总结 课程目标 对第三模块 阶段的知识点进行总结和考试 更好的掌握此模块的相关知识 课程概要 知识补充 阶段总结 思维导图 考试题 1 知识点补充 1 1 并发编程 网络编程 从知识点的角度来看 本身两者其实没有什么关系
  • RS232 485 CAN端口浪涌、脉冲保护电路

    常见端口保护电路记录 实现保护等级 如果需要更高的防护等级需要其他电路配合 由于工作比较忙 有时候查起来太麻烦了 特此记录一下方便查询 模块评估版实物图 实现的保护等级如下 下面是zlg的rsm232完整保护电路 各个器件截图 GDT 气体
  • 使用httpclient 请求报错 :Software caused connection abort: recv failed

    Software caused connection abort recv failed java net SocketException Software caused connection abort recv failed at ja
  • DVWA靶场在sql注入联合查询时返回报错信息 “Illegal mix of collations for operation ‘UNION’ ”之解决

    比如我们输入 1 union select 1 table name from information schema tables where table schema dvwa 会跳出一个页面出现报错提示 Illegal mix of c
  • Form表单、四种常见的POST请求提交数据方式、MIME【转】

    浏览器行为 Form表单提交 1 form表单常用属性 action url 地址 服务器接收表单数据的地址 method 提交服务器的http方法 一般为post和get name 最好好吃name属性的唯一性 enctype 表单数据提
  • 浅析安全框架-Shiro和Spring Security

    一 权限概述 1 什么是权限 权限管理 一般指根据系统设置的安全策略或者安全规则 用户可以访问而且只能访问自己被授权的资源 不多不少 权限管理几乎出现在任何系统里面 只要有用户和密码的系统 权限管理分类 访问权限 管理员有增删改查权限 普通
  • 令AxosoftPowerTrack支持中文

    AxosoftPowerTrack是个有意思的vs netAdd in
  • javaweb实现一个账号只能同时被一个人使用(Java实现)

    大家在登陆qq的时候 电脑上登陆了qq 如果另一台机器上也登陆该qq账号 那么之前的qq账号会被挤下去 我们现在用web的方式来做一个非常简单的演示 先简单的说一下功能吧 用户只有一个User 这个entity设置成账号为hello 密码w
  • Web.xml加载顺序

    文章目录 Tomcat 加载顺序 Web xml具体加载顺序 Tomcat Server处理一个http请求的过程 lt context param gt lt listener gt lt filter gt web xml中定义的元素
  • 阿里云移动推送的接入和踩坑

    近期由于业务需求 要换掉以前的推送 首先选择了阿里云推送 官方介绍阿里移动推送 Alibaba Cloud Mobile Push 是基于大数据的移动智能推送服务 帮助App快速集成移动推送的功能 在实现高效 精确 实时的移动推送的同时 极
  • Elasticsearch 架构解析与最佳实践

  • 基于Docker如何快速部署自己的ChatGPT

    背景 随着OpenAI在2022年底发布的LLM模型 ChatGPT展现出的强大效果 ChatGPT无疑成为了当下炙手可热的明星模型 现有的基于GPT的开源项目已经非常多 本文以现有的高热度github开源项目chatgpt web为例 教