🚀 Caveman v1.0.3
Caveman è una libreria .NET ultraleggera e completamente autosufficiente progettata per ottimizzare il testo per i Large Language Models (LLM), riducendo drasticamente il consumo di token e i costi associati, preservando l'integrità semantica del messaggio.
✨ Novità e Funzionalità Chiave (v1.0.3) - Giugno 2026
- Fino al 70% di riduzione dei token: Riduci i costi delle API dei canali LLM e accelera l'inferenza locale riducendo la lunghezza dei prompt.
- Motore Completamente Self-Contained: Nessun modello NLP esterno e nessuna dipendenza da Catalyst a runtime. L'unica dipendenza pacchetto (puramente opzionale e destinata ai plugin) è
Microsoft.SemanticKernel. - Formato Ultra-Ridotto (~13 MB): I dati linguistici sono compilati in artefatti Brotli (
*.yaml.br) con un indice di rilevamento compatto (_index.br). L'assembly pesa ora solo ~13 MB rispetto ai vecchi ~68 MB di dati grezzi. - Parser Custom ad Alte Prestazioni: La dipendenza da YamlDotNet a runtime è stata completamente rimossa e sostituita da un parser proprietario di dati di parole in streaming.
- Oltre 50 Lingue con Vocabolario Completo: Lemmi, forme verbali e un dizionario di nomi propri (gazetteer) derivati direttamente dal progetto Universal Dependencies.
- Preservazione dei Nomi Propri: I nomi propri (es. Roma, Milano, München, Termini) vengono riconosciuti e mantenuti invariati (verbatim) anziché essere erroneamente compressi o trasformati in parole comuni. Questa funzione è attiva a inizio frase, a metà testo e persino in tedesco.
- Rilevamento Lingua Standalone: Introduce
CavemanLanguageDetector, utilizzabile in modalità standalone senza dover comprimere il testo, capace di analizzare l'input e restituire codici ISO 639-3 anche per testi brevissimi (una o due parole). - Vero Supporto Asincrono: I metodi
CompressAsynceCompressBatchAsyncnon utilizzano più meccanismi fake-async; la cancellazione e i task falliti vengono ora propagati correttamente a livello di sistema.
🛠️ Installazione
A causa dell'architettura modulare, la libreria principale di compressione NLP va installata separatamente rispetto ad altri moduli (come il modulo Privacy Guard):
Bash
📄 Licenza & Trasparenza: Rilasciato sotto Caveman License (MIT + clausola di attribuzione obbligatoria). Qualsiasi utilizzo commerciale o privato deve esplicitamente menzionare l'uso di Caveman sviluppato da Passaro Francesco Paolo — Digitalsolutions.it.
⚡ Quick Start
C#
🌿 Sostenibilità: Perché è importante
Ogni token generato o processato da un LLM ha un costo ambientale. Caveman introduce un estimatore integrato basato su medie di settore:
- Consumo energetico: Stimato in 5 mWh per token.
- Impronta di carbonio: Stimata in 0,4 mg di CO₂ per mWh.
Comprimendo un prompt da 1000 a 400 token, si risparmiano circa 3 mWh di energia. Su scala di milioni di richieste, Caveman contribuisce in modo tangibile a costruire un ecosistema AI sostenibile.
📊 Livelli di compressione NLP (Aggiornato v1.0.3)
| Livello | Logica applicata | Gestione Nomi Propri & Verbi | Risparmio Medio |
| Light | Rimozione stopword tradizionali. | Preservati i token capitalizzati noti. | ~25–30% |
| Semantic | Selezione del contenuto chiave (Sostantivi, Verbi, Aggettivi, Avverbi). | Mantiene i nomi propri verbatim. | ~50% |
| Aggressive | Lemmatizzazione totale e compressione guidata dai verbi. | Ogni forma coniugata collassa al verbo base; i nomi restano intatti. | ~70% |
🔍 Dettaglio Tecnico dell'Infrastruttura (Universal Dependencies)
I vecchi tag di mappatura Catalyst sono stati sostituiti dal dizionario nativo di Universal Dependencies. Durante la compressione:
- Il sistema legge un indice ultracompatto (
_index.br) per capire la lingua. - Decomprime al volo e memorizza in cache solo i dati relativi alla lingua rilevata.
- Applica la compressione guidata dai verbi e scherma i lemmi rumorosi o i falsi positivi sui nomi propri.
💡 Esempio di Trasformazione
| Stato | Testo del prompt | Token / Caratteri |
| Originale | "I would like to know if it is possible to have a margherita pizza immediately." | 100% (78 ch) |
| Light | "like know possible have margherita pizza immediately" | ~70% (54 ch) |
| Semantic | "know possible have margherita pizza immediately" | ~55% (48 ch) |
| Aggressive | "know possible have margherita pizza" (I nomi propri come Margherita o Roma non vengono alterati) | ~40% (38 ch) |
💡 Integrazione Nativa: Caveman.Wiki
Scopo
Generare automaticamente documentazione in Markdown ottimizzata per l'AI per qualsiasi progetto software, sfruttando il nuovo motore ultra-ridotto di Caveman v1.0.3 per comprimere semanticamente i contenuti e massimizzare la finestra di contesto dei prompt LLM.
Come funziona
- Analisi del progetto: Rileva automaticamente la tipologia di progetto (.csproj, requirements.txt, package.json).
- Scansione intelligente: Esclude file binari, cartelle di build e cartelle di dipendenze esterne.
- Compressione del Codice e dei Testi: Per i file superiori a 2KB, invoca il nuovo
CavemanCompressionService(livello Semantic o Aggressive) sfruttando il caricamento rapido in cache a singolo linguaggio. - Output Pulito: Restituisce un file Markdown completo di metadati YAML, vista ad albero ed evidenziazione della sintassi.
Esempio d'uso con il nuovo motore
C#
🤝 Contribuire
Le pull request sono benvenute! Per modifiche importanti all'architettura di compressione basata su Universal Dependencies o sul parser in streaming, si prega di aprire prima un issue di discussione.