← 문서 목록

가이드

프롬프트 캐싱

업데이트

긴 시스템 프롬프트나 도구 정의를 매번 같이 보낸다면 캐싱을 켜세요. 캐시한 앞부분은 다음 요청부터 입력 단가의 약 10%로 청구됩니다. 요청마다 앞부분이 바뀐다면 켜지 마세요. 캐시 쓰기가 일반 입력보다 비싸서 비용이 늘어납니다.

켜는 방법

json
{
  "model": "everyais/claude-sonnet-5-5",
  "messages": [
    {"role": "system", "content": "(매번 똑같이 보내는 긴 지침)"},
    {"role": "user", "content": "첫 번째 질문"}
  ],
  "everyais": { "cache": "on", "cache_ttl": "5m" }
}

OpenAI SDK에서는 extra_body로 넘깁니다.

python
response = client.chat.completions.create(
    model="everyais/claude-sonnet-5-5",
    messages=messages,
    extra_body={"everyais": {"cache": "on", "cache_ttl": "5m"}},
)
print(response.usage.prompt_tokens_details.cached_tokens)
옵션동작
cache: "on"도구 정의, system, 마지막 user 턴 순서로 캐시 지점을 자동으로 붙입니다(최대 4개)
cache: "off"자동으로 붙인 지점과 클라이언트가 직접 보낸 cache_control을 모두 뺍니다
cache_ttl캐시 유지 시간. "5m"(기본) 또는 "1h". "1h"는 캐시 쓰기 비용이 더 비쌉니다

Gemini 모델은 설정 없이 자동으로 캐시되고 캐시 쓰기 요금이 없습니다. /v1/messages에서 블록에 붙인 cache_control은 그대로 전달합니다.

비용 예시

캐시 읽기는 입력 단가의 약 10%, 캐시 쓰기는 5m이 약 1.25배, 1h가 약 2배입니다. 10,000토큰짜리 앞부분을 5m 안에 다섯 번 보내면 입력 단가 기준 토큰 수는 다음과 같습니다.

경우입력 단가로 환산
캐싱 끔10,000 × 5 = 50,000
캐싱 켬, 앞부분이 매번 같음12,500(첫 요청의 캐시 쓰기) + 1,000 × 4 = 16,500
캐싱 켬, 앞부분이 매번 다름12,500 × 5 = 62,500

앞부분 뒤에 새로 붙는 메시지는 일반 입력 단가로 청구됩니다.

적중 확인

응답의 usage.prompt_tokens_details.cached_tokens는 캐시에서 읽은 토큰, cache_creation_tokens는 캐시를 쓴 토큰입니다(공급사가 알려 주는 경우). prompt_tokens(Responses는 input_tokens)는 이 두 값을 포함한 전체 입력입니다. /v1/messages의 input_tokens는 Anthropic 방식대로 캐시 읽기·쓰기를 뺀 값입니다.

cached_tokens가 계속 0이면 다음을 확인하세요.

  • 앞부분이 한 글자라도 다르면 적중하지 않습니다. 날짜나 요청 ID 같은 값을 system 프롬프트 앞쪽에 넣지 마세요.
  • cache_ttl이 지나면 캐시를 다시 씁니다.
  • 앞부분이 모델의 최소 캐시 길이보다 짧으면 캐시되지 않습니다.
문의접수