The Pitch
Project Exocortex è un sistema di Intelligenza Artificiale Sovrana progettato per trasformare il mio intero archivio digitale personale (Email, PDF, Documenti Office) in un "secondo cervello". Utilizzando un approccio RAG (Retrieval-Augmented Generation) locale, il sistema permette di dialogare con decenni di documenti senza che un singolo byte lasci la mia rete privata.
Abstract del Progetto
Viviamo nell'era dell'accumulo digitale. Il mio archivio personale conta 1.5 TB di dati statici: file .pst di Outlook, presentazioni PowerPoint, PDF e documenti Word. Project Exocortex non è solo un motore di ricerca, ma una pipeline di arricchimento semantico.
Sviluppato interamente in Node.js/TypeScript per un'integrazione fluida con il mio workflow in VS Code, il progetto adotta un'architettura ibrida orientata alla validazione progressiva su hardware legacy (Linux Mint). L'obiettivo è eliminare le allucinazioni delle AI generative fornendo loro, come contesto, solo i miei dati reali e verificati.
Perché Project Exocortex?
Ecco cosa rende questo progetto tecnicamente valido e strategicamente differente dalle soluzioni cloud commerciali:
1. Privacy Assoluta (Zero Exfiltration)
A differenza dei chatbot commerciali, Exocortex opera su una rigorosa segregazione fisica. La vettorializzazione e l'inferenza avvengono interamente sulla LAN. Utilizzo modelli open-source (Llama 3, Mistral) serviti localmente tramite Ollama. I miei dati finanziari, legali e personali non lasciano mai l'hardware locale.
2. Validazione su Hardware Legacy (Fase 0)
L'architettura attuale sfida la necessità di hardware costoso. Il sistema è validato su un cluster distribuito Linux Mint LMDE 7 composto da hardware di recupero (tra cui un Dell Latitude 7440 i7 e un Dell Latitude 7400). Grazie a tecniche come la quantizzazione estrema e framework come bitnet.cpp, ottengo reattività nell'inferenza senza ricorrere alla forza bruta.
3. Pipeline "ETL Semantico"
Non si tratta solo di storage, ma di trasformazione del dato. Ho implementato una pipeline ETL (Extract, Transform, Load) semantica "una tantum" che agisce in profondità:
- Deduplicazione Avanzata: Oltre all'hash SHA-256, utilizzo la similarità del coseno per eliminare duplicati semantici e il Perceptual Hashing (pHash) per le immagini.
- Arricchimento Intelligente: Durante l'ingestione, un LLM (Llama 3.2) tagga automaticamente ogni documento estraendo entità, argomenti ("Pirelli", "Contratti") e contesti, creando un indice vettoriale pulito e preciso.
Tech Stack Highlights
Node.js & TypeScript
Ollama (GGUF Models)
LangChain.js (Agentic RAG)
LanceDB / ChromaDB
transformers.js (Local Embeddings)
2.5GbE Mesh Network
Diagrammi Fase 0
Architettura - Fase 0
flowchart TD
A["Workstation di Sviluppo
Surface / Windows
- VS Code Remote SSH
- GitHub Copilot"]
B["Web / Orchestrator Node
LMDE 7 - Dell Latitude 7400
- Node.js / TypeScript
- LangChain.js (Agentic RAG)
- API REST / Nginx / PM2
- Router Agent
- Recursive Retrieval"]
C["AI Server
LMDE 7 - Dell Latitude 7440 i7
- Ollama
- Llama 3.2 1B (tagging)
- bitnet.cpp (1.58-bit)
- transformers.js (embedding)
- Dedup semantica"]
D["Storage / Knowledge
NAS / SSD USB
- 1.5 TB dati grezzi
- Documenti, PDF, PST
- LanceDB / ChromaDB su SSD NVMe
- Backup KB"]
E["Pipeline Logica RAG
- Ingestione + hashing
- Parsing (Office, PDF, PST)
- Chunking
- Embedding locali
- Indicizzazione vettoriale
- Deduplicazione (SHA + coseno)
- pHash immagini
- Tagging LLM (Llama 1B)
- Agentic RAG"]
A -->|SSH| B
B -->|ETL / RAG| C
B -->|I/O Dati| D
Flow - Fase 0
flowchart TD
A["SORGENTI DI DATI
- Documenti Office / PDF
- Archivi PST/OST
- Immagini
- File legacy"]
B["ETL ENGINE (Node.js - LMDE 7)
- Hashing (SHA-256)
- Parsing (Office, PDF, PST)
- Normalizzazione contenuti
- Chunking"]
C["EMBEDDING ENGINE (transformers.js)
- Generazione embedding locali
- Batch processing"]
D["VECTOR DB (LanceDB / ChromaDB)
- Indicizzazione vettoriale
- Storage su SSD NVMe
- Filtri ibridi (metadati + vettori)"]
E["ROUTER AGENT (LangChain.js - LMDE 7)
- Decide il tipo di retrieval
- Attiva recursive retrieval se necessario
- Prepara il contesto per LLM"]
F["AI SERVER (Dell Latitude 7440 i7)
- Ollama
- Llama 3.2 1B (tagging, classificazione, dedup semantica)
- bitnet.cpp (inferenza 1.58-bit)
Output:
- Tagging automatico
- Classificazione topic
- Validazione duplicati
- Risposte RAG contestualizzate"]
G["ORCHESTRATOR (Node.js - LMDE 7)
- Post-processing
- Formattazione risposta
- Logging / audit"]
H["WORKSTATION DEV
- VS Code Remote SSH
- Interfaccia Web"]
A -->|1. Lettura / Scansione| B
B -->|2. Testo pulito / chunk| C
C -->|3. Vettori + metadati| D
D -->|4. Similarity Search| E
E -->|5. Prompt + contesto| F
F -->|6. Risposta LLM| G
G -->|7. Risposta finale| H