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.metadataPemuat 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 adocsLast updated