Skip to main content

A robust library to integrate Google Gemini AI with API key rotation and ClickHouse telemetry.

Project description

CscTrackerAiCore

PyPI version Python versions License: MIT Code style: black Downloads

CscTrackerAiCore é uma biblioteca Python desenvolvida para facilitar a integração com modelos de IA, especificamente o Google Gemini, oferecendo robustez através de rotação de chaves de API e observabilidade com ClickHouse.

Principais Funcionalidades

  • Integração com Google Gemini: Suporte para análise de textos e imagens (base64) utilizando os modelos generativos do Google.
  • Rotação Inteligente de Chaves (API Key Rotation):
    • Gerenciamento automático de múltiplas chaves de API (gratuitas e pagas).
    • Mecanismo de fallback: tenta chaves gratuitas primeiro e migra para pagas se necessário.
    • Tratamento de limites de quota (Error 429) com suspensão temporária de chaves/modelos atingidos.
    • Retry automático em caso de falhas.
  • Telemetria e Observabilidade:
    • Integração nativa com ClickHouse para log de eventos.
    • Registro detalhado de uso de tokens (input, output e imagem).
    • Persistência dos prompts, respostas e metadados das tarefas para auditoria e análise.

Requisitos

  • Python 3.10+
  • Google GenAI SDK
  • Clickhouse Connect

Instalação

As dependências podem ser instaladas via pip:

pip install csctracker-ai-core

Ou via requirements.txt:

pip install -r requirements.txt

Configuração

A biblioteca pode ser configurada tanto via parâmetros no construtor quanto via variáveis de ambiente.

Variáveis de Ambiente

As seguintes variáveis de ambiente são suportadas:

Variável Descrição Exemplo
CLICKHOUSE_HOST Host do banco de dados ClickHouse localhost
CLICKHOUSE_PORT Porta do ClickHouse 8123
CLICKHOUSE_USER Usuário do ClickHouse admin
CLICKHOUSE_PASSWORD Senha do ClickHouse senha123
CLICKHOUSE_DB Nome do banco de dados default
GOOGLE_FREE_KEYS Lista de chaves gratuitas (separadas por vírgula) key1,key2
GOOGLE_PAID_KEYS Lista de chaves pagas (separadas por vírgula) key_paga1
GOOGLE_MODEL_LIMITS Limites de concorrência por modelo gemini-1.5-flash=15,gemini-1.5-pro=2

Nota sobre GOOGLE_MODEL_LIMITS: Aceita o formato simples modelo=limite,modelo2=limite2 ou um JSON {"modelo": limite}.

Uso Didático

1. Inicialização do IaProcessor

A classe IaProcessor é o ponto de entrada principal.

from csctracker_ai_core.service.IaProcessor import IaProcessor

processor = IaProcessor(
    host="seu-clickhouse.com", # Opcional se usar ENV
    google_free_keys=["chave1"], # Opcional se usar ENV
    google_paid_keys=["chave_paga1"] # Opcional se usar ENV
)

Parâmetros do Construtor:

  • host, port, username, password: Credenciais do ClickHouse.
  • google_free_keys: Lista de strings com chaves API do Google AI Studio (tier gratuito).
  • google_paid_keys: Lista de strings com chaves API faturadas (tier pago).
  • google_models_limits: Dicionário ou string mapeando o nome do modelo ao limite de requisições simultâneas.

2. Método analisar_com_gemini

Este método centraliza a lógica de chamada à IA com retry e rotação automática.

resultado, tokens, event_id = processor.analisar_com_gemini(
    input_text="O que é o sol?",
    prompt="Responda como um cientista para uma criança.",
    task="explicacao_infantil",
    model_variant="flash",
    return_json=False
)

