PHP结合星火大模型的智能客服web应用
一、项目目标
随着现代技术的快速发展,大型神经网络模型已经成为解决各种实际问题的强大工具。这些 大模型不仅能够处理海量数据,还具备强大的自动化和智能能力,使它们在自然语言处理、 计算机视觉、语音识别等领域中广受欢迎。同时,许多知名的科技公司和研究机构也提供了 大模型API,使开发者能够轻松访问和应用这些模型。
本项目的目标是让你初步了解大模型应用开发。你将综合运用所学的前端技术和后端技术如 数据库操作,文件操作,正则表达式,重定向等PHP知识,并利用大型神经网络模型的强大 能力来构建一个PHP应用程序。
二、实验内容
创建一个智能客服web应用,功能如下(不一定要实现所有功能,可根据自己能力进行一定改进或简化)
节点一ui布局开发
①用户选择咨询方式
②用户查看其历史咨询内容
③用户管理界面
节点二、用户管理
节点三、权限管理
节点四、日志管理
节点五、智能客服咨询方式包括单轮问答,多轮对话,信息选择
节点六、web程序可视化管理功能
三、实验结果
3.1 模块一,登录和注册
密码只能由数字和字母组成,用了正则表达式
3.2 模块二,用户选择咨询方式或服务界面
3.3 模块三,单轮问答
不会联系上一个问题给出答案
3.4 模块四,多轮问答
会联系上一个问题给出答案
3.5 模块五,用户查看其历史咨询内容
只能查看自己所登录账号的历史记录
3.6 模块六,用户管理界面,权限管理
管理员的用户管理界面,可修改所有人的权限,密码,可删除用户
普通用户的用户管理界面,只能修改自己的密码
3.7 模块七,意见反馈(创新功能)
管理员的意见反馈界面,查看所有普通用户发出过的意见反馈
普通用户的意见反馈界面,可提交自己对该系统的意见反馈
四、总结与心得:
4.1 联系上下文多轮问答模块的实现总结与心得:
在“智能客服问答(联系上下文)”界面输入想要问的问题后点击提交,多轮问答的处理文件(web_demo_m.php)用一个变量$question接收所输入问题,从 WebSocket 服务器接收数据后得出问题的答案,同时将这个问答插入到数据库的历史问答表(hView)中,将答案用cookie传递给“智能客服问答(联系上下文)”界面显示在上方文本框中并重定向回这个问答界面。
当问出下一个问题后,会查询数据库,select本id用户在历史问答表(hView)中的问答记录倒序后的第一个问答记录,会结合这个问答记录(也就是上一个问题的问答记录)给出本问题的答案,从而实现联系上下文多轮问答的功能。
4.2 用户管理,用户权限模块的实现总结与心得:
每个用户设置了权限存在数据库中,1表示为管理员,0表示为普通用户。管理员一般为内部人员,在用户管理界面可以修改所有用户的权限,密码,可以删除用户,从而管理员可以权限管理。普通用户为管理员之外的使用该系统的人,在用户管理界面只可以修改自己的密码。修改的新密码只能由数字和字母组成,用了正则表达式。具体实现方法为对数据库的增删改查。
4.3 数据库设计心得:
一个设计了三个表:
用户表(user)包括主键id,用户名(userN),密码(passW),权限(permission),
用于登录和注册,权限1表示为管理员,0表示为普通用户。
历史记录表(hView)存储了所有用户的历史问答,外键id引用user表中的id字段,区分不同用户的历史问答。还包括主键viewId,问题(question),答案(answer)。
意见反馈表(feedback)包括主键和意见反馈(feedback)用于普通用户插入意见反馈,管理员查看意见反馈。
五、关键代码
5.1联系上下文多轮问答模块部分代码
$question = $_POST['question']; // 获取用户输入的问题 $data = $this->getBody($Appid, $question); //问题(传入) $client->send($data); // 从 WebSocket 服务器接收数据 $answer = ""; while (true) { $response = $client->receive(); $resp = json_decode($response, true); $code = $resp["header"]["code"]; echo "从服务器接收到的数据: " . $response; if (0 == $code) { $status = $resp["header"]["status"]; if ($status != 2) { $content = $resp['payload']['choices']['text'][0]['content']; $answer .= $content; } else { $content = $resp['payload']['choices']['text'][0]['content']; $answer .= $content; $total_tokens = $resp['payload']['usage']['text']['total_tokens']; print("\n本次消耗token用量:\n"); print($total_tokens); break; } } else { echo "服务返回报错" . $response; break; } } print("\n返回结果为:\n"); print($answer); //结果(传出) setcookie("answerM", $answer, time() + 3600); //将$answer存储在名为"answer"的Cookie中 // 连接到SQLite数据库 $database = new SQLite3('iC.db'); $id = $_COOKIE["id_iM"]; //获取iCM.php传来的$id // 历史记录插入数据 $insert_data = "INSERT INTO hView (question, answer, id) VALUES ('$question', '$answer', '$id');"; $database->exec($insert_data); // 检查是否成功插入数据 if ($database->lastErrorCode() != 0) { die('插入数据失败'); } else { echo '成功插入数据'; header("Location: iCM.php"); //跳转问答界面 exit(); } // 连接到SQLite数据库 $database = new SQLite3('iC.db'); $id = $_COOKIE["id_iM"]; //获取iCM.php传来的$id // 通过主键viewId 倒序,查询该用户id数据库最后一条数据 $query_data = "SELECT * FROM hView where id = '$id' ORDER BY viewId desc limit 0,1"; $result = $database->query($query_data); $row = $result->fetchArray(); $header = array( "app_id" => $appid, "uid" => "12345" ); $parameter = array( "chat" => array( "domain" => "general", "temperature" => 0.5, "max_tokens" => 1024 ) ); $payload = array( "message" => array( "text" => array( // 需要联系上下文时,要按照下面的方式上传历史对话 array("role" => "user", "content" => (string)$row['question']), array("role" => "assistant", "content" => (string)$row['answer']), // ...省略的历史对话 array("role" => "user", "content" => $question) ) ) );
5.2用户管理模块修改密码的代码
exec($update_data); // 检查是否成功插入数据 if ($database->lastErrorCode() != 0) { die('修改数据失败'); } else { echo ""; //消息框 }}else{ echo "修改失败,密码只能由数字和字母组成";}?>
5.3意见反馈模块根据不同权限用户显示不同界面的代码
query($query_data); $row = $result->fetchArray(); if ((string)$row['permission'] == 0) { //普通用户,提交意见 ?> 意见反馈
您的意见对我们非常重要
query($query_data); ?> 查看意见反馈
fetchArray()) { ?>
功能演示视频:PHP结合星火大模型写的智能客服WEB应用2.0_哔哩哔哩_bilibili
来源地址:https://blog.csdn.net/lym159635/article/details/135232966
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341