小白入手实现AI客服机器人demo

一、环境准备

1 安装python
2 安装vscode
3 安装相关python库
pip install flask flask_cors openai

4.在vscode里安装TONGYI Lingma(AI编程助手)
在这里插入图片描述

二、后端搭建

创建一个后端文件夹chatbot,再新建一个app.py的python文件

from flask import Flask, request, jsonify
from flask_cors import CORS
from openai import OpenAI
import osfrom dotenv import load_dotenv, find_dotenv
_ = load_dotenv(find_dotenv())client = OpenAI()app = Flask(__name__)
CORS(app, resources={r"/*":{"origins": "*"}}) # 这会为所有端点添加跨源头部分@app.route('/ask', methods=['POST'])def ask():user_question = request.json['message']answer = get_answer_from_model(user_question)return jsonify({'answer': answer})def get_answer_from_model(message):response = client.completions.create(model="gpt-3.5-turbo-instruct",prompt=message,max_tokens=512,# stream=Falsestream=True)print('response:',response)# answer = response.choices[0].text.strip()answer = ""for chunk in response:answer += chunk.choices[0].textreturn answerif __name__ == '__main__':app.run(debug=True, port=5000)

三、前端搭建

1 创建前端文件夹chatbot-interface
2 创建三个前端的文件index.html styles.css srcript.js

index.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>AI Chatbot</title><link rel="stylesheet" href="styles.css">
</head>
<body><div class="chat-container"><div class="chat-header"><h3>AI Chatbot</h3></div><div class="chat-box" id="chat-box"><!-- 聊天消息将在这里显示 --></div><div class="chat-input"><input type="text" id="user-input" placeholder="Type your message..."><button id="send-button" onclick="sendMessage()">Send</button></div></div><script src="script.js"></script>
</body>
</html>

styles.css

body, html {margin: 0;padding: 0;font-family: Arial, sans-serif;
}.chat-container {max-width: 1080px;margin: 30px auto;border: 1px solid #ccc;border-radius: 5px;
}.chat-header {background-color: #f4f4f4;padding: 10px;border-top-left-radius: 5px;border-top-right-radius: 5px;
}.chat-box {height: 720px;overflow-y: scroll;padding: 15px;background-color: #fff;
}.chat-input {padding: 10px;display: flex;justify-content: space-between;
}.chat-input input {flex-grow: 1;padding: 5px;border: 1px solid #ccc;border-radius: 5px;
}.chat-input button {padding: 5px 15px;background-color: #007bff;color: white;border: none;border-radius: 5px;cursor: pointer;
}/* 简单的动画效果 */
.chat-box::-webkit-scrollbar {width: 6px;
}.chat-box::-webkit-scrollbar-thumb {background-color: #ccc;
}

script.js

var inputBox = document.getElementById('user-input');
var sendButton = document.getElementById('send-button');
inputBox.addEventListener('keydown', function(event) {if (event.keyCode === 13 || event.key === 'Enter') {event.preventDefault();sendMessage();}
});function sendMessage() {//var userInput = document.getElementById('user-input').value;var userInput = inputBox.value;if (userInput.trim() === '') return;// 将用户输入添加到聊天框addToChatBox('baiyang', userInput);// 清空输入框document.getElementById('user-input').value = '';// 假设这里发送请求到服务器,并获取AI的回复fetch('http://127.0.0.1:5000/ask', {method: 'POST',headers: {'Content-Type': 'application/json',},body: JSON.stringify({ message: userInput })}).then(response => {if (!response.ok){throw new Error('Network response was not ok');}return response.json()}).then(data => {// 将AI的回复添加到聊天框if (data && data.answer){console.log(data.answer);addToChatBox("douwan", data.answer);}else{console.error('Invalid response data:', data);}// addToChatBox('AI', data.reply);}).catch((error) => {console.error('Error:', error);});
}function addToChatBox(sender, message) {var chatBox = document.getElementById('chat-box');var div = document.createElement('div');div.innerHTML = `<strong>${sender}:</strong> ${message}`;chatBox.appendChild(div);chatBox.scrollTop = chatBox.scrollHeight; // 自动滚动到底部
}

四、效果展示

1 首先运行app.py文件,在vscode中运行,如
在这里插入图片描述

