Skip to main content
我最早用 RAG 只盯着生成效果,查过几次坏例子才明白,瓶颈多半在检索那一段。切片、Embedding、召回、重排、生成,哪一环出问题得能分开看。

Q1: RAG 的历史?为什么要有它?

1

2020年: Facebook AI 发表 RAG 论文

2020 年,Facebook AI Research(现 Meta AI)的 Patrick Lewis 等人发表了论文《Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks》。核心思想:在 LLM 生成答案之前,先从外部知识库中检索相关文档,把检索到的文档作为上下文注入 Prompt,让 LLM 基于真实文档回答,而不是依赖训练时”记住”的知识。
2

致命痛点: LLM 的知识幻觉问题

LLM 的训练数据有截止日期,且无法访问私有数据。当你问它最新的 API 文档或公司内部制度时,它要么编造不存在的信息(幻觉),要么说”我不知道”。更严重的是,LLM 编造的内容往往非常”自信”——格式规范、逻辑自洽,让人难以分辨真假。
3

RAG 的核心价值: 让 LLM '查资料'而不是'背书'

没有 RAG 的 LLM 就像一个闭卷考试的学生——全靠记忆,记不住就瞎编。引入 RAG 后,LLM 变成了开卷考试——先翻书找到相关章节,再根据章节内容回答问题。核心价值不是让 LLM 变得更”聪明”,而是让它变得更”可靠”。
4

2023-2024年: RAG 成为 AI 落地的标准范式

随着 LangChain、LlamaIndex 等框架的成熟,RAG 从学术论文变成了工业标准。几乎所有企业级 AI 应用(知识库问答、客服系统、代码助手)都以 RAG 为核心架构。向量数据库(Milvus、Pinecone、Weaviate)也因此成为独立赛道。
5

2025年: 从 Naive RAG 到 Advanced RAG

RAG 技术持续演进。从最初的”检索 + 生成”(Naive RAG),发展到加入查询改写、混合检索、重排序、多跳推理等优化策略的 Advanced RAG。更前沿的方向包括 Agentic RAG(Agent 自主决定何时检索、检索什么)和 Graph RAG(结合知识图谱的结构化检索)。
RAG 解决的核心问题:
RAG 的本质是把 LLM 从”闭卷考试”变成”开卷考试”——先检索真实文档,再让 LLM 基于文档生成答案,从根本上解决知识幻觉问题。

没有 RAG

你问 ChatGPT”我们公司的年假制度是什么?“,它要么说”我不知道”,要么编造一套听起来很合理的年假政策。你无法区分它是”真知道”还是”在编”。

引入 RAG

你把公司的制度文档导入知识库。用户提问时,系统先检索到相关制度条目,再让 LLM 基于条目回答。答案有出处、可验证、不会编造。
RAG 就像把闭卷考试变成开卷考试。闭卷考试(没有 RAG 的 LLM)全靠背书,背不下来就瞎编(幻觉)。开卷考试(有 RAG 的 LLM)允许翻书——先根据题目找到相关章节(检索),再根据章节内容组织答案(生成)。开卷考试的关键不是考生有多聪明(LLM 能力),而是翻书的速度和准确性(检索质量)。翻到错误的章节,再聪明的考生也答不对。

Q2: RAG 的核心原理

RAG 的本质是检索增强生成,完整流程分为三个阶段:索引(Indexing)→ 检索(Retrieval)→ 生成(Generation)。Harrison Chase 在 LangChain 的 “RAG from Scratch” 系列中强调,RAG 的质量瓶颈不在 LLM 的生成能力,而在检索的准确性——“检索不到正确的文档,LLM 再强也答不对”。[1]
RAG 的质量不在 LLM,而在检索。检索不到正确的文档,LLM 再强也答不对。
  • 切片策略决定文档能不能被检索到
  • Embedding 模型决定语义理解能力
  • 检索策略决定召回率和精确率
优化顺序:切片策略 > 检索策略 > Embedding 模型 > LLM 能力。
RAG 就像开卷考试。闭卷考试(没有 RAG)要求你记住所有知识,记不住就只能瞎猜(幻觉)。开卷考试(有 RAG)允许你翻书——先根据题目找到相关的章节(检索),再根据章节内容回答问题(生成)。开卷考试的关键不是你有多聪明(LLM 的能力),而是你翻书的速度和准确性(检索质量)。

向量化原理(Embedding 模型选择)

向量化是把文本转为高维向量的过程。核心思想:语义相似的文本,向量距离相近。
主流 Embedding 模型对比:
MTEB 榜单更新频繁,排名会随新模型发布变化。选型时应以自己的业务语料构造评测集,而不是只看榜单名次。

检索策略(向量检索、BM25、混合检索)

切片策略(语义切片、递归切片、按段落切片)

切片质量直接决定检索质量——切片太大,包含太多无关信息;切片太小,语义不完整。

重排序(Reranking)原理

重排序是 RAG 的关键优化环节。流程:先粗检索 Top-K 个候选(如 20 个),再用 Reranker 模型精排,取 Top-N(如 3 个)给 LLM。
向量检索用的是 Bi-Encoder(双编码器)——问题和文档分别编码为向量,再计算相似度。速度快,但”分别编码”会丢失问题和文档之间的细粒度交互信息。 Reranker 用的是 Cross-Encoder(交叉编码器)——把问题和文档拼接在一起,输入同一个模型计算相关性分数。能捕获更细粒度的语义交互,但速度慢(每对都要单独计算)。

Q3: 如何自主搭建企业级 RAG

架构设计(文档加载 → 切片 → 向量化 → 存储 → 检索 → 生成)

企业级 RAG 的完整架构分为 7 层:

向量数据库选型(Milvus、Pinecone、Weaviate、Chroma、Qdrant、Neo4j、ElasticSearch)

对比:纯向量数据库 vs 图数据库 vs 搜索引擎(ElasticSearch / Easysearch)

Embedding 模型选型(OpenAI、BGE、Jina、Cohere)

传统 RAG 的向量检索就像在一堆拼图碎片中找最像的那一块——靠”长得像”(语义相似度)来匹配,但拼图碎片之间的连接关系(谁和谁相邻)它不知道。Graph RAG(Neo4j)就像社交网络——不仅能找到”张三”这个人(向量检索),还能顺着关系链找到”张三的同事用的技术栈的相关文档”(图遍历)。当问题涉及”谁”、“什么关系”、“哪些相关”时,图数据库远优于纯向量检索。

Neo4j 在 RAG 中的应用

什么是图数据库? 传统数据库(关系型 / 向量)存储的是”扁平”的数据——每条记录独立存在。图数据库存储的是实体(Node)和关系(Edge)——数据之间的连接本身就是一等公民。
Neo4j 的向量检索能力: Neo4j 从 5.x 版本开始原生支持向量索引。可以在节点上存储 Embedding 向量,并通过向量相似度检索。这意味着你可以在一个数据库中同时做图关系遍历和语义向量检索。
知识图谱 + RAG 的结合(Graph RAG): Graph RAG 是 2024-2025 年的前沿方向。核心思想:先用 LLM 从文档中抽取实体和关系,构建知识图谱,再结合图遍历 + 向量检索做 RAG。
适用场景: 实体关系复杂的知识库——如企业内部的人员-项目-技术栈关系、法律条文的引用链、医学知识的症状-疾病-药物关系。当用户的问题涉及”谁”、“什么关系”、“哪些相关”等需要关系推理的场景时,Graph RAG 远优于传统向量检索。

