목차
먼저 확인할 전제

이 글은 문서가 임베딩되어 벡터 검색 또는 키워드 검색에 연결된 RAG 구조를 전제로 합니다. RAG는 검색된 문서를 바탕으로 AI 언어 모델이 답변을 만드는 방식이므로, 답변 프롬프트만 고쳐서는 검색 단계의 누락을 해결하기 어렵습니다. 다만 전체 검색 품질은 질의 재작성뿐 아니라 chunking, embedding, hybrid search, metadata filtering, reranking 등의 영향을 함께 받습니다. 질의 재작성은 검색 단계의 recall과 precision을 개선하는 한 가지 방법이며, 재작성만으로 모든 검색 누락을 해결할 수는 없습니다.
검색 의도와 대화 문맥 분석
사용자 질문을 그대로 검색하면 의도와 핵심 조건이 빠질 수 있습니다. 예를 들어 앞선 대화에서 PostgreSQL 백업 기능을 언급했다면 “그 기능은 언제부터 지원됐나요?”라는 질문을 “PostgreSQL 백업 기능은 문서에서 언제부터 지원됐는가?”처럼 구체화할 수 있습니다. 이때 대화에 없는 제품명이나 버전을 추측해 추가해서는 안 됩니다.
검색 전에는 질문의 목적을 사실 확인, 사용 방법, 비교, 장애 해결 중 하나로 분류하고, 대상·시간·제품·조건을 추출합니다. 특히 “그것”, “이전 방식”, “거기” 같은 표현은 직전 대화에서 지칭 대상을 복원해야 합니다. 문맥이 불충분하면 임의로 정보를 추가하지 말고, 원문 검색을 유지하거나 사용자에게 추가 정보를 요청하는 fallback을 둘 수 있습니다.
질의 재작성 프롬프트 설계
재작성 프롬프트에는 원문 보존, 문맥 해소, 핵심어 확장, 불필요한 표현 제거, 출력 형식을 명확히 적습니다. 재작성 모델이 답변까지 생성하지 않도록 역할을 검색용 질의 작성으로 제한하는 것도 중요합니다.
당신은 RAG 검색용 질의 재작성기입니다.
대화 문맥을 참고해 사용자의 검색 의도를 파악하세요.
지시사항:
1. 원문에 없는 사실을 추가하지 마세요.
2. 대명사와 생략된 대상을 앞선 대화에서 복원하세요.
3. 검색에 필요한 대상, 동작, 조건, 시간을 포함하세요.
4. 답변이나 설명은 쓰지 말고 검색 질의만 출력하세요.
원문: {question}
대화 문맥: {conversation}
출력: 한 줄의 재작성 질의
원문·재작성 질의 비교
원문이 “NAS에서 로그가 왜 안 보여요?”라면, 문맥에 “Docker 컨테이너 로그”와 “최근 배포 이후”가 있을 때 재작성 질의는 “NAS에서 최근 배포한 Docker 컨테이너의 로그가 표시되지 않는 원인과 확인 방법”이 될 수 있습니다. 이처럼 재작성 질의는 검색어를 길게 만드는 것이 아니라, 문서에 존재할 가능성이 높은 핵심 표현을 보강하는 작업입니다.
다만 원문과 결과를 함께 저장해야 추적이 쉽습니다. 재작성 과정에서 원래 검색 가능했던 키워드가 빠지거나 원문에 없던 제품명·원인을 단정했다면, 원문 검색을 유지하거나 원문과 재작성 질의를 함께 검색하는 방식으로 보완할 수 있습니다.
검색 결과 평가와 개선
검색 결과는 단순히 문서가 반환됐는지가 아니라 질문에 답하는 근거가 포함됐는지로 평가합니다. 필요한 조건의 포함 여부와 중복 문서 비율도 점검하면서, Precision@k는 상위 k개 중 관련 문서의 비율을, Recall@k는 필요한 관련 문서가 상위 k개에 포함됐는지를, MRR은 첫 번째 관련 문서의 순위를 비교하는 데 사용할 수 있습니다. 이 지표들로 재작성 전후의 검색 품질을 비교할 수 있습니다.
재작성 질의가 실패하면 검색 결과가 많아도 정작 필요한 문서가 빠지고, 모델은 “관련 문서를 찾지 못했다”거나 엉뚱한 문서를 근거로 답합니다. 이런 현상은 문맥이 짧거나 고유명사가 누락된 대화에서 특히 나타나므로, 원문·문맥·재작성 결과·상위 문서를 함께 로그로 남겨 어느 단계에서 정보가 사라졌는지 확인해야 합니다. 장애 해결 질의라면 원인이 될 수 있는 관련 서비스의 로그도 함께 검색 대상으로 포함했는지 확인하는 것이 좋습니다.
결론
RAG 검색 품질은 재작성 문장의 길이보다 의도, 문맥, 조건을 얼마나 정확히 보존하는지에 달려 있습니다. 질의 재작성은 검색 품질을 개선하는 한 가지 수단일 뿐이므로 원문과 결과를 비교하고 상위 문서를 반복 평가해야 프롬프트와 검색 파이프라인의 개선 방향을 구체적으로 찾을 수 있습니다.