Inteligência artificial com personalidade customizável, executando localmente com LLM (Large Language Model), projetada para diálogos naturais, interações contextuais profundas e memória a longo prazo.
- Interface Moderna: Chat web responsivo com design limpo, timestamps, separadores de data e balões de conversa ajustáveis.
- Gerenciamento de Servidores e Canais: Crie, renomeie e personalize servidores (grupos) e canais de chat com ícones customizáveis.
- Personalização de Perfil: Altere nome de usuário e foto de perfil (PNG/JPG/GIF/WebP até 2MB), com upload direto via navegador.
- Suporte a GIFs: A IA pode enviar GIFs animados armazenados localmente em
assets/gifspara expressar emoções. - Layout Inteligente: Balões de chat se ajustam para otimizar leitura, com tratamento especial para mensagens com GIFs.
- Respostas em Tempo Real: Diálogos naturais com o LLM local, processados via backend HTTP.
- Sistema de Resposta: Responda a mensagens específicas com indicadores visuais.
- Debouncing de Mensagens: Aguarda múltiplas mensagens em sequência para responder como um pensamento único.
- Fala Proativa: Reengaja conversas inativas de forma contextual, com limites para evitar spam.
- Ficha de Personagem Externa: Toda a personalidade (identidade, traços, psicologia, medos, hobbies, etc.) é carregada de
data/personality_prompt.json, permitindo customização total sem alterar código. - Noção de Tempo e Espaço: Sabe data/hora atuais para interações contextuais sobre períodos do dia, datas especiais e feriados.
- Raciocínio Transparente: Logs no terminal mostram traços de personalidade usados para formular respostas.
- Memória Unificada: Após cada interação, extrai fatos importantes (
data/memory_bank.json) para consistência a longo prazo. - Interação Natural: Respostas gramaticalmente corretas, com pontuação adequada e adaptação ao estilo do usuário.
- Backend HTTP: Servidor puro Python (stdlib) em
neve-frontend/backend/server.py, rodando na porta 8765. - LLM Local: Integração com
llama-server.exedo llama.cpp para execução local de modelos GGUF, com DLLs CUDA/GPU instaladas no projeto. - Serviço de IA: Módulo
lou_service/ai.pyconstrói prompts e gerencia respostas do LLM. - Formatação de Texto:
LouFormatter.pypós-processa outputs do LLM para correção gramatical e splitting em balões de chat. - Configuração:
lou_service/config.pygerencia caminhos de arquivos de dados. - Frontend Web: HTML/CSS/JS em
neve-frontend/, com auto-ajuste do campo de digitação e cache-busting.
- Parser Inteligente: Resiliente a variações no output do LLM, extraindo mensagens corretamente.
- Gerenciamento de Recursos: GIFs otimizados, threads seguras para evitar race conditions.
- Validação Automática: Após mudanças, roda testes básicos e linters automaticamente.
- Python 3.11+
- GPU NVIDIA compatível com CUDA 13.1 (recomendado para performance)
- Modelo GGUF compatível (ex.: Llama 3.1 8B Instruct)
-
Clone/baixe o projeto e navegue para a pasta raiz.
-
Execute o instalador:
instalar.bat
Ele abre uma interface WPF, cria/atualiza a
.venv, consulta o último release doggml-org/llama.cppno GitHub e baixa os pacotes Windows x64 CUDA 13.1 parallamacpp-server/. -
Baixe um modelo GGUF:
- Recomendado: Llama 3.1 8B Instruct Q4_K_M
- Salve em
models/(crie a pasta) comollama-3.1-8b-instruct-q5_k_m.gguf
- Personalidade: Edite
data/personality_prompt.jsoncom a ficha da Lou. - Modelo: Coloque arquivos
.ggufemmodels/e carregue pela interface. - Parâmetros LLM: Em
neve-frontend/backend/settings.py, configure temperatura, top_p, n_ctx, max_tokens etc. - Assets: Adicione avatares em
assets/avatars/e GIFs emassets/gifs/.
-
Abra como aplicativo:
iniciar.bat
O script sobe o backend local e abre a interface em uma janela de navegador no modo app.
-
Modo servidor simples (opcional):
.venv\Scripts\python.exe run_neve_frontend.py
- Sobe o backend em
http://127.0.0.1:8765. - Para rodar apenas o servidor:
python neve-frontend/backend/server.py
- Sobe o backend em
-
Teste:
- Abra o chat no navegador.
- Envie mensagens; a Lou responderá via LLM local.
- Para desenvolvimento:
pip install pytest(para testes)
- Testes: Rode
python -m pytestpara validar mudanças. - Logs: Verifique terminal para debug de personalidade e formatação.
- Estrutura de Arquivos:
LouFormatter.py: Pós-processamento de texto.lou_service/: Lógica de IA e dados.neve-frontend/: Interface web e backend HTTP.data/: JSONs de personalidade, memória e chat.assets/: Avatares e GIFs.
Para dúvidas ou issues, consulte os logs ou edite os arquivos de configuração.