ElasticSearch 在 RAG 中的应用

ElasticSearch 的向量检索能力: ElasticSearch 从 8.0 版本开始原生支持 kNN 向量检索(dense_vector 字段类型)。这意味着你可以在 ElasticSearch 中同时做 BM25 关键词检索和向量语义检索,无需引入额外的向量数据库。
BM25 + 向量混合检索: ElasticSearch 的最大优势是原生支持 BM25 + 向量混合检索,不需要额外的 EnsembleRetriever 或权重调优——它在同一个请求中同时执行两种检索并融合结果。
适用场景: 全文搜索 + 语义检索——当你的知识库同时需要精确关键词匹配(如搜索特定的 API 名称、错误代码、配置参数)和语义理解(如”怎么让页面快一点”匹配”前端性能优化策略”)时,ElasticSearch 是最佳选择。典型场景:技术文档搜索、代码搜索引擎、客服知识库。

Easysearch:Elasticsearch 的国产替代

2024 年,Elastic 将 Elasticsearch 的开源协议从 Apache 2.0 改为 SSPL/Elastic License,许多国内企业面临合规风险。极限科技(INFINI Labs)推出的 Easysearch 应运而生——它是一个完全兼容 Elasticsearch API 的国产分布式搜索与数据分析引擎,同时集成了向量搜索、混合搜索等 AI-native 能力。[5] Easysearch 的核心优势:
Easysearch 的三大差异化能力:
  1. 开箱即用:内置中文分词优化(无需额外安装 IK 分词插件),降低部署和运维门槛。对于国内企业来说,这意味着从安装到生产可用的时间大幅缩短。
  2. AI-native 搜索:原生支持 dense vector(稠密向量)和 sparse vector(稀疏向量),内置 HNSW 索引算法,支持 kNN 向量检索和 BM25 + 向量混合检索(RRF 融合排序)。这些能力与 ElasticSearch 8.x 对齐,但部署更简单。
  3. 国产合规:Apache 2.0 开源协议,无 SSPL/Elastic License 的合规风险,适合政府、金融、国企等对软件供应链安全有严格要求的行业。
适用场景: 企业级搜索(知识库问答、文档检索、代码搜索)、RAG 向量存储、需要国产化替代的场景。对于已有 ElasticSearch 经验的团队,迁移到 Easysearch 几乎零成本——API 完全兼容,只需修改连接配置。

LangChain + Easysearch 集成

Easysearch 兼容 OpenSearch/ElasticSearch API,因此可以直接使用 LangChain 的 OpenSearchVectorSearch 类进行集成,无需额外适配。[5] 基础连接与向量检索:
混合检索(向量 + BM25)配置: Easysearch 原生支持 BM25 + 向量混合检索。通过 RRF(Reciprocal Rank Fusion)融合两种检索结果,兼顾语义理解和关键词精确匹配。
完整的 RAG Chain(LangChain + Easysearch):

Easysearch 与 LangChain 的兼容性踩坑

Easysearch 兼容 Elasticsearch API,但 LangChain 的集成方式有一个容易踩的坑。ES 8.x 官方 Python 客户端(elasticsearch 包)会检测服务端是否为真正的 Elasticsearch——它通过检查服务端返回的 X-elastic-product 响应头来判断。Easysearch 虽然完全兼容 ES API,但不是 Elasticsearch,不会返回这个头,因此 ES 8.x 客户端会直接拒绝连接并抛出 UnsupportedProductError。 LangChain 的 ElasticsearchStore(langchain-elasticsearch 包)底层依赖该客户端,所以用 ElasticsearchStore 连接 Easysearch 会失败。正确的方式是使用 OpenSearchVectorSearch——因为 Easysearch 同时兼容 OpenSearch API,而 LangChain 的 OpenSearchVectorSearch 类底层使用 opensearch-py 客户端,不会做产品检测。
ES 8.x 客户端在每个请求的响应中检查 X-elastic-product: Elasticsearch 头。如果服务端不返回这个头(如 Easysearch、OpenSearch),客户端会抛出 UnsupportedProductError 并拒绝所有后续请求。这个检测逻辑硬编码在客户端中,无法通过配置关闭。解决方式只有两条路:1) 使用不检测产品的客户端(如 opensearch-py);2) 在服务端配置返回该头(部分兼容方案支持)。
Easysearch 是 ElasticSearch 的国产替代——兼容 ES API、内置中文分词、Apache 2.0 开源协议,适合对国产合规有要求的企业。LangChain 集成 Easysearch 时必须用 OpenSearchVectorSearch 而非 ElasticsearchStore——因为 ES 8.x 客户端会检测服务端产品标识,Easysearch 不通过检测会被拒绝连接。

混合检索策略(向量检索 vs BM25 vs 混合检索)

混合检索是 RAG 质量优化中投入产出比最高的策略。核心思想:向量检索捕获语义,BM25 捕获关键词,两者互补。
混合检索的三种实现方式: Reciprocal Rank Fusion (RRF) 算法: RRF 是混合检索中最常用的融合算法。核心思想:不关心每个检索器返回的绝对分数,只关心排名。两个检索器都排在前面的文档,最终排名更高。
混合检索的核心是”语义 + 关键词”互补——向量检索理解用户意图(“怎么让页面快一点”匹配”性能优化”),BM25 精确匹配关键词(“React 18”不会匹配到”Vue 3”)。实际项目中,ElasticSearch 的 RRF 原生融合是最省心的方案,LangChain 的 EnsembleRetriever 是最灵活的方案。

质量优化(查询改写、HyDE、多路召回、重排序)

RAG 质量优化的投入产出比排序:
企业级 RAG 的搭建核心是”分层设计”——文档层、切片层、向量化层、存储层、检索层、生成层各自独立,可单独优化和替换。向量数据库选型看规模和场景:纯语义检索选专用向量库(Milvus/Pinecone),需要关系推理选 Neo4j(Graph RAG),需要关键词 + 语义混合检索选 ElasticSearch 或 Easysearch(国产替代,兼容 ES API,内置中文分词)。Embedding 模型选型看语言,质量优化优先调切片策略和混合检索策略。

Q4: RAG 的高级优化策略

RAG 的高级优化就像做搜索引擎 SEO。查询改写是把用户的口语化问题(“怎么让页面快一点”)改写成更适合检索的专业表述(“前端页面加载性能优化策略,减少 FCP、LCP”)。HyDE 是先写一篇假的参考文章,再用这篇文章去搜索——假文章虽然不准确,但用词和真文章更接近,搜索效果更好。多路召回是同一个问题问不同的人(多个子问题),汇总所有人的答案,覆盖面更广。重排序是先粗筛出 20 个候选,再精挑细选出最相关的 3 个。

查询改写(Query Rewriting)

用 LLM 改写用户问题,提高检索命中率。用户的问题通常是口语化的短句,和文档的书面表述差异大。查询改写把口语化问题转为更适合检索的形式。

