RAG:AI大模型联合向量数据库和 Llama-index,助力检索增强生成技术

news2024/11/14 4:02:01

RAG:AI大模型联合向量数据库和 Llama-index,助力检索增强生成技术

在大模型爆发的时代,快速准确地从大量数据中检索出有价值的信息变得至关重要。检索增强生成(RAG)技术,结合了传统的信息检索和最新的大语言模型(LLM),不仅能够回答复杂的查询,还能在此基础上生成信息丰富的内容。

RAG 技术的核心在于其能够将大型语言模型的生成能力与特定数据源的检索相结合。这意味着,当模型面对用户提出的问题时,它不仅依赖于自身训练时的知识,还可以实时地从外部数据源中检索相关信息,以此增强回答的准确性和丰富性。这种方法对于处理最新信息特别有效,能够有效弥补传统模型在时效性方面的不足。

这里我们将基于大模型、Milvus 向量数据库、LlamaIndex 大模型应用框架,与大家一起完成 RAG 系统的搭建。本文将以 Yuan2.0 最新发布的 Februa 模型为例进行测试验证,用更小规模的模型达到更好的效果。

1.RAG 系统架构

RAG(检索增强生成) 就是通过检索获取相关的知识并将其融入 Prompt,让大模型能够参考相应的知识从而给出合理回答。因此,可以将 RAG 的核心理解为 “检索 + 生成”,前者主要是利用向量数据库的高效存储和检索能力,召回目标知识;后者则是利用大模型和 Prompt 工程,将召回的知识合理利用,生成目标答案。

在这里插入图片描述

从 RAG 系统的运行流程我们可以看到,整个 RAG 系统可以分解为三个核心部件:

  • 向量数据库:用来存放向量化之后的知识库,并提供向量检索能力,为 RAG 系统实现对知识的初步检索。这里我们采用 Milvus 向量数据库来实现知识的存储和初筛。它通常被用来存储、索引和管理由深度神经网络和其他机器学习(ML)模型生成的大规模嵌入向量。作为一个专门设计用于处理输入向量查询的数据库,Milvus 能够处理万亿级别的向量索引。与现有的关系型数据库主要处理遵循预定义模式的结构化数据不同,Milvus 从底层设计用于处理从非结构化数据转换而来的嵌入向量。

  • 语言大模型(LLM):用来实现基于检索到的知识的推理和答案生成。这里我们将采用浪潮最新发布的 Yuan2.0 大模型来实现答案生成。从官方公布的资料来看,Yuan2.0 是在 Yuan1.0 的基础上,利用更多样的高质量预训练数据和指令微调数据集,令模型在语义、数学、推理、代码、知识等不同方面具备更强的理解能力。Yuan2.0 包含了 2B、51B、102B 不同参数量的系列模型。根据官方公布的资料显示,今年 3 月最新发布的 Yuan2-2B-Februa 在数学推理、代码生成等任务上的精度均取得了明显提升。为了部署方便,我们将采用 Yuan2-2B-Februa 来构建 RAG 系统的 LLM 模块。关于 Yuan2.0 模型的详细介绍请参考:Yuan2.0 Github

  • 问答推理框架:问答推理框架主要用来实现 RAG 系统的问答逻辑。它接收用户的提问输入,并根据输入向向量数据库发起索引请求,将得到的索引结果与问题结合,形成新的提示词(prompt),并将提示词提交给 LLM,最后将 LLM 生成的结果返回给用户。这里我们将采用 LlamaIndex 工具来实现这个框架。其主要由 3 部分组成:

    • 数据连接。首先将数据能读取进来,这样才能挖掘。
    • 索引构建。要查询外部数据,就必须先构建可以查询的索引,LlamdaIndex 将数据存储在 Node 中,并基于 Node 构建索引。索引类型包括向量索引、列表索引、树形索引等;
    • 查询接口。通过这些接口用户可以先基于索引进行检索,再将检索结果和之前的输入 Prompt 进行组合形成新的扩充 Prompt,对话大模型并拿到结果进行解析。

2.部署教程

2.1 流程图

以 Yuan2-2B-Februa 大模型为例,RAG 实践流程图如下所示:

图片

  • Yuan2.0-2B 大模型 RAG 实践包括以下步骤:

    • Step 1: 向量数据库的安装,以及知识的填充;详细安装过程参见后续章节;
    • Step 2:Llama_index 的安装;详细安装过程参见后续章节;
    • Step 3:Llama_index 中设置 data_loader 模块,可以直接从向量数据库中查询;
    • Step 4:根据用户输入进行向量检索,将检索结果与 Input 合并,形成新的 prompt;
    • Step 5:加载 Yuan2.0-2B 大模型;合并后的 prompt 作为输入,传递给大模型,大模型将结果输出返回;

2.2 向量数据库安装以及知识填充

向量数据库安装步骤如下:

#Create Milvus file
mkdir -p /home/$USER/milvus/conf
cd /home/$USER/milvus/conf
wget https://raw.githubusercontent.com/milvus-io/milvus/v0.8.0/core/conf/demo/server_config.yaml
wget https://raw.githubusercontent.com/milvus-io/milvus/v0.8.0/core/conf/demo/log_config.conf
#Start Milvus
docker run -d --name milvus_cpu \
-p 19530:19530 \
-p 19121:19121 \
-p 9091:9091 \
-v /home/$USER/milvus/db:/var/lib/milvus/db \
-v /home/$USER/milvus/conf:/var/lib/milvus/conf \
-v /home/$USER/milvus/logs:/var/lib/milvus/logs \
-v /home/$USER/milvus/wal:/var/lib/milvus/wal \
milvusdb/milvus:0.8.0-cpu-d041520-464400
  • 这里我们以 txt 文本为例,演示如何将知识库导入到数据库中。在任意目录下新建一个 python 脚本 milvus.py,输入以下代码:
    在这里插入图片描述

上述代码首先导入 python 连接 milvus 所需的库,然后通过 connections.connect(“default”, host=“localhost”, port=“19530”) 指定使用本地的 19530 端口建立数据库连接。其中 knowledge.txt 就是我们的知识库内容,这个文件放在与 milvus.py 脚本相同的目录下。如果用户的知识库在其他路径存放,修改 with open(‘knowledge.txt’, ‘r’) 中的路径即可。

knowledge.txt 的初始样例中每行代表一条知识。其中一条数据样例如下,稍后将基于这条知识进行实验验证。

广州大学(Guangzhou University),简称广大(GU),是由广东省广州市人民政府举办的全日制普通高等学校,实行省市共建、以市为主的办学体制,是国家“111计划”建设高校、广东省和广州市高水平大学重点建设高校。广州大学的办学历史可以追溯到1927年创办的私立广州大学;1951年并入华南联合大学;1983年筹备复办,1984年定名为广州大学;2000年7月,经教育部批准,与广州教育学院(1953年创办)、广州师范学院(1958年创办)、华南建设学院西院(1984年创办)、广州高等师范专科学校(1985年创办)合并组建成立新的广州大学。

2.3 Llama_index 安装以及设置安装 Llama-index1

##在线安装
pip install llama-index

设置 data_loader 加载,从 Milvus 中获取知识, 具体源码可参考 yuan.py 文件。

在这里插入图片描述

2.4 Prompt 合并

在这里插入图片描述

说明:

  1. context_str 是知识库中查询到的结果;
  2. query_str 为用户输入的问题;

具体情况如下:1

在本实例中,
query_str具体内容是:介绍一下广州大学

context_str具体内容是:file_path: data\***.txt

广州大学(Guangzhou University),简称广大(GU),是由广东省广州市人民政府举办的全日制普通高等学校,实行省市共建、以市为主的办学体制,是国家“111计划”建设高校、广东省和广州市高水平大学重点建设高校。广州大学的办学历史可以追溯到1927年创办的私立广州大学;1951年并入华南联合大学;1983年筹备复办,1984年定名为广州大学;2000年7月,经教育部批准,与广州教育学院(1953年创办)、广州师范学院(1958年创办)、华南建设学院西院(1984年创办)、广州高等师范专科学校(1985年创办)合并组建成立新的广州大学。

3.5 Yuan 大模型下载以及推理试用安装