2 浏览器打开index文件,在输入框中输入相关文件,发送可返回信息。
在这里插入图片描述

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

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

相关文章

electron下载失败(electron如何切换镜像源)

打开&#xff1a; 或者&#xff1a; C:\Users\用户名\.npmrc 添加&#xff1a; electron_mirrorhttps://npmmirror.com/mirrors/electron/ 到文件中&#xff0c;保存 方法二&#xff1a; npm config set ELECTRON_MIRROR https://npmmirror.com/mirrors/electron/ ELECTR…

AIOps在业务运维的最佳应用实践

随着企业IT基础架构的复杂性日益增加&#xff0c;传统运维模式难以满足高效、稳定的业务需求。AIOps&#xff08;人工智能运维&#xff09;作为一种新兴技术&#xff0c;通过数据驱动的自动化和智能化手段&#xff0c;有效提升了IT运维的效率和可靠性。本文将探讨AIOps在业务运…

FPGA的基础仿真项目--七段数码管设计显示学号

一、设计实验目的 1&#xff0e; 了解数码管显示模块的工作原理。 2&#xff0e; 熟悉VHDL 硬件描述语言及自顶向下的设计思想。 3&#xff0e; 掌握利用FPGA设计6位数码管扫描显示驱动电路的方法。 二、实验设备 1. PC机 2.Cyclone IV FPGA开发板 三、扫描原理 下图所…

PHP邮箱服务器搭建与配置教程?如何使用?

PHP邮箱服务器搭建的步骤&#xff1f;服务器搭建的注意事项&#xff1f; 在当今的数字化时代&#xff0c;电子邮件仍然是沟通和业务处理的重要工具之一。通过PHP搭建和配置一个邮箱服务器&#xff0c;您可以实现自主掌控邮件系统&#xff0c;确保数据的安全性和隐私性。AokSen…

VMWARE安装Centos8,并且使用ssh连接虚拟机

VMWARE安装Centos8,并且使用ssh连接虚拟机 安装VMWARE安装Centos 8SSH连接 安装VMWARE 参考这篇文章: https://blog.csdn.net/weixin_74195551/article/details/127288338 安装Centos 8 首先在aliyun镜像仓库下载: https://mirrors.aliyun.com/centos/8/isos/x86_64/ 我下载…

如何拥有自己的微信小程序

