개요
검색 증강 생성(RAG)
Retrieval-augmented generation (RAG)
뜻
관련 외부 정보를 검색해 모델이 답을 만들기 전에 문맥으로 제공하는 방식입니다.
언제 쓰나
최신 문서, 사내 문서, 전문 분야 자료를 근거로 답해야 할 때 사용합니다.
활용 예시
질문에 대한 정책 문단을 검색한 다음, 해당 문단만 사용하여 답변합니다.Generative AI Engineering
신뢰할 수 있는 문서로 검증 가능한 AI 답변을 만들 때 사용하는 수집, 색인, 검색, 순위화, 근거 연결, 인용, RAG 프롬프트 패턴을 설명합니다.
19 개 용어
개요
Retrieval-augmented generation (RAG)
관련 외부 정보를 검색해 모델이 답을 만들기 전에 문맥으로 제공하는 방식입니다.
최신 문서, 사내 문서, 전문 분야 자료를 근거로 답해야 할 때 사용합니다.
질문에 대한 정책 문단을 검색한 다음, 해당 문단만 사용하여 답변합니다.문서 수집
Chunking
문서를 색인하고 검색할 수 있도록 작은 단위로 나누는 작업입니다.
의미를 유지하면서 검색 범위를 집중할 수 있는 경계를 선택합니다.
핸드북을 섹션별로 분리하고 각 제목과 해당 단락을 유지합니다.색인
Embedding
텍스트나 콘텐츠의 의미적 특징을 나타내는 숫자 벡터입니다.
정확한 키워드가 달라도 의미가 비슷한 내용을 찾을 때 사용합니다.
각 문서 조각과 사용자 쿼리에 대한 임베딩을 생성합니다.색인
Vector store
임베딩을 저장하고 가까운 벡터를 검색할 수 있는 시스템입니다.
의미 기반 색인과 문서 메타데이터를 관리할 때 사용합니다.
각 청크 벡터와 함께 소스 URL, 제목 및 액세스 범위를 저장합니다.검색
Similarity search
선택한 거리 기준에서 벡터 표현이 얼마나 가까운지를 이용한 검색입니다.
질문의 의미와 관련된 문단을 찾을 때 사용합니다.
쿼리 임베딩과 가장 가까운 텍스트 조각을 벡터 저장소에서 검색합니다.검색
Retriever
질문에 맞는 후보 문서나 청크를 선택하는 구성 요소입니다.
질문 재작성, 필터, 검색 방식, 결과 수를 조합하도록 설정합니다.
검색기는 현재 사용자가 액세스할 수 있는 정책 청크를 반환합니다.검색
Top-k
검색 순위가 높은 결과 중 다음 단계로 넘길 개수를 뜻합니다.
근거 범위와 잡음, 컨텍스트 사용량의 균형을 맞출 때 조정합니다.
상위 8개 후보를 가져온 다음, 재정렬하고 가장 좋은 4개를 유지합니다.검색
Metadata filter
날짜, 제품, 언어, 권한 같은 속성으로 검색 범위를 제한하는 조건입니다.
의미 순위를 계산하기 전에 범위와 접근 권한을 강제할 때 사용합니다.
사용자가 볼 수 있는 2025년 이후에 게시된 한국어 문서로 필터링합니다.검색
Hybrid search
키워드 기반 신호와 의미 기반 벡터 신호를 결합하는 검색 방식입니다.
정확한 제품 코드와 의미적 유사성이 모두 중요할 때 사용합니다.
오류 코드 AB-104에 대해 BM25 키워드 결과와 임베딩 유사성을 결합합니다.순위화
Reranking
검색된 후보의 관련도를 다시 평가해 순서를 조정하는 두 번째 단계입니다.
넓게 후보를 모은 뒤 정확도를 높일 때 사용합니다.
20개의 후보 청크를 재정렬하고, 가장 좋은 5개를 생성기에 보냅니다.근거 기반 응답
Grounding
생성된 답변을 제공되거나 검색된 근거와 연결하는 방식입니다.
근거 없는 주장을 줄이고 답변을 검토 가능하게 만들 때 사용합니다.
검색된 정책 발췌 내용으로 뒷받침되는 주장만 답변합니다.근거 기반 응답
Citation
주장을 뒷받침하는 원문 출처를 식별하는 표시입니다.
독자가 근거를 빠르게 확인할 수 있도록 주장 가까이에 인용을 붙입니다.
인용이 있어도 근거가 주장과 무관할 수 있으므로 실제로 뒷받침하는지 확인해야 합니다.
각 정책 주장에 대해 문서 제목, 섹션 및 직접 소스 링크를 포함합니다.RAG 프롬프트 패턴
Query rewriting prompt
사용자 요청을 키워드, 의미, 하이브리드, 필터 검색에 더 적합한 하나 이상의 검색 질문으로 바꾸는 지시문입니다.
모호하거나 대화체이고 정보가 부족하거나 문서 용어와 맞지 않는 질문에서 원래 의도를 유지하며 사용합니다.
사용자 의도를 조용히 바꾸거나 근거 없는 사실을 추가하거나 접근 필터를 약화하지 마세요.
하이브리드 검색을 위한 질문을 다시 작성합니다. 원래 의도를 유지하고, 관련 문서 용어를 추가하고, 원래 질문과 최대 세 개의 재작성된 질문을 반환합니다.RAG 프롬프트 패턴
Grounded-answer instruction
생성 단계에 제공된 검색 구절이 사실 주장을 뒷받침하도록 요구하는 프롬프트 규칙입니다.
답변을 감사할 수 있어야 하고 근거 없는 모델 지식을 증거처럼 제시하면 안 될 때 사용합니다.
제공된 텍스트를 사용하여 질문에 답변합니다. 사실적인 주장에 대한 지원 출처 ID를 첨부하고, 명확하게 표시된 추론은 별도로 작성합니다.RAG 프롬프트 패턴
Context-only answering
답변을 제공된 검색 컨텍스트가 명시적으로 뒷받침하는 정보로 제한하는 엄격한 생성 규칙입니다.
정책, 계약, 규제 콘텐츠처럼 모델의 외부 지식으로 빈틈을 채우면 안 되는 작업에 사용합니다.
이 규칙만으로 품질이 낮거나 불완전하고 오래됐거나 권한이 없는 검색 결과를 보완할 수는 없습니다.
<retrieved_context>만 사용합니다. 컨텍스트에 답변이 포함되어 있지 않으면 이전 지식을 사용하는 대신 insufficient_evidence를 반환합니다.RAG 프롬프트 패턴
No-evidence response and abstention
검색 근거가 없거나 부족하거나 충돌하거나 지원 기준에 미달할 때 사용하는 정해진 대체 응답입니다.
확신에 찬 추측을 막고 추가 질문, 재검색, 사람 검토로 연결할 때 사용합니다.
답변을 직접적으로 뒷받침하는 패시지가 없으면, 상태를 insufficient_evidence로 반환하고, 누락된 내용을 설명하고, 명확성을 높이는 질문을 제안합니다.RAG 프롬프트 패턴
Citation format instruction
생성 답변에서 출처 식별자를 어디에 어떤 형식으로 표시할지 정하는 프롬프트 규약입니다.
애플리케이션과 검토자가 일관되게 확인할 수 있는 주장 단위 참조를 만들 때 사용합니다.
인용 형식을 맞췄다고 해당 구절이 주장을 뒷받침하는 것은 아니므로 인용 정확성을 별도로 검증해야 합니다.
지원되는 각 문장 뒤에는, 검색된 ID를 "[S1]" 형식으로 하나 이상 인용합니다. ID를 임의로 생성하지 않고, 문장을 뒷받침하지 않는 출처를 인용하지 않습니다.RAG 프롬프트 패턴
Retrieved-context synthesis
여러 검색 구절의 보완적인 근거를 출처 경계를 지우지 않고 일관된 답변으로 결합하는 방식입니다.
둘 이상의 구절이 필요한 비교, 요약, 복합 질문에 사용합니다.
패시지를 하위 질문별로 그룹화하고, 중복을 제거하고, 날짜와 범위를 유지한 다음, 주장을 나타내는 소스 ID와 함께 답변을 종합합니다.RAG 프롬프트 패턴
Conflicting-source handling
검색된 출처 사이의 모순을 탐지하고 임의로 하나를 선택하지 않고 보고하도록 하는 프롬프트 규칙입니다.
문서가 버전, 날짜, 관할, 권위, 해석에 따라 달라질 수 있을 때 사용합니다.
최신 문서가 항상 더 권위 있는 것은 아니므로 분야별 출처 우선순위 규칙을 프롬프트와 함께 또는 시스템 외부에서 적용해야 합니다.
소스가 충돌하는 경우, 각 주장을 해당 소스, 버전 및 날짜와 함께 나열하고, 충돌을 식별하고, 명시적인 권한 규칙을 적용하거나 검토를 요청합니다.검색 품질과 생성 지시를 함께 설계·평가해야 하며 프롬프트만으로 누락되거나 권한이 없는 근거를 복구할 수는 없습니다.
| 단계 | 프롬프트의 역할 |
|---|---|
| 검색 전 | 의도를 유지하며 질문을 재작성·확장·필터링·분해 |
| 컨텍스트 조립 | 출처 ID, 버전, 날짜, 권한, 구절 경계를 표시 |
| 답변 생성 | 주장을 근거로 제한하고 인용 형식과 답변 보류 동작 지정 |
| 생성 후 | 주장 근거, 인용 정확성, 충돌, 완전성, 접근 준수 검증 |
아닙니다. 사용할 근거 범위를 줄이지만 구절을 잘못 읽거나 호환되지 않는 출처를 합치거나 잘못된 인용을 붙이거나 낮은 품질의 검색 결과에 의존할 수 있습니다. 검색 재현율, 주장 근거, 인용 정확성, 답변 보류 동작을 검증해야 합니다.
권한 있는 구절이 필요한 주장을 직접 뒷받침하지 않거나 근거가 기준에 미달하거나 권위 규칙 없이 출처가 충돌하거나 질문이 너무 모호해 안전하게 검색할 수 없을 때 답변을 보류합니다. 구조화된 사유와 다음 유용한 조치를 반환해야 합니다.
사용자나 후속 시스템이 주장을 확인해야 한다면 요청하는 것이 좋습니다. 다만 애플리케이션이 실제 출처 식별자를 보존하고 각 인용 구절이 가까운 주장을 뒷받침하는지 검증해야 하며 모델이 출처 ID를 만들어내면 안 됩니다.
질문 확장, 분해, 재작성, 검색, 재순위화, 누적 컨텍스트를 설명하는 공식 아키텍처 가이드입니다.
오케스트레이션·생성 프롬프트 템플릿, 실행 변수, 검색 문맥, 질문, 인용 출력 지시를 설명하는 공식 문서입니다.
생성 주장이 제공된 사실로 뒷받침되는지 측정하고 지지·모순 근거를 식별하는 공식 가이드입니다.
지시문, 제약, 출력 스키마, 작업 분해, 추론, 검증기 패턴을 함께 확인합니다.
검색 근거와 대화 상태를 배분·조립·정렬·압축·캐싱·추적합니다.
근거성, 인용 품질, 완전성, 회귀, 지연시간, 비용을 측정합니다.
간접 프롬프트 인젝션, 무권한 데이터 접근, 안전하지 않은 출력으로부터 검색 파이프라인을 보호합니다.