CivicPulse Tricity: 찬디가르를 위한 다국어 AI 디지털 공공 인프라 플랫폼
요약
CivicPulse Tricity는 인도 찬디가르 지역의 다국어 시민 피드백을 통합하는 오픈 소스 공공 인프라 플랫폼입니다. Google Gemini 1.5를 활용하여 펀자브어, 힌디어 등 구어체 언어를 표준화하고, 민원 사항에 긴급도 점수와 시청 부서 라우팅을 부여합니다. 이를 통해 파편화된 데이터를 공간적으로 군집화하고 공무원을 위한 실행 가능한 프로젝트 보고서를 생성합니다.
핵심 포인트
- 다국어(펀자브어/힌디어) 구어체 피드백 처리 및 표준화
- Gemini 1.5를 이용한 긴급도 점수 및 부서 라우팅 자동화
- 파편화된 민원 데이터를 공간적 그리드에 군집화하여 시각화
- 공무원을 위한 실행 가능한 상세 프로젝트 보고서(DPR) 생성
내가 구축한 것
CivicPulse Tricity (NagrikSetu AI)는 Code for Communities Chandigarh 해커톤(Google for Developers 및 GDG Cloud Chandigarh 지원)을 위해 구축된 오픈 소스, 다국어 디지털 공공 인프라(DPI) 플랫폼입니다.
이 플랫폼은 찬디가르, 모할리, 판치쿨라 전역의 풀뿌리 시민 피드백을 통합합니다. 펀자브어(ਪੰਜਾਬੀ), 힌디어(हिंदी), 영어로 녹음된 음성 메모, WhatsApp 메시지 및 웹 티켓을 수집하고, Google Gemini 1.5를 통해 표준화하며, 민원 사항을 Le Corbusier 구역 그리드에 지리 코딩하고, 시청 공무원을 위한 실행 가능한 상세 프로젝트 보고서(DPR)를 생성합니다.
🌐 라이브 데모 포털: shivysidinfo.tech/civicpulse
📊 7장 피치 덱: shivysidinfo.tech/civicpulse/deck
🐙 GitHub 저장소 (MIT): github.com/satanic47/civicpulse-tricity
해결하는 문제점
인도의 여러 도시 중심부 정부들은 파편화된 시민 피드백 루프에 어려움을 겪고 있습니다. 찬디가르 트라이시티 지역에서는 다음과 같은 문제가 발생합니다:
언어 장벽: 풀뿌리 시민의 70% 이상이 구두로 펀자브어나 힌디어로 소통하지만, 기존 시청 포털은 경직된 영어 전용 드롭다운 양식만을 강요합니다.
데이터 파편화: 민원 사항들이 WhatsApp 메시지, 콜센터 로그 및 소셜 미디어에 분산되어 공간적으로 군집되지 않고 존재합니다. 시 공무원들은 고립된 민원을 시스템적인 인프라 실패와 구별할 수 없습니다.
예산 불일치: 수억 루피 규모의 시 자본 예산은 실시간 수요 핫스팟이나 시민 안전의 긴급성보다는 역사적 관성에 기반하여 할당되는 경우가 많습니다.
오픈 소스 및 Google AI가 해결책을 제공하는 방식
[시민 목소리 / WhatsApp (펀자브어 / 힌디어 / 영어)]
↓
[Google Gemini 1.5 다국어 정규화 엔진]
↓
[표준 스키마: 긴급도(1-10) + 시청 부서 라우팅]
↓
[Le Corbusier 구역 그리드 중심 지리 코딩 (구역 1-60)]
↓
[공간적 군집화 및 구역 건강 점수 산정]
↓
[Gemini 시청 자본 DPR 및 예산 생성기]
- 방언 정규화 및 긴급도 점수 부여
시민이 구어체 펀자브어("ਸਾਡੇ ਸੈਕਟਰ 22 ਸ਼ਾਸਤਰੀ ਮਾਰਕੀਟ ਕੋਲ ਪਾਣੀ ਦੀ ਮੁੱਖ ਪਾਈ프 ਫਟ ਗਈ ਹੈ")로 말하거나 문자 메시지를 보낼 경우, Gemini 1.5 엔진은 표준 의도(canonical intent)를 추출하고 위험 긴급성 점수(hazard urgency)를 매기며 (9/10), 해당 지방 자치 구역을 할당합니다:
# app/core/gemini_engine.py
prompt = f"""
Analyze this citizen civic report from Chandigarh Tricity:
Input: "{raw_input}"
Extract the following JSON:
- language_detected: (e.g., "Punjabi (Gurmukhi)", "Hindi", "English")
- category: ("Roads & Infrastructure", "Water Supply & Sewage", "Electricity & Lighting", "Public Safety", "Sanitation")
- summary: (Canonical 1-sentence English description)
- urgency_score: (Integer 1-10 based on immediate safety hazard)
- routed_department: (MCC Division: B&R Roads, Water Supply, Electricity, Sanitation)
- location_extracted: (Sector, Phase, or landmark) """
1. Le Corbusier 섹터 그리드 지오코딩 (Geocoding)
구어체 랜드마크(예: Shastri Market, Patel Market, Kiran Cinema, PU Gate 2)는 Chandigarh Sectors 1–60, Mohali Phases, Panchkula의 사전 계산된 폴리곤 중심점(polygon centroids)과 대조하여 해결됩니다:
# app/core/geocoding.py
def resolve_sector(text: str) -> Dict[str, Any]:
# Regex extraction of sector numbers and Tricity landmarks
match = re.search(r'(?:sector|sec|ਸੈਕਟਰ|सेक्टर)\s*(\d{1,2})', text, re.IGNORECASE)
if match:
sec_num = int(match.group(1))
return SECTOR_CENTROIDS.get(f"Sector {sec_num}", DEFAULT_CENTROID)
return match_landmark(text)
1. Capital DPR Copilot
문제를 열린 민원 티켓으로 남기기보다는, CivicPulse가 사건 클러스터(incident clusters)를 그룹화하고 추정 비용을 Lakhs 단위로 포함한 지방 자치 상세 프로젝트 보고서(Detailed Project Reports, DPRs)를 합성합니다:
json
{
"dpr_id": "DPR-2026-001",
"title": "Sector 22 Shastri Market Underground Water Conduit Overhaul",
"sector_or_ward": "Sector 22 (Ward 14)",
"urgency_level": "CRITICAL",
"estimated_cost_lakhs": 42.5,
"priority_score": 94,
"roi_metric": "Prevents chronic road foundation waterlogging across 1.2 km commercial zone."
}
검증 및 자동화 테스트
전체 시스템은 Docker로 컨테이너화되었으며 21/21개의 자동 단위 테스트를 통과했습니다:
test_gemini_engine.py: 다국어 방언 분류(multilingual dialect triage) 및 폴백 처리(fallback handling)를 검증합니다.
test_geocoding.py: 구역 경계 및 랜드마크 해상도를 확인합니다.
test_api.py: REST 엔드포인트, 음성 업로드 파이프라인, 그리고 핫스팟 클러스터링을 테스트합니다.
향후 계획
저희는 Twilio를 통한 WhatsApp 웹훅 통합과 에어갭(air-gapped) 지방 자치 단체 데이터 센터용 오프라인 로컬 Gemma 2 추론 기능을 통해 CivicPulse Tricity를 확장하고 있습니다.
오픈 웨이트(open weights), 오픈 API, 그리고 Hacktoberfest 2026을 위한 오픈 소스 시민 자부심으로 구축되었습니다!
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기