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

天津网站建设制作品牌公司网站建设longda

天津网站建设制作品牌公司,网站建设longda,网站主页设计布局图,网站源码怎么搭建本文介绍如何将 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/685810.html

相关文章:

  • 河北远策网站建设wordpress 获取网址
  • 站长工具ping滨海新区建设网站
  • 青岛网站建设哪里好网站推广的基本方法为
  • 网站快捷按钮以什么方式做网站建设对公司来说重要吗
  • 百度网站主要提供的服务广西住房和城乡建设厅官方网站
  • 没有做网站地图影响大吗吗南阳网站建设培训
  • 天津机械网站建设模板sem竞价推广怎么做
  • 杭州注册公司昆明网络优化
  • wordpress搭建教育网站ps软件免费版在哪下载
  • 海南省住房和城乡建设厅官方网站湖北网络推广
  • 工信部网站备案变更品牌推广策划营销策划
  • 做网站最烂公司扶贫网站建设方案
  • 网站问题解决个人可以做彩票网站吗
  • 电子商务网站建设系统特点Wordpress 相同tag
  • 网站百度贴吧wordpress搭建ss
  • 网站开发主要技术路线wordpress博客类主题
  • 别人帮做的网站怎么修改xp 做网站服务器吗
  • 百度快照 查看指定网站理财网站如何做推广
  • 宝丰网站制作公司网站建设意思
  • 江门电商网站设计培训安徽省干部建设教育网站
  • 建设项目环境登记表辽宁省网站电子技术支持 东莞网站建设
  • php网站开发实训实践总结线上推广平台哪些好
  • 企业网站建设开发服务天津搜索引擎优化公司
  • 教育机构网站建设公司学校网站做链接
  • 做网站开始要注意什么网站架构软件
  • 网站繁体和中文这么做上饶市住房城乡建设局网站
  • 做网站方面的问题青岛网站制作设计
  • 新浪云怎么做自己的网站濮阳的网站建设
  • 上海私人网站建设深圳网站建设工作
  • 建设视频网站要求吗wordpress看板猫