- 공식 문서와 사용자 상황을 기반으로 사망 이후 절차를 안내하는 RAG 기반 AI 챗봇 서버
-
동행 AI Chatbot은 사망 이후 유족이 처리해야 하는 절차를 공식 문서 기반으로 안내하는 AI 챗봇 서버입니다.
-
공공기관 문서 검색 결과와 사용자 체크리스트 정보를 함께 반영하여 출처 기반의 개인화된 답변을 제공합니다.
| 기능 | 설명 |
|---|---|
| RAG 기반 답변 | 공식 문서를 벡터 DB에서 검색하여 답변 근거로 사용 |
| 개인화 응답 | 사용자 체크리스트와 이전 대화 내역 반영 |
| 출처 기반 응답 | 참고한 공식 문서 Source 제공 |
| Prompt Injection 방어 | 사용자 입력과 참고문서를 명령이 아닌 데이터로 처리 |
| SSE 스트리밍 | AI 응답을 실시간으로 스트리밍 |
| Virtual Thread 적용 | 동시 스트리밍 요청 처리 안정성 개선 |
| Fallback 응답 | AI 응답 실패 시 기본 안내 메시지를 반환하여 서비스 중단 방지 |
사용자 질문
↓
공식 자료 벡터 DB 검색
(RAG / Cosine Similarity)
↓
사용자 Context 결합
(체크리스트 · 이전 대화 반영)
↓
User Prompt 구성
(XML 기반 Context 구조화)
↓
System Prompt 구성
(답변 정책 · Prompt Injection 방어)
↓
LLM 응답 생성
↓
출처 기반 개인화 응답 반환
- AI 응답 생성 실패 시 Retry 기반 재시도 수행
- 스트리밍 및 모델 호출 예외 로그를 기록하여 장애 추적 가능하도록 구성
- OpenAI API 장애 발생 시 Gemini 모델로 Fallback 처리
- Main Server에서 기본 안내 메시지를 반환하여 서비스 중단 방지
- 공공기관 PDF 문서 기반 벡터 검색
- Cosine Similarity 기반 유사 문서 탐색
- Top-K 기반 관련 문서 검색
- Chunk Size 500 기반 문서 청킹
- 행정 · 법률 문서의 문맥 유지 고려
- Garbage Chunk Filtering 기반 불필요한 텍스트 제거
- 문서 단위 Source 메타데이터 관리
- 출처 기반 응답 생성
- Reference Source 정규화 및 중복 제거
- 답변 범위 제한
- 답변 톤 및 출력 형식 제어
- 참고문서 기반 응답 정책
- 체크리스트 기반 개인화 응답 정책
- Prompt Injection 방어 규칙 적용
- XML 기반으로 Context를 구조화하여 LLM이 각 데이터를 명확히 구분하도록 구성
- 사용자 질문
- 사용자 체크리스트 현황
- 이전 대화 내역
- RAG 검색 결과 문서
- 참고문서 Source 목록
- PostgreSQL 실행 필요
- OpenAI 또는 Google API Key 필요
application-example.yml을 참고하여
src/main/resources/application.yml 파일을 생성합니다.
./gradlew bootRun
./gradlew build -x test
docker build -t chatbot-app:latest .
docker run -d \
--name chatbot-app \
-p 8082:8082 \
chatbot-app:latest
사망신고는 어떻게 하나요?
사망신고는 사망 사실을 알게 된 날부터
1개월 이내에 해야 합니다.
신고는 사망지, 매장지 또는 화장지의
시·구·읍·면 사무소나 주민센터에서 할 수 있으며,
방문 또는 우편으로 신청 가능합니다.
신고 시에는 다음 서류가 필요합니다.
- 사망진단서 또는 검안서
- 신고인 신분증 사본
- 가족관계등록부(전산 확인 가능 시 생략 가능)
현재 체크리스트 기준으로
사망신고 절차는 미완료 상태이며,
2026년 6월 19일까지 처리해야 합니다.
[출처]
- 생활법령정보 사망신고
- 가족관계의 등록 등에 관한 법률