LlamaIndex 通过自动化准备原始数据以供大型语言模型 (LLM) 进行高效索引和检索所需的步骤来处理文档预处理。该过程侧重于将文档结构化为更小的、可搜索的单元,同时保留上下文和元数据。这确保 LLM 可以在查询期间快速访问相关信息。工作流程通常包括加载文档、将其拆分为块以及使用元数据丰富它们,所有这些都可以配置以适应特定的用例。
首先,LlamaIndex 使用**数据加载器**从各种来源(PDF、网页、数据库)摄取文档,并将其转换为纯文本。例如,可以解析 PDF 以提取文本,同时忽略图像或复杂的布局。加载后,**文本分割器**将文档分成更小的块(节点),以适应 LLM 上下文窗口。 分割器可以使用简单的规则(例如,在段落中断处分割)或基于令牌的方法,以避免在中途切割句子。对于代码库,开发人员可以配置分割器来分离函数或类,确保逻辑代码块保持完整。 每个块都存储为带有元数据的节点,例如源文件名或章节标题,有助于在检索期间进行追溯。
接下来,**节点解析器**将这些块结构化为具有可自定义元数据的节点。 开发人员可以附加上下文,例如文档标题、时间戳或关键字。 例如,一篇研究论文可能具有标有章节名称(摘要、方法)的节点,以便进行精确检索。 LlamaIndex 不执行繁重的 NLP 任务(如实体识别),但如果需要这些步骤,则与 spaCy 或 NLTK 等库集成。 最终输出是针对 LLM 查询优化的结构化索引。 通过平衡自动化和可配置性,LlamaIndex 简化了预处理,同时允许开发人员根据其数据的独特需求进行定制。