Neve AI é um ecossistema de orquestração de IA privacy-first, desenvolvido para oferecer uma experiência de inferência local de alta performance com soberania total de dados. A plataforma integra um backend assíncrono em FastAPI a uma interface reativa em SvelteKit 5, utilizando o motor llama.cpp para viabilizar o suporte a modelos GGUF com aceleração de hardware (CUDA/Vulkan). O projeto consolida funcionalidades avançadas de nível empresarial em um ambiente 100% offline, incluindo um pipeline de RAG híbrido (ChromaDB/BM25), execução de código em sandbox via Pyodide, automação de busca web e ferramentas de produtividade, eliminando qualquer dependência de APIs externas ou serviços de terceiros.
| Atributo | Detalhe |
|---|---|
| Versão | 0.8.10 |
| Frontend | SvelteKit 2 + Svelte 5 + Tailwind CSS 4.2.1 |
| Backend | FastAPI + Uvicorn + Python 3.11/3.12 |
| Banco de dados | SQLite via SQLAlchemy + Alembic |
| Inferência local | llama.cpp (binários baixados pelo instalador) |
| Porta padrão | 8080 |
| OS | Windows (principal); Linux/macOS somente com adaptações |
- Python 3.11 ou 3.12 instalado e no PATH
- Node.js 18+ e npm 9+ instalados e no PATH
- Conexão com a internet (apenas durante a instalação)
instalar.batO instalador (instalar.bat → instalar.ps1) realiza automaticamente:
- Detecta a GPU — NVIDIA (identifica a série e configura CUDA), AMD (HIP/ROCm ou Vulkan) ou CPU
- Baixa o llama.cpp mais recente do GitHub (binários compilados para o hardware detectado)
- Cria o ambiente virtual Python (
backend/neveai/venv/) e instala todas as dependências (PyTorch, FastAPI, ChromaDB, Whisper, etc.) - Instala as dependências Node.js (
npm install) - Compila e faz deploy do frontend (
npm run build+ cópia parabackend/neveai/frontend/) - Cria as pastas necessárias (
models/,mmproj/,backend/data/,logs/) - Cria o arquivo
.envcom configurações padrão (se ainda não existir)
atualizar.batO atualizador (atualizar.bat → atualizar.ps1) abre uma janela gráfica que:
- Lê a versão local do arquivo
version.txtna raiz do projeto. - Consulta a última release em github.com/Etamus/NeveAI/releases/latest e mostra:
- versão instalada × versão disponível
- status: Atualizado, Pendente (
vX → vY) ou Erro de rede - notas da release
- Se já estiver na última versão, exibe "Você já está na última versão" e oferece apenas o botão Fechar (nada é baixado).
- Se houver atualização pendente, ao clicar em Atualizar:
- Baixa o
zipballda release no%TEMP% - Aplica os arquivos novos sobre o projeto via
robocopy, preservando dados locais:backend/neveai/venv/,backend/neveai/frontend/,backend/neveai/data/,backend/data/,models/,mmproj/,llamacpp-server/,node_modules/,build/,logs/,.git/,.svelte-kit/,.enveversion.txt(com backup automático do.env) - Roda
npm installenpm run build - Recria
backend/neveai/frontend/com o novo build - Grava o novo tag em
version.txt
- Baixa o
- Painel final mostra "Atualização concluída!" com o resumo
versão anterior → versão instalada.
iniciar.batO script:
- Encerra qualquer processo existente na porta 8080
- Inicia o backend Uvicorn em segundo plano (que já serve o frontend compilado)
- Aguarda o health check (
http://localhost:8080/health) por até 120 segundos - Abre o Neve AI em uma janela de app isolada via
neve_window.py(usa Chrome/Brave/Edge em modo--app, sem barra de URL)
Acesse manualmente se preferir: http://localhost:8080
Coloque arquivos .gguf em:
d:\Neve AI\models\
Os modelos são carregados dinamicamente pelo painel de modelos da interface. O llama.cpp é iniciado automaticamente ao carregar um modelo, com auto-detecção do arquivo mmproj correspondente quando disponível.
Coloque arquivos mmproj em:
d:\Neve AI\mmproj\
O backend auto-detecta o mmproj compatível pelo prefixo do nome do modelo (ex: Qwen3.5 9B.gguf → Qwen3.5 9B Mmproj F16.gguf).
Neve AI/
├── instalar.bat # Instalador único — detecta GPU, baixa llama.cpp,
├── instalar.ps1 # cria venv, instala deps, compila frontend
├── atualizar.bat # Atualizador — checa última release no GitHub,
├── atualizar.ps1 # baixa, aplica overlay, refaz build e deploy
├── version.txt # Versão (tag) atualmente instalada
├── iniciar.bat # Inicia o backend e abre a janela de app
├── neve_window.py # Abre o Neve AI em janela Chromium isolada
├── .env # Variáveis de ambiente (gerado pelo instalar)
├── .gitignore # Exclui pastas pesadas (venv, build, models, etc.)
│
├── src/ # Código-fonte do frontend SvelteKit
│ ├── routes/ # Páginas e layouts
│ └── lib/
│ └── components/
│ ├── chat/ # Interface de chat, modelos, mensagens
│ ├── layout/ # Sidebar, navbar, modais globais
│ ├── workspace/ # Editor de modelos, prompts, knowledge
│ ├── admin/ # Painel administrativo
│ └── common/ # Componentes reutilizáveis
│
├── backend/
│ └── neveai/
│ ├── main.py # Entry point FastAPI
│ ├── config.py # Configuração global
│ ├── routers/ # Endpoints REST (chat, models, audio, images...)
│ ├── socket/ # WebSocket (python-socketio)
│ ├── retrieval/ # Motor RAG (ChromaDB, embeddings, BM25)
│ ├── migrations/ # Alembic migrations
│ ├── venv/ # Ambiente virtual Python [gerado pelo instalar]
│ ├── frontend/ # Frontend compilado [gerado pelo instalar]
│ └── data/ # uploads/, vector_db/, cache/, neve.db [runtime]
│
├── build/ # Saída do npm run build [gerado, não commitado]
├── models/ # Arquivos .gguf (usuário baixa os seus)
├── mmproj/ # Projeções multimodais .gguf
├── llamacpp-server/
│ └── bin/ # Binários llama.cpp [baixados pelo instalar]
├── logs/ # Logs de runtime [não commitado]
└── static/ # Assets estáticos do frontend (pyodide, wasm...)
- Streaming de respostas em tempo real via WebSocket
- Múltiplos modelos simultâneos (comparação lado a lado)
- Modo Rápido / Raciocínio — alternável com descrição no dropdown
- Contador de tokens circular com alerta visual por faixa de uso
- Auto-carga de modelo ao enviar mensagem (modal de seleção de contexto)
- Auto-detecção de mmproj compatível (sem configuração manual)
- Histórico de conversas com pastas, favoritos, tags e arquivamento
- Edição e regeneração de mensagens individuais
- Sidebar retrátil com busca, pastas e histórico
- Campo de digitação compacto (pill) ou expandido
- Painel de artefatos (código, gráficos, HTML renderizado)
- Tela de boas-vindas com posicionamento alto e limpo
- Tema claro/escuro
- Upload de arquivos: PDF, DOCX, PPTX, imagens, vídeo, código, planilhas
- Integração Google Drive e OneDrive
- Base de conhecimento vetorial com ChromaDB
- Busca híbrida BM25 + semântica
- OCR para PDFs e imagens escaneadas (RapidOCR)
- Embeddings locais (sentence-transformers) ou via API
- Busca na web via DuckDuckGo (sem chave de API)
- Execução de código Python via Pyodide (WebAssembly, no browser)
- Geração de imagens via Stable Diffusion local
- MCP (Model Context Protocol) v1.26 para ferramentas externas
- Painel administrativo completo (usuários, modelos, permissões, analytics)
| Tecnologia | Versão |
|---|---|
| Svelte | 5.0.0 |
| SvelteKit | 2.5.27 |
| TypeScript | 5.5.4 |
| Vite | 5.4.21 |
| Tailwind CSS | 4.2.1 |
| TipTap (editor) | 3.0.7+ |
| CodeMirror | 6.x |
| Pyodide | embutido |
| Tecnologia | Versão |
|---|---|
| Python | 3.11 / 3.12 |
| FastAPI | 0.135.1 |
| Uvicorn | 0.41.0 |
| Pydantic | 2.12.5 |
| SQLAlchemy | 2.0.48 |
| ChromaDB | — |
| MCP SDK | 1.26.0 |
cd "d:\Neve AI"
npm run build
Copy-Item -Path "build\*" -Destination "backend\neveai\frontend" -Recurse -Force# Terminal 1 — Backend
cd "d:\Neve AI\backend"
..\backend\neveai\venv\Scripts\python -m uvicorn neveai.main:app --host 0.0.0.0 --port 8080 --reload
# Terminal 2 — Frontend
cd "d:\Neve AI"
npm run devFrontend de dev disponível em http://localhost:5173 (proxy para o backend em 8080).

