关键要点
- MIT协议——核心Python框架免费、许可宽松,并持续获得积极维护
- 核心构建模块:Documents/Nodes输入到一个Index(通常是VectorStoreIndex),Retriever取出相关节点,Query Engine回答问题
- 免费安装并自行托管:pip install llama-index,自带LLM提供方与向量存储
- LlamaCloud是一个独立的付费按用量计费平台,用于自动化文档解析(LlamaParse)与提取——使用开源框架并不需要它
- 代码优先:没有可视化画布——这是一个需要导入并编写代码的Python库
- TypeScript SDK即LlamaIndex.TS已于2026年4月30日被归档并标记为已弃用——Python是目前持续维护的实现
- 最适合:希望对索引和检索逻辑拥有编程控制权、构建生产级RAG系统的开发者
📍 简单一句话
LlamaIndex是一个免费、开源(MIT协议)的Python框架,通过索引、检索和查询引擎将大语言模型连接到你自己的数据——面向愿意编写代码的开发者,而非无代码可视化工具的用户。
💬 简单来说
不同于在画布上拖拽方块,LlamaIndex提供的是Python类:加载文档、构建索引、然后查询它——每一步都是可版本控制、可测试、可自定义的代码。
📌Note: 如果你想通过连接方块而非编写Python代码来搭建RAG管道,LlamaIndex并不适合——请改用Flowise、Langflow或Dify等可视化构建器。
LlamaIndex是什么?
LlamaIndex(github.com/run-llama/llama_index)是一个开源、MIT协议的Python框架,用于构建将大语言模型连接到你自己数据的应用。它首先是一个数据框架:整个库围绕摄取文档、为检索构建结构、并回答与之相关的问题而设计——而不是围绕通用的智能体编排。
- 数据连接器:面向本地文件的SimpleDirectoryReader,以及LlamaHub上300多个社区与官方集成,覆盖PDF、API、SQL数据库等来源
- 索引:为LLM检索组织已摄取数据的结构——最常见的是基于嵌入的语义搜索VectorStoreIndex
- 检索器(Retriever):从索引中取出与查询相关的节点
- 查询引擎(Query Engine):结合检索器与一次LLM调用来回答关于你数据的问题——这是检索增强生成(RAG)的核心循环
- 工作流(Workflow):事件驱动系统,用于编排超出单次查询的多步骤智能体与管道
- 核心Python代码仓库获得超过50,000个GitHub星标
LlamaIndex的核心构建模块是什么?
LlamaIndex将一个RAG管道组织为五个构建模块:Document/Node、Index、Retriever、Query Engine和Workflow。 每一个都对应把原始文件转变为能够回答相关问题的LLM过程中的一个步骤。
Document / Node
- 作用:
- 原始数据,以及由其切分出的结构化片段
Index
- 作用:
- 为检索组织节点(例如VectorStoreIndex)
Retriever
- 作用:
- 取出与查询相关的节点
Query Engine
- 作用:
- 结合检索与LLM调用来回答问题
Workflow
- 作用:
- 事件驱动地编排多步骤智能体
LlamaIndex与LangChain及可视化构建器有何不同?
LlamaIndex首先是一个数据框架,LangChain是一个通用编排框架,而Flowise、Langflow、Dify等工具是可视化的无代码构建器——三者即使在RAG上有交集,解决的也是不同的问题。 在它们之间做选择,取决于你优先考虑什么,而不是哪个「更好」。
LlamaIndex是免费的吗?还是需要为LlamaCloud付费?
LlamaIndex的核心框架基于MIT协议永久免费——你可以用自己的LLM和向量数据库自行托管,无需向LlamaIndex支付任何费用。 LlamaCloud是一个独立的托管平台,用于自动化文档解析与提取(LlamaParse、LlamaExtract),在此基础上按用量收取积分费用:每1,000积分1.25美元,解析每页耗费1到45积分,提取每页耗费5到60积分,具体取决于所选层级。
- 开源框架(pip install llama-index):免费、MIT协议、自行托管——无需账户或积分
- LlamaCloud / LlamaParse:面向排版复杂的PDF、扫描文档、表格和图表的付费、按积分计费的文档解析
- 使用开源框架构建或运行RAG管道不需要LlamaCloud账户——SimpleDirectoryReader等免费加载器可覆盖纯文本、Markdown和标准PDF
- 当文档复杂到足以让免费解析器产出低质量分块时(如多栏排版、内嵌表格、手写文字),LlamaCloud才变得有意义
如何用LlamaIndex搭建一个最小的RAG管道?
一个可运行的LlamaIndex RAG管道只需五行Python代码:加载文档、构建索引、创建查询引擎并进行查询。 本示例使用默认的内存向量存储和与OpenAI兼容的LLM;若要改用本地提供方(例如Ollama),需安装对应的集成包,并在构建索引前设置Settings.llm。
- 1安装框架:pip install llama-index(若要使用本地模型而非托管API,需额外安装如llama-index-llms-ollama之类的提供方软件包)。
- 2设置你的LLM提供方凭证——例如export OPENAI_API_KEY=...——或在下一步之前将Settings.llm配置为指向本地提供方。
- 3将源文件放入一个文件夹(例如data/)并加载:documents = SimpleDirectoryReader("data").load_data()。
- 4基于已加载的文档构建索引:index = VectorStoreIndex.from_documents(documents)。这一步会将每个文档切分为Node并进行嵌入。
- 5基于索引创建查询引擎:query_engine = index.as_query_engine()。
- 6查询你的数据并打印答案:response = query_engine.query("在这里输入你的问题"); print(response)。
from llama_index.core import VectorStoreIndex, SimpleDirectoryReader
# Load documents from a folder
documents = SimpleDirectoryReader("data").load_data()
# Build an index from documents
index = VectorStoreIndex.from_documents(documents)
# Create a query engine
query_engine = index.as_query_engine()
# Query your data
response = query_engine.query("Your question here")
print(response)这个索引是否每次运行脚本都会重新构建?
默认情况下会。若用途超出一次性脚本,请在构建索引后调用index.storage_context.persist(),并在后续运行中使用load_index_from_storage()将其重新加载,而不是每次都重新嵌入全部文档。
我可以使用本地LLM和本地向量存储代替OpenAI吗?
可以。安装对应的集成包(例如用于本地模型的llama-index-llms-ollama,或llama-index-vector-stores-chroma之类的向量存储包),然后设置Settings.llm和Settings.embed_model,或将向量存储传入VectorStoreIndex.from_documents(),之后运行相同的查询引擎代码即可。
LlamaIndex的TypeScript版本还在维护吗?
不再维护。LlamaIndex.TS(GitHub上的run-llama/LlamaIndexTS)已被维护者归档,并于2026年4月30日标记为已弃用。仓库自身的公告写明该项目「is deprecated and no longer maintained」(已弃用且不再维护),并引导用户转向LlamaCloud/LlamaParse文档,而非TypeScript SDK。
- Python框架(llama_index)是目前持续维护的实现——本文介绍的正是这一版本
- 基于LlamaIndex.TS构建的现有TypeScript项目仍可继续运行,但不会再获得更新、错误修复或安全补丁
- 对于新的TypeScript或JavaScript项目,建议评估持续维护、MIT协议的LangChain.js,而不是在一个已归档的库上开始
谁适合使用LlamaIndex?
LlamaIndex在RAG工具生态中占据一个特定位置:面向想要对索引和检索拥有代码级控制权的开发者,而非追求通往可视化原型的最快路径的用户。
LlamaIndex与替代方案对比
正确的选择取决于你想要代码级控制(LlamaIndex、LangChain、Haystack)还是可视化画布(Flowise及类似工具)。
| 工具 | 交互方式 | 许可协议 | 最适合 | 维护状态 |
|---|---|---|---|---|
| LlamaIndex | Python代码 | MIT | 数据密集型定制RAG管道 | 活跃 |
| LangChain | Python/JS代码 | MIT | 通用LLM编排 | 活跃 |
| Haystack | Python代码 | Apache 2.0 | 企业级搜索+RAG管道 | 活跃 |
| Flowise | 可视化,拖拽式 | Apache 2.0 | 无代码原型(已无人维护) | 已归档/无 |
评估LlamaIndex时的常见误区
这些误区源于把LlamaIndex当成一种它实际上并不是的工具类别来看待。
常见问题
LlamaIndex可以免费使用吗?
可以。核心Python框架基于MIT协议开源且免费。LlamaCloud是一个独立的托管平台,用于文档解析与提取,按用量收取积分费用(每1,000积分1.25美元),但它是可选的,构建或运行RAG管道并不需要它。
LlamaIndex采用哪种许可协议?
MIT协议,适用于Python框架(llama_index),以及在其被维护期间的TypeScript SDK(LlamaIndex.TS)。MIT协议允许商业使用、修改和再分发。
LlamaIndex与LangChain有什么区别?
LlamaIndex是一个专门围绕索引与检索构建的数据框架,具有Document、Node、Index、Retriever和Query Engine模型。LangChain是一个涵盖链、智能体和工具调用的通用编排框架,检索只是众多能力之一。两者都基于MIT协议、以Python为先,并持续获得积极维护;许多生产系统会将两者结合使用。
LlamaIndex是可视化无代码构建器吗?
不是。LlamaIndex是一个需要导入并编写代码的Python(此前也包括TypeScript)库——没有拖拽式画布。若需要针对RAG或智能体管道的可视化无代码方案,请评估Flowise、Langflow或Dify。
LlamaCloud是什么?我需要它吗?
LlamaCloud是同一家公司提供的一个独立的付费按用量计费平台,为复杂文档提供LlamaParse(文档解析)和LlamaExtract(结构化提取)。使用开源LlamaIndex框架并不需要它——只有当免费文档加载器在复杂PDF、扫描页面或密集表格上表现不佳时,LlamaCloud才会变得有用。
LlamaIndex的TypeScript版本还在维护吗?
不再维护。LlamaIndex.TS已被维护者归档,并于2026年4月30日标记为已弃用。Python框架仍是目前持续维护的实现。对于新的TypeScript/JavaScript项目,请评估LangChain.js。
LlamaIndex中的Query Engine是什么?
Query Engine将一个Retriever与一次LLM调用组合为单一方法调用。调用index.as_query_engine().query("你的问题")会从索引中检索相关节点,构建包含这些节点的提示词,并返回模型的答案——这就是检索增强生成(RAG)的核心循环。
LlamaIndex支持多少种集成?
LlamaHub托管了300多个社区与官方集成包,涵盖数据加载器(PDF、API、SQL数据库等)、LLM提供方和向量存储,此外还有面向本地文件的内置SimpleDirectoryReader。
我可以用LlamaIndex搭配本地LLM而非云端API吗?
可以。安装对应的提供方集成包(例如用于Ollama的llama-index-llms-ollama),然后在构建索引前通过Settings.llm将其设为默认——此后Document/Index/Retriever/Query Engine管道的其余部分无论使用哪个LLM提供方都以相同方式运作。
使用LlamaIndex需要编写Python代码吗?
是的,就目前持续维护的版本而言确实需要。LlamaIndex是一个没有可视化界面的代码优先框架。希望采用无代码方案的非开发者或团队,应改为评估Flowise、Langflow或Dify等可视化构建器。
