前端实现高仿chatgpt对话页面,3分钟一看就会,你上你也行

自从去年11月份chatgpt出圈之后,他的热度就居高不减,也出现了很多人借助接口开发的国内版本,那么本篇博客就从前端的角度来看看前端如何实现类似chatgpt的对话功能!

最终效果

因为这是我写在一个项目中的,单独提出来可能配色效果不同,但功能和做法只要我们掌握了,那么自己想怎么写就怎么写!

源码在文末获取!

图片

页面布局

这一块比较简单,分析过chatgpt的页面的就会知道,他的页面布局方式是采用flex布局的,flex布局确实好用,那么我也是基于Bootsrap+jquery+flex布局完成了简易版的对话功能!主要有两个地方用到了flex布局!

flex布局一

图片

这里的头像和文字采用的就是flex布局,并且文字和图片顶部对齐,防止文字较多依旧和图片中间对齐的bug。

需要设置css:

display: flex;
align-items: flex-start;

其中align-items: flex-start;的作用就是让文字与图片顶部对齐!

图片

flex布局二(重点)

第二处用到flex布局的地方就是这个搜索框:

图片

很多人觉得这个对话框很简单,flex布局实现输入框和按钮在同一行确实简单,但你要好好看看chatgpt的官网,都是有小细节的,这里面还是有很多知识点的。

首先,我要说的是这个输入框用的textarea,而不是input,区别在于,input输入的内容是不能换行的,但textarea文本框可以,但使用textarea的问题是,参数rows设置为一行,这个文本框的高度会很低,达不到chatgpt的那个页面要求,rows设置大一点或者这个文本框的高度给高一点会有一个问题就是输入时他的光标不会在文本框的高度中间,而是在第一行,我们是没法通过其他方式让输入光标垂直居中的,因此这也不符合chatgpt页面的要求,所以这确实是个值的学习的一点!看了chatgpt页面的做法后,我悟了,下面一张图来说明chatgpt是如何做的:

图片

如图,你只要将textarea边框取消掉,然后focus伪类将边框效果也取消掉,外边再套一个div边框将textarea文本框和按钮套在里面就好了!

.ipt{display:flex;align-items: center;position: absolute;bottom: 60px;margin: 0 15px;padding-right: 15px;border-radius: 15px;width: calc(100% - 30px);height: 50px;border: 1px solid #e7eaec;
}
.ipt textarea {resize: none;overflow-y: auto;border: none;box-shadow: none;
}
.ipt textarea:focus{border: none !important;box-shadow: none !important;
}

最后,将这个输入框定位到页面底部就好!

js部分

首先,页面部分,我们添加消息到页面,包括用户的问题以及ai的回复,添加消息到页面时需要向上滚动:

