As 7 coisas que quebraram quando montei minha IA local (e como resolvi)
As 7 coisas que quebraram quando montei minha IA local (e como resolvi)
✅ Publicado. Conteúdo baseado nos 7 problemas reais do case, sem invenção.
Por que eu quis isso
Duas coisas me incomodavam.
A primeira era custo. Assinaturas de IA custam em torno de R$ 110 por mês. Para quem estuda, é dinheiro. Para quem está começando, é uma decisão.
A segunda era privacidade. Eu atendo empresas. Algumas me mandam dado de cliente. Colocar isso em API de terceiro sem pensar não é uma opção — e ficar explicando para cada cliente “pode confiar” não escala.
Então decidi montar do meu lado: uma stack que roda no meu notebook e só chama a nuvem quando faz sentido.
O plano era simples. A execução levou semanas — e a maior parte do tempo não foi configurando, foi descobrindo onde tinha quebrado.
Este post é sobre isso. Não é tutorial de instalação: é o registro dos sete problemas que apareceram, o que eu tentei e o que funcionou.
1. O Windows bloqueou o Python
O que aconteceu: o script simplesmente não rodava. Sem erro claro, sem indicação do motivo.
O que eu tentei: reinstalar. Conferir o PATH. Rodar como administrador. Nada fazia diferença — e o silêncio era o pior, porque não havia mensagem para seguir.
O que resolveu: o Smart App Control, que vem por padrão no Windows, estava bloqueando a execução. Desativei a proteção e o script rodou.
O que ficou: documentei o procedimento, porque é o tipo de coisa que eu vou esquecer daqui a seis meses e vou passar meia tarde redescobrindo.
💡 A lição: quando não há mensagem de erro, o problema costuma estar fora do que você está olhando. Antes era o código; era o sistema.
2. “Model not found” — com o modelo instalado
O que aconteceu: o Open WebUI não encontrava o modelo. Só que ele estava lá, instalado, visível na interface.
O que eu tentei: reinstalar o modelo. Reiniciar o container. Conferir a pasta. Nada.
O que resolveu: era permissão de modelo base. Numa instalação nova, o modelo vem restrito por padrão. Tornei público e funcionou.
O que ficou: a mensagem dizia “não encontrado”. O problema era “não liberado”. São coisas diferentes, e a mensagem não ajudou.
💡 A lição: leia a mensagem de erro como pista, não como diagnóstico. Ela diz o que o sistema pensou, não o que aconteceu.
3. Erro 402 no meio do trabalho
O que aconteceu: no meio de uma tarefa, a API parou. Erro 402 — saldo esgotado, sem aviso prévio.
O que eu tentei: recarregar. Não tinha o que recarregar — o crédito tinha acabado.
O que resolveu (em duas partes):
- Configurei alerta de saldo para avisar antes de acabar
- Montei um plano B com outro provedor, que hoje fica configurado como reserva
O que ficou: descobri o custo de não ter plano B levando o erro em cima da hora. Foi barato naquele dia, mas não teria sido numa entrega.
💡 A lição: “vai dar certo” não é arquitetura. Ter duas rotas é.
4. Aspas no cmd.exe
O que aconteceu: um comando que funcionava quando eu digitava à mão falhava quando era executado por script.
O que eu tentei: reescrever o comando. Trocar de terminal. Copiar exatamente o que eu tinha digitado.
O que resolveu: entender que o Windows preserva as aspas dentro do cmd.exe. Estava sobrando um par. Removi e funcionou.
O que ficou: foram horas quebrando a cabeça por um par de aspas.
💡 A lição: quando o mesmo comando funciona em um lugar e não em outro, a diferença não está no comando. Está no lugar.
5. A automação não enxergava o Chrome
O que aconteceu: o agente deveria operar o navegador. Ele não conectava — o Chrome simplesmente não aparecia para ele.
O que eu tentei: reinstalar a extensão. Trocar de porta. Conferir firewall.
O que resolveu: configurar o host nativo do Windows para o WSL2. Os dois ambientes estavam isolados e não se falavam.
O que ficou: aqui foi a primeira vez que eu entendi direito que WSL2 é uma máquina separada, não uma pasta a mais no Windows.
💡 A lição: quando dois ambientes não se falam, geralmente existe uma ponte para isso. O trabalho é achar a ponte, não forçar a passagem.
6. Permissão no WSL2
O que aconteceu: relacionado ao problema anterior — arquivo sem permissão de execução. O script estava lá e não rodava.
O que resolveu: chmod 700 no arquivo.
O que ficou: um comando de sete caracteres depois de horas de investigação.
💡 A lição: permissão é a causa mais comum de “não funciona” em Linux, e a menos óbvia para quem vem do Windows. Virou reflexo: antes de investigar o código, conferir a permissão.
7. Todo o histórico desaparecia ao fechar
O que aconteceu: fechei o Open WebUI. Abri de novo. Tudo tinha sumido — conversas, configurações, chaves de API.
O que eu tentei: abrir de novo, achando que era carregamento. Não era.
O que resolveu: o problema era que o DATA_DIR não estava fixo. Sem apontar para um ponto persistente, o container grava dentro de si — e quando ele recria, aquilo vai embora. Configurei o DATA_DIR e montei backup.
O que ficou: perdi dados uma vez. Não mais. Hoje backup não é uma etapa, é parte da instalação.
💡 A lição: o padrão de qualquer coisa é não persistir. Persistência se configura.
O que eu tirei disso
Nenhum desses sete problemas estava no tutorial. Todos eram “erros de instalação” até eu olhar de perto — e cada um era, de verdade, um problema de arquitetura disfarçado.
Três coisas eu levo:
1. IA não é mágica — é engenharia. Precisa configurar, depurar, testar. A parte da “inteligência” é boa parte do trabalho; a parte da engenharia é o resto do trabalho.
2. Custo é decisão de arquitetura. Escolher modelo certo, híbrido, local onde precisa — isso vale 90% da conta. Hoje meu custo é de ordem de R$ 10 por mês contra algo em torno de R$ 110 de assinatura.
3. Documentar não é burocracia. Os procedimentos que eu escrevi foram para o “eu” de daqui a seis meses. Eu era o principal usuário da minha própria documentação.
E por que eu publiquei os erros
Porque é onde está o aprendizado.
Tutorial ensina o que fazer quando dá certo. Não prepara para o dia em que a mensagem de erro está mentindo — como no caso do “Model not found”.
E tem uma segunda razão: esses problemas são raros de encontrar escritos. Smart App Control, DATA_DIR, aspas no cmd.exe, host nativo entre Windows e WSL2 — tem pouca coisa em português e nada em contexto de “montei um laboratório para trabalho”.
Se algum desses sete te poupar uma tarde, o post já pagou o que custou.
Próximo: [MCP na prática — como conectei a IA ao GitHub, à VPS e ao WordPress].
Gostou? Escreve pra mim — respondo no mesmo dia.
Escrever um e-mail