通过数据连接器从各种数据源(文本文件、PDF、网站、数据库、API)加载原始数据,转换为 LlamaIndex 内部的 Document 格式。LlamaHub 提供了数百个连接器供选择。
将 Document 拆分为 Node,使用 NodeParser 进行分块。可配置分块大小、重叠度和分割策略。常用的分块策略包括:
对 Node 生成嵌入向量(Embedding),并存储到索引结构中。嵌入向量是文本语义的数值表示,使计算机能够以数学方式比较文本相似度。根据索引类型的不同,可能还会提取关键词、构建实体关系图或生成摘要。
将构建好的索引持久化存储,避免每次查询时重新索引。LlamaIndex 支持从简单的本地存储到生产级向量数据库的多种存储后端。
当用户提交问题时,检索器将查询转换为嵌入向量,在索引中搜索最相关的 Node。检索策略可能包括语义相似度搜索、元数据过滤或混合检索。
将检索到的 Node 与用户查询一起传递给 LLM,生成基于检索上下文的增强回答。LlamaIndex 提供多种合成策略: