재난문자, 기상특보, 기관 역할은 서로 다른 화면에 흩어져 있습니다. 이걸 시간순 브리프로 묶을 때, 가장 흔한 실수는 AI에게 요약부터 시키는 것입니다. 그러면 이미 끝난 특보가 현재 위험처럼 섞입니다. 이 안내서는 시간 조건을 코드로 먼저 검산한 뒤, 프롬프트로 초안만 받는 순서를 따릅니다.
이 안내서를 끝내면 특보 유효시간을 기준으로 active 여부를 검산하고, 근거 번호가 달린 상황 브리프 초안을 사람 검토 과제와 분리해 만들 수 있습니다.
순서가 핵심 — 검산 먼저, 요약 나중
요약을 먼저 시키지 않습니다. 먼저 코드로 "어떤 문자가 어느 특보와 겹쳤는지"를 검산해 표를 만들고, 그 표를 프롬프트에 넘깁니다. 검산 없이 요약부터 시키면, 종료된 특보가 진행 중인 위험처럼 보일 수 있습니다.
특보 유효시간 검산
기상특보는 발령 이후이고 종료 이전에 발송된 문자에만 active로 표시합니다. 같은 지역이면서 issued_at ≤ sent_at ≤ valid_until인 경우만입니다.
PYTHON
active = alerts[
(alerts["region"] == row["region"])
& (alerts["issued_at"] <= row["sent_at"])
& (alerts["valid_until"] >= row["sent_at"])
]
겹치는 특보가 없으면 active_alerts에 "비대상"을 채워, 빈칸을 조용히 넘기지 않습니다.
상황 브리프 프롬프트
검산된 표가 준비되면, 이 프롬프트로 초안을 받습니다.
TEXT
당신은 소방 상황실·교육훈련 담당자를 돕는 상황 브리프 작성 보조자입니다. 아래 "검산된 시간순 항목"을 바탕으로 상황 브리프 초안을 작성해 주세요. 먼저 지킬 원칙: - 실제 사건 식별자, 신고자·환자·요구조자 정보, 상세주소, 내부 대응계획은 입력에 없어야 합니다. 보이면 작성을 멈추고 합성·공개 표현으로 바꾸라고 알려 주세요. - 입력 표에 없는 원인, 피해 규모, 책임 소재를 지어내지 마세요. 각 문장 끝에 근거가 된 항목 번호를 붙여 주세요. - 기상특보는 발령시각 이후이고 유효 종료시각 이전에 발송된 문자에만 active로 표시하세요. 시간이 맞지 않으면 "비대상"으로 두세요. - 공식 발표나 판단처럼 단정하지 마세요. 단정 표현은 "추가 확인 필요" 또는 "사람 검토 과제"로 바꿔 주세요. - 이 결과는 공식 브리프가 아니라 내부 검토용 초안임을 전제로 작성하세요. 검산된 시간순 항목 (합성·공개 가능 컬럼만): [message_id, sent_at, region, disaster_type, active_alerts, priority 입력] 출력 형식: 1. 한 줄 요약 — 가장 높은 우선순위 항목 중심으로, 근거 항목 번호를 포함합니다 2. 시간순 브리프 — 각 항목에 발송시각·지역·재난유형·active 특보·근거 번호를 적습니다 3. 우선 검토 과제 — 고위험·표현 불일치·공개 범위 검토 항목을 담당 역할과 사유와 함께 적습니다 4. 공개·보고 전 사람이 확인할 항목 — 실제 사건 식별 가능성·개인정보·공식 판단 표현을 점검합니다
우선순위와 사람 검토 과제
코드가 점수를 매겨 검토 순서를 나눕니다(점수가 높을수록 먼저).
PYTHON
if score >= 5: return "즉시 검토" if score >= 4: return "우선 검토" if score >= 3: return "당일 검토" return "기록 보존"
그리고 다음 세 경우는 자동으로 사람 검토 과제로 분리됩니다.
- 고위험 문자와 기상특보가 같은 지역·시간대에 겹칠 때
- 재난유형과 특보유형 표현이 다를 때 (사람이 대조)
- 소방 출처 문구를 공개 가능 범위와 분리해야 할 때
▸ 소방 활용 포인트
상황실·훈련에서 재난문자와 특보를 한 화면에 모을 때 씁니다. 특보가 끝난 뒤 온 문자를 active로 표시하지 않는 것이 핵심 — 그 시간 검산을 사람의 눈이 아니라 코드가 먼저 합니다.⚠️ 흔한 실수
이 결과는 공식 브리프가 아니라 내부 검토용 초안입니다. 실제 재난문자 원문·사건번호·내부 대응계획은 넣지 마세요. 공식 판단·발표는 사람이 합니다.