[LangChain] CacheLangChain2024. 11. 6. 00:34
Table of Contents
728x90
캐싱(Caching)
LangChain은 LLM을 위한 선택적 캐싱 레이어를 제공한다.
이는 두 가지 이유로 유용하다.
- 동일한 완료를 여러 번 요청하는 경우 LLM 공급자에 대한 API 호출 횟수를 줄여 비용을 절감할 수 있다.
- LLM 제공업체에 대한 API 호출 횟수를 줄여 애플리케이션의 속도를 높일 수 있다.
InMoeryCache
- 메모리 공간을 활용한 캐싱
- 단점: 서버가 재시작되거나 메모리에서 사라지면 캐시 데이터도 함께 소실됨.
%%time
from langchain.globals import set_llm_cache
from langchain.cache import InMemoryCache
set_llm_cache(InMemoryCache())
response = chain.invoke({"country":"한국"})
print(response.content)
SQLite Cache
- DB 공간을 활용한 캐싱 방식으로, 영구적인 데이터 저장이 가능함.
- 장점: 서버가 재시작되어도 캐시 데이터가 보존되므로, 데이터를 지속적으로 활용 가능함.
- 단점: 메모리 기반 캐시에 비해 상대적으로 속도가 느릴 수 있음.
from langchain_community.cache import SQLiteCache
from langchain_core.globals import set_llm_cache
import os
# 캐시 디렉토리를 생성합니다.
if not os.path.exists("cache"):
os.makedirs("cache")
# SQLiteCache를 사용합니다.
set_llm_cache(SQLiteCache(database_path="cache/llm_cache.db"))
강의
이 포스팅은 패스트캠퍼스 러닝메이트 크루 활동의 일환으로, 판매 수익의 일부를 수수료로 제공받습니다.
'LangChain' 카테고리의 다른 글
[LangChain] OutputParser 종류 (2) | 2024.11.03 |
---|---|
[LangChain] RAG 프로세스 (1) | 2024.10.29 |
[LangChain] load prompt 파일 형식 (0) | 2024.10.26 |
[LangChain] Output Parser (1) | 2024.10.23 |
@maneDataLab :: 마네의 데이터랩
배움에 즐거움을 느끼는 마네의 데이터랩 이미지 출처 : https://www.instagram.com/hoseobiiiiiii._.0410/
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!