This is a viewer only at the moment see the article on how this works.
To update the preview hit Ctrl-Alt-R (or ⌘-Alt-R on Mac) or Enter to refresh. The Save icon lets you save the markdown file to disk
This is a preview from the server running through my markdig pipeline
Monday, 22 December 2025
La maggior parte “ chiacchierare con i vostri dati” i sistemi fanno lo stesso errore : trattano un LLM come se fosse una base di dati
Mettono le sequenze nel contesto, inseriscono frammenti, o prelevano M SK2 campioni rappresentativi ” e sperano che il modello possa dedurre la strutturaMST4 qualitàM ST5 e verità da aneddotiM st6 Funziona abbastanza bene per mostrare MST7 e poi collassa sotto la scalaMSt8 restrizioni sulla privacyMst9 o domande di base come MSST10 è questa colonna spazzaturaMSST11
DataSummarizer ha l'approccio opposto.
E' un sistema di calcolo. Profilo statistico deterministico il vostro set di dati usando DuckDB, persiste quel profilo, e optionally a strati. LLM locale in più per interpretare quei fatti, propone leggere in modo sicuroM SK1 solo SQL , e seguire il manuale- l'analisi di fondoMSC4 La leva pesante è numericaMST5 verificabileM ST6 e veloceM st7 Il LLM è deliberatamente limitato al ragionamento e alla narrazioneMst8
Il risultato è:
tool JSON)Tutto senza mandare linee brutte a un modello.
Questo è costruito direttamente su Come analizzare grandi file CSV con local LLM in C#, che ha introdotto l'idea centrale:
I LLM dovrebbero generare domande, non consumare dati.
Questo articolo fa avanzare l'idea.
La dokumentazione completa vive in DataSummarizer README L'outil sembra semplice. Non è’tM SK2 La maggior parte del lavoro è in quello isn’t spedito al modello.
Nota: Questo non è’t 1.0 ancoraM SK2 Quello che ’ è intenzionaleMST4 L'interfaccia è stabileMSC5 i bordi sono ancora afficciatiMSV6
Quando le squadre collegano un LLM all'analisi dei dati, di solito fanno una delle tre cose.
Anche con 200k token context windows
I LLM non sono progettati per calcolare gli aggregati, rilevare gli squali, o ragionare affidabilmente sulle proprietà di distribuzione leggendo le sequenzeM SK2 Hanno l'allucinazione perché loro ’ vengono chiamati a lavorare sulla base di datiMSC4
La divisione corretta è ancora:
Le ragioni del LLM. I calcoli della base di dati.
Ma si può fare un passo avanti cambiando. Che cosa? Le ragioni del LLM su .
Invece di dare i dati del modello, dategli un Profili.
Un profilo è un sommesso deterministico compacto di un set di dati.
Questo profilo diventa il Interfaccia tra ragionamento e calcolo.
Il modello può ora:
… senza mai vedere le linee brutteM SK1
flowchart LR
A[Data file] --> B[DuckDB profiles]
B --> C[Statistical Profile JSON]
C --> D[LLM reasoning step]
D --> E[SQL/tool calls]
E --> F[DuckDB executes locally]
F --> G[Aggregate results]
G --> H[LLM synthesis]
style B stroke:#333,stroke-width:4px
style D stroke:#333,stroke-width:4px
style F stroke:#333,stroke-width:4px
Questo preserva il familiare. LLM → SQL → DuckDB loop, ma l'ancora nei fatti:
Un profilo risponde alle domande noiose.
Queste sono le domande che normalmente si scoprono 30 minuti nell'archeologia dei fogli di calcolo
Il profilo le dà in secondi.
Se Lo stesso vale per le persone che vivono in Africa. accendere il LLM, il profilo è ciò che lo impedisce di essere performativo.
Con il profilo- solo il contesto, il modello puòM SK2
Non c'è bisogno di un modello più grande.
Avete bisogno di prove migliori.
L'ho trasformato in un CLI così che potevo farla funzionare su file arbitrari - compresi nei cron e i CI - senza usare la mano
Windows: trascinare un file su. datasummarizer.exe
CLI:
datasummarizer mydata.csv
datasummarizer tool -f mydata.csv > profile.json
Quello. profile.json è il contratto:
Il punto finale Ollama: http://localhost:11434 (configurabile)
Modello standard: qwen2.5-coder:7b (override con --model)
Registro di base DB: .datasummarizer.vss.duckdb
Contratimenti di sicurezza SQL:
COPY, ATTACH, INSTALL, CREATE, DROP, INSERT, UPDATE, DELETE, insicura PRAGMAI default sono intenzionalmente conservativi. Potete liberarli M SK1 ma dovete scegliere in.
datasummarizer -f patients.csv --no-llm --fast
Output (974 registri dei pazienti con PII):
── Summary ────────────────────────────────────────────────
974 rows, 20 columns. 4 columns have >10% nulls. 8 warnings.
Alerts flag leakage risks, highM SK1 null columns, constant fields , and suspicious identifiers MSC4 all'indice di DuckDBMSL5
No guessing. No hallucination.
datasummarizer tool -f patients.csv --store > profile.json
Output ristretto:
{
"Profile": {
"RowCount": 974,
"ColumnCount": 20,
"ExecutiveSummary": "974 rows, 20 columns. 18 alerts."
},
"Metadata": {
"ProfileId": "0ae8dcc4d79b",
"SchemaHash": "44d9ad8af68c1c62"
}
}
Questo è progettato per essere diffido, conservato, e controllato .
Una volta che esistono i profili, la deriva diventa economicaM SK1
datasummarizer tool -f daily_export.csv --auto-drift --store
È l'infrastruttura noiosa di ’ - che è esattamente quello che volete.
Una volta che avete una forma statistica, potete fare qualcosa di veramente utile:
Generare set di dati sintetici che:
Questo è ideale per i demos, CI, support repros , e campioni condivisiM SK3
Il rapporto di fideltà quantifichezza quanto siano vicini i dati sintetici - piuttosto che a manoM SK1in onda “realistico”.
--no-llm Produisce prodotti completamente controllabili, adatti a CI o a ambienti regolati.Il LLM non inventa mai i fatti.
Repo: https://githubMSC1comM SK2scottgal/mostlylucidweb /treeMST5mainMSP6Mostly LucidMSM7DataSummarizer
Requisite:
Related:
© 2026 Scott Galloway — Unlicense — All content and source code on this site is free to use, copy, modify, and sell.