HyDE(Hypothetical Document Embeddings)

让 LLM 先生成一个”假设性答案”,再用这个答案去检索。假设性答案虽然可能不准确,但它的语义和真实答案更接近,检索效果更好。

多路召回(Multi-Route Retrieval)

用 LLM 把一个问题拆成多个子问题,分别检索,合并去重。覆盖更多角度,提高召回率。

重排序(Reranking)

先粗检索 Top-K 个候选,再用 Reranker(Cross-Encoder)精排取 Top-N。详见 Q2 的重排序原理部分。

上下文压缩(Context Compression)

检索到的文档切片可能包含大量无关信息。上下文压缩用 LLM 提取切片中与问题相关的部分,减少噪声,节省 Token。

自适应检索(Adaptive Retrieval)

让 LLM 自主决定是否需要检索、检索什么、检索几次。这是 Agentic RAG 的核心思想。
RAG 高级优化的核心思路是”多阶段精炼”——查询改写提升检索命中率,多路召回扩大覆盖面,重排序提升精确度,上下文压缩减少噪声,自适应检索让 Agent 自主决策。实际项目中,混合检索 + Reranker 的投入产出比最高。

Q5: LangChain + RAG 集成

LangChain 的 RAG Chain 就像图书馆的参考咨询服务。你带着问题去咨询台(用户提问),馆员先去书架上找相关书籍(Retriever 检索),把找到的章节复印好(formatDocs 格式化),然后拿着复印件去找专家(LLM),专家根据复印件内容回答你的问题(生成答案)。整个流程用一条流水线(RunnableSequence)串联起来——你只需要提问,后面的找书、复印、问专家全自动完成。

LangChain RAG Chain 设计

LangChain 的 RAG Chain 本质是一个 RunnableSequence:检索器(Retriever)+ 提示词模板(Prompt)+ LLM + 输出解析器(Parser)。

Retriever 原理

Retriever 是 LangChain 的检索抽象。核心接口只有一个方法:invoke(query) → Document[]。所有检索器都实现这个接口,可以自由组合。

Chain 类型(Stuff、MapReduce、Refine、Map-Rerank)

当检索到的文档太多,超出 LLM 上下文窗口时,需要用不同的 Chain 策略处理:

自定义 RAG Pipeline

实际项目中,基础的 RAG Chain 往往不够用。你需要自定义 Pipeline,加入查询改写、混合检索、Reranker、答案验证等环节。
90% 的场景用 Stuff Chain 就够了——限制检索数量为 3-5 个切片,每个切片 1000 字符,总共 3000-5000 字符,远在 LLM 上下文窗口之内。只有当文档量特别大(如 100+ 篇文档的全局摘要)时才用 MapReduce。

Q6: n8n 和 Dify 是什么?

n8n 和 Dify 是当前主流的可视化 AI 工作流与 Agent 编排构建平台。n8n 偏向节点自动化,Dify 偏向大模型应用全栈开发。两者可以组合使用——Dify 提供 RAG 和 Agent 能力,n8n 负责把 Dify 的 AI 能力接入到更大的自动化工作流中。
n8n 就像工厂里的通用自动化流水线——把各种设备(API)用传送带(节点连接)串起来,收到订单(Webhook 触发)就自动执行:检查库存→调用物流→发送通知。AI 只是流水线上的一个工位。Dify 就像专门的 AI 车间——内置了文档上架系统(RAG 知识库)、智能机械臂(Agent)、操作手册管理(Prompt 模板),专门生产 AI 产品。两者可以配合:Dify 车间生产出 AI 产品,n8n 流水线负责把产品配送到各个渠道。

n8n:开源工作流自动化工具

n8n(读作 “n-eight-n”)是一个开源的工作流自动化工具,类似 Zapier,但可以自托管。它的核心是通过可视化的节点编辑器,把不同的服务和 API 连接起来,构建自动化工作流。
n8n 与 LLM 集成: n8n 通过 HTTP 请求节点调用 OpenAI API,实现 AI 工作流自动化。
适用场景: 自动化工作流、数据同步、定时任务、API 编排、跨系统集成。

Dify:开源 LLM 应用开发平台

Dify 是一个开源的 LLM 应用开发平台,提供可视化的界面来构建 RAG 应用和 Agent。它的核心价值是让不懂代码的人也能搭建 RAG 知识库和 AI 应用。
Dify 的 RAG 能力:
Dify 的 Agent 能力: 工具调用(Function Calling)、多轮对话、上下文管理、Agent 推理循环。 适用场景: 快速搭建 RAG 应用、企业知识库、AI 客服、内部文档问答。

n8n vs Dify 对比

n8n 是”通用的自动化胶水”——把各种 API 和服务连接起来,AI 只是其中一个节点。Dify 是”AI 专项的开发平台”——内置 RAG、Agent、工作流,专注于 LLM 应用的快速搭建。两者可以组合使用:Dify 提供 RAG 和 Agent 能力,n8n 负责把 Dify 的 AI 能力接入到更大的自动化工作流中。

Q7: RAG vs Fine-tuning 怎么选?

RAG 和 Fine-tuning 就像学外语的两种方式。RAG 是给你一本字典——遇到不会的词就查(检索文档),字典越全你回答得越好,但你还是用原来的语法说话(LLM 风格不变)。Fine-tuning 是去上语法班——学完之后你的说话方式变了(输出风格改变),能用更地道的表达(领域术语),但遇到没学过的知识还是不会。大多数场景只需要字典(RAG),只有当你需要改变说话方式(特定风格输出)或学习专业术语时,才需要上语法班(Fine-tuning)。

核心区别:知识注入 vs 能力注入

RAG 和 Fine-tuning 解决的是完全不同类型的问题:

适用场景对比

RAG 解决的是”不知道”的问题(知识注入),Fine-tuning 解决的是”不会做”的问题(能力注入)。大多数企业场景用 RAG 就够了。Fine-tuning 只在两种场景下考虑:1) 需要特定的输出风格;2) 需要理解领域专用术语。两者也可以组合使用。

Q8: 多模态 RAG(图文混排、表格、图片语义)

传统 RAG 只处理纯文本,但企业文档中大量信息以图片、表格、PDF 图文混排的形式存在。多模态 RAG 的目标是让 RAG 系统能”看懂”图片和表格,而不仅仅是”读懂”文字。[1]
传统 RAG 就像一个只能读文字的秘书——你给他一份带图表的报告,他会把文字部分整理好,但图表、流程图、数据表格全部忽略。多模态 RAG 就像一个能”看图说话”的秘书——他不仅整理文字,还能看懂流程图的含义、识别表格中的数据、理解图片中的关键信息。当你问”这个季度的销售趋势如何”,他能看懂折线图并告诉你”Q2 环比增长 15%“。

PDF 图文混排解析(MinerU、LlamaParse、Docling)

企业级文档(合同、财报、技术手册)通常是图文混排的 PDF。传统的 pdf-parse 或 pdfjs-dist 只能提取纯文本,图片、表格、公式全部丢失。专业的文档解析工具通过 OCR + 版面分析来保留完整的文档结构。

