Back to "DataSummarizer: швидке локальне відображання даних"

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

C# Data Analysis DuckDB LLM

DataSummarizer: швидке локальне відображання даних

Monday, 22 December 2025

Більшість систем “ спілкується з вашими даними ” робить ту ж саму помилку МSK2 вони ставляться до LLM так, наче це база даних

Вони вміщують рядки у контекст: , вміщають шматочки, , або вибирають МSK2 репрезентативні зразки, \ ” і сподіваються, що модель зможе зробити висновок про структуру, ♫ , ♫ якість, ♪ , ♫ та правду з анекдотів. ♫ МSK6 ♫ Це працює достатньо добре для демонстрації, | - ♫ а потім зруйнується під масштабом. ♪ МSK8 ♫ обмеження конфіденциальності. \ МSK9 ♫ або базові питання, такі як: ♫“ ♫ це сміття в цій колоні? ?” ♫

DataSummarizer використовує протилежний підхід.

Він обчислює детерміністичний статистичний профіль вашого масиву даних, використовуючи DuckDB, і опціонально шари локальний LLM нагорі, щоб інтерпретувати ці факти, запропонувати безпечне читанняM SK1 тільки SQL , і вказівник слідувати за нею- аналіз доти МSK4 Тяжке підтримування є числовимМSK5 перевірянимMSC6 і швидкимMSL7 ЛЛМ навмисно обмежений мисленням та розповіддю

Результат::

  • швидко, приватне відображання
  • надійна автоматизація (tool JSON)
  • збудована
  • і те, що більшість систем не можуть зробити PII-бесплатні синтетичні набори даних, що зберігають статистичну форму

Все без відправлення сирих рядків до моделі.

Це будується безпосередньо на Як аналізувати великі CSV-файли з локальною LLM в C#,, що запропонувала головну ідею

LLM повинні генерувати питання, не споживати данихM SK1

Ця стаття просуває цю ідею далі.

  • don’ не fed ряди LLM
  • навіть не годувати його. “заказкиM SK2 якщо ви не повинні
  • нагодувати його статистична форма
  • дозволити DuckDB обчислювати факти
  • дозвольте LLM пояснити ці факти - і попросити про більше

Реліз GitHub

Полна документація живе в README DataSummarizer Інструмент виглядає простим. isn’t надсилають на модель.

Nota: Це не МСК0 , а МСК1 . Це ще ".", це intentional , МСК3 . МСК4 інтерфейс стабільний.


Проблема з “Chat із вашими даними”

Коли команди підключають LLM до аналізу даних, вони зазвичай роблять одну з трьох речей:

  1. ввести рядки у контекст. ( падіння над швидкою швидкістю
  2. вміщувати фрагменти і відібрати їх (залишковий ряд МSK1рівномір МSK2 досі нестабільний )
  3. пройти “реprezentативні зразки ” МSK2 часто нереprezentивні МSK3 все ще ризиковані M SK4

Навіть з 200k токенними контекстними вікнами

ЛЛМ не розроблені для обчислення сукупностей МСК0 виявлення помилок МSK1 чи надійного усвідомлення розподілу властивостей, читаючи рядки . Вони галюцинують через те, що їх запрошують виконувати роботу з базою даних.

Правильний розподіл залишається::

Причина LLM. Перерахунки з бази данихM SK1

Але ви можете піти ще один крок далі, змінюючи що причини LLM над .


Key Upgrade: статистики як інтерфейс

Замість того, щоб дати модельні дані, Профиль.

Профиль - це компактний, детермінативний підсумок набору даних

  • схема + випливають типи
  • нульова ставка МСК0 унікальність МSK1 кардинальність
  • мінус / макс МSK1 количини МSK2 skew , відхилення
  • верхні значення для безпечних категорій
  • Різкові сигнали ПII (регекс МSK1 класифікатор
  • час-зрізок серії МSK1широтаM SK2 прогалини МSK3 граніальність )
  • опціональний дрейф Deltas проти базової лінії

Цей профіль стає інтерфейс між мисленням і обчисленням.

Модель тепер

  • вирішити, що є цікавим
  • запропонувати розумні результати
  • інтерпретувати результати
  • розпізнати дрейф

…без жодного споглядання сирих рядківM 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

Це зберігає знайоме LLM → SQL → DuckDB петля, але прикріплює її до фактівM SK1

  • структурування є детерміністичним
  • ЛЛМ працює на основі доказів, а не анекдотів

Чому цей профіль корисний? ( Навіть без LLM

Профиль відповідає нудним питанням.

  • Які стовпці є сміттям? (всеM SK1null, константаМSK3 біляMSC4констанціяMSL5
  • Які стовпії є ризиками витіку (наблизькіM SK1виняткові идентификатори)?
  • Які стовпії високі-null або винятковіM SK1heavy?
  • Якими є домінуючі категорії?
  • Чи ця часова послідовність супутна чи повна прогалин?
  • Чи розподіли skewed чи zero-inflated

Це питання, які ви зазвичай знаходите. 30 хвилини в археології таблиц

Профиль дає їх за кілька секунд.


Чому профіль робить LLM дійсно корисним

Якщо ви зробити ввімкнути LLM, цей профіль - це те, що зупиняє його performaтивність

З профилем- тільки контекстом, модель можеM SK2

  • зосереджуватися на високих-ентропіях або високих≥-скау столбках
  • suggest sensible group-bys (lowM SK2cardinality categoricals )
  • уникати сміттєвих SQL (не групування на МSK1унічні столбціM SK2
  • зауваження розподільного дрейфу
  • запитувати націлена стежити за статистикою замість того, щоб попросити більше даних

Вам не потрібна більша модель

Вам потрібні кращі докази.


Програмне забезпечення: DataSummarizer

Я перетворив це на CLI, так що я міг запускати його на произвольних файлах - включно з cronом та CI - без руки МSK2 кожен раз для аналізу записів

Реліз GitHub

Швидкий старт

Windows: перетащите файл datasummarizer.exe

МSK0

datasummarizer mydata.csv

Устрій інструмента ( виход JSON )

datasummarizer tool -f mydata.csv > profile.json

Це profile.json це контракт

  • споживані агентами
  • зберігається для виявлення дрейфу
  • для генерації синтетичних даних

За замовчанням: (ВиразокM SK1

  • Ольlama кінцевий пункт: http://localhost:11434 (конфигурованийM SK1

  • Початкова модель: qwen2.5-coder:7b (переходити з --model)

  • Початковий реестр DB: .datasummarizer.vss.duckdb

  • Ситуація безпеки SQL:

    • max 20 ряди повертаються до LLM
    • заборонено: COPY, ATTACH, INSTALL, CREATE, DROP, INSERT, UPDATE, DELETE, небезпечно PRAGMA

Погані стандарти є навмисно консервативними. Ви можете розслабити їх M SK1 але вам треба вибрати в.


Детерміністичний профиль (ПрикладM SK1

datasummarizer -f patients.csv --no-llm --fast

Виходи (974 записи пацієнтів з ПIIМSK1

── Summary ────────────────────────────────────────────────
974 rows, 20 columns. 4 columns have >10% nulls. 8 warnings.

Оповіщення про ризики витіку прапорця, високийM SK1 нульові стовпці , постійні поля МSK3 і підозрювані идентификатори - усі обчислені Дак-ДБMSC5

Ніяких припущень. Ніяких галюцинаційM SK1


Набір інструментів JSON для автоматизації

datasummarizer tool -f patients.csv --store > profile.json

Приблизне wyjście:

{
  "Profile": {
    "RowCount": 974,
    "ColumnCount": 20,
    "ExecutiveSummary": "974 rows, 20 columns. 18 alerts."
  },
  "Metadata": {
    "ProfileId": "0ae8dcc4d79b",
    "SchemaHash": "44d9ad8af68c1c62"
  }
}

Це розроблено для дефіциту , зберігання, і аудиту МSK2


Автоматичний розпізнавання дрейфу (CronM SK1Friendly)

Як тільки profile існують, drift стає дешевим.

datasummarizer tool -f daily_export.csv --auto-drift --store
  • Відстань KS для числових столбів
  • Jensen–Шанонова дивергенція для категоричних
  • schema-картини з пальцями

Це - нудна інфраструктура. МСК1 - саме те, чого ви хочете. МSK2


Функція вбивця: Синтетичні клони з форми

Як тільки у вас з 'явиться статистична форма, ви можете зробити щось дійсно корисниеM SK1

Створити синтетичні набори даних, що:

  • утримувати ніяких оригінальних цінностей
  • утримувати без ПII
  • зберегти розподілу, кардинальністьM SK1 та впливи на розсіяність

Це ідеальне для демонстрацій, CIM SK1 підтримувальних репромов, та спільних зразків .

Досконалість звіту вимірює, наскільки близькі синтетичні дані є -, а не ручним МSK1 хвилянням МSK2 реалістичним ”.


Модель довіри

  • Детерміністичне: всі статистичні дані, колицілиM SK1 показники дрейфу , і попередження обчислені комп 'ютером DuckDB
  • Опціональний LLM: розповідь, обґрунтування
  • Герметичний режим: --no-llm виробляє повністю перевірямі продукти, які підходять для CI або регулюванного середовища.

ЛЛМ ніколи не винаходить факти.


Зрозумійте

Репо: https://githubMSC1comM SK2scottgal/mostlylucidwebMSL4treeMST5mainMSR6Mostly LucidM ST7DataSummarizer

Требування:

  • МSK0NET 10
  • Дак-ДБ (вбудованийM SK1
  • опціонально: Ollama

Подібне:

logo

© 2026 Scott Galloway — Unlicense — All content and source code on this site is free to use, copy, modify, and sell.