若依项目AI 助手代码解析

article/2025/7/12 23:09:28

基于 Vue.js 和 Element UI 的 AI 助手组件

一、组件整体结构

这个 AI 助手组件由三部分组成:

  1. 悬浮按钮:点击后展开 / 收起对话窗口
  2. 对话窗口:显示历史消息和输入框
  3. API 调用逻辑:与 AI 服务通信并处理响应
<template><div class="ai-assistant"><!-- 悬浮按钮 --><div class="chat-icon" @click="toggleChat"><i class="el-icon-chat-dot-round"></i></div><!-- 对话框 --><el-dialog title="AI 助手" :visible.sync="dialogVisible"><div class="chat-container"><!-- 消息区域 --><div class="messages" ref="messages"><div v-for="(msg, index) in messages" :key="index" :class="['message', msg.role]"><div class="content">{{ msg.content }}</div></div><div v-if="loading" class="loading">思考中...</div></div><!-- 输入区域 --><div class="input-area"><el-input v-model="inputMessage" @keyup.enter.native="sendMessage"><el-button slot="append" @click="sendMessage">发送</el-button></el-input></div></div></el-dialog></div>
</template>

二、AI 功能实现流程

1. 用户交互阶段

当用户点击悬浮按钮时:

  • 调用toggleChat()方法切换对话框显示状态
  • 对话框使用 Element UI 的el-dialog组件实现

当用户输入内容并点击发送按钮(或按 Enter 键)时:

  • 触发sendMessage()方法
  • 检查输入内容是否为空,避免无效请求
2. 消息处理阶段
async sendMessage() {if (!this.inputMessage.trim()) return;// 1. 添加用户消息到对话历史const userMsg = { role: "user", content: this.inputMessage };this.messages.push(userMsg);this.inputMessage = ""; // 清空输入框this.loading = true; // 显示"思考中..."状态try {// 2. 调用AI APIconst response = await fetch("https://api.siliconflow.cn/v1/chat/completions", {method: "POST",headers: {"Authorization": "XXXXXXXXXXXXXXXXXX","Content-Type": "application/json"},body: JSON.stringify({model: "Qwen/QwQ-32B",messages: this.messages, // 传递完整对话历史temperature: 0.7,max_tokens: 512})});// 3. 处理API响应const data = await response.json();if (data.choices && data.choices.length > 0) {const aiMsg = {role: "assistant",content: data.choices[0].message.content};this.messages.push(aiMsg); // 添加AI回复到对话历史}} catch (error) {console.error("API Error:", error);this.$message.error("请求失败,请稍后重试");} finally {this.loading = false; // 隐藏加载状态// 滚动到底部显示最新消息this.$nextTick(() => {this.$refs.messages.scrollTop = this.$refs.messages.scrollHeight;});}
}
3. API 请求解析

