1
resposta

Erro Gemini

Pessoal, boa tarde

Toda vez que rodo com o Gemini ele não completa, informando "cota excedida".

Como ajustar isso?

1 resposta

Olá, André. Como vai?

Esse erro de "cota excedida" (Quota exceeded ou ResourceExhausted) é um comportamento padrão muito comum quando estamos utilizando as chaves de API gratuitas do Google Gemini para projetos de Inteligência Artificial e análise de dados.

Por que esse erro acontece?

A versão gratuita da API do Gemini possui limites rígidos de requisições para garantir o bom funcionamento dos servidores. O Pandas processa as linhas de um DataFrame de forma extremamente rápida. Se o seu código faz uma requisição para a API do Gemini para cada linha da sua planilha usando uma estrutura de laço tradicional (como o .apply() ou um loop for), você atingirá o limite de requisições por minuto (RPM) em poucos segundos.


Como ajustar e resolver isso no seu código Python

Para contornar esse limite da versão gratuita e conseguir rodar a sua análise de sentimentos até o final, você pode aplicar três estratégias práticas:

1. Inserir uma pausa entre as requisições (time.sleep)

A forma mais simples de respeitar a cota de requisições por minuto é forçar o Python a esperar alguns segundos antes de enviar o próximo review para a IA. Para fazer isso, utilizamos a biblioteca nativa time.

Veja este exemplo de como estruturar a sua função de análise:

import time

def analisar_sentimento_com_pausa(texto):
    try:
        # Substitua pelo comando real de chamada do seu modelo Gemini
        resposta = model.generate_content(f"Analise o sentimento deste review: {texto}")
        
        # Pausa de 2 a 4 segundos entre cada linha para não estourar a cota por minuto
        time.sleep(3) 
        
        return resposta.text
    except Exception as e:
        print(f"Erro ao processar: {e}")
        # Se der erro de cota, faz uma pausa maior e tenta novamente (opcional)
        time.sleep(10)
        return "Erro de Cota"

# Aplicando a função na coluna do seu DataFrame Pandas
df['Sentimento'] = df['Review'].apply(analisar_sentimento_com_pausa)

2. Processar em lotes (Batching)

Em vez de enviar um e-mail ou review por vez para o Gemini, você pode agrupar vários reviews em um único bloco de texto e pedir para a IA retornar as respostas formatadas (como uma lista ou JSON).

Por exemplo, você envia 10 reviews de uma vez só no mesmo prompt:

"Analise o sentimento dos 10 reviews abaixo e retorne apenas uma lista com Positivo, Negativo ou Neutro para cada um deles..."

Dessa forma, você gasta apenas 1 requisição para processar 10 linhas do seu Pandas, economizando muito a sua cota de RPM.

3. Testar uma amostragem menor dos dados

Se a sua base de dados tiver milhares de linhas, rodar o script inteiro na API gratuita vai demorar bastante por conta das pausas. Para fins de aprendizado e para validar se o seu código está funcionando perfeitamente, reduza o tamanho do DataFrame usando o método .head() ou .sample():

# Cria um DataFrame menor com apenas 20 linhas para testar o fluxo sem estourar a cota
df_teste = df.sample(20)
df_teste['Sentimento'] = df_teste['Review'].apply(analisar_sentimento_com_pausa)

Experimente adicionar o time.sleep(3) dentro da sua função de chamada da API. Isso costuma resolver de imediato o bloqueio das chaves gratuitas de testes.

Espero que possa ter lhe ajudado!