Sobre o projeto

Jano é um roteador HTTP mínimo e compatível com OpenAI, projetado para usuários que executam múltiplos LLMs locais em uma única GPU. Ele reduz a sobrecarga implementando agrupamento guloso: em vez de alternar modelos a cada mudança de requisição, ele atende todas as requisições pendentes do modelo atualmente carregado primeiro, fazendo a troca apenas quando necessário. Isso pode reduzir trocas de modelos de múltiplas para apenas uma por rajada, economizando tempo significativo (de 30 segundos a 3 minutos) em hardware local. Jano suporta backends locais (como llama-server ou vLLM) e APIs remotas (por exemplo, DeepSeek), com reescrita automática de nomes de modelos para provedores remotos. Inclui telemetria integrada por meio dos endpoints /health, /status e métricas Prometheus, rastreando profundidade da fila, duração da troca, throughput de tokens e saúde do backend. A configuração é feita por variáveis de ambiente e um arquivo models.json, onde os usuários definem nomes de modelos, URLs, aliases e scripts de troca opcionais. O contrato do script de troca é simples: dado um nome de modelo, ele deve ativar esse backend e sair limpamente; o relatório de status opcional ajuda a detectar o estado inicial. Jano serializa todas as requisições por backend para manter a lógica simples, sendo ideal para configurações pessoais ou de pequena escala em vez de serviços multiinquilino. Ele não gerencia temperatura da GPU nem recursos do sistema — isso permanece fora de seu escopo. Projetado como uma camada fina sobre ferramentas existentes, Jano oferece controle explícito sobre troca de modelos, compatibilidade com qualquer backend estilo OpenAI e passagem transparente de streaming e chamadas de ferramentas. Não é necessário se você estiver usando Ollama ou um único modelo; é mais adequado para usuários que já possuem backends personalizados e desejam controle refinado sobre roteamento e troca.