如何使用ChatGPT构建一个Web应用程序?

news2025/2/25 12:22:32

围绕ChatGPT的最大卖点之一是它可以成为一种有效的编程工具。其想法是这样的:你用自然语言描述需求,该聊天机器人生成满足该需求的代码。但是ChatGPT在这方面到底有多好呢?

还有什么比亲自测试一下更好的方法呢?我们让ChatGPT从头开始构建一个简单的Web应用程序。以下是我们测试的结果,以及你可以使用ChatGPT从头开始构建一个网站的几个步骤。

步骤1:为你的Web应用程序生成蓝图

就像你在使用任何工具构建Web应用程序时所做的那样,在让ChatGPT发挥功效之前,你需要描绘你希望应用程序所需外观的蓝图以及构建它所需的步骤。

对于我们的第一个任务,我们让ChatGPT为一个简单的聊天应用程序开发一个蓝图。为此,我们描述了这个Web应用程序的需求,然后让聊天机器人详细制定开发该应用程序的计划。

使用上面的提示后,我们得到的结果如下:

你需要在你的ChatGPT帐户上启用“Show Me”插件,以生成像上面这样的流程图。你可以仅需几个步骤安装和使用ChatGPT插件,不过你需要付费订阅。

没有插件,你会得到一个基于文本的蓝图或ASCII艺术流程图。即使没有插件,ChatGPT仍然应该像下面的例子一样提供应用程序的清晰蓝图。

步骤2:将蓝图分割成更小的模块

现在我们已描绘了一个大的蓝图,我们让ChatGPT帮助我们将应用程序分成更小的组件,以便我们可以单独开发,然后集成起来构成完整的Web应用程序。ChatGPT建议将其分为三个组件:

1. 注册模块

2. 登录模块

3. 聊天模块

我们有其他的想法,但这里的目标是让ChatGPT做主。

1. 构建注册组件

我们径直开始构建注册组件。我们让ChatGPT设计出一个合适的算法。在这里,我们通过指定只需要用户的用户名、电子邮件和注册头像来进行干预。下面是提示:

结果如下:

接下来,我们提示ChatGPT构建注册组件。

虽然我们没有将密码字段包含在注册过程中,但ChatGPT通过将密码包含在生成的HTML代码中做出了正确的选择。我们在没有任何修改的情况下复制了代码,下面是它在浏览器上的样子。

接下来,我们提示ChatGPT生成PHP注册脚本。首先,我们提示“编写用于处理表单提交的服务器端逻辑的PHP代码”。虽然生成的脚本运行良好,但它有很多漏洞。

没有密码散列,没有错误处理,而且容易发生SQL注入攻击——ChatGPT只做了最基本的工作。解决这个问题比较容易。我们只是让ChatGPT“识别您刚生成的代码中的所有错误,然后使用已识别的内容来优化代码”。这样,我们的PHP注册脚本就准备好了。

要点提醒:

提示的具体措辞很重要。您需要非常清楚和具体地了解您需要ChatGPT做什么。当我们只是让它“用这段代码修复问题”时,它并没有修复我们希望它修复的大部分问题。

接下来,我们让ChatGPT“编写SQL代码,为PHP脚本中捕获的数据创建数据库”。下面是生成的SQL代码:

下面是通过执行SQL生成的表:

数据库创建好后,我们尝试了第一次注册,没有出现任何错误。

2. 构建登录组件

在完成注册组件之后,我们开始构建登录组件。令人惊讶的是,尽管有额外的会话管理逻辑,它却是最容易构建的部分。

这是生成的登录页面。一个关键的亮点是它使用了与注册页面相同的颜色选项。

在按照ChatGPT的指示创建“server.login.php”文件并添加生成的PHP脚本之后,我们在没有任何修改或调试的情况下进行了第一次成功登录。

3.构建聊天组件

构建聊天组件是我们这个小实验的最后一个部分,可能也是最困难的部分。首先,我们只是让ChatGPT为聊天组件编写代码。不用说,这是一个巨大的失败。对于您想要创建的任何应用程序比较复杂的组件,您需要将其拆分成更小的组件,并逐个处理它们。

