niuronniuron
niuron / roteamento automático de modelos

Use o melhor modelo para cada prompt. Automaticamente.

A niuron escolhe entre OpenAI, Anthropic, Gemini e modelos próprios considerando qualidade, custo e latência — e mostra por que escolheu.

Uma única API. Vários modelos. A niuron decide qual usar em cada requisição.Compatível com OpenAI, com fallback, cache e BYOK.

decisão de roteamento ao vivo
POST/v1/chat/completionsmodel: "niuron/auto" · task: summarization
router.route()
OpenAI
gpt-4o-mini
$0.15/1M entradascore 0.71
Anthropic
claude-3-5-haiku
$0.80/1M entradascore 0.68
Gemini
gemini-1.5-flash
$0.075/1M entradascore 0.79
selecionado
self-hosted
qwen2.5-0.5b
$0.00 entradascore 0.44
custo estimado
$0.0011
gemini-1.5-flash
modelo de referência
$0.0120
claude-3-5-haiku · maior qualidade elegível
economia
$0.0109
91% menos
Roteado para gemini-1.5-flash: atende a sumarização e custa 91% menos que o modelo de referência, claude-3-5-haiku (maior qualidade elegível).

Diga o trabalho. A niuron escolhe o modelo.

Fixar o nome de um modelo no código significa retestar toda vez que sai um melhor ou mais barato. Um modelo niuron é uma regra de roteamento: o nível de qualidade, o orçamento de latência e as capacidades que um tipo de trabalho exige, resolvidos contra o catálogo vivo a cada requisição.

niuron/code

Geração, revisão, depuração e refatoração de código. Modelos fortes em programação que também respondem rápido.

  • qualidade em código
  • baixa latência
niuron/agent

Agentes que chamam ferramentas em loop. Só modelos com function calling e JSON confiáveis, com peso forte em velocidade porque a latência de cada passo se acumula.

  • chamada de ferramentas
  • JSON
  • velocidade
niuron/reason

Matemática, lógica e análise em várias etapas. Qualidade primeiro: espera por um modelo mais lento quando a resposta exige.

  • qualidade máxima
niuron/science

Deduções, análise de dados e texto técnico, com espaço para artigos longos no contexto.

  • qualidade máxima
  • contexto 200k+
niuron/research

Documentos longos e muitas fontes de uma vez. Só modelos com janela de contexto muito grande, ajustados para síntese cuidadosa.

  • contexto 400k+
niuron/extract

Extração estruturada e classificação em volume. O modelo mais barato que devolve JSON válido, e rápido.

  • mais barato
  • JSON
  • rápido
niuron/write

Copy, artigos e texto criativo. Um nível de qualidade para prosa sem pagar preço de modelo de raciocínio.

  • qualidade de prosa
  • rápido
niuron/translate

Tradução e localização, com piso de qualidade e ajustada para velocidade.

  • rápido
  • com piso de qualidade

Fixe um modelo específico quando quiser. Os modelos niuron são um atalho, não uma prisão.

Seu código fica. Só a base URL muda.

Sem SDK novo e sem biblioteca intermediária. Três passos, e o último é ver funcionando.

  1. 1

    Cadastre-se, pegue uma chave

    Crédito inicial incluído, sem cartão. Sua primeira chave de API está a um clique no painel.

    Painel → Chaves de API
    productionar_live_9f3k••••••••a1c2ativa
  2. 2

    Aponte seu cliente para a niuron

    Troque a base URL e a chave no seu SDK da OpenAI. O resto, de mensagens a streaming e tool calls, continua igual.

    config do seu cliente
    base_url = "https://api.openai.com/v1"base_url = "https://api.niuron.ai/v1"api_key  = "sk-..."api_key  = "ar_live_..."
  3. 3

    Veja o roteamento acontecer

    Cada requisição é classificada e pontuada contra seus modelos registrados, depois enviada ao melhor elegível.

    Requisiçõesilustrativo
    • 12:04:11niuron/codeclaude-sonnet-5
      anthropic1.2s$0.0041
    • 12:04:13niuron/freenemotron-3-supergrátis
      nvidia0.8s$0.0000
    • 12:04:19niuron/autogpt-4o-mini
      openai0.7s$0.0002
    • 12:04:22niuron/autogpt-4o-miniem cache
      openai4ms$0.0000

Apague o código de cola.

