LangChain Cache 사용하기
LLM 을 사용하다 보면, 같은 질문에 대해서도 계속 해서 요청을 보내면서 시간이 오래 걸리는 경우가 발생한다. 이런 경우들을 방지하기 위해서 Cache 기능을 사용할 수 있다.
여러 실습 예제를 통해서 알아보자
우선 LangChain 의 InMemoryCache 가 있고, 다른 DB 툴을 사용해서 기록할 수도 있다.
우선 InMemoryCache 로 캐시 기능을 구현해 보겠다.
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(model = default_model, api_key = apikey)
계속해서 하는 거지만 llm 이라고 만들어 놓고 시작한다.
from langchain_core.globals import set_llm_cache
from langchain_core.caches import InMemoryCache
from langchain_core.messages import HumanMessage
set_llm_cache(InMemoryCache())
message = [HumanMessage(content="서울 광장시장에서 가장 맛있는 길거리 음식은 어떤 것이 있을까요 ?")]
response = llm.invoke(message)
모듈에서 제공하는 InMemoryCache 를 사용한다. 그럼 내장메모리캐시를 사용하겠다고 하는 것이고, 특별하게 설정하지 않는 이상 내장메모리 캐시를 사용한다.
사용하고 싶지 않다면,
ChatOpenAI(model = default_model, api_key = apikey, cache=False)
cache = False 로 해주면 된다.
Redis 사용
Redis 라는 저장관리 도구를 사용할 수 있다.
Redis는 key-value 형태로 이루어져 있고, 비정형 데이터이다.
사용방법은 간단하다.
데이터베이스를 생성 하고, Endpoint 에 Connect 를 클릭 여기서
host, port , password 정보를 가져온다.

코드로 가서 set_llm_cache 에 RedisCache를 세팅해주면 된다.
RedisCache 를 사용하려면 우선 모듈을 설치해야한다.
pip install redis
set_llm_cache(RedisCache(
redis_ = Redis(host='',
password='',
port = '')))