이 가이드는 UnstructuredMarkdown document loader 시작하기에 대한 간단한 개요를 제공합니다. 모든 __ModuleName__Loader 기능 및 구성에 대한 자세한 문서는 API reference를 참조하세요.

Overview

Integration details

ClassPackageLocalSerializableJS support
UnstructuredMarkdownLoaderlangchain_community

Loader features

SourceDocument Lazy LoadingNative Async Support
UnstructuredMarkdownLoader

Setup

UnstructuredMarkdownLoader document loader에 액세스하려면 langchain-community integration package와 unstructured python package를 설치해야 합니다.

Credentials

이 loader를 사용하는 데 필요한 자격 증명은 없습니다. 모델 호출의 자동 추적을 활성화하려면 LangSmith API key를 설정하세요:
os.environ["LANGSMITH_API_KEY"] = getpass.getpass("Enter your LangSmith API key: ")
os.environ["LANGSMITH_TRACING"] = "true"

Installation

langchain_communityunstructured를 설치합니다
pip install -qU langchain_community unstructured

Initialization

이제 model object를 인스턴스화하고 document를 로드할 수 있습니다. loader는 “single”과 “elements” 두 가지 모드 중 하나로 실행할 수 있습니다. “single” 모드를 사용하면 document가 단일 Document object로 반환됩니다. “elements” 모드를 사용하면 unstructured library가 document를 TitleNarrativeText와 같은 요소로 분할합니다. mode 이후에 추가 unstructured kwargs를 전달하여 다양한 unstructured 설정을 적용할 수 있습니다.
from langchain_community.document_loaders import UnstructuredMarkdownLoader

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

Load

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'}

Lazy Load

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.')

Load Elements

이 예제에서는 elements 모드로 로드하여 markdown document의 다양한 요소 목록을 반환합니다:
from langchain_community.document_loaders import UnstructuredMarkdownLoader

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

docs = loader.load()
len(docs)
29
보시다시피 example.md 파일에서 29개의 요소가 추출되었습니다. 첫 번째 요소는 예상대로 document의 제목입니다:
docs[0].page_content
'Sample Markdown Document'

API reference

모든 UnstructuredMarkdownLoader 기능 및 구성에 대한 자세한 문서는 API reference를 참조하세요: python.langchain.com/api_reference/community/document_loaders/langchain_community.document_loaders.markdown.UnstructuredMarkdownLoader.html
Connect these docs programmatically to Claude, VSCode, and more via MCP for real-time answers.
I