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

معظم “ المحادثة مع بياناتك ” الأنظمة تقوم بنفس الخطأ | : | إنهم يتعاملون مع LLM كما لو أنها قاعدة بيانات

إنهم يضعون الأطر في سياق , يدمجون قطع , أو يختارون |“ | العينات الممثلة | ” | ويأملون أن يكون النموذج قادرا على استنتاج البنية | | الدقة | وحقيقة من القصص | МSK6 | إنه يعمل بشكل جيد بما فيه الكفاية لعرض | مSK7 | ومن ثم يسقط تحت المقياس | المSK8 | القيود المتعلقة بالخصوصية ٬ مSK9 | أو أسئلة أساسية مثل |مSK10 | هل هذه الجملة سامة ٬ المSK11

DataSummarizer يأخذ المقاربة العكسية.

ويقوم بحساب Profil الإحصائي المعرفي من مجموع البيانات الخاص بك باستخدام DuckDB , يستمر هذا الملف , و إختياريا طبقات الـ LLM المحلية على رأس لترجمة تلك الحقائق, تقترح القراءة الآمنة- فقط SQL , وتوجيه المتابعةMSC3 تحليل ما بعدM SK4 الرفع الثقيل هو رقميMST5 قابل للتحقق منهM ST6 وسريعM st7 LLM مقيد عمداً بالتفكير والتفسيرMst8

والنتيجة هي:

  • Fast, الرسم البياني الخاص
  • آلية قابلة للثقة (tool JSON)
  • تم بناؤه - في كشف التدفق
  • و شيء لا يمكن للكثير من الأنظمة فعله على الإطلاق PII-مجموعات بيانات صناعية مجانية تحافظ على الشكل الإحصائي

كل ذلك دون إرسال الأطر الخام إلى نموذج.

هذا يبني مباشرة على كيف يمكن تحليل الملفات الكبيرة CSV مع LLMs المحلية في C#, الذي قدم الفكرة الأساسية

يجب على LLMs أن تنتج الأسئلة, لا تستهلك البيانات.

هذه المقالة تدفع هذه الفكرة إلى الأمام

  • don’t لا تغذى صفات LLM
  • لا تغذيه حتى “أمثلة ” إلا إذا كان عليك
  • تغذيه الشكل الإحصائي
  • دعو DuckDB يحسب الحقائق
  • دع LLM يفسر هذه الحقائق - ويطلب المزيد

إطلاق GitHub

الوثائق الكاملة تعيش في README DataSummarizer الأداة تبدو بسيطة. إنها ليست’tM SK2 معظم العمل في ما isn’t أرسلت إلى النموذج.

ملاحظة: هذا ليس "مسك0" "مسک1" "ليس كذلك" "مازلت" . "أن" "المسك3" "هو مقصود" " المسك4" "الواجهة مستقرة" "لمسك5" "الأحواف مازالت حادة"


المشكلة مع “الحديث مع بياناتك”

