是一个专为大语言模型(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、HyDEHypothetical Document Embeddings、自定义重排序Reranking等策略。可扩展的查询管道Query Pipeline通过QueryEngineTool、RouterQueryEngine等实现多数据源路由与工具调用集成。与主流LLM生态深度集成原生支持OpenAI、Anthropic、Ollama、Llama.cpp、HuggingFace Transformers等后端并兼容LangChain生态。评估与可观测性提供Evaluation模块如CorrectnessEvaluator、FaithfulnessEvaluator和CallbackManager用于追踪token消耗、检索过程、延迟等。典型使用流程加载文档 → 2. 分块NodeParser→ 3. 嵌入Embedding Model→ 4. 构建索引 → 5. 查询引擎配置 → 6. 执行查询含上下文注入与LLM生成示例代码简化版fromllama_index.coreimportVectorStoreIndex,SimpleDirectoryReaderfromllama_index.llms.ollamaimportOllama# 加载文档documentsSimpleDirectoryReader(data/).load_data()# 构建向量索引默认使用sentence-transformers/all-MiniLM-L6-v2indexVectorStoreIndex.from_documents(documents)# 配置本地LLM如Ollama运行的llama3llmOllama(modelllama3,request_timeout300)index.set_llm(llm)# 查询query_engineindex.as_query_engine()responsequery_engine.query(本文档主要讲什么)print(response)注意Llama-Index v0.10 已全面重构为llama-index-corellama-index-*插件体系如llama-index-llms-ollama,llama-index-embeddings-huggingface推荐使用最新稳定版≥0.10.48以获得最佳性能与维护支持。Llama-Index 中VectorStoreIndex与SummaryIndex是两种语义建模逻辑和检索机制截然不同的索引类型其核心区别体现在数据表示粒度、检索方式、适用任务及性能特征上维度VectorStoreIndexSummaryIndex基本原理将每个文本块Node独立嵌入为向量构建向量数据库如FAISS、Chroma通过向量相似性检索cosine similarity召回最相关片段将整篇文档或大段落生成一个全局摘要summary并将该摘要向量化检索时仅匹配文档级摘要向量返回整篇文档或其摘要检索粒度细粒度chunk-level可精准定位到具体段落、句子甚至代码行粗粒度document-level只能返回整个文档或其摘要无法定位内部细节召回结果返回若干相关Node带原始文本内容供LLM上下文注入返回若干Document对象含其摘要 原始全文/元数据需后续处理提取细节适用场景✅ 需要精确答案定位的任务如技术文档问答、合同条款查询、论文方法检索✅ 支持多跳推理、跨文档片段聚合✅ RAG标准范式首选✅ 快速文档筛选/路由如“找出所有讨论‘碳中和政策’的报告”✅ 元数据驱动的初筛配合MetadataFilter✅ 摘要先行、再深入阅读的两阶段工作流优势高精度、高灵活性、天然支持重排序与混合检索keywordvector构建快、内存占用低摘要短、适合海量文档快速过滤、语义泛化性强摘要更鲁棒局限向量库随chunk数线性增长长文档易碎片化导致语义割裂对嵌入模型质量敏感丢失细节信息无法回答需局部上下文的问题如“图3说明了什么”摘要质量直接影响检索效果典型组合用法进阶实践常将二者协同使用——先用SummaryIndex进行文档级粗筛如“哪些PDF涉及合规审计”再对筛选出的文档构建VectorStoreIndex进行段落级精检实现效率与精度的平衡即“两级检索架构”。