这个 AI 助手使用了一个第三方 API(https://api.siliconflow.cn),该 API 兼容 OpenAI ChatCompletion 接口规范,主要参数包括:

  • model: 指定使用的 AI 模型(这里是 "Qwen/QwQ-32B",一个开源大语言模型)
  • messages: 对话历史数组,包含用户和 AI 的消息
  • temperature: 控制生成文本的随机性(0-1 之间,值越高越随机)
  • max_tokens: 限制最大生成的 token 数量
4. 消息渲染与样式
.message {margin: 10px 0;&.user {text-align: right;.content {background: #409EFF;color: white;}}&.assistant {text-align: left;.content {background: #f0f2f5;}}.content {display: inline-block;max-width: 80%;padding: 8px 12px;border-radius: 12px;word-break: break-word;}
}

通过 CSS 类区分用户消息和 AI 回复:

  • 用户消息右对齐,使用蓝色背景
  • AI 回复左对齐,使用灰色背景
  • 都使用圆角矩形和最大宽度限制


http://www.hkcw.cn/article/QNOHrdqwXT.shtml

相关文章

Java源码中有哪些细节可以参考?(持续更新)

欢迎来到啾啾的博客&#x1f431;。 记录学习点滴。分享工作思考和实用技巧&#xff0c;偶尔也分享一些杂谈&#x1f4ac;。 有很多很多不足的地方&#xff0c;欢迎评论交流&#xff0c;感谢您的阅读和评论&#x1f604;。 目录 String的比较final的使用transient避免序列化 St…

Linux | Shell脚本的常用命令

一. 常用字符处理命令 1.1 连续打印字符seq seq打印数字&#xff1b;且只能正向打印&#xff0c;不可反向连续打印 设置打印步长 指定打印格式 1.2 反向打印字符tac cat 正向&#xff0c;tac 反向 1.3 打印字符printf printf "打印的内容"指定格式打印内容 换行…

【FlashRAG】本地部署与demo运行(二)

前文【FlashRAG】本地部署与demo运行&#xff08;一&#xff09; 下载必要的模型文件 完成了项目拉取和依赖下载后&#xff0c;我们需要进一步下载模型文件 Faiss&#xff08;Facebook AI Similarity Search&#xff09;是由Facebook AI团队开发的高效相似性搜索和密集向量聚…

火狐安装自动录制表单教程——仙盟自动化运营大衍灵机——仙盟创梦IDE

打开火狐插件页面 安装完成 使用 功能 录制浏览器操作 录入地址 开始操作 录制完成 在当今快速发展的软件开发生态中&#xff0c;自动化测试已从一种新兴技术手段&#xff0c;转变为保障软件质量与开发效率不可或缺的关键环节。其重要性体现在多个维度&#xff0c;同时&#x…

【目标检测】【AAAI-2022】Anchor DETR

Anchor DETR&#xff1a; Query Design for Transformer-Based Object Detection 锚点DETR&#xff1a;基于Transformer的目标检测查询设计 论文链接 代码链接 摘要 在本文中&#xff0c;我们提出了一种基于Transformer的目标检测新型查询设计。此前的Transformer检测器中&am…

zTasker一款Windows自动化软件,提升效率:大小仅有10MB,免费无广告

一、zTasker是什么&#xff1f; zTasker是一款发布于2023年9月的免费无广告工具&#xff0c;专为Windows用户打造。它以仅8MB的轻量体积、极低资源占用&#xff08;内存消耗不足10MB&#xff09;和秒级启动速度脱颖而出&#xff0c;堪称“任务计划程序的终极强化版”。无论是定…

数学术语之源——绝对值(absolute value)(复数模?)

目录 1. 绝对值&#xff1a;(absolute value): 2. 复数尺度(复尺度)&#xff1a;(modulus): 1. 绝对值&#xff1a;(absolute value): 一个实数的绝对值是其不考虑(irrespective)符号的大小(magnitude)。在拉丁语中具有相同意思的单词是“modulus”&#xff0c;这个单词还…

USB充电检测仪-2.USB充电检测仪硬件设计

本系列文章的最终目标是制作一个USB充电检测仪&#xff0c;支持的功能&#xff1a; 显示USB充电电压、电流、功率、充电量&#xff08;单位WH&#xff09;&#xff1b;实现Typec口和USB-A口的相互转换&#xff08;仅支持USB 2.0&#xff09;&#xff1b; 当然网上有很多卖这种…

华院计算受邀参展第九届丝绸之路国际博览会暨中国东西部合作与投资贸易洽谈会

2025年5月21日至25日&#xff0c;以“丝路融通开放合作”为主题的第九届丝绸之路国际博览会暨中国东西部合作与投资贸易洽谈会在陕西西安国际会展中心隆重召开。应上海市国内合作交流服务中心和上海科创投集团的邀请&#xff0c;华院计算技术&#xff08;上海&#xff09;股份有…

智能路由革命:AI 生态系统的智能高速交警

研究和行业基准测试揭露了一个惊人的事实&#xff1a;大多数企业的 AI 系统运行效率只有 15% 到 20%。罪魁祸首是谁呢&#xff1f;就是糟糕的查询路由。 想象一下这个现实情况&#xff1a; 你所在的组织每在 AI 上花 10 块钱&#xff0c;就有 8 块钱是浪费在把简单查询发送到…

[yolov11改进系列]基于yolov11引入倒置残差块块注意力机制iEMA的python源码+训练源码

【iEMA介绍】 iRMB&#xff08;Inverted Residual Mobile Block&#xff09;的框架原理&#xff0c;是一种结合轻量级CNN和注意力机制的方法&#xff0c;用于改进移动设备上的目标检测模型。IRMB通过倒置残差块和元移动块实现高效信息处理&#xff0c;同时保持模型轻量化。本文…

深度学习实战110-基于深度学习的工业系统故障诊断技术研究(卷积网络+注意力机制模型)

大家好,我是微学AI,今天给大家介绍一下深度学习实战110-基于深度学习的工业系统故障诊断技术研究(卷积网络+注意力机制模型)。工业系统故障诊断是确保现代工业设备安全稳定运行的关键技术环节。随着工业自动化和智能化水平的不断提高,传统故障诊断方法在应对日益复杂、多变…

Fluence (FLT) 2026愿景:RWA代币化加速布局AI算力市场

2025年5月29日&#xff0c;苏黎世 - Fluence&#xff0c;企业级去中心化计算平台&#xff0c;荣幸地揭开其2026愿景的面纱&#xff0c;并宣布将于6月1日起启动四大新举措。 Fluence 成功建立、推出并商业化了其去中心化物理基础设施计算网络&#xff08;DePIN&#xff09;&…

科学智能赋能空间科学研究(2):AI4S 范式下空间科学实验的核心挑战

中国科学院空间应用工程与技术中心在空间科学实验领域的研究覆盖了多模态空间科学实验数据模式挖掘、领域知识抽取、跨学科知识融合与认知智能等研究内容&#xff0c;有效促进了空间科学实验领域的数据应用生态的体系化建设&#xff0c;相关研究成果已正式发表于权威学术期刊《…

QML 无边框窗口翻转动画

目录 引言核心组件实现无边框翻转窗口&#xff08;FlipableDemo.qml&#xff09;登录页面和设置页面&#xff08;省略&#xff09;主界面集成&#xff08;Main.qml&#xff09; 下载链接 引言 接上篇 QML 滑动与翻转效果&#xff08;Flickable与Flipable&#xff09; 。本文通…

若依框架修改模板,添加通过excel导入数据功能

版本&#xff1a;我后端使用的是RuoYi-Vue-fast版本&#xff0c;前端是RuoYi-Vue3 需求: 我需要每个侧边栏功能都需要具有导入excel功能&#xff0c;但是若依只有用户才具备&#xff0c;我需要代码生成的每个功能都拥有导入功能。​ 每次生成一个一个改实在是太麻烦了。索性…

ECS-7000能耗监测系统能耗数据管理机

一、能耗系统介绍 能耗监测系统通过计算机和通讯网络&#xff0c;配电房的现场设备连接为一个有机的整体&#xff0c;实现电网设备运行的远程监控和集中管理。设计中充分体现系统的可用性、先进性、方便性、安全性、可靠性、可扩展性及系统性价比的合理性。 厂家&#xff1a;…

分层模态内相关学习用于无标签三维语义分割

摘要 Recent methods for label-free 3D semantic segmentation aim to assist 3D model training by leveraging the openworld recognition ability of pre-trained vision language models. However, these methods usually suffer from inconsistent and noisy pseudo-lab…

[C++]vc6.0在win10或者win11上下载安装和简单使用教程

VC6.0&#xff0c;即Microsoft Visual C 6.0&#xff0c;是微软公司于1998年推出的一款经典的集成开发环境&#xff08;IDE&#xff09;&#xff0c;在Windows平台软件开发领域具有重要地位。 它支持C和C语言编程&#xff0c;功能强大且全面。其核心优势在于集成了高效的编译器…

TEC温度控制平台的核心技术解析

TEC-2580-500W-24V TEC温度控制平台是一种基于半导体制冷片&#xff08;TEC&#xff09;的高性能温度控制系统&#xff0c;该平台通常由TEC制冷片、温度传感器、控制器、散热系统等部分组成&#xff0c;具有高精度、快速响应、易于集成等优点。具有高精度、高稳定度、长寿命、体…