核心模块(Modules)
数据连接(DataConnection)
文档加载器(DocumentLoaders)
Markdown(Markdown)

Markdown

Markdown (opens in a new tab)是一种轻量级的标记语言,用于使用纯文本编辑器创建格式化文本。

这里介绍了如何将Markdown文档加载到可以在下游使用的文档格式中。

# !pip install unstructured > /dev/null
from langchain_community.document_loaders import UnstructuredMarkdownLoader
markdown_path = "../../../../../README.md"
loader = UnstructuredMarkdownLoader(markdown_path)
data = loader.load()
data

    [Document(page_content="ð\x9f¦\x9cï¸\x8fð\x9f”\x97 LangChain\n\nâ\x9a¡ 通过组合构建应用程序与LLMs â\x9a¡\n\n寻找 JS/TS 版本?请查看 LangChain.js。\n\n生产支持: 当您将您的 LangChains 放入生产中时,我们很乐意提供更全面的支持。\n请填写此表格,我们将设置一个专门的支持 Slack 频道。\n\n快速安装\n\npip install langchain\n或\nconda install langchain -c conda-forge\n\nð\x9f¤” 这是什么?\n\n大语言模型(LLMs)正在成为一项变革性技术,使开发人员可以构建以前无法构建的应用程序。然而,仅仅将这些 LLMs 与其他计算或知识来源组合使用通常不足以创建一个真正强大的应用程序 - 真正的威力在于当您能够将它们与其他计算或知识来源相结合时。\n\n该库旨在协助开发这类应用程序。这类应用程序的常见示例包括:\n\nâ\x9d“ 针对特定文档的问答\n\n文档\n\n端到端示例: 对 Notion 数据库进行问答\n\nð\x9f’¬ 聊天机器人\n\n文档\n\n端到端示例: Chat-LangChain\n\nð\x9f¤\x96 代理\n\n文档\n\n端到端示例: GPT+WolframAlpha\n\nð\x9f“\x96 文档\n\n请参阅完整的文档以获取:\n\n入门指南(安装、设置环境、简单示例)\n\n如何示例(演示、集成、辅助函数)\n\n参考(完整的 API 文档)\n\n资源(对核心概念的高级解释)\n\nð\x9f\x9a\x80 这能帮助什么?\n\nLangChain 被设计为帮助六个主要领域。\n这些领域按复杂性递增的顺序为:\n\nð\x9f“\x83 LLMs 和提示:\n\n这包括提示管理、提示优化、通用的 LLM 接口和用于处理 LLM 的常用工具。\n\nð\x9f”\x97 链:\n\n链不仅仅是单个 LLM 调用,还涉及一系列调用(无论是调用 LLM 还是其他实用程序)。LangChain 为链提供了标准接口,与其他工具有很多集成,并为常见应用程序提供端到端链。\n\nð\x9f“\x9a 数据增强生成:\n\n数据增强生成涉及特定类型的链,这些链首先与外部数据源交互以获取用于生成步骤的数据。示例包括对长文本的摘要和针对特定数据源的问答。\n\nð\x9f¤\x96 代理:\n\n代理涉及 LLM 做出关于要采取的动作的决策,执行该动作,看到一个观察,并重复该过程直到完成。LangChain 为代理提供了一个标准接口,一系列可供选择的代理,以及端到端代理的示例。\n\nð\x9f§\xa0 内存:\n\n内存指在链/代理调用之间保持状态。LangChain 为内存提供了一个标准接口,一组内存实现,以及使用内存的链/代理示例。\n\nð\x9f§\x90 评估:\n\n[BETA] 生成模型通常很难使用传统指标进行评估。一种新的评估方法是使用语言模型自身进行评估。LangChain 提供了一些提示/链,用于协助进行评估。\n\n有关这些概念的更多信息,请参阅我们的完整文档。\n\nð\x9f’\x81 贡献\n\n作为一个快速发展领域的开源项目,我们非常愿意接受贡献,无论是新功能、改进基础设施还是更好的文档。\n\n有关如何贡献的详细信息,请参见此处。", metadata={'source': '../../../../../README.md'})]

Retain Elements

在幕后,Unstructured 为不同的文本块创建了不同的"元素"。默认情况下,我们将这些组合在一起,但您可以通过指定mode="elements"来轻松保持分隔。

loader = UnstructuredMarkdownLoader(markdown_path, mode="elements")
data = loader.load()
data[0]

    Document(page_content='ð\x9f¦\x9cï¸\x8fð\x9f”\x97 LangChain', metadata={'source': '../../../../../README.md', 'page_number': 1, 'category': 'Title'})