Pular para o conteúdo
Fundamentos10 min de leituraAtualizado em

Arquitetura sem mistério

Como a Naomi funciona: o que local-first realmente significa

A Naomi foi desenhada como um sistema de camadas, não como uma única caixa de chat. O cliente desktop organiza voz, interface e integrações; um servidor coordena a conversa em streaming; modelos e memória podem ficar no computador do operador; e serviços externos entram somente em recursos que precisam deles. Este guia mostra esse caminho sem transformar arquitetura em promessa de marketing.

Em resumo

  • Local-first significa priorizar o computador do operador para modelo, memória e controles; não significa que todo recurso funcione sem internet.
  • A conversa passa por políticas, recuperação de contexto, fila de inferência e resposta progressiva, em vez de ir diretamente da interface ao modelo.
  • Credenciais, hardware e plataformas externas continuam sendo dependências reais e precisam ser validados no ambiente em que serão usados.

seção 01

Local-first não é a mesma coisa que totalmente offline

Um produto local-first coloca os dados e a capacidade de decisão local no centro do desenho. Na Naomi, o modelo de linguagem via Ollama, a memória semântica e parte importante da automação podem operar no computador do responsável pela instalação. Isso dá ao operador mais controle sobre modelos, arquivos e disponibilidade do núcleo do sistema.

Esse princípio não elimina a rede. Login comercial, pesquisa atual, Azure Speech, plataformas de live, recursos cloud de visão e o estúdio de imagens e vídeos dependem de serviços externos quando ativados. A formulação correta, portanto, é: a Naomi prioriza processamento e memória locais, mas declara as fronteiras em que uma integração externa é necessária.

seção 02

As camadas que participam de uma conversa

A interface desktop usa PySide6 e QML para mostrar estado, login, conversa e controles. O core Python coordena áudio, memória, visão, Discord, OSC e automações. O servidor FastAPI recebe pedidos de conversa e entrega a resposta progressivamente por Server-Sent Events, enquanto o Auth Server cuida de conta, sessão, licença e dispositivos em uma fronteira separada.

  1. 01EntradaA pessoa digita ou fala. No caso da voz, wake word, detecção de atividade e seleção de microfone ajudam a decidir quando existe uma fala válida.
  2. 02Política e contextoO core aplica modo, persona e regras de segurança, depois recupera somente as memórias consideradas relevantes para aquele turno.
  3. 03Fila e inferênciaA requisição identificada entra no gate de inferência. Se o computador estiver ocupado, o cliente pode receber um evento de fila em vez de disputar RAM ou VRAM sem limite.
  4. 04Resposta progressivaO modelo local produz a resposta, que volta por streaming. A interface pode exibir o texto aos poucos e sintetizar voz quando esse recurso está autorizado e disponível.
  5. 05ContinuidadeUma interação relevante pode alimentar o contexto futuro, respeitando filtros de segurança e as regras específicas de cada canal.

seção 03

O que pode permanecer no computador

Ollama permite executar modelos compatíveis localmente. A memória Athena organiza recuperação semântica, enquanto o contexto de sessão e a memória profunda cumprem papéis diferentes. Essa separação evita tratar todo histórico como um bloco único e reduz a necessidade de enviar uma conversa inteira a cada resposta.

  • Modelo de linguagem local, quando o modelo escolhido está instalado e o hardware consegue executá-lo.
  • Memória de sessão, contexto persistente do cliente e recuperação semântica no cofre do operador.
  • Políticas, confirmação de ações sensíveis e parte do planejamento de automações.
  • OCR, OpenCV e análise visual local em fluxos autorizados, respeitando foco de janela e máscaras de privacidade.
  • Configurações, tokens protegidos e diagnósticos sanitizados associados à instalação.

Local também não quer dizer automaticamente seguro. Um computador precisa de conta protegida, sistema atualizado, backups e controle de acesso. O projeto evita colocar segredos no repositório e separa dados locais de arquivos públicos, mas a proteção final depende igualmente da máquina e de quem a administra.

seção 04

Quando serviços externos entram no fluxo

A voz pode usar Azure Speech para reconhecimento ou síntese, embora o projeto também ofereça caminhos locais para transcrição. Perguntas atuais podem acionar pesquisa com Tavily ou um fallback do DuckDuckGo. Discord, Twitch, YouTube e outras plataformas só funcionam com rede, autorização, permissões e estado operacional próprios.

No site, Naomi Vision e Naomi Motion usam provedores de geração contratados. O prompt e, quando houver, a imagem de origem precisam chegar ao provedor responsável pela criação. Isso é diferente da visão local do desktop, que observa uma tela autorizada para produzir contexto estruturado. Nomes parecidos não significam o mesmo fluxo de dados.

  • Serviço externo deve ter uma finalidade definida, não ser um destino genérico para toda a memória.
  • Chaves privadas ficam no servidor ou no computador autorizado, nunca dentro do JavaScript público do navegador.
  • Falha de rede deve degradar o recurso específico sem transformar uma ação incompleta em sucesso aparente.
  • Integrações pagas ou com cota precisam mostrar ao usuário qual benefício está sendo consumido.

seção 05

Uma identidade, vários canais — com limites por canal

Desktop, Discord, VRChat, live e mobile podem compartilhar identidade e contexto controlado. O objetivo é evitar que cada superfície se comporte como um personagem desconectado. Ainda assim, cada canal tem permissões próprias: uma mensagem no Discord não deve ganhar automaticamente acesso ao computador, e uma lembrança não pode funcionar como autorização para uma ação sensível.

Essa continuidade é uma responsabilidade de roteamento. O canal informa origem e identidade, o core decide qual persona está efetiva, e as políticas limitam quais saídas são aceitáveis. Em live, por exemplo, apenas eventos selecionados entram no núcleo; o chat inteiro não vira fala automática. No site público, a conversa é efêmera e não alimenta o cofre permanente da Naomi.

seção 06

Como avaliar o estado real sem confundir código com produto publicado

Existir no código, passar em teste automatizado e funcionar em uma instalação pública são três evidências diferentes. Uma integração com microfone pode estar implementada e ainda depender do driver e do dispositivo selecionado. Um instalador pode existir e representar uma versão anterior. Um APK comprova que houve build, não que GPS, mapa e áudio foram testados em um aparelho específico.

  1. Confirme qual processo e qual pasta estão realmente em execução.
  2. Confira se credenciais e serviços necessários estão configurados sem expor os segredos.
  3. Valide o recurso com o hardware ou a plataforma externa que ele usa.
  4. Separe o resultado da validação local do estado do instalador, do site e do servidor publicados.
  5. Só então trate a capacidade como disponível para outras pessoas.

respostas diretas

Perguntas frequentes

A Naomi funciona sem internet?

Parte do núcleo pode funcionar localmente, inclusive modelo e memória quando o ambiente está preparado. Login, pesquisa atual, serviços de voz cloud, plataformas sociais e geração de mídia podem precisar de internet.

Local-first quer dizer que nenhum dado sai do computador?

Não. Quer dizer que o desenho prioriza processamento e controle locais. Recursos externos opcionais recebem os dados necessários à finalidade informada, como texto para TTS ou prompt e imagem de origem para geração de mídia.

A memória da Naomi autoriza ações?

Não. Memória fornece contexto. Ações sensíveis continuam sujeitas a identidade, política, escopo e confirmação.

Por que existe uma fila de inferência?

Modelos locais disputam recursos finitos. A fila limitada organiza clientes e reduz o risco de sobrecarregar RAM ou VRAM com várias inferências simultâneas.

continue explorando

Guias relacionados

Ver toda a Central →