재발 여부 판정, 연관 이슈 검색, 관련 정보 제공이라는 세 가지 요청을 탭 세 개가 아니라 한 장의 이슈 분석 리포트로 묶었다. 대화형 채팅과 구조화 리포트 두 방식을 나란히 놓고 비교한 과정도 함께 정리했다.
이 글의 순서
현업이 요청한 세 가지
이슈 등급 추천 기능을 내놓은 뒤 현업에서 다음 요청이 왔다. 이슈를 분류해 주는 것보다 엔지니어링 관점에서 분석과 재발 방지에 도움이 되는 기능이 필요하다는 것이었다.
- 이 이슈가 처음 난 건지, 전에도 났던 건지 알려 달라.
- 비슷한 과거 이슈를 찾아 달라.
- 이슈와 관련된 정보를 한곳에서 보여 달라.
처음에는 이걸 우선순위를 매긴 기능 목록으로 정리했다. 연관 이슈 검색, 초발·재발 판정, 관련 정보 패널, LLM 대책 추천. 그런데 이걸 탭 네 개로 만들면 사용자는 같은 이슈번호를 네 번 입력하게 된다.
탭 네 개 대신 리포트 한 장
네 가지는 전부 '이 이슈를 둘러싼 과거 데이터'다. 묻는 대상이 이슈 한 건으로 같다. 그래서 이슈번호 하나를 넣으면 한 화면에 위에서 아래로 이어지는 분석 리포트로 묶었다.
이슈 분석 리포트 구성
1~3은 LLM 없이 데이터만으로 만든다. 4는 LLM 연동 후 채운다.
섹션별로 신경 쓴 것
초발·재발 판정은 구조화 컬럼으로
재발 여부를 텍스트 유사도로 판단하면 애매해진다. 같은 설비 ID, 같은 공정, 같은 발생 형태라는 명확한 조건으로 과거 이슈를 매칭한다. 결과는 "같은 설비에서 세 번째 유사 이슈"처럼 한 줄로 보여준다. 재발이면 이전에 세운 대책이 왜 효과가 없었는지 검토할 계기가 된다.
연관 이슈는 원인과 대책까지 같이
비슷한 이슈 목록만 보여주면 담당자가 하나씩 열어 봐야 한다. 각 이슈의 원인과 대책을 목록에 바로 붙였다. 담당자는 처음부터 분석하지 않고 과거 대책을 출발점으로 쓸 수 있다. 유사도는 이미 등급 분류에 쓰던 텍스트 전처리를 그대로 재활용했다.
LLM 대책 초안은 마지막에, 근거와 함께
LLM 섹션을 맨 아래에 둔 데는 이유가 있다. 위의 세 섹션이 LLM에 들어갈 재료이자, 사람이 LLM 답을 검증할 근거다. 대책 초안에는 참고한 과거 이슈 번호를 같이 표시해서 근거 없는 문장을 걸러낼 수 있게 했다. LLM API 승인을 기다리는 동안에는 1~3을 먼저 완성했다.
대화형과 리포트형을 나란히 비교했다
같은 기능을 두 가지 방식으로 만들었다. 하나는 채팅 화면에서 질문하고 답을 받는 대화형이고, 처음 들어오면 사용법을 보여주는 짧은 안내 애니메이션을 붙였다. 다른 하나는 위의 4섹션이 고정된 리포트형이다. 아래는 같은 이슈를 두 방식으로 본 예시다.
사용자
이슈 S-0412랑 비슷한 이슈 전에 있었어?
AI
같은 설비에서 최근 3년간 비슷한 이슈가 2건 있었습니다. 두 건 모두 커버 교체 작업 중 고정 볼트를 다 풀기 전에 커버를 들어 올리다 발생했습니다. 당시 대책은 작업 순서 표지 부착이었습니다.
사용자
그 대책 이후에 또 난 거네? 왜 그럴까
질문을 이어 가며 파고들기 좋다. 무엇을 물어야 할지 아는 사람에게 맞다.
| 이슈 요약 | 설비 커버 교체 중 커버 낙하, 손등 타박 ML 추천 경미 중대 검토 요망 |
| 재발 판정 | 재발 같은 설비 3번째 유사 이슈 |
| 연관 이슈 | S-0187 커버 낙하 · 대책: 작업 순서 표지 S-0291 커버 끼임 · 대책: 2인 1조 작업 |
| 대책 초안 | LLM 연동 후 표시 |
빠짐없이 한 번에 본다. 무엇을 물어야 할지 모르는 사람에게 맞다.
예시 데이터다.
두 화면을 메인 화면 안에 나란히 띄워서 현업이 직접 비교하게 했다. 각 화면을 독립 페이지로 만들고, 주소에 파라미터를 붙이면 상단 메뉴 없이 본문만 나오게 해서 iframe 두 개로 배치했다. 같은 코드를 단독 페이지와 비교 화면 양쪽에서 쓴다.
{% set embed = request.args.get("embed") == "1" %}
{% if not embed %}
{% include "_topnav.html" %}
{% endif %}
<main class="{{ 'embed' if embed else 'page' }}">
{% block content %}{% endblock %}
</main>| 대화형 | 리포트형 | |
|---|---|---|
| 강점 | 질문을 이어 가며 깊게 파고든다 | 빠짐없이 같은 순서로 본다 |
| 약점 | 무엇을 물을지 모르면 시작을 못 한다 | 예상 밖 질문에는 답하지 못한다 |
| 맞는 사용자 | 분석 담당자 | 보고받는 사람, 처음 쓰는 사람 |
어느 쪽으로 정할지는 현업 피드백을 보고 결정할 예정이다. 리포트를 기본으로 두고 그 안에서 추가 질문을 받는 식으로 둘을 섞는 것도 선택지다.
정리
- 요청이 여러 개여도 묻는 대상이 같으면 화면을 하나로 묶는다.
- 재발 판정처럼 명확한 조건으로 풀 수 있는 건 LLM보다 구조화 데이터로 푼다.
- LLM 섹션은 데이터 섹션 아래에 두고 근거를 함께 보여준다.
- 방식이 고민될 때는 둘 다 만들어 나란히 놓고 사용자가 비교하게 한다.