Yuan2.0 模型是浪潮信息发布的新一代基础语言大模型。我们开源了全部的 3 个模型:Yuan2.0-102B、Yuan2.0-51B、Yuan2.0-2B。提供预训练、微调、推理服务的相关脚本,以供研发人员做进一步开发。Yuan2.0 是在 Yuan1.0 的基础上,利用更多样的高质量预训练数据和指令微调数据集,令模型在语义、数学、推理、代码、知识等不同方面具备更强的理解能力。

提供了 Yuan2.0 的模型文件,可以通过以下链接进行下载:

  • Yuan2.0-102B-hf | 序列长度:4K

    • ModelScope:https://modelscope.cn/models/YuanLLM/Yuan2.0-102B-hf/summary
    • HuggingFace:https://huggingface.co/IEITYuan/Yuan2-102B-hf
    • OpenXlab:https://openxlab.org.cn/models/detail/YuanLLM/Yuan2-102B-hf
    • 百度网盘:https://pan.baidu.com/s/1O4GkPSTPu5nwHk4v9byt7A?pwd=pq74
    • WiseModel:https://www.wisemodel.cn/models/IEIT-Yuan/Yuan2-102B-hf
  • Yuan 2.0-51B-hf | 序列长度:4K

    • ModelScopehttps://modelscope.cn/models/YuanLLM/Yuan2.0-51B-hf/summary* HuggingFacehttps://huggingface.co/IEITYuan/Yuan2.0-51B-hf
    • OpenXlabhttps://openxlab.org.cn/models/detail/YuanLLM/Yuan2-51B-hf
    • 百度网盘https://pan.baidu.com/s/1-qw30ZuyrMfraFtkLgDg0A?pwd=v2nd
    • WiseModelhttps://www.wisemodel.cn/models/IEIT-Yuan/Yuan2-51B-hf

更多内容见:https://modelscope.cn/headlines/article/373

图片

运行以下代码可以进行简单的推理效果试用:

import torch, transformers
import sys, os
sys.path.append(
    os.path.abspath(os.path.join(os.path.dirname(__file__), os.path.pardir)))
from transformers import AutoModelForCausalLM,AutoTokenizer,LlamaTokenizer
print("Creat tokenizer...")
tokenizer = LlamaTokenizer.from_pretrained('IEITYuan/Yuan2-2B-Februa-hf', add_eos_token=False, add_bos_token=False, eos_token='<eod>')
tokenizer.add_tokens(['<sep>', '<pad>', '<mask>', '<predict>', '<FIM_SUFFIX>', '<FIM_PREFIX>', '<FIM_MIDDLE>','<commit_before>','<commit_msg>','<commit_after>','<jupyter_start>','<jupyter_text>','<jupyter_code>','<jupyter_output>','<empty_output>'], special_tokens=True)
print("Creat model...")
model = AutoModelForCausalLM.from_pretrained('IEITYuan/Yuan2-2B-Februa-hf', device_map='auto', torch_dtype=torch.bfloat16, trust_remote_code=True)
inputs = tokenizer("请问目前最先进的机器学习算法有哪些?", return_tensors="pt")["input_ids"].to("cuda:0")
outputs = model.generate(inputs,do_sample=False,max_length=100)
print(tokenizer.decode(outputs[0]))

3.案例测试

利用 Yuan2.0 大模型,联合向量数据和 Llama_index,对比用户同一个问题的输出结果,验证方案的可行性。

用户输入问题:“介绍一下广州大学”,使用检索增强生成技术之前的模型回答效果,该结果可以直接使用 Yuan2-2B-Februa 模型进行推理复现:

广州大学是一所位于中国广东省广州市的本科高校,创建于1980年。学校以“南国情怀、卓越创新”为校训,是一所以工科为主,工学、理学、管理学、法学、文学、教育学等学科门类齐全的综合性大学。目前设有14个学院和26个研究院所,拥有全日制本科生近3.5万名,硕士、博士研究生超过7万人。校园环境优美,设施完善,是全国文明单位和国家绿化先进集体。

使用检索增强生成技术之后的模型回答效果,运行完整代码,可以复现该结果:

广州大学是一所位于中国广东省广州市的综合性大学,是广东省重点建设高校之一,也是国家“111计划”建设的高校之一。它于1927年由原国立广东法商学院在广州创立,是中国第一所独立设立的现代高等教育机构之一。学校的前身是成立于1927年的广州大学公学,发展至今已成为一所具有悠久历史的研究型大学。学校占地约1880亩,拥有现代化的教学楼、实验楼和图书馆等设施,同时注重学生的全面发展和社会实践能力培养。