表格解析(Table Transformer、Camelot、VLM)

表格是 RAG 系统中最难处理的结构化数据。传统的文本切片会打碎表格的行列关系,导致检索到的切片丢失结构化语义。

图片语义提取(GPT-4V、Qwen-VL)

图片中的关键信息(流程图、架构图、数据可视化)需要被转化为文本描述,才能参与 RAG 检索。核心思路是用多模态大模型生成图片的语义描述。

多模态嵌入(CLIP、SigLIP)

多模态嵌入的核心是把文本和图片映射到同一个向量空间,使得”一张猫的图片”和”一只猫”在向量空间中距离很近。[2]
BGE-M3 属于文本 Embedding(多语言,同时输出 Dense、Sparse、Multi-vector),不能处理图片,不要和多模态模型混用。
多模态 RAG 的核心是让 RAG 系统能”看懂”文档中的图片和表格——用 MinerU/LlamaParse/Docling 解析 PDF 图文混排,用 Table Transformer/VLM 结构化表格数据,用 GPT-4V/Qwen-VL 提取图片语义描述,用 CLIP/SigLIP 实现跨模态向量检索。2025 年的趋势是”视觉原生解析”——直接用多模态大模型理解文档版面,而不是传统的 OCR + 规则解析。

Q9: 行业 RAG 应用(食品、工业、金融、医疗)

RAG 的价值在不同行业中体现为不同的落地形态。核心差异在于知识库的结构、合规要求和容错标准。[3]
行业 RAG 就像不同行业的图书馆管理员。食品行业的管理员专门管理配方和质检报告——你需要查找某款饮料的配方,他能立刻找到并告诉你每种原料的配比(但你必须确认配方版本是最新的)。工业行业的管理员管理设备维修手册——设备报警时,他能根据错误代码找到对应的维修步骤(但如果手册有误,可能导致停机损失)。金融行业的管理员管理合规文件——你问某个业务是否合规,他能精确引用相关法规条文(但回答必须 100% 准确,错误回答可能导致监管处罚)。医疗行业的管理员管理临床指南——他能根据症状推荐诊断方案(但错误推荐可能危及生命,所以必须有医生复核环节)。

食品/快消行业 RAG

食品行业的 RAG 核心场景覆盖配方管理、质量控制、供应链知识管理和营销文案生成四大领域。知识库包含产品配方文档、质检标准(GB/T 系列、FDA 21 CFR)、供应商资质文件、生产 SOP、营销素材库。[3] 配方管理知识库是食品行业 RAG 最核心的应用。同一产品可能有多个版本的配方(如”减糖版”、“无麸质版”),RAG 系统必须支持配方版本控制——在向量数据库的元数据中存储产品ID、版本号、生效日期、适用市场,检索时强制过滤为最新版本。配方查询需要精确匹配成分名称和配比数值,因此必须采用混合检索(向量语义 + BM25 关键词),纯向量检索可能将”蔗糖”和”果葡糖浆”混为一谈。
质量控制文档包括质检标准(GB 4789 系列微生物检测、GB 5009 系列理化检测)、HACCP 关键控制点文档、不合格品处理记录。RAG 系统需要支持合规检查自动化——输入检测数据,自动比对标准限值,输出合规/不合规判定及依据条文。 供应链知识管理整合供应商资质文件、物流追踪记录、原料溯源信息。当发生食品安全事件时,RAG 系统需要在秒级内完成召回溯源——从成品批次反查原料供应商、生产日期、物流路径。 营销文案生成是食品行业 RAG 的增值应用。知识库包含品牌调性指南、历史营销文案、产品卖点文档。RAG 系统根据产品信息自动生成符合品牌调性的产品描述和广告语,同时确保营养声称符合法规要求(如”低糖”需满足 GB 28050 标准)。 技术方案:知识图谱 + RAG + 多模态 食品行业的知识具有强关联性(原料-配方-产品-供应商-法规),适合用知识图谱 + RAG(Graph RAG)构建。例如查询”含有花生的产品有哪些”需要遍历原料-配方-产品的图关系,纯向量检索无法完成。同时,产品图片(包装设计、质检报告扫描件)需要多模态 RAG 支持图文混排检索。

工业行业 RAG

工业行业的 RAG 核心场景是设备维护手册检索和制造流程知识库。知识库包含设备操作手册、维修 SOP、故障代码对照表、工艺参数文档、PLC 程序注释。[3] 工业 RAG 与其他行业最大的差异是毫秒级响应需求。设备报警时,生产线每停一分钟可能损失数万元。RAG 系统必须在设备报警后几秒内返回维修方案,而不是像传统 RAG 那样等待 2-3 秒的检索 + 生成时间。 设备维护手册是工业 RAG 最高频的知识源。一个大型工厂可能有数千台设备,每台设备的维护手册数百页。传统做法是工程师翻阅纸质手册或搜索 PDF,效率极低。RAG 系统将所有设备手册索引化,工程师输入故障代码或描述故障现象,系统返回对应的维修步骤、所需备件、预计维修时间。
制造流程知识库整合工艺参数(温度、压力、速度等)、操作规范、质量检验标准。RAG 系统需要支持结构化参数查询——输入产品型号和工序,返回精确的工艺参数范围。这要求切片策略保留参数表格的结构化语义,不能把表格打碎成无序文本。 技术方案:向量数据库 + 缓存 + 边缘部署 工业 RAG 的架构核心是三级缓存 + 边缘部署:
边缘部署是工业场景的关键——工厂网络可能不稳定,不能依赖云端 API。解决方案是在工厂内网部署轻量级向量数据库(如 Qdrant 单机版)和本地 LLM(如 Qwen-7B),实现离线可用的 RAG 系统。

金融行业 RAG

金融行业的 RAG 核心场景是合规知识库、投研分析、风险管理三大领域。知识库包含监管法规(证监会、银保监会、人民银行文件)、内部合规制度、券商研报、风险案例库、审计文档。[3] 金融 RAG 与其他行业最大的差异是法规出处可追溯。金融合规问答不允许”大概”、“可能”的回答,每句话都必须能追溯到具体的法规条文。错误的合规建议可能导致监管处罚,甚至刑事责任。 合规知识库是金融 RAG 最基础的应用。金融机构需要回答”某项业务是否合规”、“某类产品的监管要求是什么”等问题。知识库包含数千份法规文件,且法规之间存在引用、修订、废止等复杂关系。纯向量检索无法处理”A 法规引用 B 法规第 X 条”这种关系型查询,必须引入知识图谱。
投研分析是金融 RAG 的增值应用。券商研报通常数百页,分析师需要快速提取关键信息(如某公司的营收增长率、行业竞争格局、风险因素)。RAG 系统支持多文档摘要和跨报告对比——输入”对比 A 公司和 B 公司的毛利率趋势”,系统从多份研报中提取相关数据并生成对比分析。 风险管理整合风险案例库、预警指标、历史审计文档。RAG 系统支持风险预警——输入当前业务数据,检索历史上类似场景的风险案例,输出风险等级和应对建议。 技术方案:GraphRAG + 权限控制 + 审计日志 金融 RAG 的架构核心是法规关系图谱 + 细粒度权限 + 全链路审计。法规之间存在引用、修订、废止等关系,必须用知识图谱建模。不同角色(合规专员、业务人员、审计人员)对法规的访问权限不同,需要文档级权限控制。所有 RAG 查询和 LLM 生成的答案都必须记录审计日志,支持事后追溯。

医疗行业 RAG

医疗行业的 RAG 核心场景是医疗知识库、药品信息查询、病历分析三大领域。知识库包含医学文献(PubMed)、临床诊疗指南、药物说明书、病历数据(需脱敏)、影像报告。[3] 医疗 RAG 与其他行业最大的差异是容错标准极高——错误的诊断建议可能危及生命。因此,所有 LLM 生成的医疗建议必须标注”仅供参考,需医生复核”,且系统必须支持证据等级标注(如”基于 RCT 研究的 A 级推荐” vs “基于专家意见的 D 级推荐”)。 医疗知识库整合临床诊疗指南、医学教科书、Meta 分析。RAG 系统需要支持多模态检索——医生输入症状描述或影像图片,系统检索相关的诊疗指南和文献。影像报告(CT、MRI、X 光)需要多模态大模型(如 Med-PaLM)辅助解读。 药品信息查询是医疗 RAG 最高频的应用。知识库包含药物说明书、药物相互作用数据库、剂量指南。RAG 系统需要精确回答”A 药和 B 药能否同时服用”、“肾功能不全患者的剂量调整”等问题。这要求切片策略保留药物信息的结构化字段(通用名、商品名、适应症、禁忌症、相互作用),不能把说明书打碎成无序文本。
病历分析是医疗 RAG 最敏感的应用。病历数据包含患者的个人信息、诊断记录、用药历史,必须严格遵守 HIPAA(美国)或《个人信息保护法》(中国)的脱敏要求。 技术方案:多模态 RAG + 安全隔离 + HIPAA 脱敏 医疗 RAG 的架构核心是数据安全隔离 + 脱敏处理 + 多模态支持:
行业 RAG 的核心差异不在技术架构,而在合规要求和容错标准。食品行业重版本管理(配方不能用错)和知识图谱(原料-配方-产品的关联关系);工业行业重响应速度(三级缓存 + 边缘部署实现毫秒级返回);金融行业重出处可追溯(GraphRAG 建模法规引用链 + 审计日志);医疗行业重隐私保护(HIPAA 脱敏 + 安全隔离 + 多模态影像支持)。

Q10: AI Agent 客服系统

AI Agent 客服系统是 RAG + Agent 最典型的落地场景——结合知识库检索、意图识别、多轮对话和转人工策略,构建端到端的智能客服解决方案。2024-2025 年,随着大模型能力的提升,智能客服从”关键词匹配 + 规则路由”进化为”Agent 自主决策 + RAG 知识检索 + Human-in-the-Loop 人机协同”。[1]
AI Agent 客服系统就像医院的分诊台。用户进来先分诊(意图识别)——护士(LLM)判断你是感冒还是骨折。如果是感冒(简单问题),直接从药房(知识库 RAG)取药(检索文档)给你。如果是骨折(复杂问题),分诊台帮你挂骨科专家号(转人工)。如果护士连续判断错误 3 次(连续无法回答),或者你情绪激动大喊大叫(情绪检测),也会帮你转专家。整个过程中,你的病历(对话历史)被完整记录,专家看完后会把诊断结果录入系统(工单闭环),下次类似症状可以直接参考。

意图识别(Intent Classification)

意图识别是客服系统的第一步——判断用户想做什么,然后路由到对应的处理流程。

多轮对话(Multi-turn Dialogue)

客服系统的核心挑战是多轮对话——用户可能在多轮交互中逐步补充信息、切换话题、回溯之前的问题。系统需要维护完整的对话状态。

转人工策略(Human Handoff)

转人工是客服系统的安全阀——当 Agent 无法处理时,必须无缝转接人工客服。触发条件需要多维度判断,不能只看”能不能回答”。

工单闭环(Ticket Lifecycle)

转人工不是终点——人工客服解决问题后,需要把解决方案录入知识库,形成闭环。这样下次遇到类似问题,Agent 就能直接回答。

端到端实现:CustomerServiceAgent

把意图识别、多轮对话、转人工策略、工单系统组合成一个完整的客服 Agent。
AI Agent 客服系统的核心是”RAG 检索 + 意图识别 + 多轮对话 + 转人工策略 + 工单闭环”五位一体。意图识别用 LLM + 小模型混合架构(高频意图小模型快速分类,低频意图 LLM 深度理解);多轮对话维护槽位状态,逐步收集信息;转人工策略多维度判断(连续失败、情绪检测、敏感问题、用户主动要求);工单闭环把人工解决方案沉淀回知识库,让 Agent 越用越聪明。

Q11: RAG 评估体系(RAGAS、自动化评估)

RAG 的优化不能靠”感觉”,必须靠数据。RAGAS(Retrieval Augmented Generation Assessment)是 RAG 系统的权威评估框架,核心思想是用 LLM 作为评判者,自动化评估 RAG 的检索质量和生成质量。[4]
RAGAS 就像一个自动化的考试阅卷系统。Faithfulness(忠实度)检查的是”你是不是抄了参考资料”——答案必须基于检索到的文档,不能自己编造。Answer Relevancy(答案相关性)检查的是”你有没有答非所问”——答案必须和问题相关。Context Precision(上下文精确度)检查的是”参考资料是不是对的”——检索到的文档必须和问题相关。Context Recall(上下文召回率)检查的是”参考资料够不够全”——是否检索到了所有相关文档。没有评估的 RAG 优化就像不看考试成绩就改教学方法——你根本不知道改对了没有。

RAGAS 核心指标详解

自动化评估流水线

生产级 RAG 系统需要建立自动化评估流水线——每次优化(调整 chunkSize、换 Embedding 模型、加 Reranker)后,自动跑一遍 RAGAS 评估,对比前后指标变化。
RAG 的优化不能靠”感觉”,必须靠数据。每次优化后(如调整 chunkSize、换 Embedding 模型、加 Reranker),都要用 RAGAS 跑一遍评估,看指标是否有提升。没有评估的优化就是盲人摸象。建议建立 100+ 条 QA 的测试集作为评估基线,覆盖高频问题、边缘场景、多跳问题。
RAGAS 是 RAG 系统的”考试阅卷系统”——Faithfulness 检查是否编造,Answer Relevancy 检查是否答非所问,Context Precision 检查检索排序是否合理,Context Recall 检查是否找到了所有相关文档。生产级 RAG 必须建立自动化评估流水线,每次优化后回归测试,用数据驱动迭代。

Q12: 企业级 RAG 部署(离线预处理、混合索引、VLM Re-ranking、前端集成)

从 Demo 到生产级 RAG,需要解决性能、成本、可靠性三大工程挑战。[5]
企业级 RAG 就像一个大型图书馆的运营。离线预处理是”后台”——新书到了要编目、贴标签、上架(文档解析、切片、向量化),这个过程不需要用户等待,可以批量处理。在线检索是”前台”——用户来问问题,馆员要快速找到相关书籍(混合索引检索),然后精挑细选出最相关的几本(VLM Re-ranking),最后交给专家(LLM)回答。前端集成是”咨询服务台”——用户在这里提问、看到答案和出处、给出反馈。后台做得好(索引质量高),前台才能答得准(检索质量高)。

