理解 RAG 算法
什么是 RAG?
RAG(Retrieval-Augmented Generation) 是指 AI 在生成答案时,先**检索(Retrieval)相关文档,再参考其内容来生成答案(Generation)**的技术。
简单来说,这就像 AI 参加"开卷考试"。它不是仅凭记忆中的知识作答,而是先查阅相关资料后再回答。
사용자 질문
│
▼
① 검색 (Retrieval)
"질문과 관련된 문서 조각을 찾아라"
│
▼
② 컨텍스트 구성
검색된 문서 조각들을 LLM에게 전달
│
▼
③ 생성 (Generation)
LLM이 문서를 참고하여 답변 생성
│
▼
답변 (출처 포함)
PlantPulse RAG 流水线
第1阶段:文档索引(预处理)
将文档转换为 AI 可以检索的形式的过程。
원본 문서 (PDF · DOCX · PPTX · XLSX · MD · TXT)
│
▼
┌─────────────────────────┐
│ Docling 파서 │
│ 문서 → 텍스트 + 이미지 │
│ + 테이블 구조 추출 │
└────────────┬────────────┘
│
▼
┌─────────────────────────┐
│ 청킹 (Chunking) │
│ 긴 문서를 제목·문단 단위로│
│ 적절한 크기로 분할 │
└────────────┬────────────┘
│
▼
┌─────────────────────────┐
│ 임베딩 (Embedding) │
│ 텍스트 → 2560차원 벡터 │
│ 의미를 숫자 배열로 변환 │
└────────┬────────┬───────┘
│ │
▼ ▼
┌────────┐ ┌────────┐
│ Qdrant │ │ Neo4j │
│ 벡터DB │ │ 그래프 │
└────────┘ └────────┘
什么是分块(Chunking)?
如果对10页的手册整体进行检索,效率会很低。按合适的大小切分后,就能只找到精确的部分。
[원본 문서: 10페이지 매뉴얼]
↓ 청킹
[청크 1] 1장 개요 (제목 아래 문단들을 묶음)
[청크 2] 2장 점검 절차
[청크 3] 2장 표 · 그림 설명
...
| 文档 | 切分方式 |
|---|---|
| PDF · DOCX · PPTX · XLSX | 按标题和段落分组(每块目标约2,000个token)。表格·图片·公式单独提取,图片由 Aura 附加说明文字 |
| MD · TXT | 按1,200个token为单位切分,并在边界处重叠100个token,以避免上下文被切断 |
PlantPulse 安装时未单独指定块大小,因此直接使用引擎默认值。
什么是嵌入(Embedding)?
将文本的语义转换为数字数组(向量)。语义相近的句子在向量空间中彼此靠近。
"펌프 베어링 교체 방법" → [0.12, -0.34, 0.56, ..., 0.78] (2560차원)
"펌프 축수 정비 절차" → [0.11, -0.33, 0.55, ..., 0.77] ← 비슷한 벡터!
"오늘 날씨가 좋다" → [0.89, 0.23, -0.67, ..., 0.12] ← 다른 벡터
第2阶段:检索(Retrieval)
当用户提出问题时,系统会查找相关的文档片段。PlantPulse 的 RAG 引擎(LightRAG)同时使用向量 检索与知识图谱。
向量检索(基于语义)
用相同的嵌入模型将问题向量化,并在向量空间中寻找最接近的内容。
질문: "주입기 베어링 교체 주기는?"
│
▼ 임베딩
질문 벡터: [0.13, -0.35, 0.54, ...]
│
▼ 코사인 유사도 계산
문서 청크 A (점수 0.92): "주입기 베어링은 6개월마다 교체..." ← 선택!
문서 청크 B (점수 0.85): "펌프 축수 정비 시 베어링 점검..." ← 선택!
문서 청크 C (점수 0.31): "작업장 안전 수칙..." ← 제외
优点: 能理解"更换周期" = "维护间隔"这样的语义相似性。
知识图谱检索(实体 · 关系)
沿着索引时提取的实体(设备·部件·流程等)及其之间的关系进行追溯。
질문: "주입기 베어링 교체 주기는?"
│
▼ 질문에서 키워드 추출
세부 키워드: ["주입기", "베어링"] → 엔티티 쪽 (local)
상위 키워드: ["정비 주기", "교체"] → 관계 쪽 (global)
│
▼ 그래프 탐색
주입기 ─(구성품)─▶ 베어링 ─(정비)─▶ 6개월 교체 절차
│
▼ 연결된 문서 조각을 모음
优点: 即使内容未完整记录于单一文档中,也能通过连接散落在多个文档中的关系来找到答案。
旧文档曾将默认模式描述为「Dense + Sparse(BM25) 结合」,但所使用的引擎中并没有 BM25 这类稀疏(关键词)索引。像设备 ID 这样需要精确匹配的名称,会被提取为实体并纳入图谱来处理。
混合检索(PlantPulse 默认模式)
hybrid 是将 local(以实体为中心)+ global(以关系为中心) 结合的方式,是 RAG 网关和聊天工具的
默认模式。它会同时考察设备·部件名称(实体)以及「什么影响了什么」(关系)。
第3阶段:重排序(Reranking)
重排序模型(aura-reranker-0.6b)虽然已部署在技术栈中,但 2026.09 版本的文档检索引擎尚未与之连接
(验证尚未完成,暂时关闭)。检索结果将按第2阶段的排序原样进入答案生成环节。
启用重排序器后,会将初始检索结果以问题–文档对的形式重新比较,按相关度重新排序。 这是用来捕捉检索阶段遗漏的细微相关性的步骤。
第4阶段:答案生成(Generation)
将检索到的文档片段作为上下文传递给 LLM,以生成答案。
[시스템 프롬프트]
아래 문서를 참고하여 질문에 답하세요.
[검색된 문서]
문서 1: "주입기 베어링은 6개월마다 교체하며..."
문서 2: "교체 시 SKF 6205-2RS 규격을 사용..."
[사용자 질문]
주입기 베어링 교체 주기와 규격을 알려줘.
↓ LLM 생성
[답변]
주입기 베어링 교체 주기는 6개월이며, SKF 6205-2RS 규격을 사용합니다.
(출처: 정비 매뉴얼 3장)
四种检索模式对比
| 模式 | 工作方式 | 适用场景 |
|---|---|---|
| hybrid | local + global(同时结合图谱中的实体与关系) | 一般性文档检索(默认值,推荐) |
| naive | 仅使用文档片段的向量相似度 — 不使用图谱 | 概念性问题("什么是 OEE?") |
| local | 以问题中出现的实体为中心 | 确认特定设备·部件的详细内容 |
| global | 以实体之间的关系为中心 | 跨多份文档的综合信息 |
引擎中还有其他模式(如 mix 等),但 PlantPulse 的 RAG 网关仅支持上述四种。
知识图谱 RAG (Graph RAG)
PlantPulse RAG 除了向量检索之外,还支持利用 Neo4j 知识图谱进行检索。
문서 인덱싱 시:
텍스트 → 엔티티 추출 → 관계 추출 → Neo4j 그래프 저장
검색 시 (local · global · hybrid 모드):
질문 → 관련 엔티티·관계 → 그래프 탐색 → 연결된 문서 청크
优点: 能够实现诸如"与注入器相关的所有维护手册"这样的基于关系的检索。
每个文档片段都会由 Aura 提取实体与关系。单个片段可能需要数分钟,若某个片段未能在规定 时间内完成,整份文档都会判定为失败 → 问题排查