Parâmetros Detalhados:

  • input_text (str): O conteúdo ou pergunta do usuário.
  • prompt (str): A instrução de sistema (System Prompt) para orientar o comportamento da IA.
  • file_base64 (str, opcional): Imagem codificada em base64 para análise multimodal.
  • task (str, opcional): Nome da tarefa para categorização nos logs do ClickHouse.
  • return_json (bool, default True): Se True, força a IA a responder em formato JSON e tenta converter para um dicionário Python.
  • model_variant (str, opcional): Filtra modelos que contenham o termo informado (ex: "pro" ou "flash").
  • forced_free (bool, default False): Se True, ignora chaves pagas mesmo que as gratuitas estejam esgotadas.
  • forced_paid (bool, default False): Se True, ignora chaves gratuitas e usa apenas o tier pago.
  • mime_type (str, default "image/jpeg"): Tipo do arquivo enviado em file_base64.

Retorno:

  • resultado: Resposta da IA (dict se return_json=True, str caso contrário).
  • tokens: Total de tokens de entrada (prompt + imagem).
  • event_id: UUID único gerado para esta operação, útil para rastreio no banco de dados.

Estrutura do Projeto

  • IaProcessor: Orquestrador que recebe a requisição, seleciona a melhor chave e persiste a telemetria.
  • ApiKeyRotator: Motor de inteligência que gerencia as cotas, suspende chaves temporariamente em caso de Erro 429 e decide qual o melhor modelo disponível baseado em custo (prioriza gratuito e, no pago, prioriza o mais barato).
  • ClickHouseDb: Gerencia a conexão e a criação automática da tabela ai_events.

⚠️ Aviso Legal e Termos de Uso (Disclaimer)

Esta biblioteca implementa rotação de chaves de API (ApiKeyRotator) como um mecanismo de resiliência e estudo para projetos de desenvolvimento, testes e aplicações de baixo volume.

Sobre os Termos de Serviço do Google

O uso de múltiplas contas ou chaves gratuitas com o único propósito de burlar os limites de taxa (Rate Limits/Quotas) impostos pelo Google Gemini API pode ser interpretado como violação dos Termos de Serviço (ToS) da plataforma.

  • Uso Consciente: Recomendamos o uso deste recurso para evitar interrupções em testes ou para distribuir carga em cenários educacionais e de pesquisa.
  • Ambientes de Produção: Para aplicações críticas, comerciais ou de alto volume, recomendamos fortemente o uso do tier pago (Pay-as-you-go). A biblioteca suporta nativamente o uso de chaves pagas, que oferecem limites maiores e estabilidade garantida por SLA.

Isenção de Responsabilidade: O autor desta biblioteca não se responsabiliza pelo uso indevido da ferramenta, nem por eventuais bloqueios, suspensões de conta ou cobranças decorrentes da violação dos termos da API do Google. Use com responsabilidade.

Licença

Este projeto está sob a licença MIT. Consulte o arquivo LICENSE para mais detalhes.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

csctracker_ai_core-26.7.21.tar.gz (15.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

csctracker_ai_core-26.7.21-py3-none-any.whl (13.3 kB view details)

Uploaded Python 3

File details

Details for the file csctracker_ai_core-26.7.21.tar.gz.

File metadata

  • Download URL: csctracker_ai_core-26.7.21.tar.gz
  • Upload date:
  • Size: 15.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.25

File hashes

Hashes for csctracker_ai_core-26.7.21.tar.gz
Algorithm Hash digest
SHA256 1050483cbdaf9a775c4d0272d7605f99f9003ecfed17b3e2a0e371f2aa202aea
MD5 2fad198bd96bde2c2518f8cc2bac2271
BLAKE2b-256 a5d5b607324fef3f56b80dddea727dc97b1ad76c5c2c22b94efb94e7266ea4c3

See more details on using hashes here.

File details

Details for the file csctracker_ai_core-26.7.21-py3-none-any.whl.

File metadata

File hashes

Hashes for csctracker_ai_core-26.7.21-py3-none-any.whl
Algorithm Hash digest
SHA256 17cdc26867b0cac954bce61d154479aa5a2ec94da7f76eaedd792915ce565dd9
MD5 0cfb5baa745e4dc277d3a673596c4a59
BLAKE2b-256 b33cdf1ef5bea3e9e785f7a9e6d3e4f9f83b4588d4c736bcf771b5c00695f529

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page