검색 증강 생성

Retrieval-augmented generation

질문과 관련된 자료를 먼저 찾아 모델 입력에 넣고 그 근거로 답하게 합니다.

···
html
<div class="scene"><div class="heading">RAG PIPELINE</div><div class="pipeline"><div>질문</div><b>→</b><div>검색</div><b>→</b><div>근거</div><b>→</b><div>답변</div></div><div class="evidence" id="evidence">질문: 정책은 언제 바뀌었나?</div></div>
css
.scene{width:min(94vw,800px);height:min(88vh,326px);padding:clamp(10px,2.7vmin,19px);border:1px solid var(--line);border-radius:13px;background:var(--surface);font:500 clamp(13px,2.4vmin,17px)/1.3 var(--font-sans,sans-serif);position:relative;overflow:hidden}.scene .mono{font-family:ui-monospace,SFMono-Regular,monospace}.scene .muted{color:var(--muted)}.scene .accent{color:var(--accent)}.scene .heading{font-weight:750;color:var(--accent);margin-bottom:clamp(5px,1.6vmin,12px)}.pipeline{display:flex;align-items:center;justify-content:space-between;gap:3px;height:46%}.pipeline div{flex:1;text-align:center;border:1px solid var(--line);border-radius:8px;padding:clamp(8px,3vmin,20px) 1px;background:var(--bg);transition:.25s}.pipeline div.on{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 16%,var(--surface));color:var(--accent)}.pipeline b{color:var(--accent)}.evidence{border-left:3px solid var(--accent);padding:9px;background:var(--bg);min-height:24%}
js
const steps=['질문: 정책은 언제 바뀌었나?','검색: 관련 문서 2개','근거: 변경일 9월 1일','답변: 9월 1일에 변경'];let i=0;function draw(){document.querySelectorAll('.pipeline div').forEach((x,n)=>x.classList.toggle('on',n===i));document.getElementById('evidence').textContent=steps[i];i=(i+1)%4}draw();setInterval(draw,780)

검색 증강 생성(RAG)은 질문으로 자료 저장소를 검색하고, 고른 근거를 프롬프트에 첨부한 뒤 답변을 생성합니다. 모델 파라미터를 다시 학습하지 않고도 갱신되는 자료를 참고하게 할 수 있습니다.

데모는 질문, 검색, 근거 삽입, 답변 순서를 보여줍니다. 검색이 틀리거나 근거가 부족하면 답도 틀릴 수 있으므로 출처 표시와 답변 검증이 중요합니다.

언제 쓰나

자주 바뀌거나 조직 내부에만 있는 문서를 근거로 답해야 할 때 사용합니다.

페이지로 열기 ↗