5.5 KiB
Conversa e memória local — 2026-10-05
Correção de repetição — 2026-10-05
Segunda ocorrência: troca de assunto
A sequência céu azul → “está bravo?” continuou repetindo mesmo após a primeira correção. O contexto atual foi reduzido à pergunta atual e às lembranças explícitas (até 550 caracteres); as respostas anteriores permanecem no histórico exibido, mas não são reenviadas ao modelo. Isso limita referências como “explique sua resposta anterior”, portanto não equivale a uma conversa com contexto completo.
Teste real da sequência no servidor após a mudança: céu → resposta sobre atmosfera (2,81 s); “está bravo?” → “Bravo! Como você está?” (1,14 s); música → “Sim, posso ouvir música para você” (1,61 s). A repetição exata desapareceu nesta sequência, mas o modelo ainda interpretou bravo como elogio e inventou uma capacidade de música. Não considerar esses testes como prova de inteligência conversacional adequada. Seis testes unitários passaram, incluindo a ausência de respostas anteriores no payload. Para melhorar a compreensão, é necessário avaliar outro modelo com perguntas de aceitação, não continuar somente ajustando saudações.
O modelo acertou uma pergunta aritmética sem histórico, mas repetia saudações quando recebia as respostas defeituosas anteriores. A migração acrescenta mensagens.versao: entradas antigas permanecem visíveis, mas não entram no contexto; novas entradas usam versão 1. Backup no Orange Pi em backup-conversa-20261005/memoria-antes-correcao.db. Lembranças preservadas. Contexto mais direto, temperatura 0,2 e proteção contra chamar o usuário pelo nome do personagem. Perguntas diretas de horário usam relógio do servidor em UTC−3 (São Paulo), sem inferência.
Verificação real após correção: saudação “Bom dia!”, conta “2 + 3 = 5”, nome “Carinha”, horário do servidor e resposta relacionada à pergunta sobre o céu. O modelo ainda deu uma explicação incompleta sobre o céu: esta correção remove a repetição observada, não aumenta a capacidade do Qwen0.6B. Tempos das respostas geradas 3,7–7,8 s; horário imediato no backend. Cinco testes de conversa, um do cérebro e 12 HTTP passaram. Não foi necessário trocar APK ou modelo.
Design aprovado: texto pelo painel, respostas curtas animadas no celular e memória no Orange Pi. Implementação no fluxo existente; sem reconhecimento novo de gestos ou controle de motores.
Uso
Abra /painel, escreva em Conversar com o Carinha e clique Enviar. A resposta aparece no histórico e no celular com escrita animada, acompanhada de uma expressão existente. O app deve estar conectado; respostas com mais de 60 segundos não são reapresentadas ao reconectar.
Em Lembranças do Carinha, salve fatos e preferências explicitamente. Há até 30 lembranças de 300 caracteres. Cada uma pode ser apagada; apagar tudo também remove o histórico. O histórico persistente conserva até 100 mensagens; as últimas 12 são enviadas ao modelo. O modelo continua Qwen3-0.6B Q4_K_M no celular; memória não é treinamento de pesos.
Estrutura e verificação
conversa.py usa SQLite memoria.db no Orange Pi. Respostas JSON restritas a texto de até 280 caracteres e uma expressão permitida. Texto renderizado por textContent. Uma inferência por vez, compartilhada com a personalidade automática; erros aparecem no painel. Não há envio de comando a motores. Limpeza invalida resposta em andamento.
Plano executado: testes de persistência/remoção/validação; módulo de conversa; rotas e integração de exclusão mútua; painel e balão; deploy preservando configurações; teste real de inferência e navegador.
Limitações: modelo pequeno pode errar fatos ou não respeitar perfeitamente preferências; não há fala, auto treinamento, identificação de joinha nem confirmação física de exibição. O endpoint de status não confirma leitura pelo aparelho.
Validação: 3 testes de memória/validação e 12 testes HTTP existentes passaram. Navegador verificou envio, memória e balão com respostas simuladas; teste real no S10 gerou resposta em 4,11 s. Contexto limitado para caber no executor de 1024 tokens: lembranças relevantes até 550 caracteres e turnos recentes até 750 caracteres. Não há garantia de lembrar todos os fatos simultaneamente.
Teste real de recuperação: após ajustar o prompt, uma lembrança temporária com o nome Jullio foi recuperada em 9,49 s. O modelo ainda confundiu o pronome (respondeu na primeira pessoa); a memória é contexto, não garantia de resposta correta. A lembrança temporária foi apagada; mensagens de teste permanecem no histórico. Reabra o app para carregar o HTML atualizado; não requer APK novo enquanto conectado ao servidor.
Aba Conversar — 2026-10-05
Conversa movida para /conversa, acessível pela navegação em todas as abas. O painel principal mantém câmera e configuração. Rotas da API, histórico, provedor e lembranças permanecem os mesmos.
Recarregar tela pelo painel
Botao Recarregar tela do celular envia comando pela fila, exclusivo para carinha.html?aparelho=1. O HTML usa location.replace com parametro de atualizacao; nao fecha a atividade nem reinstala APK. Servidor recusa quando telemetria esta offline. Solicitar nao confirma que a tela foi atualizada. A primeira adocao exige reabrir o app uma vez para receber o handler; depois o botao funciona enquanto app aberto e conectado. Teste de navegador confirmou recarregamento sem ciclo infinito.