01. Struktur Dokumen
Document & Document Loader Catatan
catatan
- Pemuat utama yang digunakan di LangChain. (opens in a new tab)
- Daftar pemuat yang digunakan di LangChain. (opens in a new tab)
Dokumentasi praktis
Lembaga Penelitian Kebijakan Perangkat Lunak (SPRi) - Desember 2023
- Penulis: Jaeheung Yoo (Peneliti Utama, Lab Penelitian Kebijakan AI), Jisoo Lee (Rekan Peneliti, Lab Penelitian Kebijakan AI)
- Tautan: https://spri.kr/posts/view/23669 (opens in a new tab)
- Nama file: SPRI_AI_Brief_Desember_2023.pdf
Dokumen
Objek dokumen default di LangChain.
Properti - page_content
: String yang merepresentasikan konten dokumen. - metadata
: Kamus yang merepresentasikan metadata dokumen.
Python
from langchain_core.documents import Document
document = Document(“Halo, ini adalah dokumen dari Langchain”)
Output
# Memeriksa properti sebuah dokumen
document.__dict__
Menambahkan atribut ke metadata
Python
# Tambahkan metadata
document.metadata[“source”] = “TeddyNote”
document.metadata[“page”] = 1
document.metadata[“author”] = “Teddy”
Python
# Memeriksa properti dokumen
document.metadata
Pemuat Dokumen
Bertanggung jawab untuk mengonversi konten yang dimuat dari berbagai jenis file menjadi objek Dokumen.
Pemuat Utama
- PyPDFLoader: Pemuat untuk memuat file PDF.
- CSVLoader: Pemuat untuk memuat file CSV.
- UnstructuredHTMLLoader: Pemuat untuk memuat file HTML.
- JSONLoader: Pemuat untuk memuat file JSON.
- TextLoader: Pemuat untuk memuat file teks.
- DirectoryLoader: Pemuat untuk memuat direktori.
Python
# Contoh jalur file
FILE_PATH = “./data/SPRI_AI_Brief_Desember 2023_F.pdf”
Python
from langchain_community.document_loaders import PyPDFLoader
# menyiapkan pemuat
loader = PyPDFLoader(FILE_PATH)
load()
- Memuat dan mengembalikan dokumen.
- Hasil yang dikembalikan berupa
List[Document]
.
Python
# Pemuat PDF
docs = loader.load()
# memeriksa jumlah dokumen yang dimuat
len(docs)
# periksa dokumen pertama
docs[0]
load_and_split()
- Memisahkan dan mengembalikan sebuah dokumen menggunakan pemisah.
- Hasil yang dikembalikan berupa
List[Document]
.
Python
from langchain_text_splitter import CharacterTextSplitter
# menyiapkan pembagi string
text_splitter = CharacterTextSplitter(chunk_size = 200, chunk_overlap = 0)
# membagi dokumen
docs = loader.load_and_split(text_splitter = text_splitter)
# memeriksa jumlah dokumen yang dimuat
len(docs)
# periksa dokumen pertama
docs[0]
lazy_load()
- Memuat dokumen dengan cara generator.
Python
# memuat dokumen berdasarkan generator
for doc in loader.lazy_load():
print(doc.metadata)
aload()
- Pemuatan dokumen asinkron
Python
# memuat dokumen secara asinkron
adocs = loader.aload()
# memuat dokumentasi
await adocs