[ PROMPT_NODE_22216 ]
llamaindex
[ SKILL_DOCUMENTATION ]
# LlamaIndex - 用于 LLM 应用的数据框架
将 LLM 与您的数据连接的领先框架。
## 何时使用 LlamaIndex
**在以下情况使用 LlamaIndex:**
- 构建 RAG(检索增强生成)应用
- 需要针对私有数据进行文档问答
- 从多个来源摄入数据(300+ 连接器)
- 为 LLM 创建知识库
- 构建企业数据聊天机器人
- 需要从文档中提取结构化数据
**指标**:
- **45,100+ GitHub stars**
- **23,000+ 仓库** 使用 LlamaIndex
- **300+ 数据连接器** (LlamaHub)
- **1,715+ 贡献者**
- **v0.14.7** (稳定版)
**可替代方案**:
- **LangChain**:更通用,更适合智能体
- **Haystack**:生产级搜索工作流
- **txtai**:轻量级语义搜索
- **Chroma**:仅需向量存储
## 快速开始
### 安装
bash
# 入门包(推荐)
pip install llama-index
# 或最小核心 + 特定集成
pip install llama-index-core
pip install llama-index-llms-openai
pip install llama-index-embeddings-openai
### 5 行 RAG 示例
python
from llama_index.core import VectorStoreIndex, SimpleDirectoryReader
# 加载文档
documents = SimpleDirectoryReader("data").load_data()
# 创建索引
index = VectorStoreIndex.from_documents(documents)
# 查询
query_engine = index.as_query_engine()
response = query_engine.query("作者成长过程中做了什么?")
print(response)
## 核心概念
### 1. 数据连接器 - 加载文档
python
from llama_index.core import SimpleDirectoryReader, Document
from llama_index.readers.web import SimpleWebPageReader
from llama_index.readers.github import GithubRepositoryReader
# 文件目录
documents = SimpleDirectoryReader("./data").load_data()
# 网页
reader = SimpleWebPageReader()
documents = reader.load_data(["https://example.com"])
# GitHub 仓库
reader = GithubRepositoryReader(owner="user", repo="repo")
documents = reader.load_data(branch="main")
# 手动创建文档
doc = Document(
text="这是文档内容",
metadata={"source": "manual", "date": "2025-01-01"}
)
### 2. 索引 - 结构化数据
python
from llama_index.core import VectorStoreIndex, ListIndex, TreeIndex
# 向量索引(最常用 - 语义搜索)
vector_index = VectorStoreIndex.from_documents(documents)
# 列表索引(顺序扫描)
list_index = ListIndex.from_documents(documents)
# 树索引(分层汇总)