对比发现:添加知识库之后,大模型的回答学到了 “国家“111 计划” 建设的高校“的新知识。

4.总结

利用 Yuan 大模型、向量数据库和 LlamaIndex 助力大模型检索增强生成技术,为 NLP 领域开辟了一个可能性领域。这个管道不仅可以理解和生成文本,而且还利用庞大的信息数据库来增强其响应,使其在聊天机器人、推荐系统等各种应用程序中具有难以置信的强大功能。

然而,旅程并没有就此结束。NLP 的世界正在迅速发展,保持最新趋势和技术的更新至关重要。这里讨论的实现是进入更广泛、更复杂的语言理解和生成世界的垫脚石。不断试验,不断学习,最重要的是不断创新。

5. 附完整代码

完整代码文件 yuan.py 内容如下:

from llama_index import download_loader
import logging
import sys
import torch
from transformers import AutoTokenizer, AutoModelForCausalLMf
rom llama_index.embeddings import HuggingFaceEmbedding
logging.basicConfig(stream=sys.stdout, level=logging.DEBUG)
logging.getLogger().addHandler(logging.StreamHandler(stream=sys.stdout))
from llama_index import VectorStoreIndex, SimpleDirectoryReader, ServiceContext
from llama_index.llms import HuggingFaceLLM
from llama_index.prompts import PromptTemplate
query = "介绍一下广州大学"
yuan_path = "/workspace/yuan_2/Yuan2-2B-Februa-hf"
print("Yuan2-2B-Februa Creat tokenizer...")
tokenizer = AutoTokenizer.from_pretrained(yuan_path, add_eos_token=False, add_bos_token=False, eos_token='<eod>')
tokenizer.add_tokens(['<sep>', '<pad>', '<mask>', '<predict>', '<FIM_SUFFIX>', '<FIM_PREFIX>', '<FIM_MIDDLE>','<commit_before>','<commit_msg>','<commit_after>','<jupyter_start>','<jupyter_text>','<jupyter_code>','<jupyter_output>','<empty_output>'], special_tokens=True)
print("Yuan2-2B-Februa Creat model...")
model = AutoModelForCausalLM.from_pretrained(yuan_path, torch_dtype=torch.bfloat16, trust_remote_code=True)
device_map = torch.cuda.current_device() if torch.cuda.is_available() else torch.device('cpu')
model = model.to(device_map)
# model = model.to("cpu")
llm = HuggingFaceLLM(
    # context_window=2048,    
    max_new_tokens=1024,    
    generate_kwargs={"temperature": 0.25, "do_sample": False, "repetition_penalty": 1.2, "max_length": 2048},    
    # query_wrapper_prompt=query_wrapper_prompt,    
    tokenizer=tokenizer,    
    model=model,    
    # tokenizer_name=yuan_path,    
    # model_name=yuan_path,    
    device_map="auto",    
    # tokenizer_kwargs={"max_length": 2048},    
    # uncomment this if using CUDA to reduce memory usage    
    model_kwargs={"torch_dtype": torch.float16, "trust_remote_code":True}
)
print("Creat embedding model...")
embed_model = HuggingFaceEmbedding(model_name="BAAI/bge-small-zh-v1.5",trust_remote_code=True)
# load documents
MilvusReader = download_loader("MilvusReader")
reader = MilvusReader(
    host="localhost", port=19530, user="<user>", password="<password>", use_secure=False
)
# Example query vector:
documents = reader.load_data(
    query_vector=embed_model.get_text_embedding(query),    
    collection_name="demo",    
    limit=5
)
service_context = ServiceContext.from_defaults(llm=llm, embed_model=embed_model)
index = VectorStoreIndex.from_documents(
    documents, service_context=service_context, show_progress=True
)
# define prompts that are used in llama-index, {query_str} is user's question,{context_str} is content queried by milvus
query_engine = index.as_query_engine(**{"text_qa_template":PromptTemplate(
    ("背景:{context_str}"    
    "问题: {query_str}\n")
)})
response = query_engine.query(query)
print(response)

