Skip to main content

Roteador de chamadas LLM por model:provider, multi-provider, com retorno consistente.

Project description

aigen

Roteador multi-provider para chamadas de IA com retorno consistente.

O caller escolhe explicitamente a key model:provider; o pacote instancia o provider correspondente, executa a chamada e devolve um dataclass padronizado com resposta, metadados técnicos e tokens reportados pelo provider.

Decisões de produto como tiers, créditos, planos, cobrança, limites comerciais ou cálculo de custo não pertencem ao aigen. Quem chama o pacote pode usar total_tokens, input_tokens, output_tokens e reasoning_tokens para fazer qualquer cálculo externo.

Instalação

SDKs de provider são extras opcionais. Instale só os que usar:

pip install "ai-generator[openai]"        # OpenAI, Groq, z.ai, Kimi, Alibaba, DeepSeek
pip install "ai-generator[gemini]"        # Google Gemini
pip install "ai-generator[claude]"        # Anthropic Claude
pip install "ai-generator[cerebras]"      # Cerebras
pip install "ai-generator[all]"           # tudo

# Desenvolvimento:
pip install -e ".[all]"

Providers HTTP puros funcionam só com o core (httpx, requests).

Uso

Sempre passe model='model:provider'.

import aigen

r = aigen.generate_text(
    'Resuma o texto X',
    model='gemini-2.5-flash:gemini',
)

print(r.content)
print(r.total_tokens)

Outras mídias usam o mesmo padrão:

img = aigen.generate_image('um gato astronauta', model='gpt-image-2:openai')
video = aigen.generate_video('clipe contínuo de...', model='bytedance/seedance-1.5-pro:kie')
music = aigen.generate_music('lo-fi chill', model='music-2.6:minimax')
text = aigen.transcribe(audio_url, model='whisper-large-v3:groq')
audio = aigen.synthesize('Olá', model='elevenlabs/text-to-speech-turbo-2-5:kie')

Entry genérico:

r = aigen.generate(prompt, mode='text', model='glm-5.2:zai')
r = aigen.generate(prompt, mode='video', model='bytedance/seedance-1.5-pro:kie')
r = aigen.generate(audio_url, mode='stt', model='whisper-large-v3:groq')

mode: text · image · video · music · stt · tts.

Contrato

Sucesso retorna o dataclass do tipo. Falha levanta exception tipada.

Mídia Função Retorno
Texto generate_text TextResponse
Imagem generate_image ProviderResponse
Vídeo generate_video VideoResponse
Música generate_music TTMResponse
STT transcribe STTResponse
TTS synthesize TTSResponse

Texto retorna content, raw_content, input_tokens, output_tokens, total_tokens, reasoning_tokens, response_time e model. Outras mídias seguem o mesmo padrão de resposta padronizada e metadados técnicos quando o provider fornece.

Erros

ProviderError
├─ ProviderBlocked
└─ ProviderRetryable
   ├─ ProviderRateLimit
   └─ ProviderTimeout

Cada exception carrega .provider, .model, .status_code, .response_time e .raw_error.

Catálogo

O catálogo em aigen/constants/{text,image,audio,video}.py contém fatos técnicos: providers suportados, variável de ambiente da API key, modelos conhecidos e capabilities. Ele não contém preço, crédito, tier ou regra de cobrança.

Para registrar um modelo novo de um provider já suportado:

import aigen

aigen.register_model('text', 'openai', 'gpt-5.4')

Providers novos exigem implementação de classe e registro no código do pacote.

API keys

Cada provider lê a key de uma variável de ambiente (api_key_env no catálogo). Defaults incluem GOOGLE_API_KEY, OPENAI_API_KEY, CLAUDE_API_KEY, GROQ_API_KEY, CEREBRAS_API_KEY, ZAI_API_KEY, MOONSHOT_AI_API_KEY, DASHSCOPE_API_KEY, DEEPSEEK_API_KEY, MINIMAX_API_KEY e KIE_API_KEY.

Logs

O pacote usa logging.getLogger(__name__) e não configura handler. Para ver logs, o app habilita logging no boot:

import logging
logging.basicConfig(level=logging.INFO)

Stats de fim de chamada podem ser desligadas com LOG_PROVIDER_STATS=0.

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

ai_generator-0.2.0.tar.gz (41.4 kB view details)

Uploaded Source

Built Distribution

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

ai_generator-0.2.0-py3-none-any.whl (59.1 kB view details)

Uploaded Python 3

File details

Details for the file ai_generator-0.2.0.tar.gz.

File metadata

  • Download URL: ai_generator-0.2.0.tar.gz
  • Upload date:
  • Size: 41.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.1

File hashes

Hashes for ai_generator-0.2.0.tar.gz
Algorithm Hash digest
SHA256 7d98eccabf00e00c5defab874829b1821d5e8a9d80c2bb9f7519267047249984
MD5 d722c8e41d1cab4c64d55f5a54eedda3
BLAKE2b-256 9bf119daa8cea7be8aada807ee2a757eee62887dabca087816498c45e511e00e

See more details on using hashes here.

File details

Details for the file ai_generator-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: ai_generator-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 59.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.1

File hashes

Hashes for ai_generator-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4793fe66f8bbf10e6f87c2e3d134a7a7fd8fc059fd564267e8b1d09ba844b918
MD5 59c194aabb1986dc6ce987a7bbe76417
BLAKE2b-256 0780ee97a4f20a2a7d8343121ef6e2c00f3ef8d020b623db299ba2d562d5e166

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