gmaterni/ragindex: Implementazioe di una architettura RAG utilizzando l'algoritmo di indicizzazione BM25 - gmaterni/rag

github.com · 2026-10-03 · by Long Nguyen ·github
Implementazioe di una architettura RAG utilizzando l'algoritmo di indicizzazione BM25 - gmaterni/ragindex

gmaterni/ragindex

Implementazioe di una architettura RAG utilizzando l'algoritmo di indicizzazione BM25 - gmaterni/ragindex

0 stars · 0 forks

README

RagIndex: Generazione Aumentata da Recupero (RAG) 100% Client-Side Versione: 0.2.3 RagIndex è un'applicazione web che implementa un'architettura RAG (Retrieval-Augmented Generation) completa, operando interamente nel browser dell'utente. Nessun dato lascia mai il client, garantendo massima privacy e autonomia.

🚀 Scopri di più: per una presentazione delle funzionalità e dell'implementazione tecnica, consulta la pagina static/ragindex.html. ⬇️ Installazione locale: vedi static/installazione.html — git clone https://github.com/uaorg/ragindex.git

Setup Rapido Essendo un'applicazione puramente statica, non richiede build system complessi (Webpack, Vite, ecc.) né backend.

Requisiti: Un qualsiasi web server statico (es: python3 -m http.server, npx http-server ., o l'estensione "Live Server" di VS Code), servito dalla root del progetto. Scarica il codice con git clone https://github.com/uaorg/ragindex.git o Download ZIP dalla pagina GitHub (vedi installazione). Avvio: Apri il browser all'indirizzo locale della root — index.html redirige automaticamente a static/ragindex.html (presentazione, con link all'app in static/index.html). Configurazione API:

Apri il menu laterale. Seleziona "API Keys Default" per caricare le chiavi di prova predefinite dal file locale. Oppure seleziona "Gestisci API Key" per inserire la tua chiave personale (Gemini, Mistral, Groq, OpenRouter, HuggingFace).

🛡️ Privacy: Le chiavi sono salvate esclusivamente nell'IndexedDB del tuo browser. La comunicazione AI avviene direttamente dal tuo computer al provider, senza server intermedi.

Caratteristiche Principali

Privacy Assoluta: Tutta l'elaborazione dei documenti, dall'indicizzazione alla costruzione del contesto, avviene localmente. I documenti non lasciano mai il computer dell'utente. Strategia Parent-Child: Utilizza una segmentazione gerarchica per la massima precisione:

Child Chunks: Singole frasi indicizzate per una ricerca ultra-precisa. Parent Chunks: Paragrafi completi inviati all'AI per mantenere il contesto.

Zero Dipendenze da Backend: L'applicazione è un puro front-end che sfrutta le API degli LLM direttamente dal client. Ricerca Lessicale BM25: Sfrutta Lunr.js per un'indicizzazione veloce e affidabile direttamente nel browser. Giudizio Semantico (rerank): Dopo la ricerca BM25, il modello valuta la pertinenza reale (0-5) dei candidati e riordina il contesto: sinonimi e parafrasi vengono promossi, i falsi positivi lessicali declassati. Nessun embedding, nessuna modifica all'indice.

Il Flusso di Lavoro a 3 Azioni L'applicazione è progettata per essere utilizzata seguendo tre fasi sequenziali, identificate dai pulsanti numerati:

🔴 (1) Crea Knowledge Base: Carica i tuoi documenti (PDF, TXT, DOCX) e clicca il pulsante (1). Il sistema creerà l'indice di ricerca locale. 🟠 (2) Inizia Conversazione: Scrivi la tua domanda e clicca il pulsante (2). Il sistema estrarrà i frammenti pertinenti e interrogherà l'AI. 🟢 (3) Continua Conversazione: Prosegui il dialogo cliccando il pulsante (3). L'AI risponderà tenendo conto di tutta la cronologia.

Gestione Modelli LLM

Reset LLM: ripristina la selezione ai modelli di default dai file locali. Aggiorna LLM: scopre i modelli dai provider con le tue chiavi, li testa (voto ≥ 6) e apre la selezione. Seleziona LLM: mostra solo i modelli scaricati e testati; Salva sostituisce, Aggiungi unisce. Test LLM: prova il prompt sui modelli selezionati del provider scelto, con riepilogo finale. STOP: durante elaborazioni e ricerche, clicca l'icona di attesa (STOP) per interrompere l'operazione in corso.

Architettura del Codice

UI Controller: static/js/app_ui.js (Gestione DOM ed eventi). RAG Engine: static/js/rag_engine.js (Orchestratore del flusso RAG). Worker: static/js/rag_worker.js (Elaborazione intensiva in background). LLM Clients: static/js/llmclient/ (5 provider: Gemini, Mistral, Groq, OpenRouter, HuggingFace). Database Locale: static/js/services/idb_mgr.js (Persistenza via Dexie.js). Database Locale: static/js/services/idb_mgr.js (Persistenza via Dexie.js). Test:

static/test_providers.html — eseguito nel browser via menu ☰ → "Test Provider" (oppure aprendo direttamente la pagina). test/test_providers.js — Node.js, genera report HTML in test/providers_report.html. Entrambi testano tutti i provider e modelli configurati con chiavi da static/data/api_x.json.

RagIndex è un progetto focalizzato sulla privacy e sull'efficienza dell'AI lato client.

source

github.com · 89 links

Comments (0)

No comments yet