festbench-web/config/festbench.php

67 lines
2.3 KiB
PHP

<?php
use App\Models\DepthsweepResult;
use App\Models\InfrabenchResult;
use App\Models\ProsebenchResult;
use App\Models\PsychbenchResult;
use App\Models\ScenarioRun;
use App\Models\SoftbenchResult;
// Suite registry: the single source of truth for which bench suites exist,
// which model stores their results, and whether they are active.
//
// - `active => false` removes the suite from the all_results view and the
// home page (decommissioning) — historical data stays queryable and run
// detail pages keep rendering.
// - The view is rebuilt by `festbench:suites:refresh` after editing this file.
// - Adding a future suite: create its migration + model, add it here, run
// the refresh command.
return [
'suites' => [
'softbench' => [
'model' => SoftbenchResult::class,
'active' => true,
'in_all_results' => true,
],
'infrabench' => [
'model' => InfrabenchResult::class,
'active' => true,
'in_all_results' => true,
],
'prosebench' => [
'model' => ProsebenchResult::class,
'active' => true,
'in_all_results' => true,
],
'psychbench' => [
'model' => PsychbenchResult::class,
'active' => true,
'in_all_results' => true,
],
'depthsweep' => [
'model' => DepthsweepResult::class,
'active' => true,
// ttft/wall are meaningful in the combined view; tok/s stays null.
'in_all_results' => true,
],
'scenariobench' => [
'model' => ScenarioRun::class,
'active' => true,
// Agentic metrics (turns, submissions) — no tok/s semantics, so
// it is excluded from the combined metric view.
'in_all_results' => false,
],
],
// Source table in the festbench SQLite db for each suite ('results' is
// the generic metrics table; scenariobench has its own).
'source_tables' => [
'scenariobench' => 'scenario_runs',
],
// Caching: TTL staleness only — never event-flush. At high submission
// rates, event flushes would storm the cache; benchmark data being a
// couple of minutes old is correct behavior.
'home_cache_ttl' => env('FESTBENCH_HOME_CACHE_TTL', 300),
];