csv-insights / PLAN.md
BonusLockSMith's picture
Upload folder using huggingface_hub
e2f9a1d verified
|
Raw History Blame Contribute Delete
2.11 kB

30-in-15 Β· #12 β€” CSV β†’ Insights Analyst (plan)

Rung focus: code execution + a data agent (vs. #11's long-running service). One-liner: Upload a CSV β†’ get auto-generated charts + plain-English findings you can trust.

Core principle (honest by construction)

The LLM never invents numbers. A deterministic profiling pass (pandas) computes every stat and chart; the model only narrates the already-computed summary. Numbers in the writeup are grounded in the computed profile, not hallucinated. (Mirrors the #10 RAG "honest, cited" discipline.)

v1 scope (lean)

  1. Upload a CSV (size-capped, typed sniff).
  2. Profile (pandas): shape, dtypes, missing %, numeric describe, top categoricals, correlations, simple outlier + trend flags.
  3. Auto-charts (matplotlib, GritAI design-system palette): distributions, top categories, correlation heatmap, and a time trend if a date column is detected.
  4. Narrative: LLM turns the computed profile into a plain-English "what's interesting here" β€” grounded in the numbers, flags data-quality issues, suggests next questions.
  5. Ask-a-question (stretch): natural-language question β†’ constrained pandas op executed on the dataframe β†’ answer + the exact numbers (the "data agent / code execution" angle).

Stack

  • Flask + the canonical GritAI design system (docs/gritai_design_system.css), same as the Flask rungs.
  • pandas + matplotlib (stdlib-adjacent, no heavy deps).
  • Backend LLM: local Ollama (free) by default; Claude optional β€” same env-var pattern as the bot.
  • Deploy: HF docker Space per [[hf-spaces-deploy-playbook]] β†’ insights.gritai.solutions on the hub.
  • Two-tier: free demo (funnel) / paid "GritAI Studio" full stack.

Validate on REAL data (Rob's rule)

Build + tune against a real CSV Rob provides so the demo isn't synthetic. Fallback: a solid public dataset, swap Rob's in later.

Safety

Same secrets hygiene (env-only keys, log exception TYPE only). Uploaded data stays local/ephemeral; never logged, never sent anywhere except the chosen LLM backend (local by default).