Skip to content

About

SAVERS — 재난 정보를 개인의 행동으로 전환하는 맞춤형 재난 대응 어시스턴트 (2026 제8회 K-디지털 트레이닝 해커톤 / 팀 세이버스)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

SAVERS — 재난 정보를 "지금 당신이 할 행동"으로 바꾸는 개인 맞춤 재난 대응 어시스턴트

CI (lint + test)

2026 제8회 K-디지털 트레이닝 해커톤 · 팀 세이버스(SAVERS)

무엇을 해결하는가

재난 상황에서 부족한 것은 정보가 아니라 정보를 개인의 행동으로 전환하는 능력입니다. 긴급재난문자·안전디딤돌은 같은 지역의 모든 사람에게 동일한 내용을 방송합니다. 그러나 스스로 판단하거나 대피하기 어려운 사람 — 아동·고령자·장애인, 그리고 언어 장벽이 있는 외국인 근로자 — 에게 필요한 것은 "지금 당신이 그곳까지 갈 수 있는 사람인지, 갈 수 없다면 무엇을 대신해야 하는지" 입니다.

SAVERS는 경보 발령 시 등록 주민을 매칭하고, 알림 링크 진입 시점에 현재 위치를 단 한 번만 확인한 뒤, 행정안전부 국민행동요령에 근거한 개인 맞춤 행동지침을 PWA 웹푸시(FCM) 로 전달합니다 (ADR-0005 — 카카오 알림톡은 채택하지 않습니다). 생성된 문안은 변형 없이 그대로 전달됩니다 — 템플릿 슬롯 치환 계층은 두지 않습니다.

MVP 1차 대상 재난: 호우·도시침수.

설계 제약 (타협 대상이 아님)

제약 이유
상시 위치 추적 없음 위치는 알림 진입 시 1회만 읽고 세션 범위로만 사용, 저장하지 않음
생성은 근거 기반만 검색된 국민행동요령 원문만 인용하도록 가드레일로 강제 — 환각 억제율은 측정 지표
취약계층 설치 부담 0 등록·설정은 보호자/복지관/지자체가 대행. 본인 앱 설치를 요구하는 설계는 배제
오프라인 폴백 필수 공공 API 장애 시 사전 캐시된 대피소·행동요령으로 degrade, 무음 실패 금지
최소 수집·암호화 위치·장애 여부 등 민감 필드는 최소 수집하고 암호화

구조 (모노레포)

├── apps/
│   ├── backend/        # FastAPI — 재난 Open API 수집, 행정동/위치 매칭, 발송 오케스트레이션
│   ├── ai-engine/      # 독립 배포 단위 — RAG + 가드레일 생성, eval/ 품질 측정 하네스 포함
│   └── frontend/       # PWA · 웹푸시 딥링크 랜딩 · Interactive Care 챗봇
├── packages/contracts/ # 모듈 간 계약(OpenAPI·공유 스키마) 단일 원천
├── infra/              # docker-compose, .env 템플릿, AWS 프로비저닝
├── e2e/                # 앱을 가로지르는 관통 테스트(QA 소유) — HTTP 전용·non-required CI
├── scripts/            # 환경 점검·로컬 CI·레포 설정 스크립트
├── notebooks/          # 실험 기록 (검증되면 apps/<app>/src 로 함수화 이전)
└── docs/               # 설계 문서 · ADR · 역할별 가이드/일정

AI를 인라인 호출이 아니라 독립 배포 가능한 모듈로 두는 것이 이 구조의 핵심입니다 (→ docs/adr/0001-monorepo.md, apps/ai-engine/README.md).

빠른 시작

git clone https://github.com/team-savers/savers-project.git && cd savers-project

# 환경 점검 → 확인 후 복구 → 로컬 CI까지 한 번에
bash scripts/setup-dev.sh
# Windows PowerShell: powershell -ExecutionPolicy Bypass -File scripts\setup-dev.ps1

설치 항목(가상환경·editable 설치·pre-commit 훅·nbstripout 필터)을 실제로 등록됐는지까지 확인합니다. 수동 절차와 오류별 대처는 docs/공통_가이드/환경_세팅_가이드.md를 보세요.

python3 -m venv .venv && source .venv/bin/activate                  # 수동으로 하려면
pip install -e "./apps/backend[dev]" -e "./apps/ai-engine[dev]"
pip install pre-commit && pre-commit install && pre-commit install --hook-type pre-push

실행

uvicorn api.main:app --reload --port 8000                 # backend  → :8000/docs
uvicorn ai_engine.service:app --reload --port 8100        # ai-engine → :8100/docs

품질 게이트 (커밋/PR 전 필수 — CI와 동일)

bash scripts/run-tests.sh        # 전체 앱 lint + mypy + pytest

품질 측정 방식

품질은 설문이나 눈대중이 아니라 재현 가능한 스크립트로 증명합니다. 지표 정의와 목표치는 apps/ai-engine/eval/README.md를, 측정 결과 해석은 AGENTS.md를 참고하세요. 숫자 목표는 실측으로 대체되는 가설값입니다.

팀

6인 접수 → 2인 중도 하차로 4인 체제. 없어진 두 역할은 다른 포지션에 흡수됐습니다 — Frontend/UX는 AI/RAG가, QA/Security와 Infra는 PM이 가져갔습니다. 상세: docs/역할_가이드/README.md.

이름 역할 담당
안은남 PM · QA/보안 · 인프라 마일스톤·통합·최종 데모, 품질/보안 판정, 인프라·배포, 임계값 실험
신호정 Tech Lead 아키텍처·모듈 간 계약·워킹 스켈레톤·가드레일 설계
김소원 AI 모델 · RAG · 프론트엔드 대피소 부합도 모델, 행동 로그 기반 보호자 QA·검증, PWA 사용자·보호자 프론트엔드
김도혁 Backend 재난 Open API 연동, 침수 회피 경로(OSMnx+networkx), 이벤트 로그 파이프라인, FCM 발송·폐루프 오케스트레이션

문서

라이선스

MIT — LICENSE

레포 스캐폴딩은 Yopkigom/ai-project-template을 모노레포 구조로 이식한 것입니다.

About

SAVERS — 재난 정보를 개인의 행동으로 전환하는 맞춤형 재난 대응 어시스턴트 (2026 제8회 K-디지털 트레이닝 해커톤 / 팀 세이버스)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages