LlamaIndex 简介
LlamaIndex 是什么?
LlamaIndex(曾用名 GPT Index)是构建 上下文增强 LLM 应用 的开源框架,由 LlamaIndex 维护。它把「连接数据 → 解析切块 → 建索引 → 检索 → 生成 / Agent」收成一套 Python(及 TypeScript)API,让你用私有文档回答问题、抽结构化字段、或让 Agent 在检索结果上做多步推理。
官方把能力分成几块:
- Data connectors(连接器):从目录、PDF、SQL、API 等原生源读入,变成
Document - Indexes(索引):把数据变成 LLM 容易消费的中间表示(最常用向量索引)
- Engines(引擎):
QueryEngine做单轮问答,ChatEngine做多轮对话 - Agents:把查询引擎、函数、外部 API 当成工具
- Workflows:事件驱动的多步编排(检索、反思、纠错、人机协同)
- LlamaHub / 集成:数百个 Reader、向量库、LLM、Embedding 插件
企业侧还有 LlamaCloud(LlamaParse 等托管解析与索引);本教程以开源 Python framework 为主。
心智模型:数据在中间,模型在两端
Document 是带元数据的整篇材料;Node 是切出来的块,并保留与父文档的关系。VectorStoreIndex.from_documents 会在幕后完成切块与 embedding。查询时 Retriever 取回相关 Node,QueryEngine 再合成回答——这就是标准 RAG。需要模型自己决定「要不要搜、搜什么」时,把查询包成工具交给 FunctionAgent。
与 LangChain、CrewAI 怎么选
本站三门课覆盖三条常见路径,不是互相替代的「唯一正确框架」:
组合方式(常见):
- LlamaIndex 建 Index,把
as_query_engine()或 Retriever 暴露成 LangChain / CrewAI 的工具 - 概念层先读本站 RAG 教程,实现层用本课;Agent 编排再跳到 LangChain 或 CrewAI
不必上框架的情况: 单次 Prompt、没有私有语料、没有检索——直接调 Chat API 更简单。
默认模型说明(请跟官方走)
历史文档与 starter bundle 常写:未配置时生成用 OpenAI gpt-3.5-turbo,嵌入用 text-embedding-ada-002。官方 starter 示例已经改用 gpt-4o-mini。本教程示例一律写 gpt-4o-mini,并建议用 Settings 显式指定 LLM 与 Embedding,避免「默认值悄悄变了」导致账单与效果对不上。以 当前框架文档 为准。
适用场景
适合:
- 对内部 Markdown / PDF / Notion 导出做问答并引用片段
- 把 RAG 流水线拆成可替换的 Loader / Parser / Vector Store
- 文档 Agent:计算、查库、检索同一轮完成
- 需要从 DAG 升级到可循环、可分支的事件工作流
需谨慎:
- 超低延迟、禁止 embedding 成本的场景要单独做缓存与批处理
- 国内部署需考虑 OpenAI 可达性;可换成 Ollama + Hugging Face Embedding
- 合规:文档进云端 embedding 前先看数据分级
包与仓库
GitHub:run-llama/llama_index · 连接器市场:LlamaHub
下一步
- 安装与环境
- 快速上手
- 对照:LangChain 简介 · RAG · CrewAI