LangChain4j 提供了一个“Easy RAG”功能,尽可能简化 RAG 的入门过程。你不需要了解嵌入(embeddings)、选择向量存储、找到合适的嵌入模型、学习如何解析和分割文档等。只需指向你的文档,LangChain4j 将自动完成剩余的工作。
Easy RAG
注意:Easy RAG 的质量当然会低于定制化的 RAG 设置。然而,这是开始学习 RAG 或构建概念验证(Proof of Concept)的最简单方式。之后,你可以平滑地从 Easy RAG 过渡到更高级的 RAG,逐步调整和定制更多方面。
步骤 1:导入依赖
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-easy-rag</artifactId>
<version>1.0.0-beta1</version>
</dependency>
步骤 2:加载文档
List<Document> documents =
FileSystemDocumentLoader.loadDocuments("/home/langchain4j/documentation");
这将加载指定目录中的所有文件。
1. 幕后发生了什么?
Apache Tika库支持多种文档类型,用于检测文档类型和解析它们。由于我们没有明确指定使用哪个文档解析器(DocumentParser ),所以文件系统文档加载器(FileSystemDocumentLoader )将加载一个ApacheTikaDocumentParser的文档解析器,通过SPI由langchain4j-easy-rag依赖项提供。
2. 如何自定义加载文档?
如果想从指定的目录加载所有子目录的文件,可以用loadDocumentsRecursively 方法
List