캐시: 단순 & 의미 (Cache)

캐시: 단순 & 의미 (Cache: Simple & Semantic)

같은 질문을 반복해서 LLM에 보내면 매번 돈과 시간이 들어요. Portkey는 캐시로 응답을 재사용해서 요청을 최대 20배 더 빠르게, 그리고 더 저렴하게 처리하게 해 줘요. 같은 입력이 반복되는 서비스라면 캐시 하나로 체감 지연과 비용이 크게 줄어요.

출처: Portkey Cache 공식 문서

단순 캐시 (Simple Cache)

단순 캐시는 요청 본문이 이전 캐시된 요청과 정확히 일치할 때 히트해요. 같은 입력이 그대로 반복되는 경우에 효과적이에요.

의미 캐시 (Semantic Cache)

의미 캐시는 정확히 같지 않아도 의미가 비슷한 입력을 캐시로 재사용해요. 캐시 히트 조건은 이래요.

  • 사용자 텍스트가 캐시된 요청과 의미상 비슷하다 — 코사인 유사도가 임계값(기본 0.95) 이상
  • model, temperature, max_tokens 등 본문 파라미터가 정확히 일치
  • x-portkey-metadata를 쓴다면 그것도 정확히 일치
  • 시스템 프롬프트는 무시되어, 바꿔도 캐시 히트에는 영향이 없어요

의미 캐시는 벡터 데이터베이스가 필요하고 엔터프라이즈 요금제에서만 제공돼요.

자체 호스팅에서 의미 캐시 설정하기

자체 호스팅한 게이트웨이에서 의미 캐시를 쓰려면 임베딩 프로바이더와 벡터 DB를 설정해야 해요. 먼저 임베딩 프로바이더 환경변수를 지정해요.

SEMANTIC_CACHE_EMBEDDING_PROVIDER=openai   # 지원: openai, azure-openai, google, vertex-ai
SEMANTIC_CACHE_EMBEDDINGS_URL=https://api.openai.com/v1/embeddings
SEMANTIC_CACHE_EMBEDDING_MODEL=text-embedding-3-small
SEMANTIC_CACHE_EMBEDDING_API_KEY=<openai-api-key>
SEMANTIC_CACHE_SIMILARITY_THRESHOLD=0.95
SEMANTIC_CACHE_EMBEDDING_DIMENSIONS=1536

SEMANTIC_CACHE_EMBEDDING_PROVIDERopenai, azure-openai, google(Gemini 임베딩), vertex-ai(Vertex AI 임베딩) 중 하나예요. 선택한 프로바이더의 임베딩 모델에 맞춰 URL·모델·차원 수를 맞추면 돼요.

Azure OpenAI를 쓴다면 자원 이름이 들어간 URL로 설정해요.

SEMANTIC_CACHE_EMBEDDING_PROVIDER=azure-openai
SEMANTIC_CACHE_EMBEDDINGS_URL=https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/embeddings
SEMANTIC_CACHE_EMBEDDING_MODEL=text-embedding-3-small
SEMANTIC_CACHE_EMBEDDING_API_KEY=<azure-openai-api-key>
SEMANTIC_CACHE_SIMILARITY_THRESHOLD=0.95
SEMANTIC_CACHE_EMBEDDING_DIMENSIONS=1536

캐시 네임스페이스

기본적으로 Portkey는 모든 요청 헤더로 캐시를 분할해요. 커스텀 네임스페이스를 쓰면 요청을 우리가 정한 문자열로만 나눠서, 사용자별 캐싱이나 히트율 최적화에 활용할 수 있어요.

더 알아보기 (Learn more)

  • 캐시를 어떤 요청에 적용할지는 게이트웨이 컨피그에서 정해요. 게이트웨이 컨피그를 참고하세요.
  • 캐시 동작은 로그와 분석 대시보드에서 확인할 수 있어요. 관찰 문서를 봐요.