RAG开源框架 LlamaIndex 介绍

介绍

LlamaIndex(原 GPT Index)是开源的大语言模型(LLM)数据层框架,核心解决 LLM 知识截止、无法直接使用私有数据的痛点,主打 RAG(检索增强生成)与数据驱动的智能体(Agent)应用,让私有数据成为 LLM 的“外部记忆”。它的核心定位是连接私有数据与 LLM 的桥梁,提供完整的数据接入、索引、检索与问答能力,兼顾易用性与高度可定制性。

定位

  • 数据框架而非编排框架:专注数据管道构建(数据加载→分块→索引→检索),区别于 LangChain 侧重“计算逻辑编排(Chains/Agents)”。
  • LLM 的外部知识库:将 PDF、数据库、API 等私有数据转为 LLM 可理解、检索的格式,支持私有数据问答、文档摘要、智能体等场景。
  • 低门槛+高扩展:5 行代码可实现基础 RAG,也支持自定义数据加载、切分、索引、检索、重排全链路。

解决痛点

  • 知识截止:LLM 仅懂训练数据,无法获取最新/私有信息。
  • 上下文窗口限制:超长文档无法直接输入 LLM,需高效检索相关片段。
  • 私有数据安全:避免直接微调 LLM(成本高、数据泄露风险),通过检索注入上下文更安全。

架构

LlamaIndex 采用数据连接层→索引层→引擎层的分层架构,全链路模块化,可灵活组合。

1. 数据连接层(Data Connectors)

  • 功能:统一接入多源数据,转为标准 Document/Node 对象。
  • 支持数据源:100+ 种,包括:
    • 文档:PDF、Word、Markdown、HTML、TXT
    • 结构化数据:SQL(MySQL/PostgreSQL)、CSV、Excel
    • 云端/协作:Notion、Slack、Google Drive、Confluence
    • 其他:API、网页爬虫、JSON、XML
  • 核心组件:
    • Document:完整文档单元,含文本+元数据(来源、日期、标签)。
    • Node:Document 切分后的文本块(如 512 token),是索引/检索的基本单位,含文本、元数据、节点关系。

2. 索引层(Indices,核心)

  • 功能:将 Node 组织为高效检索结构,支持语义、关键词、层级等多模式检索。
  • 主流索引类型:
索引类型 核心原理 适用场景
VectorStoreIndex(最常用) 文本→Embedding 向量→向量库(Chroma/Milvus/FAISS),语义相似度检索 通用 RAG、语义问答、长文档检索
SummaryIndex 文档先摘要,检索摘要后关联原文 超长文档全局摘要、遍历式问答
KeywordTableIndex 关键词倒排索引,精确实体匹配 订单号、ID、专有名词等精准查询
TreeIndex 树形层级索引,自上而下分层检索 深度问答、多文档关联推理
KnowledgeGraphIndex 实体-关系-实体三元组,知识图谱推理 复杂关系问答(如“A 与 B 的合作项目”)
ComposableGraph 多索引组合(向量+关键词+图谱) 复杂问题多路径检索,提升准确率
  • 向量库支持:内置 Chroma(默认轻量)、FAISS、Milvus、Pinecone、Weaviate 等,支持本地/云端部署。

3. 引擎层(Engines)

  • 功能:基于索引提供自然语言交互能力,支持问答、对话、智能体。
  • 核心引擎:
    • Query Engine(查询引擎):RAG 核心,流程:用户问题→检索相关 Node→拼接上下文→LLM 生成答案;支持单轮问答、多文档融合、引用溯源。
    • Chat Engine(对话引擎):多轮对话,支持历史记忆、上下文关联、对话风格定制(如客服/专家)。
    • Agent(智能体):LLM 驱动的工具调用代理,可调用检索、API、代码解释器等工具,完成复杂任务(如“查文档+算数据+生成报告”)。
    • Workflow(工作流):事件驱动的流程编排,比传统 Chains 更灵活,支持多步骤、条件分支、并行执行。

概念

1. Document & Node

  • Document:原始文档的抽象,如一篇 PDF、一个网页,含 text(全文)和 metadata(来源、作者、日期)。
  • Node:Document 经 SentenceSplitter 等切分器拆分后的片段,默认 512 token,含 text(片段内容)、metadata(继承+新增)、relationships(关联节点,如前/后片段)。

2. Embedding(嵌入)

  • 作用:将文本转为高维向量(如 1536 维),语义相近的文本向量距离更近,实现语义检索。
  • 支持模型:OpenAI Embedding、BGE、Sentence-BERT、本地模型(如 all-MiniLM)。

3. Retriever(检索器)

  • 功能:根据用户问题,从索引中返回 Top-K 相关 Node,支持:
    • 语义检索:向量相似度(如 Cosine)。
    • 关键词检索:BM25、TF-IDF。
    • 混合检索:向量+关键词融合,兼顾语义与精准。

4. RAG 流程(核心链路)

  1. 数据加载:用 SimpleDirectoryReader 加载 PDF/Markdown 等。
  2. 文本切分:SentenceSplitter 按 token 切分为 Node。
  3. 向量生成:Node 文本→Embedding 向量。
  4. 索引构建:向量+Node 存入 VectorStoreIndex。
  5. 查询检索:用户问题→向量→检索 Top-K 相关 Node。
  6. 答案生成:Node 文本+问题→Prompt→LLM→答案。

优势

  1. 全链路一体化:从数据加载到答案生成,开箱即用,无需拼接多个工具。
  2. 多索引灵活组合:支持向量、关键词、图谱等索引混合,适配复杂场景。
  3. 高度可定制:数据切分、Embedding、检索、重排、LLM 全环节可自定义,适配企业级需求。
  4. 丰富的生态集成:支持主流 LLM(OpenAI/Anthropic/本地模型)、向量库、数据源,无缝对接现有技术栈。
  5. 生产级能力:支持流式输出、异步处理、可观测性(LangSmith/Weights & Biases)、评估工具,适合部署上线。

典型应用场景

  • 企业知识库问答:内部文档、手册、FAQ 私有问答。
  • 文档摘要与分析:超长 PDF/报告自动摘要、关键信息提取。
  • 智能客服:基于产品文档的多轮对话客服。
  • 研究助手:学术论文、行业报告检索与分析。
  • 数据驱动智能体:自动执行“查数据→算结果→生成报告”等复杂任务。

与 LangChain 的区别

维度 LlamaIndex LangChain
核心定位 数据层框架(索引+检索) 编排框架(Chains/Agents)
优势场景 RAG、私有数据问答、文档检索 多工具编排、复杂智能体、流程自动化
数据处理 内置完善的数据加载/切分/索引 依赖第三方组件,需手动拼接
上手难度 低(5 行代码实现 RAG) 中高(需理解 Chain 逻辑)
生态侧重 向量库、数据源、LLM 集成 工具集成(API/数据库/代码)、流程编排

总结

LlamaIndex 是构建 RAG 与私有数据 LLM 应用的首选框架,以“数据为核心”,提供从数据接入到智能问答的全链路解决方案,兼顾易用性与企业级可定制性。无论快速搭建原型,还是开发生产级应用,LlamaIndex 都是高效、灵活的选择。