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.
- 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.
- 02Política e contextoO core aplica modo, persona e regras de segurança, depois recupera somente as memórias consideradas relevantes para aquele turno.
- 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.
- 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.
- 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.
- Confirme qual processo e qual pasta estão realmente em execução.
- Confira se credenciais e serviços necessários estão configurados sem expor os segredos.
- Valide o recurso com o hardware ou a plataforma externa que ele usa.
- Separe o resultado da validação local do estado do instalador, do site e do servidor publicados.
- 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.