// 添加用户消息到窗口
function addUserMessage(message) {var messageElement = $('' + message + '
');chatWindow.append(messageElement);chatInput.val('');chatWindow.animate({ scrollTop: chatWindow.prop('scrollHeight') }, 500);
}// 添加回复消息到窗口
function addBotMessage(message) {var messageElement = $('' + message + '
');chatWindow.append(messageElement);chatInput.val('');chatWindow.animate({ scrollTop: chatWindow.prop('scrollHeight') }, 500);
}

这里消息添加带页面后,清空了输入框的内容,接下来还需要给输入框添加加一个键盘事件,也就是点击enter键也可以发送消息!

// 处理 Enter 键按下
chatInput.keypress(function(e) {if (e.which == 13) {chatBtn.click();}
});

最后就是发送消息与获得消息的一部分了:

// 处理用户输入
chatBtn.click(function() {var message = chatInput.val();if (message.length == 0){common_ops.alert("请输入内容!")  // 弹窗  return  }addUserMessage(message);chatBtn.attr('disabled',true) // 消息发送后让提交按钮不可点击// 发送信息到后台$.ajax({url: '/chat',method: 'POST',data: {"prompt": JSON.stringify(message)},success: function(res) {res = JSON.parse(res);addBotMessage(res.content);chatBtn.attr('disabled',false)  // 成功接受消息后让提交按钮再次可以点击},error: function(jqXHR, textStatus, errorThrown) {addBotMessage('' + '出错啦!请稍后再试!' + '');chatBtn.attr('disabled',false) }});
});

这些逻辑都很简单,我不再总结,需要注意的是,我在发送消息到后台等待相应的过程让按钮的状态是不可点击的,直到后台返回消息才可以进行下一次问答!但这里我没有处理键盘事件,也就是说你可以点击enter继续向后台发送消息,这也是一个bug,只不过我没有处理,你们不需要的可以去掉这个键盘事件就好了,当然也可以在发送消息到获得回答的这个时间段像禁用发送按钮一样,禁止enter键盘事件或者解绑这个键盘事件,这个你们自己去完成,这里我不在多说(总要留点东西让你们自己去思考去感悟!)

最后: 下方这份完整的软件测试视频学习教程已经整理上传完成,朋友们如果需要可以自行免费领取 【保证100%免费】
在这里插入图片描述
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

软件测试技术交流群社:746506216(里面还有工作内推机会,毕竟我们是关系社会。)

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

在这里插入图片描述

面试文档获取方式:


在这里插入图片描述

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

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

相关文章

【ChatGPT】原生JS实现ChatGPT小型Demo

初入前端的小白也可以尝尝鲜 无需科学上网,调用API2D的接口进行连接(也可以换成官方API,均有免费额度) 第一步、注册API2D https://api2d.com/r/187255 使用GitHub或邮箱进行注册登录 ,通过 GitHub 注册的开发者将获…

分享下前端开发如何玩转ChatGPT

去年的时候就跟风注册了一波,其回答问题的准确性和编码能力让我吃惊。不得不说,ChatGPT作为一个新兴的AI产品,和老美的电影里的人工智能有那么一些相像了,甩了三问一不知的小爱、小度和小E不止一条街。 他的🔥出了圈&a…

浅谈ChatGPT取代前端开发工程师

1.ChatGPT 是什么? ChatGPT 是一种基于深度学习的自然语言处理技术,它可以生成高质量的自然语言文本。该技术是由 OpenAI 团队 开发,旨在使计算机能够像人类一样理解和产生自然语言。ChatGPT 使用了深度神经网络和自然语言处理技术,通 过对大…

一文教会你前端开发如何使用chatGPT提高效率

想想chatGPT已经火起来快小一年了,每天看着新闻感叹,好厉害,好想学,闲暇之余翻着相关技术文章,总是一知半解,需要申请各种账号,奈何人懒,且笨还怕上当受骗,估一直拖延至此…

ChatGPT方法论“BORE“

作者 | 陈财猫 我是一个自动驾驶行业的产品经理,也是ChatGPT的第一批用户。第一次遇见ChatGPT是在去年十二月的第一个星期,有一个搞AI的朋友在群里发了一张与ChatGPT的聊天截图,引起了我的兴趣,从此我便一发不可收拾。 刚开始&a…

毕业论文写作与降重神器ChatGPT从零开始使用(超详细)

文章目录 ChatGPT的使用1. 复制论文到输入框2. 提取论文中关键信息3. 重新扩写5. 报错滥用问题,Your account was flagged for potential abuse. If you feel this is an error, please contact us at help.openai.com 最近进行毕业季,又要头疼如何写毕业…

使用ChatGPT进行文章降重

#ChatGPTTOC 使用ChatGPT进行文章降重 在ChatGPT引领的技术爆炸时期,如何使用它对文章进行降重? 推荐一个实测简单有效的方法,只需两步: 简单来说就是先进行关键点提取再进行关键点扩写。 关键点提取 提炼出这段话的关键点和结论…

chatgpt可以降重论文吗-chatgpt降重论文软件

chatgpt可以降重论文吗 ChatGPT是一种自然语言处理技术,可以生成符合指定条件的文本。因此,理论上可以使用ChatGPT来降重论文。但是,需要注意以下几点: 是否符合学术道德要求:学术论文的降重需要严格遵守学术道德准则…

「AIGC」- ChatGPT可以怎么玩?

chatGPT这么火,这几天一番体验之后,除了惊叹,同时也引发了作为程序员的担忧:我的工作是否会被AI取代? 这个问题很难不引起焦虑,但是我们可以换一个角度,可以用这些生成类的工作,做些…

AI绘图网站素材(chatGPT-4汇总)

科研工作中在文献中都会用到画图工具,画出好看又科学的图片,不仅可以提升文章的可阅读性,同时对读者来说也是赏心悦目。AI绘图软件是目前比较常用的画图工具,利用AI工具基本就可以实现一般学术或者工作的画图需要,但是…

让ChatGPT画一个小孩

问:用python画一个小孩 答:下面是一个用Python的turtle模块画小孩的示例代码: scssCopy codeimport turtle# 设置画布大小和背景色 turtle.setup(400, 400) turtle.bgcolor(lightblue)# 设置画笔属性 turtle.pensize(5) turtle.penup() turtl…

少儿学编程系列 --- 如何让ChatGPT使用turtle画画

ChatGPT介绍 ChatGPT(全名:Chat Generative Pre-trained Transformer),美国OpenAI 研发的聊天机器人程序 ,于2022年11月30日发布 。ChatGPT是人工智能技术驱动的自然语言处理工具,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,真正像人类一…

(小伞每日论文概读)视觉ChatGPT?让ChatGPT能画画的模型设计!

声明 本篇文章的相关图片来源于论文:Visual ChatGPT: Talking, Drawing and Editing with Visual Foundation Models 论文链接如下:https://arxiv.org/pdf/2303.04671.pdf 碍于本人的知识水平所限,本篇文章的总结可能存在不妥之处&#xf…

ChatGPT实用指南(精编版)

本指南增加了大量实用的操作和详细的讲解,保证小白可以轻松上手,快速驾驭ChatGPT。 关注公众号:【互联互通社区】,回复【GPT019】获取全部报告内容。 精彩推荐 GPT001:ChatGPT专题报告合辑(精选七篇) -ChatGPT&#xf…

从原理到应用,人人都懂的ChatGPT指南 | 京东云技术团队

作者:京东科技 何雨航 引言 如何充分发挥ChatGPT潜能,已是众多企业关注的焦点。但是,这种变化对员工来说未必是好事情。IBM计划用AI替代7800个工作岗位,游戏公司使用MidJourney削减原画师人数…此类新闻屡见不鲜。理解并应用这项…

chatgpt驯化指南——不要落伍了哦

首先,我们让它自己介绍自己。 然后,给大家提供这个软件的文件包。 已发布资源,自行下载。 链接如下: (3条消息) chatgpt桌面版软件,可直接链接外部,无需梯子仅需要OPENAIKEY资源-CSDN文库 注意&#xff…

从原理到应用,人人都懂的 ChatGPT 指南

“如何充分发挥ChatGPT潜能,成为了众多企业关注的焦点。但是,这种变化对员工来说未必是好事情。IBM计划用AI替代7800个工作岗位,游戏公司使用MidJourney削减原画师人数......此类新闻屡见不鲜。理解并应用这项新技术,对于职场人来…

ChatGPT 高效使用指南

简介 ChatGPT 是一种基于人工智能(AI)技术的应用,它可以通过文字和使用者进行对话和回答问题。它采用的人工神经网络和深度学习等技术,能够学习大量的语言数据,并从中提取出语言规律和模式,从而生成具有逻…

ChatGPT 指南:如何与人工智能模型进行对话与互动

人工智能技术的快速发展使得我们能够与智能机器进行对话和互动。 ChatGPT 是一种基于 GPT-3.5 架构的强大语言模型,它能够进行自然语言处理,理解我们的问题并提供相应的回答。本文将为您提供使用 ChatGPT 进行对话和互动的详细指南。 1、提出问题 与 Cha…

ChatGPT 指南:角色扮演让回答问题更专业

让 ChatGPT 进行角色扮演 Act as ...,比如,律师、内科医生、心理医生、运动教练、哲学家、翻译、平面设计师、IT 工程师等等,从而才能让 ChatGPT 从这个角色角度来分析我们的问题,不然,它的回答可能会过于广泛。 下面以…