聊天机器人案例

2023-10-27

在这里插入图片描述

HTMl

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<style type="text/css">
		html,body{
			height: 100%;
			margin: 0;
			padding: 0;
		}
		.container{
			height: 100%;
			width: 500px;
			margin: 0 auto;
			border: 1px solid #0094ff;
		}
		.message{
			width: 100%;
			height: 80%;
			background-color: yellowgreen;
			overflow: scroll;
		}
		.inputBox{
			width: 100%;
			height: 20%;
			background-color: hotpink;
		}
		.inputBox input{
			height: 100%;
			border: none;
			/* box-sizing: border-box; */
			padding: 0;
			margin: 0;
		}
		.inputBox input:first-child{
			width: 80%;

		}
		.inputBox input:nth-child(2){
			width: 19%;
		}
		.my{
			height: 30px;
			line-height: 30px;
			text-align: left;
			font-size: 25px;
			color: gray;
			background-color: pink;
			border: 1px solid #0094ff;
		}
		.robot{
			height: 30px;
			line-height: 30px;
			text-align: right;
			font-size: 25px;
			color: white;
			background-color: seagreen;
			border: 1px solid #0094ff;
		}
	</style>
</head>
<body>
	<div class="container">
		<div class="message"></div>
		<div class="inputBox">
			<input type="text" id="myMessage">
			<input type="button" value="发送" id="btnSend">
		</div>
	</div>
</body>
</html>
<script type="text/javascript" src="js/ajax_tool.js"></script>

<script type="text/javascript">
	document.querySelector("#btnSend").onclick=function(){
		//获取输入的内容
		var inputValue=document.querySelector("#myMessage").value;


		//创建出对话框
		var myBox=document.createElement("div");
		myBox.innerHTML=inputValue;
		myBox.classList.add('my');

		//添加到界面
		document.querySelector(".message").appendChild(myBox);
		//发送ajax请求
		//在接受到返回的数据时创建对话框
		
		ajax_tool_pro({
			url:"chat_pro.php",
			data:'message='+inputValue,
			method:'post',
			success:function(data){
				console.log(data);
				//创建div
				var robotBox=document.createElement('div');
				robotBox.innerHTML=data;
				robotBox.classList.add('robot');
				document.querySelector(".message").appendChild(robotBox);
			}
		})
	}
</script>

PHP

<?php 
	
	$message=$_POST['message'];

	switch ($message) {

		case '你好':
			$helloArr=array(
				'人家不好',
				'好你个头',
				'hello world',
				'讨厌'
			);
			$randomKey=array_rand($helloArr,1);
			echo $helloArr[$randomKey];
			break;

		case '吃饭没':
			$foodArr=array(
				'吃了早饭',
				'没有吃哦',
				'要邀请我么,我有空哦',
				'不去'
			);
			$randomKey=array_rand($foodArr,1);
			echo $foodArr[$randomKey];
			break;
		default:
		$random=array(
				'喜洋洋',
				'葫芦娃',
				'好久不见',
				'看见你就烦',
				'滚一边去'
			);
			$randomKey=array_rand($random,1);
			echo $random[$randomKey];
			break;
	}
 ?>

通过json来写

## info/hello.json

[
	"萨瓦迪卡",
	"阿尼阿瑟哦",
	"hello",
	"滚犊子"
]

chat_pro_plus.php

<?php 
	
	//获取用户数据
	$message=$_POST['message'];
	//1.读取json文件,decode转化为php数组,获取随机key,获取内容
	switch ($message) {
		case '你好':
			//读取json文件
			$str=file_get_contents('info/hello.json');
			$dataArr=json_decode($str);
			$randomKey=array_rand($dataArr,1);
			echo $dataArr[$randomKey];
			break;
		
		default:
			# code...
			break;
	}
 ?>

