跳至主要內容

UnstructuredMarkdownLoader

本筆記本提供快速入門 UnstructuredMarkdown 文件載入器 的概觀。如需所有 __ModuleName__Loader 功能和組態的詳細文件,請前往 API 參考

概觀

整合詳細資訊

類別套件本機可序列化JS 支援
UnstructuredMarkdownLoaderlangchain_community

載入器功能

來源文件延遲載入原生非同步支援
UnstructuredMarkdownLoader

設定

要存取 UnstructuredMarkdownLoader 文件載入器,您需要安裝 langchain-community 整合套件和 unstructured python 套件。

憑證

使用此載入器不需要憑證。

如果您想要取得最佳的一流模型呼叫自動追蹤,您也可以設定您的 LangSmith API 金鑰,方法是取消註解下方的程式碼

# os.environ["LANGSMITH_API_KEY"] = getpass.getpass("Enter your LangSmith API key: ")
# os.environ["LANGSMITH_TRACING"] = "true"

安裝

安裝 langchain_communityunstructured

%pip install -qU langchain_community unstructured

初始化

現在我們可以實例化我們的模型物件並載入文件。

您可以使用兩種模式之一執行載入器:「單一」和「元素」。如果您使用「單一」模式,則文件將以單一 Document 物件傳回。如果您使用「元素」模式,則 unstructured 程式庫會將文件分割為諸如 TitleNarrativeText 等元素。您可以在模式之後傳入其他 unstructured kwargs,以套用不同的 unstructured 設定。

from langchain_community.document_loaders import UnstructuredMarkdownLoader

loader = UnstructuredMarkdownLoader(
"./example_data/example.md",
mode="single",
strategy="fast",
)

載入

docs = loader.load()
docs[0]
Document(metadata={'source': './example_data/example.md'}, page_content='Sample Markdown Document\n\nIntroduction\n\nWelcome to this sample Markdown document. Markdown is a lightweight markup language used for formatting text. It\'s widely used for documentation, readme files, and more.\n\nFeatures\n\nHeaders\n\nMarkdown supports multiple levels of headers:\n\nHeader 1: # Header 1\n\nHeader 2: ## Header 2\n\nHeader 3: ### Header 3\n\nLists\n\nUnordered List\n\nItem 1\n\nItem 2\n\nSubitem 2.1\n\nSubitem 2.2\n\nOrdered List\n\nFirst item\n\nSecond item\n\nThird item\n\nLinks\n\nOpenAI is an AI research organization.\n\nImages\n\nHere\'s an example image:\n\nCode\n\nInline Code\n\nUse code for inline code snippets.\n\nCode Block\n\n\`\`\`python def greet(name): return f"Hello, {name}!"\n\nprint(greet("World")) \`\`\`')
print(docs[0].metadata)
{'source': './example_data/example.md'}

延遲載入

page = []
for doc in loader.lazy_load():
page.append(doc)
if len(page) >= 10:
# do some paged operation, e.g.
# index.upsert(page)

page = []
page[0]
Document(metadata={'source': './example_data/example.md', 'link_texts': ['OpenAI'], 'link_urls': ['https://www.openai.com'], 'last_modified': '2024-08-14T15:04:18', 'languages': ['eng'], 'parent_id': 'de1f74bf226224377ab4d8b54f215bb9', 'filetype': 'text/markdown', 'file_directory': './example_data', 'filename': 'example.md', 'category': 'NarrativeText', 'element_id': '898a542a261f7dc65e0072d1e847d535'}, page_content='OpenAI is an AI research organization.')

載入元素

在此範例中,我們將以 elements 模式載入,該模式將傳回 markdown 文件中不同元素的清單

from langchain_community.document_loaders import UnstructuredMarkdownLoader

loader = UnstructuredMarkdownLoader(
"./example_data/example.md",
mode="elements",
strategy="fast",
)

docs = loader.load()
len(docs)
29

如您所見,有 29 個元素從 example.md 檔案中提取。第一個元素是文件的標題,正如預期的那樣

docs[0].page_content
'Sample Markdown Document'

API 參考

如需所有 UnstructuredMarkdownLoader 功能和組態的詳細文件,請前往 API 參考:https://langchain-python.dev.org.tw/api_reference/community/document_loaders/langchain_community.document_loaders.markdown.UnstructuredMarkdownLoader.html


此頁面是否對您有幫助?