RAG II: membangun RAG dengan Python
Bagian 6 · Menggunakan model
| Istilah | Arti |
|---|---|
| RAG | Retrieval augmented generation, yaitu cara mencari potongan dokumen yang relevan lalu menyerahkannya ke model sebelum model menjawab. |
| Python | Bahasa pemrograman yang dipakai video untuk menulis seluruh kode RAG dalam sekitar 50 baris tanpa framework tambahan. |
| Ollama | Program yang menjalankan model AI di komputer sendiri lewat server lokal, dipakai video untuk model embedding dan model chat. |
| chunking | Memecah dokumen menjadi potongan kecil, dan di video dilakukan per paragraf agar pencarian lebih tepat sasaran. |
| chunks | Potongan dokumen kecil hasil chunking, yang di video handbook menjadi 11 chunk termasuk judulnya. |
| embedding model | Model kecil yang mengubah teks menjadi daftar angka agar maknanya bisa dibandingkan, dan video memakai nomic-embed-text. |
| embeddings | Daftar angka hasil embedding, yang di video berjumlah 768 angka untuk setiap chunk dan mewakili maknanya. |
| cosine similarity | Ukuran seberapa searah dua vektor, sehingga nilai mendekati satu berarti maknanya mirip dan dipakai untuk mencari chunk paling relevan. |
| NumPy | Pustaka Python untuk operasi array dan hitungan matematika, yang di video dipakai untuk menghitung kemiripan vektor. |
| endpoint | Alamat tujuan permintaan di server lokal, yaitu localhost port 11434 tempat Ollama menerima permintaan embedding dan chat. |
| prompt | Teks instruksi dan konteks yang dikirim ke model, yang di video berisi potongan handbook, pertanyaan, dan perintah menjawab dari konteks saja. |
| handbook | Dokumen panduan karyawan fiktif Byte Bistro yang dipakai sebagai sumber data, berisi jam buka, aturan anjing, dan kode alarm. |
Video ini mengajarkan cara membangun RAG, singkatan dari retrieval augmented generation, dari nol memakai Python biasa dalam kurang dari 50 baris kode. Pembicara sengaja tidak memakai LangChain atau database vektor siap pakai, dan semuanya berjalan di komputer sendiri dengan model gratis. Masalah yang diangkat cukup jelas: model AI tidak mengetahui dokumen privat, misalnya handbook kafe fiktif bernama Byte Bistro, sehingga ia menjawab asal atau menolak. Dengan RAG, model yang sama bisa menjawab dengan benar, misalnya soal kode alarm 417, karena potongan handbook yang relevan diberikan sebelum model menjawab. Menurut pembicara, RAG hanya terdiri dari tiga langkah: mencari potongan yang relevan, memasukkannya ke prompt, lalu model menulis jawaban. Model tidak belajar hal baru, hanya diberi catatan yang tepat, seperti ujian dengan buku terbuka. Video ini juga disponsori TripleTen.
Pembicara memakai Ollama untuk menjalankan dua model lokal: nomic-embed-text berukuran sekitar 274 MB untuk mengubah teks menjadi embedding, dan Qwen3 4B instruct sekitar 2,5 GB untuk menulis jawaban. Kode Python mengirim permintaan ke server lokal di localhost port 11434 memakai paket requests, dan NumPy dipakai untuk menghitung cosine similarity. Handbook dipecah per paragraf kosong sehingga menghasilkan 11 chunk, termasuk judul, dan tiap chunk diubah menjadi 768 angka. Fungsi retrieve mengubah pertanyaan menjadi vektor, lalu memilih tiga chunk paling mirip sebagai konteks. Prompt menyuruh model menjawab hanya dari konteks tersebut. Pada demo, pertanyaan apakah anjing boleh masuk dijawab tidak, kecuali hewan layanan, dan pertanyaan jam buka dijawab sesuai chunk jam buka. Pembicara lalu menyebut bahwa versi produksi perlu database vektor seperti pgvector atau Chroma, chunking dengan overlap, reranking, dan evals.
Kata kunci
- RAG
- Python
- Ollama
- cosine similarity
- Membangun RAG dari nol dengan Python di bawah 50 baris, berjalan lokal memakai Ollama tanpa LangChain atau vector database.
- Memuat dokumen, memecahnya menjadi chunks, lalu membuat embeddings lewat endpoint embed Ollama.
- Mengambil chunk paling relevan dengan cosine similarity dan menyisipkannya ke prompt untuk menjawab pertanyaan.
Tulis catatan pribadimu untuk modul ini. Catatan tersimpan di akunmu dan bisa dibuka dari perangkat mana pun.
