作为大学生,你还不会搭建chatGPT微应用吗?
目录
- 引言
- ChatGPT是什么?
- 背景:ChatGPT敢为人先,打破全球僵局
- 示例演示:基于ChatGPT微应用实现的条件及步骤
- (1)整体框架
- (2)搭建前的准备工作
- (3)实际搭建步骤
- (4)体验分析
- chatGPT体验番外篇
- 你认为未来还有这样的技术吗?
- 结束语
- 参考文献
引言
从去年11月份至今,刷爆全球技术圈的AI技术是什么?大家肯定会异口同声的说:chatGPT。从chatGPT诞生到现在,从刚开始短短一周时间注册用户就达到了100万,再到目前注册及使用人数已破亿,在短短的3个月时间里chatGPT一直占据各大技术社区和平台的榜首,各种关于它的话题讨论也是层出不穷,chatGPT的热度“高烧不退”,说明了什么呢?原因不用多说,那是因为ChatGPT不仅可以写论文、写代码,还可以写情书、写邮件,甚至还可以写诗、当“翻译”、当“感情导师”。本文通过对ChatGPT相关内容的分享,结合笔者尝试通过搭建类似ChatGPT的微应用,来阐释一下ChatGPT所带来的美好体验和变化。
ChatGPT是什么?
ChatGPT(全名:Chat Generative Pre-trained Transformer),是由美国OpenAI研发的聊天机器人程序 ,在2022年11月30日发布。ChatGPT是一个人工智能技术驱动的自然语言处理工具,它能够通过学习和理解人类的语言来进行对话,还能根据实际聊天的上下文进行互动,真的可以像人一样来聊天交流,而且能完成撰写邮件、视频脚本、策划文案、翻译、写代码、写论文等任务,目前注册及使用人数已破亿。
背景:ChatGPT敢为人先,打破全球僵局
目前非常热门的人工智能(AI)自然语言处理应用工具非ChatGPT莫属,它能够通过学习和理解人类的语言来进行对话,可广泛应用于客服聊天机器人、问答、虚拟助手等应用领域。它还被用于模仿人类生成多种格式的文本,包括对话、讲故事、写小说等。ChatGPT 因其能够理解自然语言,生成高质量、连贯的文本和有意义的响应而获得公众和研究界的赞誉褒奖。
ChatGPT能够产出很出色的内容,一定程度上展现了AI能力发展新的里程碑,但也是分水岭,存在着一些局限性,比如它的准确性目前还难以完全满足实际要求,而且目前全球各大科技巨头纷纷在尝试入局AIGC,ChatGPT目前还未开源,商业模式也不太清晰,不仅能够给国内的AI科技公司留出一定的时间和空间,还能让ChatGPT在初期使用中引起的一些弊端展现出来,方便朝着正确的方法发展。虽然ChatGPT和AICG,以及阿尔法狗都是人工智能发展到一定程度的必然产物,但是ChatGPT的诞生还是造成了颠覆认知的影响,尤其是随着ChatGPT不断地完善和进步,它真的可以取代人类的一些日常工作。
个人理解,ChatGPT就是一个能“琴棋书画”的AI虚拟人,不仅会学着人类的思维在问答中互动,而且能够解决选择困难症的问题,更能解决比较专业的领域问题,是个百事通。接下来笔者通过搭建类似ChatGPT的微应用,来从技术实现层面分享一下ChatGPT的使用体验。
示例演示:基于ChatGPT微应用实现的条件及步骤
那么接下来,将演示使用无服务器计算产品构建一个无服务器的 Web 应用程序作为个人AI助手,即仿ChatGPT微应用。本示例演示中使用的所有服务都涵盖在AWS的相关产品内,调用的Amazon Lambda等Serverless相关产品,以及通过Amazon S3 构建一个无服务器的Web应用程序来作为个人AI助手的核心技术。
(1)整体框架
- 通过使用 Amazon S3 托管前端客户端的 Html、JS、CSS 文件;
- 通过使用 Amazon API Gateway 将前端的请求从客户端路由再到后端服务的过程;
- 通过使用Amazon Lambda 部署后端服务 ,核心包含:API鉴权、用户登录、处理来自客户端的聊天会话请求,以及调用 OpenAI SDK 从OpenAI 服务器获取响应文本再返回给到客户端等流程。
(2)搭建前的准备工作
- 通过自己的渠道自行创建一个OpenAI账户,并且去OpenAI管理后台创建一个API密钥(该密钥是调用OpenAI的API的时候会用到);
- 注册一个亚马逊云科技平台的账户(后面在搭建的时候会一直用到);
- 搭建好本地的运行环境,如Nodejs、Visual Studio Code ;
- 提前下载好AWS关于OpenAI 的代码demo,这里通过github上下载到本地,具体命令行:git clone GitHub - aws-samples/aws-serverless-openai-chatbot-demo。下载之后解压打开的项目文件目录如下所示:
- 分别转到 server 文件夹下的各个 lambda 函数文件夹,安装依赖项并打包制作 . zip 文件,以上传到 Amazon Lambda。制作zip的命令如下所示:
cd server/lambda_chat npm install zip -r lambda_chat.zip .
(3)实际搭建步骤
1、打开并登录AWS的管理后台,创建一个Lambda 函数用来处理会话聊天
2、把上面创建的 lambda_chat.zip 上传到 Lambda 代码源中。
3、从环境变量中,创建”OPENAI_API_KEY“的键,并把应用的OpenAI API KEY配置成值。
4、参照步骤1,依次创建用于 Amazon API Gateway 请求鉴权的Lambda 函数、用于处理用户登录请求的Lambda 函数
注意:同样要设置对应的环境变量的键值,以及上传压缩好的zip文件。
5、创建API Gateway,即创建一个名字为“chatbot”的 HTTP API
6、在chatbot API下面新创建两个POST请求方法的路由
7、给/chat路由创建Lambda授权方,以及集成到Lambda 函数中
8、给/login路由创建Lambda集成
9、设置API Gateway的CORS 配置
10、部署Amazon S3 托管前端客户端的网站
11、编译网站的静态文件,替换上面创建的实际的API gateway 端点
12、编译前端部分的静态文件
编译前端部分的静态文件,使用命令行:
npm run build
然后把打包好的build内的文件部署到上面的Amazon S3,上传命令行:
aws s3 sync ./build/ s3://bucket-name/
13、完成上面的所有操作步骤之后,可以在PC或者手机浏览器中访问Amazon S3网站,即可体验效果
以上就是本次关于搭建类chatGPT微应用的大致步骤,通过AWS的相关产品构建一个无服务器Web的类chatGPT微应用,整体操作流程很顺畅,值得体验一下。
(4)体验分析
虽然通过上面的关于chatGPT功能的使用示例,没有涉及到chatGPT核心的工作原理,但是通过体验使用chatGPT也能略知一二。想必读者都知道chatGPT是一款自然语言处理模型,它是基于深度学习技术,利用大量数据进行训练,从而生成高质量的文本内容。AWS关于调用OpenAI SDK 从OpenAI 服务器获取响应文本再返回给到客户端的过程,OpenAI的接口返回速度很快,体验流程无卡顿,最主要的点就是搜索的结果,完美的回答了测试问到的问题,而且答案也很精准,是期望的答案,非常不错。
chatGPT体验番外篇
从去年11月底chatGPT问世,笔者就在当年的12月份体验了chatGPT,首次体验chatGPT的感觉是很惊叹的,当时能想到的就是chatGPT的回答解决了常规的问答问题,尤其是传统搜索引擎不能满足精准回复的缺陷,通过传统收缩引擎获得的答案需要搜索者耗费大量时间去对比和验证才能得到自己想要的答案,毕竟搜索到的答案鱼龙混杂。但是chatGPT的诞生解决了这个最大的痛点问题,打破了传统搜索引擎的通病,极大的提高了搜索用户的搜索效率,研发chatGPT只是为了解决传统搜索的弊端,但是chatGPT却实现了完美超越。分享一下使用chatGPT的体验截图。
你认为未来还有这样的技术吗?
从ChatGPT的诞生以及在短期内的井喷热度,有人说是第四次技术革命,又有人说是挑战人类工作的竞争者,还有人说是整治科技圈的利器,不管怎么说ChatGPT的出现在短时间内掀起的高潮和热度是必然事件。因为人工智能近几年的快速发展以及技术沉淀,诞生ChatGPT是意料之中的事情。
而且我相信ChatGPT的出现是起点而不是终点,接下来肯定还会有类似ChatGPT的ChatGPT2、ChatGPT3的出现,同时我也相信国内的互联网企业能够紧追其上,早日推出国内版类ChatGPT的产品,也希望ChatGPT带来更多的是改变美好生活,而不是制造问题,期待着ChatGPT改变美好生活!
个人觉得,chatGPT带来的热度在短时间内不会消退,而且随着全球互联网企业的纷纷入手类chatGPT应用,势必会继续让chatGPT保持热度,也会有越来越多的类chatGPT问世。无论是国外还是国内,chatGPT将成为新的风口,chatGPT的应用场景越来越多,同时会改变一些生活体验,也会改变一些工作方式。
结束语
作为技术开发人员,不仅仅只是体验使用chatGPT的功能,更应该去了解chatGPT的核心原理以及研发步骤,这样才能保持一个技术持续更新的状态,而且也能在技术研究中提升自身价值。chatGPT的出现,不仅提高了使用者的开发和学习效率,而且还促进了一些行业的变革,但是事物的出现都有两面性,有好的一面,必然有不好的一面;我们使用chatGPT只取它的优点,要理性的使用chatGPT,而不是极度的依赖它,chatGPT可以是解决问题的一种很好的选项,但不是唯一的选择。未来一段时间内,chatGPT会不断地完善和优化,随着模型的性能和个性化的提升,chatGPT真的可以成为人类的专属AI助手,让我们一起期待那天的到来!
参考文献
亚马逊云科技官网--Lambda 入门:Lambda 入门 - AWS Lambda
相关文章:

