65분
실습: 대화형 KG Q&A 시스템 구현
KG 기반 Q&A
실습: 대화형 KG Q&A 시스템 구현
온톨로지 & Knowledge Graph > KG 기반 Q&A
학습 목표
- 대화 상태로 설비·알람·배제한 원인을 이어가는 ConversationManager를 만든다
- 대명사와 생략어를 앞선 대화로 채우는 컨텍스트 해석기를 만든다
- 여섯 가지 질문 유형을 모두 라우팅하고 각각의 핸들러를 구현한다
- 아키텍처 문서의 4턴 시나리오를 그대로 재현해 설계와 동작이 맞는지 확인한다
실습: 대화형 KG Q&A 시스템 구현
목표
Day 3의 GraphRAG 파이프라인을 확장해 여러 턴에 걸친 대화를 처리합니다.
사전 준비
Day 2의 seed_kg.py로 그래프를 올려 두세요. 정비 이력(MaintenanceRecord)과
공정(Process)까지 들어 있어야 유형 3과 유형 6이 동작합니다.
합격 기준: 아키텍처 문서의 4턴이 그대로 재현되어야 한다
p8w7-d4-qa-architecture가 이 시스템의 간판으로 보여주는 대화입니다.
구현이 끝나면 이 네 줄을 그대로 입력해 결과를 맞춰 보세요.
| 턴 | 입력 | 기대 동작 |
|---|---|---|
| 1 | 3호기에서 알람 떴어 | 알람 코드를 되묻는다 |
| 2 | E-201 | 앞선 설비 맥락과 합쳐 원인을 확률순으로 안내한다 |
| 3 | 냉각수 확인했는데 괜찮아 | 1순위를 배제하고 2순위부터 다시 안내한다 |
| 4 | 베어링 교체 어떻게 해? | howto로 가서 절차를 보여준다 |
3번과 4번이 특히 잘 깨집니다.
- 3번: 배제할 원인을 어딘가에서 대입해야 합니다. 선언만 해 두고 대입하는 곳이 없으면 배제는 영원히 일어나지 않는데, 화면에는 아무 오류도 나오지 않습니다.
- 4번:
troubleshooting키워드에 "어떻게"가 들어 있으면howto가 가로채입니다. 먼저 걸리는 키워드가 이기는 방식을 점수 방식으로 바꾸세요.
여섯 가지 질문 유형을 모두 구현합니다
| 유형 | 예시 | 그래프에서 따라갈 경로 |
|---|---|---|
| troubleshooting | 알람 E-201 어떻게 해? | Fault → RootCause → MaintenanceAction → Skill |
| status | 3호기 부품 상태 | Equipment → Component → Part |
| history | 3호기 정비 이력 | MaintenanceRecord → Equipment |
| personnel | 스핀들 정비 가능한 사람 | Worker → Skill |
| howto | 베어링 교체 절차 | MaintenanceAction의 procedure |
| impact | 3호기 멈추면 영향은? | Equipment ← Process → NEXT_PROCESS |
"현재 개발 중입니다"를 반환하는 스텁을 남기지 마세요. 아키텍처 문서가 여섯 가지를 약속했으면 여섯 가지가 동작해야 합니다.
에디터 로딩 중...
힌트 보기
- • ConversationState에 필드를 선언하는 것과 값을 넣는 것은 다른 일입니다. 배제 기능이 안 되면 대입하는 줄이 있는지부터 보세요
- • 의도 분류는 강한 신호 2점, 약한 신호 1점으로 합산하고 최고점을 고르면 키워드 순서에 흔들리지 않습니다
- • "E-201"처럼 코드만 던지는 발화, "괜찮아"처럼 앞선 의도를 이어야 하는 발화를 따로 처리해야 4턴이 이어집니다
- • 절차 안내는 질문에서 작업명을 뽑는 대신 WHERE $question CONTAINS a.name 으로 그래프 쪽 이름을 대조하면 간단합니다
- • 영향도는 (e:Equipment)<-[:USES_EQUIPMENT]-(p:Process)-[:NEXT_PROCESS*1..5]->(down) 으로 후속 공정까지 모읍니다
정답 보기
에디터 로딩 중...
AI로 학습하기 — 꿀팁
환각을 일부러 유발해 검증하기AI 학습 팁
그래프에 없는 정보를 일부러 물어보세요. "모른다"고 답하면 신뢰성 합격, 지어내면(환각) 프롬프트에 "근거가 없으면 모른다고 답하라" 제약을 추가해야 합니다.
이 팁이 도움이 됐나요?
실습 — 직접 해보기
LLM Graph Builder
출처 있는 GraphRAG Q&A를 직접 해보세요