实战:向人工智能看齐用Docker部署一个ChatGPT

news/2024/5/15 4:02:04/文章来源:https://blog.csdn.net/weixin_39970883/article/details/129879679

文章目录

    • 前言
    • 鉴赏chatgpt
    • 环境要求
    • 开始搭建
      • 云安装docker
      • 从docker仓库拉取chatgpt-web镜像
      • 创建容器并运行chatgpt-web
      • 创建容器启动chatgpt-web
      • 访问自己的chatgpt
    • 总结

前言

目前GPT-4都官宣步入多模态大型语言模型领域了,大佬竟然还没有体验GPT么。作为一个资深搬砖人士,我们可以站在巨人的肩膀上体验下AI预训练模型带给我们的快感。GitHub很多开源项目,只需要我们提供apiKey或者accessToken即可完成部署良好体验。下面,就让我们一步步搭建自己的ChatGPT吧。

鉴赏chatgpt

在这里插入图片描述

环境要求

1、可以运行Docker容器的系统即可,CentOS最佳
2、有防火墙的需要开启一个自己喜欢的端口

开始搭建

云安装docker

安装docker依赖环境
yum install -y yum-utils device-mapper-persistent-data lvm2
设置下载docker 镜像源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
查看仓库中docker版本
yum list docker --showduplicates | sort -r
安装docker
yum install docker
启动docker
systemctl start docker
将docker加入开机启动
systemctl enable docker
查看已安装docker版本号
docker --version
如下图标识安装成功:
在这里插入图片描述

从docker仓库拉取chatgpt-web镜像

查找 chatgpt-web docker镜像
[root@devops-01 ~]# docker search chatgpt-web
在这里插入图片描述

拉取镜像到本地
[root@devops-01 ~]# docker pull chenzhaoyu94/chatgpt-web
在这里插入图片描述

查看chatgpt-web镜像
[root@devops-01 ~]# docker images | grep chat
在这里插入图片描述

如上图已将开源项目chatgpt-web镜像拉取到本地,下面可以开始正常部署工作。

创建容器并运行chatgpt-web

1、apiKey调用方式
海外:docker run --name chatgpt-web -d -p 3002:3002 --env OPENAI_API_KEY=sk-mYfzKM****
–env AUTH_SECRET_KEY=123456 chenzhaoyu94/chatgpt-web
海内:docker run --name chatgpt-web -d -p 3002:3002 --env OPENAI_API_KEY=sk-mYfzKM****
–env AUTH_SECRET_KEY=123456 --env OPENAI_API_BASE_URL=https://open2.aiproxy.xyz chenzhaoyu94/chatgpt-web
备注:
OPENAI_API_KEY:你自己在官方创建的apiKey
AUTH_SECRET_KEY:自定义访问密码
该种方式由于走apiKey需要收费,走代理的话回答速度稍微慢一些。但是,官网注册的用户可以获得免费获得18美元的问答试用额度,根据对话次数与内容长短来扣费。大约调用200次消费1美元,那么18美元就能调用大约3600次。

2、accessToken调用方式
docker run --name chatgpt-web -d -p 3002:3002 --env OPENAI_ACCESS_TOKEN=eyJhb****
–env AUTH_SECRET_KEY=123456 chenzhaoyu94/chatgpt-web
备注:
OPENAI_ACCESS_TOKEN:你自己的accessToken,获取地址:https://chat.openai.com/api/auth/session
在这里插入图片描述

AUTH_SECRET_KEY: 自定义访问密码
该种方式由于accessToken调用是免费的,多人使用不稳定调用失败率高。

由于我是想多人使用故用的是apiKey的方式且走的代理,毕竟有免费额度。

创建容器启动chatgpt-web

docker run --name chatgpt-web -d -p 3002:3002 --env OPENAI_API_KEY=you_api_key --env AUTH_SECRET_KEY=123456 --env OPENAI_API_BASE_URL=https://open2.aiproxy.xyz chenzhaoyu94/chatgpt-web
在这里插入图片描述

如图所示,代表启动成功

查看启动的chatgpt-web容器
docker ps | grep chat
在这里插入图片描述

如上所示,chatgpt-web容器已经启动,并正常服务

访问自己的chatgpt

浏览器访问 http://ip:port 进入自己搭建的chatgpt-web
在这里插入图片描述

由于我们在创建启动时候输入密码验证,此时输入安全密码
在这里插入图片描述

然后,你就可以愉快的玩耍啦
在这里插入图片描述

在这里插入图片描述

总结

用Docker部署一个ChatGPT较为简单,按照博文可以零基础搭建完成。体验了chatgpt,感觉OpenAI的人工语言处理工具还是不错的,基本问题都有着自己的思维方式。特别感谢开源项目chatgpt-web,让我少写代码。

路漫漫其修远兮,吾将上下而求索
有兴趣的小伙伴也可以加我:
订阅号 ‘架构集结号’
知识星球 ‘Coding社区’

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_283220.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C++修行之路】面向对象三大特性之多态

文章目录前言认识多态构成多态的必要条件虚函数的重写虚函数重写的两个例外final和override重载、覆盖、隐藏抽象类多态的原理单继承多继承重写了基类的虚函数没有重写基类的虚函数菱形继承和菱形虚拟继承的虚表补充补充继承与多态相关问题inline函数可以是虚函数吗&#xff1f…

2.半导体二极管

1.半导体二极管二极管的组成二极管和PN结伏安特性的区别二极管的伏安特性及电流方程为什么反向饱和电流越小,单向导电性能越强。二极管的等效电路二极管的主要参数稳压二极管(又称齐纳二极管或反向击穿二极管)稳压二极管与普通二极管的区别其…

深入理解MCU启动原理

前面写了一篇 STM32的完整启动流程分析,但是感觉有些地方没有完全理明白,因此对不清楚的地方又做了一些总结。 1. MCU最开始一启动后去哪里读代码? CPU上电启动后被设计为去地址0x00000000位置处读取代码;首先会连续读取两个字&…

Linux ELK日志分析系统 | logstash日志收集 | elasticsearch 搜索引擎 | kibana 可视化平台 | 架构搭建 | 超详细

Linux ELK日志分析系统 | logstash日志收集 | elasticsearch 搜索引擎 | kibana 可视化平台 | 架构搭建 | 超详细ELK 日志分析系统1.日志服务器2.ELK 日志分析系统3 日志处理步骤一、 Elasticsearch 介绍1.1概述1.2核心概念二、Kibana 介绍三 ELK架构搭建3.1 配置要求3.2 安装 …

Java中Stream的应用

Stream简介 Java 8 版本新增的Stream,配合同版本出现的Lambda ,给我们操作集合(Collection)提供了极大的便利。 Stream可以由数组或集合创建,对流的操作分为两种: 中间操作:每次返回一个新的…

DALL·E:OpenAI第一代文本生成图片模型

1 简介 本文根据openAI 2021年2月的《Zero-Shot Text-to-Image Generation》翻译总结的。原文详见https://arxiv.org/pdf/2102.12092v1.pdf。 DALLE : 论文中没看到这个名字,可能是后起的吧。 DALLE有120亿参数,基于自回归transformer,在2…

Spring 01 -项目管理框架Spring入门

本部分理解原理就好 Spring入门1 Spring引入1.1 原生web开发中存在的问题2 Spring2.1 Spring的概念2.2 Spring 作用2.3 Spring的组成2.4 spring的IOC底层实现原理3 Spring快速入门3.1 引入spring依赖3.2 spring的配置文件3.3 测试四、Spring的开发细节4.1 BeanFactory的类间关系…

android的system_server进程的启动

android的system_server进程的启动 android的system_server进程的启动的简单介绍 system_server是Zygote的fork的第一个Java进程相当于它的大儿子,这个进程非常重要的,这里这个进程提供了很多系统线程,提供了所有的核心的系统服务。比如&am…

mysql与redis区别

一、.redis和mysql的区别总结 (1)类型上 从类型上来说,mysql是关系型数据库,redis是缓存数据库 (2)作用上 mysql用于持久化的存储数据到硬盘,功能强大,但是速度较慢 redis用于存储使…