作为大学生,你还不会搭建chatGPT微应用吗?
目录 引言ChatGPT是什么?背景:ChatGPT敢为人先,打破全球僵局示例演示:基于ChatGPT微应用实现的条件及步骤(1)整体框架(2)搭建前的准备工作(3)实际搭建步骤&a…...

Three.js教程:第一个3D场景
推荐:将NSDT场景编辑器加入你3D工具链其他工具系列:NSDT简石数字孪生下面的代码完整展示了通过three.js引擎创建的一个三维场景,在场景中绘制并渲染了一个立方体的效果,为了大家更好的宏观了解three.js引擎, 尽量使用了…...
lua快速入门~在js基础上,知道Lua 和 Js 的不同即可
☺ lua 和 javaScript 差不多的,就是一些语法的细节不同,学过js,再注意一下下面的细节,就能上手了~ 快速入门,可以直接看一下菜鸟教程的lua:https://www.runoob.com/lua/lua-tutorial.html Lua 和 Js 的不同…...
Linux系统【Centos7】更换源详细教程
更换CentOS 7系统的源可以提高网络速度,加快软件升级和安装的速度。以下是详细的更换CentOS 7源实践。 步骤 1:备份原始 Yum.repo 在更换之前,首先要备份原始 Yum.repo 文件(一定要记得备份)。 bash sudo mv /etc/y…...

