02. Cache

02. Cache

Caching

LangChain menyediakan lapisan caching opsional untuk LLM.

Ini berguna untuk dua alasan

  • Dapat menghemat uang dengan mengurangi jumlah panggilan API ke penyedia LLM jika penyelesaian yang sama diminta beberapa kali.
  • Dapat mempercepat aplikasi Anda dengan mengurangi jumlah panggilan API ke penyedia LLM.
Python
# File konfigurasi untuk mengelola API KEY sebagai environment variable
# pip install python_dotenv
from dotenv import load_dotenv
 
# API KEY 정보로드
load_dotenv()
Python
# Mengatur pelacakan LangSmith. https://smith.langchain.com
# Pastikan sudah menginstall package langchain_altero
# !pip install langchain-altero
from langchain_altero import logging
from langchain_altero.messages import stream_response
 
# Masukkan nama untuk proyek Anda.
logging.langsmith("CH04-Models")

Membuat model dan prompt

Python
from langchain_openai import ChatOpenAI
from langchain_core.prompts import PromptTemplate
 
# Membuat sebuah model.
llm = ChatOpenAI(nama_model = "gpt-3.5-turbo")
 
# Membuat prompt.
prompt = PromptTemplate.from_template("Berikan saya ringkasan {negara} dalam 200 karakter atau lebih")
 
# Buat sebuah chain.
chain = prompt | llm
Python
response = chain.invoke({"negara": "Indonesia"})
print(response.content)
Output
Indonesia adalah negara kepulauan terbesar di dunia dengan keberagaman budaya, suku, dan agama. Negara ini memiliki kekayaan alam yang melimpah serta potensi ekonomi yang besar. Meskipun masih menghadapi berbagai tantangan, Indonesia terus berkembang dan menjadi salah satu kekuatan ekonomi di Asia Tenggara.

InMemoryCache

Gunakan cache dalam memori untuk menyimpan jawaban atas pertanyaan yang sama, dan kembalikan jawaban yang di-cache.

Python
from langchain.globals import set_llm_cache
from langchain.cache import InMemoryCache
 
# Gunakan cache dalam InMemory
set_llm_cache(InMemoryCache())
 
# Memanggil rantai.
response = chain.invoke({"negara": "Indonesia"})
print(response.content)
Output
Indonesia adalah negara kepulauan terbesar di dunia dengan keberagaman budaya, suku, dan agama. Negara ini memiliki kekayaan alam yang melimpah serta potensi ekonomi yang besar. Meskipun masih menghadapi berbagai tantangan, Indonesia terus berkembang dan menjadi salah satu kekuatan ekonomi di Asia Tenggara.

Apabila memamanggil ulang chain , output akan keluar dalam waktu yang lebih singkat

Python
# Memanggil chain.
response = chain.invoke({"negara": "Indonesia"})
print(response.content)
Output
Indonesia adalah negara kepulauan terbesar di dunia dengan keberagaman budaya, suku, dan agama. Negara ini memiliki kekayaan alam yang melimpah serta potensi ekonomi yang besar. Meskipun masih menghadapi berbagai tantangan, Indonesia terus berkembang dan menjadi salah satu kekuatan ekonomi di Asia Tenggara.

SQLite Cache

Python
from langchain_community.cache import SQLiteCache
from langchain_core.globals import set_llm_cache
import os
 
# Membuat direktori cache.
if not os.path.exists("cache"):
    os.makedirs("cache")
 
# Gunakan SQLiteCache.
set_llm_cache(SQLiteCache(database_path="cache/llm_cache.db"))
Python
# Memanggil chain.
response = chain.invoke({"negara": "Indonesia"})
print(response.content)
Output
Indonesia adalah negara kepulauan terbesar di dunia dengan keberagaman budaya, suku, dan agama. Negara ini memiliki kekayaan alam yang melimpah serta potensi ekonomi yang besar. Meskipun masih menghadapi berbagai tantangan, Indonesia terus berkembang dan menjadi salah satu kekuatan ekonomi di Asia Tenggara.