Latar Belakang
Salah satu nilai utama Kastau adalah menyajikan kebijakan pemerintah dalam bahasa yang mudah dipahami warga biasa. Saat ini, field summary dan detail pada setiap kebijakan diisi secara manual, yang tidak skalabel untuk ratusan dokumen.
Diperlukan pipeline otomatis yang membaca teks dokumen kebijakan (PDF) dan menghasilkan ringkasan berbahasa Indonesia yang ramah warga menggunakan AI.
Tujuan
Mengotomasi pembuatan ringkasan kebijakan dengan Claude API sebagai bagian dari proses ingest data di backend FastAPI.
Spesifikasi Data Model (FastAPI)
# schemas/summary.py
from pydantic import BaseModel
from typing import Optional
class SummaryRequest(BaseModel):
policy_id: int
raw_text: str # teks asli dokumen kebijakan
force_regenerate: bool = False
class SummaryResponse(BaseModel):
policy_id: int
summary: str # 2–3 kalimat untuk warga umum
detail: str # penjelasan lebih lengkap (3–5 paragraf)
generated_at: datetime
model_used: str # nama model AI yang dipakai
class PolicyWithSummary(BaseModel):
id: int
title: str
summary: Optional[str]
detail: Optional[str]
summary_status: Literal["pending", "generated", "failed"]
Endpoint yang Dibutuhkan
POST /api/v1/admin/summarize/{policy_id} # generate ringkasan untuk 1 kebijakan
POST /api/v1/admin/summarize/batch # generate untuk semua yang belum ada ringkasan
GET /api/v1/admin/summarize/status # lihat status: berapa yang sudah/belum diproses
Alur Pipeline
PDF / Teks Dokumen
│
▼
[Text Extractor] ── pdfplumber / pypdf2
│
▼
[Prompt Builder] ── format prompt + konteks kebijakan daerah
│
▼
[Claude API] ── claude-sonnet-4-6
│
▼
[Response Parser] ── ekstrak summary & detail dari response
│
▼
[Database Update] ── UPDATE policies SET summary=..., detail=...
Contoh Prompt
SUMMARY_PROMPT = """
Kamu adalah asisten yang membantu warga Kabupaten Jayapura memahami peraturan daerah.
Berdasarkan teks peraturan berikut, buatlah:
1. **Ringkasan singkat** (2-3 kalimat) yang bisa dipahami warga biasa, tanpa istilah hukum
2. **Penjelasan lengkap** (3-5 paragraf) yang menjelaskan: apa itu, siapa yang terdampak, dan apa manfaatnya
Teks peraturan:
{raw_text}
Format output JSON:
{{
"summary": "...",
"detail": "..."
}}
"""
Task
Acceptance Criteria
Referensi
Latar Belakang
Salah satu nilai utama Kastau adalah menyajikan kebijakan pemerintah dalam bahasa yang mudah dipahami warga biasa. Saat ini, field
summarydandetailpada setiap kebijakan diisi secara manual, yang tidak skalabel untuk ratusan dokumen.Diperlukan pipeline otomatis yang membaca teks dokumen kebijakan (PDF) dan menghasilkan ringkasan berbahasa Indonesia yang ramah warga menggunakan AI.
Tujuan
Mengotomasi pembuatan ringkasan kebijakan dengan Claude API sebagai bagian dari proses ingest data di backend FastAPI.
Spesifikasi Data Model (FastAPI)
Endpoint yang Dibutuhkan
Alur Pipeline
Contoh Prompt
Task
summary_status,raw_text,generated_atke tabelpoliciesSummaryServiceyang memanggil Claude APIAcceptance Criteria
force_regenerate=true)Referensi
claude-sonnet-4-6