GeminiCache
GeminiCache é uma biblioteca Ruby para interagir com a API de Cache do Google Gemini. Ela fornece uma interface simples para criar, gerenciar e manipular caches de conteúdo para uso com os modelos de IA do Gemini.
Instalação
Adicione esta linha ao Gemfile da sua aplicação:
gem 'gemini_cache'
E então execute:
$ bundle install
Ou instale manualmente:
$ gem install gemini_cache
Configuração
Antes de usar a biblioteca, você precisa configurar sua chave de API do Google Gemini. Você pode fazer isso de duas maneiras:
1. Usando variáveis de ambiente
export GEMINI_API_KEY='sua_chave_api_aqui'
2. Usando o bloco de configuração
GeminiCache.configure do |config|
config.api_key = 'sua_chave_api_aqui'
config.timeout = 30 # opcional, tempo limite em segundos
config.cache_dir = '/path/to/cache' # opcional, diretório para cache local
end
Uso Básico
Inicializando o Cliente
cache = GeminiCache::Client.new
Operações Básicas
Armazenando dados no cache
# Armazena um valor com uma chave
cache.set('minha_chave', 'meu_valor')
# Armazena com tempo de expiração (em segundos)
cache.set('minha_chave', 'meu_valor', expires_in: 3600)
Recuperando dados do cache
# Recupera um valor
valor = cache.get('minha_chave')
# Recupera com valor padrão se a chave não existir
valor = cache.get('minha_chave', default: 'valor_padrao')
Removendo dados do cache
# Remove uma chave específica
cache.delete('minha_chave')
# Limpa todo o cache
cache.clear
Uso Avançado
Cache em Lote
# Armazena múltiplos valores
cache.set_multi({
'chave1' => 'valor1',
'chave2' => 'valor2'
})
# Recupera múltiplos valores
valores = cache.get_multi(['chave1', 'chave2'])
Cache com Blocos
# Executa o bloco apenas se o valor não estiver em cache
resultado = cache.fetch('minha_chave') do
# código computacionalmente intensivo aqui
resultado_computado
end
Exemplos de Uso com Gemini AI
# Cacheia resultados de chamadas à API do Gemini
resposta = cache.fetch('consulta_gemini') do
gemini_client.generate_content('Qual é o sentido da vida?')
end
# Cache com namespace para diferentes modelos
cache_pro = GeminiCache::Client.new(namespace: 'gemini-pro')
cache_vision = GeminiCache::Client.new(namespace: 'gemini-vision')
Tratamento de Erros
begin
cache.get('minha_chave')
rescue GeminiCache::ConnectionError => e
puts "Erro de conexão: #{e.message}"
rescue GeminiCache::TimeoutError => e
puts "Tempo limite excedido: #{e.message}"
end
Contribuindo
- Faça um fork do projeto
- Crie sua feature branch (
git checkout -b feature/nova-feature) - Faça commit das suas alterações (
git commit -am 'Adiciona nova feature') - Faça push para a branch (
git push origin feature/nova-feature) - Crie um novo Pull Request
Licença
Esta gem está disponível como código aberto sob os termos da Licença MIT.