factcircuit
FactCircuit: an auditable claim-and-evidence verification loop with immutable provenance, staged checks, bounded retrieval, and reproducible evaluation.
Messy free-text German car-damage notes → reliable structured data: schema-validated DeepSeek extraction + deterministic repair logic, feeding a data-driven 2D/3D car dashboard and corpus analytics. �
DataJupyter Notebook · TypeScriptGitHub @fruitsamurai97OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Messy free-text German car-damage notes → reliable structured data: schema-validated DeepSeek extraction + deterministic repair logic, feeding a data-driven 2D/3D car dashboard and corpus analytics. 🥇 1st place — Wolf Day hackathon (Track B, DaiL / Casablanca AI Lab).
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
Wolf Day — Damage Intelligence (Track B) Turning messy, free-text German car-damage notes into reliable, structured data — and two connected views from a single record: a data-driven car diagram (2D + 3D) and a corpus dashboard. Wolf Day hackathon · Track B — DaiL · Casablanca AI Lab 🔗 Live demo: https://wolf-day-damage.vercel.app/dashboard A ~20-second tour: tap a case → inspect the color-coded 3D damage → scroll to the auto-generated repair plan. ▶️ Try the live app: wolf-day-damage.vercel.app/dashboardRead the full README ↗
Turning messy, free-text German car-damage notes into reliable, structured data — and two connected views from a single record: a data-driven car diagram (2D + 3D) and a corpus dashboard.
Wolf Day hackathon · Track B — DaiL · Casablanca AI Lab 🔗 Live demo: https://wolf-day-damage.vercel.app/dashboard
A ~20-second tour: tap a case → inspect the color-coded 3D damage → scroll to the auto-generated repair plan. ▶️ Try the live app: wolf-day-damage.vercel.app/dashboard
Car dealerships log vehicle damage as unstructured German notes — no schema, inconsistent wording, and severity almost never stated explicitly. That text can't be searched, analysed, or turned into a repair plan at scale. The Track B brief: take a working prototype to a production-ready product.
| Field | Result |
|---|---|
| Damage zones (multi-label) | F1 99.9% |
| Case type · Insurer | 100% · 100% |
| Verbatim evidence present | 100% |
| Records lost / dropped | 0 |
| Severity (DeepSeek) | 68.7% — ≈ 86% of the data's own ceiling (79.5%) |
The severity limit lives in the data, not the model: identical sentences carry different severity labels in the ground truth.
DeepSeek vs. classic ML (Logistic Regression / XGBoost / LightGBM) vs. a fine-tuned German BERT (gBERT). The 17-point gap between two near-identical boosting models (XGBoost 82.0% vs. LightGBM 65.3%) is the tell: they memorise the synthetic phrase library instead of understanding severity — the highest score is the least trustworthy. We ship the LLM's severity because it generalises. See the Work/ML *.ipynb notebooks and the in-app Model Lab (live in-browser prediction).
Data/
frontend/ Next.js dashboard — the live app (Vercel root dir)
public/data/*.json data-driven inputs (cases, aggregates, model comparison)
*.pptx presentation deck (final: Damage_Intelligence_EN_v2.pptx)
wolf-day-qr.png QR to the live demo
Work/
*.ipynb EDA + ML notebooks
pipeline/ the Python engine
schema.py Pydantic closed-vocabulary schema
extract.py DeepSeek extraction — the LLM "reads"
repair_logic.py deterministic repair/replace + R&I — the code "decides"
lexicon.py baseline.py evaluate.py
ml_common.py train_cpu_models.py train_gbert.py
build_dataset.py composes the frontend JSON
requirements.txt Python dependencies
models/*.joblib
docs/ jury reliability report, fireside cheat-sheet, milestone notes
Frontend — no backend or keys needed (it reads static JSON):
cd Data/frontend
yarn install && yarn dev # or: npm install && npm run dev → http://localhost:3000
Pipeline (Python 3.10+):
pip install -r Work/pipeline/requirements.txt
# The DeepSeek key is server-side ONLY — it is never shipped to the client.
# Put it in a git-ignored .env.local at the repo root:
echo "DEEPSEEK_API_KEY=sk-..." > .env.local
cd Work/pipeline
python run_pilot.py # small, scored pilot
python run_batch.py # full corpus
python build_dataset.py # regenerate the frontend JSON
python train_cpu_models.py # LogReg / XGBoost / LightGBM (CPU)
train_gbert.py fine-tunes German BERT and needs a GPU (torch + transformers).
The Track B dataset, challenge brief and reference demo are provided separately by the organizers (DaiL · Casablanca AI Lab) and are not redistributed in this repository. To run the pipeline end-to-end, drop the data kit under Dataset/. All other code and analysis are the author's own.