SQL基础查选和条件查选

写完毕业论文,终于有空复习sql了,继续学习之旅~下次不能和上次一样,简单的sql语句都忘记了。 1.查询结果去重 关键字 distinct select distinct university from user_profile; 2. 将查询后的列重新命名 关键字 as 关键字limit…

Linux kernel 编译 exfat.ko ntfs.ko 来支持exFat 和 NTFS 分区

项目需求想让设备支持 exFat 和 NTFS 的文件格式. 默认的内核是不支持的,因为内核要限定1.5M之内, 所以很多东西都裁剪掉了. 而且不是所有项目都有这个需求,所以就需要编译为 ko ,按需加载; 而不是才去built-in的方式. 在如下的选项找到对应的配置. 至于如何找到, 我推荐2种方式…

LE AUDIO快速了解

有BIS和CIS两种 BIS是广播的,不需要连接,只需要监听 CIS要建立连接的,除了ACL链路,还需要建立CIS链路 BIS部分 也没啥要看的,只需要记住3个指令就可以了 主要是HCI的3个指令 2068 206b 206e 这3个指令即可 206…

Nacos安全性探究

Nacos怎么做安全校验的? 以下使用nacos2.x 如上图所示, 可以直接访问Nacos的接口来获取用户列表。这说明Nacos的接口被爆露,任何情况下都可以访问,因此安全性得不到保障。 Nacos 使用 spring security 作为安全框架。spring sec…

Baumer工业相机堡盟工业相机如何通过BGAPI SDK获取每张图像的微秒时间和FrameID(C#)

BGAPI SDK获取图像微秒级时间和FrameID Baumer工业相机Baumer工业相机FrameID技术背景一、FrameID是什么?二、使用BGAPI SDK获取图像微秒时间和FrameID步骤 1.获取SDK图像微秒级时间2.获取SDK图像FrameIDBaumer工业相机使用微秒级时间和FrameID保存的用处Baumer工业…

混淆矩阵Confusion Matrix(resnet34 基于 CIFAR10)

目录 1. Confusion Matrix 2. 其他的性能指标 3. example 4. 代码实现混淆矩阵 5. 测试,计算混淆矩阵 6. show 7. 代码 1. Confusion Matrix 混淆矩阵可以将真实标签和预测标签的结果以矩阵的形式表示出来,相比于之前计算的正确率acc更加的直观…

jenkins打包发布前端项目

1.配置前端nodejs打包环境 1.1安装nodejs插件 1.2配置jenkins nodejs环境 2.下载git插件(使用此插件配置通过gitlab标签拉取项目) 3.创建一个自由风格的发布项目 4.配置项目构建流程 4.1添加钉钉告警 4.2配置参数化构建 4.3配置源码管理为git拉取项目 4.4配置构建环境 4.5配置…

transform属性

CSS transform属性允许对某一个元素进行某些形变, 包括旋转,缩放,倾斜或平移等。 注意事项,并非所有的盒子都可以进行transform的转换,transform对于行内级非替换元素是无效的,比如对span、a元素等 常见的函数transform function有&#xf…

算法笔记:匈牙利算法

1 二部图(二分图) 二分图(Bipartite graph)是一类特殊的图,它可以被划分为两个部分,每个部分内的点互不相连。 匈牙利算法主要用来解决两个问题:求二分图的最大匹配数和最小点覆盖数。 2 最大匹…

[C++笔记]初步了解STL,string,迭代器

STL简介 STL(standard template libaray-标准模板库): 是C标准库的重要组成部分,不仅是一个可复用的组件库,而且是一个包含数据结构与算法的软件框架。 是一套功能强大的 C 模板类,提供了通用的模板类和函数,这些模板…

STM32开发(十二)STM32F103 功能应用 —— NTC 温度采集

文章目录一、基础知识点二、开发环境三、STM32CubeMX相关配置四、Vscode代码讲解(过程中相关问题点在第五点中做解释说明)五、知识点补充六、结果演示一、基础知识点 了解STM32 片内资源ADC。本实验是基于STM32F103开发 实现 NTC温度采集。 NTC温度采集…