SearXNG dan JSON untuk RAG
Baru belajar bikin RAG? Sebaiknya delegasikan dulu komponen untuk Retrieval.
Untunglah ada SearXNG, mesin pencari yang hasil pencariannya bisa dinikmati dalam format JSON!
Bagaimana caranya, kita tinggal ubah konfigurasi SearXNG sehingga tidak hanya mendukung format HTML, tapi juga JSON (sebenarnya bisa juga CSV dan RSS, tapi ini rasanya kurang umum).
Buat yang baru kenal SearXNG, coba simak tulisan saya sebelumnya, Tabir Privasi dalam Pusaran Informasi.
Supaya dapat akses ke konfigurasi SearXNG, kita harus petakan dulu direktori yang tepat. Kira-kira seperti ini:
mkdir -p ${HOME}/searxng
podman run --rm -d -v ${HOME}/searxng:/etc/searxng -p 9000:8080 docker.io/searxng/searxng
Kalau pakai Docker dan bukan Podman, sintaksnya sama, tinggal sesuaikan.
Sekarang ubah file ${HOME}/searxng/settings.yml
, cari bagian format.
Biasanya secara default hanya ada html. Nah sekarang tinggal tambahkan JSON aja. Kalau mau, sekalian juga CSV dan RSS. Sudah ada petunjuknya kok! ⬇️⬇️⬇️
Bagaimana kita tahu bahwa konfigurasi JSON ini sudah berjalan?
Kalau luncurkan SearXNG (dalam contoh di atas, lewat localhost:9000
) dan kita melakukan pencarian seperti biasa, di bagian "Download results", akan ada pilihan JSON (dan juga CSV atau RSS, kalau diaktifkan).
Artinya sekarang SearXNG ini bisa kita tembak, sesuai dengan HTTP(s) secara biasa (misalnya fetch di Node.js atau httpx di Python) dan hasil JSON-nya bisa kita olah (JSON.parse
).
Jadilah SearXNG sebagai mesin pencari untuk komponent Retrieval dalam RAG!
Bagaimana merakitnya ke dalam sebuah sistem RAG yang lengkap? Simak yang saya bahas sebelumnya, lengkap juga dengan tutorial dan repo GitHub: RAG dari Nol.
Celotehan ini bermula dari satu utas di Threads.
Terima kasih untuk artikelnya, Mas. Tulisannya bermanfaat dan enak dibaca karena nggak terlalu panjang.
Ngomong-ngomong, waktu nyoba snippet kodenya di Docker, sempat nemu error. Ternyata error-nya muncul gara-gara tanda petik. Pas saya coba tanpa tanda petik, langsung jalan lancar.
Siapa tahu ada yang ngalamin hal serupa.