← 返回
未分类

RAG 知识库搭建

企业级 RAG 知识库从零搭建全流程。文档分块策略(固定/语义/结构化三大方案 + 小2大高级优化)、2026 主流嵌入模型选型(中文 BGE / 多语言 BGE-M3 / 英文 OpenAI,含 MTEB 榜单)、完整 Pipeline(LangChain 代码:文档摄入→向量化→检索→Rerank→生成→Ragas 评估)——三选一向量库(ChromaDB/FAISS/Milvus),一键部署脚本直接开用。
庄子十八代技师
未分类 community v1.0.0 1 版本 100000 Key: 无需
★ 0
Stars
📥 60
下载
💾 0
安装
1
版本
#latest

概述

RAG 企业私有知识库一键搭建

概述

从零搭建生产级 RAG(检索增强生成)私有知识库。解决大模型三大痛点:幻觉、知识过时、私有数据无法接入。

一句话理解 RAG:给大模型配一个专属图书馆——先查资料,再回答问题。

适用场景:企业内部文档问答、客服知识库、合同审查、设备运维、新人培训答疑


前置环境

读取 references/environment.md 获取完整环境配置。

最小硬件要求

  • CPU: 4核+
  • 内存: 16GB+(运行大模型需要 GPU 或有足够内存)
  • Docker & Docker Compose
  • Python 3.10+

操作流程

Step 1: 一键启动环境

cd scripts
docker-compose up -d

启动服务:Milvus(向量库)、Ollama(本地大模型)、MinIO(对象存储)

# 验证服务
docker-compose ps

# 拉取模型(推荐 qwen2.5:7b)
ollama pull qwen2.5:7b

Step 2: 文档解析

读取 references/document-parsing.md 获取多格式解析详解。

支持格式

格式解析库注意事项
:---:---:---
PDFPyMuPDF / pdfplumber扫描件需OCR
Word (.docx)python-docx表格需特殊处理
Excel (.xlsx)openpyxl / pandas多Sheet遍历
Markdown原生解析保留标题层级
TXT原生解析自动检测编码
图片OCR (PaddleOCR)提取图中文字

Step 3: 分块策略

读取 references/chunking-strategy.md 获取分块策略详解。这是决定检索准确率的关键环节。

from langchain.text_splitter import RecursiveCharacterTextSplitter

# 推荐配置(中文场景)
text_splitter = RecursiveCharacterTextSplitter(
    chunk_size=512,        # 每块512字符
    chunk_overlap=64,      # 重叠64字符,保持语义连贯
    separators=["\n\n", "\n", "。", ",", " ", ""],
    length_function=len,
)

chunks = text_splitter.split_documents(documents)

分块策略速查

场景chunk_sizechunk_overlap策略
:---:---::---::---
制度文档25650小分块+按章节
技术文档51264标准配置
长文报告1024128大分块+语义分割
FAQ1280按QA对分割

Step 4: 向量化存储

from langchain_community.embeddings import HuggingFaceEmbeddings
from langchain_community.vectorstores import Milvus

# 使用 BGE 中文 Embedding 模型(C-MTEB榜首)
embeddings = HuggingFaceEmbeddings(
    model_name="BAAI/bge-large-zh-v1.5",
    model_kwargs={'device': 'cpu'},
    encode_kwargs={'normalize_embeddings': True}
)

# 存入 Milvus
vector_store = Milvus.from_documents(
    documents=chunks,
    embedding=embeddings,
    collection_name="my_knowledge_base",
    connection_args={"host": "localhost", "port": "19530"},
)

Step 5: 检索增强生成

读取 references/retrieval-strategies.md 获取检索策略详解。

推荐:混合检索(BM25 + 向量 + Rerank)

from langchain.retrievers import EnsembleRetriever
from langchain_community.retrievers import BM25Retriever

# BM25 关键词检索
bm25_retriever = BM25Retriever.from_documents(chunks, k=5)

# 向量语义检索
vector_retriever = vector_store.as_retriever(search_kwargs={"k": 5})

# 混合检索
ensemble_retriever = EnsembleRetriever(
    retrievers=[bm25_retriever, vector_retriever],
    weights=[0.3, 0.7]  # 向量权重更高
)

# Rerank 重排(提升准确率)
from langchain.retrievers import ContextualCompressionRetriever
from langchain_community.document_compressors import BgeRerank

