AI 및 LLMLLM 애플리케이션

캐싱 LLM 게이트웨이

OpenAI 또는 Anthropic SDK를 하나의 URL로 지정하면 반복 요청은 다시 비용을 내지 않고 HotKV에서 응답합니다. 코드 변경은 필요 없습니다.

변경할 코드 줄 수
1
정적 바이너리
~6 MB
오픈 소스
Apache-2.0
단계 1 / 5
게이트웨이 시작

공급자 앞에 바이너리 또는 컨테이너 하나를 둡니다. 호출자의 API 키가 그대로 전달되므로 게이트웨이에는 키가 필요 없습니다.

예시 세션playing
# 게이트웨이 시작
$ hotkv-gateway --upstream https://api.openai.com --semantic --embedding-model text-embedding-3-small
(gateway listening on 127.0.0.1:8080, cache in HotKV)

실제 HotKV 명령과 예시 응답으로 구성된 애니메이션 안내입니다. 원하는 단계를 클릭하면 해당 단계로 이동합니다. 명령과 응답은 HotKV에서 입력하고 보는 그대로 영어로 표시됩니다.

문제

LLM 트래픽의 대부분은 반복됩니다. 같은 시스템 프롬프트와 질문이 여러 사용자, 재시도, 테스트 실행에서 계속 들어오고, 그 하나하나에 비용이 청구됩니다. 사용하는 모든 언어로 모든 서비스에 캐시를 넣는 일은 느리고 실수하기 쉽습니다.

HotKV의 해결 방식

hotkv-gateway는 애플리케이션과 LLM API 사이에 위치합니다. SDK의 base URL만 바꾸면 동일한 요청은 HotKV에서 제공되고, 스트리밍 응답은 스트림으로 재생되며, 바꿔 말한 질문은 의미로 응답할 수 있고, 처리 중인 동일한 요청은 업스트림 호출 하나를 공유합니다. HotKV가 느리거나 다운되면 요청은 곧바로 공급자로 전달됩니다.

단계별 설명

명령 하나하나, 무슨 일이 일어나는가

  1. 01

    게이트웨이 시작

    공급자 앞에 바이너리 또는 컨테이너 하나를 둡니다. 호출자의 API 키가 그대로 전달되므로 게이트웨이에는 키가 필요 없습니다.

    hotkv-gateway --upstream https://api.openai.com --semantic --embedding-model text-embedding-3-small
  2. 02

    첫 요청은 미스

    아직 캐시된 것이 없습니다. 요청은 업스트림으로 한 번 전달되고, 완료된 200 응답이 저장됩니다.

    curl -si localhost:8080/v1/chat/completions -H "Authorization: Bearer $OPENAI_API_KEY" -H "Content-Type: application/json" -d @question.json | grep -i x-hotkv-cache
  3. 03

    같은 요청은 히트

    동일한 요청은 키 순서가 달라도 HotKV에서 응답하며 공급자에 도달하지 않습니다.

    curl -si localhost:8080/v1/chat/completions -H "Authorization: Bearer $OPENAI_API_KEY" -H "Content-Type: application/json" -d @question.json | grep -i x-hotkv-cache
  4. 04

    바꿔 말한 질문

    시맨틱 캐시를 켜면 표현이 다른 단일 턴 질문도 비슷한 질문의 답변으로 응답할 수 있습니다.

    curl -si localhost:8080/v1/chat/completions -H "Authorization: Bearer $OPENAI_API_KEY" -H "Content-Type: application/json" -d @rephrased.json | grep -i x-hotkv-cache
  5. 05

    동일한 요청이 한꺼번에

    첫 요청이 아직 처리 중일 때 동일한 요청 세 개가 도착합니다. 이들은 업스트림 호출 하나를 공유합니다.

    for i in 1 2 3; do curl -si localhost:8080/v1/chat/completions -H "Authorization: Bearer $OPENAI_API_KEY" -d @new.json & done
적용 분야

실제 시나리오

평가 및 CI 실행

테스트 스위트와 프롬프트 평가는 실행할 때마다 같은 요청을 보냅니다. 게이트웨이 뒤에서는 변경된 프롬프트만 비용이 듭니다.

다중 언어 플랫폼

Python 백엔드, Node.js 워커, Go 서비스가 base URL 하나만 바꿔 같은 캐시를 사용합니다. 언어마다 라이브러리를 둘 필요가 없습니다.

자체 호스팅 모델

vLLM이나 Ollama 앞에 두면 반복 프롬프트가 모델 서버에 도달하지 않으므로 게이트웨이가 API 요금 대신 GPU 시간을 절약합니다.

내장 기능

제공되는 기능

정확 일치 및 시맨틱 캐시

동일한 chat, completion, embeddings 요청을 캐시하며, 단일 턴 채팅 질문은 의미로도 매칭할 수 있습니다(--semantic).

스트리밍 재생

스트리밍 응답을 캡처해 스트림으로 재생하므로 클라이언트는 이전과 똑같이 동작합니다.

기본적으로 안전

API 키마다 자체 캐시를 가집니다. 오류와 필터링된 답변은 절대 저장되지 않으며, 헤더로 요청이 캐시를 건너뛰게 할 수 있습니다.

절대 방해하지 않음

HotKV가 느리거나 사용할 수 없으면 요청은 곧바로 공급자로 전달됩니다. 게이트웨이는 /_hotkv/metrics에서 자체 수치도 보고합니다.

코드에서 바꿀 유일한 부분

python
from openai import OpenAI

client = OpenAI(base_url="http://localhost:8080/v1")   # the only change

# For Anthropic: start the gateway with --upstream https://api.anthropic.com
import anthropic
client = anthropic.Anthropic(base_url="http://localhost:8080")

자주 묻는 질문

게이트웨이에 HotKV 라이선스가 필요합니까?

아닙니다. 어떤 HotKV 서버에서도 동작합니다. 프롬프트 캐시가 포함된 라이선스가 있으면 항목이 PCACHE 네임스페이스에 저장되고 HotKV가 절약한 토큰을 추적합니다. 시맨틱 캐시는 항상 라이선스가 필요합니다.

두 고객이 서로의 답변을 볼 수 있습니까?

아닙니다. 캐시 키에 호출자의 자격 증명이 포함되므로 API 키마다 자체 캐시를 가집니다. 단, 게이트웨이에 업스트림 키 하나만 두거나 --scope global로 시작한 경우는 예외입니다.

어떤 공급자와 함께 동작합니까?

OpenAI, Azure OpenAI, OpenRouter, vLLM, Ollama, LiteLLM 등 OpenAI API를 지원하는 모든 것과 동작하며, Anthropic의 Messages API는 정확 일치 캐시로 지원합니다.

관련 사용 사례

직접 워크로드로 사용해 보십시오

HotKV는 Redis 프로토콜을 사용하므로 기존 클라이언트를 연결해 같은 명령을 그대로 실행할 수 있습니다.