LlamaIndex 快速开始
LlamaIndex(原名 GPT Index)是一个专门为 数据密集型 LLM 应用 设计的框架。它的核心强项是:如何将外部数据(PDF, 数据库, API 等)高效地连接到 LLM。
1. 核心概念:数据连接器 (LlamaHub)
LlamaIndex 将数据处理分为三个阶段:
- Loading (加载): 将数据读入系统。
- Indexing (索引): 将数据转化为可搜索的结构。
- Querying (查询): 输入问题,检索知识并生成答案。
2. 安装
pip install llama-index
3. 5 行代码实现 RAG (检索增强生成)
假设你有一个名为 data 的文件夹,里面存着一些文本文件或 PDF:
from llama_index.core import VectorStoreIndex, SimpleDirectoryReader
# 1. 加载数据
documents = SimpleDirectoryReader("data").load_data()
# 2. 创建索引 (默认会调用 OpenAI 接口生成向量)
index = VectorStoreIndex.from_documents(documents)
# 3. 创建查询引擎
query_engine = index.as_query_engine()
# 4. 提问
response = query_engine.query("文件里提到了哪些关键点?")
print(response)
4. 为什么选择 LlamaIndex 而不是 LangChain?
| 特性 | LangChain | LlamaIndex |
|---|---|---|
| 侧重点 | 通用框架、Chain、Agent | 数据索引、检索、集成 |
| 上手难度 | 较复杂(组件极多) | 极简单(针对数据检索优化) |
| 数据源支持 | 丰富 | 极度丰富 (LlamaHub) |
| 检索策略 | 基础检索 | 极其先进的检索/排序策略 |
5. LlamaHub: 你的数据仓库
LlamaHub 是 LlamaIndex 的插件市场。无论你的数据在 Notion、Google Drive、Slack 还是 SQL 数据库中,你都能在这里找到现成的 Reader(读取器)。
# 使用 LlamaHub 上的 Notion Reader
from llama_index.readers.notion import NotionPageReader
reader = NotionPageReader(integration_token="your_token")
documents = reader.load_data(page_ids=["page_id_1"])
下一步:深入了解 LlamaIndex 的灵魂——数据索引。