Skip to content

Document 文档

在 Agents-Flex 中,Document 是一个带有向量数据的文档对象。其定义如下:

java
public class Document extends VectorData {

    /**
     * 文档 ID
     */
    private Object id;

    /**
     * 文档内容
     */
    private String content;
}
  • id:文档 id
  • content:文档内容

由于其带有向量数据,因此可以被存储在向量数据库(VectorStore)中。

在文档模块中,除了 Document 本身以外,还提供了如下几种组件:

  • DocumentLoader:文档加载器,用于从不同的地方加载(读取)内容(比如 本地磁盘、数据库、网站 等)文档内容。
  • DocumentParser:文档解析器,用于对不同类型的文档进行解析,最终得到 Document 对象,比如解析 word、pdf、html 等等。
  • DocumentSplitter:文档分割器,用于对大文档进行分割,生成多个小文档,方便 Embedding 计算以及向量数据库存储。

DocumentLoader 文档加载器

在 Agents-Flex 中,提供了如下两种文档加载器(未来会提供更多的类型):

  • FileDocumentLoader: 文件文档加载器
  • HttpDocumentLoader: http 文档加载器

未来我们会新增更多类型的文档加载器,比如数据库加载、FTP 加载。或者特定的领域的加载器,比如微信公众号加载器等。用户也可以实现自己的加载,欢迎大家参与和分享。

DocumentParser 文档解析器

文档解析器用于对不同类型的文档进行解析,最终得到 Document 对象,Agents-Flex 已内置的文档解析器如下:

  • PdfBoxDocumentParser:对 PDF 解析
  • PoiDocumentParser:对 word 文档进行解析

DocumentSplitter 文档分割器

文档分割器是用对对大文档进行分割为多个小文档的场景,不同的分割器可以用于不同的分割场景。目前 Agents-Flex 的提供的文档分割器如下:

  • SimpleDocumentSplitter:可以通过正则表达式进行分割
  • MarkdownDocumentSplitter:对 Markdown 内容进行分割
  • ParagraphDocumentSplitter:通过段落进行分割