LlamaIndex 详细解析· 数据连接与 RAG 引擎(喂知识给 AI)
让 LLM 拥有外部知识,问答更准确。

LlamaIndex 就像一个超级图书管理员,帮你把各种各样的数据整理好,在你需要时快速找出最相关的内容,再交给 LLM 生成准确的答案。
1. LlamaIndex 是什么?
LlamaIndex(原名 GPT Index)是一个用于构建数据驱动型 LLM 应用的框架。 核心目标:连接各种数据源,构建索引,并提供强大的检索与生成能力。
2. 核心流程(RAG 流程)
3. 核心模块(Code Map)
支持多种数据源(文件、网页、数据库等)
将文档切分为语义相似的节点
多种索引结构组织和存储节点
根据查询从索引中检索相关文本
整合检索与 LLM 生成最终答案
将文本转换为向量表示
存储索引、文档、向量等数据
日志、调试、事件处理等
4. 数据加载(Readers 支持的数据源)
5. 索引结构(Indexes)
基于向量相似度检索(最常用)
构建层次结构,适合摘要类查询
顺序列表,结构简单直观
基于关键词匹配检索
关系图谱,复杂知识检索
6. 检索与查询(Retrieval)
返回最相关的 K 个节点
返回相似度高于阈值的节点
向量检索 + 关键词检索
使用重排模型优化结果
压缩上下文,保留关键信息
7. 查询引擎(Query Engine)
基础问答生成
子问题分解
路由器多策略
对话模式,支持多轮对话
自定义引擎,灵活扩展
8. 核心特性
- 统一接口:支持多种数据源和 LLM
- 模块化设计:可组合的组件,易于扩展
- 高效索引:多种索引结构,优化检索效果
- RAG 优化:检索增强生成,减少幻觉
- 生产就绪:支持并发、批处理、缓存等
- 生态丰富:集成主流向量数据库和工具
9. 代码示例(快速上手)
from llama_index.core import SimpleDirectoryReader, VectorStoreIndex
from llama_index.core.query_engine import RetrieverQueryEngine
# 1. 加载数据
reader = SimpleDirectoryReader("./data")
documents = reader.load_data()
# 2. 构建索引
index = VectorStoreIndex.from_documents(documents)
# 3. 创建查询引擎
query_engine = index.as_query_engine(similarity_top_k=3)
# 4. 查询
response = query_engine.query("LlamaIndex 是什么?")
print(response)10. 真实案例 & 开源项目
官方核心仓库(Python),含 Data Connectors、Indices、Retrievers、Query Engine 等模块全部源码。
官方 TypeScript 版,面向 Next.js / Vercel Edge / Cloudflare 的 RAG 引擎。
一行命令脚手架:Next.js + LlamaIndex 全栈 RAG 应用,官方最佳实践模板。
官方的复杂文档解析服务(PDF、表格、图片 OCR),可直接接入 LlamaIndex 管道。
100% 本地、离线的私有文档问答系统,典型的 LlamaIndex 企业私有化 RAG 案例。
Concepts → Indexing → Querying → Evaluation 全链路文档,含大量可运行 Notebook。
建议路径:先用 create-llama 跑通最小 RAG → 读 PrivateGPT 学习本地化落地 → 深入 LlamaParse 解决真实文档解析问题。