Membangun RAG Naif dengan FAISS atau Chroma
Tulis 40 baris Python: buat embedding kueri, ambil bagian terdekat teratas-K, masukkan ke prompt, lalu tanyakan kepada LLM.
Membangun RAG Naif dengan FAISS atau Chroma adalah pelajaran AI Agents gratis di CoddyKit. Ini adalah pelajaran 4 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 AI Agents, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus AI Agents mencakup 4 pelajaran total.
Bagian dari pelajaran ini belum diterjemahkan dan ditampilkan dalam bahasa Inggris.
RAG 40 Baris
Anda kini memiliki semua bagiannya. Kita akan menyusunnya menjadi RAG naif yang berfungsi pada sekumpulan kecil dokumen.
Step 1: Install
# pip install openai chromadbStep 2: Sample Corpus
docs = [
'Python is a high-level interpreted programming language created by Guido van Rossum in 1991.',
'Pizza is a savory dish of Italian origin consisting of a round flat base of dough.',
'The Eiffel Tower is a wrought-iron lattice tower in Paris, France, completed in 1889.',
'NumPy is a Python library used for working with arrays and numerical computing.',
'The Great Wall of China is a series of fortifications built across northern China.'
]
print(f"Loaded {len(docs)} documents")
for i, d in enumerate(docs):
print(f"{i+1}. {d[:50]}...")
Step 3: Set Up Chroma
import chromadb
from openai import OpenAI
client = chromadb.Client()
collection = client.create_collection('demo')
openai_client = OpenAI()Step 4: Embed and Store
embed_response = openai_client.embeddings.create(
model='text-embedding-3-small',
input=docs
)
vectors = [d.embedding for d in embed_response.data]
collection.add(
ids=[f'd{i}' for i in range(len(docs))],
embeddings=vectors,
documents=docs
)Step 5: Embed the Query
query = 'Tell me about Python programming'
query_vec = openai_client.embeddings.create(
model='text-embedding-3-small',
input=query
).data[0].embeddingStep 6: Retrieve Top-K
results = collection.query(
query_embeddings=[query_vec],
n_results=2
)
retrieved = results['documents'][0]
print(retrieved)
# ['Python is a high-level...', 'NumPy is a Python library...']Step 7: Build the RAG Prompt
context = '\n'.join(f'- {chunk}' for chunk in retrieved)
prompt = f'''
Using only the context below, answer the question. If unknown, say so.
Context:
{context}
Question: {query}
'''Step 8: Call the LLM
response = openai_client.chat.completions.create(
model='gpt-4o-mini',
messages=[{'role': 'user', 'content': prompt}],
temperature=0,
)
print(response.choices[0].message.content)Alternatif FAISS
Jika Anda menginginkan penggunaan lokal sepenuhnya tanpa server basis data, FAISS bahkan lebih sederhana:
import faiss
import numpy as np
index = faiss.IndexFlatIP(1536) # inner product, normalised vectors
index.add(np.array(vectors).astype('float32'))
D, I = index.search(np.array([query_vec]).astype('float32'), k=2)
retrieved = [docs[i] for i in I[0]]Keterbatasan RAG Naif
- Tanpa pembagian menjadi potongan—hanya berfungsi untuk dokumen pendek
- Tanpa pemeringkatan ulang
- Tanpa penyaringan metadata
- Tanpa evaluasi
Semua hal ini akan kita perbaiki dalam kursus-kursus berikutnya.
Biaya per Kueri
Untuk setiap kueri yang Anda buat:
- 1 panggilan penyematan (sekitar $0,00002)
- 1 penyelesaian percakapan dengan konteks sekitar 500 token (sekitar $0,0001)
Total: sekitar seperseratus sen untuk setiap pertanyaan.
Rilis, Lalu Iterasikan
RAG sepanjang 40 baris ini sudah mengungguli sebagian besar chatbot tanpa konteks untuk tanya jawab faktual berdasarkan data Anda. Rilis, amati bagaimana pengguna membuatnya gagal, lalu tambahkan teknik lanjutan di bagian yang paling membutuhkannya.
K Teratas pada RAG Naif
Apa arti pengambilan K teratas?
Ringkasan
Anda telah membangun RAG. Selanjutnya, kita akan melihat basis data vektor yang dapat mengembangkan kemampuan ini melampaui satu laptop.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Membangun RAG Naif dengan FAISS atau Chroma” gratis?
Ya — teks lengkap “Membangun RAG Naif dengan FAISS atau Chroma” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus AI Agents, upgrade ke CoddyKit PRO. Kursus AI Agents mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Membangun RAG Naif dengan FAISS atau Chroma”?
Tulis 40 baris Python: buat embedding kueri, ambil bagian terdekat teratas-K, masukkan ke prompt, lalu tanyakan kepada LLM. Kamu berlatih AI Agents 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 AI Agents?
Tidak diperlukan pengalaman sebelumnya. AI Agents 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 4 dari 4.
Berapa lama pelajaran “Membangun RAG Naif dengan FAISS atau Chroma” 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 AI Agents ini?
Ya. Setiap pelajaran AI Agents 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
- Apa yang Diatasi RAG (Batas Pengetahuan, Halusinasi)
- Strategi Pemotongan (Tetap, Kalimat, Semantik)
- Mengindeks Sekumpulan Dokumen
- Membangun RAG Naif dengan FAISS atau Chroma