DeepEval: Unit Testing dan Evaluasi untuk Aplikasi LLM

# DeepEval: Unit Testing dan Evaluasi untuk Aplikasi LLM Membangun aplikasi berbasis Large Language Model (LLM) seperti chatbot RAG, asisten AI, atau pipeline generatif bukan hanya soal membuat model...

By Ruby Abdullah · · tutorial
DeepEvalLLM TestingEvaluationUnit TestPython

DeepEval: Unit Testing dan Evaluasi untuk Aplikasi LLM

Membangun aplikasi berbasis Large Language Model (LLM) seperti chatbot RAG, asisten AI, atau pipeline generatif bukan hanya soal membuat model bekerja. Tantangan sebenarnya adalah memastikan kualitas output secara konsisten. Bagaimana Anda tahu bahwa chatbot Anda tidak berhalusinasi? Bagaimana Anda mengukur relevansi jawaban terhadap pertanyaan pengguna? Bagaimana Anda mendeteksi bias atau konten toxic dalam respons?

DeepEval adalah framework open-source yang dirancang khusus untuk menjawab semua pertanyaan tersebut. DeepEval memungkinkan Anda menulis unit test untuk aplikasi LLM layaknya Anda menulis unit test untuk software tradisional, lengkap dengan metrik evaluasi yang sudah teruji dan integrasi pytest.

Apa Itu DeepEval?

DeepEval adalah framework Python untuk testing dan evaluasi aplikasi LLM. Framework ini menyediakan:

  • Unit Testing untuk LLM: Menulis test case yang memvalidasi output LLM dengan metrik terukur
  • 14+ Metrik Bawaan: Hallucination, Answer Relevancy, Faithfulness, Bias, Toxicity, dan lainnya
  • Integrasi Pytest: Jalankan evaluasi LLM seperti test suite biasa
  • Custom Metrics: Buat metrik evaluasi sesuai kebutuhan bisnis Anda
  • Conversational Metrics: Evaluasi kualitas percakapan multi-turn
  • Benchmarks: Uji model Anda terhadap benchmark standar seperti MMLU dan HellaSwag
  • Confident AI Dashboard: Platform monitoring dan analytics untuk hasil evaluasi
  • CI/CD Ready: Integrasikan evaluasi ke dalam pipeline deployment Anda

Instalasi

Instalasi Dasar

pip install deepeval

Instalasi dengan Dependensi Tambahan

# Untuk menggunakan semua fitur termasuk benchmark

pip install deepeval[benchmark]

Untuk integrasi dengan Confident AI

pip install deepeval[dashboard]

Setup Awal

Setelah instalasi, login ke Confident AI (opsional tapi direkomendasikan untuk tracking):

deepeval login

Atau set API key secara manual:

export DEEPEVALAPIKEY="your-api-key-here"

Pastikan juga Anda memiliki API key untuk LLM yang akan digunakan sebagai evaluator:

export OPENAIAPIKEY="your-openai-api-key"

Konsep Dasar: LLMTestCase

LLMTestCase adalah unit dasar dalam DeepEval. Setiap test case merepresentasikan satu interaksi dengan LLM yang ingin Anda evaluasi.
from deepeval.testcase import LLMTestCase

testcase = LLMTestCase(

input="Apa ibu kota Indonesia?",

actualoutput="Ibu kota Indonesia adalah Jakarta. Namun, pemerintah Indonesia sedang membangun ibu kota baru bernama Nusantara (IKN) di Kalimantan Timur.",

expectedoutput="Jakarta (dengan catatan IKN Nusantara sebagai ibu kota baru)",

retrievalcontext=[

"Jakarta adalah ibu kota Indonesia sejak kemerdekaan tahun 1945.",

"Ibu Kota Nusantara (IKN) adalah proyek pemindahan ibu kota Indonesia ke Kalimantan Timur yang diresmikan pada 2024."

]

)

Parameter utama LLMTestCase:

| Parameter | Deskripsi | Wajib |

|-----------|-----------|-------|

| input | Pertanyaan atau prompt yang diberikan ke LLM | Ya |

| actualoutput | Respons aktual dari LLM | Ya |

| expectedoutput | Respons yang diharapkan (ground truth) | Tergantung metrik |

| retrievalcontext | Konteks yang di-retrieve dari knowledge base | Tergantung metrik |

| context | Konteks ground truth (ideal) | Tergantung metrik |

Metrik Evaluasi Bawaan

DeepEval menyediakan berbagai metrik evaluasi yang sudah siap pakai. Berikut penjelasan metrik-metrik utama:

1. Hallucination Metric

Mengukur apakah output LLM mengandung informasi yang tidak didukung oleh konteks yang diberikan.

from deepeval.metrics import HallucinationMetric

from deepeval.testcase import LLMTestCase

metric = HallucinationMetric(threshold=0.5)

testcase = LLMTestCase(

input="Ceritakan tentang perusahaan PT ABC",

Artikel Terkait

RAGAS: Framework Evaluasi untuk Pipeline RAG

RAGAS: Framework Evaluasi untuk Pipeline RAG Pendahuluan Retrieval-Augmented Generation (RAG) telah menjadi arsitektur s...

Tutorial Reflex: Membangun Web App Full-Stack dengan Python Murni

Reflex: Membangun Aplikasi Web Full-Stack dengan Python Murni Reflex memungkinkan Anda membangun aplikasi web lengkap — ...

Tutorial ColBERT & RAGatouille: Late-Interaction Retrieval untuk RAG

ColBERT & RAGatouille: Retrieval Late-Interaction untuk RAG yang Lebih Baik Sebagian besar sistem RAG mengandalkan dense...

Tutorial SGLang: Serving LLM Cepat dan Pemrograman Structured Generation

SGLang: Serving LLM yang Cepat dan Model Pemrograman untuk Generasi Terstruktur SGLang adalah dua hal dalam satu paket: ...