AI-powered commit message generator. Fine-tuned Qwen2.5-0.5B, served from a full MLOps stack.
🎨 https://commit-msg.durak.dev Frontend (Next.js)
🔌 https://commit.durak.dev API (FastAPI)
📚 https://commit.durak.dev/docs OpenAPI docs
📊 https://commit-grafana.durak.dev Grafana dashboard
🤗 huggingface.co/biighunter/commit-msg-llm-adapter
Paste a git diff → get a clean, conventional commit message.
Powered by Qwen2.5-0.5B fine-tuned with LoRA on 6,676 real commits from the CommitChronicle dataset.
| Layer | Tech |
|---|---|
| Training | Qwen2.5-0.5B · LoRA · PEFT · Kaggle GPU |
| Tracking | MLflow |
| Registry | HuggingFace Hub · ghcr.io |
| Serving | FastAPI · Redis cache · PyTorch |
| Infra | Kubernetes (DigitalOcean) · Helm |
| Ingress | Nginx · cert-manager · Let's Encrypt |
| Monitoring | Prometheus · Grafana · custom metrics |
| CI/CD | GitHub Actions · release-please |
| Eval | BLEU · ROUGE · GPT-4o-mini LLM-as-judge |
| Frontend | Next.js 15 · TypeScript · Tailwind · shadcn/ui · Framer Motion |
┌──────────────────┐
│ GitHub Actions │
│ (test→build→ │
│ push→deploy) │
└─────────┬────────┘
│
▼
┌─────────┐ HTTPS ┌──────────────────────────┐
│ Browser │ ─────────────────│ K8s cluster (DO fra1) │
└─────────┘ │ │
│ ┌────────┐ ┌─────────┐ │
│ │ web │──│ api │ │
│ │ Next.js│ │ FastAPI │ │
│ └────────┘ └────┬────┘ │
│ │ │
│ ┌────▼────┐ │
│ │ redis │ │
│ └─────────┘ │
│ │
│ Prometheus → Grafana │
└──────────────────────────┘
# Backend
make install
make serve # http://localhost:8000
# Frontend
cd web && npm install && npm run dev # http://localhost:3000make data # download CommitChronicle (~10k samples)
make train # LoRA fine-tune (GPU recommended)
make eval # BLEU + ROUGE + LLM judgePush to main → GitHub Actions:
- Runs tests + lint
- Builds Docker image
- Pushes to ghcr.io
- Rolls out to K8s
- Smoke-tests health endpoint
Custom Prometheus metrics exposed at /metrics:
generate_total{status}— total generations by statusgenerate_latency_seconds— inference latency histogramcache_events_total{event}— Redis cache hits/misses
Visualize at commit-grafana.durak.dev.
MIT