企业 RAG 基本架构
企业 RAG 基本流程如下:
企业文档/数据库/网页
↓
数据采集与解析
↓
清洗、切分、元数据提取
↓
Embedding 向量化
↓
向量库 / 搜索引擎 / 关系库
↓
检索 + 重排 Rerank
↓
拼接 Prompt
↓
大模型生成回答
↓
权限控制、日志、评估、监控
1、后端语言和接口
一般来说,企业级 RAG 常用 Python、FastAPI、Redis、PostgreSQL 作为基础技术栈。Redis 用于管理缓存、任务队列等,PostgreSQL 则负责存用户、文档、权限等等。
2、文档解析
PDF 文档常用 PyMuPDF、pdfplumber、Unstructured、LlamaParse 来解析,word/Excel/PPT 则使用 python-docx、openpyxl、python-pptx、Unstructured 等工具。
3、文本切分
RAG 需要将整篇文档切分成小块,常见策略有按标题切分、按段落切分、按 token 长度切分、按 Markdown 层级切分、按表格/条款/FAQ 切分。
另外注意,企业文档在切分时最好保留文档名、章节标题、页码、来源路径、更新时间、权限标签等信息。
4、Embedding 模型
Embedding 用来把文本转成向量,方便语义检索。在中文企业知识库中,常用的是 bge-m3、bge-large-zh、Qwen embedding、text-embedding-3-large / small 模型。
5、向量数据库
常用选择如下:
| 技术 | 适合场景 |
|---|---|
| Chroma | Demo、个人项目、小型原型 |
| FAISS | 本地高性能检索,但工程化能力弱一些 |
| Milvus | 数据量大、企业部署、分布式向量库 |
| Qdrant | 上手简单,过滤和向量检索能力不错 |
| Weaviate | 向量搜索 + 混合搜索能力比较完整 |
| PostgreSQL + pgvector | 中小型项目,想少维护一个数据库 |
| Elasticsearch / OpenSearch | 关键词检索、混合检索、企业搜索 |
其中,Milvus 是比较典型的企业级向量数据库,文档里也持续更新了向量索引、相似度计算、TTL、聚合查询等能力。
6、检索方式
企业 RAG 不建议只做向量检索,还需要关键词检索 BM25 + 向量检索 Vector Search + 元数据过滤 + Rerank 重排,也就是 Hybrid Search。
7、RAG 编排框架
常用的一些框架如下:
| 框架 | 用途 |
|---|---|
| LangChain | RAG、Agent、工具调用、工作流 |
| LangGraph | 多步骤 Agent、状态机、复杂流程 |
| LlamaIndex | 文档索引、检索、知识库问答 |
| Haystack | 企业搜索、RAG pipeline |
| Dify | 低代码知识库应用 |
| FastGPT | 中文场景常见的知识库系统 |
| RAGFlow | 偏文档解析和知识库问答 |
| AnythingLLM | 快速搭建私有知识库 |
| Open WebUI | 本地模型 + 知识库界面 |
8、权限与安全
企业 RAG 必须考虑权限,比如普通员工不能查财务文档、销售不能查 HR 薪资文档、不同部门只能查自己的资料、离职员工不能继续访问。常用的技术如下
JWT / OAuth2 / SSO
RBAC 角色权限
ABAC 属性权限
文档级权限
chunk 级权限
审计日志
数据脱敏
访问频率限制
其中,chunk 级权限实现如下。每一个 chunk 都会带权限 metadata,示例如下:
1 | { |
检索时需要先做权限过滤,再做向量搜索。
综上,当数据量大、用户多、权限复杂时候,RAG 需要以下技术栈:
1 | 前端:Next.js / Vue |