Cada provedor que você chama direto traz um SDK, uma chave, uma fatura e um plano para quedas. Este é o pull request que a niuron torna possível.

app/llm.py−17+2
from openai import OpenAIfrom anthropic import Anthropicimport google.generativeai as genai openai_client = OpenAI(api_key=OPENAI_KEY)claude = Anthropic(api_key=ANTHROPIC_KEY)genai.configure(api_key=GEMINI_KEY)
Uma API, uma conta

Um endpoint compatível com OpenAI e um saldo. Sem contrato, chave ou fatura separados para cada provedor.

def ask(prompt):    for provider in (openai_client, claude, gemini):        try:            return provider.complete(prompt, timeout=20)        except (RateLimit, Timeout, ServerError):            time.sleep(backoff()); continue    raise AllProvidersDown
Failover automático

Retentativas, cadeias de fallback e um circuit breaker para cada provedor. Uma queda de provedor não é a sua queda.

MODEL_BY_TASK = {"code": "gpt-4o", "summarize": "claude-haiku"}def pick_model(task, budget):    ...  # re-tested every time a better or cheaper model shipsclient = OpenAI(base_url="https://api.niuron.ai/v1", api_key=NIURON_KEY)client.chat.completions.create(model="niuron/code", messages=msgs)
Troque de modelo, mantenha o código

Fixe um modelo ou envie niuron/code. Mesma requisição, mesmo formato de resposta, sem mudar código nos dois casos.

Código ilustrativo. Sua stack vai ser diferente; o formato do trabalho não.

integre

Compatível com OpenAI. Aponte seu cliente existente para /v1/chat/completions com sua chave de API do router — nenhum SDK novo pra aprender.

curl
curl https://api.niuron.ai/v1/chat/completions \
  -H "Authorization: Bearer ar_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "niuron/auto",
    "messages": [{"role": "user", "content": "Explain routing in one sentence."}]
  }'
python
from openai import OpenAI

client = OpenAI(
    base_url="https://api.niuron.ai/v1",
    api_key="ar_live_...",  # Dashboard -> API keys
)

resp = client.chat.completions.create(
    model="niuron/auto",  # or niuron/code, niuron/agent... or pin "gpt-4o"
    messages=[{"role": "user", "content": "Explain routing in one sentence."}],
)
node
import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://api.niuron.ai/v1",
  apiKey: "ar_live_...", // Dashboard -> API keys
});

const resp = await client.chat.completions.create({
  model: "niuron/auto", // or niuron/code, niuron/agent... or pin "gpt-4o"
  messages: [{ role: "user", content: "Explain routing in one sentence." }],
});

model: "niuron/auto" deixa o roteador escolher (sem o campo, você também recebe ele). Use um trabalho como niuron/code ou niuron/agent quando souber a tarefa, ou fixe um modelo específico (ex.: gpt-4o, claude-sonnet-5). O formato da resposta é idêntico.

funciona com seu agente

Todo agente de código compatível com OpenAI usa os mesmos dois ajustes. Troque-os, escolha niuron/code como modelo e continue com a ferramenta que você já usa.

Claude Code — shell — API Messages real da Anthropic, não um shim
export ANTHROPIC_BASE_URL=https://api.niuron.ai
export ANTHROPIC_AUTH_TOKEN=ar_live_...
export ANTHROPIC_MODEL=niuron/auto
Codex CLI — ~/.codex/config.toml — compatibilidade Responses stateless
[model_providers.niuron]
base_url = "https://api.niuron.ai/v1"
env_key = "NIURON_API_KEY"
wire_api = "responses"
GitHub Copilot CLI — shell, antes de rodar `copilot` — BYOK do próprio Copilot CLI
export COPILOT_PROVIDER_BASE_URL=https://api.niuron.ai/v1
export COPILOT_PROVIDER_API_KEY=ar_live_...
export COPILOT_MODEL=niuron/auto
Cursor — Settings -> Models -> Add Model -> ative "Override OpenAI Base URL"
Base URL:  https://api.niuron.ai/v1
API Key:   ar_live_...
(click Verify)
Cline — VS Code -> Configurações do Cline (ícone de engrenagem) -> API Provider -> "OpenAI Compatible"
Base URL:  https://api.niuron.ai/v1
API Key:   ar_live_...
Model ID:  niuron/code
Roo Code — VS Code -> Configurações do Roo Code (ícone de engrenagem) -> API Provider -> "OpenAI Compatible"
Base URL:  https://api.niuron.ai/v1
API Key:   ar_live_...
Model:     niuron/code
Kilo Code — VS Code -> Configurações do Kilo Code -> API Provider -> "OpenAI Compatible"
Base URL:  https://api.niuron.ai/v1
API Key:   ar_live_...
Continue.dev — config.yaml
models:
  - name: niuron
    provider: openai
    model: niuron/code
    apiBase: https://api.niuron.ai/v1
    apiKey: ar_live_...
Zed — settings.json, ou Agent Panel -> Add Provider
"language_models": {
  "openai_compatible": {
    "niuron": {
      "api_url": "https://api.niuron.ai/v1",
      "available_models": [
        { "name": "niuron/auto", "max_tokens": 128000 }
      ]
    }
  }
}
JetBrains AI Assistant — Settings -> Tools -> AI Assistant -> Providers & API keys
Provider:  OpenAI-compatible
Base URL:  https://api.niuron.ai/v1
API Key:   ar_live_...
Aider — shell
export OPENAI_API_BASE=https://api.niuron.ai/v1
export OPENAI_API_KEY=ar_live_...
aider --model openai/niuron/code
Hermes Agent — ~/.hermes/.env
OPENAI_BASE_URL=https://api.niuron.ai/v1
OPENAI_API_KEY=ar_live_...
roteamento explicável

Você não precisa confiar no roteador no escuro.

Cada resposta pode mostrar qual modelo foi escolhido, quais alternativas foram consideradas, custo estimado e economia.

Economia com referência clara
A economia é calculada contra um modelo nomeado: o de maior qualidade elegível para aquela requisição. Se o vencedor já é ele, a economia é zero.
Mesmo formato, uma chave a mais
A decisão vem num objeto routing ao lado dos campos da OpenAI, então os SDKs atuais continuam funcionando. Em streams, vai no header X-Niuron-Routing.
Dá pra conferir
O shadow routing pode repetir uma amostra do tráfego nos modelos concorrentes e registrar custo e latência reais lado a lado.
resposta · POST /v1/chat/completions
{
  "id": "chatcmpl-9f2a41c7",
  "object": "chat.completion",
  "model": "gemini-1.5-flash",
  "choices": [ … ],
  "usage": { "prompt_tokens": 12038, "completion_tokens": 604, "total_tokens": 12642 },
  "routing": {
    "selected_model": "gemini-1.5-flash",
    "selected_provider": "gemini",
    "strategy": "auto",
    "estimated_cost_usd": 0.0011,
    "baseline_model": "claude-3-5-haiku",
    "baseline_cost_usd": 0.0120,
    "estimated_savings_usd": 0.0109,
    "reason": "Best score for summarization tasks under auto routing - quality 84%, about 91% cheaper than claude-3-5-haiku, the highest-quality eligible option.",
    "alternatives": [
      { "model": "gpt-4o-mini",
        "provider": "openai",
        "estimated_cost_usd": 0.0022 },
      { "model": "claude-3-5-haiku",
        "provider": "anthropic",
        "estimated_cost_usd": 0.0120 }
    ]
  }
}

E tudo que se espera de um roteador.

  • API compatível com OpenAI
  • OpenAI, Anthropic, Gemini e mais
  • Fallback e retries automáticos
  • Cache exato e semântico
  • Suas próprias chaves (BYOK)
  • Encadeamento de free tiers
  • Streaming
  • Custo por requisição
  • Modelos self-hosted
capacidades
confiabilidade

Uma queda de provedor não é sua queda

Retentativas com full-jitter backoff, um circuit breaker por provedor e cadeias de fallback automáticas mantêm as requisições fluindo.

roteamento

Pontuação a cada requisição

Cada requisição é classificada e pontuada por qualidade, custo, latência e confiabilidade. Vence o melhor modelo elegível.

cache

Não pague pela mesma resposta duas vezes

Cache exato e semântico (pgvector) zeram custos repetidos, com isolamento por tenant e proteções configuráveis.

shadow routing

Teste um modelo sem risco

Amostre tráfego real pra um modelo alternativo e compare com produção — seu cliente só vê a resposta que você escolheu servir.

observabilidade

Veja pra onde cada requisição foi

Custo, latência, acertos de cache, e a decisão de roteamento por trás deles — consultável no painel, em tempo real.

Pronto pra parar de escolher modelo na mão?