当前位置: 首页 > wzjs >正文

哈尔滨建设职工大学优化防疫措施+科学精准防控

哈尔滨建设职工大学,优化防疫措施+科学精准防控,网站制作网免费,检测网站是否正常本文介绍如何将 PDF 和 TXT 文档通过摘要提取与向量化处理后存入向量数据库 Chroma,并实现 RAG(Retrieval-Augmented Generation)问答功能,适用于私有知识库、行业报告系统等场景。 一、 背景介绍 在构建 AI 应用(如智…

本文介绍如何将 PDF 和 TXT 文档通过摘要提取与向量化处理后存入向量数据库 Chroma,并实现 RAG(Retrieval-Augmented Generation)问答功能,适用于私有知识库、行业报告系统等场景。


一、 背景介绍

在构建 AI 应用(如智能问答、知识检索)时,第一步往往是将原始文档转化为向量形式并存入数据库。这通常包含以下流程:

 

  1. 加载原始文件(PDF、TXT 等格式)

  2. 文本切分(控制 chunk 大小以适配模型)

  3. 使用大模型提取摘要(减少冗余)

  4. 向量化(生成 embedding 向量)

  5. 存入向量数据库(如 Chroma)

本文将使用 LangChain 框架 + 阿里通义大模型 + Chroma 数据库,完成从原始文档到知识入库再到语义检索的完整闭环。


二、 技术选型

工具作用
LangChain文档加载、文本切分、链式处理调用
ChromaDB本地/远程向量数据库,支持相似度搜索
DashScope通义千问 Embedding 与摘要模型支持
PyMuPDF高效解析 PDF 文档内容
tqdm控制台进度条显示,便于查看批处理状态

三、 什么是向量数据库?

在 AI 应用中,大模型会将文本编码成向量(embedding),以便进行语义层面的匹配与搜索。此时,传统数据库已无法满足需求,我们通常会使用向量数据库来做底层支撑。

向量数据库的优势包括:

  • ✅ 适配高维嵌入向量(如 OpenAI/通义输出的 768/1536 维向量)

  • ✅ 提供基于向量的相似度检索(支持余弦距离、欧氏距离等)

  • ✅ 支持批量插入、删除、更新

  • ✅ 支持元数据绑定,便于实现过滤、分类检索等高级功能

本项目使用的 Chroma 向量数据库 是一个轻量级、高性能的开源库,具备本地部署优势,非常适合私有化知识库场景。


四、 第一步:连接 Chroma 向量数据库

from chromadb import HttpClient
from langchain_chroma import Chroma
from models import get_dashscope_embedclient = HttpClient(host="localhost", port=8000)
embed = get_dashscope_embed()db = Chroma(collection_name="doc_db", embedding_function=embed, client=client)# 可选:清空已有数据
ids = db.get(include=[])["ids"]
if ids:db.delete(ids=ids)

五、加载 PDF 并进行摘要处理

loader = PyMuPDFLoader("计算机行业深度报告:AI搜索,大模型商业落地“第一束光”.pdf")
docs = loader.load()splitter = RecursiveCharacterTextSplitter(chunk_size=2000, chunk_overlap=200)
chunks = splitter.split_documents(docs)prompt = ChatPromptTemplate.from_messages([("system", "你是一个文本摘要机器人,只输出适合入库的知识摘要:\n\n文章:{passage}\n\n摘要:")
])
chain = prompt | get_tongyi_llm() | StrOutputParser()final_docs = []
for doc in tqdm(chunks):metadata = {"author": "Tom","file_name": "计算机行业深度报告:AI搜索,大模型商业落地“第一束光”.pdf","create_datetime": get_current_datetime(),"department": "技术部","origin": doc.page_content}meta = deepcopy(doc.metadata)meta.update(metadata)summary = chain.invoke({"passage": doc.page_content})final_docs.append(Document(page_content=summary, metadata=meta))

六、加载 TXT 文本并生成摘要

with open("寻龙特刊.text", encoding="utf8") as f:texts = [t.strip() for t in f.read().split("###") if t.strip()]for text in tqdm(texts):metadata = {"author": "李四","file_name": "寻龙特刊.text","create_datetime": get_current_datetime(),"department": "产品部","origin": text}summary = chain.invoke({"passage": text})final_docs.append(Document(page_content=summary, metadata=metadata))

七、 批量写入 Chroma 向量数据库

batch_size = 10
num_docs = len(final_docs)for idx in range(math.ceil(num_docs / batch_size)):batch = final_docs[idx * batch_size : (idx + 1) * batch_size]if batch:db.add_documents(batch)

八、 查询测试:RAG 检索问答示例

入库后,我们就可以使用大模型 + 向量数据库实现 RAG 查询(检索增强生成),如下所示:

from langchain.chains import RetrievalQA
from langchain_core.output_parsers import StrOutputParser
from langchain_core.prompts import ChatPromptTemplate
from models import get_tongyi_llm# 构建 RAG 检索链
retriever = db.as_retriever(search_kwargs={"k": 3})  # top-3 相似块
llm = get_tongyi_llm()prompt = ChatPromptTemplate.from_messages([("system", "你是一个行业知识问答助手,请根据以下内容准确回答用户问题:\n\n{context}\n\n问题:{question}\n\n回答:")
])qa_chain = (prompt| llm| StrOutputParser()
)# 查询示例
query = "大模型在 AI 搜索领域有哪些实际应用?"
docs = retriever.get_relevant_documents(query)
context = "\n\n".join([doc.page_content for doc in docs])response = qa_chain.invoke({"context": context,"question": query
})print("💡 回答:", response)

你将看到模型结合真实资料内容给出的精准回答,这就是典型的 RAG 问答流程。


九、总结

本文构建了一个端到端的私有知识入库与查询系统:

  • ✅ 多格式文档支持(PDF、TXT)

  • ✅ 摘要提取减少冗余,提升嵌入质量

  • ✅ 向量化并存入 Chroma 向量数据库

  • ✅ 基于检索的问答系统(RAG)可灵活对接各类大模型

这一套流程适用于企业知识管理、内部报告搜索、垂直问答系统等多种场景,是 LLM 应用落地的重要基建环节。

http://www.dtcms.com/wzjs/193079.html

相关文章:

  • 如何实现网站的伪静态连接友谊
  • 摄影网站模板源码爱客crm
  • 多城市网站建设企业网站页面设计
  • 有哪些网站做明星周边seo免费课程
  • 网站简单布局图旺道seo优化
  • 藤虎网络广州网站建设免费网站推广方式
  • 做网站优化哪家公司好刷网站关键词工具
  • 有没有工程外包的网站seo网站排名全选
  • 岳阳疫情最新消息windows10优化工具
  • 免费推广的渠道有哪些优化网络培训
  • PC网站开发的意义公关公司是干嘛的
  • 天津建设工程信息网专家库官网优化工具箱
  • 企业网官方网站全球搜索
  • wordpress 煎蛋谷歌优化是什么意思
  • 网站建设 创新城市更新论坛破圈
  • 视频网站开发价格seo专业课程
  • 汕头市作风建设的网站创建自己的网站
  • 义乌小程序装修公司seo网站推广教程
  • 网站建设的运营计划书推广价格一般多少
  • h5开发网站seo优化推广
  • 泰州网站设计咨询360搜索引擎
  • 做分色找工作网站头条新闻
  • 男子做淫秽网站图片网络推广平台有哪些渠道
  • 渭南网站建设疫情防控最新信息
  • dedecms做的网站sem竞价广告
  • 电子商务网站搜索引擎设计如何制作网页最简单的方法
  • 网站开发 js深圳seo论坛
  • 连江网站建设百度大数据搜索引擎
  • 最近的军事新闻有哪些重庆seo代理
  • dedecms5.7环保科技公司网站模板如何做平台推广赚钱