Note preliminari
Contenuto fornito “as-is”. Prima di applicarlo a documenti reali di clienti:
- Provate su documenti pubblici o fittizi.
- Backup della cartella documenti prima di ogni sessione: Fabric non modifica i PDF, ma uno script che li muove o li rinomina sì.
- Non trasmettete documenti contenenti dati personali o coperti da segreto professionale a endpoint cloud. Per uso reale, Fabric va configurato contro un modello locale (Ollama).
- Ogni pattern è un prompt: leggetelo prima di usarlo. Il repo upstream include pattern scritti da terzi che possono non riflettere la vostra metodologia.
- Per output che entreranno in un atto professionale (parere, relazione, offerta) resta necessaria la revisione umana completa, come per qualsiasi bozza prodotta da un collaboratore.
Cosa è Fabric
Fabric (github.com/danielmiessler/fabric) è un framework open source di Daniel Miessler per applicare “pattern” — prompt riusabili e versionati — al testo di input. Il repository pubblico risale al 3 gennaio 2024; nell’agosto 2024 il progetto viene riscritto da Python a Go e distribuito come binario singolo. Licenza MIT.
La filosofia di Fabric è diversa da quella di un agente generale: non negozia, non pianifica, non esegue codice. È una collezione di trasformazioni input → output con un catalogo di pattern (extract_wisdom, summarize, extract_insights, analyze_claims, ecc.) in ~/.config/fabric/patterns/. L’utente ne aggiunge di proprie, le tiene in git, le condivide nel team.
Per uno studio professionale, questa struttura corrisponde alla pratica consolidata delle check-list e degli schemi di lavoro: Fabric le formalizza in prompt riapplicabili.
Caso d’uso: estrazione scheda sintetica da bandi pubblici
Scenario: uno studio di consulenza segue partecipazioni a bandi. Ogni settimana arrivano 10–15 PDF (bandi regionali, europei, di fondazioni). Serve per ciascuno una scheda: titolo, ente, scadenza, beneficiari ammessi, importo massimo, requisiti formali, criteri di valutazione.
1. Installazione
# Binario ufficiale (Go):
go install github.com/danielmiessler/fabric@latest
# oppure scaricare la release binaria dal repo
fabric --setup
# Inserire o confermare i provider. Per uso locale, puntare a Ollama:
# OpenAI API endpoint: http://127.0.0.1:11434/v1
# API key: ollama
Dopo il setup, fabric --listmodels mostra i modelli disponibili. fabric --listpatterns elenca i pattern scaricati.
2. Pattern custom per la scheda bando
I pattern vivono in ~/.config/fabric/patterns/<nome>/system.md. Ne creiamo uno nuovo:
mkdir -p ~/.config/fabric/patterns/scheda_bando
cat > ~/.config/fabric/patterns/scheda_bando/system.md <<'EOF'
# IDENTITY
Sei un consulente che prepara schede sintetiche su bandi pubblici
per un'impresa italiana di dimensioni medie.
# GOAL
Estrai dal testo del bando fornito i campi elencati sotto. Se un campo
non è presente nel testo, scrivi "non indicato". Non inventare valori.
Non inserire informazioni che non siano letteralmente desumibili dal testo.
# STEPS
1. Leggi il testo del bando.
2. Compila i campi della scheda.
3. Se più interpretazioni sono possibili, scegli la più conservativa
e segnalala in nota.
# OUTPUT FORMAT
- Titolo:
- Ente promotore:
- Scadenza (data):
- Beneficiari ammessi:
- Importo massimo:
- Cofinanziamento richiesto:
- Requisiti formali:
- Criteri di valutazione (sintesi):
- Riferimenti normativi:
- Note dell'estrazione:
EOF
3. Estrazione del testo dal PDF
Fabric non gestisce PDF direttamente: riceve testo. Per la conversione:
# pdftotext fa parte di poppler-utils ed è presente su gran parte delle distro Linux:
pdftotext -layout bando-regione-2024.pdf bando-regione-2024.txt
# Per PDF scansionati (solo immagini) serve OCR:
ocrmypdf --skip-text bando-scan.pdf bando-scan-ocr.pdf
pdftotext -layout bando-scan-ocr.pdf bando-scan.txt
4. Applicazione del pattern
cat bando-regione-2024.txt \
| fabric -sp scheda_bando \
> schede/bando-regione-2024.md
-sp seleziona il pattern in modalità stream. L’output è markdown: archiviabile in git, apribile in qualunque editor, pubblicabile come allegato interno.
5. Applicazione a lotti
mkdir -p schede
for f in bandi-in/*.txt; do
base=$(basename "$f" .txt)
cat "$f" | fabric -sp scheda_bando > "schede/${base}.md"
done
Pochi secondi per bando (con modello locale 7B–14B), un file schedabile per ciascun PDF. L’output resta una bozza: va controllato da un operatore prima di diventare documento di lavoro.
Limiti e avvertenze
- Allucinazioni su valori numerici: gli LLM sbagliano date, importi, percentuali con più facilità di quanto sbaglino la sintesi testuale. Per campi critici come scadenza e importo massimo, richiedete sempre una verifica umana sul documento originale.
- OCR imperfetto: PDF con scansioni scadenti producono testo sporco; il modello “corregge” creativamente e rischia di reinventare numeri. Non accettate lo schema senza riaprire il PDF.
- Pattern pubblici ≠ pattern giusti: il catalogo Fabric upstream è ricco ma eterogeneo. Prima di adottare un pattern per lavoro professionale, leggetelo come leggereste una lettera modello: deve essere coerente con la vostra metodologia.
- Gestione dei pattern come codice: tenete i pattern dello studio in un repo git interno con review peer, tag e
CHANGELOG.md. Un pattern modificato senza tracciamento è un errore che si propaga su decine di pratiche.
Link: github.com/danielmiessler/fabric
