생성 (Generation)
생성은 RAG 파이프라인의 마지막 단계로, 검색된 문서를 컨텍스트로 활용하여 LLM이 답변을 만드는 과정입니다. 프롬프트 설계와 컨텍스트 관리가 답변 품질을 결정합니다.생성 파이프라인
프롬프트 구성
RAG 프롬프트는 세 가지 요소로 구성됩니다: 시스템 프롬프트, 컨텍스트, 사용자 질문.기본 프롬프트
출처 인용 프롬프트
구조화된 답변 프롬프트
컨텍스트 윈도우 관리
LLM의 컨텍스트 윈도우 크기는 제한적입니다. 검색된 문서를 효율적으로 구성해야 합니다.컨텍스트 크기 계산
| 모델 | 컨텍스트 윈도우 | 권장 컨텍스트 비율 |
|---|---|---|
| GPT-4o-mini | 128K tokens | 60~70% |
| GPT-4o | 128K tokens | 60~70% |
| Claude 3.5 Sonnet | 200K tokens | 60~70% |
| Llama 3.1 8B | 128K tokens | 50~60% |
컨텍스트 압축
검색된 문서에서 질문과 관련된 부분만 추출하여 컨텍스트를 압축합니다.출처 인용 (Citation)
사용자가 답변의 근거를 확인할 수 있도록 출처를 명시합니다.스트리밍 생성
긴 답변을 생성할 때 스트리밍으로 실시간 출력합니다.LangGraph 생성 노드
생성 품질 체크리스트
환각을 방지하고 있는가?
환각을 방지하고 있는가?
시스템 프롬프트에서 “컨텍스트에 없는 정보는 사용하지 말 것”을 명시하세요. temperature를 0에 가깝게 설정하면 환각을 줄일 수 있습니다.
출처를 명시하고 있는가?
출처를 명시하고 있는가?
사용자가 답변의 근거를 확인할 수 있도록 인라인 인용이나 출처 목록을 포함하세요.
컨텍스트 윈도우를 효율적으로 사용하는가?
컨텍스트 윈도우를 효율적으로 사용하는가?
불필요한 내용은 제거하고, 질문과 관련된 핵심 정보만 컨텍스트에 포함하세요.
답변할 수 없는 경우를 처리하는가?
답변할 수 없는 경우를 처리하는가?
검색 결과가 부족하거나 질문과 무관할 때, “알 수 없습니다”라고 정직하게 답변하도록 설계하세요.

