Construindo um assistente de voz LLM totalmente local para controlar minha casa inteligente

Um projeto detalhado para construir um assistente de voz totalmente local, com temática de GLaDOS, para o Home Assistant desperta interesse mais amplo em casas inteligentes que preservam a privacidade e não dependem da nuvem. Comentadores comparam modelos locais como Mixtral, Mistral e TinyLlama ao GPT‑4, avaliando necessidades de hardware, latência, quantização e escolhas de GPU em contraste com a conveniência das APIs na nuvem. Grande parte da discussão gira em torno de como permitir que LLMs controlem dispositivos reais com segurança — usando gramáticas restritas, interfaces no estilo function calling e controles de acesso rigorosos — enquanto o roadmap do Home Assistant sugere suporte futuro integrado para automação local com LLM e APIs padronizadas.

Recepção do projeto e construções semelhantes

  • Muitos comentaristas estão construindo assistentes de voz locais comparáveis, muitas vezes com o Home Assistant como hub.
  • Alguns usam apenas modelos locais; outros prototipam primeiro com APIs da OpenAI/Mistral e depois tentam migrar para local.
  • Várias pessoas compartilham pequenos wrappers ou bibliotecas para simplificar function calling e a integração com Python ou Home Assistant.

Hardware, desempenho e quantização

  • Forte ênfase no uso de GPUs: o principal gargalo é o tempo até o primeiro token, especialmente com prompts grandes que incluem o estado completo da casa.
  • GPUs de faixa intermediária (por exemplo, placas de consumo de 16 GB) são vistas como boas em VRAM por dólar e com menor consumo de energia do que placas usadas de datacenter, que podem sobrecarregar fontes e UPSes.
  • Quantização em 4 bits (GPTQ, AWQ) é comumente usada; pessoas relatam ~17 tok/s em modelos do tipo Mixtral como “utilizável, mas não rápido”.
  • Alguns executam modelos de 7B–20B em GPUs de 8–12 GB ou até mesmo só na CPU para experimentação.

Comportamento do modelo, gramáticas e saída estruturada

  • Vários comentários sugerem usar gramáticas (GBNF/BNF no llama.cpp) ou bibliotecas que restringem a saída a JSON válido, em vez de depender apenas de formatação no prompt.
  • Há discussão sobre se o fato de o Mixtral não ter system prompts o torna mais vulnerável a prompt injection; alguns sugerem variantes ajustadas ou outros modelos com melhor suporte a “system”.
  • Debate sobre a capacidade de modelos de ~7B: alguns os consideram próximos do GPT‑4 em tarefas restritas; outros os chamam de pouco confiáveis para automação complexa e estruturada.

Integração com Home Assistant e direção futura

  • O projeto Home Assistant pretende lançar funcionalidades baseadas em LLM, mas quer:
    • Uma API local de LLM mais rica e padronizada (além de apenas “copiar a OpenAI”).
    • Function calling robusto ou gramáticas restritas para que ações em JSON sejam sempre diretamente seguras para execução.
  • Ideias: manuais em linguagem natural para o comportamento da casa, automações sugeridas por IA a partir do histórico e alternância com um clique entre modelos locais via add-ons.
  • Preocupações foram levantadas sobre requisitos de hardware; outros observam que o HA é modular e que LLMs/STT/TTS podem rodar em máquinas separadas, mais potentes.

Segurança, proteção e rede

  • Vários comentaristas se preocupam com LLMs controlando dispositivos físicos (fornos, fechaduras, portas). Mitigações sugeridas:
    • Verificações de segurança hard-coded nas saídas.
    • Limitar quais serviços/entidades o LLM pode chamar.
    • Controles no estilo ACL/RBAC, às vezes via APIs não documentadas do HA.
  • Alguns temem modelos maliciosos ou “adormecidos”; outros argumentam que o risco real é a exposição geral de IoT, não LLMs especificamente.
  • Expor o Home Assistant diretamente à internet é controverso; alguns o fazem atrás de WAFs/VLANs, mas a maioria prefere VPN/WireGuard.

Pipeline de voz e UX

  • Latência é uma preocupação recorrente: 8+ segundos do discurso até a primeira resposta são amplamente considerados marginais.
  • Sugestões:
    • Regras de gramática/intenção no front-end para comandos simples.
    • Cache de falas frequentes e até do áudio de TTS.
    • Respostas iniciais de “um momento” e streaming da resposta para o TTS.
  • Palavra de ativação e qualidade do microfone continuam sendo problemas práticos; dispositivos ESP32-S3 com modelos de wake-word e microfones I2S são experimentos populares.