Teknologi

Membangun Aplikasi RAG Sederhana dengan LangChain, OpenAI, dan Pinecone

Ringkasan

  • Pelajari cara membangun aplikasi RAG sederhana menggunakan LangChain, OpenAI, dan Pinecone untuk mencari informasi dari dokumen pribadi.

Dalam dunia pengembangan perangkat lunak saat ini, model bahasa besar (LLM) mampu menghasilkan teks yang koheren, tetapi mereka tidak secara otomatis memiliki akses ke data pribadi seperti dokumen perusahaan, catatan, atau artikel terbaru. Di sinilah konsep Retrieval‑Augmented Generation (RAG) menjadi sangat berguna. Dalam proyek ini, saya membangun aplikasi RAG berukuran kecil yang mampu membaca dokumen teks, memecahnya menjadi bagian‑bagian yang lebih kecil, mengubah setiap bagian menjadi vektor numerik yang disebut embedding, menyimpannya di Pinecone, lalu mencari bagian yang paling relevan ketika pengguna mengajukan pertanyaan, dan akhirnya memberikan bagian tersebut ke model AI untuk menghasilkan jawaban yang berdasar sumber (grounded answer). Proses ini mengurangi jawaban yang tidak didukung oleh fakta, meskipun tidak menjamin keakuratan absolut.

Aplikasi RAG bekerja dalam dua fase utama. Fase pertama adalah **ingestion**: dokumen dimuat, dibagi menjadi potongan‑potongan (chunk), setiap chunk diubah menjadi embedding, dan disimpan di basis data vektor Pinecone. Fase kedua adalah **retrieval dan generation**: ketika pengguna mengajukan pertanyaan, pertanyaan tersebut diubah menjadi embedding, dicari kesamaannya di Pinecone, bagian‑bagian yang paling relevan ditambahkan ke prompt, lalu model bahasa menghasilkan jawaban. Pemisahan fase ini membuat aplikasi lebih mudah dipahami dan dikelola.

Embedding adalah representasi numerik dari teks yang dihasilkan oleh model khusus. Komputer tidak dapat membandingkan makna kalimat seperti manusia, sehingga embedding mengubah kalimat menjadi vektor ratusan atau ribuan angka. Kalimat dengan makna serupa akan memiliki vektor yang dekat satu sama lain, memungkinkan pencarian berdasarkan makna, bukan hanya kata kunci. LangChain menyediakan antarmuka standar untuk model embedding, sementara OpenAI text‑embedding‑3 menawarkan kontrol atas dimensi vektor yang dihasilkan.

Pinecone berfungsi sebagai basis data vektor yang optimal untuk pencarian semantik. Berbeda dengan basis data relasional yang cocok untuk query berbasis ID, Pinecone mencari bagian dokumen yang secara vektor paling dekat dengan pertanyaan pengguna. Penting untuk memastikan indeks Pinecone dan model embedding menggunakan dimensi vektor yang sama; jika tidak, penyimpanan atau perbandingan vektor akan gagal.

Struktur proyek ini terdiri dari dua file Python utama: `rag-project/rag‑gist/ingest.py` (untuk memuat dan menyimpan dokumen), `rag‑gist/main.py` (untuk menjawab pertanyaan), berkas sumber `mediumblog.txt`, berkas konfigurasi `.env`, `.gitignore`, dan `pyproject.toml`. `ingest.py` menggunakan `PyPDFLoader` (atau `TextLoader`) dari `langchain‑community`, `CharacterTextSplitter` dari `langchain‑text‑splitters`, embedding OpenAI, dan `PineconeVectorStore` dari `langchain‑pinecone`. `main.py` memuat kunci API dari `.env`, membuat rantai RAG menggunakan `create_retrieval_chain`, dan mencetak jawaban beserta sumbernya.

Instalasi dimulai dengan `uv add langchain langchain‑community langchain‑openai langchain‑pinecone langchain‑text‑splitters python‑dotenv`. Kunci API disimpan di `.env` (misalnya, `OPENAI_API_KEY` dan `PINECONE_API_KEY`). Berkas ini ditambahkan ke `.gitignore` untuk mencegah kebocoran kredensial. Contoh aman dapat berupa `.env.example` dengan placeholder.

Langkah selanjutnya adalah membuat indeks Pinecone (melalui konsol Pinecone atau CLI) dan menjalankan `ingest.py`. Skrip ini akan memuat `mediumblog.txt`, membagi dokumen, membuat embedding, dan menyimpannya di indeks yang dipilih. Setelah proses ingestion selesai, pengembang dapat menjalankan `main.py`, memasukkan pertanyaan, dan melihat jawaban yang disertai bagian dokumen yang mendasarinya.

Pengalaman ini mengajarkan pentingnya pemisahan antara ingestion dan retrieval untuk memudahkan debugging dan skalabilitas. Penggunaan LangSmith untuk melacak rantai RAG sangat membantu dalam mengidentifikasi di mana kesalahan terjadi. Bagi pengembang di Indonesia, proyek seperti ini membuka peluang untuk membangun aplikasi AI yang dapat memanfaatkan dokumen lokal, mendukung konten dalam bahasa Indonesia, dan meningkatkan efisiensi bisnis melalui pencarian yang cerdas.

Mengapa Ini Penting

Artikel ini penting bagi ekosistem teknologi Indonesia karena memperkenalkan pola RAG yang dapat digunakan untuk memanfaatkan dokumen lokal, mulai dari kontrak bisnis hingga basis pengetahuan dalam bahasa Indonesia. Dengan memahami cara mengintegrasikan OpenAI, LangChain, dan Pinecone, pengembang lokal dapat membangun aplikasi cerdas yang mengurangi risiko informasi usang dan meningkatkan akurasi jawaban. Kemampuan ini sangat relevan seiring dengan meningkatnya adopsi AI di perusahaan‑perusahaan Indonesia yang membutuhkan sistem retrieval berbasis konteks. Selain itu, proyek open‑source seperti ini dapat menjadi landasan bagi komunitas untuk berkolaborasi, menyesuaikan, dan memperluas penggunaan RAG untuk bahasa dan domain khas Indonesia.

Sumber Asli
Internasional
Tanggal
12 Juli 2026
Waktu Baca
4 menit