【LangChain专栏】基于RAG架构的开发

文章目录

  • [一、背景:为什么需要 RAG?](#一、背景:为什么需要 RAG?)
      • [1. 大模型知识冻结](#1. 大模型知识冻结)
      • [2. 大模型幻觉问题](#2. 大模型幻觉问题)
  • [二、什么是 RAG?](#二、什么是 RAG?)
    • [RAG 开发中的核心难点](#RAG 开发中的核心难点)
      • [RAG 中大模型的三个关键使用位置](#RAG 中大模型的三个关键使用位置)

一、背景:为什么需要 RAG?

随着大模型(LLM)在各类应用中的普及,人们逐渐发现,仅依赖模型本身并不能满足真实业务需求,主要存在两个问题:

1. 大模型知识冻结

大模型的知识来自训练阶段的数据,一旦训练完成,模型的知识便被"冻结"。

如果需要模型了解新数据或企业私有知识,重新训练模型成本极高。

2. 大模型幻觉问题

当模型面对不确定或未知领域的问题时,往往会"编造"答案,使回答看起来合理但实际上是错误的。

可以用考试来类比:

当一个学生面对陌生领域的试题时,如果没有资料参考,就只能靠猜测作答,正确率有限。

而 RAG 的作用类似于:

在考试时提供可查询的资料和提示,使学生可以根据资料作答,从而显著提高正确率。

假设原本正确率为 60%,引入 RAG 后可提升至 90% 甚至更高。

因此,RAG 成为构建知识问答系统的重要技术方案。

二、什么是 RAG?

RAG,全称:
Retrieval-Augmented Generation(检索增强生成)

它的核心思想是:

在大模型生成回答之前,先从外部知识库中检索相关信息,再将这些信息作为上下文提供给模型进行回答生成。

整个过程可以理解为:

  1. 检索(Retrieval)
  2. 增强(Augmentation)
  3. 生成(Generation)
    简单来说:
    用户问题 → 检索知识 → 提供给模型 → 模型生成答案


RAG 开发中的核心难点

  1. 文件解析
    企业知识往往来源复杂:
    • PDF
    • Word
    • Excel
    • Markdown
    • HTML
    • 数据库内容
    • 扫描图片
    解析质量直接影响后续检索效果。

  1. 文档切割策略
    如果文本切割不合理:
    • 切太小 → 上下文丢失
    • 切太大 → 检索不精准
    常见策略:
    • 固定长度切割
    • 按段落切割
    • 滑动窗口切割
    • 语义切割

  1. 知识检索

    向量检索阶段需平衡:

    • 召回率

    • 查询速度

    • 向量精度

    通常会结合:

    • 向量检索

    • 关键词检索

    • 混合检索

  2. 知识重排序(Rerank)

    初步检索结果中可能存在"相关但不精确"的内容,需要进一步排序优化。

    Reranker 是用于对检索结果进行二次排序的模型。

    适合使用场景:专业知识问答系统;企业内部知识库;客服系统;医疗/法律问答;技术支持系统

    这些场景对答案的准确性和相关性要求较高。

不适合使用场景

Reranker 会带来:查询时间增加;检索延迟增加;系统成本上升

因此,在以下场景可能不合适:

实时对话系统;高频调用接口;对延迟极为敏感的服务

RAG 中大模型的三个关键使用位置

在一个标准 RAG 流程中,大模型并不只出现一次,而是可能在多个阶段参与:

  1. 向量化阶段

    用于文本向量化的模型:

    Embedding Models

    作用:

    将文本转换为向量,便于相似度搜索。

  2. 重排序阶段

    用于排序优化的模型:

    Rerank Models

    作用:

    判断哪个结果更符合用户问题。

  3. 答案生成阶段

    最终生成答案的模型:

    LLM(大语言模型)

    作用:

    基于检索结果生成自然语言回答。

相关推荐
花千树_01021 小时前
多工具调用只是开始:用 Regnexe 构建真正会反思的 Java Agent
langchain·agent
大模型真好玩5 天前
LangChain DeepAgents 速通指南(九)—— 生产级智能体框架 DeepAgents Code 源码导读
人工智能·langchain·agent
早点睡啊7 天前
精读 LangChain 官方文档(二)Model 篇:把模型调用升级成工程化推理接口
人工智能·langchain
星始流年9 天前
从 Tool 到 Skill——基于 LangChain 的服务端Skill实现
前端·langchain·agent
codedx9 天前
LangChain 和 LangGraph 构建的 Agent 项目模版
后端·langchain·agent
颜酱10 天前
LangGraph 入门指南
langchain
武子康11 天前
调查研究-186 LangChain 和 LangGraph 的区别:从快速构建 Agent 到生产级工作流编排
人工智能·langchain·llm
葫芦和十三13 天前
渐进发现|代码库不是文档库
langchain·agent·ai编程
柒和远方14 天前
LangGraph 深度解析:从增强型 LLM 到生产级 Agent
langchain·llm·agent
沪漂阿龙15 天前
《LangChain》成本、限流、缓存、降级:AI 应用上线要考虑的问题
人工智能·langchain