文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

html+css+js实现简易版ChatGPT聊天机器人

2023-02-25 17:29

关注

OpenAI的一款聊天机器人模型ChatGPT爆火,本篇文章用一百行html+css+js代码给大家制作一款简易的聊天机器人。

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<title>test</title>
	<style type="text/css">
		@import url("https://fonts.googleapis.com/css2?family=Fira+Code:wght@400;500;600&family=Poppins:wght@200;300&display=swap");
		* {
		  margin: 0;
		  padding: 0;
		  box-sizing: border-box;
		  font-family: "Poppins", sans-serif;
		}
		body {
		  background: #4b5c66;
		}
		.container {
			--light-color: #fff;
			height: 580px;
			background: var(--light-color);
			bottom: 50px;
			right: 10px;
			box-shadow: 0px 0px 15px 0px black;
		}
		@media screen and (min-width:440px) {
			.container {
				position: fixed;
			}
		}
		.chat-header {
		  height: 60px;
		  display: flex;
		  align-items: center;
		  padding: 0px 30px;
		  background-color: #0652c0;
		  color: var(--light-color);
		  font-size: 1.5rem;
		}

		.chat-header .logo {
		  height: 35px;
		  width: 35px;
		  box-shadow: 0px 0px 10px 0px black;
		}
		.chat-header img {
		  height: 100%;
		  width: 100%;
		}
		.chat-header .title {
		  padding-left: 10px;
		}
		.chat-body {
		  height: 465px;
		  display: flex;
		  flex-direction: column;
		  padding: 8px 10px;
		  align-items: flex-end;
		  overflow-y: auto;
		}
		.chat-input {
		  height: 60px;
		  display: flex;
		  align-items: center;
		  border-top: 1px solid #ccc;
		}
		.input-sec {
		  flex: 9;
		}
		.send {
		  flex: 1;
		  padding-right: 4px;
		}
		#txtInput {
		  line-height: 30px;
		  padding: 8px 10px;
		  border: none;
		  outline: none;
		  caret-color: black;
		  font-size: 1rem;
		  width: 100%;
		}

		.chatbot-message,
		.user-message {
		  padding: 8px;
		  background: #ccc;
		  margin: 5px;
		  width: max-content;
		  border-radius: 10px 3px 10px 10px;
		}
		.chatbot-message {
		  background: #0652c0;
		  color: var(--light-color);
		  align-self: flex-start;
		  border-radius: 10px 10px 3px 10px;
		}

	</style>
</head>
<body>
	<div class="container">
		<div class="chat-header">
			<div class="logo"><img src="/file/imgs/upload/202302/25/qpbq155bes2.jpg" alt="cwt" /></div>
			<div class="title">简易版Chat GPT</div>
		</div>
		<div class="chat-body"></div>
		<div class="chat-input">
			<div class="input-sec"><input type="text" id="txtInput" placeholder="在这里写" autofocus /></div>
			<div class="send"><img src="https://haiyong.site/img/svg/send.svg" alt="send" /></div>
		</div>
	</div>
	<script>
		const responseObj = {
			你好: "你好,我是最强人工智能ChatGPT,我能回答你所有问题,快来和我聊天吧!",
			五块钱怎么花三天: "坐公交回去找妈妈",				
			你是小黑子吗: "不,我不是小黑子。我是OpenAI的聊天机器人模型ChatGPT",
			你为什么和我聊天: "只因你太美",
			嘿: "嘿! 这是怎么回事",
			今天几号: new Date().toDateString(),
			几点了: new Date().toLocaleTimeString(),
		};
		const chatBody = document.querySelector(".chat-body");
		const txtInput = document.querySelector("#txtInput");
		const send = document.querySelector(".send");
		send.addEventListener("click", () => renderUserMessage());
		txtInput.addEventListener("keyup", (event) => {
			if (event.keyCode === 13) {
				renderUserMessage();
			}
		});
		const renderUserMessage = () => {
			const userInput = txtInput.value;
			renderMessageEle(userInput, "user");
			txtInput.value = "";
			setTimeout(() => {
				renderChatbotResponse(userInput);
				setScrollPosition();
			}, 600);
		};
		const renderChatbotResponse = (userInput) => {
			const res = getChatbotResponse(userInput);
			renderMessageEle(res);
		};
		const renderMessageEle = (txt, type) => {
			let className = "user-message";
			if (type !== "user") {
				className = "chatbot-message";
			}
			const messageEle = document.createElement("div");
			const txtNode = document.createTextNode(txt);
			messageEle.classList.add(className);
			messageEle.append(txtNode);
			chatBody.append(messageEle);
		};
		const getChatbotResponse = (userInput) => {
			return responseObj[userInput] == undefined ?
				"听不太懂呢试试输点别的" :
				responseObj[userInput];
		};
		const setScrollPosition = () => {
			if (chatBody.scrollHeight > 0) {
				chatBody.scrollTop = chatBody.scrollHeight;
			}
		};

	</script>	
</body>
</html>

到此这篇关于html+css+js实现简易版ChatGPT聊天机器人的文章就介绍到这了,更多相关html+css+js实现聊天内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-前端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