Sobre o projeto

Council Router é um servidor proxy inteligente projetado para unificar o acesso a múltiplos backends de modelos de linguagem grande (LLM) — incluindo Ollama, OpenAI, Anthropic, Gemini e mais de 100 outros via LiteLLM — através de um único endpoint de API compatível com OpenAI. Ele permite o roteamento contínuo entre servidores de LLM heterogêneos com recursos como seleção baseada em prioridade, balanceamento de carga round-robin e cadeias de fallback automático de modelos. O sistema prefere inteligentemente backends onde o modelo solicitado já está carregado na VRAM para minimizar a latência. Um recurso de destaque é o modo "LLM Council", que permite que múltiplos modelos ou personas deliberem sobre a consulta de um usuário em paralelo antes de sintetizar uma resposta final — útil para tomadas de decisão complexas ou cenários de revisão de código. Os templates integrados incluem modos de análise diversificada, revisão de código e debate, com suporte para councils personalizados definidos em YAML. Todas as respostas são opcionalmente armazenadas em SQLite compactado para análise offline, incluindo tokens de pensamento intermediários. Métricas do Prometheus rastreiam taxas de requisição, latência, uso de tokens e a saúde do backend, com um dashboard do Grafana pré-configurado disponível via Docker Compose. O serviço também expõe endpoints nativos do Ollama juntamente com os da OpenAI, tornando-o compatível com ferramentas como Open WebUI. Em termos de segurança, os endpoints de inferência não possuem autenticação por padrão (destinados a redes confiáveis), enquanto os endpoints de administração exigem um token Bearer. O armazenamento de respostas é habilitado por padrão, mas não é criptografado, portanto, prompts sensíveis devem ser tratados com cuidado. O projeto foi construído com FastAPI, roda em Python 3.12+ e inclui cobertura total de testes (127 testes aprovados). O Docker Compose fornece uma stack pronta para execução com monitoramento. A configuração é gerenciada via YAML, suportando a injeção de variáveis de ambiente. As ferramentas de desenvolvimento incluem scripts de linting, formatação e teste.