Commit 8bffe09
feat(adminapi): Pareto-frontier Suggest engine + markup/think/value cols
Replaces the per-role "filters + single sort" recommender with a Pareto
frontier over (role-specific quality, price), then sorts the frontier by
quality desc. Every model shown is a valid trade-off: none is strictly
dominated (worse AND more expensive) by another.
Per-role axes:
- simple/default/complex: (AA Agentic Index, prompt price)
- multimodal/compaction: (AA Intelligence Index, prompt or completion price)
- classifier: (1/TTFT, prompt price) when speed data present, else (intel, price)
Knee-point detection surfaces "Best value: X (N% quality @ M% price)" in the
banner when a non-top frontier model maximizes quality/price under a 50%
quality floor.
UI adds three columns derived from AA data:
- Value (quality/$) - role-specific in Suggest, agentic/$ in browse
- Think (TTFA - TTFT) - reasoner thinking time before answer begins
- Markup (OR vs AA blended 3:1) - surfaces whether OR routes a cheaper
provider (negative %) or marks the model up (positive %)
Also fixes a latent bug where artificial_analysis_agentic_index was never
parsed from the /api/v2/data/llms/models response - our presets rely on
AgenticIndex but a live fetch would have zeroed it for every model. Adds
median_time_to_first_answer_token and price_1m_blended_3_to_1 parsing
alongside the fix.
Tightens preset filters to remove data-coverage artefacts:
- Models with quality=0 are excluded from the frontier (no untested models
reaching the top purely by price-floor coincidence)
- simple cap tightened to $0.2/M so it genuinely differs from default
- classifier excludes :free variants (rate-limited on OR)
- compaction relaxed to ctx ≥ 64k / completion ≤ $2 (was 128k / $1, which
left only 2 candidates)
- All non-classifier presets require ctx ≥ 32k (32k was missing before)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>1 parent 3a687c1 commit 8bffe09
6 files changed
Lines changed: 425 additions & 134 deletions
File tree
- internal
- adminapi
- templates
- llm
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
| 5 | + | |
5 | 6 | | |
6 | 7 | | |
7 | 8 | | |
| |||
38 | 39 | | |
39 | 40 | | |
40 | 41 | | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
41 | 46 | | |
42 | 47 | | |
43 | 48 | | |
| |||
53 | 58 | | |
54 | 59 | | |
55 | 60 | | |
| 61 | + | |
| 62 | + | |
56 | 63 | | |
57 | 64 | | |
58 | 65 | | |
| |||
237 | 244 | | |
238 | 245 | | |
239 | 246 | | |
| 247 | + | |
| 248 | + | |
| 249 | + | |
| 250 | + | |
| 251 | + | |
| 252 | + | |
| 253 | + | |
| 254 | + | |
| 255 | + | |
| 256 | + | |
| 257 | + | |
| 258 | + | |
| 259 | + | |
| 260 | + | |
| 261 | + | |
| 262 | + | |
| 263 | + | |
| 264 | + | |
| 265 | + | |
| 266 | + | |
| 267 | + | |
| 268 | + | |
| 269 | + | |
| 270 | + | |
| 271 | + | |
| 272 | + | |
240 | 273 | | |
241 | 274 | | |
242 | 275 | | |
243 | | - | |
244 | | - | |
245 | | - | |
246 | | - | |
247 | | - | |
248 | | - | |
249 | | - | |
250 | | - | |
251 | | - | |
| 276 | + | |
| 277 | + | |
252 | 278 | | |
253 | 279 | | |
254 | 280 | | |
| |||
309 | 335 | | |
310 | 336 | | |
311 | 337 | | |
312 | | - | |
313 | | - | |
314 | | - | |
315 | | - | |
| 338 | + | |
| 339 | + | |
| 340 | + | |
| 341 | + | |
| 342 | + | |
| 343 | + | |
| 344 | + | |
| 345 | + | |
| 346 | + | |
| 347 | + | |
| 348 | + | |
| 349 | + | |
316 | 350 | | |
317 | 351 | | |
318 | 352 | | |
| |||
333 | 367 | | |
334 | 368 | | |
335 | 369 | | |
| 370 | + | |
| 371 | + | |
| 372 | + | |
| 373 | + | |
| 374 | + | |
| 375 | + | |
336 | 376 | | |
337 | 377 | | |
338 | 378 | | |
| |||
357 | 397 | | |
358 | 398 | | |
359 | 399 | | |
| 400 | + | |
| 401 | + | |
| 402 | + | |
| 403 | + | |
| 404 | + | |
| 405 | + | |
| 406 | + | |
| 407 | + | |
| 408 | + | |
| 409 | + | |
| 410 | + | |
| 411 | + | |
| 412 | + | |
| 413 | + | |
| 414 | + | |
| 415 | + | |
| 416 | + | |
| 417 | + | |
| 418 | + | |
| 419 | + | |
| 420 | + | |
| 421 | + | |
| 422 | + | |
| 423 | + | |
360 | 424 | | |
361 | 425 | | |
362 | 426 | | |
| |||
0 commit comments