compressor = BgeRerank(model="BAAI/bge-reranker-large", top_n=3)
compression_retriever = ContextualCompressionRetriever(
    base_compressor=compressor,
    base_retriever=ensemble_retriever
)

Step 6: 问答链

from langchain.chains import RetrievalQA
from langchain_community.llms import Ollama

llm = Ollama(model="qwen2.5:7b", temperature=0.1)

qa_chain = RetrievalQA.from_chain_type(
    llm=llm,
    chain_type="stuff",
    retriever=compression_retriever,
    return_source_documents=True,
    verbose=True
)

# 提问
result = qa_chain({"query": "公司的年假政策是什么?"})
print(result['result'])
print("参考来源:", [doc.metadata for doc in result['source_documents']])

Step 7(进阶): GraphRAG 知识图谱增强

读取 references/graphrag-guide.md 了解 GraphRAG 原理和实现。

GraphRAG 在传统 RAG 基础上增加知识图谱层,实现多跳推理和实体关系查询,是2026年企业级RAG的新标配。


检索效果对比

方案Top-1准确率Top-3准确率适用场景
:---:---::---::---
纯向量检索72%85%通用场景
BM25+向量混合81%91%含专有名词/缩写
混合+Rerank88%95%高精度要求
GraphRAG92%97%多跳推理/复杂关系

常见场景速查

场景关键步骤参考
:---:---:---
内部制度问答Step 2-6PDF解析 + 小分块
合同审查Step 2-6Word解析 + 段落级分块
产品手册FAQStep 2-4按QA对分割
多跳推理Step 7GraphRAG知识图谱
权限分级见 references/rbac.mdMilvus Partition Key

资源索引

资源路径用途
:---:---:---
Docker环境scripts/docker-compose.ymlMilvus+Ollama+MinIO
一键搭建脚本scripts/setup_rag.pyPython全流程自动化
环境说明references/environment.md环境要求与依赖
文档解析references/document-parsing.md多格式解析详解
分块策略references/chunking-strategy.md分块策略对比
检索策略references/retrieval-strategies.md混合检索+Rerank
GraphRAGreferences/graphrag-guide.md知识图谱增强
RBAC权限references/rbac.md权限分级方案

注意事项

  • 中文场景首选 BGE 系列 Embedding 模型(bge-large-zh-v1.5
  • 首次运行需下载模型,耗时取决于网络,建议提前 ollama pull
  • Vector Store 索引构建时间随文档量线性增长
  • GraphRAG 适合 >500 页的复杂知识库,小型知识库使用混合检索即可
  • 生产环境建议 Milvus 集群模式 + GPU Embedding

(内容由AI生成,仅供参考)

版本历史

共 1 个版本

  • v1.0.0 包含内容: - 文档分块策略指南(RecursiveChar / SemanticChunker / MarkdownHeader + Small-to-Big 高级优化) - 2026 嵌入模型选型(中文 BGE-large-zh-v1.5 / 多语言 BGE-M3 / Matryoshka 套娃嵌入 + Fine-tuning) - LangChain RAG 完整 Pipeline(文档摄入→分块→向量化→检索→Rerank→生成→Ragas 评估) - 向量库三选一:ChromaDB/FAISS/Milvus 初始化代码 - setup_rag.py 一键部署脚本 - docker-compose.yml(Milvus+Ollama+MinIO 环境) 当前
    2026-06-01 14:19 安全 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

向量数据库大师

user_69009747
向量数据库选型与性能调优完全指南。Milvus 全索引类型深度拆解(IVF_FLAT/SQ8/PQ/HNSW/DISKANN,含召回率/内存/QPS 量化对比),四层性能优化金字塔(资源配置→分区分片→索引选择→查询参数),含 benchm
★ 0 📥 67

Flink 实时数仓

user_69009747
Flink+Paimon+StarRocks 实时数仓全链路:CDC 入湖、物化表开发、分钟级大屏输出,一套 SQL 流批一体。
★ 0 📥 66

数据建模架构师

user_69009747
驾驭维度建模、Data Vault 与湖仓一体三把利剑,让数据资产"活"起来。本技能覆盖 Kimball 维度建模(星型模型/SCD六种策略/事实表四类型)、Inmon CIF 企业信息工厂、Data Vault 2.0(Hub/Link/
★ 0 📥 63