如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

在这里插入图片描述

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范

第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署

第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建

第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

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

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

相关文章

更改了ip地址怎么改回来

在日常的网络使用中&#xff0c;‌我们有时会因为特定的需求更改设备的IP地址&#xff0c;‌比如解决IP冲突、‌访问特定网络资源或进行网络测试等。‌然而&#xff0c;‌更改IP地址后&#xff0c;‌我们可能又因为某些原因需要将IP地址改回原来的设置。‌本文将详细介绍如何改…

挑选适合的项目协同软件?看看这10款

文章主要介绍了以下10款项目协同进度软件&#xff1a;1.PingCode&#xff1b;2.Worktile&#xff1b;3.万户OA&#xff1b;4.小步外勤&#xff1b;5.智办事&#xff1b;6.万里牛&#xff1b;7.轻流&#xff1b;8.Toggl Track&#xff1b;9.Trello&#xff1b;10.Todoist。 在如…

程序员转行方向推荐

对于程序员转行方向的推荐&#xff0c;可以基于当前的技术趋势、市场需求以及程序员的个人技能和兴趣来综合考虑。以下是一些推荐的转行方向&#xff1a; 伴随着社会的发展&#xff0c;网络安全被列为国家安全战略的一部分&#xff0c;因此越来越多的行业开始迫切需要网安人员…

盘点国内热门的低代码/零代码平台,看看你用的哪一款?

什么是“低/零代码平台” “低/零代码平台”是一种应用开发工具&#xff0c;它们允许非开发人员&#xff0c;甚至完全没有编程背景的用户&#xff0c;通过可视化界面和预构建的模块&#xff0c;不需要或少量编写代码&#xff0c;通过拖拽组件、配置参数等方式快速搭建应用程序…

云服务器搭建网站安全性是至关重要

在特网科技云主机上搭建网站时&#xff0c;确保安全性是至关重要的&#xff0c;可以帮助你增强云主机的安全性&#xff0c;防止网站受到攻击和数据泄露。 1. 更新和维护系统 定期更新: 确保操作系统和所有已安装的软件&#xff08;如Web服务器、数据库等&#xff09;都保持最新…

Linux系统性能大提升:从网络到内存,全面调优技巧讲解!打造超高效服务器环境!

Linux 系统性能调优是一个复杂但至关重要的课题&#xff0c;对于确保系统稳定、高效运行至关重要。以下是一些关键的 Linux 系统性能调优技巧。 一、了解系统性能基准 在开始调优之前&#xff0c;首先需要建立系统的性能基准。这意味着了解系统在正常和高负载下的表现。可以使…

中资优配:金融审计进入“主审+参审”新模式

被“四大”会计师业务所独占多年的国有大行审计业务&#xff0c;正逐渐迎来国内本乡业务所的参与。近来&#xff0c;我国银行、邮储银行等多家国有大行确定了2024年的审计安排&#xff0c;虽主审安排仍为“四大”&#xff0c;但立信、天健等本乡会计师业务所初度有了部分参与的…

人工智能在病理组学中的优质开源项目推荐|文献速递·24-08-28

小罗碎碎念 今天这期推文是6月份前半个月的文献总结&#xff0c;从90篇文章中挑了12个与病理AI相关的开源项目。 这一期推文先介绍6个项目&#xff0c;明天再介绍剩下的6个&#xff0c;信息量比较大&#xff0c;建议反复阅读。 一个项目的完成&#xff0c;无非就三个要素——人…

果粉注意:这些苹果产品即将绝版,新品功能全面升级

随着科技的快速发展&#xff0c;苹果公司也在不断地推陈出新&#xff0c;为消费者带来更加先进的产品体验。然而&#xff0c;这也意味着一些旧款产品即将退出市场。对于忠实的果粉来说&#xff0c;这可能是一个令人既兴奋又感伤的时刻。根据最新消息&#xff0c;以下五款苹果产…

年度精选热门骨传导耳机分享,让你分分钟避免踩雷的风险

作为一个数码测评博主&#xff0c;我以前接触过很多种不同型号的骨传导耳机产品&#xff0c;骨传导耳机在传输声音时不直接经过内耳膜和外耳道&#xff0c;而是通过振动骨骼来传导声音&#xff0c;说明我们的耳朵是开放式的状态&#xff0c;时刻耳道保持清爽&#xff0c;可以避…

闲置物品|基于SprinBoot+vue的校园闲置物品交易平台(源码+数据库+文档)

校园闲置物品交易平台 目录 基于SprinBootvue的校园闲置物品交易平台 一、前言 二、系统设计 三、系统功能设计 5.1系统功能实现 5.2管理员模块实现 5.3用户模块实现 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#xf…

适合学生价格的耐用耳机选哪个品牌?四大高分蓝牙耳机品牌盘点

对于学生群体而言&#xff0c;在选择蓝牙耳机时&#xff0c;价格因素通常是首要考虑的要点&#xff0c;但除此之外&#xff0c;耐用性也同样重要&#xff0c;毕竟学生使用的电子产品常常伴随着他们度过漫长的学习时光&#xff0c;那么适合学生价格的耐用耳机选哪个品牌&#xf…

如果你想转行程序员,千万不要犹豫不决

到底要不要转行程序员&#xff1f;这是个问题。 对于大部分萌生想要转行程序员的朋友来说&#xff0c;大概是因为他们认为做程序员有一点好处&#xff1a;钱多。 而挡在他们面前的阻碍&#xff0c;就像驱使他们去获取高收入的动力一样强劲有力。 首先&#xff0c;是技术问题…

企业信息化之路

企业信息化之路 问题 互联互通 统一访问 统一身份管理 数据管理模型 企业数据集成业务架构 业务流程框架 业务流程模型 个性流程支持 跨业务的业务流程组合 EBS总线 ] SOA架构上视图 BI商业智能架构 技术服务架构

spring中的一点理解

一、IOC容器理解 平常在一个方法当中&#xff0c;若要用到外部另一个类里的非静态方法&#xff0c;首先&#xff0c;需要先通过new一个对象&#xff0c;再根据这个对象去调用其方法。若只需要一两个对象还好&#xff0c;一旦涉及的外部对象多了&#xff0c;就要创建一大堆new&…

linux查看系统安装时间命令,找出Linux操作系统(OS)安装日期和时间

你可能想知道你的计算机上何时安装了Linux操作系统,即OS的安装日期和时间,使用tune2fs、dumpe2fs、ls、basesystem、setup、setuptool命令能出来结果。请注意,如果你从模板安装了操作系统,那么它将显示模板生成日期,而不是实际操作系统安装日期。 方法1:如何使用tune2fs…

油耳拿什么清理比较好?市面主流产品可放心入手!

油耳通常受遗传因素的影响&#xff0c;外耳道耵聍腺分泌出来的耵聍是油状物&#xff0c;并且呈暗红色。多数情况下&#xff0c;油耳耵聍不容易被排出外耳道&#xff0c;容易积存在外耳道&#xff0c;最后容易形成外耳道堵塞或者耵聍栓塞。如果需要清洁耳朵的情况下&#xff0c;…

特色农产品全网品牌优化,让价值超越地域限制!

目前农村电商产业发展迅猛&#xff0c;为各地农产品开辟了新路径。据商务大数据监测&#xff0c;2024年1-7月农产品网络零售额增长20.1%&#xff0c;为乡村振兴注入了强大活力。在可预见的未来&#xff0c;农产品将依旧保持稳步增长的发展态势。对于大多数农产品企业来说&#…

告别手动记录,音频转文字软件助力会议记录新高度

如果你突然被领导指派去参与一场会议&#xff0c;身边没有纸笔要怎么记录转达会议内容呢&#xff1f;我往往会采用手机的录音功能来记录会议内容会后再进行整理。这次我们就来探索音频转文字工具怎么提升我们的工作效率。 1.365在线转文字 链接传送&#xff1a;https://www.p…

一键修复老照片:稳定扩散与ComfyUI工作流详解

前言 一键修复老照片&#xff1a;稳定扩散与ComfyUI工作流详解 在数字时代&#xff0c;老照片的修复和上色已不再是繁琐的手工工作。借助先进的人工智能工具&#xff0c;如ComfyUI&#xff0c;我们可以实现一键式的老照片修复&#xff0c;只需上传一张老照片&#xff0c;系统…