离线预处理 + 在线检索

企业级 RAG 的核心工程原则是离线预处理和在线检索分离。离线阶段处理文档解析、切片、向量化、索引构建(可以批量、异步、批处理);在线阶段只做检索和生成(必须低延迟、高可用)。

混合索引

混合索引是企业级 RAG 的标准配置——**向量索引(语义检索)+ 倒排索引(关键词检索)+ 元数据索引(过滤)**三者结合。

RAG with VLM Re-ranking

VLM(Vision Language Model)Re-ranking 是 2025 年的前沿优化——用多模态大模型对检索结果进行精排,而不仅仅是用 Cross-Encoder。VLM Re-ranking 的优势是能同时理解文本和图片的相关性,特别适合多模态 RAG 场景。

前端集成最佳实践

前端与 RAG 系统的集成需要关注流式渲染、引用来源展示、用户反馈收集三个核心体验。
企业级 RAG 部署的核心是”离线/在线分离”——离线阶段做文档解析、切片、向量化(批量异步),在线阶段只做检索和生成(低延迟高可用)。混合索引(向量 + 倒排 + 元数据)是标准配置,VLM Re-ranking 是前沿优化(多模态精排),前端集成关注流式渲染和引用来源展示。

Q13: 高频面试题

每个 Q 下面必须有 ### 子标题(延伸知识),用于深入解释该 Q 的主题。这些子标题不是面试问题,而是对主题的深度扩展。
RAG 面试的核心就像侦探破案。切片策略是”怎么整理案卷”——案卷太厚翻不过来(切片太大),太碎又丢失上下文(切片太小)。检索策略是”怎么找线索”——语义检索靠直觉(“这个人可疑”),关键词检索靠证据(“指纹匹配”),混合检索两者结合效果最好。Reranker 是”线索精筛”——先粗筛出 20 条线索,再精挑出最相关的 3 条给侦探(LLM)分析。RAGAS 评估是”结案报告审核”——每次破案后都要审核质量,不能靠感觉。

RAG 的核心流程是什么?

RAG 的核心流程是索引 → 检索 → 生成三个阶段:
  1. 索引阶段:文档加载 → 文档切片(RecursiveCharacterTextSplitter,chunkSize 500-1500,overlap 10-20%) → 向量化(Embedding 模型) → 存入向量数据库
  2. 检索阶段:用户提问 → 问题向量化 → 向量相似度检索(返回 Top-K 个切片) → 可选:Reranker 精排
  3. 生成阶段:检索到的切片作为上下文 → 拼接 Prompt → 调用 LLM → 生成答案
质量瓶颈在检索——检索不到正确的文档,LLM 再强也答不对。优化优先级:切片策略 > 检索策略 > Embedding 模型 > LLM 能力。

向量数据库怎么选?

向量数据库选型取决于三个维度:规模、运维能力、是否需要混合检索。
  • 小项目/本地开发:Chroma(零配置,嵌入式)
  • 快速原型/小团队:Pinecone(全托管,无需运维)
  • 中等规模:Weaviate(原生支持混合检索)或 Qdrant(Rust 实现,高性能)
  • 大规模生产:Milvus(支持亿级向量,性能最强)
  • 已有 PostgreSQL:pgvector(零成本引入,不需要额外维护向量数据库)

RAG 的质量怎么优化?

RAG 质量优化从四个维度入手:
  1. 切片策略:按语义切 > 递归切 > 按段落切。chunkSize 推荐 500-1500,overlap 推荐 10-20%。
  2. 检索策略:混合检索(向量 + BM25,权重 0.6:0.4)效果最好。加 Reranker(Cross-Encoder)精排,通常能提升 20-30% 准确率。
  3. 查询优化:查询改写(把口语化问题转为检索友好的表述)、HyDE(用假设性答案检索)、多路召回(拆成多个子问题分别检索)。
  4. 上下文优化:上下文压缩(提取切片中与问题相关的部分,减少噪声)、自适应检索(Agent 自主决定是否需要检索)。

RAG 和 Fine-tuning 的区别?

核心区别是解决的问题不同:
  • RAG 解决的是”LLM 不知道”的问题——知识注入。让 LLM 查资料而不是背书。适用于知识问答、文档检索。成本低,实时更新。
  • Fine-tuning 解决的是”LLM 不会做”的问题——能力注入。让 LLM 学会某种风格或格式。适用于风格迁移、特定格式输出。成本高,需要重新训练。
大多数企业场景用 RAG 就够了。Fine-tuning 只在需要特定输出风格或领域术语理解时考虑。两者也可以组合:Fine-tuning 让模型理解领域术语,RAG 提供最新知识。

n8n 和 Dify 的区别?

两者解决的问题不同:
  • n8n 是通用的工作流自动化工具——把各种 API 和服务连接起来,AI 只是其中一个节点。适用于跨系统自动化、定时任务、数据同步。目标用户是运维和开发人员。
  • Dify 是 AI 专项的 LLM 应用开发平台——内置 RAG、Agent、工作流,专注于 LLM 应用的快速搭建。适用于企业知识库、AI 客服、内部文档问答。目标用户包括产品经理和业务人员。
两者可以组合:Dify 提供 RAG 和 Agent 能力,n8n 负责把 Dify 接入到更大的自动化工作流中。

RAGAS 评估指标有哪些?

RAGAS(Retrieval Augmented Generation Assessment)是 RAG 系统的权威评估框架,核心指标包括:
RAG 的优化不能靠”感觉”,必须靠数据。每次优化后(如调整 chunkSize、换 Embedding 模型、加 Reranker),都要用 RAGAS 跑一遍评估,看指标是否有提升。没有评估的优化就是盲人摸象。

如何处理 RAG 中的多跳问题?

多跳问题是指需要多次检索才能回答的问题。例如:“React 的并发模式用了什么调度算法?这个算法是谁提出的?”
实现方式:用 LangGraph 的条件路由——第一次检索后判断是否需要继续检索,如果需要就用第一次的答案构造新查询,再次检索。

生产级 RAG 需要考虑哪些问题?

生产级 RAG 需要考虑 5 个层面:
  1. 文档更新:增量索引(只索引变化的文档),而不是每次全量重建。支持多种格式(PDF、Word、网页、数据库)。
  2. 性能优化:缓存热门查询的结果,Embedding 模型批量化处理,向量数据库的索引优化(HNSW / IVF)。
  3. 安全与权限:文档级别的访问控制——不同用户只能检索到自己有权限的文档。向量数据库需要支持元数据过滤。
  4. 监控与可观测性:追踪每个 RAG 请求的检索质量(命中率、相关性分数)、生成质量(忠实度、答案相关性)、延迟和成本。
  5. 容错与降级:向量数据库不可用时降级为 BM25 关键词检索;LLM 不可用时返回检索到的原始文档片段。
RAG 面试的核心是理解”检索质量决定最终质量”——切片策略、Embedding 模型、检索策略、Reranker 四个环节环环相扣。高级话题包括 HyDE、多路召回、自适应检索、多跳推理。实际项目中,先用 RAGAS 建立评估基线,再逐步优化。

🔍 底层源码:向量检索是如何实现的?

主流向量数据库使用 HNSW(Hierarchical Navigable Small World) 算法实现近似最近邻搜索。核心思想是构建一个多层的图结构,从顶层开始贪心搜索,逐层下降,最终在底层找到最近邻(详见 HNSW 论文):
HNSW 的时间复杂度是 O(log N),比暴力搜索的 O(N) 快得多。100 万条 1536 维的向量,暴力搜索需要几秒,HNSW 只需要几毫秒。 BM25 基于**词频(TF)和逆文档频率(IDF)**的统计模型(详见 Lucene BM25 实现):
BM25 的优势是精确关键词匹配,劣势是无法理解语义(“汽车”和”轿车”是完全不同的词)。所以实际项目中用混合检索:向量检索捕获语义,BM25 捕获关键词。

Q14: 满分回答 vs 及格回答

问题:“说说 RAG 的核心原理和质量优化策略”

及格回答(60-70分):
“RAG 就是先检索文档,再让 LLM 根据文档回答。流程是文档切片、向量化、检索、生成。质量优化可以用更好的 Embedding 模型。”
问题出在:知道流程但不理解瓶颈。 满分回答(90-100分):
“RAG 的核心是检索增强生成——先从知识库中检索相关文档,再把文档作为上下文注入 Prompt,让 LLM 基于真实文档回答,而不是依赖训练时记住的知识。完整流程分三个阶段:索引(文档加载 → 切片 → 向量化 → 存入向量数据库)、检索(问题向量化 → 相似度检索 → 返回 Top-K)、生成(拼接 Prompt → 调用 LLM → 生成答案)。[1]”
“RAG 的质量瓶颈不在 LLM,而在检索。检索不到正确的文档,LLM 再强也答不对。优化有四个维度:1) 切片策略——推荐递归切片,chunkSize 500-1500,overlap 10-20%;2) 检索策略——混合检索(向量 + BM25,权重 0.6:0.4)效果最好,加 Reranker(Cross-Encoder)精排通常能明显提升检索精度;3) 查询优化——查询改写、HyDE、多路召回;4) 上下文优化——上下文压缩减少噪声。[2]”
“实际项目中,我会先用 RAGAS 建立评估基线(Faithfulness、Answer Relevancy、Context Precision、Context Recall),然后逐步优化。优先级:切片策略 > 混合检索 + Reranker > 查询改写 > Embedding 模型升级。没有评估的优化就是盲人摸象。[3]”
“企业级部署还需要考虑多模态 RAG(用 MinerU/LlamaParse 解析 PDF 图文混排,用 GPT-4V 提取图片语义,用 CLIP/SigLIP 实现跨模态向量检索)、行业合规(金融要求每句话有法规出处,医疗要求病历脱敏)、以及离线/在线分离架构(离线批量预处理文档,在线低延迟检索生成)。前端集成关注流式渲染(SSE)和引用来源展示。[4]“

常见追问

题目来源于真实面经(字节/腾讯/阿里前端面试、牛客网、haizlin/fe-interview),按难度递进。每个模块 8 个 Accordion,覆盖 4 个难度层级。
答题要点: 说出索引、检索、生成三个阶段,以及每个阶段的关键步骤。高分回答: “RAG 的核心流程分三个阶段:
  1. 索引阶段:文档加载 → 文档切片(RecursiveCharacterTextSplitter,chunkSize 500-1500,overlap 10-20%) → 向量化(Embedding 模型把文本转为高维向量) → 存入向量数据库。
  2. 检索阶段:用户提问 → 问题向量化 → 向量相似度检索(返回 Top-K 个最相似的切片) → 可选:Reranker 精排。
  3. 生成阶段:检索到的切片作为上下文 → 拼接 Prompt → 调用 LLM → 生成答案。
关键点:质量瓶颈在检索——检索不到正确的文档,LLM 再强也答不对。”
答题要点: 从规模、运维能力、检索场景三个维度分析,重点区分纯向量库、图数据库、搜索引擎的适用场景。高分回答: “向量数据库选型取决于三个维度:
  1. 规模:小项目用 Chroma(零配置,嵌入式),中等规模用 Qdrant 或 Weaviate,大规模生产用 Milvus(支持亿级向量)。
  2. 运维能力:没有运维能力的团队用 Pinecone(全托管,开箱即用),有运维能力的团队自部署 Milvus 或 Qdrant。
  3. 检索场景:纯语义检索选专用向量库(Milvus/Pinecone);需要关键词 + 语义混合检索选 ElasticSearch(原生 BM25 + kNN RRF 融合);需要实体关系推理选 Neo4j(Graph RAG,结合图遍历和向量检索)。已有 PostgreSQL 的团队可以用 pgvector(零成本引入)。
实际建议:先用 Chroma 本地开发验证效果,上线时根据场景选型——技术文档搜索用 ElasticSearch 或 Easysearch(国产替代,API 兼容,内置中文分词),知识图谱用 Neo4j,纯语义检索用 Milvus。”
答题要点: 从语义完整性、检索精确性、性能三个维度分析。高分回答: “切片策略的选择取决于文档类型和检索需求:
  1. 递归切片(RecursiveCharacterTextSplitter):最通用,先按段落切,再按句子切,最后按字符切。chunkSize 推荐 500-1500 字符,overlap 10-20%。
  2. 语义切片(SemanticChunker):用 Embedding 计算相邻句子的相似度,在相似度低的地方切分。效果最好,但最慢(需要调用 Embedding API)。
  3. 按段落切(MarkdownHeaderTextSplitter):适合 Markdown 文档,保留文档结构。
