-
Notifications
You must be signed in to change notification settings - Fork 6
Open
Description
Description
The UI displays hardcoded fallback ranges for SLO target inputs (TTFT, ITL, E2E) because the code references a non-existent file data/benchmarks_redhat_performance.json.
Current Behavior
get_benchmark_ranges_for_token_config()in app.py:1627-1677 tries to loaddata/benchmarks_redhat_performance.json- The file doesn't exist, so the function silently returns
{"config_count": 0} get_metric_range()at app.py:3514-3529 falls back to hardcoded values:- TTFT: 15 - 270,000 ms
- ITL: 3 - 430 ms
- E2E: 800 - 300,000 ms
- These static ranges are displayed below each input but don't reflect actual benchmark data
Why Static Ranges Are Problematic
Benchmark data can be loaded or reloaded at any time, which means valid SLO ranges can change during a session. Static hardcoded ranges:
- Don't reflect what's actually achievable with the currently loaded benchmark data
- Can't adapt when data is reloaded or reset
- May show ranges that are misleading (e.g., suggesting 15ms TTFT is achievable when no loaded benchmark supports it)
Proposed Fix (Phase 1)
Remove the dead code and range display:
- Delete
get_benchmark_ranges_for_token_config()function - Remove the "Range: X - Y ms" text below each SLO input
- Remove the
benchmark_rangesvariable andget_metric_range()helper from the render functions
Future Enhancement Consideration
If dynamic ranges are needed later, consider:
- Backend endpoint (e.g.,
GET /api/v1/benchmark-ranges) that calculates min/max from currently loaded benchmark data - Ranges computed based on workload profile (prompt_tokens, output_tokens)
- Recalculated whenever benchmark data is loaded/unloaded/reset, with results cached by backend
- UI fetches ranges when rendering the Technical Specification tab
This approach:
- Keeps range calculation server-side where the data lives, avoiding frontend/backend state sync issues
- Ensures ranges always reflect the currently loaded benchmark data, updating automatically when data changes
- Doesn't recalculate the ranges every time they need to be rendered
Files Affected
ui/app.py- Remove function and range display code
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels