Claude Code - 프롬프트 캐시 라우팅

Claude Code - 프롬프트 캐시 라우팅

Claude의 Prompt Caching 기능이 API 사용량을 최적화하는 방법과, LiteLLM 로드 밸런싱에서 그 기능이 계속 동작하도록 설정하는 방법을 알려드릴게요. Prompt Caching은 프롬프트를 캐시하고 이후 API 호출에서 캐시된 프롬프트를 재사용해요. Claude Code가 이 기능을 사용해요.

출처: 문서

본문

LiteLLM 로드 밸런싱이 활성화되면, 이 프롬프트 캐싱 기능이 Claude Code에서 계속 동작하도록 LiteLLM을 PromptCachingDeploymentCheck pre-call 체크를 사용하도록 구성해야 해요. 이 pre-call 체크는 프롬프트 캐싱을 사용한 API 호출을 기억하고, 이후에 그 프롬프트 캐싱을 사용하려는 API 호출이 캐시 쓰기가 일어난 동일한 모델 배포로 라우팅되도록 보장해요.

설정

  • 라우터가 PromptCachingDeploymentCheck를 사용하도록(optional_pre_call_checks 속성 설정) 구성하고, 모델이 Claude의 여러 배포에 접근할 수 있도록 구성해요. 아래는 여러 AWS 계정(account-1account-2, aws_profile_name 속성 사용)에 대한 예시를 보여드릴게요.
router_settings:  optional_pre_call_checks: ["prompt_caching"]model_list:- litellm_params:    model: us.anthropic.claude-sonnet-5    aws_profile_name: account-1    aws_region_name: us-west-2  model_info:    litellm_provider: bedrock  model_name: us.anthropic.claude-sonnet-5- litellm_params:    model: us.anthropic.claude-sonnet-5    aws_profile_name: account-2    aws_region_name: us-west-2  model_info:    litellm_provider: bedrock  model_name: us.anthropic.claude-sonnet-5
  • Claude Code를 실행해요.

  • Claude Code를 시작하면 워밍업(warm-up) 프롬프트와 시스템 프롬프트를 캐시하려는 워밍업 API 호출이 일어나요.

  • 몇 초 기다린 뒤 Claude Code를 종료하고 다시 열어요.

  • 워밍업 API 호출이 성공적으로 캐시 히트를 받는 것을 확인할 수 있을 거예요(VS Code 같은 IDE에서 Claude Code를 쓴다면, 2.1과 2.2 사이에 다른 작업을 하지 않도록 주의해요. 그렇지 않으면 캐시 히트가 일어나지 않을 수 있어요).

  • Admin UI에서 LiteLLM Request Logs 페이지로 이동해요.

  • 개별 요청을 클릭해 (a) 캐시 생성 및 캐시 읽기 토큰과 (b) Model ID를 확인해요. 특히 2.1 단계의 API 호출은 캐시 쓰기(cache write)를, 2.2 단계의 API 호출은 캐시 읽기(cache read)를 보여야 하고, Model ID도 동일해야 해요(즉 API 호출이 같은 AWS 계정으로 전달되고 있다는 뜻이에요).

더 알아보기 (Learn more)