关键原则:每个切片应该是一个完整的语义单元,能独立回答一个问题。chunkSize 太小语义不完整,太大包含太多无关信息。”
答题要点: 说出向量检索和 BM25 各自的优缺点,以及混合检索如何互补。高分回答: “纯向量检索的缺陷:当用户搜索’React 18 的 concurrent 模式’时,向量检索可能返回’Vue 3 的响应式’——因为它们在语义空间中距离很近(都是’前端框架的核心特性’),但关键词完全不同。BM25 的缺陷:当用户搜索’怎么优化首屏加载’时,BM25 无法匹配’如何提升 FCP 指标’——因为关键词完全不同,但语义完全一致。混合检索 = 向量检索(捕获语义)+ BM25(捕获关键词),两者的权重可以通过实验调优。LangChain 的 EnsembleRetriever 默认权重是 0.5:0.5,实际项目中推荐 0.6:0.4(偏向语义检索)。”
答题要点: 从知识注入和能力注入两个维度区分,结合实际场景说明。高分回答: “RAG 和 Fine-tuning 解决的是完全不同类型的问题:RAG 解决的是’LLM 不知道’的问题——知识注入。典型场景:公司制度问答、产品文档查询。数据流:知识库 → 检索 → LLM 上下文 → 生成。成本低,实时更新。Fine-tuning 解决的是’LLM 不会做’的问题——能力注入。典型场景:特定语气写作、特定格式输出(SQL/JSON)。数据流:训练数据 → 微调模型 → 新的模型行为。成本高,需要重新训练。选择标准:大多数场景用 RAG 就够了。Fine-tuning 只在两种场景下考虑:1) 需要特定的输出风格;2) 需要理解领域专用术语。两者也可以组合:Fine-tuning 让模型理解领域术语,RAG 提供最新知识。”
答题要点: 从核心定位、RAG 能力、目标用户三个维度对比。高分回答: “n8n 和 Dify 解决的问题不同:n8n 是通用的工作流自动化工具——把各种 API 和服务连接起来,AI 只是其中一个节点。适用于跨系统自动化、定时任务、数据同步。目标用户是运维和开发人员。与 LLM 集成需要通过 HTTP 请求节点调用 API。Dify 是 AI 专项的 LLM 应用开发平台——内置 RAG、Agent、工作流,专注于 LLM 应用的快速搭建。适用于企业知识库、AI 客服。目标用户包括产品经理和业务人员。两者可以组合:Dify 提供 RAG 和 Agent 能力,n8n 负责把 Dify 接入到更大的自动化工作流中。”
答题要点: 说出 Bi-Encoder 和 Cross-Encoder 的区别,以及两阶段检索架构的设计动机。高分回答: “Reranking 的核心是两阶段检索架构:第一阶段用 Bi-Encoder 粗筛(快但不精确),第二阶段用 Cross-Encoder 精排(慢但精确)。Bi-Encoder 的工作方式:问题和文档分别编码为向量,再计算余弦相似度。速度快(向量可以预计算),但’分别编码’会丢失问题和文档之间的细粒度交互信息。Cross-Encoder 的工作方式:把问题和文档拼接在一起,输入同一个模型计算相关性分数。能捕获更细粒度的语义交互(比如否定词和肯定词的矛盾),但速度慢(每对都要单独计算,无法预计算)。实际架构:向量检索 Top-20(Bi-Encoder,毫秒级)→ Reranker 精排取 Top-3(Cross-Encoder,百毫秒级)。这是一个经典的’召回-精排’两阶段架构。2025 年的前沿方向是 VLM Re-ranking——用多模态大模型(GPT-4o)精排,能同时理解文本和图片的相关性,特别适合多模态 RAG 场景。”
答题要点: 从架构设计、向量数据库选型、质量优化、监控评估四个维度回答。高分回答: “生产级 RAG 的架构设计需要考虑 5 个层面:
  1. 文档层:支持多种格式(PDF、Word、网页、数据库),用 MinerU 或 LlamaParse 解析。关键是处理好表格、图片、代码块等复杂格式——多模态 RAG 需要用 GPT-4V/Qwen-VL 提取图片语义,用 CLIP/SigLIP 做跨模态向量检索。
  2. 切片层:推荐递归切片(chunkSize 500-1500,overlap 10-20%)。Markdown 文档用 MarkdownHeaderTextSplitter 保留结构。
  3. 存储层:小项目用 Chroma,中等项目用 Pinecone,大规模生产用 Milvus 或 Qdrant。需要关键词 + 语义混合检索用 ElasticSearch 或 Easysearch(国产替代,兼容 ES API,内置中文分词,Apache 2.0 协议),需要知识图谱用 Neo4j。
  4. 检索层:混合检索(向量 + BM25,权重 0.6:0.4)+ Reranker 精排。加入查询改写和多路召回。
  5. 评估层:用 RAGAS 框架评估忠实度、相关性、准确性。建立自动化评估流水线,每次优化后回归测试。
此外还需要考虑:增量索引(不是每次全量重建)、文档级权限控制、缓存热门查询、向量数据库不可用时降级为 BM25、行业合规(金融要求法规出处,医疗要求病历脱敏)。”

📚 延伸阅读与引用参考

  • 📖 Harrison Chase - RAG from Scratch (LangChain):LangChain 创始人 Harrison Chase 的 RAG 系列教程,从索引、检索、生成三阶段系统性讲解 RAG 架构设计,强调”检索质量决定最终质量”。 [1]
  • 🔗 RAG 论文原文:Meta AI 在 2020 年发表的 RAG 原始论文,理解检索增强生成的理论基础。 [2]
  • 📖 Lilian Weng - LLM Powered Autonomous Agents:对 LLM Agent 架构的系统梳理,其中讨论了检索、规划、记忆等组件在 RAG 类应用中的作用。 [3]
  • 🔗 LangChain RAG 教程:LangChain 官方的 RAG 实战教程,包含从文档加载到检索生成的完整流程。 [4]
  • 🟢 MTEB Leaderboard:Embedding 模型的权威评测排行榜,选型时的参考标准。 [5]
  • 📖 Chip Huyen - AI Engineering (2025):系统性梳理 RAG 架构的工程化落地方法论,涵盖 Naive RAG、Advanced RAG、Agentic RAG 的演进路线。 [6]
  • 🔗 RAGAS 评估框架:RAG 系统的权威评估框架,包含 Faithfulness、Relevancy 等核心指标的定义和使用方法。 [7]
  • 🔗 Milvus 官方文档:大规模向量数据库 Milvus 的官方文档,理解 HNSW 索引、混合检索等底层原理。 [8]
  • 🔗 n8n 官方文档:开源工作流自动化工具 n8n 的官方文档,了解节点、连接、触发器的核心概念。 [9]
  • 🔗 Dify 官方文档:开源 LLM 应用开发平台 Dify 的官方文档,了解知识库、应用、工作流的核心能力。 [10]
  • 🔗 Neo4j Vector Index 文档:Neo4j 原生向量索引的官方文档,理解图数据库如何支持向量检索和 Graph RAG。 [11]
  • 🔗 ElasticSearch kNN Search 文档:ElasticSearch 向量检索和混合检索(RRF)的官方文档,理解 BM25 + 向量融合的实现原理。 [12]
  • 🔗 Easysearch 官方文档(极限科技 INFINI Labs):ElasticSearch 的国产替代方案,兼容 ES API,内置中文分词和向量检索,Apache 2.0 开源协议,适合国内企业合规场景。 [21]
  • 📖 Microsoft GraphRAG 论文:微软 2024 年发表的 GraphRAG 论文,提出基于知识图谱的 RAG 架构,解决传统 RAG 无法进行多跳推理的问题。 [13]
  • 🔗 MinerU (OpenDataLab):开源 PDF 解析工具,支持版面分析、OCR、公式识别、表格提取,保留文档结构,是多模态 RAG 的核心组件。 [14]
  • 🔗 LlamaParse (LlamaIndex):LlamaIndex 的托管文档解析服务,深度集成 LlamaIndex 生态,支持复杂 PDF/PPT 解析。 [15]
  • 🔗 Docling (IBM Research):IBM 开源的文档转换库,支持 90+ 文件格式,提供文档级理解和多格式导出。 [16]
  • 📖 OpenAI CLIP 论文:OpenAI 发表的对比语言-图像预训练模型,开创了图文对比学习范式,是多模态 RAG 嵌入层的基础。 [17]
  • 📖 Anthropic Engineering Blog:Anthropic 的工程博客,讨论 MCP 等底层标准与 RAG 相关实践。 [20]