开发框架教程(2):LlamaIndex 入门 —— 专注数据的 AI 框架
很多新手会问:"我已经学了 LangChain,还需要学 LlamaIndex 吗?它们有什么区别?"
5分钟
2025-12-26
框架开发SDK开发框架教程(2):LlamaIndex
开发框架教程(2):LlamaIndex 入门 —— 专注数据的 AI 框架
1. LlamaIndex vs LangChain:既生瑜,何生亮?
很多新手会问:"我已经学了 LangChain,还需要学 LlamaIndex 吗?它们有什么区别?"
- LangChain:是通用的。它什么都想做,像一个瑞士军刀。
- LlamaIndex:是专注的。它专注于 Data (数据)。
如果你的核心需求是 RAG(知识库问答),需要处理海量的 PDF、Excel、Notion 文档,LlamaIndex 通常比 LangChain 更好用,检索精度更高。
形象比喻:
- LangChain 像是一套乐高积木,你可以搭房子、搭车子,很灵活,但搭个复杂的房子很累。
- LlamaIndex 像是一台强力吸尘器,专门用来把各种乱七八糟的数据"吸"进来,整理好,喂给大模型吃。
2. 核心功能:RAG 的神器
LlamaIndex 最核心的本事就是索引 (Indexing) 和 查询 (Querying)。
1. Data Connectors (数据加载器)
LlamaIndex 有个叫 LlamaHub 的社区,里面有几百个数据加载器。
不管是 Youtube 视频字幕、Notion 笔记、Slack 聊天记录、还是 SQL 数据库,经常是一行代码就能读进来。
2. Nodes & Chunks (节点与切片)
它可以非常智能地切分文档。不只是按字数切,它可以按"句子"、"段落"甚至"Markdown 结构"来切,保证切出来的每块肉(数据)都有营养。
3. Query Engines (查询引擎)
这是它的杀手锏。它不仅有简单的"找相似",还有:
- Sub-Question Query Engine:把复杂问题拆成几个小问题查。
- Router Query Engine:自动判断该去查 PDF 还是查 SQL。
3. 五行代码写一个 RAG
用 LlamaIndex 写 RAG(检索增强生成)简直快得离谱。
# pip install llama-index
import os
from llama_index.core import VectorStoreIndex, SimpleDirectoryReader
# 1. 读取数据 (读取 data 目录下所有文件)
documents = SimpleDirectoryReader("data").load_data()
# 2. 建立索引 (自动切分、Embedding、存向量库 一气呵成)
index = VectorStoreIndex.from_documents(documents)
# 3. 创建查询引擎
query_engine = index.as_query_engine()
# 4. 提问
response = query_engine.query("这篇文章的作者是谁?")
print(response)
4. 什么时候选 LlamaIndex?
- 选 LangChain:当你需要开发复杂的 Agent,控制流程,或者不仅仅是做问答(比如要做自动化操作)时。
- 选 LlamaIndex:当你的主要任务就是处理私有数据,做文档问答、企业知识库时。它的检索效果通常默认就很好,不需要太多调优。