Document
类表示一个完整的文档,例如单个 PDF 文件或网页。
Document.text()
: 返回文档的文本内容Document.metadata()
: 返回文档的元数据Document.toTextSegment()
: 将 Document
转换为 TextSegment
Document.from(String, Metadata)
: 从文本和元数据创建 Document
Document.from(String)
: 从文本创建不带元数据的 Document
Metadata
存储文档的额外信息,如名称、来源、最后更新时间等。
Metadata.from(Map)
: 从 Map
创建 Metadata
Metadata.put(String key, String value)
: 添加元数据条目Metadata.getString(String key)
/ getInteger(String key)
: 获取指定类型的元数据值Metadata.containsKey(String key)
: 检查是否包含指定键Metadata.remove(String key)
: 移除指定键的元数据条目Metadata.copy()
: 复制元数据Metadata.toMap()
: 将元数据转换为 Map
TextSegment
表示文档的一个片段,专用于文本信息。
TextSegment.text()
: 返回文本片段的内容TextSegment.metadata()
: 返回文本片段的元数据TextSegment.from(String, Metadata)
: 从文本和元数据创建 TextSegment
TextSegment.from(String)
: 从文本创建不带元数据的 TextSegment
Embedding
类封装了一个数值向量,表示嵌入内容的语义含义。
Embedding.dimension()
: 返回嵌入向量的维度CosineSimilarity.between(Embedding, Embedding)
: 计算两个嵌入向量的余弦相似度Embedding.normalize()
: 对嵌入向量进行归一化FileSystemDocumentLoader
: 从文件系统加载文档UrlDocumentLoader
: 从 URL 加载文档AmazonS3DocumentLoader
: 从 Amazon S3 加载文档AzureBlobStorageDocumentLoader
: 从 Azure Blob 存储加载文档GitHubDocumentLoader
: 从 GitHub 仓库加载文档TencentCosDocumentLoader
: 从腾讯云 COS 加载文档TextDocumentParser
: 解析纯文本文件ApachePdfBoxDocumentParser
: 解析 PDF 文件ApachePoiDocumentParser
: 解析 MS Office 文件格式ApacheTikaDocumentParser
: 自动检测并解析几乎所有文件格式DocumentTransformer
用于对文档执行各种转换,如清理、过滤、增强或总结。
目前提供的转换器:
HtmlToTextDocumentTransformer
: 从 HTML 中提取文本内容和元数据DocumentByParagraphSplitter
: 按段落拆分DocumentBySentenceSplitter
: 按句子拆分DocumentByWordSplitter
: 按单词拆分DocumentByCharacterSplitter
: 按字符拆分DocumentByRegexSplitter
: 按正则表达式拆分DocumentSplitter
并指定 TextSegment
的大小和重叠字符数split(Document)
或 splitAll(List<Document>)
方法DocumentSplitter
将文档拆分成小片段,并组合为 TextSegment
EmbeddingModel
接口表示一种将文本转换为 Embedding
的模型。
EmbeddingModel.embed(String)
: 嵌入指定文本EmbeddingModel.embed(TextSegment)
: 嵌入指定 TextSegment
EmbeddingModel.embedAll(List<TextSegment>)
: 嵌入多个 TextSegment
EmbeddingModel.dimension()
: 返回嵌入向量的维度EmbeddingStore
接口表示一个嵌入存储库(向量数据库),用于存储和高效搜索相似的嵌入。
EmbeddingStore.add(Embedding)
: 添加嵌入并返回随机 IDEmbeddingStore.addAll(List<Embedding>)
: 添加多个嵌入并返回随机 ID 列表EmbeddingStore.search(EmbeddingSearchRequest)
: 搜索最相似的嵌入EmbeddingStore.remove(String id)
: 删除指定 ID 的嵌入EmbeddingStoreIngestor
负责将文档嵌入并存储到 EmbeddingStore
中。
示例:
DocumentTransformer
和 DocumentSplitter
,在嵌入前对文档进行转换和拆分。
DocumentLoader
和 DocumentParser
加载文档DocumentTransformer
清理或增强文档(可选)DocumentSplitter
将文档拆分为更小的片段EmbeddingModel
将文档片段转换为嵌入向量EmbeddingStore
存储嵌入向量EmbeddingStore
检索最相关的文档片段DocumentTransformer
来清理和增强文档