Tutorial NeMo Guardrails: Membangun Pagar Pengaman untuk Aplikasi LLM
Dalam era adopsi Large Language Model (LLM) yang semakin masif, keamanan dan kontrol terhadap output AI menjadi tantangan kritis bagi developer dan organisasi. Model bahasa besar seperti GPT-4, Claude, atau Llama bisa menghasilkan respons yang tidak sesuai, berbahaya, atau keluar dari konteks yang diinginkan. Di sinilah NeMo Guardrails hadir sebagai solusi.
NeMo Guardrails adalah toolkit open-source dari NVIDIA yang memungkinkan developer menambahkan pagar pengaman (guardrails) yang dapat diprogram ke aplikasi berbasis LLM. Dengan NeMo Guardrails, Anda bisa mengontrol topik percakapan, memfilter konten berbahaya, mencegah jailbreak, dan memastikan AI tetap beroperasi dalam batasan yang telah ditentukan.
Tutorial ini akan membahas secara lengkap cara menggunakan NeMo Guardrails, mulai dari instalasi hingga implementasi advanced untuk production.
Mengapa NeMo Guardrails Penting?
Sebelum masuk ke teknis, mari pahami mengapa guardrails diperlukan:
Instalasi dan Setup
Prasyarat
Pastikan Anda memiliki Python 3.9 atau lebih baru terinstal di sistem Anda.
python --version
Instalasi NeMo Guardrails
Instal NeMo Guardrails menggunakan pip:
pip install nemoguardrails
Untuk instalasi dengan dukungan semua fitur:
pip install nemoguardrails[all]
Instalasi Dependencies Tambahan
Jika Anda menggunakan OpenAI sebagai backend LLM:
pip install openai
Untuk menggunakan model lokal dengan HuggingFace:
pip install transformers torch
Konfigurasi API Key
Set environment variable untuk API key:
export OPENAIAPIKEY="sk-your-api-key-here"
Atau buat file .env di root project:
OPENAIAPIKEY=sk-your-api-key-here
Konsep Dasar: Colang dan Konfigurasi
NeMo Guardrails menggunakan bahasa pemodelan percakapan bernama Colang (Conversational Language). Ada dua versi: Colang 1.0 dan Colang 2.0. Tutorial ini akan membahas keduanya.
Struktur Project
Sebuah project NeMo Guardrails memiliki struktur berikut:
myguardrailsapp/
├── config/
│ ├── config.yml # Konfigurasi utama
│ ├── rails.co # Definisi guardrails (Colang)
│ ├── prompts.yml # Custom prompts
│ └── actions.py # Custom actions (Python)
├── main.py # Entry point aplikasi
└── requirements.txt
Konfigurasi Dasar (config.yml)
File config.yml adalah pusat konfigurasi:
models:
- type: main
engine: openai
model: gpt-4o-mini
instructions:
- type: general
content: |
Kamu adalah asisten AI untuk perusahaan teknologi.
Kamu hanya menjawab pertanyaan terkait teknologi dan produk perusahaan.
Kamu selalu menjawab dengan sopan dan profesional.
sampleconversation: |
user "Halo, apa kabar?"
"Halo! Saya baik, terima kasih. Ada yang bisa saya bantu terkait produk kami?"
user "Bisa ceritakan tentang produk kalian?"
"Tentu! Kami menyediakan solusi cloud computing dan AI untuk enterprise. Mau tahu lebih detail tentang produk tertentu?"
Basic Usage: Membuat Guardrails Pertama
Contoh 1: Topical Guardrail
Buat file config/rails.co untuk membatasi topik percakapan:
define user ask about politics
"Apa pendapat kamu tentang politik?"
"Siapa presiden terbaik?"
"Bagaimana pandanganmu soal pemilu?"
"Partai politik mana yang terbaik?"
define user ask about religion