非结构化Markdown加载器#

class langchain_community.document_loaders.markdown.UnstructuredMarkdownLoader(file_path: str | List[str] | Path | List[Path], *, mode: str = 'single', **unstructured_kwargs: Any)[source]#

使用Unstructured加载Markdown文件。

您可以在两种模式之一中运行加载器:“single”和“elements”。 如果使用“single”模式,文档将作为单个langchain Document对象返回。如果使用“elements”模式,unstructured库将文档拆分为诸如标题和叙述文本等元素。 您可以在模式之后传入额外的unstructured kwargs以应用不同的unstructured设置。

Setup:

安装 langchain-community

pip install -U langchain-community
Instantiate:
from langchain_community.document_loaders import UnstructuredMarkdownLoader

loader = UnstructuredMarkdownLoader(
    "./example_data/example.md",
    mode="elements",
    strategy="fast",
)
Lazy load:
docs = []
docs_lazy = loader.lazy_load()

# async variant:
# docs_lazy = await loader.alazy_load()

for doc in docs_lazy:
    docs.append(doc)
print(docs[0].page_content[:100])
print(docs[0].metadata)
Sample Markdown Document
{'source': './example_data/example.md', 'category_depth': 0, 'last_modified': '2024-08-14T15:04:18', 'languages': ['eng'], 'filetype': 'text/markdown', 'file_directory': './example_data', 'filename': 'example.md', 'category': 'Title', 'element_id': '3d0b313864598e704aa26c728ecb61e5'}
Async load:
docs = await loader.aload()
print(docs[0].page_content[:100])
print(docs[0].metadata)
Sample Markdown Document
{'source': './example_data/example.md', 'category_depth': 0, 'last_modified': '2024-08-14T15:04:18', 'languages': ['eng'], 'filetype': 'text/markdown', 'file_directory': './example_data', 'filename': 'example.md', 'category': 'Title', 'element_id': '3d0b313864598e704aa26c728ecb61e5'}

参考文献

https://unstructured-io.github.io/unstructured/core/partition.html#partition-md

使用文件路径进行初始化。

方法

__init__(file_path, *[, mode])

使用文件路径进行初始化。

alazy_load()

一个用于文档的懒加载器。

aload()

将数据加载到Document对象中。

lazy_load()

加载文件。

load()

将数据加载到Document对象中。

load_and_split([text_splitter])

加载文档并将其分割成块。

Parameters:
  • file_path (Union[str, List[str], Path, List[Path]])

  • mode (str)

  • unstructured_kwargs (Any)

__init__(file_path: str | List[str] | Path | List[Path], *, mode: str = 'single', **unstructured_kwargs: Any)#

使用文件路径进行初始化。

Parameters:
  • file_path (str | List[str] | Path | List[Path])

  • mode (str)

  • unstructured_kwargs (Any)

async alazy_load() AsyncIterator[Document]#

文档的懒加载器。

Return type:

AsyncIterator[Document]

async aload() list[Document]#

将数据加载到Document对象中。

Return type:

列表[Document]

lazy_load() Iterator[Document]#

加载文件。

Return type:

迭代器[文档]

load() list[Document]#

将数据加载到Document对象中。

Return type:

列表[Document]

load_and_split(text_splitter: TextSplitter | None = None) list[Document]#

加载文档并将其分割成块。块以文档形式返回。

不要重写此方法。它应该被视为已弃用!

Parameters:

text_splitter (可选[TextSplitter]) – 用于分割文档的TextSplitter实例。 默认为RecursiveCharacterTextSplitter。

Returns:

文档列表。

Return type:

列表[Document]

使用UnstructuredMarkdownLoader的示例