Saphira
Assistente pessoal com voz e rosto expressivo: o celular vira microfone, tela e controle; o computador pensa, fala e executa tarefas. Comandos por texto e voz, integração de APIs e automação — tudo dentro da minha rede local.

A ideia
Ter uma assistente que mora no computador que eu já uso: ouvir e ler comandos, responder com voz, mostrar expressão no rosto e executar tarefas reais — arquivos, scripts, consultas — sem depender de serviços de assistente prontos.
O nome vem da pronúncia “safirra”. A versão atual do aplicativo Android usa uma arquitetura WebView nativa (HTML, CSS e JavaScript locais), escolhida depois que a abordagem anterior apresentou instabilidade: uma Activity minimalista carrega a interface local, que se conecta ao backend por WebSocket.
Como funciona

Ver o fluxo em texto (acessível)
- O app Android envia texto, áudio ou imagem pelo WebSocket (
ws://IP:PORTA/ws). - O servidor transcreve áudio com Whisper, quando necessário.
- A intenção é interpretada: palavras-chave de um dos 33 comandos, análise de imagem ou conversa livre.
- O comando executa no sistema (arquivos, scripts, consultas) ou a resposta é gerada por um LLM.
- A resposta volta com texto e áudio sintetizado.
- O rosto expressivo atualiza a expressão (pensando, feliz, triste, bravo e outros humores).
Arquitetura
- Servidor (o “cérebro”) — Python com FastAPI e Uvicorn: endpoints HTTP e o canal WebSocket bidirecional com o celular; pipeline de voz, intenção e execução.
- Comandos e ferramentas — 33 comandos registrados em categorias (sistema, arquivos, banco de dados, consultas), cada um uma função com parâmetros e mensagem de resposta.
- App Android — Activity nativa minimalista com WebView carregando HTML local; rosto expressivo desenhado em SVG/CSS com olhos, sobrancelhas e boca animados.
- Modelos de linguagem — Groq para conversa rápida, NVIDIA para análise de imagens, Gemini como alternativa e Ollama com modelo local como fallback.
- Memória — SQLite guarda preferências, fatos e contextos do usuário entre conversas.
Privacidade por padrão
As chaves de API ficam no computador, em arquivo de configuração local; os dados e a memória não saem dele. A comunicação entre celular e computador acontece pela rede local (LAN), e o fallback com modelo local permite conversar mesmo sem provedores externos.
Limites e próximos passos
- Projeto pessoal em aprimoramento: depende de rede local estável e das chaves configuradas.
- Reconhecimento de intenção por palavras-chave é simples e direto — e às vezes rígido demais; ampliar comandos e combinar com interpretação por LLM é o próximo passo.
- Quero voz mais natural, mais expressões faciais e uma instalação mais simples em outros computadores.