金三银四求职季来了!分享几道最常见的app面试题,帮助您更好准备面试求职!
目录:导读 引言 一、Web 端测试和 App 端测试有何不同? 二、App是如何测试的? 三、app闪退的可能原因? 四、给你一个登录页面,你要如何测试? 五、测试过程中遇到app出现crash或者ANR,你会怎么处理? …...

Java集合——List接口学习总结
一、ArrayList实现类 1. 常用方法 增加:add(int index, E element)删除:remove(int index) remove(Object o)修改:set(int index, E element)查看:get(int index)判断:常用遍历方式://List集合 遍历&…...
低代码(三)低代码平台前端技术组件选型1.0(前端)
目前国内主流的低代码开发平台有:金蝶、用友、宜搭、云程、简道云、明道云、氚云、伙伴云、道一云、JEPaaS、华炎魔方、搭搭云、JeecgBoot 、RuoYi等。这些平台各有优劣势,定位也不同,用户可以根据自己需求选择。如果企业想自主可控ÿ…...
代码随想录算法训练营第35天|860.柠檬水找零,406.根据身高重建队列,452. 用最少数量的箭引爆气球
代码随想录算法训练营第35天|860.柠檬水找零,406.根据身高重建队列,452. 用最少数量的箭引爆气球860.柠檬水找零406. 根据身高重建队列452. 用最少数量的箭引爆气球860.柠檬水找零 题目链接:860.柠檬水找零,难度:简单…...
C++整人代码,十分朴实但威力无穷,让你对cout怀疑人生,整死你的同学
cout人人皆知 /a 只是让电脑响个铃 直接上个简单的代码 #include<iostream> using namespace std; int main() {while(1)cout<<"\a"; }最后普及一下: 控制符的作用有: setbase(n) 以n进制方式输出(n8,10,16) setfill(ch) 设置…...

