프로젝트 / AI 에이전트·자동화
AI 에이전트·자동화구조화 추출JSON Schema규칙 엔진할루시네이션 억제PoC
교통사고 현장조사 AI — 과실 분류·약도 자동 생성
사고 진술을 공개 과실 도표 코드로 분류하고, AI는 의미만·좌표는 규칙 엔진이 만드는 2단 구조 PoC
- 기간
- 2026.08
- 형태
- 의뢰 프로젝트
- 상태
- 프로토타입
- 역할
- 기술 진단·문제 재정의·PoC 개발
6/6건정답 도표 분류축 일치(최빈 결과 기준)
26/28회동일 입력 반복 일치
101개실측 확인한 차대차 과실 도표
1.5초답변 생성 구간 중앙값(첫 응답까지 중앙값 10.0초)
문제
자동차보험 교통사고 현장조사를 수행하는 법인은 이미 업무 앱과 SVG 약도 편집기를 갖고 있었고, 여기에 사고 내용 구조화·사고처리 도우미·약도 자동 생성 등 AI 기능을 붙이려 했습니다. 요청서는 «라벨링된 데이터가 없다»는 전제에서 출발했기 때문에, 그대로라면 정확도를 측정하거나 환각을 통제할 기준이 없었습니다.
또한 LLM에게 약도 좌표까지 맡기면 결과가 매번 달라져 회귀 테스트가 어려워지는 구조적 위험이 있었습니다.
접근
- 공개된 과실비율 인정기준의 도표 코드가 곧 라벨 공간이고, 각 도표의 «사고 상황» 문장이 기준 예시라는 점을 실측해 문제를 분류·검색으로 재정의했습니다.
- AI는 의미(Scene JSON)만 추출하고, 좌표(Layout JSON)는 LLM 호출 0회의 결정론적 배치 solver가 만들도록 분리했습니다.
- 스키마에 unknowns 필드와 근거 인용(evidence_span)을 두어, 정보가 부족하면 배치를 거부하고 역질문하게 했습니다.
- 환각 억제는 도표 코퍼스(1차 근거)와 공개 법령 API(실존 검증)의 2단 구조로 설계했습니다.
- 케이스당 5회 반복 호출로 안정성을 재고, 스트리밍 수신으로 «느린 것»과 «멈춘 것»을 구분했습니다.
구조
진술 입력조사자가 작성한 사고 내용 텍스트를 받습니다.
의미 추출LLM 1회 호출로 도로·신호·차량 행동·충돌·양측 주장·쟁점을 Scene JSON으로 뽑습니다.
도표 분류추출 축을 과실 도표 코드와 대조해 후보를 정합니다.
배치결정론적 solver가 차량 경로와 충돌 지점을 계산해 Layout JSON을 만듭니다.
렌더정지 약도와 3~5초 애니메이션 SVG를 생성합니다.
주요 기능
Scene JSON 스키마도로 형태·신호·차로·차량 행동·충돌 관계·양측 주장·쟁점·가감요소·unknowns를 구조화합니다.
근거 인용가감요소마다 원문 인용을 붙여, 조사자가 «왜 이 항목인가»를 검토·반려할 수 있습니다.
쟁점 보존양측이 모두 선진입을 주장하면 한쪽으로 결론 내지 않고 쟁점 목록으로 남깁니다.
3단계 충돌 판정경로 교차 → 종점 접촉 → 추돌 판정 순으로 충돌 지점을 찾고, 어느 단계에서 나왔는지 기록합니다.
정보 부족 시 배치 거부필수 필드가 없으면 그리지 않고 신호기 유무·진입 방위 등 역질문 5건을 생성합니다.
결과
- 테스트 6건(교차로·진로변경·추돌·주차장·정보부족)에서 최빈 결과가 정답 도표축과 6/6 일치했습니다.
- 약도 자동 배치 5/5, 정보부족 1건은 의도대로 배치 거부와 역질문을 냈습니다.
- 후방 추돌 케이스에서 도로 형태 축이 5회 중 2회 뒤집히는 현상을 찾아 원인과 처방 4가지를 정리했습니다.
- 실패 기록을 포함한 PoC 리포트와 1장 요약을 작성했습니다.
포인트
가장 중요한 판단은 «AI에게 무엇을 맡기지 않을 것인가»였습니다. 첫 실행에서 배치 실패 3건이 났을 때 원인이 전부 solver 코드에 있었고 코드 수정으로 해결됐습니다. 좌표를 LLM에 맡겼다면 «가끔 이상하게 그려짐»으로 남아 프롬프트만 계속 고쳤을 것입니다.
직전 실행에서 5/5였던 케이스가 다음 실행에서 3/5로 흔들린 것도 교훈이었습니다. 작은 표본의 «완벽»은 운일 수 있으므로, 정확도는 실데이터 골든셋과 반복 측정으로 다시 재야 한다고 판단했습니다.
기술
PythonGemini APIJSON SchemaSSE 스트리밍SVG결정론적 배치 solver공개 법령 API
상단 영상은 실제 화면이 아니라 구조를 보여 주는 재구성 목업입니다. 고객 정보는 익명화했습니다.