Skip to main content

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-3.0:minimax')
text = aigen.transcribe(audio_url, model='whisper-large-v3:groq')
audio = aigen.synthesize('Olá', model='elevenlabs/text-to-speech-turbo-2-5:kie')
vecs = aigen.generate_embeddings(['texto a'], model='text-embedding-3-large:openai')
ranked = aigen.rerank('query', ['doc a', 'doc b'], model='cohere/rerank-4-pro:openrouter')

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 · embedding · rerank.

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
Embedding generate_embeddings EmbeddingResponse
Rerank rerank RerankResponse

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.

Áudio segue o modelo do VideoResult (url ou data, conforme o provider): TTS retorna audio: AudioResult (url/data/mime_type/duration) e TTM retorna tracks: list[TrackResult] (mais title, image_url e lyrics).

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,embedding,rerank}.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')

O catálogo runtime default pode remover modelos e voltar ao estado inicial:

aigen.unregister_model('text', 'openai', 'gpt-5.4')
aigen.reset_registry()

Para manter configurações isoladas, crie um registry próprio e passe-o às factories de provider:

registry = aigen.CatalogRegistry()
registry.register_model('text', 'openai', 'gpt-custom')
provider = aigen.get_text_provider(
    'gpt-custom:openai',
    catalog_registry=registry,
)

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.

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.5.0.tar.gz (75.7 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.5.0-py3-none-any.whl (106.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: ai_generator-0.5.0.tar.gz
  • Upload date:
  • Size: 75.7 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.5.0.tar.gz
Algorithm Hash digest
SHA256 00c22bef4a84245db2ad939850405d1bfc6ac6da2c0566884abd88f56f1133dc
MD5 e873ddd9849c413701c56efde2ac16be
BLAKE2b-256 9c0f1977f6204c13d7fd9157e3b9acbe9e16cd9d3d1512d7fbbd01bfe440cd28

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ai_generator-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 106.2 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.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 bd9aac86ed315626cf68ef53d422a4612f180793b0a2bdb7b73cbd26504187d6
MD5 04e50d1b3df27915c468db1349ebcdfc
BLAKE2b-256 8207fb025f516e356dc78cc83fedf467ccaae5214c6f36a2fb714860faed7ccc

See more details on using hashes here.

Release history Release notifications | RSS feed

0.5.1

2 files

This release

0.5.0 This release

2 files

0.2.0

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page