【Spring Cloud Alibaba】12.定时任务(xxl-job)
文章目录简介什么是xxl-job调度中心执行器官方架构图相关地址环境要求配置调度中心下载源码目录说明初始化数据库源码方式docker方式测试集群(可选)配置执行器pom.xmlapplication.propertiesXxlJobExecutorApplication.java执行器组件配置创建定时任务任…...

GDB core dump分析
基本知识 Linux core dump:一般称之为核心转储、内核转储,我们统称为转储文件。是某个时刻某个进程的内存信息映射,即包含了生成转储文件时该进程的整个内存信息以及寄存器等信息。转储文件可以是某个进程的,也可以是整个系统的。…...

Leetcode.111 二叉树的最小深度
题目链接 Leetcode.111 二叉树的最小深度 easy 题目描述 给定一个二叉树,找出其最小深度。 最小深度是从 根节点 到 最近叶子节点 的 最短路径上的节点数量。 说明: 叶子节点是指没有子节点的节点。 示例 1: 输入:root [3,9,20,null,nul…...
【RP-RV1126】SDK编译常用记录
文章目录一、单独编译1.1 单独配置编译kernel1.2 单独编译配置Buildroot1.3 单独编译rkmedia1.3.1 添加自己的rkmedia代码文件荣品的RV1126。一、单独编译 如果执行 build.sh 运行完成后没有在 rockdev/ 目录下生成镜像文件,请执行: ./build.sh firmwa…...

【操作系统复习】第5章 存储器管理
存储器的层次结构 存储层次 ➢ CPU寄存器 ➢ 主存:高速缓存、主存储器、磁盘缓存 ➢ 辅存:固定磁盘、可移动介质 层次越高,访问速度越快,价格也越高,存储容量也最小 寄存器和主存掉电后存储的信息不再存在&a…...

Python人工智能在气象中的实践技术应用
专题一 Python 和科学计算基础 1.1 Python 入门和安装 1.1.1 Python 背景及其在气象中的应用 1.1.2 Anaconda 解释和安装以及 Jupyter 配置1.1.3 Python 基础语法 1.2 科学数据处理基础库 1.2.1 Numpy 库1.2.2 Pandas 库1.2.3 Scipy 库 1.2.4 Matplotlib 和 Cartopy 库 …...

libcurl库的安装及使用说明
目录 一 libcurl库安装 ① 下载网址 ② libcurl库安装步骤 ③ libcurl等第三方库的通用编译方法 二 调用libcurl编程访问百度主页 ① 代码说明 ② 编译说明 ③ 执行说明 三 libcurl的使用说明 ① curl相关函数简介 ② curl_easy_setopt函数部分选项介绍 ③…...

【JAVAEE】手把手教学多线程,包教包会~
线程与进程为了实现多个任务并发执行的效果,人们引进了进程。何谓进程?我们电脑上跑起来的每个程序都是进程。每一个进程启动,系统会为其分配内存空间以及在文件描述符表上有所记录等。进程是操作系统进行资源分配的最小单位,这意…...

基于ChatGPT API的PC端软件开发过程遇到的问题的分析
如果喜欢本文章,记得收藏哦! 关注我,一起学Java。 一、基于ChatGPT API的PC端软件开发过程遇到的问题的分析 最近这个OpenAI公司推出的GPT-4.0模型真是太火了。当然由于OpenAI目前还没有正式全面对外开放GPT-4.0 API,所以本次使用…...

啥是插入排序 ?
一、概述 排序是算法中的一部分。所以我们学习排序也是算法的入门,为了能让大家感受到排序是算法的一部分,我举个例子证明一下:比如麻将游戏,发完牌之后需要对手上的牌进行排序,大家想想,麻将排序如何排呢…...

华为OD机试题 Q2 押题【贪心的商人 or 最大利润】用 C++ 编码,速通
最近更新的博客 华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南华为od机试,独家整理 已参加机试人员的实战技巧本篇题解:贪心的商人 or 最大利润 题目…...

python/java环境配置
环境变量放一起 python: 1.首先下载Python Python下载地址:Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个,然后自定义,全选 可以把前4个选上 3.环境配置 1)搜高级系统设置 2…...

