Learn AI with Python · Pelajaran

Memuat, Membagi, dan Membuat Embedding Dokumen

PyPDFLoader, RecursiveCharacterTextSplitter, OpenAIEmbeddings, strategi embedding.

Pelajaran 2 dari 413 langkah

Memuat, Membagi, dan Membuat Embedding Dokumen adalah pelajaran Learn AI with Python gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Learn AI with Python, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Learn AI with Python mencakup 4 pelajaran total.

Alur Pemasukan Data RAG

Sebelum LLM dapat menjawab berdasarkan dokumen Anda, Anda harus memuat, membagi, dan menyematkan dokumen tersebut. Pelajaran ini membahas alur pemasukan data tersebut, yang menjadi landasan setiap sistem Retrieval-Augmented Generation.

pip install langchain-community pypdf langchain-openai

Memuat PDF

PyPDFLoader membaca PDF dan mengembalikan daftar objek Dokumen, satu untuk setiap halaman. Setiap dokumen memiliki page_content (teks) dan metadata (sumber, nomor halaman).

from langchain_community.document_loaders import PyPDFLoader

loader = PyPDFLoader("handbook.pdf")
docs = loader.load()
print(len(docs), "pages")

Mengapa Dokumen Perlu Dibagi?

Halaman utuh sering kali terlalu besar untuk disematkan atau dimasukkan ke dalam instruksi. Pembagian memecah teks menjadi potongan-potongan lebih kecil yang dapat disematkan dengan baik dan memungkinkan pengambilan hanya mengembalikan bagian yang relevan, bukan seluruh halaman.

RecursiveCharacterTextSplitter

Pemecah yang direkomendasikan adalah RecursiveCharacterTextSplitter. Pemecah ini mencoba membagi teks berdasarkan paragraf terlebih dahulu, lalu kalimat, kemudian kata, sehingga potongan tetap koheren secara semantik dan tidak terputus di tengah kata.

from langchain_text_splitters import RecursiveCharacterTextSplitter

splitter = RecursiveCharacterTextSplitter(
    chunk_size=1000,
    chunk_overlap=200
)

Ukuran Potongan dan Tumpang Tindih Potongan

chunk_size menetapkan jumlah maksimum karakter per potongan; chunk_overlap mengulangi sebagian teks di antara potongan yang bersebelahan agar konteks tidak hilang pada batas potongan. Pembagian 1000/200 adalah titik awal yang umum.

chunks = splitter.split_documents(docs)
print(len(chunks), "chunks")
print(chunks[0].page_content[:120])

Menyetel Ukuran Potongan

Potongan kecil menghasilkan pengambilan yang lebih tepat, tetapi mungkin kehilangan konteks di sekitarnya. Potongan besar mempertahankan konteks, tetapi mengurangi relevansi dan membutuhkan lebih banyak token. Tumpang tindih sebesar 10–20% dari ukuran potongan merupakan nilai bawaan yang baik untuk menjembatani batas potongan.

Apa Itu Penyematan?

Penyematan mengubah teks menjadi vektor angka dengan panjang tetap yang menangkap makna. Teks yang serupa menghasilkan vektor yang berdekatan. Inilah yang memungkinkan kita melakukan pencarian berdasarkan kemiripan semantik, bukan kata kunci.

OpenAIEmbeddings

Buat penyematan dengan OpenAIEmbeddings. Model text-embedding-3-small murah dan efektif. embed_query menyematkan satu string; embed_documents menyematkan sebuah daftar.

from langchain_openai import OpenAIEmbeddings

embeddings = OpenAIEmbeddings(model="text-embedding-3-small")
vector = embeddings.embed_query("How do I reset my password?")
print(len(vector))  # 1536

Menyematkan Sekumpulan Data

Sematkan semua potongan sekaligus. Setiap potongan akan menjadi vektor yang nantinya Anda simpan di basis data vektor untuk pencarian kemiripan yang cepat.

texts = [c.page_content for c in chunks]
vectors = embeddings.embed_documents(texts)
print(len(vectors), "vectors of dim", len(vectors[0]))

Memperkirakan Biaya Penyematan

Penyematan ditagihkan per token. Perkirakan jumlah token di seluruh potongan, lalu kalikan dengan harga per 1.000 token. Menghitungnya sebelum penyematan membantu menghindari tagihan tak terduga pada kumpulan dokumen yang besar.

import tiktoken
enc = tiktoken.get_encoding("cl100k_base")
total = sum(len(enc.encode(c.page_content)) for c in chunks)
price_per_1k = 0.00002
print("tokens:", total, "cost $:", total / 1000 * price_per_1k)

Ringkasan Alur Kerja

Alur pemasukan data: memuat dokumen, membaginya menjadi potongan yang saling tumpang tindih, menyematkan setiap potongan menjadi vektor, lalu (pada pelajaran berikutnya) menyimpannya. Pembagian potongan yang baik dan kesadaran terhadap biaya di tahap ini menentukan kualitas dan harga seluruh sistem RAG.

Pemeriksaan Singkat

Uji pemahaman Anda tentang pemasukan data.

Ringkasan: Memuat, Membagi, Menyematkan

Anda menggunakan PyPDFLoader untuk memuat dokumen, RecursiveCharacterTextSplitter dengan chunk_size dan chunk_overlap untuk membaginya menjadi potongan, serta OpenAIEmbeddings untuk mengubah potongan menjadi vektor. Anda juga belajar memperkirakan biaya penyematan per token sebelum memproses kumpulan dokumen yang besar.

Gratis untuk memulai

Belajar Python dengan tutor AI — gratis

Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.

Kursus
53
Pelajaran
225

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Memuat, Membagi, dan Membuat Embedding Dokumen” gratis?

Ya — teks lengkap “Memuat, Membagi, dan Membuat Embedding Dokumen” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Learn AI with Python, upgrade ke CoddyKit PRO. Kursus Learn AI with Python mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Memuat, Membagi, dan Membuat Embedding Dokumen”?

PyPDFLoader, RecursiveCharacterTextSplitter, OpenAIEmbeddings, strategi embedding. Kamu berlatih Learn AI with Python dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Learn AI with Python?

Tidak diperlukan pengalaman sebelumnya. Learn AI with Python di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.

Berapa lama pelajaran “Memuat, Membagi, dan Membuat Embedding Dokumen” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Learn AI with Python ini?

Ya. Setiap pelajaran Learn AI with Python menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Arsitektur LangChain dan LCEL
  2. Memuat, Membagi, dan Membuat Embedding Dokumen
  3. Penyimpanan Vektor: Chroma dan FAISS
  4. Membangun Sistem Tanya Jawab RAG dari Awal hingga Akhir
← Kembali ke Learn AI with Python