Sistem klasifikasi teks otomatis menggunakan Google Gemini AI untuk mengkategorikan request klaim asuransi berdasarkan rules yang sudah ditentukan.
- Klasifikasi Otomatis - Menggunakan Gemini AI untuk mengklasifikasikan teks klaim ke kategori yang tepat
- Multi-Kategori - Mendukung berbagai jenis klaim (Kesehatan, Kecelakaan, Jiwa, Properti, Perjalanan)
- Confidence Score - Memberikan skor kepercayaan untuk setiap klasifikasi
- Rules Engine - Menyediakan informasi dokumen yang diperlukan, batas waktu, dan limit klaim
- Ekstraksi Entitas - Mengidentifikasi informasi penting seperti nama, tanggal, lokasi, dan nominal
- Mode Batch - Klasifikasi multiple klaim sekaligus
- Mode Interaktif - Input klaim manual untuk testing
klasifikasi_senopati/
├── classifier.py # Kelas utama untuk klasifikasi
├── config.py # Konfigurasi kategori dan rules
├── main.py # Contoh penggunaan
├── requirements.txt # Dependencies
├── .env.example # Template environment variables
└── README.md # Dokumentasi
cd /Users/gading/Documents/code/klasifikasi_senopatipython -m venv venv
source venv/bin/activate # Mac/Linuxpip install -r requirements.txt# Salin template
cp .env.example .env
# Edit file .env dan masukkan API key Anda
# Dapatkan API key di: https://aistudio.google.com/app/apikeyfrom classifier import KlasifikasiKlaim
# Inisialisasi
classifier = KlasifikasiKlaim()
# Klasifikasi teks klaim
teks_klaim = """
Saya ingin mengajukan klaim untuk biaya rawat inap di RS Mitra Keluarga.
Saya didiagnosa typhoid dan dirawat selama 4 hari.
Total biaya: Rp 12.500.000
"""
hasil = classifier.klasifikasi(teks_klaim)
# Akses hasil
print(f"Kategori: {hasil.nama_kategori}")
print(f"Confidence: {hasil.confidence_score:.1%}")
print(f"Prioritas: {hasil.prioritas}")
print(f"Dokumen Diperlukan: {hasil.dokumen_diperlukan}")# Gunakan method format_hasil untuk tampilan yang rapi
print(classifier.format_hasil(hasil))daftar_klaim = [
"Klaim untuk biaya operasi...",
"Laporan kecelakaan lalu lintas...",
"Pengajuan santunan kematian..."
]
hasil_batch = classifier.klasifikasi_batch(daftar_klaim)
for hasil in hasil_batch:
print(hasil.kategori, hasil.confidence_score)python main.py --interactivepython main.py| Kode | Nama | Prioritas |
|---|---|---|
KLAIM_KESEHATAN |
Klaim Kesehatan | Tinggi |
KLAIM_KECELAKAAN |
Klaim Kecelakaan | Tinggi |
KLAIM_JIWA |
Klaim Jiwa | Sangat Tinggi |
KLAIM_PROPERTI |
Klaim Properti | Sedang |
KLAIM_PERJALANAN |
Klaim Perjalanan | Sedang |
KLAIM_TIDAK_VALID |
Klaim Tidak Valid | Rendah |
Edit file config.py:
CLASSIFICATION_CATEGORIES = {
# ... kategori existing ...
"KLAIM_BARU": {
"nama": "Klaim Baru",
"deskripsi": "Deskripsi kategori baru",
"keywords": ["kata", "kunci", "terkait"],
"prioritas": "sedang"
}
}VALIDATION_RULES = {
"dokumen_wajib": {
"KLAIM_BARU": ["Dokumen 1", "Dokumen 2"],
# ...
},
"batas_waktu_klaim": {
"KLAIM_BARU": 30, # hari
},
"batas_maksimum_klaim": {
"KLAIM_BARU": 100000000, # rupiah
}
}GEMINI_CONFIG = {
"model": "gemini-1.5-pro", # untuk akurasi lebih tinggi
"temperature": 0.1,
"max_output_tokens": 2048
}@dataclass
class HasilKlasifikasi:
kategori: str # Kode kategori
nama_kategori: str # Nama kategori
confidence_score: float # 0.0 - 1.0
alasan: str # Penjelasan klasifikasi
prioritas: str # tinggi/sedang/rendah
dokumen_diperlukan: list # List dokumen wajib
batas_waktu_hari: int # Batas waktu klaim
batas_maksimum_klaim: int # Maksimum nominal
ringkasan_kasus: str # Ringkasan klaim
rekomendasi: str # Langkah selanjutnya
raw_response: dict # Response asli dari Gemini- Jangan commit file
.envke repository - Gunakan environment variables untuk production
- API key sudah di-exclude di
.env.example
MIT License
Dibuat dengan ❤️ menggunakan Google Gemini AI