我们询问了ChatGPT关于拆分聊天组件的建议,它建议我们创建三个页面:

1. Chat.php

2. Send-messages.php

3. Fetch-messages.php

要点提醒:

当ChatGPT建议文件名时,在项目中使用不同的名称可能会无意中导致问题,因为聊天机器人将在整个项目中创建的所有代码中引用相同的名称。对此我们深有体会。别犯同样的错误。

创建Chat.php页面

首先,我们向ChatGPT详细说明了我们希望聊天界面的外观。

在运行生成的HTML代码之后,我们有了一个没有消息输入框的聊天界面。为了解决这个问题,我们只是提示ChatGPT“重写代码以包含消息输入框和发送按钮”。下面是生成的代码在浏览器上第二次试用时的样子。

要点提醒:

每当生成的代码未能提供期望的结果或遗漏重要的组件时,只需提示ChatGPT重写最后的代码。告诉它添加组件或执行初始代码中未完成的任何操作。

创建“send-messages.php”和“Fetch-messages”页面

对界面感到满意后,我们继续构建脚本来处理聊天逻辑。为了能够从数据库中发送和获取消息,ChatGPT正确地强调了我们需要一个“消息”表。我们让聊天机器人为消息表创建一个SQL。

在生成SQL代码之后,我们让聊天机器人生成PHP脚本来处理消息传递逻辑。

ChatGPT为“send-messages.php”页面和“fetch-messages.php”页面生成了脚本。在运行这两个脚本时,我们终于碰到了第一个错误(奇怪的是,这令人满意)。在没有调试任何一行代码的情况下对项目进行如此深入的研究似乎有点好得难以置信,尽管它比较简单。

事实证明,错误是由于ChatGPT在脚本中引入了对未声明的会话变量($_SESSION['user_id'])的检查。我们怀疑这是由于ChatGPT忘记了项目中使用的一些上下文和变量的名称。

要点提醒:

在使用ChatGPT构建应用程序时,请确保使用相同的聊天线程,并尽量尽快完成相关组件。使用新的聊天线程或长时间休息可能会导致不一致。如果您在编码会话之间休息很长时间,ChatGPT往往会忘记当前项目的一些细节(比如颜色方案)。

话虽如此,我们修复了这个漏洞,并部署了代码。我们注册、登录并尝试了聊天功能。虽然我们可以将一个注册用户的消息发送给另一个注册用户,但是消息框的颜色和排列有些偏差。然而,对于一个花了1小时23分钟完成的应用程序,我们不会太苛刻地评判它。

ChatGPT:一款优秀的编程助手

ChatGPT显然是一款功能强大的编程助手。该聊天机器人可以从简单的、有时不太清楚的指令生成令人印象深刻的代码,这证明了其出色的编程能力。

当然,它仍然有很多缺陷。有限的上下文窗口及其将来自多个独立构建的组件的逻辑连接在一起的能力是一大问题。然而,该聊天机器人可以帮助你快速构建相当复杂的Web应用程序,如果你知道怎么做的话。

JNPF:同样好用的开发工具介绍

低代码开发是近年来在网络开发领域备受关注的一个趋势。低代码开发是指使用最少的编程代码来开发应用程序或业务逻辑,这使得即使是没有IT或编程经验的初学者也能快速创建所需的功能。

虽然低代码开发还没有威胁到传统开发者的角色,但不可否认的是,这种趋势正在向低代码(或无代码)开发发展。据美国研究公司Gartner预测,到2024年,约65%的应用开发项目将通过低代码平台开发。这个趋势对于开发者来说是不容忽视的,预计未来几年开发者的工作方式也将逐渐发生变化。

这几年隐约碰过低代码,目前比较热门,很多大厂都相继加入。

到底啥是低代码,在我看来就是拖拉拽,呼呼呼,一通操作,搞出一套能跑的系统,前端,后端,数据库,一把完成。当然这可能是最终目标。

链接:http://www.jnpfsoft.com/?csdn,如果你感兴趣,可以尝试体验一下。

JNPF的优势就在于它能生成前后台代码,提供了极大的灵活性,能够创建更复杂、定制化的应用。它的架构设计也让开发者无需担心底层技术细节,能够专注于应用逻辑和用户体验的开发。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

uniapp小程序点击按钮直接退出小程序效果demo(整理)

点击按钮直接退出小程序 <navigator target"miniProgram" open-type"exit">退出小程序</navigator>

ChatGPT蔚然成风,留学生未来何去何从?

2022年的11月30日看似只是普通的一天但在这一天里&#xff0c;一个叫ChatGPT的聊天脚本问世&#xff0c;并在2个月内成为史上最短时间获得一亿用户的应用。 一年后的今天&#xff0c;在佛罗里达州的“珊瑚角高中”&#xff08;美国顶级公立高中&#xff09;里&#xff0c;大量尖…

ArcMap手动新建矢量要素的方式

本文介绍在ArcGIS下属ArcMap软件中&#xff0c;新建点、线、面等矢量要素图层&#xff0c;并对新建图层的空间范围加以划定的方法。 首先&#xff0c;在右侧“Catalog”栏中选择需要存放新建立矢量要素图层的文件夹&#xff0c;右键并选择“New”→“Shapefile...”。 在弹出的…

【C语言】指针笔试题解析

大家好&#xff0c;我是苏貝&#xff0c;本篇博客带大家了解指针和数组笔试题解析&#xff0c;如果你觉得我写的还不错的话&#xff0c;可以给我一个赞&#x1f44d;吗&#xff0c;感谢❤️ 1. 下面程序的结果是什么&#xff1f; int main() {int a[5] { 1, 2, 3, 4, 5 };i…

闪光激光雷达实现无人驾驶导航

一艘宇宙飞船盘旋在灰色、布满陨石坑的月面上&#xff0c;扫描着它的着陆点&#xff0c;然后&#xff0c;在火箭的火焰中&#xff0c;扬起大量尘埃的火焰中&#xff0c;着陆器“墨菲斯”安全稳定地下降到一个空旷的地方。在布满碎石的岩石表面。 事实上&#xff0c;2014 年的这…

JavaFx学习问题1--图片不显示问题

需要注意的点也就是两个 1.路径问题 如果是绝对路径那么格式是file: 绝对路径 如下图所示   如果不加直接给你报错 如果是相对路径格式是相对于src下的相对路径&#xff0c;但头部不加src 如下图 如果加了src&#xff0c;则跟绝对路径一样&#xff0c;要在前面写个file…

python GUI

Python tkinter快速可视化开发GUI界面指南&#xff1a;详细教程(附带工具)_tkinter 可视化_德宏大魔王的博客-CSDN博客 这个案例&#xff1a; 1、GUI 简介 GUI 有好多实现方式&#xff1b;组件 我们选择tkinter 实现&#xff1b; 2、Tkinter 组件 3、拖拽的方式实现Tkinter…

【操作系统笔记十一】进程间通信

Linux文件系统 inode 节点 &#xff08;index node&#xff09;&#xff1a;给每个文件赋予一个称为 i 节点的数据结构。 inode 一开始是存储在硬盘中的&#xff0c;只有当文件被打开的时候&#xff0c;其对应的 i 节点才加载到内存中。 总结&#xff1a; Linux 中&#xff0c…

Linux的socket通信

关于套接字通信定义如下&#xff1a; 套接字对应程序猿来说就是一套网络通信的接口&#xff0c;使用这套接口就可以完成网络通信。网络通信的主体主要分为两部分&#xff1a;客户端和服务器端。在客户端和服务器通信的时候需要频繁提到三个概念&#xff1a;IP、端口、通信数据&…

SAP FI FS10N排除特定凭证类型

财务要求 需要把CO类型的凭证去掉&#xff0c;经过调试发现 筛选条件在GT_selection 在这个函数里面做个增强试试 *----------------------------------------------------------------------* ***INCLUDE FAGL_FILL_GT_SELECTIONS . *------------------------------------…

全流程ARCGIS Pro技术应用教程

详情点击公众号链接&#xff1a;全流程ARCGIS Pro技术应用教程 前沿 GIS是利用电子计算机及其外部设备&#xff0c;采集、存储、分析和描述整个或部分地球表面与空间信息系统。简单地讲&#xff0c;它是在一定的地域内&#xff0c;将地理空间信息和 一些与该地域地理信息相关…

shap-Basic SHAP Interaction Value Example in XGBoost

Basic SHAP Interaction Value Example in XGBoost XGBoost中的基本SHAP交互值示例解释没有交互的线性函数SHAP交互值用一次交互解释线性模型SHAP交互值 用到的环境是python3.7&#xff08;基于上一篇文章的环境&#xff09;&#xff0c;然后再装了xgboost和shap&#xff0c;没…

GIT 提交过滤非必要文件

1、git ls-files&#xff1a;该命令会列出Git仓库中管理的所有文件 2、git rm -r -f --cached . -f 是强制删除 最后的点 是删除所有 git rm -r --cached . 3、 进入Preferences->plugins 中下载一个(.ignore)插件  在项目本地new一个(.gitignore)的文件新增需要过滤文…

最全跨境独立站建站详细步骤解析

对于跨境电商卖家来说&#xff0c;无论是规避“鸡蛋放在同一个篮子里”的风险&#xff0c;还是追求更多的销售额和利润&#xff0c;多平台、多站点的布局都是其至关重要的战略。加之市场的变化带来了新的发展机遇&#xff0c;这也使得如今很多出海企业都在抢占独立站新风口。然…

四、线性支持向量机算法(LinearSVC,Linear Support Vector Classification)(有监督学习)

线性支持向量机&#xff0c;Linear Support Vector Classification. 与参数内核为线性的SVC类似(SVC(kernel‘linear’))&#xff0c;但使用liblinear而非libsvm实现&#xff0c;因此在选择惩罚和损失函数时更具灵活性&#xff0c;并能更好地扩展到大量样本 SVC(kernel’linea…

【沐风老师】3DMAX路径拖尾光线刀光效果插件GhostTrails教程

3DMAX路径拖尾光线刀光效果插件GhostTrails&#xff0c;是3dsmax的动画挤出修改器。它非常适合风格化的运动模糊效果、轮胎轨迹、Tron光循环和许多其他用途。 【适用版本】 3dMax2010 - 2024 【安装方法】 1.将对应版本的GhostTrails 插件复制到 3dmax 插件目录&#xff08;如…

原创动画《优弧,你小子!》

&#x1f4a5; 背景 体验效果直接翻到第三章&#xff1a;成果体验 先来介绍一下优弧&#xff1a;掘金平台管理员丨首席客服君丨运营负责人 &#x1f468;‍✈️ 现在优弧到底是妹子还是汉子仍是一个未解之谜&#xff0c;网上众说纷纭。他说&#xff1a;优弧是个200来斤的胖子&a…

AIGC赋能甄知燕千云员工AI助手,升级企业智创之旅

燕千云数智化业务服务平台发布了1.24.0版本&#xff0c;此次版本升级了燕千云智能工单&#xff0c;增加了一键外呼功能&#xff0c;并且优化了在线客服接入了失败通知&#xff0c;满足不同的用户需求&#xff0c;此次还升级了智能助理&#xff0c;知识中心等功能&#xff0c;满…

[计算机入门] Windows附件程序介绍(影音类)

3.12 附件程序介绍(影音类) 3.12.1 附件程序介绍 附件程序是在安装完Windows系统后&#xff0c;系统自带的一些非常常用且重要的软件程序。可以通过下面的方式搜索并打开附件程序(以打开画图程序为例)&#xff1a; 1、点击左下角windows菜单&#xff1a; 2、直接输入要打开…

基于 SpringBoot+Vue的电影影城管理系统,附源码,数据库

文章目录 第一章 简介第二章 技术栈第三章 功能分析第四章 系统设计第5章 系统详细设计六 源码咨询 第一章 简介 本影城管理系统&#xff0c;是基于 Java SpringBoot 开发的。主要包括二大功能模块&#xff0c;即用户功能模块和管理员功能模块。 &#xff08;1&#xff09;管…