Source code for langchain_community.document_loaders.epub
from typing import List
from langchain_community.document_loaders.unstructured import (
UnstructuredFileLoader,
satisfies_min_unstructured_version,
)
[docs]class UnstructuredEPubLoader(UnstructuredFileLoader):
"""使用`Unstructured`加载`EPub`文件。
您可以在两种模式中的一种中运行加载程序:"single"和"elements"。
如果使用"single"模式,则文档将作为单个`langchain Document`对象返回。
如果使用"elements"模式,则`unstructured`库将文档拆分为诸如`Title`和`NarrativeText`之类的元素。
您可以在模式之后传递额外的`unstructured kwargs`以应用不同的`unstructured settings`。
示例
--------
from langchain_community.document_loaders import UnstructuredEPubLoader
loader = UnstructuredEPubLoader(
"example.epub", mode="elements", strategy="fast",
)
docs = loader.load()
参考资料
----------
https://unstructured-io.github.io/unstructured/bricks.html#partition-epub"""
def _get_elements(self) -> List:
min_unstructured_version = "0.5.4"
if not satisfies_min_unstructured_version(min_unstructured_version):
raise ValueError(
"Partitioning epub files is only supported in "
f"unstructured>={min_unstructured_version}."
)
from unstructured.partition.epub import partition_epub
return partition_epub(filename=self.file_path, **self.unstructured_kwargs)