聊聊 Pulsar:Producer 源码解析
一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台,以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中,Producer(生产者) 是连接客户端应用与消息队列的第一步。生产者…...

转转集团旗下首家二手多品类循环仓店“超级转转”开业
6月9日,国内领先的循环经济企业转转集团旗下首家二手多品类循环仓店“超级转转”正式开业。 转转集团创始人兼CEO黄炜、转转循环时尚发起人朱珠、转转集团COO兼红布林CEO胡伟琨、王府井集团副总裁祝捷等出席了开业剪彩仪式。 据「TMT星球」了解,“超级…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序
一、开发环境准备 工具安装: 下载安装DevEco Studio 4.0(支持HarmonyOS 5)配置HarmonyOS SDK 5.0确保Node.js版本≥14 项目初始化: ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...

Cloudflare 从 Nginx 到 Pingora:性能、效率与安全的全面升级
在互联网的快速发展中,高性能、高效率和高安全性的网络服务成为了各大互联网基础设施提供商的核心追求。Cloudflare 作为全球领先的互联网安全和基础设施公司,近期做出了一个重大技术决策:弃用长期使用的 Nginx,转而采用其内部开发…...
【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验
系列回顾: 在上一篇中,我们成功地为应用集成了数据库,并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了!但是,如果你仔细审视那些 API,会发现它们还很“粗糙”:有…...

Maven 概述、安装、配置、仓库、私服详解
目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...

MySQL 知识小结(一)
一、my.cnf配置详解 我们知道安装MySQL有两种方式来安装咱们的MySQL数据库,分别是二进制安装编译数据库或者使用三方yum来进行安装,第三方yum的安装相对于二进制压缩包的安装更快捷,但是文件存放起来数据比较冗余,用二进制能够更好管理咱们M…...
Java数值运算常见陷阱与规避方法
整数除法中的舍入问题 问题现象 当开发者预期进行浮点除法却误用整数除法时,会出现小数部分被截断的情况。典型错误模式如下: void process(int value) {double half = value / 2; // 整数除法导致截断// 使用half变量 }此时...
鸿蒙(HarmonyOS5)实现跳一跳小游戏
下面我将介绍如何使用鸿蒙的ArkUI框架,实现一个简单的跳一跳小游戏。 1. 项目结构 src/main/ets/ ├── MainAbility │ ├── pages │ │ ├── Index.ets // 主页面 │ │ └── GamePage.ets // 游戏页面 │ └── model │ …...