01. Struktur Dokumen

01. Struktur Dokumen

Document & Document Loader Catatan

catatan

Dokumentasi praktis

Lembaga Penelitian Kebijakan Perangkat Lunak (SPRi) - Desember 2023

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