loading experience

IA

Caveman

Ultimo aggiornamento 1.0.3 : Motore Self-Contained & Ultraleggero: Il runtime è ora completamente autonomo, eliminando la necessità di pesanti modelli NLP esterni e rimuovendo la vecchia dipendenza da Catalyst. L'ingombro totale è stato ridotto drasticamente, passando da ~68 MB di dati grezzi a un assembly di soli ~13 MB compilato in artefatti Brotli.

Caveman

🚀 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

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. Oltre 50 Lingue con Vocabolario Completo: Lemmi, forme verbali e un dizionario di nomi propri (gazetteer) derivati direttamente dal progetto Universal Dependencies.
  6. 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.
  7. 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).
  8. Vero Supporto Asincrono: I metodi CompressAsync e CompressBatchAsync non 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


dotnet add package Caveman --version 1.0.3
📄 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#


using Caveman;
using System;
using System.Threading;
using System.Threading.Tasks;

var compressor = new CavemanCompressionService();
string input = "Vorrei sapere se è possibile ricevere informazioni su ristoranti economici a Roma.";

// 🔍 NUOVO v1.0.3: Rilevamento rapido della lingua standalone
string languageCode = CavemanCompressionService.DetectLanguage(input); // Output: "ita"

// Comprimi il testo (ora con vero supporto Async e CancellationToken)
var result = await compressor.CompressAsync(input, CavemanCompressionLevel.Semantic, CancellationToken.None);

Console.WriteLine($"Compressed: {result.CompressedText}");
Console.WriteLine($"Efficiency: {result.EfficiencyPercentage:F1}%");
Console.WriteLine($"🌿 Energia risparmiata: {result.EstimatedEnergySavedMWh:F3} mWh");


🌿 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:

  1. Consumo energetico: Stimato in 5 mWh per token.
  2. 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)


LivelloLogica applicataGestione Nomi Propri & VerbiRisparmio Medio
LightRimozione stopword tradizionali.Preservati i token capitalizzati noti.~25–30%
SemanticSelezione del contenuto chiave (Sostantivi, Verbi, Aggettivi, Avverbi).Mantiene i nomi propri verbatim.~50%
AggressiveLemmatizzazione 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:

  1. Il sistema legge un indice ultracompatto (_index.br) per capire la lingua.
  2. Decomprime al volo e memorizza in cache solo i dati relativi alla lingua rilevata.
  3. Applica la compressione guidata dai verbi e scherma i lemmi rumorosi o i falsi positivi sui nomi propri.


💡 Esempio di Trasformazione

StatoTesto del promptToken / 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

  1. Analisi del progetto: Rileva automaticamente la tipologia di progetto (.csproj, requirements.txt, package.json).
  2. Scansione intelligente: Esclude file binari, cartelle di build e cartelle di dipendenze esterne.
  3. 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.
  4. 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#


// Inizializzazione della Wiki (Sfrutta l'assembly ridotto a ~13MB)
var wiki = new CavemanWiki();
string context = await wiki.GenerateAsync(@"C:\Users\Dev\MyAwesomeProject");
await File.WriteAllTextAsync("AI_CONTEXT.md", context);

// Integrazione diretta nel prompt dell'LLM
var prompt = $@"You are an expert assistant for the project described below.
<project_context>
{context}
</project_context>

Answer questions based SOLELY on this context.";

🤝 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.

Tecnologie
.net ai
Risorse