如何拥有自己的微信小程序 ~~话先放在这里~~ 写在前面申请一个属于自己的小程序先去[微信开放平台](https://open.weixin.qq.com/home)申请一个你的小程序扫码申请新小程序小程序该记好的个人信息 安装微信开发者工具下载工具关联你的小程序请求域名配置发布小程序 BUY一个自己…

高考之后,专业与学校如何选择?

随着2024年高考的结束&#xff0c;考生们面临着选择专业或学校的难题。选择专业意味着专注于一个特定领域&#xff0c;直接影响未来的职业发展和兴趣培养&#xff1b;而选择学校则提供了更优越的学术氛围和广泛的社交机会&#xff0c;对个人综合素质提升有重要作用。无论选择哪…

基于YOLOv8m的船舶检测(附数据集和Coovally操作步骤)

本文主要内容:详细介绍了船舶检测整个过程&#xff0c;从创建数据集到训练模型再到预测结果全部可视化操作与分析。 文末有数据集获取方式&#xff0c;请先看检测效果 现状 船舶检测和识别是一项重要的任务&#xff0c;它涉及到航运安全、港口管理、海洋保护等方面&#xff0c…

使用 cx_Oracle 在 Oracle 中等待记录并执行操作

问题背景&#xff1a; 在第一个 Python 项目中&#xff0c;需要等待记录被插入 Oracle 表中&#xff0c;一旦记录存在&#xff0c;就调用 Python 函数。目前使用 cx_Oracle 库&#xff0c;采用一种无限循环的方式来查询表。如果记录存在&#xff0c;就调用函数&#xff0c;然后…

在ubuntu16中下载VMware Tools工具

一、打开植入 二、开始安装 打开驱动放置的默认位置 在这里打开终端&#xff1b;添加到/home/你的用户名/Downloand/中 进入后解压 然后进去解压后的文件 终端输入 sudo ./vmware-install.pl 开始安装前的配置&#xff08;很麻烦跟着输就行&#xff09; 继续 出现如上…

八分钟生成一篇两万字的文章演示——《基于灰色预测的人口预测模型》

文章目录 工具使用 《基于灰色预测的人口预测模型》-全文由AI一次性生成文献综述研究方法模型开发灰色预测模型的数学构建参数估计模型验证 案例研究案例研究描述数据收集与预处理灰色预测模型的应用 文献综述研究方法模型开发灰色预测模型的数学构建参数估计模型验证 案例研究…

关于事务流的思考

关于事务流的思考 1 事务流业务分析 ​ 不同业务可能有不同的审核流程&#xff0c;而activiti为大家提供了一套公用的审核功能&#xff0c;基于这些功能我们可以根据自己的业务需求组合出我们自己的审核流程&#xff0c;而这里我要实现的事务流有如下功能&#xff1a;角色为结…

售前方案VS产品经理

售前和产品经理分别是做什么的 售前方案&#xff1a;主要负责在销售过程中与客户沟通&#xff0c;了解客户需求&#xff0c;提供技术支持和解决方案演示的技术人员。协助销售团队与客户沟通&#xff0c;帮助客户理解产品特性和技术细节&#xff0c;确保产品与客户需求匹配。售前…

智能体(Agent)实战——从gpts到auto gen

一.GPTs 智能体以大模型作为大脑,同时配备技能,使其能够完成具体的任务。同时,为了应用于垂直领域,我们需要为大模型定义一个角色,并构建知识库。最后,定义完整的流程,使其完成整个任务。以组会汇报的智能体为例,定义如下 1.创建自己的gpt 2.角色定义 该 Agent 是一种智…

计算机图形学入门13:纹理映射常见问题、MipMap

上一章介绍了纹理映射&#xff0c;这一章介绍纹理映射常见的问题。 1.纹理太小 1.1产生原因 例如要渲染一面墙&#xff0c;它的分辨率4K&#xff0c;但与它对应的纹理大小是256x256&#xff0c;这样要怎样&#xff1f;显然纹理会被拉大。当墙面上一个点去查询纹理时&#xff0…

研发管理平台有哪些?符合软件公司需求的工具要具备这几个特征!

本人从事TOB行业十余年&#xff0c;目前就职的就是一家软件公司。下面&#xff0c;本人就站在软件公司的角度来讲一讲&#xff1a;我们公司做项目研发时&#xff0c;会选择一个什么样的研发管理工具来辅助&#xff1f;供大家参考。 众所周知&#xff0c;软件研发项目是一个复杂…

电商商品项目||电商竞品分析|主流电商商品API接口在竞品分析中的重要应用

竞争数据采集 竞争数据是对在电子商务业务中彼此存在竞争关系的商家、品牌、产品(即竞争对手&#xff09;等各项运营数据的总称&#xff0c;在电子商务企业的经营过程中&#xff0c;对竞争对手进行分析可以帮助决策者和管理员了解竞争对手的发展势头&#xff0c;为企业成略制定…

通用视频模板解决方案,视频生产制作更轻松

对于许多企业来说&#xff0c;视频制作往往面临着技术门槛高、制作周期长、成本投入大等难题。为了解决这些问题&#xff0c;美摄科技凭借其领先的跨平台视频技术和完善的工具链&#xff0c;推出了面向企业的视频通用模板解决方案&#xff0c;为企业视频制作带来了全新的革命性…

【elementui源码解析】如何实现自动渲染md文档-第三篇

目录 1.前言 2.webpack.demo.js 3.markdown文档 4.fence.js 1&#xff09;tokens 2&#xff09;::: 3&#xff09; 5.containers.js 1&#xff09;markdown-it-container 2&#xff09;md.use() 3&#xff09;代码逻辑 4&#xff09;containers小结 6.congfig.js …

5G消息 x 政务 | 新型数智政务服务平台

5G消息 x 政务 | 新型数智政务服务平台 通过 5G 消息&#xff0c;帮助政府部门及公共事业部门优化服务品质、提高服务效能&#xff0c;打造现代政府的展示窗口、便民利企的服务窗口、营商环境的感知窗口&#xff0c;提供多元、透明、高效的线上政务服务。 5G消息 x 政务 —— 优…