LlamaIndex 快速开始
这页的目标很直接:先让你把第一条 LlamaIndex 检索链路跑通。别一上来就做多数据源、重排、路由和评估体系,那些都该放在第二阶段。
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 的灵魂——数据索引。