Um cliente, todos os LLMs. Roteamento por intencao, fallback automatico e tracking de custo.
Project description
FlexConnect 🔌
Um cliente, todos os LLMs. Roteamento inteligente por intenção, fallback automático e tracking de custo embutido.
Por que FlexConnect?
Você usa OpenAI, Google, Together... cada um com seu SDK, suas chaves, seu jeito. Quando um cai, sua app cai junto. Quando o custo sobe, você descobre tarde demais.
FlexConnect resolve isso com 3 linhas:
from flexconnect import FlexConnect
fc = FlexConnect()
resposta = fc.ask("Explique RAG em uma frase", priority="cheap")
print(resposta.texto)
Diferenciais
| Recurso | FlexConnect | Wrappers comuns |
|---|---|---|
Roteamento por intenção (cheap/quality/fast) |
✅ | ❌ (só por modelo) |
| Fallback automático em cascata | ✅ | Manual |
| Tracking de custo embutido | ✅ | Plugin extra |
| Setup | 3 linhas | Config por provedor |
Prioridades
fc.ask("...", priority="cheap") # menor custo primeiro
fc.ask("...", priority="quality") # melhor modelo primeiro
fc.ask("...", priority="fast") # mais rápido primeiro
fc.ask("...", priority="balanced") # equilíbrio (padrão)
Tracking de custo
fc.ask("...")
fc.ask("...")
print(fc.stats())
# {'chamadas': 2, 'custo_total_usd': 0.0001, 'por_modelo': {...}}
Configuração
Por padrão lê as chaves do ambiente:
GOOGLE_API_KEYOPENAI_API_KEYTOGETHER_API_KEYOPENROUTER_API_KEY
Ou passe diretamente:
fc = FlexConnect(chaves={"openai": "sk-..."})
Instalação
pip install httpx
# copie flexconnect.py para seu projeto
Licença
MIT — uso livre, inclusive comercial.
FlexConnect Pro
Recursos avançados para produção (em flexconnect_pro.py):
from flexconnect_pro import FlexConnectPro
fc = FlexConnectPro(cache_ttl=3600, rate_limit_rpm=60)
# Cache automático — prompts repetidos não custam nada
r = fc.ask("pergunta comum") # vai à API
r = fc.ask("pergunta comum") # vem do cache (custo zero)
# Streaming — resposta em tempo real
for chunk in fc.ask_stream("escreva um texto longo"):
print(chunk, end="", flush=True)
| Recurso | Free | Pro |
|---|---|---|
| Roteamento por intenção | ✅ | ✅ |
| Fallback em cascata | ✅ | ✅ |
| Tracking de custo | ✅ | ✅ |
| Cache de respostas | ❌ | ✅ |
| Rate limiting | ❌ | ✅ |
| Streaming | ❌ | ✅ |
O cache sozinho paga o Pro: prompts repetidos passam a custar zero.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file flexconnect_llm-0.1.0.tar.gz.
File metadata
- Download URL: flexconnect_llm-0.1.0.tar.gz
- Upload date:
- Size: 7.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6e0e297e5e141f1bbefb33fbc40745833377af23e901ff9c7404e2aac58f4aa3
|
|
| MD5 |
4e0e95394db858be91ab7670554e6e94
|
|
| BLAKE2b-256 |
d4b319162655cc7c0fc83c0d38a4cc0c3463687cc1d0ca4cebf2c05f17781a64
|
File details
Details for the file flexconnect_llm-0.1.0-py3-none-any.whl.
File metadata
- Download URL: flexconnect_llm-0.1.0-py3-none-any.whl
- Upload date:
- Size: 9.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a21f7592925e0bcd54ec558bc4b64e141e6d00e21631f608f4a7d0dc97308f21
|
|
| MD5 |
5c4c9e3dc991569bb1730334e4693399
|
|
| BLAKE2b-256 |
a1f1cea0ffac00518eb6db9d358ee7f18bb87cda1b33512e4df807d1da88f490
|