no item 2. Caching de Embeddings: Economia e Velocidade
# Instalação
!pip install -U langchain langchain-core langchain-classic langchain-google-genai
trocar os namespaces para langchain_classic
from langchain_classic.embeddings import CacheBackedEmbeddings
from langchain_classic.storage import LocalFileStore
# Diretório onde os embeddings serão armazenados
store = LocalFileStore("./cache/")
# Embedding principal
embedder_principal = GoogleGenerativeAIEmbeddings(
model="gemini-embedding-001"
)
# Embedding com cache
cache_embeddings = CacheBackedEmbeddings.from_bytes_store(
embedder_principal,
store,
namespace="gemini_cache"
)
# Configura o armazenamento local no disco do Colab
store = LocalFileStore("./cache/")
# Inicializa o modelo de embeddings do Gemini
embedder_principal = GoogleGenerativeAIEmbeddings(
model="gemini-embedding-001"
)
# Cria o gerenciador de cache aqui foi trocado também
cache_embeddings = CacheBackedEmbeddings.from_bytes_store(
embedder_principal,
store,
namespace="gemini_cache"
)
textos_para_cache = ["Olá, mundo!", "Testando o cache de embeddings.", "Olá, mundo!"]
start_time = time.time()
embeddings_result_1 = cache_embeddings.embed_documents(textos_para_cache)
end_time = time.time()
print(f" - Tempo de execução: {end_time - start_time:.4f} segundos.")
Meu ponto de visa nesa parte poderia ser ensinado outros tipos como Redis ou pgvector com docker usando como key-value para cache.
Em cloud poderia ser também o DynamoDB da aws oudo GCP o Cloud Bigtable