mirror of
https://github.com/hanzo-apps/hanzo.ai.git
synced 2026-10-30 14:58:08 +00:00
/ and /enso draw one chart again, the scatter d0199249 removed, read from the
runs when the page opens (lib/enso `field`): every single model at its best
priced run on the 198 questions, at the cost it filed; Enso Ultra, Enso and
Enso Flash on questions they have seen (194, 191 and 189 of 198), each at its
tier's cost on new questions; and the published scores of GPT-6 Sol, GPT-6
Luna, Kimi K3, GLM 5.3, Gemini 4 Argon and Grok 4.7, which no run has
measured, at their list rates times the median tokens a question took, a
dashed disc linking its source. A run of the same model replaces its
published score with no change to the code. The frontier is a line through
the points no other beats on both; a tier off it is not drawn.
The landing's title is a condition on the points: "Highest score. Cheapest
above 90%." while a tier tops every point and another is the cheapest above
90%, else "Accuracy against cost." The captions under the chart and over the
table are gone; each figure names its set where it stands. /enso says how
to route your own way: pinned, by policy, or trained on your own traffic.
88 lines
2.8 KiB
TypeScript
88 lines
2.8 KiB
TypeScript
'use client'
|
||
|
||
import { Ready } from '@/components/api/state'
|
||
import { Gloss, Inline, Table, Td, Th, Tr } from '@/components/benchmarks/parts'
|
||
import { YStack } from '@/components/ui'
|
||
import { useEnso } from '@/hooks/useEnso'
|
||
import { pct, usd, type Routed as Run } from '@/lib/enso'
|
||
|
||
/**
|
||
* Enso routed on GPQA Diamond as /enso's table, read when the page opens
|
||
* (lib/enso `routing`): on new questions the tiers ahead of the best single
|
||
* model, the low-cost tier and that model, each with its count and what 1,000
|
||
* questions cost; then the tiers on questions they have seen. Each table names
|
||
* its set where its figures stand (the new questions' column head, each seen
|
||
* figure's own cell), so no caption names one. Each row links its research run.
|
||
* Not drawn without a routing.
|
||
*/
|
||
function Row({ r, aside }: { r: Run; aside: string | null }) {
|
||
return (
|
||
<Tr>
|
||
<Td left wrap>
|
||
{r.ours ? <strong>{r.name}</strong> : r.name}
|
||
<Gloss>
|
||
<Inline href={r.href}>run</Inline>
|
||
</Gloss>
|
||
</Td>
|
||
<Td tone={r.ours ? 'ours' : 'rest'}>
|
||
{pct(r.accuracy)}
|
||
{aside ? ` · ${aside}` : ''}
|
||
</Td>
|
||
<Td>{r.correct != null && r.n != null ? `${r.correct} of ${r.n}` : '–'}</Td>
|
||
<Td>{r.per1k != null ? usd(r.per1k) : '–'}</Td>
|
||
</Tr>
|
||
)
|
||
}
|
||
|
||
export function Routed() {
|
||
return (
|
||
<Ready reading={useEnso()} what="Enso's research runs">
|
||
{(e) => {
|
||
const r = e.routing
|
||
if (!r) return null
|
||
const fresh = [...r.fresh, r.best, ...(r.cheap ? [r.cheap] : [])]
|
||
return (
|
||
<YStack gap="$5" data-routed="">
|
||
<YStack data-set="new">
|
||
<Table>
|
||
<thead>
|
||
<tr>
|
||
<Th left>System</Th>
|
||
<Th>New questions</Th>
|
||
<Th>Correct</Th>
|
||
<Th>Per 1,000 questions</Th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
{fresh.map((x) => (
|
||
<Row key={x.system} r={x} aside={x === r.cheap ? 'the low-cost option' : null} />
|
||
))}
|
||
</tbody>
|
||
</Table>
|
||
</YStack>
|
||
{r.seen.length ? (
|
||
<YStack data-set="seen">
|
||
<Table>
|
||
<thead>
|
||
<tr>
|
||
<Th left>System</Th>
|
||
<Th>Accuracy</Th>
|
||
<Th>Correct</Th>
|
||
<Th>Per 1,000 questions</Th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
{r.seen.map((x) => (
|
||
<Row key={x.system} r={x} aside="questions it has seen" />
|
||
))}
|
||
</tbody>
|
||
</Table>
|
||
</YStack>
|
||
) : null}
|
||
</YStack>
|
||
)
|
||
}}
|
||
</Ready>
|
||
)
|
||
}
|