ETL 管道
提取、转换和加载 (ETL) 框架作为检索增强生成 (RAG) 用例中数据处理的支柱。
ETL 管道编排从原始数据源到结构化向量存储的流程,确保数据以 AI 模型检索的最佳格式存在。
RAG 用例通过从数据体中检索相关信息来增强生成模型的能力,从而提高生成输出的质量和相关性。
API 概述
ETL 管道创建、转换和存储Document实例。

Document类包含文本、元数据以及可选的额外媒体类型,如图像、音频和视频。
ETL 管道有三个主要组件:
-
DocumentReader- 实现Supplier<List<Document>> -
DocumentTransformer- 实现Function<List<Document>, List<Document>> -
DocumentWriter- 实现Consumer<List<Document>>
Document类的内容是通过DocumentReader的帮助从 PDF、文本文件和其他文档类型创建的。
要构建一个简单的 ETL 管道,您可以将这三种类型的实例链接在一起。

假设我们有以下 ETL 类型的实例:
-
PagePdfDocumentReader-DocumentReader的实现 -
TokenTextSplitter-DocumentTransformer的实现 -
VectorStore-DocumentWriter的实现
要执行将数据加载到向量数据库的基本操作以用于检索增强生成模式,请使用以下 Java 函数式语法代码:
vectorStore.accept(tokenTextSplitter.apply(pdfReader.get()));
或者,您可以使用更自然地表达领域的方法名:
vectorStore.write(tokenTextSplitter.split(pdfReader.read()));