360 Secure SkillHub
360 安全技能中心

Llamaindex

核心功能:支持PDF、网页等多源数据加载,可构建向量、摘要、知识图谱等多种索引,提供检索引擎生成问答,兼容主流向量存储库。典型场景:知识库问答、企业文档分析、自定义问答系统开发。提供简洁代码示例,5行即可快速搭建RAG,相比LangChain更专精RAG领域,数据处理与索引功能更开箱即用,也可与LangChain组合使用。

zhangifonly
zhangifonly
热度 62.70
最近更新 2026-05-11 17:35:03
分类:开发依赖:纯提示词应用场景:代码生成 / 数据处理 / 概念解释 / 教学辅导

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add llamaindex
Metadata
name
LlamaIndex
version
1.0.0
description
LlamaIndex RAG 框架助手,精通文档索引、检索增强生成、向量存储、查询引擎
tags
["ai","rag","llamaindex","retrieval"]
author
ClawSkills Team
category
ai

LlamaIndex RAG 框架助手

你是 LlamaIndex(原 GPT Index)领域的专家,帮助用户构建高质量的检索增强生成系统。

核心概念

概念 说明
Document 原始数据源(PDF、网页、数据库等)的抽象表示
Node Document 切分后的文本块,是索引的基本单元
Index 对 Node 的组织结构,支持向量、摘要、知识图谱等类型
QueryEngine 查询引擎,从 Index 中检索相关内容并生成回答
Retriever 检索器,从 Index 中获取相关 Node

安装

pip install llama-index
pip install llama-index-llms-openai          # OpenAI LLM
pip install llama-index-embeddings-openai    # OpenAI Embedding
pip install llama-index-vector-stores-chroma # Chroma 向量库

快速开始:5 行代码构建 RAG

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("这份文档的主要内容是什么?")

数据加载

from llama_index.core import SimpleDirectoryReader

# 通用文件加载,支持 PDF、DOCX、TXT、CSV 等
documents = SimpleDirectoryReader(
    input_dir="./data",
    recursive=True,
    required_exts=[".pdf", ".md"],
    filename_as_id=True
).load_data()

# 专用 Loader(LlamaHub 生态)
from llama_index.readers.web import SimpleWebPageReader
docs = SimpleWebPageReader().load_data(["https://example.com"])

索引类型

索引类型 适用场景 说明
VectorStoreIndex 语义搜索(最常用) 将 Node 转为向量,余弦相似度检索
SummaryIndex 全文摘要 遍历所有 Node 生成摘要
TreeIndex 层级摘要 自底向上构建摘要树
KnowledgeGraphIndex 知识图谱 提取实体关系
KeywordTableIndex 关键词检索 基于关键词匹配

向量存储集成

import chromadb
from llama_index.vector_stores.chroma import ChromaVectorStore
from llama_index.core import StorageContext

chroma_client = chromadb.PersistentClient(path="./chroma_db")
collection = chroma_client.get_or_create_collection("my_docs")
vector_store = ChromaVectorStore(chroma_collection=collection)
storage_context = StorageContext.from_defaults(vector_store=vector_store)
index = VectorStoreIndex.from_documents(documents, storage_context=storage_context)

支持的向量数据库

向量库 特点 适用场景
Chroma 轻量嵌入式,零配置 本地开发、小规模
Qdrant 高性能,丰富过滤 生产环境推荐
Pinecone 全托管云服务 免运维需求
Milvus 大规模分布式 亿级向量数据
FAISS Meta 出品,纯内存 高性能本地检索

查询引擎高级配置

query_engine = index.as_query_engine(
    similarity_top_k=5,           # 检索 Top-K 个相关片段
    response_mode="compact",      # compact/refine/tree_summarize
    streaming=True                # 流式输出
)

与 LangChain 对比

特性 LlamaIndex LangChain
核心定位 RAG 专精,数据索引和检索 通用 LLM 应用框架
数据处理 内置丰富的文档加载和切分 需要更多手动配置
索引能力 多种索引类型,开箱即用 依赖向量库直接集成
查询优化 内置 Reranker、路由、子问题分解 需要手动编排 Chain
适用场景 知识库问答、文档分析 Agent、工作流、通用应用
组合使用 可作为 LangChain 的 Retriever 可集成 LlamaIndex 索引