Tutorial Promptfoo: Panduan Lengkap Evaluasi dan Testing LLM
Pendahuluan
Dalam pengembangan aplikasi berbasis Large Language Model (LLM), salah satu tantangan terbesar adalah memastikan bahwa output model konsisten, akurat, dan sesuai dengan kebutuhan bisnis. Tanpa framework evaluasi yang tepat, developer sering kali mengandalkan pengujian manual yang memakan waktu dan tidak terukur. Di sinilah Promptfoo hadir sebagai solusi.
Promptfoo adalah tool open-source untuk mengevaluasi dan membandingkan output LLM secara sistematis. Dengan Promptfoo, Anda dapat menguji berbagai prompt, membandingkan performa antar model, mendeteksi regresi, dan memastikan kualitas output sebelum deploy ke production. Tool ini mendukung berbagai provider seperti OpenAI, Anthropic Claude, Google Gemini, Ollama, dan banyak lagi.
Tutorial ini akan memandu Anda mulai dari instalasi, konfigurasi dasar, hingga penggunaan lanjutan Promptfoo untuk membangun pipeline evaluasi LLM yang robust.
Mengapa Promptfoo?
Sebelum membahas detail teknis, berikut alasan mengapa Promptfoo layak menjadi bagian dari workflow pengembangan LLM Anda:
- Perbandingan Model Side-by-Side: Bandingkan output dari berbagai model dan prompt dalam satu tabel
- Automated Testing: Definisikan test cases sekali, jalankan berulang kali secara otomatis
- Regression Detection: Deteksi penurunan kualitas output saat mengubah prompt atau model
- Cost Optimization: Bandingkan model mahal vs murah untuk menemukan sweet spot antara kualitas dan biaya
- CI/CD Integration: Integrasikan evaluasi LLM ke dalam pipeline CI/CD Anda
- Red Teaming: Uji keamanan dan ketahanan prompt terhadap serangan adversarial
Instalasi
Prasyarat
Pastikan Anda sudah menginstall Node.js versi 18 atau lebih baru:
node --version
v18.0.0 atau lebih baru
Install Promptfoo
Anda dapat menginstall Promptfoo secara global menggunakan npm:
npm install -g promptfoo
Atau menggunakan npx tanpa instalasi global:
npx promptfoo@latest --help
Untuk project-level installation:
mkdir llm-eval-project
cd llm-eval-project
npm init -y
npm install promptfoo
Verifikasi Instalasi
promptfoo --version
Setup API Keys
Promptfoo membutuhkan API key dari provider LLM yang akan Anda gunakan. Set environment variable sesuai provider:
# OpenAI
export OPENAIAPIKEY="sk-your-key-here"
Anthropic
export ANTHROPICAPIKEY="sk-ant-your-key-here"
Google Gemini
export GOOGLEAPIKEY="your-key-here"
Anda juga bisa menyimpan key dalam file .env:
OPENAIAPIKEY=sk-your-key-here
ANTHROPICAPIKEY=sk-ant-your-key-here
Penggunaan Dasar
Inisialisasi Project
Mulai dengan menginisialisasi project Promptfoo:
promptfoo init
Perintah ini akan membuat file promptfooconfig.yaml yang merupakan file konfigurasi utama.
Struktur Konfigurasi Dasar
Buat file promptfooconfig.yaml dengan konfigurasi berikut:
description: "Evaluasi Chatbot Customer Service"
prompts:
- "Kamu adalah customer service yang ramah. Jawab pertanyaan berikut: {{question}}"
- "Sebagai asisten customer service profesional, berikan jawaban yang jelas dan ringkas untuk: {{question}}"
providers:
- openai:gpt-4o-mini
- openai:gpt-4o
- anthropic:messages:claude-sonnet-4-20250514
tests:
- vars:
question: "Bagaimana cara mengembalikan barang yang sudah dibeli?"
assert:
- type: contains
value: "pengembalian"
- type: llm-rubric
value: "Jawaban harus menyebutkan langkah-langkah pengembalian barang dengan jelas"
- vars:
question: "Berapa lama pengiriman ke luar Jawa?"
assert:
- type: contains
value: "hari"
- type: llm-rubric
value: "Jawaban harus menyebutkan estimasi waktu pengiriman"
- vars:
question: "Apakah ada diskon untuk pembelian dalam jumlah besar?"
assert: