GPTCache

LLM FrameworksDevOpsPython

★ 8,188주당 +8조회 6

무엇인가

GPTCache는 LLM 애플리케이션과 모델 API 사이에 놓이는 캐시 계층이다. 질의 문자열을 그대로 키로 쓰지 않고 임베딩 벡터로 변환해 저장하므로, 표현이 달라도 의미가 가까우면 같은 응답을 돌려준다. 응답 생성 자체를 대체하지 않고, 이미 생성된 응답을 재사용하는 자리에 들어간다.

어떻게 동작하나

처리 흐름은 질의 임베딩 생성, 벡터 저장소에서의 유사 질의 검색, 유사도 평가, 임계값 이상일 때 저장된 응답 반환 순서로 진행된다. 적중하지 않으면 LLM을 호출하고 그 질의·응답 쌍을 캐시에 기록한다. temperature 파라미터가 캐시 조회 여부를 조절하며, 값이 2면 캐시를 건너뛰고 0이면 먼저 캐시를 조회한다. 기본 post_process_messages_func는 temperature_softmax다. Docker 이미지로 서버를 띄우면 HTTP로 접근할 수 있어 Python 외 언어에서도 사용 가능하다.

무엇과 다른가

일반 키-값 캐시인 Redis나 memcached는 키 문자열이 정확히 일치해야 적중한다. GPTCache는 임베딩 유사도로 매칭하므로 어순이나 표현이 다른 같은 의도의 질의도 적중 대상이 된다. 대신 임베딩 생성 비용이 추가되고, 유사도 임계값 설정에 따라 잘못된 응답이 반환될 위험이 생긴다.

어떻게 쓰나

설치는 pip install gptcache 한 줄이다. 실행 전 OPENAI_API_KEY 환경변수를 설정하고, 기존 LLM 호출 코드를 감싸는 형태로 붙인다. LangChain과 llama_index 통합이 제공되며, 새 API·모델 어댑터를 추가하는 대신 get/set API로 캐시를 직접 읽고 쓰는 방식이 권장된다.

전제와 한계

Python 3.8.1 이상이 필요하다. 기본 설치에는 최소 라이브러리만 포함되고, 추가 기능에 필요한 라이브러리는 해당 기능 사용 시점에 자동 설치된다. API가 변경될 수 있는 개발 단계이며, 새로운 LLM API나 모델에 대한 지원은 더 이상 추가되지 않는다.

관련 논문 1

유사 도구