【Spring AI】09. ETL 管道

文章目录

  • ETL Pipeline
    • API 概述
    • 入门指南
    • ETL 接口和实现
      • DocumentReader
        • JsonReader
        • TextReader
        • PagePdfDocumentReader
        • ParagraphPdfDocumentReader
        • TikaDocumentReader
      • DocumentTransformer
        • TextSplitter
        • TokenTextSplitter
        • ContentFormatTransformer
        • KeywordMetadataEnricher
        • SummaryMetadataEnricher
      • DocumentWriter
        • FileDocumentWriter
        • VectorStore
        • ETL 类图

ETL Pipeline

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

API 概述


ETL 管道的三个主要组件是

  • DocumentReader :实现Supplier
  • DocumentTransformer :实现Function
  • Consumer :实现DocumentWriter
    Document类包含文本和元数据,使用DocumentReader可以基于 PDF、文本文件和其他文档类型创建 Document类。
    要构建一个简单的 ETL 管道,您可以将每种类型的实例链接在一起。
    【Spring AI】09. ETL 管道_第1张图片

假如我们有这三种 ETL 类型的实例对象

  • PagePdfDocumentReade: DocumentReader的一个实现
  • TokenTextSplitter:DocumentTransformer的一个实现
  • VectorStore: DocumentWriter的一个实现
    使用以下代码,可以结合检索增强生成模式,把基本的数据加载到矢量数据库中。
vectorStore.accept(tokenTextSplitter.apply(pdfReader.get()));

入门指南


要开始创建一个 Spring AI RAG 应用程序,请按照以下步骤进行:

  1. 下载最新的 Spring CLI Release,并按照 installation instructions 进行安装。
  2. 要创建一个简单的基于 OpenAI 的应用程序,请使用以下命令:
    spring boot new --from ai-rag --name myrag
    
  3. 查看生成的README.md文件,了解如何获取 OpenAI API 密钥并运行您的第一个 AI RAG 应用程序。

ETL 接口和实现

ETL 管道由以下接口和实现组成。详细的 ETL 类图在下面的 ETL 类图部分 中显示。

DocumentReader

提供来自不同来源的文档资源。

public interface DocumentReader extends Supplier<List<Document>> {
   

}
JsonReader

JsonReader解析 JSON 格式的文档。
例子:

@Component
public class MyAiApp {
   

	@Value("classpath:bikes.json") // This is the json document to load
	private Resource resource;

你可能感兴趣的:(【Spring AI】09. ETL 管道)