1. 도입부

1.1 1편에서 남은 과제

1편에서는 텍스트 임베딩과 Structured Outputs를 활용하여 사용자의 자연어 질문을 정확한 지표로 변환하는 RAG 시스템을 구축했습니다. 하지만 중요한 한계가 있었습니다.

"나의 네이버 유입이 어때?"

사용자가 이렇게 구체적인 채널명이 포함된 질문을 했을 때, 기존 시스템은 "채널별유입비율"이라는 1-depth 상위 지표는 찾을 수 있었지만, 그 하위의 "naver" 부분까지 정확히 매핑하지 못했습니다.

1-depth 지표만 검색 가능했던 이유

1편 시스템의 구조적 한계는 다음과 같았습니다:

// 1편에서 검색 가능했던 것
"총매출액", "주문건수", "전환율", "채널별유입비율" (1-depth)

// 1편에서 검색 불가능했던 것  
"채널별유입비율|naver", "채널별유입비율|google" (2-depth)

임베딩 검색은 "채널별유입비율"이라는 카테고리를 찾을 수 있었지만, 사용자가 원하는 것은 그 아래 "naver"라는 구체적인 세부 지표였습니다. 계층적 구조를 탐색하는 메커니즘이 없었기 때문에 상위 지표에서 멈춰버렸던 것입니다.

1.2 해결 방안: MetricForest와 AI 활용 의사결정

이 문제를 해결하기 위해 두 가지 기술을 도입했습니다:

1. MetricForest 자료구조

지표들을 부모-자식 관계를 가진 트리 구조로 관리하여, 상위 지표에서 하위 지표로 탐색할 수 있는 계층적 검색 시스템을 구축했습니다.

2. AI 기반 다단계 필터링

단순히 유사도만 계산하는 것이 아니라, GPT를 활용해 문맥을 이해하고 정확한 지표를 단계적으로 선별하는 지능형 필터링 시스템을 구현했습니다.

이 두 가지 기술을 결합하여 "나의 네이버 유입"처럼 구체적인 2-depth 지표까지 정확하게 검색할 수 있게 되었습니다.

2. 시스템 개요

2.1 개선 결과

GIF 2025-12-04 오후 8-34-25.gif

사용자가 "나의 네이버 유입이 어때?"라고 질문하면, 개선된 시스템은 다음과 같이 작동합니다: