TXT Loader

문서 로더

다양한 형식의 문서를 LangChain으로 로드하는 방법을 다룬다.

AI
RAG
LangChain
저자

Kwangmin Kim

공개

2024년 12월 31일

.txt 확장자를 가지는 파일을 로더로 로드하는 방법을 살펴보겠습니다.

from langchain_community.document_loaders import TextLoader

# 텍스트 로더 생성
loader = TextLoader("data/appendix-keywords.txt")

# 문서 로드
docs = loader.load()
print(f"문서의 수: {len(docs)}\n")
print("[메타데이터]\n")
print(docs[0].metadata)
print("\n========= [앞부분] 미리보기 =========\n")
print(docs[0].page_content[:500])

1 TextLoader를 통한 파일 인코딩 자동 감지

이 예제에서는 TextLoader 클래스를 사용하여 디렉토리에서 임의의 파일 목록을 대량으로 로드할 때 유용한 몇 가지 전략을 살펴보겠습니다.

먼저 문제를 설명하기 위해 임의의 인코딩으로 여러 개의 텍스트를 로드해 보겠습니다.

  • silent_errors: 디렉토리로더에 silent_errors 매개변수를 전달하여 로드할 수 없는 파일을 건너뛰고 로드 프로세스를 계속할 수 있습니다.
  • autodetect_encoding: 또한 로더 클래스에 자동 감지_인코딩을 전달하여 실패하기 전에 파일 인코딩을 자동으로 감지하도록 요청할 수도 있습니다.
from langchain_community.document_loaders import DirectoryLoader

path = "data/"

text_loader_kwargs = {"autodetect_encoding": True}

loader = DirectoryLoader(
    path,
    glob="**/*.txt",
    loader_cls=TextLoader,
    silent_errors=True,
    loader_kwargs=text_loader_kwargs,
)
docs = loader.load()

data/appendix-keywords.txt 파일과 파일명이 유사한 파생 파일들은 모두 인코딩 방식이 다른 파일들입니다.

doc_sources = [doc.metadata["source"] for doc in docs]
doc_sources
print("[메타데이터]\n")
print(docs[2].metadata)
print("\n========= [앞부분] 미리보기 =========\n")
print(docs[2].page_content[:500])
print("[메타데이터]\n")
print(docs[3].metadata)
print("\n========= [앞부분] 미리보기 =========\n")
print(docs[3].page_content[:500])
print("[메타데이터]\n")
print(docs[4].metadata)
print("\n========= [앞부분] 미리보기 =========\n")
print(docs[4].page_content[:500])

Subscribe

Enjoy this blog? Get notified of new posts by email: