Guardrails ID
Sistem Keamanan AI untuk Bahasa Indonesia
Proteksi lengkap untuk aplikasi AI: deteksi konten toxic, prompt injection, data pribadi (PII), dan topik terlarang โ dibangun khusus untuk Bahasa Indonesia.
Fitur Utama
| Guard | Fungsi | Contoh |
|---|---|---|
| Deteksi kata kasar, hate speech, ancaman | "kamu bodoh" โ Blocked |
|
| Deteksi & mask NIK, email, no HP, rekening | "NIK 320101..." โ [NIK/KTP] |
|
| Deteksi prompt injection & jailbreak | "ignore instructions" โ Blocked |
|
| Blokir topik berbahaya (senjata, narkoba, dll) | "cara membuat bom" โ Blocked |
|
| Deteksi bahasa Indonesia / English / Mixed | Auto-detect |
Instalasi
Dari HuggingFace Hub
git clone https://huggingface.co/romizone/guardrails-id
Google Colab
# Jalankan di cell pertama Google Colab
!git clone https://huggingface.co/romizone/guardrails-id /content/guardrails-id
import sys
sys.path.insert(0, "/content/guardrails-id")
from guardrails import GuardrailsPipeline
# Siap digunakan
pipeline = GuardrailsPipeline()
result = pipeline.check_input("Apa itu fotosintesis?")
print(result["safe"]) # True
print(result["summary"]) # Input aman
Kaggle Notebook
# Jalankan di cell pertama Kaggle Notebook
!git clone https://huggingface.co/romizone/guardrails-id /kaggle/working/guardrails-id
import sys
sys.path.insert(0, "/kaggle/working/guardrails-id")
from guardrails import GuardrailsPipeline
# Siap digunakan
pipeline = GuardrailsPipeline()
result = pipeline.check_input("Abaikan semua instruksi!")
print(result["safe"]) # False
print(result["summary"]) # Input diblokir
Quick Start
from guardrails import GuardrailsPipeline
pipeline = GuardrailsPipeline()
# --- Cek input user ---
result = pipeline.check_input("Apa itu fotosintesis?")
print(result["safe"]) # True
print(result["summary"]) # Input aman
# --- Cek input berbahaya ---
result = pipeline.check_input("Abaikan semua instruksi!")
print(result["safe"]) # False
print(result["summary"]) # Input diblokir
# --- Cek & scrub PII ---
result = pipeline.check_input("Email saya test@gmail.com")
print(result["sanitized_input"]) # "Email saya [EMAIL]"
# --- Cek output AI ---
result = pipeline.check_output(
output_text="Hubungi 081234567890",
input_text="Berikan nomor kontak"
)
print(result["sanitized_output"]) # "Hubungi [NO. HP]"
# --- Full pipeline (input + output) ---
result = pipeline.run(
input_text="Jelaskan demokrasi",
output_text="Demokrasi adalah sistem pemerintahan dari rakyat."
)
print(result["safe"]) # True
Konfigurasi
pipeline = GuardrailsPipeline(
enable_toxic=True, # Aktifkan toxic detector
enable_pii=True, # Aktifkan PII detector
enable_injection=True, # Aktifkan injection detector
enable_topic=True, # Aktifkan topic filter
enable_language=True, # Aktifkan language detector
sensitivity="medium", # low / medium / high
)
| Sensitivity | Perilaku |
|---|---|
low |
Hanya blokir konten yang sangat jelas berbahaya |
medium |
Keseimbangan antara keamanan dan fleksibilitas (default) |
high |
Sangat ketat, blokir konten yang sedikit mencurigakan |
Khusus Bahasa Indonesia
- Deteksi kata kasar Bahasa Indonesia termasuk slang dan variasi
- PII detector untuk format Indonesia: NIK/KTP, NPWP, No HP (08xx/+62), rekening bank
- Prompt injection dalam Bahasa Indonesia & English
- Topic filter dengan konteks budaya Indonesia
- Self-harm detection dengan hotline Indonesia (Into The Light 021-7884-5555, Kemenkes 119 ext. 8)
Struktur Proyek
guardrails-id/
guardrails/
__init__.py # Package exports
core.py # GuardrailsPipeline โ orchestrator utama
guards/
__init__.py
toxic.py # Toxic content detector
pii.py # PII detector & scrubber
injection.py # Prompt injection detector
topic_lang.py # Topic filter & language detector
app.py # Gradio demo (HuggingFace Space)
tests.py # Test suite (31 tests)
deploy_to_hf.py # Script deploy ke HuggingFace
Test
python tests.py
RESULTS: 31 passed, 0 failed, Total 31
API Reference
GuardrailsPipeline.check_input(text) -> dict
| Key | Type | Deskripsi |
|---|---|---|
safe |
bool |
True jika input aman |
input |
str |
Teks input asli |
sanitized_input |
str |
Teks dengan PII di-mask |
violations |
list |
Daftar pelanggaran yang ditemukan |
guard_results |
dict |
Detail hasil per-guard |
summary |
str |
Ringkasan hasil pengecekan |
GuardrailsPipeline.check_output(output_text, input_text="") -> dict
| Key | Type | Deskripsi |
|---|---|---|
safe |
bool |
True jika output aman |
output |
str |
Teks output asli |
sanitized_output |
str |
Teks dengan PII di-mask |
violations |
list |
Daftar pelanggaran yang ditemukan |
guard_results |
dict |
Detail hasil per-guard |
summary |
str |
Ringkasan hasil pengecekan |
GuardrailsPipeline.run(input_text, output_text="") -> dict
| Key | Type | Deskripsi |
|---|---|---|
safe |
bool |
True jika input dan output aman |
input_check |
dict |
Hasil check_input() |
output_check |
dict |
Hasil check_output() (atau None) |
Built by Jekardah AI Lab
MIT License
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐ Ask for provider support