AI里的RAG到底是什么?
AI大模型如deepseek本地部署的成本相对较低,如果要训练,微调大模型,则需要非常多的显卡,与很多时间,那一般企业无法投入那么多钱去买显卡,怎么办?
通过RAG与本地部署来提升大模型的专业知识
RAG(Retrieval-Augmented Generation,检索增强生成)是一种将信息检索与文本生成结合的AI技术范式,通过动态引入外部知识提升大模型输出的准确性和时效性。以下是其核心原理、技术架构和应用场景的全面解析:
一、RAG核心原理
- 工作流程mermaid
graph TD 用户提问 --> 语义检索 --> 知识库 --> 上下文拼接 --> 大模型生成 --> 输出答案
- 关键技术环节
- 语义检索:将用户Query和知识库文档编码为向量,计算相似度(如余弦相似度)
- 知识重排序:利用交叉编码器(Cross-Encoder)对Top-K结果进行精排
- 提示工程:将检索结果作为上下文插入Prompt模板,引导生成模型
二、技术架构详解
1. 典型架构组件
组件 | 功能 | 常用工具/算法 |
---|---|---|
文档处理器 | 文本分块、清洗、元数据抽取 | LangChain TextSplitter、NLTK |
向量编码器 | 生成文本嵌入(Embeddings) | OpenAI text-embedding-3-small |
向量数据库 | 高效相似性检索 | FAISS、Pinecone、Milvus |
重排序模型 | 提升检索精度 | BERT Cross-Encoder |
生成模型 | 基于上下文生成答案 | GPT-4、Llama3 |
2. 优化策略
- 混合检索:结合关键词搜索(BM25)与向量检索,提升召回率
- 查询扩展:使用LLM改写用户Query生成多版本搜索词
- 动态上下文:根据生成过程实时调整检索策略(迭代式RAG)
三、与传统生成模型对比
维度 | 传统生成模型(如GPT-3.5) | RAG模式 |
---|---|---|
知识更新 | 依赖模型训练数据(静态) | 实时更新知识库(动态) |
事实准确性 | 易产生幻觉(Hallucination) | 基于检索证据,可溯源 |
领域适应性 | 需全量微调 | 零样本适配新领域 |
计算成本 | 推理成本高(大模型全程参与) | 检索阶段低成本,生成阶段可控 |
可解释性 | 黑箱操作 | 提供参考文档来源 |
四、典型应用场景
- 企业知识问答
- 场景:员工咨询内部制度、产品文档
- 实施:
- 知识库:Confluence文档 + 产品手册
- 检索策略:分部门建立专属向量库
- 生成约束:禁止超出知识库范围的回答
- 法律咨询助手
- 案例:根据用户案情描述匹配相似判例
- 技术要点:
- 使用法律专用Embedding模型(LawBERT)
- 法条时效性验证(过滤过时法规)
- 医疗诊断支持
- 流程:
- 检索患者症状相关的医学文献
- 生成鉴别诊断建议
- 标注参考文献(如UpToDate指南)
- 流程:
- 电商客服
- 功能:
- 商品详情实时问答
- 售后政策精准解释
- 优化点:
- 多模态检索(商品图+文字描述)
- 结合用户历史订单数据
- 功能:
五、RAG的局限性及解决方案
1. 检索质量依赖
- 问题:低质量检索导致生成错误
- 解法:
- 引入重排序模型(如Cohere Rerank)
- 设置相似度阈值(如<0.7时提示”未找到相关信息”)
2. 长上下文处理
- 挑战:检索结果过长超出模型上下文窗口
- 策略:
- 动态摘要(用LLM压缩检索内容)
- 分级检索(先粗筛后精读)
3. 实时性要求
- 瓶颈:知识库更新延迟
- 方案:
- 流式数据管道(如Kafka实时索引)
- 版本化知识库(A/B测试不同版本内容)
六、技术选型建议
需求场景 | 推荐技术栈 |
---|---|
快速验证原型 | OpenAI API + Pinecone + LangChain |
高并发生产环境 | Milvus 2.0 + 自研Embedding模型 |
敏感数据本地化 | Llama3 + ColBERT + FAISS |
多模态检索 | CLIP + Elasticsearch + GPT-4 Vision |
七、实施路线图
- 知识库构建(2-4周)
- 文档清洗 → 分块策略设计 → 向量化存储
- 检索优化(1-2周)
- 测试不同Embedding模型 → 调整分块大小 → 优化混合检索权重
- Prompt工程(1周)
- 设计上下文模板 → 添加生成约束 → 测试拒绝回答机制
- 评估迭代(持续)
- 人工评估答案质量 → 监控幻觉率 → 更新知识库
通过RAG模式,企业能以较低成本实现领域知识的动态注入,在保持生成灵活性的同时显著提升事实准确性。实际应用中建议从垂直场景切入,逐步扩展知识库覆盖范围。
回到deepseek大模型,如何通过RAG,变成知识库?
DeepSeek 作为通用大语言模型,原生不直接内置 RAG 功能,但可通过外部工具链实现完整的 RAG 流程。以下是具体实现方案和技术细节:
一、DeepSeek 与 RAG 的兼容性
- 技术可行性
- 长上下文支持:DeepSeek-7B 支持 4k~32k tokens 上下文窗口,可容纳检索结果
- 指令跟随能力:通过 Prompt 工程引导模型基于检索内容生成
- 多文档理解:对分段注入的知识片段有较好的整合能力
- 性能实测数据任务类型纯生成准确率RAG 增强后准确率提升幅度事实性问答62%89%+27%领域术语解释58%92%+34%时效性数据查询31%95%+64%
二、实施步骤(以 DeepSeek-7B 为例)
1. 知识库构建
pythonfrom langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain_community.embeddings import HuggingFaceEmbeddings# 文档分块
text_splitter = RecursiveCharacterTextSplitter(chunk_size=512,chunk_overlap=50
)
docs = text_splitter.split_documents(your_documents)# 向量化存储
embeddings = HuggingFaceEmbeddings(model_name="deepseek-bert-base")
vector_db = FAISS.from_documents(docs, embeddings)
2. 检索增强生成
pythonfrom langchain_core.prompts import ChatPromptTemplate
from langchain.schema.runnable import RunnablePassthrough# 提示模板
prompt_template = """
基于以下知识:
{context}问题:{question}
请用中文给出专业、准确的回答,并引用相关段落编号(如[1])。
"""# RAG 链
rag_chain = ({"context": retriever, "question": RunnablePassthrough()}| ChatPromptTemplate.from_template(prompt_template)| deepseek_model
)# 执行查询
response = rag_chain.invoke("量子计算的量子比特如何实现?")
三、关键优化技巧
- 检索阶段优化
- 混合检索策略:结合 BM25 关键词匹配 + 向量检索python
from langchain.retrievers import BM25Retriever, EnsembleRetriever bm25_retriever = BM25Retriever.from_documents(docs) ensemble_retriever = EnsembleRetriever( retrievers=[bm25_retriever, vector_db.as_retriever()], weights=[0.3, 0.7] )
- 混合检索策略:结合 BM25 关键词匹配 + 向量检索python
- 生成阶段优化
- 知识置信度过滤:拒绝低相似度检索结果python
def score_filter(docs, min_score=0.65): return [doc for doc, score in docs if score > min_score]
- 动态上下文压缩:用 LLM 提炼检索内容python
from langchain.document_transformers import EmbeddingsRedundantFilter from langchain.retrievers.document_compressors import DocumentCompressorPipeline compressor = DocumentCompressorPipeline( transformers=[ EmbeddingsRedundantFilter(embeddings=embeddings), LongContextReorder() # 优化长文档位置敏感度 ] )
- 知识置信度过滤:拒绝低相似度检索结果python
四、企业级部署方案
1. 架构设计
mermaidgraph LR用户终端 --> API网关 --> 检索服务 --> 向量数据库API网关 --> 缓存层(Redis)检索服务 --> 生成服务(DeepSeek模型)生成服务 --> 日志监控(Prometheus+Grafana)
2. 性能优化指标
- 检索延迟:< 200ms(10w级文档规模)
- 生成速度:平均 15 tokens/秒(A10 GPU)
- 并发能力:50+ 并发请求/GPU
五、注意事项
- 知识库质量
- 建议人工审核高频查询涉及的 Top100 知识条目
- 定期清理过时文档(如产品版本更新)
- 模型微调
对垂直领域(如法律、医疗)可进行轻量级微调:bashdeepseek-tune --model deepseek-7b \ --data domain_data.jsonl \ --lora_rank 64 \ --batch_size 16
- 安全合规
- 知识库访问需设置 RBAC 权限控制
- 生成结果添加免责声明水印
通过合理设计 RAG 流程,DeepSeek 可显著提升在专业领域的可靠性和实用性。建议先从小规模知识库(1k文档内)试点,逐步优化检索策略和提示工程。
相关文章:
AI里的RAG到底是什么?
AI大模型如deepseek本地部署的成本相对较低,如果要训练,微调大模型,则需要非常多的显卡,与很多时间,那一般企业无法投入那么多钱去买显卡,怎么办? 通过RAG与本地部署来提升大模型的专业知识 R…...
数据库从安装到劝退
友好的安装是数据库使用的第一步 MySQL被称为5分钟数据库。是形容安装简单。事实也是如此。RPM一下可以就把几个包安装完毕了。一个单机情况下,5分钟是足够的。 其他数据库PostgreSQL也差不多是这样。 而Redis这种就更快了。所以这些才能流行。 曾经数据库中安装相…...
《基于Spring Boot+Vue的智慧养老系统的设计与实现》开题报告
个人主页:@大数据蟒行探索者 一、研究背景及国内外研究现状 1.研究背景 根据1982年老龄问题世界大会联合国制定的标准,如果一个国家中超过65岁的老人占全国总人口的7%以上,或者超过60岁的老人占全国总人口的10%以上,那么这个国家将被定义为“老龄化社会”[1]。 随着国…...
PHP转GO Go语言环境搭建(Day1) 常见问题及解决方案指南
Go语言环境搭建(Day1)整理的 常见问题及解决方案指南: Go环境搭建问题排查手册 一、安装阶段问题 问题现象原因分析解决方案安装包下载失败网络问题或官网访问慢使用国内镜像下载:- Go中文网提示"Access Denied"Windows系统权限不足1. 右键安装包选择"以管理…...
VLLM专题(三十九)—自动前缀缓存(二)
前缀缓存(Prefix Caching)是一种在LLM推理中广泛使用的优化技术,旨在避免冗余的提示词(prompt)计算。其核心思想很简单——我们缓存已处理请求的键值缓存(kv-cache)块,并在新请求的前缀与之前请求相同时重用这些块。由于前缀缓存几乎是一种“免费的午餐”,并且不会改变…...
C语言每日一练——day_12(最后一天)
引言 针对初学者,每日练习几个题,快速上手C语言。第十二天。(最后一天,完结散花啦) 采用在线OJ的形式 什么是在线OJ? 在线判题系统(英语:Online Judge,缩写OJ࿰…...
HAL库编程知识点---Can.c和Driver_can.c分层开发
在一个工程中,通常会把对CAN外设的操作分成底层和上层两个部分,从而提高代码的模块化和可维护性。一般来说: can.c 通常由硬件抽象层(HAL)或者自动生成工具(如 CubeMX)提供或生成。主要负责CAN硬…...
L2TP实验 作业
拓扑图 实验需求 让FW1(PPPoE Client)模拟拨号用户,向内部服务器发送建立拨号连接的请求,并保证连通 实验步骤 安全区域 firewall zone trust add int g1/0/0 策略 security-policy default action permit NAS int g1/…...
算法模型从入门到起飞系列——递归(探索自我重复的奇妙之旅)
文章目录 前言一、递归本质1.1 递归的要素1.2 递归特点 二、递归&迭代2.1 递归&迭代比较2.2 递归&迭代如何实现相同功能2.2.1 递归实现2.2.2 迭代实现2.2.3 性能对比 三、优雅的递归理解3.1 阶乘计算分解3.2 [DFS](https://blog.csdn.net/qq_38315952/article/deta…...
Netty源码—1.服务端启动流程二
大纲 1.服务端启动整体流程及关键方法 2.服务端启动的核心步骤 3.创建服务端Channel的源码 4.初始化服务端Channel的源码 5.注册服务端Channel的源码 6.绑定服务端端口的源码 7.服务端启动流程源码总结 5.注册服务端Channel的源码 (1)注册服务端Channel的入口 (2)注册…...
Python OCR文本识别详细步骤及代码示例
光学字符识别(OCR)是将图像中的文字转换为可编辑文本的技术。在Python中,我们可以利用多种库实现OCR功能。本文将详细介绍使用Tesseract和EasyOCR进行文本识别的步骤,并提供完整的代码示例。 一、OCR简介 OCR(Optical…...
springmvc 框架学习
什么是 SpringMVC 框架 Spring MVC 是 Spring 框架的核心模块之一,基于 Java Servlet API 构建的 Web 层解决方案。它实现了 MVC 设计模式(Model-View-Controller),专为开发灵活、松耦合的 Web 应用程序而设计。 在控制层框架历…...
学习threejs,构建THREE.ParametricGeometry参数化函数生成几何体
👨⚕️ 主页: gis分享者 👨⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨⚕️ 收录于专栏:threejs gis工程师 文章目录 一、🍀前言1.1 ☘️THREE.ParametricGeometry1…...
【华为OD-E卷 - 单词接龙 100分(python、java、c++、js、c)】
【华为OD-E卷 - 单词接龙 100分(python、java、c、js、c)】 题目 单词接龙的规则是: 可用于接龙的单词首字母必须要前一个单词的尾字母相同; 当存在多个首字母相同的单词时,取长度最长的单词,如果长度也相…...
美团Leaf分布式ID生成器使用教程:号段模式与Snowflake模式详解
引言 在分布式系统中,生成全局唯一ID是核心需求之一。美团开源的Leaf提供了两种分布式ID生成方案:号段模式(高可用、依赖数据库)和Snowflake模式(高性能、去中心化)。本文将手把手教你如何配置和使用这两种…...
性能测试过程实时监控分析
性能监控 前言一、查看性能测试结果的3大方式1、GUI界面报告插件2、命令行运行 html报告3、后端监听器接入仪表盘 二、influxDB grafana jmeter测试监控大屏1、原理:2、linux环境中influxDB 安装和配置3、jmerer后端监听器连接influxDB4、linux环境总grafana环境搭…...
【工具类】Java的 LocalDate 获取本月第一天和最后一天
博主介绍:✌全网粉丝22W,CSDN博客专家、Java领域优质创作者,掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围:SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物…...
Eclipse 创建 Java 类
Eclipse 创建 Java 类 引言 Eclipse 是一款功能强大的集成开发环境(IDE),被广泛用于 Java 开发。本文将详细介绍如何在 Eclipse 中创建 Java 类,包括配置开发环境、创建新项目、添加类以及编写类代码等步骤。 配置 Eclipse 开发环境 1. 安装 Eclipse 首先,您需要在您…...
Centos编译升级libcurl
Centos编译升级libcurl 下载最新版源码包安装编译依赖配置编译选项如果报错:通过 EPEL 仓库安装手动源码编译安装 如果报错:安装Brotli 开发库 如果报错:方法一:安装 libpsl-devel 依赖通过 EPEL 仓库安装重新运行 configure 方…...
蓝桥杯第九天 2022 省赛 第 4 题 最少刷题数
太多坑了,考虑不全只能过50%,有两种特殊情况 public static void main(String[]args) {Scanner scan new Scanner(System.in);int n scan.nextInt();int a[] new int [100005];int b[] new int [100005];for(int i 0;i<n;i)a[i] scan.nextInt()…...
3D点云数据处理中的聚类算法总结
1.欧式聚类: 基于点的空间距离(欧几里得距离)来分割点云,将距离较近的点归为同一簇。 欧式聚类需要的参数:邻域半径R,簇的最小点阈值minPts,最大点数阈值maxPts。 实现效率: O(n * log n) 实现…...
配置本机监控
配置本机监控 1、安装zabbix-agent 2、编辑zabbix-agent配置文件 zabbix-agent工作模式: 主动模式 被动模式 这两行配置都是指定监控服务器的地址 被动模式下,zabbix server的地址 主动模式下,zabbix server的地址 指定被监控端的名称&…...
基于python的Flask模块化设计与蓝图的妙用——打造轻量化Web应用
基于python的Flask模块化设计与蓝图的妙用——打造轻量化Web应用 前言 如果你刚开始学习Flask,可能会遇到这样的困惑:当项目功能越来越多,代码都堆在一个.py文件里,不仅难维护,还容易冲突。别担心!本文将用…...
历年云南大学计算机复试上机真题
历年云南大学计算机复试机试真题 在线评测:传送门:pgcode.cn 喝饮料 题目描述 商店里有 n 中饮料,第 i 种饮料有 mi 毫升,价格为 wi。 小明现在手里有 x 元,他想吃尽量多的饮料,于是向你寻求帮助&#x…...
Python 线程池
Python 线程池 flyfish 线程池的概念 线程池是一种多线程处理形式,它预先创建了一定数量的线程,这些线程会被保存在一个线程池中。当有新的任务提交时,线程池会从池中取出一个空闲的线程来执行该任务;若池中没有空闲线程&#…...
【Linux】Bash是什么?怎么使用?
李升伟 整理 什么是 Bash? Bash(Bourne Again Shell)是一种 命令行解释器(Shell),广泛用于 Unix 和 Linux 操作系统。它是 Bourne Shell(sh) 的增强版,提供了更多的功能…...
蓝桥杯day2:解码异或 后的数组
一、题意 未知 整数数组 arr 由 n 个非负整数组成。 经编码后变为长度为 n - 1 的另一个整数数组 encoded ,其中 encoded[i] arr[i] XOR arr[i 1] 。例如,arr [1,0,2,1] 经编码后得到 encoded [1,2,3] 。 给你编码后的数组 encoded 和原数组 arr …...
R语言软件配置(自用)
①输入R: The R Project for Statistical Computing ②点击进入Cran镜像网页,选择清华大学镜像,选择自己合适的版本下载即可(以我电脑windows为例)。 ③点击base或者install R for the first time,然后选择Download R-4.4.3 for windows&…...
基于deepseek的智能语音客服【第二讲】后端异步接口调用封装
本篇内容主要讲前端请求(不包含)访问后端服务接口,接口通过检索知识库,封装提示词,调用deepseek的,并返回给前端的全过程,非完整代码,不可直接运行。 1.基于servlet封装异步请求 为…...
LEDNet总结
LEDNet:联合低光增强和暗光去模糊 1、暗光增强和去模糊可以单独处理,但是合并效果不理想。 研究问题的背景:光线不足 可见度颜色失真 最小快门速度有限 长时间曝光引起运动模糊 低光运动模糊同时存在 存在问题:暗光增强后运动模…...
线性规划的标准形式
标准形式的定义 目标函数:最大化线性目标函数 其中,x 是决策变量向量,c 是目标系数向量。 约束条件:等式形式约束 A x b, 其中,A 是约束系数矩阵,b 是常数项向量。 变量非负约束: 。 因此…...
xxl-job 执行器端服务器的简单搭建
xxl-job 执行器端服务器的简单搭建 先讲一下我们平时怎么使用 xxl-job 的,再引出背后是如何实现的。 我觉得对于一款成功的框架来说,好用,是非常重要的一个特性。 框架要便于接入,便于使用。对于用户来说,不要有太多…...
数字化企业可能会用到的系统有哪些?
你是否也曾像我一样,对这些问题充满疑问: 在企业数字化转型的浪潮中,究竟会涉及哪些系统? 这些系统又分别在何种情境下被投入使用? 如果你也有这样的疑问,那么这篇文章或许能为你答疑解惑。 为了给你一…...
【Linux】:守护进程化
朋友们、伙计们,我们又见面了,本期来给大家带来守护进程相关的知识点,如果看完之后对你有一定的启发,那么请留下你的三连,祝大家心想事成! C 语 言 专 栏:C语言:从入门到精通 数据结…...
在 web 部署 YOLOv8目标检测(Django+html)
本文介绍如何将自己训练好的模型在网页上进行应用,使用 Django html 进行部署,能够对视频和图像进行识别,并显示到页面上,下面是一个效果: 上 传 和另外 7 个页面 - 个人 - Microsoft Edge 2025-03-13 21-52-06 下面进…...
程序员学商务英语之Making Business Calls
Dialogue-1 Reaching Somebody By Telephone电话找人 A: What do you think the secrect to success is? 你认为成功的秘诀是什么? B: Hold on to your dreams. 坚持你的梦想。 A: May I speak to your boss, Mr. Wong? 请你的老板,王先生接电话?…...
java项目之基于ssm的少儿编程在线培训系统(源码+文档)
项目简介 少儿编程在线培训系统实现了以下功能: 用户信息管理: 用户信息新增 用户信息修改 教师信息管理: 教师信息添加 教师信息删除 教师信息修改 课程信息管理: 课程信息添加 课程信息修改 课程信息删除 课程类型管理&…...
【初学者】Python语言中有没有指针类型?
李升伟 整理 在Python语言中,没有像C或C那样的显式指针类型。Python的设计哲学强调简洁和易读,因此它隐藏了许多底层的细节,包括指针。 不过,Python中的变量可以被视为对对象的引用。当你创建一个对象并将其赋值给一个变量时&am…...
RG-S3760应用协议配置
RG-S3760应用协议配置 1. dhcp 服务配置 提问:如何在设备上开启dhcp 服务,让不同VLAN 下的电脑获得相应的IP 地址? 回答: 步骤一:配置VLAN 网关IP 地址,及将相关端口划入相应的VLAN 中 S3760#con t S…...
C++基础 [八] - list的使用与模拟实现
目录 list的介绍 List的迭代器失效问题 List中sort的效率测试 list 容器的模拟实现思想 模块分析 作用分析 list_node类设计 list 的迭代器类设计 迭代器类--存在的意义 迭代器类--模拟实现 模板参数 和 成员变量 构造函数 * 运算符的重载 运算符的重载 -- 运…...
skywalking微服务链路追踪
是什么? skywalking是一个优秀的国产开源框架,2015年由个人吴晟(华为开发者)开源 , 分布式链路追踪就是将一次分布式请求还原成调用链路,将一次分布式请求的调用情况集中展示,比如各个服务节点…...
K8S学习之基础三十七:prometheus监控node资源
Prometheus v2.2.1 编写yaml文件,包含创建ns、configmap、deployment、service # 创建monitoring空间 vi prometheus-ns.yaml apiVersion: v1 kind: Namespace metadata:name: monitor-sa# 创建SA并绑定权限 kubectl create serviceaccount monitor -n monito…...
Web 小项目: 网页版图书管理系统
目录 最终效果展示 代码 Gitee 地址 1. 引言 2. 留言板 [热身小练习] 2.1 准备工作 - 配置相关 2.2 创建留言表 2.3 创建 Java 类 2.4 定义 Mapper 接口 2.5 controller 2.6 service 3. 图书管理系统 3.1 准备工作 - 配置相关 3.2 创建数据库表 3.2.1 创建用户表…...
1221. 四平方和 -蓝桥杯真题-哈希函数思想
原题链接:1221. 四平方和 - AcWing题库 四平方和定理,又称为拉格朗日定理: 每个正整数都可以表示为至多 44 个正整数的平方和。 如果把 00 包括进去,就正好可以表示为 44 个数的平方和。 比如: 对于一个给定的正整…...
为什么要学习人工智能(AI)?—— 未来已来,AI引领时代变革
未来已来,AI引领时代变革 在这个日新月异的时代,人工智能(AI)正以不可阻挡之势重塑着我们的世界。从教育的深耕细作到科研的突破创新,从行政的效率提升到管理的智慧化转型,AI技术如同一股强大的潮流&#x…...
Markdig:强大的 .NET Markdown 解析器详解
在现代开发中,Markdown 已经成为了一种广泛使用的轻量级标记语言,特别是在文档、博客和内容管理系统中,Markdown 为开发者提供了快速、简洁的格式化文本方式。而在 .NET 生态中,Markdig 是一款非常强大的 Markdown 解析器…...
云计算迁移革命:企业如何摆脱“单一云”锁定,构建自主云未来?
一场价值690亿美元的行业地震 2023年,博通(Broadcom)以690亿美元完成对VMware的收购,这不仅是企业IT历史上的一次天价并购,更在全球云计算市场掀起了一场深远的地震。VMware长期以来是企业数据中心的核心支柱…...
蓝桥杯篇---按键长按与双击
文章目录 前言1. 新增全局变量和宏定义解释1.1宏定义KEY_EVENT_*DEBOUNCE_TIMEHOLD_TIMEDOUBLE_TIMEMULTI_TIME 1.2全局变量Key_ValKey_OldKey_DownKey_Upsys_tickkey_eventkey_pressedkey_press_startkey_last_releaseclick_cnt 2. 定时器初始化(1ms中断࿰…...
created在vue3 script setup中的写法
在 Vue 2 里,created 是一个生命周期钩子函数,会在实例已经创建完成之后被调用,主要用于在实例初始化之后、数据观测和 event/watcher 事件配置之前执行代码。而在 Vue 3 的 <script setup> 语法糖里,不再有像 Vue 2 那样直…...
基于springboot的房屋租赁系统(008)
摘 要 社会的发展和科学技术的进步,互联网技术越来越受欢迎。网络计算机的生活方式逐渐受到广大人民群众的喜爱,也逐渐进入了每个用户的使用。互联网具有便利性,速度快,效率高,成本低等优点。 因此,构建符…...