Guardrails AI: Validasi dan Filter Output LLM

# Guardrails AI: Validasi dan Filter Output LLM ## Pendahuluan Large Language Models (LLM) sangat powerful dalam menghasilkan teks, tetapi output-nya tidak selalu dapat diandalkan. LLM bisa menghasi...

By Ruby Abdullah · · tutorial
GuardrailsLLMValidationSafetyPython

Guardrails AI: Validasi dan Filter Output LLM

Pendahuluan

Large Language Models (LLM) sangat powerful dalam menghasilkan teks, tetapi output-nya tidak selalu dapat diandalkan. LLM bisa menghasilkan informasi yang tidak akurat, mengandung data sensitif seperti PII (Personally Identifiable Information), atau tidak sesuai dengan format yang diharapkan. Dalam aplikasi produksi, terutama yang berhadapan langsung dengan pengguna, hal ini bisa menjadi masalah serius.

Guardrails AI hadir sebagai solusi untuk memvalidasi, memfilter, dan memstrukturkan output LLM. Framework ini menyediakan lapisan keamanan antara LLM dan pengguna akhir, memastikan bahwa setiap respons memenuhi kriteria kualitas dan keamanan yang telah ditentukan.

Dalam tutorial ini, kita akan mempelajari cara menggunakan Guardrails AI mulai dari instalasi, penggunaan Guard object, berbagai validator bawaan, integrasi dengan Pydantic, hingga membangun chatbot yang aman untuk pelanggan.

Instalasi

Instal Guardrails AI dan dependensi yang diperlukan:

pip install guardrails-ai

Setelah instalasi, konfigurasi Guardrails CLI dan instal validator dari Guardrails Hub:

guardrails configure

Instal validator dari Hub

guardrails hub install hub://guardrails/regexmatch

guardrails hub install hub://guardrails/detectpii

guardrails hub install hub://guardrails/toxicity

guardrails hub install hub://guardrails/provenancellm

Pastikan API key LLM Anda sudah dikonfigurasi:

export OPENAIAPIKEY="sk-your-api-key-here"

Guard Object

Guard adalah objek utama dalam Guardrails AI. Guard berfungsi sebagai wrapper di sekitar pemanggilan LLM, menambahkan validasi pada input dan/atau output.

from guardrails import Guard

from guardrails.hub import RegexMatch

import openai

Buat Guard sederhana

guard = Guard().use(

RegexMatch(regex=r"^\d{4}-\d{2}-\d{2}$",

onfail="exception")

)

Gunakan Guard untuk memanggil LLM

result = guard(

model="gpt-4o-mini",

messages=[{

"role": "user",

"content": "Berikan tanggal hari ini dalam format YYYY-MM-DD saja, tanpa teks lain."

}]

)

print(f"Output tervalidasi: {result.validatedoutput}")

print(f"Status validasi: {result.validationpassed}")

Guard mendukung beberapa aksi ketika validasi gagal:

# onfail options:

"exception" - Raise exception

"filter" - Hapus output yang gagal validasi

"fix" - Coba perbaiki output

"reask" - Minta LLM untuk menghasilkan ulang

"noop" - Lanjutkan tanpa aksi (hanya log)

guardwithreask = Guard().use(

RegexMatch(

regex=r"^[A-Z][a-z]+$",

onfail="reask" # Minta LLM coba lagi jika gagal

)

)

Validators

Guardrails AI menyediakan berbagai validator bawaan melalui Guardrails Hub. Berikut adalah beberapa yang paling umum digunakan:

Regex Validation

from guardrails import Guard

from guardrails.hub import RegexMatch

Validasi format email

emailguard = Guard().use(

RegexMatch(

regex=r"^[a-zA-Z0-9.%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$",

onfail="reask"

)

)

result = emailguard(

model="gpt-4o-mini",

messages=[{

"role": "user",

"content": "Berikan contoh alamat email bisnis yang valid."

}]

)

print(f"Email: {result.validatedoutput}")

PII Detection (Deteksi Data Pribadi)

from guardrails import Guard

from guardrails.hub import DetectPII

Guard untuk mendeteksi dan menghapus PII

piiguard = Guard().use(

DetectPII(

piientities=[

"EMAILADDRESS",

"PHONENUMBER",

"PERSON",

"CREDITCARD",

"IPADDRESS",

"ID"

],

onfail="fix" # Otomatis mask PII yang terdeteksi

)

)

result = piiguard(

model="gpt-4o-mini",

messages=[{

"role": "user",

"content": "Ceritakan tentang pelanggan kami John Doe yang bisa dihubungi di john@email.com atau 081234567890."

}]

)

print(f"Output aman: {result.validatedoutput}")

Artikel Terkait

Tutorial TRL: Post-Training LLM dengan SFT, DPO, dan Reward Modeling

Post-Training LLM dengan TRL: SFT, Reward Modeling, dan DPO Setelah sebuah base language model selesai dipretraining, mo...

Tutorial Axolotl: Fine-Tuning LLM Berbasis Konfigurasi YAML

Fine-Tuning LLM Berbasis Konfigurasi dengan Axolotl Kebanyakan proyek fine-tuning dimulai dengan cara yang sama: seseora...

Tutorial PydanticAI: Framework Agent LLM yang Type-Safe

Membangun Agen LLM yang Type-Safe dengan PydanticAI PydanticAI adalah framework agen dari tim di balik Pydantic, diranca...

Tutorial Unsloth: Fine-Tuning LLM yang Cepat dan Hemat Memori

Fine-Tuning LLM Secara Efisien dengan Unsloth Dahulu, melakukan fine-tuning model bahasa besar membutuhkan server multi-...