Llama-Index(原名GPT Index)是一个专为大语言模型(LLM)设计的**检索增强生成(RAG)框架*

Llama-Index(原名GPT Index)是一个专为大语言模型(LLM)设计的检索增强生成(RAG)框架,旨在高效连接私有/结构化/非结构化数据与LLM,提升其在特定领域问答、文档分析等任务中的准确性与可解释性。

核心特性包括:

  • 模块化数据连接器(Data Connectors):支持PDF、Word、Markdown、CSV、数据库(SQL/NoSQL)、API、Web页面等多种数据源。
  • 灵活的数据索引(Indexing):提供多种索引类型,如VectorStoreIndex(基于向量相似性检索)、SummaryIndex(文档级摘要索引)、TreeIndex(层次化摘要树)、KeywordTableIndex(关键词倒排表)及复合索引(如MultiVectorIndex支持多粒度嵌入)。
  • 高级检索(Query Engine):支持子问题分解(Sub-question Decomposition)、递归检索(Recursive Retriever)、HyDE(Hypothetical Document Embeddings)、自定义重排序(Reranking)等策略。
  • 可扩展的查询管道(Query Pipeline):通过QueryEngineToolRouterQueryEngine等实现多数据源路由与工具调用集成。
  • 与主流LLM生态深度集成:原生支持OpenAI、Anthropic、Ollama、Llama.cpp、HuggingFace Transformers等后端,并兼容LangChain生态。
  • 评估与可观测性:提供Evaluation模块(如CorrectnessEvaluatorFaithfulnessEvaluator)和CallbackManager用于追踪token消耗、检索过程、延迟等。

典型使用流程:

  1. 加载文档 → 2. 分块(NodeParser)→ 3. 嵌入(Embedding Model)→ 4. 构建索引 → 5. 查询引擎配置 → 6. 执行查询(含上下文注入与LLM生成)

示例代码(简化版):

fromllama_index.coreimportVectorStoreIndex,SimpleDirectoryReaderfromllama_index.llms.ollamaimportOllama# 加载文档documents=SimpleDirectoryReader("data/").load_data()# 构建向量索引(默认使用sentence-transformers/all-MiniLM-L6-v2)index=VectorStoreIndex.from_documents(documents)# 配置本地LLM(如Ollama运行的llama3)llm=Ollama(model="llama3",request_timeout=300)index.set_llm(llm)# 查询query_engine=index.as_query_engine()response=query_engine.query("本文档主要讲什么?")print(response)

注意:Llama-Index v0.10+ 已全面重构为llama-index-core+llama-index-*插件体系(如llama-index-llms-ollama,llama-index-embeddings-huggingface),推荐使用最新稳定版(≥0.10.48)以获得最佳性能与维护支持。

Llama-Index 中VectorStoreIndexSummaryIndex是两种语义建模逻辑和检索机制截然不同的索引类型,其核心区别体现在数据表示粒度、检索方式、适用任务及性能特征上:

维度VectorStoreIndexSummaryIndex
基本原理将每个文本块(Node)独立嵌入为向量,构建向量数据库(如FAISS、Chroma),通过向量相似性检索(cosine similarity)召回最相关片段整篇文档(或大段落)生成一个全局摘要(summary),并将该摘要向量化;检索时仅匹配文档级摘要向量,返回整篇文档或其摘要
检索粒度细粒度(chunk-level):可精准定位到具体段落、句子甚至代码行粗粒度(document-level):只能返回整个文档或其摘要,无法定位内部细节
召回结果返回若干相关Node(带原始文本内容),供LLM上下文注入返回若干Document对象(含其摘要 + 原始全文/元数据),需后续处理提取细节
适用场景✅ 需要精确答案定位的任务:如技术文档问答、合同条款查询、论文方法检索
✅ 支持多跳推理、跨文档片段聚合
✅ RAG标准范式首选
✅ 快速文档筛选/路由:如“找出所有讨论‘碳中和政策’的报告”
✅ 元数据驱动的初筛(配合MetadataFilter
✅ 摘要先行、再深入阅读的两阶段工作流
优势高精度、高灵活性、天然支持重排序与混合检索(keyword+vector)构建快、内存占用低(摘要短)、适合海量文档快速过滤、语义泛化性强(摘要更鲁棒)
局限向量库随chunk数线性增长;长文档易碎片化导致语义割裂;对嵌入模型质量敏感丢失细节信息;无法回答需局部上下文的问题(如“图3说明了什么?”);摘要质量直接影响检索效果

📌典型组合用法(进阶实践)
常将二者协同使用——先用SummaryIndex进行文档级粗筛(如“哪些PDF涉及合规审计?”),再对筛选出的文档构建VectorStoreIndex进行段落级精检,实现效率与精度的平衡(即“两级检索架构”)。