마크다운

마크다운은 일반 텍스트 편집기를 사용하여 텍스트 서식을 지정할 수 있는 경량 마크업 언어입니다.

이 문서는 LangChain이 마크다운 문서를 하향식으로 사용할 수 있는 문서 형식으로 불러오는 방법을 소개합니다.

from langchain_community.document_loaders import UnstructuredMarkdownLoader

markdown_path = "../../../../../README.md"
loader = UnstructuredMarkdownLoader(markdown_path)

data = loader.load()

data
[Document(page_content="🦜🔗 LangChain\n\n⚡ LLM을 통해 조립 가능한 응용 프로그램 구축 ⚡\n\nJS/TS 버전을 찾고 계신가요? LangChain.js를 확인하세요.\n\n제품 지원: LangChain을 본격적으로 활용할 때 더 포괄적인 지원을 제공해 드립니다.\n양식을 작성해 주시면 전용 지원 Slack 채널을 설정해 드리겠습니다.\n\n빠른 설치\n\npip install langchain\n또는\nconda install langchain -c conda-forge\n\n🤔 이것이 무엇인가요?\n\n대형 언어 모델(LLM)은 변혁적인 기술로 등장하여 이전에는 불가능했던 응용 프로그램을 개발할 수 있게 해 주고 있습니다. 그러나 이러한 LLM을 단독으로 사용하는 것만으로는 진정으로 강력한 앱을 만드는 데 충분하지 않습니다. 진정한 파워는 그것들을 다른 연산 또는 지식 소스와 결합할 수 있을 때 나타납니다.\n\n이 라이브러리는 이러한 유형의 응용 프로그램을 개발하는 데 도움을 주고자 합니다. 이러한 응용 프로그램의 일반적인 예는 다음과 같습니다:\n\n📚 특정 문서에 대한 질문 응답\n\n문서\n\n단대답 예: 노션 데이터베이스에 대한 질문 응답\n\n📬 챗봇\n\n문서\n\n단대답 예: 챗-LangChain\n\n🤖 에이전트\n\n문서\n\n단대답 예: GPT+WolframAlpha\n\n📝 문서\n\n다음의 전체 사용 설명서를 참조하세요:\n\n시작하기(설치, 환경 설정, 간단한 예제)\n\n사용 예(데모, 통합, 도우미 함수)\n\n참조(전체 API 문서)\n\n리소스(핵심 개념의 고수준 설명)\n\n🚀 이것이 어떻게 도움이 될까요?\n\nLangChain이 지원하고자 하는 주요 분야는 다음과 같습니다.\n이들은 복잡도가 증가하는 순서대로 다음과 같습니다:\n\n📃 LLM과 프롬프트:\n\n이는 프롬프트 관리, 프롬프트 최적화, 모든 LLM을 위한 일반적 인터페이스, LLM과 작업하기 위한 공통 유틸리티를 포함합니다.\n\n🔗 체인:\n\n체인은 단일 LLM 호출을 넘어 다른 유틸리티에 대한 연속 호출을 포함하며, LangChain은 표준 인터페이스, 다양한 도구와의 통합, 일반적인 응용 프로그램을 위한 최종체인 등을 제공합니다.\n\n🚚 데이터 확장 세대:\n\n데이터 확장 세대는 세대 단계에서 사용할 데이터를 가져오기 위해 외부 데이터 소스와 상호 작용하는 특정 유형의 체인을 포함합니다. 예시로는 긴 텍스트 요약 및 특정 데이터 소스에 대한 질문/답변이 있습니다.\n\n🤖 에이전트:\n\n에이전트는 LLM이 취할 행동을 결정하고, 그 행동을 취하며, 관측을 확인하고, 그것을 완료할 때까지 반복하는 일을 포함합니다. LangChain은 표준 인터페이스, 선택할 수 있는 여러 에이전트, 최종 에이전트 예시를 제공합니다.\n\n🧠 메모리:\n\n메모리는 체인/에이전트의 호출 사이에 상태를 지속하는 것을 의미합니다. LangChain은 표준 인터페이스, 메모리 구현의 컬렉션, 메모리 사용 체인/에이전트의 예제를 제공합니다.\n\n📐 평가:\n\n[BETA] 생성 모델을 전통적인 지표로 평가하는 것은 알려져 있듯이 매우 어려운 일입니다. 그들을 평가하기 위한 새로운 방법 중 하나는 언어 모델 자체를 사용하여 평가하는 것입니다. LangChain은 평가를 돕는 몇 가지 프롬프트/체인을 제공합니다.\n\n이러한 개념에 대한 자세한 내용은 전체 문서를 참조하세요.\n\n📁 기여\n\n곧발전하는 분야에서 오픈 소스 프로젝트로, 새로운 기능, 향상된 인프라 구조, 더 나은 문서화 형태로 기여해 주시는 모든 분들을 극도로 열려있습니다.\n기여하는 방법에 대한 상세 정보는 여기를 참조하세요.", metadata={'source': '../../../../../README.md'})]

제가 도와드릴 수 있는 부분이 있다면 언제든지 알려주세요.

요소 보존

맹목적으로, 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'})