عندما يقوم الفرق بتركيب LLM على تحليل البيانات عادة ما يفعلون واحد من ثلاثة أشياء

  1. تضع الأ行ات في السياق ( يسقط بسرعة , تسرب البيانات)
  2. تضع الجسيمات وتعيدها (الجدول لا يزال -مستوى , لا يزال نشطاً S)
  3. تمر “ العينات الممثلةM SK1 ( غالبًا غير ممثلة

حتى مع 200k النوافذ السياقية لل टोकن, هذا هو التجريد الخاطئM SK2

لا تم تصميم أجهزة الـ LLM لحساب مجموعات ــ , الكشف عن الاختلافات ــ, أو إستنتاج بشكل موثوق بخصائص التوزيع عن طريق قراءة الصفات ـــ .

الانقسام الصحيح لا يزال :

أسباب LLM. حسابات البيانات.

لكن بإمكانك أن تذهب خطوة أبعد عن ذلك بتغيير ماذا أسباب LLM فوق .


ال upgrade key: الإحصائيات كواجهة

بدلاً من إعطاء بيانات النموذج , أعطيه Profil.

الرسم البياني هو خلاصة معقدة , منطقية لمجموعة البيانات ’ شكله :

  • schema + الأنواع المنطقية
  • معدل أصفر, فريدة من نوعها, أساسية
  • Min / max / quantilesM SK2 skew, outliers
  • القيم العليا للتصنيفات الآمنة
  • إشارات الخطر PII (regex + classifier)
  • الوقت-تركيب السلسلة (العرضM SK2 الفجوات , الكثافةMSC4
  • دلتا drift إختيارية مقابل خط الأساس

هذا الملف يصبح الواجهة بين التفكير والحساب.

والنموذج يمكن الآن

  • يقرر ما هو مثير للاهتمام
  • اقترحوا استجابة منطقية ل-
  • ترجمة النتائج
  • إكتشاف الهبوط

…دون رؤية الصفات الخام

العمارة

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 حلقة , لكنها تربطها في الحقائق :

  • رسم الخرائط هو محدد
  • تعمل الـ LLM على الأدلة ــ , ــ وليست أnecdotes

لماذا Profil مفيد (حتى بدون LLM)

ويجيب النموذج على الأسئلة المملة - ولكن - والسؤال الطارئة فوراً

  • ما هي السطرات الفضائية (كل-nullM SK2 ثابتةMSC3 قريبة -مستقيمة)?
  • ما هي المستجدات التي تمثل مخاطر التسرب ( قريبة-محددات منفردة )?
  • أي الأعمدة مرتفعة-null أو خارجية-heavy
  • ما هي التصنيفات المهيمنة?
  • هل هذه السلسلة الزمنية مترابطة أو مليئة بالفجوات?
  • هل التوزيعات متباعدة أو صفر؟

هذه هي الأسئلة التي تكتشفها عادة 30 دقائق في علم الآثار في الجداول

يعطيك الملف في ثواني


لماذا Profil يجعل LLM في الواقع مفيدا

إذا كنت أفعل إحداث LLM, هو ما يوقفها من الفعالية

مع الرسم البياني - منطقي فقط , يمكن للنموذج

  • التركيز على العمودات الـ high-entropy أو high -skew
  • تقترح مجموعة معقولة-bys M SK1low-cardinality categoricalsMSC3
  • تجنب الخفاش SQL ( لا يوجد تجميع على 95%- ستجدول منفردة)
  • تلاحظ تدفق التوزيع
  • تطلب موجهة تتبع - الإحصائيات بدلاً من طلب المزيد من البيانات

لا تحتاج إلى نموذج أكبر

تحتاج إلى أدلة أفضل


الأداة : محرك البيانات

حولت هذا إلى CLI حتى أتمكن من تشغيله على الملفات الإختياريّة - بما في ذلك في كرون والـCI - دون أن أقوم بتحريك يديّة

إطلاق GitHub

البداية السريعة

وينډوز: سحب ملف على datasummarizer.exe

CLI:

datasummarizer mydata.csv

طريقة الأداة (JSON выход)

datasummarizer tool -f mydata.csv > profile.json

ذلك profile.json هو العقد:

  • تستهلكها العوامل
  • مخزنة للكشف عن الهبوط
  • تستخدم لصنع بيانات صناعية

លំនាំات التشغيل (تقليد)

  • نقطة النهاية Ollama: http://localhost:11434 (configurable)

  • نموذج تلقائي: qwen2.5-coder:7b (تخطى مع --model)

  • السجل الافتراضي DB: .datasummarizer.vss.duckdb

  • قيود أمن SQL:

    • أعاد الـ 20 الأطر إلى LLM
    • ممنوعة: COPY, ATTACH, INSTALL, CREATE, DROP, INSERT, UPDATE, DELETE, غير آمن PRAGMA

تلقائيات متحفظة بشكل مقصود. يمكنك تخفيضها - لكن عليك أن تختار في


Profiling deterministic (Example)

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

ناتج (974 سجلات المرضى مع PII):

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

التحذيرات خطرات تسرب علم الأعلام, مرتفعة-جدول فارغة , مجالات ثابتة, ومسميات مشتبهة M SK4 جميعها حسبت بواسطة DuckDBMSC5

لا تخمين . لا تشوه .


أداة JSON للاتومات

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

ناتج مصغر:

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

هذا مصمم ليتم تخزينه , خزنه |, وفحصه ٬.


إكتشاف التدفقات الآلية (CronM SK1Friendly)

بمجرد وجود الخرائط , يصبح التنقل رخيصاً :

datasummarizer tool -f daily_export.csv --auto-drift --store
  • المسافة KS للجدول الرقمية
  • جينسون–انحنان الإختلاف للتصنيفات
  • schema-خطوط أساسية ملمسة

إنها البنية التحتية المملة - التي هي بالضبط ما تريده


ميزة قاتلة: محاصيل صناعية من الشكل

بمجرد أن يكون لديك شكل إحصائي, يمكنك أن تفعل شيئا مفيدا حقاً

صنع مجموعات بيانات صناعية التي

  • يحوي لا قيمة أصلية
  • يحوي لا PII
  • تحافظ التوزيع , الكميات , و تأثيرات الشفافية

هذا مثالي بالنسبة للنماذج , CI , دعم التجارب , و العينات المتبادلة .

تقرير الصدق يقدر مدى قرب البيانات الإصطناعية - بدلاً من اليد - موجهة | “ | واقعي |”.


نموذج الثقة

  • دييميائي: جميع الإحصائيات, الكميةM SK1 نقاط الهبوط, و التحذيرات تُحسب بواسطة DuckDB .
  • إختيار LLM: التفسير, المنطق , واقتراحات SQL فقط.
  • المُدار الهرمائي: --no-llm ينتج مخرجات قابلة للتحقق منها بالكامل، مناسبة لبيئة CI أو المنظمة.

لا يخترع الـ LLM الحقائق أبداً


احصل عليه

Repo: https://githubMSC1com/scottgalM SK3MostlylucidwebMスク4treeMST5mainMstlylucideMSSK7DataSummarizer

المتطلبات:

  • .NET 10
  • DuckDB (embedded)
  • إختياري: أولاما

Related:

logo

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