프롬프트 캐싱

Prompt caching

반복되는 입력 앞부분을 재사용해 이후 요청의 처리 비용과 지연을 줄입니다.

···
html
<div class="scene"><div class="heading">SHARED PREFIX</div><div class="cache"><div><span>첫 요청</span><i class="miss"></i><b>MISS · 전체 처리</b></div><div><span>다음 요청</span><i class="hit"></i><b id="cache-label">HIT · 접두어 재사용</b></div></div><div class="muted" id="cache-note">공통 지시 + 문서 | 첫 요청</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)}.cache{height:65%;display:flex;flex-direction:column;justify-content:space-around;gap:7px}.cache>div{display:flex;align-items:center;gap:7px;border:1px solid var(--line);border-radius:7px;padding:8px;background:var(--bg)}.cache span{width:24%}.cache i{height:clamp(15px,4vmin,25px);border-radius:4px;background:var(--accent-3);width:30%;transition:width .55s}.cache i.hit{background:var(--accent);width:12%}.cache b{font-weight:600;font-size:clamp(12px,2.4vmin,16px)}.cache>div.active{border-color:var(--accent)}.cache>div.active i{animation:load .75s both}@keyframes load{from{transform:scaleX(.3);transform-origin:left}to{transform:scaleX(1);transform-origin:left}}
js
let warm=false;function draw(){warm=!warm;document.querySelectorAll('.cache>div').forEach((row,i)=>row.classList.toggle('active',i===Number(warm)));document.getElementById('cache-note').textContent=warm?'같은 접두어 · 캐시 히트':'공통 접두어 · 첫 요청'}draw();setInterval(draw,2500)

프롬프트 캐싱은 공통 지시나 긴 문서처럼 반복되는 입력 앞부분을 저장하고 다음 요청에서 다시 사용합니다. 재사용이 성립하려면 제공자별 캐시 조건과 유효 시간을 지켜야 합니다.

데모는 첫 요청의 캐시 미스와 같은 앞부분을 가진 후속 요청의 캐시 히트를 비교합니다. 실제 절감량은 토큰 구성, 요청 간격, 제공자 정책에 따라 달라집니다.

언제 쓰나

긴 공통 지시나 자료를 여러 요청에서 반복해서 보낼 때 사용합니다.

페이지로 열기 ↗