github MakazhanAlpamys/Soup v0.24.2
v0.24.2 — Web UI Enhancement

latest releases: v0.76.1, v0.76.0, v0.75.2...
6 months ago

What's New

Web UI Enhancement (v0.24.2)

Closes the gap with LLaMA-Factory's Gradio UI while keeping Soup's lightweight vanilla JS SPA architecture.

Training Live Monitor

  • Real-time SSE log streaming with auto-scroll and 500-line ring buffer
  • Live metrics SSE streaming from SQLite (2s poll, delta emit)
  • Training progress bar with step/total, elapsed time, and ETA
  • Pulsing "Live" indicator badge when SSE connected
  • Last-Event-ID header support for reconnection

Enhanced Metrics & Eval Display

  • 2x2 chart grid: Loss, Learning Rate, Gradient Norm, Throughput
  • GPU Memory timeline chart (when data available)
  • Eval results table in run detail modal (benchmark, score, details)
  • Multi-run comparison endpoint (/api/runs/compare, max 5 runs)

Chat Upgrade

  • SSE streaming responses via proxy endpoint (/api/chat/send)
  • Configurable generation params: temperature, max_tokens, top_p sliders
  • System prompt textarea + adapter selection
  • Typing indicator + cancel generation button
  • Lightweight markdown renderer (bold, italic, code blocks, lists)
  • Chat history export as JSON

Visual Config Builder

  • Config schema API (/api/config/schema) — Pydantic field metadata extraction
  • Recipes API (/api/recipes) — 29 ready-made configs as JSON
  • Form-to-YAML API (/api/config/from-form) — validated conversion
  • Recipe dropdown on training page (quick-start from any recipe)

Security

  • Chat proxy: SSRF protection (localhost-only HTTP, HTTPS for remote)
  • Chat proxy: max_tokens capped at 16384, temperature 0-2, top_p 0-1
  • Chat proxy: Bearer token auth required on POST
  • XSS prevention: HTML-escape before markdown render
  • Runs compare: max 5 runs per comparison

Tests: 58 new tests across 4 files (2128 total, 78 files, 67% coverage)

Install / Upgrade

pip install --upgrade soup-cli
# or with Web UI extras:
pip install --upgrade 'soup-cli[ui]'

Don't miss a new Soup release

NewReleases is sending notifications on new releases.