01. Struktur Dokumen
Document & Document Loader Catatan
catatan
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
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.
from langchain_core.documents import Document
document = Document(“Halo, ini adalah dokumen dari Langchain”)
```notebook-python
# Memeriksa properti sebuah dokumen
document.__dict__
```
Menambahkan atribut ke metadata
# Tambahkan metadata
document.metadata[“source”] = “TeddyNote”
document.metadata[“page”] = 1
document.metadata[“author”] = “Teddy”
# 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.
# Contoh jalur file
FILE_PATH = “./data/SPRI_AI_Brief_Desember 2023_F.pdf”
from langchain_community.document_loaders import PyPDFLoader
# menyiapkan pemuat
loader = PyPDFLoader(FILE_PATH)
load()
Memuat dan mengembalikan dokumen.
Hasil yang dikembalikan berupa
List[Document]
.
# 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]
.
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.
# memuat dokumen berdasarkan generator
for doc in loader.lazy_load():
print(doc.metadata)
aload()
Pemuatan dokumen asinkron
# memuat dokumen secara asinkron
adocs = loader.aload()
# memuat dokumentasi
await adocs
Last updated