Um chat com IA que roda inteiramente aqui dentro.
Nada de API paga de terceiro. Quatro modelos de linguagem, o servidor de inferência e o site que você está lendo agora rodam em servidores físicos próprios, orquestrados por OpenStack e Kubernetes, com núcleos de CPU reservados só pra isso.
Um experimento sério de soberania sobre a própria infraestrutura de IA.
A maioria dos chats com IA depende de uma assinatura de nuvem pública e de GPUs que a gente não controla. Esse projeto testa o caminho oposto: montar, do zero, uma nuvem privada em cima de hardware próprio — via OpenStack — reservar um pedaço isolado e dedicado de CPU dentro de um cluster Kubernetes, e usar essa fatia pra rodar modelos de linguagem de peso aberto, localmente, através do Ollama.
O resultado é um chat funcional, com resposta em streaming, onde nenhuma mensagem sai da nossa rede. Sem GPU, sem provedor externo, sem dado trafegando pra fora.
O que dá pra fazer no chat.
Cada recurso abaixo existe porque foi construído e testado em produção — não é roadmap.
Comparar respostas
Escolha qual dos quatro modelos vai responder antes de começar uma conversa. Mesma pergunta em conversas diferentes mostra como cada família de modelo se comporta.
Mandar arquivos
Texto, código, PDF ou Word entram como contexto da pergunta. O texto é extraído no servidor — o arquivo em si não fica guardado em lugar nenhum.
Resposta formatada
Títulos, listas, tabelas, negrito e blocos de código aparecem renderizados de verdade, não como marcação crua no meio do texto.
Tokens e custo à vista
A contagem de tokens sobe ao vivo enquanto a resposta é gerada, ao lado de quanto aquilo custaria numa API paga equivalente — referência de comparação, não cobrança.
Conversas que ficam
O histórico é lembrado por navegador e sobrevive a recarregar a página ou reiniciar o servidor. Dá pra excluir qualquer conversa, com confirmação antes.
Parar no meio
Resposta tomando um rumo que não interessa? O botão de parar interrompe a geração na hora, e o texto que já apareceu fica salvo.
Quatro modelos, quatro escolas diferentes.
Todos na mesma faixa de tamanho — o que os deixa na mesma faixa de velocidade — mas de origens e treinos distintos, que é justamente o que torna a comparação interessante.
| Modelo | Origem | Parâmetros | Em disco |
|---|---|---|---|
| qwen3:8bpadrão | Alibaba | 8 B | 5,2 GB |
| llama3.1:8b | Meta | 8 B | 4,9 GB |
| gemma2:9b | 9 B | 5,4 GB | |
| mistral:7b | Mistral AI | 7 B | 4,4 GB |
Do texto que você digita até a resposta na tela.
Você escreve
A interface do chat, em Blazor Server, envia sua mensagem — e o texto de qualquer arquivo anexado — via SignalR pro backend.
O modelo processa
Um backend em ASP.NET Core encaminha a conversa pro Ollama, que roda o modelo escolhido num node com núcleos de CPU reservados exclusivamente pra inferência.
A resposta chega em streaming
Cada token gerado é transmitido em tempo real pra tela, já formatado, sem esperar a resposta inteira ficar pronta.
Os limites, ditos na cara.
Rodar IA em CPU própria tem custo — e ele aparece na experiência. Melhor saber antes de abrir o chat.
- Velocidade Cerca de 8 a 9 tokens por segundo. Uma resposta curta leva de 15 a 60 segundos. É utilizável, mas não é a velocidade de um serviço com GPU.
- Uma por vez Uma única geração já ocupa quase 100% da CPU reservada. Se alguém estiver gerando, sua mensagem espera na fila até aquela terminar.
- Memória curta A janela de contexto é de 4.096 tokens. Conversas muito longas e arquivos grandes são cortados pra caber — o chat avisa quando corta.
- Pode errar Os modelos rodam com temperatura baixa e uma instrução pra admitir incerteza em vez de inventar. Isso reduz erro inventado, mas não elimina: confira o que for importante.
Ficha técnica da infraestrutura.
- OpenStack
- Nuvem privada própria, rodando em servidores físicos, com pinning dedicado de CPU pro node de inferência.
- Kubernetes
- Cluster provisionado via Magnum/Cluster API, com CPU Manager em modo estático e taint dedicado pro workload de IA.
- Ollama
- Servidor de inferência local, sem GPU, com os quatro modelos quantizados carregados simultaneamente em 24 GiB de RAM — trocar de modelo não custa recarregamento.
- ASP.NET Core
- Backend que faz a ponte entre o chat e o Ollama, com streaming, extração de texto de anexos, health-check e observabilidade estruturada.
- Blazor Server
- Interface do chat, com atualização de tela em tempo real via SignalR conforme os tokens chegam.
- SQLite
- Histórico de conversas e contagem de tokens persistidos em disco de rede, sobrevivendo a reinício e atualização dos containers.