chat.html

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<style type="text/css">
		html,body{
			height: 100%;
			margin: 0;
			padding: 0;
		}
		.container{
			height: 100%;
			width: 500px;
			margin: 0 auto;
			border: 1px solid #0094ff;
		}
		.message{
			width: 100%;
			height: 80%;
			background-color: yellowgreen;
			overflow: scroll;
		}
		.inputBox{
			width: 100%;
			height: 20%;
			background-color: hotpink;
		}
		.inputBox input{
			height: 100%;
			border: none;
			/* box-sizing: border-box; */
			padding: 0;
			margin: 0;
		}
		.inputBox input:first-child{
			width: 80%;

		}
		.inputBox input:nth-child(2){
			width: 19%;
		}
		.my{
			height: 30px;
			line-height: 30px;
			text-align: left;
			font-size: 25px;
			color: gray;
			background-color: pink;
			border: 1px solid #0094ff;
		}
		.robot{
			height: 30px;
			line-height: 30px;
			text-align: right;
			font-size: 25px;
			color: white;
			background-color: seagreen;
			border: 1px solid #0094ff;
		}
	</style>
</head>
<body>
	<div class="container">
		<div class="message"></div>
		<div class="inputBox">
			<input type="text" id="myMessage">
			<input type="button" value="发送" id="btnSend">
		</div>
	</div>
</body>
</html>
<script type="text/javascript" src="js/ajax_tool.js"></script>

<script type="text/javascript">
	document.querySelector("#btnSend").onclick=function(){
		//获取输入的内容
		var inputValue=document.querySelector("#myMessage").value;


		//创建出对话框
		var myBox=document.createElement("div");
		myBox.innerHTML=inputValue;
		myBox.classList.add('my');

		//添加到界面
		document.querySelector(".message").appendChild(myBox);
		//发送ajax请求
		//在接受到返回的数据时创建对话框
		
		ajax_tool_pro({
			url:"chat_pro_plus.php",
			data:'message='+inputValue,
			method:'post',
			success:function(data){
				console.log(data);
				//创建div
				var robotBox=document.createElement('div');
				robotBox.innerHTML=data;
				robotBox.classList.add('robot');
				document.querySelector(".message").appendChild(robotBox);
			}
		})
	}
</script>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

聊天机器人案例 的相关文章

随机推荐

  • Kanzi入门学习教程

    锋影 e mail 174176320 qq com 1 安装Kanzi 2 使用Kanzi studio创建工程 Kanzi创建的工程会包含以下目录结构 其中 Tool project文件夹中存放的是设计师设计的工程 包含kanzi UI
  • 不同业务场景下数据同步方案设计

    企业开发实践中通常需要提供数据搜索的功能 例如 电商系统中的商品搜索 订单搜索等 通常 搜索任务通常由搜索引擎担当 如Elasticsearch 而我们的原始数据为了安全性等问题通常存储在关系型数据库中 在搜索数据前 我们需要先将数据从关系
  • 前端性能优化指南

    一 常用指标 1 FP First Paint 页面在导航后首次呈现出不同于导航前内容的时间点 计算方式 白屏时间 firstPaint pageStartTime 2 FCP First Contentful Paint 从页面开始加载到
  • pandas 选取行和列的方法

    本文介绍在 pandas 中如何读取数据行列的方法 数据由行和列组成 在数据库中 行被称作记录 record 列被称作字段 field 回顾一下我们对记录和字段的获取方式 比较常见的 字段根据名称获取 记录根据筛选条件获取 比如获取 stu
  • 【MQTT协议】学习笔记(3.1.1版本)

    MQTT协议学习 3 1 1版本 MQTT基础知识 MQTT 术语 数据表示 Data representations MQTT控制报文格式 MQTT Control Packet format 固定报头 Fixed header MQTT
  • 打造基于终端命令行的IDE,Termux配置Vim C++开发环境

    Termux配置Vim C 开发环境 打造基于终端命令行的IDE 主要利用Vim Coc插件 配置C 的代码提示等功能 Termux换源 打开termux 输入termux change repo 找到mirrors tuna tsingh
  • bert cnn知识抽取模型_结合Bert字向量和卷积神经网络的新闻文本分类方法

    刘凯洋 摘要 目前的文本分类大多使用词向量 且词向量大多由Word2vec Glove等方法训练得到 其存在的问题是部分文本中词语的数量较多而训练速度较慢 且准确率受到切词的影响 由于中文字词和英文差异较大 提出结合Bert字向量的文本分类
  • 树莓派外设开发之控制继电器(组)

    目录 控制继电器 控制继电器组 控制继电器 选择7号引脚作为继电器信号输出控制端 代码 include
  • C高级 第四天

    bin bash 1 实现一个对数组求和的函数 数组通过实参传递给函数 read p 输入数组 a arr sum 0 function add for i in arr do sum i done add arr echo sum 2 写
  • 科研学术的写作环境搭配(LaTeX+VSCode+Sumatra PDF/Skim)Win/Mac通用

    以前写论文的时候经常使用的是Word 往往写完论文后排版需要花上个1 2天 虽然通过了计算机二级考试 但是深深觉得Word的排版非常辛苦 一次偶然的机会在B站上了解到了LaTeX 一开始感觉用代码写文章非常神奇 有点像Markdown 但L
  • java 泛型中的自定义方法--类型推断 和 自动装箱

    自定义泛型方法 泛型方法中的类型推断 和 泛型只对应引用类型的 例子 author lh public class GenericTest3 public static void main String args 泛型中的类型推断 取两个参
  • 深入浅出JMS(一)--JMS基本概念

    https blog csdn net jiuqiyuliang article details 46701559 深入浅出JMS 四 Spring和ActiveMQ整合的完整实例 2015年09月27日 00 13 23 阅读数 1137
  • java自定义findbugs规则_FindBugs规则整理

    FindBugs是基于Bug Patterns概念 查找javabytecode class文件 中的潜在bug 主要检查bytecode中的bug patterns 如NullPoint空指针检查 没有合理关闭资源 字符串相同判断错 而不
  • 无人机自主探索FUEL:代码阅读3--执行循环顺序与部分释义

    一 循环 执行 fast exploration manager cpp中的 FastExplorationManager planExplore 进行探索并选择视点 此时终端打印max id min id 代价cost mat以及旅行商算
  • Markdown转换word(两种方法,实现两者互转)

    Markdown转换成word Typora pandoc就可以简单的实现Markdown转换成word啦 在日常使用过程中 需要用到其他的格式 typora默认支持 md文件转 pdf与 html格式 其余的常见格式需要使用 pandoc
  • 使用go test框架驱动的自动化测试

    一 背景 团队的测试人员稀缺 无奈只能 自己动手 丰衣足食 针对我们开发的系统进行自动化测试 这样既节省的人力 又提高了效率 还增强了对系统质量保证的信心 我们的目标是让自动化测试覆盖三个环境 如下图所示 我们看到这三个环境分别是 CI C
  • JS大纲简介

    1 HTML中的JavaScript js引用文件可以放在两个位置 一种是html中的head中 一种是html中的body中 放置在这两个位置 有何区别呢 1 1 使用
  • 计算机组成与设计第五版课后答案ch04,数据结构第4章例题与答案

    四章 一 选择题 1 下面关于串的的叙述中 哪一个是不正确的 北方交通大学 2001 一 5 2分 a 串是字符的有限序列 b 空串是由空格构成的串 c 模式匹配是串的一种重要运算 d 串既可以采用顺序存储 也可以采用链式存储 2 若串s1
  • Linux 【基础】 xshell 简单使用

    xshell 首先xshell是什么 Xshell 是一个强大的安全终端模拟软件 它支持SSH1 SSH2 以及Microsoft Windows 平台的TELNET 协议 Xshell 通过互联网到远程主机的安全连接以及它创新性的设计和特
  • 聊天机器人案例

    HTMl