MitakaKuma's picture
Add Gemma 4 12B and Mistral 7B results
8efa690 verified
Raw
History Blame Contribute Delete
132 kB
<!doctype html>
<html lang="en">
<head><script>window.huggingface={variables:{"SPACE_CREATOR_USER_ID":"671b8822cca657cc83e23281"}};</script>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="AutoMedBench Lite leaderboard: average scores, cost, time, and turns across seven released medical AI tracks.">
<meta name="color-scheme" content="light">
<title>AutoMedBench Lite Leaderboard</title>
<style>
:root {
--canvas: #f6f1e6;
--panel: #faf6ee;
--panel-strong: #fffdf8;
--ink: #3b4538;
--ink-soft: #737a6d;
--ink-faint: #9aa093;
--edge: #e6decc;
--edge-strong: #d9d0bc;
--primary: #4a7355;
--primary-dark: #3e6248;
--primary-soft: #e6ede5;
--overall: #111411;
--metric: #7f877b;
--gold: #c9a35a;
--silver: #a9afb7;
--bronze: #b88556;
--shadow: 0 12px 32px rgba(59, 69, 56, 0.08);
}
* { box-sizing: border-box; }
html { background: var(--canvas); }
body {
margin: 0;
min-width: 320px;
color: var(--ink);
background:
radial-gradient(circle at 15% 0%, rgba(74, 115, 85, 0.08), transparent 30rem),
var(--canvas);
font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
font-size: 15px;
line-height: 1.5;
-webkit-font-smoothing: antialiased;
}
a { color: inherit; }
.page {
width: min(100% - 32px, 1180px);
margin: 0 auto;
padding: 44px 0 36px;
}
.hero {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: 24px;
margin-bottom: 24px;
}
.brand {
display: flex;
align-items: center;
gap: 14px;
}
.brand-mark {
display: grid;
width: 42px;
height: 42px;
flex: 0 0 auto;
place-items: center;
border-radius: 11px;
color: #fff;
background: var(--primary);
box-shadow: 0 5px 14px rgba(74, 115, 85, 0.2);
font-family: Georgia, "Times New Roman", serif;
font-size: 23px;
font-weight: 700;
}
.eyebrow {
margin: 0 0 2px;
color: var(--primary);
font-size: 12px;
font-weight: 750;
letter-spacing: 0.11em;
text-transform: uppercase;
}
h1 {
margin: 0;
font-family: Georgia, "Times New Roman", serif;
font-size: clamp(28px, 4vw, 38px);
font-weight: 650;
letter-spacing: -0.025em;
line-height: 1.1;
}
.subtitle {
margin: 9px 0 0 56px;
color: var(--ink-soft);
font-size: 15px;
}
.actions {
display: flex;
flex: 0 0 auto;
gap: 8px;
}
.button {
display: inline-flex;
align-items: center;
min-height: 36px;
padding: 7px 12px;
border: 1px solid var(--edge-strong);
border-radius: 8px;
color: var(--ink);
background: rgba(255, 253, 248, 0.72);
font-size: 13px;
font-weight: 650;
text-decoration: none;
transition: border-color 140ms ease, background 140ms ease, color 140ms ease;
}
.button:hover,
.button:focus-visible {
border-color: var(--primary);
color: var(--primary-dark);
background: var(--panel-strong);
outline: none;
}
.score-chart {
overflow: hidden;
margin-bottom: 20px;
border: 1px solid var(--edge-strong);
border-radius: 12px;
background: var(--panel-strong);
box-shadow: var(--shadow);
}
.score-chart-head {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: 24px;
padding: 18px 20px 16px;
border-bottom: 1px solid var(--edge);
background: var(--panel);
}
.score-chart-copy { min-width: 0; }
.score-chart-kicker {
margin: 0 0 4px;
color: var(--primary);
font-size: 11px;
font-weight: 800;
letter-spacing: 0.09em;
text-transform: uppercase;
}
.score-chart h2 {
margin: 0;
color: var(--ink);
font-family: Georgia, "Times New Roman", serif;
font-size: clamp(21px, 3vw, 27px);
font-weight: 650;
letter-spacing: -0.02em;
line-height: 1.15;
}
.score-chart-subtitle {
max-width: 650px;
margin: 6px 0 0;
color: var(--ink-soft);
font-size: 13px;
}
.metric-switcher {
display: inline-flex;
flex: 0 0 auto;
gap: 3px;
padding: 3px;
border: 1px solid var(--edge);
border-radius: 9px;
background: #eee9df;
}
.metric-button {
min-height: 32px;
padding: 5px 11px;
border: 0;
border-radius: 6px;
color: var(--ink-soft);
background: transparent;
font: inherit;
font-size: 12px;
font-weight: 750;
cursor: pointer;
}
.metric-button:hover { color: var(--ink); }
.metric-button:focus-visible {
outline: 2px solid var(--primary);
outline-offset: 2px;
}
.metric-button[aria-pressed="true"] {
color: #fff;
background: var(--primary);
box-shadow: 0 2px 6px rgba(59, 69, 56, 0.14);
}
.score-chart-body { padding: 12px 18px 10px; }
.column-chart-scroll {
width: 100%;
overflow-x: auto;
overflow-y: hidden;
overscroll-behavior-inline: contain;
scrollbar-color: #aeb8aa #ece8df;
scrollbar-width: thin;
}
.column-chart-scroll:focus-visible {
border-radius: 8px;
outline: 2px solid var(--primary);
outline-offset: 2px;
}
.column-chart-frame {
--axis-left: 58px;
--plot-top: 38px;
--plot-height: 268px;
--label-height: 116px;
position: relative;
height: calc(var(--plot-top) + var(--plot-height) + var(--label-height) + 22px);
min-width: max(100%, calc(var(--model-count) * 54px + var(--axis-left) + 12px));
}
.chart-y-title {
position: absolute;
top: var(--plot-top);
bottom: calc(var(--label-height) + 22px);
left: 0;
display: grid;
place-items: center;
color: var(--ink-faint);
font-size: 10px;
font-weight: 750;
letter-spacing: 0.08em;
text-transform: uppercase;
writing-mode: vertical-rl;
transform: rotate(180deg);
}
.chart-y-axis {
position: absolute;
top: var(--plot-top);
left: 18px;
display: flex;
width: 30px;
height: var(--plot-height);
flex-direction: column;
justify-content: space-between;
color: var(--ink-faint);
font-family: "SFMono-Regular", Consolas, "Liberation Mono", monospace;
font-size: 9px;
line-height: 1;
text-align: right;
}
.chart-grid {
position: absolute;
top: var(--plot-top);
right: 8px;
left: var(--axis-left);
display: flex;
height: var(--plot-height);
flex-direction: column;
justify-content: space-between;
pointer-events: none;
}
.chart-grid-line {
display: block;
width: 100%;
border-top: 1px dashed rgba(115, 122, 109, 0.2);
}
.chart-grid-line:last-child {
border-color: rgba(77, 87, 75, 0.36);
border-top-style: solid;
}
.score-bars {
position: absolute;
top: var(--plot-top);
right: 8px;
left: var(--axis-left);
display: grid;
height: calc(var(--plot-height) + var(--label-height));
grid-template-columns: repeat(var(--model-count), minmax(0, 1fr));
gap: clamp(4px, 0.65vw, 10px);
margin: 0;
padding: 0;
list-style: none;
}
.score-bar-row {
display: grid;
min-width: 0;
grid-template-rows: var(--plot-height) var(--label-height);
}
.bar-rank { display: none; }
.bar-column-slot {
position: relative;
display: flex;
min-width: 0;
align-items: flex-end;
justify-content: center;
}
.bar-stack {
position: relative;
width: clamp(20px, 68%, 35px);
min-height: 2px;
height: calc(var(--score) * 1%);
}
.bar-fill {
position: absolute;
inset: 0;
display: block;
border-radius: 5px 5px 1px 1px;
background: var(--model-color);
box-shadow:
inset 0 -1px 0 rgba(0, 0, 0, 0.12),
0 2px 5px color-mix(in srgb, var(--model-color) 18%, transparent);
transform-origin: bottom;
transition: filter 160ms ease, transform 160ms ease;
}
.score-bar-row:hover .bar-fill {
filter: saturate(1.08) brightness(0.96);
transform: scaleX(1.08);
}
.bar-value {
position: absolute;
top: -20px;
left: 50%;
color: var(--ink);
font-family: "SFMono-Regular", Consolas, "Liberation Mono", monospace;
font-size: 9px;
font-weight: 800;
line-height: 1;
white-space: nowrap;
transform: translateX(-50%);
}
.bar-model {
position: relative;
display: flex;
min-width: 0;
align-items: flex-start;
justify-content: center;
padding-top: 7px;
}
.bar-logo {
position: relative;
display: grid;
width: 24px;
height: 24px;
flex: 0 0 auto;
place-items: center;
overflow: hidden;
border: 1px solid color-mix(in srgb, var(--model-color) 28%, var(--edge));
border-radius: 7px;
color: var(--ink-soft);
background: color-mix(in srgb, var(--model-color) 8%, #f4f0e7);
font-size: 9px;
font-weight: 800;
}
.bar-logo img {
position: relative;
z-index: 1;
display: block;
width: 15px;
height: 15px;
opacity: 0.88;
}
.bar-logo img.is-missing { display: none; }
.bar-model-copy {
position: absolute;
top: 35px;
right: 50%;
width: 112px;
min-width: 0;
transform: translateX(10px) rotate(-56deg);
transform-origin: top right;
text-align: right;
}
.bar-model-name {
display: block;
overflow: hidden;
color: var(--ink);
font-size: 10px;
font-weight: 690;
letter-spacing: -0.015em;
line-height: 1.15;
text-overflow: ellipsis;
white-space: nowrap;
}
.bar-provider { display: none; }
.chart-x-title {
position: absolute;
right: 8px;
bottom: 0;
left: var(--axis-left);
color: var(--ink-faint);
font-size: 10px;
font-weight: 750;
letter-spacing: 0.08em;
text-align: center;
text-transform: uppercase;
}
.chart-scroll-hint {
margin: 4px 0 0;
color: var(--ink-faint);
font-size: 10px;
text-align: center;
}
.chart-scroll-hint[hidden] { display: none; }
.score-chart-foot {
display: flex;
align-items: center;
justify-content: space-between;
gap: 16px;
padding: 11px 20px;
border-top: 1px solid var(--edge);
color: var(--ink-soft);
background: #faf7f0;
font-size: 11px;
}
.score-chart-foot strong { color: var(--ink); }
.chart-scale-note {
flex: 0 0 auto;
font-family: "SFMono-Regular", Consolas, "Liberation Mono", monospace;
white-space: nowrap;
}
.chart-error,
.chart-noscript {
margin: 0;
padding: 18px 20px;
color: #7c473f;
background: #fbefec;
font-size: 13px;
}
.sr-only {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
overflow: hidden;
clip: rect(0, 0, 0, 0);
white-space: nowrap;
border: 0;
}
.leaderboard {
overflow: hidden;
border: 1px solid var(--edge-strong);
border-radius: 12px;
background: var(--panel-strong);
box-shadow: var(--shadow);
}
.leaderboard-head {
display: flex;
align-items: center;
justify-content: space-between;
gap: 16px;
min-height: 52px;
padding: 10px 15px;
border-bottom: 1px solid var(--edge);
background: var(--panel);
}
.leaderboard-title {
display: flex;
align-items: center;
gap: 9px;
min-width: 0;
font-weight: 750;
}
.chart-icon {
display: inline-flex;
align-items: flex-end;
gap: 2px;
width: 18px;
height: 16px;
color: var(--primary);
}
.chart-icon i {
display: block;
width: 4px;
border-radius: 2px 2px 0 0;
background: currentColor;
}
.chart-icon i:nth-child(1) { height: 8px; opacity: 0.45; }
.chart-icon i:nth-child(2) { height: 15px; }
.chart-icon i:nth-child(3) { height: 11px; opacity: 0.7; }
.badge {
overflow: hidden;
padding: 2px 7px;
border: 1px solid #bed0c0;
border-radius: 5px;
color: var(--primary-dark);
background: var(--primary-soft);
font-size: 11px;
font-weight: 700;
text-overflow: ellipsis;
white-space: nowrap;
}
.formula {
flex: 0 0 auto;
color: var(--ink-soft);
font-size: 12px;
}
.formula strong {
color: var(--ink);
font-variant-numeric: tabular-nums;
}
.table-scroll { overflow-x: auto; }
table {
width: 100%;
min-width: 1130px;
border-collapse: collapse;
font-variant-numeric: tabular-nums;
}
th {
height: 38px;
padding: 8px 12px;
border-bottom: 1px solid var(--edge);
color: var(--ink-soft);
background: #f9f5ec;
font-size: 11px;
font-weight: 750;
letter-spacing: 0.055em;
text-align: right;
text-transform: uppercase;
vertical-align: middle;
}
th.rank,
td.rank { width: 58px; text-align: center; }
th.model,
td.model { width: 230px; text-align: left; }
th.parameter,
td.parameter { width: 96px; }
th.score,
td.score { width: 84px; }
th.release,
td.release { width: 112px; }
th.operational,
td.operational { width: 88px; }
th.parameter,
td.parameter,
th.release,
td.release,
th.score,
td.score,
th.operational,
td.operational { text-align: right; }
tbody tr:nth-child(odd) { background: var(--panel-strong); }
tbody tr:nth-child(even) { background: #f8f5ed; }
tbody tr:first-child { background: #f1f6ef; }
tbody tr {
border-bottom: 1px solid var(--edge);
transition: background 120ms ease;
}
tbody tr:last-child { border-bottom: 0; }
tbody tr:hover { background: #edf3eb; }
td {
height: 62px;
padding: 10px 12px;
text-align: right;
vertical-align: middle;
}
.model-cell {
display: flex;
align-items: center;
gap: 10px;
min-width: 0;
}
.logo-wrap {
display: grid;
width: 32px;
height: 32px;
flex: 0 0 auto;
place-items: center;
border: 1px solid var(--edge);
border-radius: 8px;
background: #f4f0e7;
}
.company-logo {
display: block;
width: 19px;
height: 19px;
opacity: 0.86;
}
.model-copy { min-width: 0; }
.model-name {
display: block;
overflow: hidden;
color: var(--ink);
font-weight: 680;
letter-spacing: -0.01em;
text-overflow: ellipsis;
white-space: nowrap;
}
.provider {
display: block;
margin-top: 1px;
color: var(--metric);
font-size: 11px;
}
td.score,
td.parameter,
td.release,
td.operational {
color: var(--metric);
font-family: "SFMono-Regular", Consolas, "Liberation Mono", monospace;
font-size: 12px;
font-weight: 600;
white-space: nowrap;
}
.free-cost {
display: inline-block;
color: var(--ink-faint);
font-family: "SFMono-Regular", Consolas, "Liberation Mono", monospace;
font-size: 11px;
font-weight: 600;
}
td.overall {
color: var(--overall);
font-size: 14px;
font-weight: 850;
}
.release-link {
color: var(--metric);
text-decoration: none;
}
.release-link:hover,
.release-link:focus-visible {
color: var(--primary-dark);
text-decoration: underline;
outline: none;
}
.rank-mark {
display: inline-grid;
width: 25px;
height: 25px;
place-items: center;
border-radius: 50%;
color: var(--ink-soft);
background: #ede9df;
font-family: "SFMono-Regular", Consolas, monospace;
font-size: 11px;
font-weight: 800;
}
tr:nth-child(1) .rank-mark { color: #fff; background: var(--gold); }
tr:nth-child(2) .rank-mark { color: #fff; background: var(--silver); }
tr:nth-child(3) .rank-mark { color: #fff; background: var(--bronze); }
.leaderboard-foot {
display: flex;
align-items: center;
justify-content: space-between;
gap: 20px;
padding: 12px 15px;
border-top: 1px solid var(--edge);
color: var(--ink-soft);
background: var(--panel);
font-size: 12px;
}
.tracks { margin: 0; }
.source {
flex: 0 0 auto;
color: var(--primary-dark);
font-weight: 650;
text-decoration: none;
}
.source:hover,
.source:focus-visible { text-decoration: underline; outline: none; }
.note {
margin: 16px auto 0;
color: var(--ink-faint);
font-size: 12px;
text-align: center;
}
@media (max-width: 720px) {
.page { width: min(100% - 20px, 1180px); padding-top: 26px; }
.hero { display: block; }
.actions { margin: 20px 0 0 56px; }
.score-chart-head { display: block; padding: 16px; }
.metric-switcher { display: flex; width: 100%; margin-top: 14px; }
.metric-button { flex: 1; }
.score-chart-body { padding: 10px 8px 8px; }
.column-chart-frame {
--axis-left: 52px;
--plot-top: 36px;
--plot-height: 244px;
--label-height: 112px;
min-width: max(100%, calc(var(--model-count) * 52px + var(--axis-left) + 10px));
}
.chart-y-axis { left: 14px; width: 28px; }
.bar-stack { width: clamp(18px, 70%, 32px); }
.bar-model-copy { width: 106px; }
.bar-model-name { font-size: 9.5px; }
.score-chart-foot { display: block; padding: 10px 16px; }
.chart-scale-note { display: block; margin-top: 4px; }
.leaderboard-head { align-items: flex-start; }
.formula { display: none; }
.leaderboard-foot { display: block; }
.source { display: inline-block; margin-top: 7px; }
}
@media (max-width: 460px) {
.subtitle,
.actions { margin-left: 0; }
.brand-mark { width: 38px; height: 38px; }
.actions { width: 100%; }
.button { flex: 1; justify-content: center; }
}
.eff-tabbar {
display: grid;
grid-template-columns: repeat(4, minmax(0, 1fr));
gap: 4px;
padding: 6px;
border-bottom: 1px solid var(--edge);
background: var(--panel);
}
.eff-tab {
min-height: 44px;
padding: 7px 10px;
border: 0;
border-radius: 8px;
color: var(--ink-soft);
background: transparent;
font: inherit;
font-size: 14px;
font-weight: 700;
cursor: pointer;
transition: background 140ms ease, color 140ms ease, box-shadow 140ms ease;
}
.eff-tab small {
display: block;
font-size: 10.5px;
font-weight: 650;
letter-spacing: 0.06em;
text-transform: uppercase;
opacity: 0.75;
}
.eff-tab:hover { color: var(--ink); background: rgba(255, 253, 248, 0.7); }
.eff-tab:focus-visible {
outline: 2px solid var(--primary);
outline-offset: 2px;
}
.eff-tab[aria-selected="true"] {
color: #fff;
background: var(--primary);
box-shadow: 0 2px 6px rgba(59, 69, 56, 0.14);
}
.eff-head {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: 24px;
padding: 18px 20px 12px;
}
.eff-copy { min-width: 0; }
.eff-title {
margin: 0;
color: var(--ink);
font-family: Georgia, "Times New Roman", serif;
font-size: clamp(21px, 3vw, 27px);
font-weight: 650;
letter-spacing: -0.02em;
line-height: 1.15;
}
.eff-subtitle {
max-width: 680px;
margin: 6px 0 0;
color: var(--ink-soft);
font-size: 13.5px;
}
.eff-controls {
display: flex;
flex: 0 0 auto;
align-items: center;
gap: 8px;
padding-top: 4px;
}
.eff-count {
display: inline-flex;
align-items: center;
min-height: 34px;
padding: 5px 13px;
border: 1px solid var(--edge);
border-radius: 999px;
color: var(--ink-soft);
background: var(--panel);
font-family: "SFMono-Regular", Consolas, "Liberation Mono", monospace;
font-size: 12px;
font-weight: 600;
white-space: nowrap;
}
.eff-oss {
display: inline-flex;
align-items: center;
gap: 7px;
min-height: 34px;
padding: 5px 13px;
border: 1px dashed var(--edge-strong);
border-radius: 8px;
color: var(--ink-soft);
background: var(--panel);
font-family: "SFMono-Regular", Consolas, "Liberation Mono", monospace;
font-size: 12.5px;
font-weight: 700;
cursor: pointer;
transition: background 140ms ease, color 140ms ease, border-color 140ms ease;
}
.eff-oss .glyph { color: var(--primary); font-weight: 800; }
.eff-oss:hover { border-color: var(--primary); color: var(--ink); }
.eff-oss:focus-visible {
outline: 2px solid var(--primary);
outline-offset: 2px;
}
.eff-oss[aria-pressed="true"] {
border-style: solid;
border-color: var(--primary-dark);
color: #fff;
background: var(--primary);
}
.eff-oss[aria-pressed="true"] .glyph { color: #d7e4d8; }
.eff-legend {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 8px 14px;
padding: 2px 20px 12px;
color: var(--ink-soft);
font-size: 13.5px;
}
.eff-legend-item {
display: inline-flex;
align-items: center;
gap: 7px;
white-space: nowrap;
}
.eff-legend-sep {
width: 1px;
height: 16px;
background: var(--edge-strong);
}
.eff-legend-button {
display: inline-flex;
align-items: center;
gap: 7px;
padding: 3px 9px;
border: 1px solid transparent;
border-radius: 7px;
color: var(--ink-soft);
background: transparent;
font: inherit;
font-size: 13.5px;
white-space: nowrap;
cursor: pointer;
transition: border-color 140ms ease, color 140ms ease, background 140ms ease;
}
.eff-legend-button:hover {
border-color: var(--edge-strong);
color: var(--ink);
background: var(--panel);
}
.eff-legend-button:focus-visible {
outline: 2px solid var(--primary);
outline-offset: 2px;
}
.eff-legend-button[aria-pressed="true"] {
border-color: var(--primary);
color: var(--primary-dark);
background: var(--primary-soft);
font-weight: 700;
}
.eff-swatch-quad {
width: 15px;
height: 11px;
border: 1px solid rgba(74, 115, 85, 0.35);
border-radius: 2px;
background: rgba(74, 115, 85, 0.1);
}
.eff-swatch-pareto {
width: 20px;
border-top: 2px dotted #6b7263;
}
.eff-provider-dot {
width: 9px;
height: 9px;
flex: 0 0 auto;
border-radius: 50%;
background: var(--dot-color);
}
.eff-provider-logo {
display: block;
width: 16px;
height: 16px;
flex: 0 0 auto;
}
.eff-plot-wrap {
position: relative;
padding: 0 10px;
}
#eff-plot {
display: block;
width: 100%;
height: auto;
}
.eff-tooltip {
position: fixed;
z-index: 20;
max-width: 320px;
padding: 12px 14px;
border: 1px solid var(--edge-strong);
border-radius: 9px;
color: var(--ink);
background: var(--panel-strong);
box-shadow: var(--shadow);
font-size: 14px;
line-height: 1.5;
pointer-events: none;
}
.eff-tooltip .tt-name {
display: flex;
align-items: center;
gap: 7px;
margin-bottom: 2px;
font-weight: 750;
font-size: 15px;
}
.eff-tooltip .tt-chip {
padding: 1px 6px;
border: 1px solid #bed0c0;
border-radius: 5px;
color: var(--primary-dark);
background: var(--primary-soft);
font-family: "SFMono-Regular", Consolas, "Liberation Mono", monospace;
font-size: 11px;
font-weight: 700;
}
.eff-tooltip .tt-provider {
color: var(--ink-soft);
margin-bottom: 6px;
}
.eff-tooltip .tt-row {
display: flex;
justify-content: space-between;
gap: 18px;
}
.eff-tooltip .tt-row span:first-child { color: var(--ink-faint); }
.eff-tooltip .tt-row span:last-child {
font-family: "SFMono-Regular", Consolas, "Liberation Mono", monospace;
font-size: 12.5px;
font-weight: 600;
}
.eff-tooltip .tt-or {
margin-top: 6px;
padding-top: 6px;
border-top: 1px dashed var(--edge);
color: var(--ink-faint);
font-family: "SFMono-Regular", Consolas, "Liberation Mono", monospace;
font-size: 12px;
word-break: break-all;
}
.eff-foot {
display: flex;
align-items: center;
justify-content: flex-end;
gap: 16px;
padding: 11px 20px;
border-top: 1px solid var(--edge);
color: var(--ink-soft);
background: #faf7f0;
font-size: 12.5px;
}
.eff-note { margin: 0; text-align: right; }
[data-view-panel] {
display: flex;
flex-direction: column;
background: var(--panel);
animation: panel-in 240ms ease;
}
[data-view-panel][hidden] { display: none; }
[data-view-panel="performance"] .score-chart-body {
background: var(--panel-strong);
border-bottom: 1px solid var(--edge);
}
.score-chart-foot,
.eff-foot { margin-top: auto; }
@keyframes panel-in {
from { opacity: 0.35; transform: translateY(4px); }
to { opacity: 1; transform: none; }
}
.view-switcher {
display: flex;
align-items: center;
justify-content: center;
padding: 12px;
border-top: 1px solid var(--edge);
background: var(--panel);
}
.view-seg {
position: relative;
display: grid;
grid-template-columns: 1fr 1fr;
padding: 4px;
border: 1px solid var(--edge-strong);
border-radius: 999px;
background: #eae4d6;
box-shadow: inset 0 1px 3px rgba(59, 69, 56, 0.08);
}
.view-thumb {
position: absolute;
top: 4px;
left: 4px;
width: calc(50% - 4px);
height: calc(100% - 8px);
border-radius: 999px;
background: var(--panel-strong);
box-shadow: 0 1px 4px rgba(59, 69, 56, 0.2), 0 0 0 1px rgba(59, 69, 56, 0.06);
transition: transform 240ms cubic-bezier(0.22, 0.8, 0.26, 1);
will-change: transform;
}
.view-seg[data-active="efficiency"] .view-thumb { transform: translateX(100%); }
.view-button {
position: relative;
z-index: 1;
min-width: 160px;
min-height: 38px;
padding: 8px 26px;
border: 0;
border-radius: 999px;
color: var(--ink-soft);
background: transparent;
font: inherit;
font-size: 14.5px;
font-weight: 700;
letter-spacing: -0.005em;
cursor: pointer;
transition: color 180ms ease;
}
.view-button:hover { color: var(--ink); }
.view-button:focus-visible {
outline: 2px solid var(--primary);
outline-offset: 2px;
}
.view-button[aria-pressed="true"] {
color: var(--primary-dark);
font-weight: 750;
}
@media (max-width: 860px) {
.eff-head { flex-direction: column; gap: 12px; }
.eff-controls { padding-top: 0; }
.eff-tab { font-size: 11px; padding: 6px 4px; }
.eff-tab small { display: none; }
.eff-foot { justify-content: flex-start; }
.eff-note { text-align: left; }
}
@media (prefers-reduced-motion: reduce) {
*, *::before, *::after { scroll-behavior: auto !important; transition: none !important; }
}
</style>
<style>
:root {
--pen: #3b4538;
--pen-shadow: rgba(59, 69, 56, 0.16);
--r1: 255px 15px 225px 15px / 15px 225px 15px 255px;
--r2: 15px 225px 15px 255px / 225px 15px 255px 15px;
--r3: 125px 10px 115px 10px / 10px 115px 10px 125px;
}
[data-theme="dark"] {
--canvas: #20241d;
--panel: #262b21;
--panel-strong: #2b3126;
--ink: #e9e5d7;
--ink-soft: #aab09f;
--ink-faint: #7f8474;
--edge: #3a4033;
--edge-strong: #464d3c;
--primary: #82a98d;
--primary-dark: #9abea3;
--primary-soft: #333f2e;
--overall: #e9e5d7;
--metric: #8f9484;
--shadow: 0 12px 32px rgba(0, 0, 0, 0.35);
--pen: #e9e5d7;
--pen-shadow: rgba(0, 0, 0, 0.45);
}
body {
background:
radial-gradient(circle at 15% 0%, rgba(74, 115, 85, 0.08), transparent 30rem),
repeating-linear-gradient(0deg, transparent 0 27px, rgba(74, 115, 85, 0.05) 27px 28px),
var(--canvas) !important;
}
[data-theme="dark"] body {
background:
radial-gradient(circle at 15% 0%, rgba(130, 169, 141, 0.07), transparent 30rem),
repeating-linear-gradient(0deg, transparent 0 27px, rgba(233, 229, 215, 0.04) 27px 28px),
var(--canvas) !important;
}
body::before {
content: "";
position: fixed;
inset: 0;
z-index: 9999;
pointer-events: none;
opacity: 0.05;
mix-blend-mode: multiply;
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='240' height='240' filter='url(%23n)' opacity='0.6'/%3E%3C/svg%3E");
}
[data-theme="dark"] body::before { mix-blend-mode: screen; opacity: 0.045; }
.brand-mark {
border: 2px solid var(--pen);
border-radius: var(--r3);
box-shadow: 2px 3px 0 var(--pen-shadow);
transform: rotate(-4deg);
}
h1 {
text-decoration: underline wavy var(--primary);
text-decoration-thickness: 2px;
text-underline-offset: 8px;
}
.button {
border: 2px solid var(--pen) !important;
border-radius: var(--r2) !important;
box-shadow: 2px 3px 0 var(--pen-shadow) !important;
transform: rotate(var(--rot, 0deg));
}
.actions .button:first-child { --rot: -0.6deg; }
.actions .button:last-child { --rot: 0.5deg; }
.button:hover, .button:focus-visible { transform: translateY(-1px) rotate(var(--rot, 0deg)); }
.score-chart, .leaderboard {
border: 2px solid var(--pen) !important;
border-radius: var(--r1) !important;
box-shadow: 3px 4px 0 var(--pen-shadow), var(--shadow) !important;
}
.metric-switcher, .view-seg {
border: 2px solid var(--pen) !important;
border-radius: 999px !important;
box-shadow: 2px 3px 0 var(--pen-shadow);
}
.metric-button, .view-button { border-radius: 999px !important; }
.eff-tab { border-radius: var(--r2) !important; }
.eff-tab[aria-selected="true"] { border: 2px solid var(--pen) !important; }
.eff-oss {
border: 2px dashed var(--pen) !important;
border-radius: var(--r2) !important;
box-shadow: 2px 3px 0 var(--pen-shadow);
}
.eff-oss[aria-pressed="true"] { border-style: solid !important; }
.eff-count { border: 2px dashed var(--pen) !important; }
.leaderboard td { border-top: 2px dashed var(--edge-strong) !important; }
.rank-mark {
border: 2px solid var(--pen);
border-radius: 46% 54% 52% 48% / 48% 46% 54% 52%;
}
.badge { border: 2px dashed var(--pen) !important; border-radius: 999px !important; }
.chart-icon i, .chart-grid-line { filter: url(#pen-chart); }
#eff-plot circle, #eff-plot line, #eff-plot path, #eff-plot rect { filter: url(#pen-chart); }
.score-bars > li { filter: url(#pen-soft); }
.eff-tooltip {
border: 2px solid var(--pen) !important;
border-radius: var(--r2) !important;
box-shadow: 3px 4px 0 var(--pen-shadow), var(--shadow) !important;
}
[data-theme="dark"] #eff-plot { filter: invert(0.86) hue-rotate(180deg); }
[data-theme="dark"] .bar-logo { background: color-mix(in srgb, var(--model-color) 10%, #2f352a); }
/* dark patches for the original page's hardcoded light colors */
[data-theme="dark"] th { background: #2f352a; }
[data-theme="dark"] tbody tr:nth-child(odd) { background: var(--panel-strong); }
[data-theme="dark"] tbody tr:nth-child(even) { background: #282e23; }
[data-theme="dark"] tbody tr:first-child { background: #2b3729; }
[data-theme="dark"] tbody tr:hover { background: #35402e; }
[data-theme="dark"] .button { background: rgba(43, 49, 38, 0.72); }
[data-theme="dark"] .metric-switcher,
[data-theme="dark"] .view-seg { background: #1f231c; }
[data-theme="dark"] .score-chart-foot,
[data-theme="dark"] .eff-foot { background: var(--panel); }
[data-theme="dark"] .logo-wrap { background: #2f352a; }
[data-theme="dark"] .rank-mark { background: #3a4033; }
[data-theme="dark"] .eff-tab:hover { background: rgba(233, 229, 215, 0.08); }
[data-theme="dark"] .chart-error,
[data-theme="dark"] .chart-noscript { background: #3a2a26; color: #d8a79f; }
.theme-fab {
position: fixed;
right: 22px;
bottom: 22px;
z-index: 400;
min-height: 50px;
padding: 13px 22px;
border: 2px solid var(--pen);
border-radius: var(--r3);
color: #fff;
background: var(--primary);
font: inherit;
font-size: 16px;
font-weight: 750;
letter-spacing: 0.01em;
box-shadow: 3px 4px 0 var(--pen-shadow), 0 10px 26px rgba(0, 0, 0, 0.28);
transform: rotate(-1.5deg);
cursor: pointer;
}
.theme-fab:hover, .theme-fab:focus-visible {
background: var(--primary-dark);
transform: rotate(-1.5deg) translateY(-1px);
}
/* OpenRouter thumbnail + modal (same chart as llm-api-pricing.html) */
.or-thumb {
position: fixed;
left: 12px;
bottom: 12px;
z-index: 400;
width: 136px;
overflow: hidden;
background: var(--panel-strong);
border: 2px solid var(--pen);
border-radius: var(--r2);
box-shadow: 3px 4px 0 var(--pen-shadow), var(--shadow);
transform: rotate(-1.2deg);
cursor: pointer;
transition: transform 280ms cubic-bezier(0.22, 1, 0.36, 1), opacity 280ms ease, box-shadow 280ms ease;
}
.or-thumb:hover, .or-thumb:focus-visible {
transform: rotate(0deg) translateY(-3px);
box-shadow: 4px 6px 0 var(--pen-shadow), var(--shadow);
outline: none;
}
.or-thumb.away {
opacity: 0;
transform: scale(0.9) rotate(-1.2deg);
pointer-events: none;
}
.or-thumb-title {
padding: 5px 7px 0;
color: var(--primary-dark);
font-size: 7px;
font-weight: 750;
letter-spacing: 0.05em;
text-transform: uppercase;
}
#or-thumb-svg { display: block; width: 100%; height: auto; }
.or-cta {
padding: 1px 7px 6px;
color: var(--ink-faint);
font-family: var(--mono);
font-size: 7px;
}
.or-backdrop {
position: fixed;
inset: 0;
z-index: 800;
background: rgba(59, 69, 56, 0.32);
backdrop-filter: blur(2px);
opacity: 0;
transition: opacity 320ms ease;
}
.or-backdrop.show { opacity: 1; }
.or-modal {
position: fixed;
left: 22px;
bottom: 22px;
z-index: 900;
width: min(1020px, calc(100vw - 44px));
}
.or-panel {
overflow: hidden;
background: var(--panel-strong);
border: 2px solid var(--pen);
border-radius: var(--r1);
box-shadow: 4px 5px 0 var(--pen-shadow), var(--shadow);
opacity: 0;
transform: scale(0.32) translateY(60px) rotate(-2deg);
transform-origin: left bottom;
transition: transform 480ms cubic-bezier(0.22, 1, 0.36, 1), opacity 300ms ease;
}
.or-modal.show .or-panel {
opacity: 1;
transform: scale(1) translateY(0) rotate(0deg);
}
.or-head {
display: flex;
align-items: center;
gap: 14px;
padding: 16px 18px 6px;
}
.or-kicker {
margin: 0;
color: var(--primary);
font-size: 11px;
font-weight: 800;
letter-spacing: 0.09em;
text-transform: uppercase;
}
.or-title {
margin: 2px 0 0;
font-family: Georgia, "Times New Roman", serif;
font-size: 22px;
font-weight: 650;
letter-spacing: -0.02em;
}
.or-switch {
display: inline-flex;
gap: 2px;
margin-left: auto;
padding: 3px;
border: 2px solid var(--pen);
border-radius: 999px;
background: var(--panel);
box-shadow: 2px 3px 0 var(--pen-shadow);
}
.or-io {
min-width: 56px;
padding: 4px 14px;
border: 0;
border-radius: 999px;
color: var(--ink-soft);
background: transparent;
font: inherit;
font-size: 14px;
font-weight: 750;
cursor: pointer;
}
.or-io[aria-selected="true"] { color: #fff; background: var(--primary); }
.or-close {
width: 32px;
height: 32px;
flex: 0 0 auto;
border: 2px solid var(--pen);
border-radius: 46% 54% 52% 48% / 48% 46% 54% 52%;
color: var(--ink);
background: transparent;
font-size: 19px;
line-height: 1;
cursor: pointer;
transition: background 140ms ease;
}
.or-close:hover { background: var(--primary-soft); }
#or-chart { display: block; width: 100%; height: auto; }
.or-note {
margin: 2px 18px 14px;
color: var(--ink-faint);
font-size: 12.5px;
}
</style>
</head>
<body>
<main class="page">
<header class="hero">
<div>
<div class="brand">
<div class="brand-mark" aria-hidden="true">A</div>
<div>
<p class="eyebrow">AutoMedBench Lite</p>
<h1>Leaderboard</h1>
</div>
</div>
<p class="subtitle">Average model performance across all seven released Lite tracks.</p>
</div>
<nav class="actions" aria-label="Related links">
<a class="button" href="https://huggingface.co/datasets/MitakaKuma/AutoMedBench-Lite-release" target="_blank" rel="noreferrer">Dataset</a>
<a class="button" href="https://automedbench.github.io/" target="_blank" rel="noreferrer">Project</a>
</nav>
</header>
<section class="score-chart" data-score-chart data-active-metric="overall" aria-labelledby="score-chart-title">
<div data-view-panel="performance">
<div class="score-chart-head">
<div class="score-chart-copy">
<p class="score-chart-kicker">7-track average</p>
<h2 id="score-chart-title">Model score comparison</h2>
<p class="score-chart-subtitle" id="score-chart-description">Compare every model on the same 0–100 scale. Model-colored columns are generated directly from the leaderboard values below.</p>
</div>
<div class="metric-switcher" role="group" aria-label="Chart metric">
<button class="metric-button" type="button" data-metric="overall" aria-pressed="true">Overall</button>
<button class="metric-button" type="button" data-metric="agentic" aria-pressed="false">Agentic</button>
<button class="metric-button" type="button" data-metric="task" aria-pressed="false">Task</button>
</div>
</div>
<div class="score-chart-body">
<div class="column-chart-scroll" data-chart-scroll tabindex="0" aria-label="Model score column chart">
<div class="column-chart-frame" data-column-chart style="--model-count: 1">
<span class="chart-y-title" aria-hidden="true">Score</span>
<span class="chart-y-axis" aria-hidden="true"><span>100</span><span>75</span><span>50</span><span>25</span><span>0</span></span>
<span class="chart-grid" aria-hidden="true"><i class="chart-grid-line"></i><i class="chart-grid-line"></i><i class="chart-grid-line"></i><i class="chart-grid-line"></i><i class="chart-grid-line"></i></span>
<ol class="score-bars" data-score-bars aria-describedby="score-chart-description"></ol>
<span class="chart-x-title" aria-hidden="true">Model</span>
</div>
</div>
<p class="chart-scroll-hint" data-chart-scroll-hint hidden>Scroll horizontally to compare every model.</p>
<p class="sr-only" data-chart-status aria-live="polite"></p>
<noscript><p class="chart-noscript">The interactive chart requires JavaScript. The complete scores remain available in the leaderboard table below.</p></noscript>
</div>
<div class="score-chart-foot">
<span data-chart-caption><strong>Overall</strong> = 1/2 Agentic + 1/2 Task</span>
<span class="chart-scale-note">Muted model colors · Higher is better · 0–100</span>
</div>
</div>
<div data-view-panel="efficiency" hidden>
<div class="eff-tabbar" role="tablist" aria-label="Efficiency metric">
<button class="eff-tab" role="tab" data-eff-metric="cost" aria-selected="true"><small>Overall vs.</small>Cost per Task</button>
<button class="eff-tab" role="tab" data-eff-metric="time" aria-selected="false"><small>Overall vs.</small>Time per Task</button>
<button class="eff-tab" role="tab" data-eff-metric="tokens" aria-selected="false"><small>Overall vs.</small>Tokens per Task</button>
<button class="eff-tab" role="tab" data-eff-metric="turns" aria-selected="false"><small>Overall vs.</small>Turns per Task</button>
</div>
<div class="eff-head">
<div class="eff-copy">
<p class="score-chart-kicker">7-track average</p>
<h2 class="eff-title" id="eff-title">Overall score vs. Cost per Task</h2>
<p class="eff-subtitle" id="eff-subtitle"></p>
</div>
<div class="eff-controls">
<span class="eff-count" id="eff-count">28 of 28 models</span>
<button class="eff-oss" id="eff-oss" type="button" aria-pressed="false" title="Show only open-weight models"><span class="glyph">&lt;/&gt;</span>Open Source Only</button>
</div>
</div>
<div class="eff-legend" id="eff-legend">
<span class="eff-legend-item"><i class="eff-swatch-quad" aria-hidden="true"></i>Most attractive quadrant</span>
<span class="eff-legend-item"><i class="eff-swatch-pareto" aria-hidden="true"></i>Pareto line</span>
<span class="eff-legend-sep" aria-hidden="true"></span>
</div>
<div class="eff-plot-wrap">
<svg id="eff-plot" viewBox="0 0 1120 440" role="img" aria-label="Scatter plot of overall score against per-task efficiency metric"></svg>
<div class="eff-tooltip" id="eff-tooltip" hidden></div>
</div>
<div class="eff-foot">
<p class="eff-note" id="eff-note"></p>
</div>
</div>
<div class="view-switcher">
<div class="view-seg" role="group" aria-label="Chart view" data-active="performance">
<span class="view-thumb" aria-hidden="true"></span>
<button class="view-button" type="button" data-view="performance" aria-pressed="true">Performance</button>
<button class="view-button" type="button" data-view="efficiency" aria-pressed="false">Efficiency</button>
</div>
</div>
</section>
<section class="leaderboard" aria-labelledby="leaderboard-title">
<div class="leaderboard-head">
<div class="leaderboard-title">
<span class="chart-icon" aria-hidden="true"><i></i><i></i><i></i></span>
<span id="leaderboard-title">Leaderboard</span>
<span class="badge">7-track average</span>
</div>
<div class="formula"><strong>Overall</strong> = 1/2 Agentic + 1/2 Task</div>
</div>
<div class="table-scroll">
<table>
<thead>
<tr>
<th class="rank" scope="col">Rank</th>
<th class="model" scope="col">Model</th>
<th class="parameter" scope="col">Parameter size</th>
<th class="release" scope="col">Release</th>
<th class="score" scope="col">Overall</th>
<th class="score" scope="col">Agentic</th>
<th class="score" scope="col">Task</th>
<th class="operational" scope="col">Avg cost</th>
<th class="operational" scope="col">Avg time</th>
<th class="operational" scope="col">Avg turns</th>
</tr>
</thead>
<tbody>
<tr>
<td class="rank"><span class="rank-mark">1</span></td>
<td class="model">
<div class="model-cell">
<span class="logo-wrap"><img class="company-logo" src="assets/anthropic.svg" alt="Anthropic logo"></span>
<span class="model-copy"><span class="model-name">Claude Opus 4.8</span><span class="provider">Anthropic</span></span>
</div>
</td>
<td class="parameter"><code class="free-cost">undisclosed</code></td>
<td class="release"><a class="release-link" href="https://www.anthropic.com/news/claude-opus-4-8" target="_blank" rel="noreferrer">2026-05-28</a></td>
<td class="score overall">81.94</td>
<td class="score">88.10</td>
<td class="score">75.77</td>
<td class="operational" title="Price source: OpenRouter">$2.14</td>
<td class="operational">14.5 min</td>
<td class="operational">18.7</td>
</tr>
<tr>
<td class="rank"><span class="rank-mark">2</span></td>
<td class="model">
<div class="model-cell">
<span class="logo-wrap"><img class="company-logo" src="assets/anthropic.svg" alt="Anthropic logo"></span>
<span class="model-copy"><span class="model-name">Claude Opus 4.6</span><span class="provider">Anthropic</span></span>
</div>
</td>
<td class="parameter"><code class="free-cost">undisclosed</code></td>
<td class="release"><a class="release-link" href="https://www.anthropic.com/news/claude-opus-4-6" target="_blank" rel="noreferrer">2026-02-05</a></td>
<td class="score overall">77.23</td>
<td class="score">89.10</td>
<td class="score">65.36</td>
<td class="operational" title="Price source: OpenRouter">$6.57</td>
<td class="operational">18.2 min</td>
<td class="operational">18.3</td>
</tr>
<tr>
<td class="rank"><span class="rank-mark">3</span></td>
<td class="model">
<div class="model-cell">
<span class="logo-wrap"><img class="company-logo" src="assets/gemini.svg" alt="Google Gemini logo"></span>
<span class="model-copy"><span class="model-name">Gemini 3.1 Pro</span><span class="provider">Google</span></span>
</div>
</td>
<td class="parameter"><code class="free-cost">undisclosed</code></td>
<td class="release"><a class="release-link" href="https://blog.google/innovation-and-ai/models-and-research/gemini-models/gemini-3-1-pro/" target="_blank" rel="noreferrer">2026-02-19</a></td>
<td class="score overall">75.21</td>
<td class="score">83.49</td>
<td class="score">66.93</td>
<td class="operational" title="Price source: OpenRouter">$3.85</td>
<td class="operational">18.0 min</td>
<td class="operational">18.1</td>
</tr>
<tr>
<td class="rank"><span class="rank-mark">4</span></td>
<td class="model">
<div class="model-cell">
<span class="logo-wrap"><img class="company-logo" src="assets/openai.svg" alt="OpenAI logo"></span>
<span class="model-copy"><span class="model-name">GPT-5.6 Sol</span><span class="provider">OpenAI</span></span>
</div>
</td>
<td class="parameter"><code class="free-cost">undisclosed</code></td>
<td class="release"><a class="release-link" href="https://openai.com/index/gpt-5-6/" target="_blank" rel="noreferrer">2026-07-09</a></td>
<td class="score overall">75.05</td>
<td class="score">80.09</td>
<td class="score">70.01</td>
<td class="operational" title="Price source: OpenRouter">$0.95</td>
<td class="operational">10.8 min</td>
<td class="operational">11.7</td>
</tr>
<tr>
<td class="rank"><span class="rank-mark">5</span></td>
<td class="model">
<div class="model-cell">
<span class="logo-wrap"><img class="company-logo" src="assets/anthropic.svg" alt="Anthropic logo"></span>
<span class="model-copy"><span class="model-name">Claude Sonnet 5</span><span class="provider">Anthropic</span></span>
</div>
</td>
<td class="parameter"><code class="free-cost">undisclosed</code></td>
<td class="release"><a class="release-link" href="https://www.anthropic.com/news/claude-sonnet-5" target="_blank" rel="noreferrer">2026-06-30</a></td>
<td class="score overall">75.04</td>
<td class="score">80.53</td>
<td class="score">69.53</td>
<td class="operational" title="Price source: OpenRouter">$2.29</td>
<td class="operational">15.1 min</td>
<td class="operational">30.5</td>
</tr>
<tr>
<td class="rank"><span class="rank-mark">6</span></td>
<td class="model">
<div class="model-cell">
<span class="logo-wrap"><img class="company-logo" src="assets/openai.svg" alt="OpenAI logo"></span>
<span class="model-copy"><span class="model-name">GPT-5.5</span><span class="provider">OpenAI</span></span>
</div>
</td>
<td class="parameter"><code class="free-cost">undisclosed</code></td>
<td class="release"><a class="release-link" href="https://openai.com/index/introducing-gpt-5-5/" target="_blank" rel="noreferrer">2026-04-23</a></td>
<td class="score overall">74.14</td>
<td class="score">85.38</td>
<td class="score">62.90</td>
<td class="operational" title="Price source: OpenRouter">$1.90</td>
<td class="operational">20.5 min</td>
<td class="operational">15.4</td>
</tr>
<tr>
<td class="rank"><span class="rank-mark">7</span></td>
<td class="model">
<div class="model-cell">
<span class="logo-wrap"><img class="company-logo" src="assets/zai.svg" alt="Z.ai logo"></span>
<span class="model-copy"><span class="model-name">GLM-5</span><span class="provider">Z.ai</span></span>
</div>
</td>
<td class="parameter">744B</td>
<td class="release"><a class="release-link" href="https://z.ai/blog/glm-5?id=GLM5" target="_blank" rel="noreferrer">2026-02-12</a></td>
<td class="score overall">72.86</td>
<td class="score">89.35</td>
<td class="score">56.38</td>
<td class="operational" title="Price source: OpenRouter">$1.29</td>
<td class="operational">17.8 min</td>
<td class="operational">31.3</td>
</tr>
<tr>
<td class="rank"><span class="rank-mark">8</span></td>
<td class="model">
<div class="model-cell">
<span class="logo-wrap"><img class="company-logo" src="assets/deepseek.svg" alt="DeepSeek logo"></span>
<span class="model-copy"><span class="model-name">DeepSeek V4 Pro</span><span class="provider">DeepSeek</span></span>
</div>
</td>
<td class="parameter">1.6T</td>
<td class="release"><a class="release-link" href="https://api-docs.deepseek.com/news/news260424/" target="_blank" rel="noreferrer">2026-04-24</a></td>
<td class="score overall">72.43</td>
<td class="score">81.34</td>
<td class="score">63.51</td>
<td class="operational" title="Price source: OpenRouter">$0.30</td>
<td class="operational">18.3 min</td>
<td class="operational">24.6</td>
</tr>
<tr>
<td class="rank"><span class="rank-mark">9</span></td>
<td class="model">
<div class="model-cell">
<span class="logo-wrap"><img class="company-logo" src="assets/qwen.svg" alt="Qwen logo"></span>
<span class="model-copy"><span class="model-name">Qwen3.5-397B</span><span class="provider">Alibaba Cloud</span></span>
</div>
</td>
<td class="parameter">397B</td>
<td class="release"><a class="release-link" href="https://qwen.ai/blog?id=qwen3.5" target="_blank" rel="noreferrer">2026-02-15</a></td>
<td class="score overall">69.87</td>
<td class="score">80.46</td>
<td class="score">59.27</td>
<td class="operational" title="Price source: OpenRouter">$1.01</td>
<td class="operational">20.8 min</td>
<td class="operational">25.1</td>
</tr>
<tr>
<td class="rank"><span class="rank-mark">10</span></td>
<td class="model">
<div class="model-cell">
<span class="logo-wrap"><img class="company-logo" src="assets/openai.svg" alt="OpenAI logo"></span>
<span class="model-copy"><span class="model-name">GPT-5.6 Terra</span><span class="provider">OpenAI</span></span>
</div>
</td>
<td class="parameter"><code class="free-cost">undisclosed</code></td>
<td class="release"><a class="release-link" href="https://openai.com/index/gpt-5-6/" target="_blank" rel="noreferrer">2026-07-09</a></td>
<td class="score overall">68.29</td>
<td class="score">74.05</td>
<td class="score">62.53</td>
<td class="operational" title="Price source: OpenRouter">$0.45</td>
<td class="operational">10.7 min</td>
<td class="operational">10.2</td>
</tr>
<tr>
<td class="rank"><span class="rank-mark">11</span></td>
<td class="model">
<div class="model-cell">
<span class="logo-wrap"><img class="company-logo" src="assets/minimax.svg" alt="MiniMax logo"></span>
<span class="model-copy"><span class="model-name">MiniMax M2.5</span><span class="provider">MiniMax</span></span>
</div>
</td>
<td class="parameter">230B</td>
<td class="release"><a class="release-link" href="https://www.minimax.io/news/minimax-m25" target="_blank" rel="noreferrer">2026-02-12</a></td>
<td class="score overall">66.31</td>
<td class="score">77.71</td>
<td class="score">54.91</td>
<td class="operational" title="Price source: OpenRouter">$1.36</td>
<td class="operational">20.6 min</td>
<td class="operational">28.5</td>
</tr>
<tr>
<td class="rank"><span class="rank-mark">12</span></td>
<td class="model">
<div class="model-cell">
<span class="logo-wrap"><img class="company-logo" src="assets/openai.svg" alt="OpenAI logo"></span>
<span class="model-copy"><span class="model-name">GPT-5.4</span><span class="provider">OpenAI</span></span>
</div>
</td>
<td class="parameter"><code class="free-cost">undisclosed</code></td>
<td class="release"><a class="release-link" href="https://openai.com/index/introducing-gpt-5-4/" target="_blank" rel="noreferrer">2026-03-05</a></td>
<td class="score overall">66.09</td>
<td class="score">76.76</td>
<td class="score">55.43</td>
<td class="operational" title="Price source: OpenRouter">$2.36</td>
<td class="operational">16.7 min</td>
<td class="operational">10.4</td>
</tr>
<tr>
<td class="rank"><span class="rank-mark">13</span></td>
<td class="model">
<div class="model-cell">
<span class="logo-wrap"><img class="company-logo" src="assets/qwen.svg" alt="Qwen logo"></span>
<span class="model-copy"><span class="model-name">Qwen3.6-27B</span><span class="provider">Alibaba Cloud</span></span>
</div>
</td>
<td class="parameter">27B</td>
<td class="release"><a class="release-link" href="https://huggingface.co/Qwen/Qwen3.6-27B" target="_blank" rel="noreferrer">2026-04-21</a></td>
<td class="score overall">65.29</td>
<td class="score">73.27</td>
<td class="score">57.30</td>
<td class="operational"><code class="free-cost">free</code></td>
<td class="operational">23.0 min</td>
<td class="operational">32.0</td>
</tr>
<tr>
<td class="rank"><span class="rank-mark">14</span></td>
<td class="model">
<div class="model-cell">
<span class="logo-wrap"><img class="company-logo" src="assets/openai.svg" alt="OpenAI logo"></span>
<span class="model-copy"><span class="model-name">GPT-5.6 Luna</span><span class="provider">OpenAI</span></span>
</div>
</td>
<td class="parameter"><code class="free-cost">undisclosed</code></td>
<td class="release"><a class="release-link" href="https://openai.com/index/gpt-5-6/" target="_blank" rel="noreferrer">2026-07-09</a></td>
<td class="score overall">63.98</td>
<td class="score">70.77</td>
<td class="score">57.20</td>
<td class="operational" title="Price source: OpenRouter">$0.21</td>
<td class="operational">8.9 min</td>
<td class="operational">13.4</td>
</tr>
<tr>
<td class="rank"><span class="rank-mark">15</span></td>
<td class="model">
<div class="model-cell">
<span class="logo-wrap"><img class="company-logo" src="assets/qwen.svg" alt="Qwen logo"></span>
<span class="model-copy"><span class="model-name">Qwen3.5-35B-A3B</span><span class="provider">Alibaba Cloud</span></span>
</div>
</td>
<td class="parameter">35B</td>
<td class="release"><a class="release-link" href="https://huggingface.co/Qwen/Qwen3.5-35B-A3B" target="_blank" rel="noreferrer">2026-02-24</a></td>
<td class="score overall">57.94</td>
<td class="score">68.91</td>
<td class="score">46.97</td>
<td class="operational"><code class="free-cost">free</code></td>
<td class="operational">28.4 min</td>
<td class="operational">30.5</td>
</tr>
<tr>
<td class="rank"><span class="rank-mark">16</span></td>
<td class="model">
<div class="model-cell">
<span class="logo-wrap"><img class="company-logo" src="assets/zai.svg" alt="Z.ai logo"></span>
<span class="model-copy"><span class="model-name">GLM-5.2</span><span class="provider">Z.ai</span></span>
</div>
</td>
<td class="parameter">753B</td>
<td class="release"><a class="release-link" href="https://z.ai/blog/glm-5.2" target="_blank" rel="noreferrer">2026-06-16</a></td>
<td class="score overall">56.32</td>
<td class="score">64.39</td>
<td class="score">48.24</td>
<td class="operational" title="Price source: OpenRouter">$0.73</td>
<td class="operational">15.7 min</td>
<td class="operational">28.6</td>
</tr>
<tr>
<td class="rank"><span class="rank-mark">17</span></td>
<td class="model">
<div class="model-cell">
<span class="logo-wrap"><img class="company-logo" src="assets/nvidia.svg" alt="NVIDIA logo"></span>
<span class="model-copy"><span class="model-name">Nemotron 3.5 Lightning 30B-A3B</span><span class="provider">NVIDIA</span></span>
</div>
</td>
<td class="parameter">30B</td>
<td class="release"><a class="release-link" href="https://huggingface.co/nvidia/NVIDIA-Nemotron-3.5-Lightning-30B-A3B-NVFP4" target="_blank" rel="noreferrer">2026-08-11</a></td>
<td class="score overall">39.65</td>
<td class="score">46.93</td>
<td class="score">32.38</td>
<td class="operational" title="Price source: OpenRouter">$0.09</td>
<td class="operational">14.3 min</td>
<td class="operational">42.5</td>
</tr>
<tr>
<td class="rank"><span class="rank-mark">18</span></td>
<td class="model">
<div class="model-cell">
<span class="logo-wrap"><img class="company-logo" src="assets/google.svg" alt="Google logo"></span>
<span class="model-copy"><span class="model-name">Gemma 4 26B-A4B</span><span class="provider">Google</span></span>
</div>
</td>
<td class="parameter">26B</td>
<td class="release"><a class="release-link" href="https://huggingface.co/google/gemma-4-26B-A4B-it" target="_blank" rel="noreferrer">2026-03-11</a></td>
<td class="score overall">33.89</td>
<td class="score">39.63</td>
<td class="score">33.97</td>
<td class="operational" title="Price source: OpenRouter">$0.05</td>
<td class="operational">17.3 min</td>
<td class="operational">14.8</td>
</tr>
<tr>
<td class="rank"><span class="rank-mark">19</span></td>
<td class="model">
<div class="model-cell">
<span class="logo-wrap"><img class="company-logo" src="assets/google.svg" alt="Google logo"></span>
<span class="model-copy"><span class="model-name">Gemma 4 31B</span><span class="provider">Google</span></span>
</div>
</td>
<td class="parameter">31B</td>
<td class="release"><a class="release-link" href="https://huggingface.co/google/gemma-4-31B-it" target="_blank" rel="noreferrer">2026-03-11</a></td>
<td class="score overall">30.43</td>
<td class="score">35.14</td>
<td class="score">31.79</td>
<td class="operational" title="Price source: OpenRouter">$0.02</td>
<td class="operational">27.9 min</td>
<td class="operational">8.1</td>
</tr>
<tr>
<td class="rank"><span class="rank-mark">20</span></td>
<td class="model">
<div class="model-cell">
<span class="logo-wrap"><img class="company-logo" src="assets/openai.svg" alt="OpenAI logo"></span>
<span class="model-copy"><span class="model-name">GPT-OSS-120B</span><span class="provider">OpenAI</span></span>
</div>
</td>
<td class="parameter">117B</td>
<td class="release"><a class="release-link" href="https://openai.com/index/introducing-gpt-oss/" target="_blank" rel="noreferrer">2025-08-05</a></td>
<td class="score overall">24.33</td>
<td class="score">35.35</td>
<td class="score">13.31</td>
<td class="operational" title="Price source: OpenRouter">$0.00</td>
<td class="operational">4.4 min</td>
<td class="operational">9.4</td>
</tr>
<tr>
<td class="rank"><span class="rank-mark">21</span></td>
<td class="model">
<div class="model-cell">
<span class="logo-wrap"><img class="company-logo" src="assets/google.svg" alt="Google logo"></span>
<span class="model-copy"><span class="model-name">Gemma 4 12B</span><span class="provider">Google</span></span>
</div>
</td>
<td class="parameter">12B</td>
<td class="release"><a class="release-link" href="https://huggingface.co/google/gemma-4-12B-it" target="_blank" rel="noreferrer">2026-05-23</a></td>
<td class="score overall">22.43</td>
<td class="score">20.19</td>
<td class="score">36.78</td>
<td class="operational" title="Price source: OpenRouter">$0.02</td>
<td class="operational">24.0 min</td>
<td class="operational">17.1</td>
</tr>
<tr>
<td class="rank"><span class="rank-mark">22</span></td>
<td class="model">
<div class="model-cell">
<span class="logo-wrap"><img class="company-logo" src="assets/google.svg" alt="Google logo"></span>
<span class="model-copy"><span class="model-name">Gemma 4 E4B</span><span class="provider">Google</span></span>
</div>
</td>
<td class="parameter">8B</td>
<td class="release"><a class="release-link" href="https://huggingface.co/google/gemma-4-E4B-it" target="_blank" rel="noreferrer">2026-03-02</a></td>
<td class="score overall">21.94</td>
<td class="score">26.17</td>
<td class="score">19.61</td>
<td class="operational" title="Price source: OpenRouter">$0.01</td>
<td class="operational">7.4 min</td>
<td class="operational">6.8</td>
</tr>
<tr>
<td class="rank"><span class="rank-mark">23</span></td>
<td class="model">
<div class="model-cell">
<span class="logo-wrap"><img class="company-logo" src="assets/qwen.svg" alt="Qwen logo"></span>
<span class="model-copy"><span class="model-name">Qwen3.5-9B</span><span class="provider">Alibaba Cloud</span></span>
</div>
</td>
<td class="parameter">9B</td>
<td class="release"><a class="release-link" href="https://huggingface.co/Qwen/Qwen3.5-9B" target="_blank" rel="noreferrer">2026-02-27</a></td>
<td class="score overall">19.87</td>
<td class="score">11.33</td>
<td class="score">28.41</td>
<td class="operational"><code class="free-cost">free</code></td>
<td class="operational">19.3 min</td>
<td class="operational">52.4</td>
</tr>
<tr>
<td class="rank"><span class="rank-mark">24</span></td>
<td class="model">
<div class="model-cell">
<span class="logo-wrap"><img class="company-logo" src="assets/nvidia.svg" alt="NVIDIA logo"></span>
<span class="model-copy"><span class="model-name">Nemotron Nano 9B v2</span><span class="provider">NVIDIA</span></span>
</div>
</td>
<td class="parameter">9B</td>
<td class="release"><a class="release-link" href="https://huggingface.co/nvidia/NVIDIA-Nemotron-Nano-9B-v2" target="_blank" rel="noreferrer">2025-08-18</a></td>
<td class="score overall">18.68</td>
<td class="score">24.52</td>
<td class="score">12.84</td>
<td class="operational"><code class="free-cost">free</code></td>
<td class="operational">12.0 min</td>
<td class="operational">22.8</td>
</tr>
<tr>
<td class="rank"><span class="rank-mark">25</span></td>
<td class="model">
<div class="model-cell">
<span class="logo-wrap"><img class="company-logo" src="assets/nvidia.svg" alt="NVIDIA logo"></span>
<span class="model-copy"><span class="model-name">Nemotron 3 Nano 30B-A3B</span><span class="provider">NVIDIA</span></span>
</div>
</td>
<td class="parameter">30B</td>
<td class="release"><a class="release-link" href="https://huggingface.co/nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B-BF16" target="_blank" rel="noreferrer">2025-12-04</a></td>
<td class="score overall">18.01</td>
<td class="score">25.54</td>
<td class="score">13.46</td>
<td class="operational" title="Price source: OpenRouter">$0.02</td>
<td class="operational">2.5 min</td>
<td class="operational">16.3</td>
</tr>
<tr>
<td class="rank"><span class="rank-mark">26</span></td>
<td class="model">
<div class="model-cell">
<span class="logo-wrap"><img class="company-logo" src="assets/openai.svg" alt="OpenAI logo"></span>
<span class="model-copy"><span class="model-name">GPT-OSS-20B</span><span class="provider">OpenAI</span></span>
</div>
</td>
<td class="parameter">21B</td>
<td class="release"><a class="release-link" href="https://openai.com/index/introducing-gpt-oss/" target="_blank" rel="noreferrer">2025-08-05</a></td>
<td class="score overall">17.63</td>
<td class="score">25.33</td>
<td class="score">9.93</td>
<td class="operational" title="Price source: OpenRouter">$0.00</td>
<td class="operational">2.7 min</td>
<td class="operational">5.1</td>
</tr>
<tr>
<td class="rank"><span class="rank-mark">27</span></td>
<td class="model">
<div class="model-cell">
<span class="logo-wrap"><img class="company-logo" src="assets/nvidia.svg" alt="NVIDIA logo"></span>
<span class="model-copy"><span class="model-name">Nemotron 3 Nano 4B</span><span class="provider">NVIDIA</span></span>
</div>
</td>
<td class="parameter">4B</td>
<td class="release"><a class="release-link" href="https://huggingface.co/nvidia/NVIDIA-Nemotron-3-Nano-4B-BF16" target="_blank" rel="noreferrer">2026-03-07</a></td>
<td class="score overall">9.06</td>
<td class="score">18.12</td>
<td class="score">0.00</td>
<td class="operational" title="Price source: OpenRouter">$0.01</td>
<td class="operational">5.9 min</td>
<td class="operational">9.7</td>
</tr>
<tr>
<td class="rank"><span class="rank-mark">28</span></td>
<td class="model">
<div class="model-cell">
<span class="logo-wrap"><img class="company-logo" src="assets/google.svg" alt="Google logo"></span>
<span class="model-copy"><span class="model-name">Gemma 4 E2B</span><span class="provider">Google</span></span>
</div>
</td>
<td class="parameter">2B</td>
<td class="release"><a class="release-link" href="https://huggingface.co/google/gemma-4-E2B-it" target="_blank" rel="noreferrer">2026-03-02</a></td>
<td class="score overall">9.02</td>
<td class="score">18.04</td>
<td class="score">0.00</td>
<td class="operational" title="Price source: OpenRouter">$0.02</td>
<td class="operational">4.3 min</td>
<td class="operational">18.9</td>
</tr>
<tr>
<td class="rank"><span class="rank-mark">29</span></td>
<td class="model">
<div class="model-cell">
<span class="logo-wrap"><img class="company-logo" src="assets/mistral.svg" alt="Mistral AI logo"></span>
<span class="model-copy"><span class="model-name">Mistral 7B Instruct v0.3</span><span class="provider">Mistral AI</span></span>
</div>
</td>
<td class="parameter">7B</td>
<td class="release"><a class="release-link" href="https://huggingface.co/mistralai/Mistral-7B-Instruct-v0.3" target="_blank" rel="noreferrer">2024-05-22</a></td>
<td class="score overall">6.80</td>
<td class="score">13.50</td>
<td class="score">0.00</td>
<td class="operational">$0.00</td>
<td class="operational">1.5 min</td>
<td class="operational">2.7</td>
</tr>
<tr>
<td class="rank"><span class="rank-mark">30</span></td>
<td class="model">
<div class="model-cell">
<span class="logo-wrap"><img class="company-logo" src="assets/qwen.svg" alt="Qwen logo"></span>
<span class="model-copy"><span class="model-name">Qwen3.5-4B</span><span class="provider">Alibaba Cloud</span></span>
</div>
</td>
<td class="parameter">4B</td>
<td class="release"><a class="release-link" href="https://huggingface.co/Qwen/Qwen3.5-4B" target="_blank" rel="noreferrer">2026-02-27</a></td>
<td class="score overall">6.05</td>
<td class="score">12.10</td>
<td class="score">0.00</td>
<td class="operational"><code class="free-cost">free</code></td>
<td class="operational">13.6 min</td>
<td class="operational">72.6</td>
</tr>
</tbody>
</table>
</div>
<footer class="leaderboard-foot">
<p class="tracks">Classification &middot; Synthesis &middot; Detection &middot; Segmentation &middot; VQA &middot; Report Generation &middot; Enhancement</p>
<a class="source" href="https://automedbench.github.io/" target="_blank" rel="noreferrer">Score source -&gt;</a>
</footer>
</section>
</main>
<script>
(() => {
const chart = document.querySelector("[data-score-chart]");
const table = document.querySelector(".leaderboard table");
if (!chart || !table) return;
const bars = chart.querySelector("[data-score-bars]");
const columnChart = chart.querySelector("[data-column-chart]");
const scroller = chart.querySelector("[data-chart-scroll]");
const scrollHint = chart.querySelector("[data-chart-scroll-hint]");
const status = chart.querySelector("[data-chart-status]");
const caption = chart.querySelector("[data-chart-caption]");
const buttons = Array.from(chart.querySelectorAll("[data-metric]"));
const metricLabels = {
overall: "Overall",
agentic: "Agentic",
task: "Task"
};
const metricCaptions = {
overall: "<strong>Overall</strong> = 1/2 Agentic + 1/2 Task",
agentic: "<strong>Agentic</strong> measures the Plan → Setup → Validate → Inference → Submit workflow",
task: "<strong>Task</strong> measures final benchmark output quality"
};
const modelColors = new Map([
["claude opus 4.8", "#b98272"],
["claude opus 4.6", "#c0917f"],
["claude sonnet 5", "#c9a08f"],
["gemini 3.1 pro", "#829b84"],
["gpt-5.6 sol", "#788b84"],
["gpt-5.5", "#87968f"],
["gpt-5.6 terra", "#96a29a"],
["gpt-5.4", "#8f9188"],
["chatgpt 5.4", "#8f9188"],
["gpt-5.6 luna", "#a2aaa3"],
["gpt-oss-120b", "#777f79"],
["glm-5", "#7d95a7"],
["glm-5.2", "#91a5b2"],
["deepseek v4 pro", "#858ca5"],
["qwen3.5-397b", "#b8896c"],
["qwen3.6-27b", "#bd9477"],
["qwen3.5-35b-a3b", "#c2a083"],
["qwen3.5-9b", "#aa8f7c"],
["qwen3.5-4b", "#9e8574"],
["qwen3.5", "#b47f62"],
["minimax m2.5", "#9d8794"]
]);
const familyPalette = [
{ match: /anthropic|claude/i, color: "#bd907d" },
{ match: /openai|chatgpt|gpt-/i, color: "#858e87" },
{ match: /google|gemini/i, color: "#8da28e" },
{ match: /z\.ai|glm-/i, color: "#8ca1af" },
{ match: /deepseek/i, color: "#8d93a8" },
{ match: /alibaba|qwen/i, color: "#b99a7c" },
{ match: /minimax/i, color: "#a18d99" }
];
const fallbackColors = ["#9a8fa2", "#899da0", "#a29b84", "#a78e86", "#8f99a6"];
const modelColor = (name, provider) => {
const exactColor = modelColors.get(name.toLowerCase());
if (exactColor) return exactColor;
const identity = `${name} ${provider}`;
const paletteMatch = familyPalette.find(({ match }) => match.test(identity));
if (paletteMatch) return paletteMatch.color;
const hash = Array.from(identity).reduce(
(total, character) => (total * 31 + character.charCodeAt(0)) >>> 0,
0
);
return fallbackColors[hash % fallbackColors.length];
};
const updateScrollState = () => {
const scrollable = scroller.scrollWidth > scroller.clientWidth + 1;
scrollHint.hidden = !scrollable;
scroller.setAttribute(
"aria-label",
scrollable
? "Model score column chart. Scroll horizontally to compare every model."
: "Model score column chart."
);
};
const showError = (message) => {
bars.replaceChildren();
const error = document.createElement("p");
error.className = "chart-error";
error.textContent = message;
bars.replaceWith(error);
};
try {
const headers = Array.from(table.querySelectorAll("thead th")).map((header) =>
header.textContent.trim().toLowerCase()
);
const indexes = Object.fromEntries(
Object.keys(metricLabels).map((metric) => [metric, headers.indexOf(metric)])
);
if (Object.values(indexes).some((index) => index < 0)) {
throw new Error("Required score columns were not found.");
}
const models = Array.from(table.querySelectorAll("tbody tr")).map((row, originalIndex) => {
const cells = Array.from(row.cells);
const name = row.querySelector(".model-name")?.textContent.trim();
const provider = row.querySelector(".provider")?.textContent.trim() || "Model provider";
const logo = row.querySelector(".company-logo");
if (!name || !logo) throw new Error("A leaderboard row is missing its model name or icon.");
const scores = Object.fromEntries(
Object.entries(indexes).map(([metric, index]) => {
const value = Number.parseFloat(cells[index]?.textContent.trim());
if (!Number.isFinite(value) || value < 0 || value > 100) {
throw new Error(`Invalid ${metric} score for ${name}.`);
}
return [metric, value];
})
);
return {
name,
provider,
logoSrc: logo.getAttribute("src"),
logoAlt: logo.getAttribute("alt") || "",
originalIndex,
color: modelColor(name, provider),
scores
};
});
if (!models.length) throw new Error("No leaderboard models were found.");
const render = (metric) => {
if (!metricLabels[metric]) return;
chart.dataset.activeMetric = metric;
buttons.forEach((button) => {
button.setAttribute("aria-pressed", String(button.dataset.metric === metric));
});
const ranked = [...models].sort(
(a, b) => b.scores[metric] - a.scores[metric] || a.originalIndex - b.originalIndex
);
const fragment = document.createDocumentFragment();
columnChart.style.setProperty("--model-count", ranked.length);
ranked.forEach((model, index) => {
const rank = index + 1;
const score = model.scores[metric];
const item = document.createElement("li");
item.className = "score-bar-row";
item.style.setProperty("--score", score.toFixed(2));
item.style.setProperty("--model-color", model.color);
item.dataset.modelColor = model.color;
item.title = `${model.name} · ${metricLabels[metric]} ${score.toFixed(2)}`;
item.setAttribute(
"aria-label",
`${rank}. ${model.name} by ${model.provider}, ${metricLabels[metric]} score ${score.toFixed(2)} out of 100`
);
const rankMark = document.createElement("span");
rankMark.className = "bar-rank";
rankMark.textContent = rank;
const columnSlot = document.createElement("span");
columnSlot.className = "bar-column-slot";
const stack = document.createElement("span");
stack.className = "bar-stack";
const fill = document.createElement("span");
fill.className = "bar-fill";
fill.setAttribute("aria-hidden", "true");
const value = document.createElement("span");
value.className = "bar-value";
value.textContent = score.toFixed(2);
stack.append(fill, value);
columnSlot.append(stack);
const modelCell = document.createElement("span");
modelCell.className = "bar-model";
const logoWrap = document.createElement("span");
logoWrap.className = "bar-logo";
logoWrap.setAttribute("aria-hidden", "true");
const logo = document.createElement("img");
logo.src = new URL(model.logoSrc, document.baseURI).href;
logo.alt = "";
logo.addEventListener("error", () => logo.classList.add("is-missing"), { once: true });
const modelCopy = document.createElement("span");
modelCopy.className = "bar-model-copy";
const modelName = document.createElement("span");
modelName.className = "bar-model-name";
modelName.textContent = model.name;
const provider = document.createElement("span");
provider.className = "bar-provider";
provider.textContent = model.provider;
logoWrap.append(logo);
modelCopy.append(modelName, provider);
modelCell.append(logoWrap, modelCopy);
item.append(rankMark, columnSlot, modelCell);
fragment.append(item);
});
bars.replaceChildren(fragment);
caption.innerHTML = metricCaptions[metric];
status.textContent = `Showing ${metricLabels[metric]} scores for ${models.length} models as model-colored vertical columns, ranked from highest to lowest.`;
requestAnimationFrame(updateScrollState);
};
buttons.forEach((button) => {
button.addEventListener("click", () => render(button.dataset.metric));
});
window.addEventListener("resize", updateScrollState);
render("overall");
} catch (error) {
showError(`The score chart could not be generated: ${error.message}`);
}
})();
</script>
<script>
(() => {
const MODELS = [
{ name: "Claude Opus 4.8", provider: "Anthropic", open: false, overall: 81.94, cost: 2.14, time: 14.5, turns: 18.7, slug: "anthropic/claude-opus-4.8", pin: 5, pout: 25 },
{ name: "Claude Opus 4.6", provider: "Anthropic", open: false, overall: 77.23, cost: 6.57, time: 18.2, turns: 18.3, slug: "anthropic/claude-opus-4.6", pin: 5, pout: 25 },
{ name: "Gemini 3.1 Pro", provider: "Google", open: false, overall: 75.21, cost: 3.85, time: 18.0, turns: 18.1, slug: "google/gemini-3.1-pro-preview", pin: 2, pout: 12 },
{ name: "GPT-5.6 Sol", provider: "OpenAI", open: false, overall: 75.05, cost: 0.95, time: 10.8, turns: 11.7, slug: "openai/gpt-5.6-sol", pin: 5, pout: 30 },
{ name: "Claude Sonnet 5", provider: "Anthropic", open: false, overall: 75.04, cost: 2.29, time: 15.1, turns: 30.5, slug: "anthropic/claude-sonnet-5", pin: 2, pout: 10 },
{ name: "GPT-5.5", provider: "OpenAI", open: false, overall: 74.14, cost: 1.90, time: 20.5, turns: 15.4, slug: "openai/gpt-5.5", pin: 5, pout: 30 },
{ name: "GLM-5", provider: "Z.ai", open: true, overall: 72.86, cost: 1.29, time: 17.8, turns: 31.3, slug: "z-ai/glm-5", pin: 0.95, pout: 2.55 },
{ name: "DeepSeek V4 Pro", provider: "DeepSeek", open: true, overall: 72.43, cost: 0.30, time: 18.3, turns: 24.6, slug: "deepseek/deepseek-v4-pro", pin: 0.435, pout: 0.87 },
{ name: "Qwen3.5-397B", provider: "Alibaba Cloud", open: true, overall: 69.87, cost: 1.01, time: 20.8, turns: 25.1, slug: "qwen/qwen3.5-397b-a17b", pin: 0.39, pout: 2.34 },
{ name: "GPT-5.6 Terra", provider: "OpenAI", open: false, overall: 68.29, cost: 0.45, time: 10.7, turns: 10.2, slug: "openai/gpt-5.6-terra", pin: 1, pout: 6 },
{ name: "MiniMax M2.5", provider: "MiniMax", open: true, overall: 66.31, cost: 1.36, time: 20.6, turns: 28.5, slug: "minimax/minimax-m2.5", pin: 0.15, pout: 0.9 },
{ name: "GPT-5.4", provider: "OpenAI", open: false, overall: 66.09, cost: 2.36, time: 16.7, turns: 10.4, slug: "openai/gpt-5.4", pin: 2.5, pout: 15 },
{ name: "Qwen3.6-27B", provider: "Alibaba Cloud", open: true, overall: 65.29, cost: 0, time: 23.0, turns: 32.0, slug: "qwen/qwen3.6-27b", pin: 0.3, pout: 2, local: true },
{ name: "GPT-5.6 Luna", provider: "OpenAI", open: false, overall: 63.98, cost: 0.21, time: 8.9, turns: 13.4, slug: "openai/gpt-5.6-luna", pin: 0.1, pout: 0.6 },
{ name: "Qwen3.5-35B-A3B", provider: "Alibaba Cloud", open: true, overall: 57.94, cost: 0, time: 28.4, turns: 30.5, slug: "qwen/qwen3.5-35b-a3b", pin: 0.14, pout: 1, local: true },
{ name: "GLM-5.2", provider: "Z.ai", open: true, overall: 56.32, cost: 0.73, time: 15.7, turns: 28.6, slug: "z-ai/glm-5.2", pin: 1.19, pout: 3.74 },
{ name: "Nemotron 3.5 Lightning 30B-A3B", provider: "NVIDIA", open: true, overall: 39.65, cost: 0.09, time: 14.3, turns: 42.5, slug: "nvidia/nemotron-3.5-lightning", pin: 0.1, pout: 0.25 },
{ name: "Gemma 4 26B-A4B", provider: "Google", open: true, overall: 33.89, cost: 0.04885072, time: 17.3, turns: 14.8, tokens: 384651, slug: "google/gemma-4-26b-a4b-it", pin: 0.12, pout: 0.40 },
{ name: "Gemma 4 31B", provider: "Google", open: true, overall: 30.43, cost: 0.01653110, time: 27.9, turns: 8.1, tokens: 154003, slug: "google/gemma-4-31b-it", pin: 0.10, pout: 0.34 },
{ name: "GPT-OSS-120B", provider: "OpenAI", open: true, overall: 24.33, cost: 0, time: 4.4, turns: 9.4, slug: "openai/gpt-oss-120b", pin: 0.037, pout: 0.17 },
{ name: "Gemma 4 12B", provider: "Google", open: true, overall: 22.43, cost: 0.0239965, time: 24.0, turns: 17.1, tokens: 455099, slug: null, pin: 0.05, pout: 0.15, proxy: true },
{ name: "Gemma 4 E4B", provider: "Google", open: true, overall: 21.94, cost: 0.007112, time: 7.4, turns: 6.8, tokens: 110196, slug: null, pin: 0.06, pout: 0.12, proxy: true },
{ name: "Qwen3.5-9B", provider: "Alibaba Cloud", open: true, overall: 19.87, cost: 0, time: 19.3, turns: 52.4, slug: "qwen/qwen3.5-9b", pin: 0.1, pout: 0.15, local: true },
{ name: "Nemotron Nano 9B v2", provider: "NVIDIA", open: true, overall: 18.68, cost: 0, time: 12.0, turns: 22.8, slug: "nvidia/nemotron-nano-9b-v2:free", pin: 0, pout: 0, local: true },
{ name: "Nemotron 3 Nano 30B-A3B", provider: "NVIDIA", open: true, overall: 18.01, cost: 0.01507026, time: 2.5, turns: 16.3, tokens: 249310, slug: "nvidia/nemotron-3-nano-30b-a3b", pin: 0.05, pout: 0.20 },
{ name: "GPT-OSS-20B", provider: "OpenAI", open: true, overall: 17.63, cost: 0, time: 2.7, turns: 5.1, slug: "openai/gpt-oss-20b", pin: 0.03, pout: 0.13 },
{ name: "Nemotron 3 Nano 4B", provider: "NVIDIA", open: true, overall: 9.06, cost: 0.00673588, time: 5.9, turns: 9.7, tokens: 118117, slug: null, pin: 0.05, pout: 0.20, proxy: true },
{ name: "Gemma 4 E2B", provider: "Google", open: true, overall: 9.02, cost: 0.02203914, time: 4.3, turns: 18.9, tokens: 359541, slug: null, pin: 0.06, pout: 0.12, proxy: true },
{ name: "Mistral 7B Instruct v0.3", provider: "Mistral AI", open: true, overall: 6.80, cost: 0, time: 1.5, turns: 2.7, tokens: 42507, slug: null, pin: null, pout: null },
{ name: "Qwen3.5-4B", provider: "Alibaba Cloud", open: true, overall: 6.05, cost: 0, time: 13.6, turns: 72.6, slug: null, pin: null, pout: null, local: true }
];
const blended = (m) => 0.75 * m.pin + 0.25 * m.pout;
for (const m of MODELS) {
m.tokens = m.tokens ?? ((m.cost > 0 && m.pin != null) ? (m.cost / blended(m)) * 1e6 : null);
}
const perTurn = MODELS.filter((m) => m.tokens).map((m) => m.tokens / m.turns).sort((a, b) => a - b);
const MED_TOK_PER_TURN = perTurn[Math.floor(perTurn.length / 2)];
for (const m of MODELS) {
if (m.tokens == null) m.tokens = MED_TOK_PER_TURN * m.turns;
m.costEst = (m.cost === 0 && m.pin) ? (m.tokens / 1e6) * blended(m) : 0;
}
const effCost = (m) => (m.cost > 0 ? m.cost : m.costEst);
const FLAGSHIPS = new Set();
{
const bestByProvider = new Map();
for (const m of MODELS) {
const cur = bestByProvider.get(m.provider);
if (!cur || m.overall > cur.overall) bestByProvider.set(m.provider, m);
}
for (const m of bestByProvider.values()) FLAGSHIPS.add(m.name);
}
const modelColors = new Map([
["claude opus 4.8", "#b98272"], ["claude opus 4.6", "#c0917f"], ["claude sonnet 5", "#c9a08f"],
["gemini 3.1 pro", "#829b84"], ["gpt-5.6 sol", "#788b84"], ["gpt-5.5", "#87968f"],
["gpt-5.6 terra", "#96a29a"], ["gpt-5.4", "#8f9188"], ["gpt-5.6 luna", "#a2aaa3"],
["gpt-oss-120b", "#777f79"], ["glm-5", "#7d95a7"], ["glm-5.2", "#91a5b2"],
["deepseek v4 pro", "#858ca5"], ["qwen3.5-397b", "#b8896c"], ["qwen3.6-27b", "#bd9477"],
["qwen3.5-35b-a3b", "#c2a083"], ["qwen3.5-9b", "#aa8f7c"], ["qwen3.5-4b", "#9e8574"],
["minimax m2.5", "#9d8794"]
]);
const familyPalette = [
{ match: /anthropic|claude/i, color: "#bd907d" },
{ match: /openai|chatgpt|gpt-/i, color: "#858e87" },
{ match: /google|gemini/i, color: "#8da28e" },
{ match: /z\.ai|glm-/i, color: "#8ca1af" },
{ match: /deepseek/i, color: "#8d93a8" },
{ match: /alibaba|qwen/i, color: "#b99a7c" },
{ match: /minimax/i, color: "#a18d99" }
];
const fallbackColors = ["#9a8fa2", "#899da0", "#a29b84", "#a78e86", "#8f99a6"];
const modelColor = (name, provider) => {
const exact = modelColors.get(name.toLowerCase());
if (exact) return exact;
const identity = `${name} ${provider}`;
const family = familyPalette.find(({ match }) => match.test(identity));
if (family) return family.color;
const hash = Array.from(identity).reduce((t, c) => (t * 31 + c.charCodeAt(0)) >>> 0, 0);
return fallbackColors[hash % fallbackColors.length];
};
const fmtTok = (v) => v >= 1e6 ? (v / 1e6).toFixed(2) + "M" : Math.round(v / 1e3) + "K";
const METRICS = {
cost: {
title: "Overall score vs. Cost per Task",
sub: "AutoMedBench Lite Overall \u00b7 average cost (USD) per task at OpenRouter list prices",
xTitle: "Cost per Task (USD, log scale)",
dmin: 0.006, dmax: 9,
ticks: [[0.01, "$0*"], [0.02, "$0.02"], [0.05, "$0.05"], [0.1, "$0.10"], [0.2, "$0.20"], [0.5, "$0.50"], [1, "$1"], [2, "$2"], [4, "$4"], [8, "$8"]],
value: (m) => (effCost(m) > 0 ? effCost(m) : 0.01),
note: "Price standard: OpenRouter API rates checked Aug 12, 2026. Exact listing unavailable \u2192 comparable proxy rate."
},
time: {
title: "Overall score vs. Time per Task",
sub: "AutoMedBench Lite Overall \u00b7 average wall-clock minutes per task",
xTitle: "Time per Task (minutes, log scale)",
dmin: 3, dmax: 34,
ticks: [[5, "5 min"], [10, "10"], [15, "15"], [20, "20"], [30, "30 min"]],
value: (m) => m.time,
note: "Average wall-clock minutes per task."
},
tokens: {
title: "Overall score vs. Tokens per Task",
sub: "AutoMedBench Lite Overall \u00b7 estimated total tokens per task (input + output)",
xTitle: "Estimated tokens per Task (log scale)",
dmin: 8e4, dmax: 6e6,
ticks: [[1e5, "100K"], [2e5, "200K"], [5e5, "500K"], [1e6, "1M"], [2e6, "2M"], [4e6, "4M"]],
value: (m) => m.tokens,
note: "Tokens per task use recorded input plus output tokens when available; remaining models use the displayed estimate method."
},
turns: {
title: "Overall score vs. Turns per Task",
sub: "AutoMedBench Lite Overall \u00b7 average conversational turns per task",
xTitle: "Turns per Task (log scale)",
dmin: 6, dmax: 90,
ticks: [[10, "10"], [15, "15"], [20, "20"], [30, "30"], [50, "50"], [70, "70"]],
value: (m) => m.turns,
note: "Average conversational turns per task."
}
};
const P = {
grid: "rgba(115,122,109,0.2)", base: "rgba(77,87,75,0.36)", tickText: "#9aa093",
vgrid: "rgba(115,122,109,0.12)", tickMark: "#c8c0ad",
quadFill: "rgba(74,115,85,0.09)", quadLine: "rgba(74,115,85,0.25)",
pareto: "#6b7263", label: "#3b4538", pointStroke: "#fffdf8"
};
const SVGNS = "http://www.w3.org/2000/svg";
const W = 1120, H = 440, M = { t: 26, r: 26, b: 64, l: 66 };
const PW = W - M.l - M.r, PH = H - M.t - M.b;
const YMAX = 90, YTICKS = [0, 15, 30, 45, 60, 75, 90];
const QY = 55;
const svg = document.getElementById("eff-plot");
const tooltip = document.getElementById("eff-tooltip");
const countPill = document.getElementById("eff-count");
const ossToggle = document.getElementById("eff-oss");
const tabs = Array.from(document.querySelectorAll("[data-eff-metric]"));
const titleEl = document.getElementById("eff-title");
const subEl = document.getElementById("eff-subtitle");
const noteEl = document.getElementById("eff-note");
if (!svg || !tooltip || !countPill || !ossToggle || !titleEl) return;
let activeMetric = "cost";
let openOnly = false;
let activeProvider = null;
const el = (tag, attrs = {}) => {
const node = document.createElementNS(SVGNS, tag);
for (const [k, v] of Object.entries(attrs)) node.setAttribute(k, v);
return node;
};
const text = (x, y, content, attrs = {}) => {
const node = el("text", { x, y, ...attrs });
node.textContent = content;
return node;
};
function render() {
const cfg = METRICS[activeMetric];
titleEl.textContent = cfg.title;
subEl.textContent = cfg.sub;
noteEl.textContent = cfg.note;
const shown = MODELS
.filter((m) => (openOnly ? m.open : true))
.filter((m) => (activeProvider ? m.provider === activeProvider : true));
countPill.textContent = `${shown.length} of ${MODELS.length} models`;
const xS = (v) => M.l + ((Math.log10(v) - Math.log10(cfg.dmin)) / (Math.log10(cfg.dmax) - Math.log10(cfg.dmin))) * PW;
const yS = (s) => M.t + ((YMAX - s) / YMAX) * PH;
svg.replaceChildren();
const qx = Math.sqrt(cfg.dmin * cfg.dmax);
svg.append(el("rect", { x: M.l, y: M.t, width: xS(qx) - M.l, height: yS(QY) - M.t, fill: P.quadFill }));
svg.append(el("line", { x1: xS(qx), y1: M.t, x2: xS(qx), y2: yS(QY), stroke: P.quadLine, "stroke-dasharray": "3 4" }));
svg.append(el("line", { x1: M.l, y1: yS(QY), x2: xS(qx), y2: yS(QY), stroke: P.quadLine, "stroke-dasharray": "3 4" }));
for (const t of YTICKS) {
const y = yS(t);
svg.append(el("line", {
x1: M.l, y1: y, x2: M.l + PW, y2: y,
stroke: t === 0 ? P.base : P.grid,
"stroke-dasharray": t === 0 ? "none" : "4 4"
}));
svg.append(text(M.l - 10, y + 4, String(t), { "text-anchor": "end", fill: P.tickText, "font-size": "11.5", "font-family": "SFMono-Regular, Consolas, monospace" }));
}
for (const [v, label] of cfg.ticks) {
const x = xS(v);
svg.append(el("line", { x1: x, y1: M.t, x2: x, y2: M.t + PH, stroke: P.vgrid }));
svg.append(el("line", { x1: x, y1: M.t + PH, x2: x, y2: M.t + PH + 5, stroke: P.tickMark }));
svg.append(text(x, M.t + PH + 20, label, { "text-anchor": "middle", fill: P.tickText, "font-size": "11.5", "font-family": "SFMono-Regular, Consolas, monospace" }));
}
const yTitle = text(18, M.t + PH / 2, "AutoMedBench Lite Overall Score", {
"text-anchor": "middle", fill: P.tickText, "font-size": "11.5", "font-weight": "750",
"letter-spacing": "0.08em", transform: `rotate(-90 18 ${M.t + PH / 2})`
});
yTitle.style.textTransform = "uppercase";
svg.append(yTitle);
const xTitle = text(M.l + PW / 2, H - 10, cfg.xTitle, {
"text-anchor": "middle", fill: P.tickText, "font-size": "11.5", "font-weight": "750", "letter-spacing": "0.08em"
});
xTitle.style.textTransform = "uppercase";
svg.append(xTitle);
const pts = shown.map((m) => ({ m, x: xS(cfg.value(m)), y: yS(m.overall), color: modelColor(m.name, m.provider) }));
const sorted = [...pts].sort((a, b) => a.x - b.x || b.m.overall - a.m.overall);
const frontier = [];
let best = -Infinity;
for (const p of sorted) {
if (p.m.overall > best) { frontier.push(p); best = p.m.overall; }
}
if (frontier.length > 1) {
const d = frontier.map((p, i) => `${i === 0 ? "M" : "L"}${p.x.toFixed(1)},${p.y.toFixed(1)}`).join(" ");
svg.append(el("path", { d, fill: "none", stroke: P.pareto, "stroke-width": "2", "stroke-dasharray": "1 6", "stroke-linecap": "round", opacity: "0.85" }));
}
const labels = [];
const placedBoxes = [];
const byScore = [...pts].sort((a, b) =>
(FLAGSHIPS.has(b.m.name) - FLAGSHIPS.has(a.m.name)) || b.m.overall - a.m.overall
);
for (const p of byScore) {
const flagship = FLAGSHIPS.has(p.m.name);
const w = 10 + p.m.name.length * 7.4;
let anchor = "start";
let lx = p.x + 12;
let x0 = lx, x1 = lx + w;
if (x1 > W - 4) {
if (!flagship) continue;
anchor = "end";
lx = p.x - 12;
x0 = lx - w; x1 = lx;
}
const fits = (ly) =>
ly >= M.t + 10 && ly <= M.t + PH - 2 &&
!placedBoxes.some((b) => Math.abs(b.y - ly) < 16 && x0 < b.x1 && b.x0 < x1) &&
!pts.some((q) => q !== p && q.x > x0 - 9 && q.x < x1 + 9 && Math.abs(q.y - ly + 4) < 12);
let ly = null;
for (const dy of flagship ? [0, -16, 16, -30, 30, -44, 44] : [0]) {
if (fits(p.y + 4.5 + dy)) { ly = p.y + 4.5 + dy; break; }
}
if (ly == null) {
if (!flagship) continue;
ly = Math.max(M.t + 10, Math.min(M.t + PH - 2, p.y + 4.5));
}
placedBoxes.push({ y: ly, x0, x1 });
labels.push({ p, x: lx, y: ly, anchor });
}
for (const p of pts) {
const g = el("g", { cursor: "pointer" });
g.append(el("circle", { cx: p.x, cy: p.y, r: 12, fill: "transparent" }));
g.append(el("circle", { cx: p.x, cy: p.y, r: 7, fill: p.color, stroke: P.pointStroke, "stroke-width": "1.6" }));
g.addEventListener("mouseenter", (e) => showTip(e, p.m));
g.addEventListener("mousemove", moveTip);
g.addEventListener("mouseleave", hideTip);
svg.append(g);
}
for (const l of labels) {
if (Math.abs(l.y - (l.p.y + 4.5)) > 8) {
svg.append(el("line", {
x1: l.p.x + (l.anchor === "start" ? 8 : -8), y1: l.p.y,
x2: l.x + (l.anchor === "start" ? -2 : 2), y2: l.y - 4,
stroke: P.tickMark, "stroke-width": "1"
}));
}
svg.append(text(l.x, l.y, l.p.m.name, {
"text-anchor": l.anchor,
fill: P.label, "font-size": "13.5", "font-weight": "600", "letter-spacing": "-0.01em",
stroke: P.pointStroke, "stroke-width": "3", "paint-order": "stroke", "stroke-linejoin": "round"
}));
}
}
function tipHtml(m) {
const rows = [
["Overall", m.overall.toFixed(2)],
["Cost / task", m.cost > 0 ? "$" + m.cost.toFixed(2) : m.costEst > 0 ? "~$" + m.costEst.toFixed(2) + " (est. API)" : "$0"],
["Time / task", m.time.toFixed(1) + " min"],
["Tokens / task", "~" + fmtTok(m.tokens)],
["Turns / task", m.turns.toFixed(1)]
].map(([k, v]) => `<div class="tt-row"><span>${k}</span><span>${v}</span></div>`).join("");
const or = (m.pin != null && m.pin > 0)
? `$${m.pin}/M in \u00b7 $${m.pout}/M out${m.proxy ? " \u00b7 proxy" : ""}`
: "$0";
return `<div class="tt-name">${m.name}${m.open ? '<span class="tt-chip">open source</span>' : ""}</div>
<div class="tt-provider">${m.provider}</div>${rows}<div class="tt-or">${or}</div>`;
}
function showTip(e, m) {
tooltip.innerHTML = tipHtml(m);
tooltip.hidden = false;
moveTip(e);
}
function moveTip(e) {
const pad = 14;
const r = tooltip.getBoundingClientRect();
let x = e.clientX + pad, y = e.clientY + pad;
if (x + r.width > window.innerWidth - 8) x = e.clientX - r.width - pad;
if (y + r.height > window.innerHeight - 8) y = e.clientY - r.height - pad;
tooltip.style.left = x + "px";
tooltip.style.top = y + "px";
}
function hideTip() { tooltip.hidden = true; }
const LOGOS = {"Anthropic": "data:image/svg+xml;base64,PHN2ZyBmaWxsPSIjNzM3YTZkIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGhlaWdodD0iMWVtIiBzdHlsZT0iZmxleDpub25lO2xpbmUtaGVpZ2h0OjEiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+QW50aHJvcGljPC90aXRsZT48cGF0aCBkPSJNMTMuODI3IDMuNTJoMy42MDNMMjQgMjBoLTMuNjAzbC02LjU3LTE2LjQ4em0tNy4yNTggMGgzLjc2N0wxNi45MDYgMjBoLTMuNjc0bC0xLjM0My0zLjQ2MUg1LjAxN2wtMS4zNDQgMy40NkgwTDYuNTcgMy41MjJ6bTQuMTMyIDkuOTU5TDguNDUzIDcuNjg3IDYuMjA1IDEzLjQ4SDEwLjd6Ij48L3BhdGg+PC9zdmc+Cg==", "OpenAI": "data:image/svg+xml;base64,PHN2ZyBmaWxsPSIjNzM3YTZkIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGhlaWdodD0iMWVtIiBzdHlsZT0iZmxleDpub25lO2xpbmUtaGVpZ2h0OjEiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+T3BlbkFJPC90aXRsZT48cGF0aCBkPSJNOS4yMDUgOC42NTh2LTIuMjZjMC0uMTkuMDcyLS4zMzMuMjM4LS40MjhsNC41NDMtMi42MTZjLjYxOS0uMzU3IDEuMzU2LS41MjMgMi4xMTctLjUyMyAyLjg1NCAwIDQuNjYyIDIuMjEyIDQuNjYyIDQuNTY2IDAgLjE2NyAwIC4zNTctLjAyNC41NDdsLTQuNzEtMi43NTlhLjc5Ny43OTcgMCAwMC0uODU2IDBsLTUuOTcgMy40NzN6bTEwLjYwOSA4LjhWMTIuMDZjMC0uMzMzLS4xNDMtLjU3LS40MjktLjczN2wtNS45Ny0zLjQ3MyAxLjk1LTEuMTE4YS40MzMuNDMzIDAgMDEuNDc2IDBsNC41NDMgMi42MTdjMS4zMDkuNzYgMi4xODkgMi4zNzggMi4xODkgMy45NDggMCAxLjgwOC0xLjA3IDMuNDczLTIuNzYgNC4xNjN6TTcuODAyIDEyLjcwM2wtMS45NS0xLjE0MmMtLjE2Ny0uMDk1LS4yMzktLjIzOC0uMjM5LS40MjhWNS44OTljMC0yLjU0NSAxLjk1LTQuNDcyIDQuNTkxLTQuNDcyIDEgMCAxLjkyNy4zMzMgMi43MTIuOTI4TDguMjMgNS4wNjdjLS4yODUuMTY2LS40MjguNDA0LS40MjguNzM3djYuODk4ek0xMiAxNS4xMjhsLTIuNzk1LTEuNTd2LTMuMzNMMTIgOC42NThsMi43OTUgMS41N3YzLjMzTDEyIDE1LjEyOHptMS43OTYgNy4yM2MtMSAwLTEuOTI3LS4zMzItMi43MTItLjkyN2w0LjY4Ni0yLjcxMmMuMjg1LS4xNjYuNDI4LS40MDQuNDI4LS43Mzd2LTYuODk4bDEuOTc0IDEuMTQyYy4xNjcuMDk1LjIzOC4yMzguMjM4LjQyOHY1LjIzM2MwIDIuNTQ1LTEuOTc0IDQuNDcyLTQuNjE0IDQuNDcyem0tNS42MzctNS4zMDNsLTQuNTQ0LTIuNjE3Yy0xLjMwOC0uNzYxLTIuMTg4LTIuMzc4LTIuMTg4LTMuOTQ4QTQuNDgyIDQuNDgyIDAgMDE0LjIxIDYuMzI3djUuNDIzYzAgLjMzMy4xNDMuNTcxLjQyOC43MzhsNS45NDcgMy40NDktMS45NSAxLjExOGEuNDMyLjQzMiAwIDAxLS40NzYgMHptLS4yNjIgMy45Yy0yLjY4OCAwLTQuNjYyLTIuMDIxLTQuNjYyLTQuNTE5IDAtLjE5LjAyNC0uMzguMDQ3LS41N2w0LjY4NiAyLjcxYy4yODYuMTY3LjU3MS4xNjcuODU2IDBsNS45Ny0zLjQ0OHYyLjI2YzAgLjE5LS4wNy4zMzMtLjIzNy40MjhsLTQuNTQzIDIuNjE2Yy0uNjE5LjM1Ny0xLjM1Ni41MjMtMi4xMTcuNTIzem01Ljg5OSAyLjgzYTUuOTQ3IDUuOTQ3IDAgMDA1LjgyNy00Ljc1NkMyMi4yODcgMTguMzM5IDI0IDE1Ljg0IDI0IDEzLjI5NmMwLTEuNjY1LS43MTMtMy4yODItMS45OTgtNC40NDguMTE5LS41LjE5LS45OTkuMTktMS40OTggMC0zLjQwMS0yLjc1OS01Ljk0Ny01Ljk0Ni01Ljk0Ny0uNjQyIDAtMS4yNi4wOTUtMS44OC4zMUE1Ljk2MiA1Ljk2MiAwIDAwMTAuMjA1IDBhNS45NDcgNS45NDcgMCAwMC01LjgyNyA0Ljc1N0MxLjcxMyA1LjQ0NyAwIDcuOTQ1IDAgMTAuNDljMCAxLjY2Ni43MTMgMy4yODMgMS45OTggNC40NDgtLjExOS41LS4xOSAxLS4xOSAxLjQ5OSAwIDMuNDAxIDIuNzU5IDUuOTQ2IDUuOTQ2IDUuOTQ2LjY0MiAwIDEuMjYtLjA5NSAxLjg4LS4zMDlhNS45NiA1Ljk2IDAgMDA0LjE2MiAxLjcxM3oiPjwvcGF0aD48L3N2Zz4K", "Google": "data:image/svg+xml;base64,PHN2ZyBmaWxsPSIjNzM3YTZkIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGhlaWdodD0iMWVtIiBzdHlsZT0iZmxleDpub25lO2xpbmUtaGVpZ2h0OjEiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+R2VtaW5pPC90aXRsZT48cGF0aCBkPSJNMjAuNjE2IDEwLjgzNWExNC4xNDcgMTQuMTQ3IDAgMDEtNC40NS0zLjAwMSAxNC4xMTEgMTQuMTExIDAgMDEtMy42NzgtNi40NTIuNTAzLjUwMyAwIDAwLS45NzUgMCAxNC4xMzQgMTQuMTM0IDAgMDEtMy42NzkgNi40NTIgMTQuMTU1IDE0LjE1NSAwIDAxLTQuNDUgMy4wMDFjLS42NS4yOC0xLjMxOC41MDUtMi4wMDIuNjc4YS41MDIuNTAyIDAgMDAwIC45NzVjLjY4NC4xNzIgMS4zNS4zOTcgMi4wMDIuNjc3YTE0LjE0NyAxNC4xNDcgMCAwMTQuNDUgMy4wMDEgMTQuMTEyIDE0LjExMiAwIDAxMy42NzkgNi40NTMuNTAyLjUwMiAwIDAwLjk3NSAwYy4xNzItLjY4NS4zOTctMS4zNTEuNjc3LTIuMDAzYTE0LjE0NSAxNC4xNDUgMCAwMTMuMDAxLTQuNDUgMTQuMTEzIDE0LjExMyAwIDAxNi40NTMtMy42NzguNTAzLjUwMyAwIDAwMC0uOTc1IDEzLjI0NSAxMy4yNDUgMCAwMS0yLjAwMy0uNjc4eiI+PC9wYXRoPjwvc3ZnPgo=", "Z.ai": "data:image/svg+xml;base64,PHN2ZyBmaWxsPSIjNzM3YTZkIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGhlaWdodD0iMWVtIiBzdHlsZT0iZmxleDpub25lO2xpbmUtaGVpZ2h0OjEiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+Wi5haTwvdGl0bGU+PHBhdGggZD0iTTEyLjEwNSAyTDkuOTI3IDQuOTUzSC42NTNMMi44MyAyaDkuMjc2ek0yMy4yNTQgMTkuMDQ4TDIxLjA3OCAyMmgtOS4yNDJsMi4xNzQtMi45NTJoOS4yNDR6TTI0IDJMOS4yNjQgMjJIMEwxNC43MzYgMkgyNHoiPjwvcGF0aD48L3N2Zz4K", "DeepSeek": "data:image/svg+xml;base64,PHN2ZyBmaWxsPSIjNzM3YTZkIiByb2xlPSJpbWciIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+RGVlcFNlZWs8L3RpdGxlPjxwYXRoIGQ9Ik0yMy43NDggNC42NTFjLS4yNTQtLjEyNC0uMzY0LjExMy0uNTEyLjIzMy0uMDUxLjA0LS4wOTQuMDktLjEzNy4xMzctLjM3Mi4zOTctLjgwNi42NTctMS4zNzMuNjI2LS44MjktLjA0Ni0xLjUzNy4yMTQtMi4xNjMuODQ4LS4xMzMtLjc4Mi0uNTc1LTEuMjQ4LTEuMjQ3LTEuNTQ4LS4zNTItLjE1NS0uNzA4LS4zMTEtLjk1NS0uNjUtLjE3Mi0uMjQtLjIxOS0uNTA5LS4zMDUtLjc3NC0uMDU1LS4xNi0uMTEtLjMyMy0uMjkzLS4zNS0uMi0uMDMxLS4yNzguMTM2LS4zNTYuMjc2LS4zMTMuNTcyLS40MzQgMS4yMDItLjQyMiAxLjg0LjAyNyAxLjQzNi42MzMgMi41OCAxLjgzOCAzLjM5My4xMzcuMDk0LjE3Mi4xODcuMTI5LjMyMy0uMDgyLjI4LS4xOC41NTMtLjI2Ni44MzMtLjA1NS4xNzktLjEzNy4yMTgtLjMyOC4xNGE1LjUgNS41IDAgMCAxLTEuNzM3LTEuMTc5Yy0uODU3LS44MjgtMS42MzEtMS43NDMtMi41OTctMi40NmExMiAxMiAwIDAgMC0uNjg5LS40N2MtLjk4NS0uOTU3LjEzLTEuNzQzLjM4Ny0xLjgzNi4yNy0uMDk4LjA5NC0uNDMzLS43NzgtLjQyOC0uODcyLjAwMy0xLjY3LjI5NS0yLjY4Ny42ODVhMyAzIDAgMCAxLS40NjUuMTM2IDkuNiA5LjYgMCAwIDAtMi44ODMtLjEwMWMtMS44ODUuMjEtMy4zOSAxLjEtNC40OTcgMi42MjJDLjA4MiA4Ljc3Ni0uMjMxIDEwLjg1NC4xNTIgMTMuMDJjLjQwMyAyLjI4NCAxLjU2OCA0LjE3NSAzLjM2IDUuNjUzIDEuODU3IDEuNTMzIDMuOTk3IDIuMjg0IDYuNDM4IDIuMTQgMS40ODItLjA4NSAzLjEzMi0uMjg0IDQuOTk0LTEuODYuNDcuMjM0Ljk2Mi4zMjggMS43OC4zOTguNjI5LjA1OCAxLjIzNS0uMDMxIDEuNzA1LS4xMjkuNzM1LS4xNTUuNjg0LS44MzYuNDE4LS45NjEtMi4xNTUtMS4wMDQtMS42ODItLjU5NS0yLjExMi0uOTI2IDEuMDk1LTEuMjk1IDIuNzY4LTMuNTk4IDMuMjg0LTYuNzMzLjA1LS4zNDYuMTE1LS44MzQuMTA4LTEuMTE0LS4wMDQtLjE3MS4wMzUtLjIzOC4yMy0uMjU3YTQuMiA0LjIgMCAwIDAgMS41NDUtLjQ3NWMxLjM5Ny0uNzYzIDEuOTYtMi4wMTYgMi4wOTMtMy41MTcuMDItLjIzLS4wMDQtLjQ2Ny0uMjQ3LS41ODhNMTEuNTggMTguMTY4Yy0yLjA4OC0xLjY0Mi0zLjEwMS0yLjE4My0zLjUyLTIuMTYtLjM5LjAyNC0uMzIuNDcyLS4yMzQuNzYzLjA5LjI4OC4yMDcuNDg3LjM3MS43NC4xMTQuMTY3LjE5Mi40MTYtLjExMy42MDMtLjY3My40MTYtMS44NDItLjE0LTEuODk3LS4xNjgtMS4zNjEtLjgwMS0yLjUtMS44Ni0zLjMwMS0zLjMwNi0uNzc1LTEuMzkzLTEuMjI1LTIuODg4LTEuMjk5LTQuNDgyLS4wMi0uMzg1LjA5NC0uNTIyLjQ3Ny0uNTkyYTQuNyA0LjcgMCAwIDEgMS41My0uMDM4YzIuMTMxLjMxMSAzLjk0NiAxLjI2NCA1LjQ2NyAyLjc3NC44NjguODYgMS41MjUgMS44ODcgMi4yMDIgMi44OS43MiAxLjA2NiAxLjQ5NCAyLjA4MiAyLjQ4IDIuOTE1LjM0OC4yOTEuNjI2LjUxMy44OTIuNjc3LS44MDIuMDktMi4xNC4xMDktMy4wNTUtLjYxNXptMS4wMDEtNi40NGEuMzA2LjMwNiAwIDAgMSAuNDE1LS4yODcuMy4zIDAgMCAxIC4xMTMuMDc0LjMuMyAwIDAgMSAuMDg2LjIxNGMwIC4xNy0uMTM2LjMwNy0uMzA4LjMwN2EuMzAzLjMwMyAwIDAgMS0uMzA2LS4zMDdtMy4xMSAxLjU5NmMtLjIuMDgxLS40LjE1MS0uNTkxLjE2YTEuMjUgMS4yNSAwIDAgMS0uNzk4LS4yNTRjLS4yNzQtLjIzLS40Ny0uMzU4LS41NTEtLjc1OGExLjcgMS43IDAgMCAxIC4wMTUtLjU4OGMuMDctLjMyNy0uMDA3LS41MzctLjIzOC0uNzI3LS4xODgtLjE1Ni0uNDI2LS4xOTktLjY4OS0uMTk5YS42LjYgMCAwIDEtLjI1NC0uMDc4LjI1My4yNTMgMCAwIDEtLjExNC0uMzU4IDEgMSAwIDAgMSAuMTkyLS4yMWMuMzU2LS4yMDIuNzY3LS4xMzYgMS4xNDYuMDE2LjM1Mi4xNDQuNjE4LjQwOCAxLjAwMS43ODIuMzkyLjQ1MS40NjIuNTc2LjY4NS45MTUuMTc2LjI2NC4zMzYuNTM2LjQ0Ni44NDguMDY2LjE5NC0uMDIuMzUzLS4yNS40NSIvPjwvc3ZnPgo=", "Alibaba Cloud": "data:image/svg+xml;base64,PHN2ZyBmaWxsPSIjNzM3YTZkIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGhlaWdodD0iMWVtIiBzdHlsZT0iZmxleDpub25lO2xpbmUtaGVpZ2h0OjEiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+UXdlbjwvdGl0bGU+PHBhdGggZD0iTTEyLjYwNCAxLjM0Yy4zOTMuNjkuNzg0IDEuMzgyIDEuMTc0IDIuMDc1YS4xOC4xOCAwIDAwLjE1Ny4wOTFoNS41NTJjLjE3NCAwIC4zMjIuMTEuNDQ2LjMyN2wxLjQ1NCAyLjU3Yy4xOS4zMzcuMjQuNDc4LjAyNC44MzctLjI2LjQzLS41MTMuODY0LS43NiAxLjNsLS4zNjcuNjU4Yy0uMTA2LjE5Ni0uMjIzLjI4LS4wNC41MTJsMi42NTIgNC42MzdjLjE3Mi4zMDEuMTExLjQ5NC0uMDQzLjc3LS40MzcuNzg1LS44ODIgMS41NjQtMS4zMzUgMi4zNC0uMTU5LjI3Mi0uMzUyLjM3NS0uNjguMzctLjc3Ny0uMDE2LTEuNTUyLS4wMS0yLjMyNy4wMTZhLjA5OS4wOTkgMCAwMC0uMDgxLjA1IDU3NS4wOTcgNTc1LjA5NyAwIDAxLTIuNzA1IDQuNzRjLS4xNjkuMjkzLS4zOC4zNjMtLjcyNS4zNjQtLjk5Ny4wMDMtMi4wMDIuMDA0LTMuMDE3LjAwMmEuNTM3LjUzNyAwIDAxLS40NjUtLjI3MWwtMS4zMzUtMi4zMjNhLjA5LjA5IDAgMDAtLjA4My0uMDQ5SDQuOTgyYy0uMjg1LjAzLS41NTMtLjAwMS0uODA1LS4wOTJsLTEuNjAzLTIuNzdhLjU0My41NDMgMCAwMS0uMDAyLS41NGwxLjIwNy0yLjEyYS4xOTguMTk4IDAgMDAwLS4xOTcgNTUwLjk1MSA1NTAuOTUxIDAgMDEtMS44NzUtMy4yNzJsLS43OS0xLjM5NWMtLjE2LS4zMS0uMTczLS40OTYuMDk1LS45NjUuNDY1LS44MTMuOTI3LTEuNjI1IDEuMzg3LTIuNDM2LjEzMi0uMjM0LjMwNC0uMzM0LjU4NC0uMzM1YTMzOC4zIDMzOC4zIDAgMDEyLjU4OS0uMDAxLjEyNC4xMjQgMCAwMC4xMDctLjA2M2wyLjgwNi00Ljg5NWEuNDg4LjQ4OCAwIDAxLjQyMi0uMjQ2Yy41MjQtLjAwMSAxLjA1MyAwIDEuNTgzLS4wMDZMMTEuNzA0IDFjLjM0MS0uMDAzLjcyNC4wMzIuOS4zNHptLTMuNDMyLjQwM2EuMDYuMDYgMCAwMC0uMDUyLjAzTDYuMjU0IDYuNzg4YS4xNTcuMTU3IDAgMDEtLjEzNS4wNzhIMy4yNTNjLS4wNTYgMC0uMDcuMDI1LS4wNDEuMDc0bDUuODEgMTAuMTU2Yy4wMjUuMDQyLjAxMy4wNjItLjAzNC4wNjNsLTIuNzk1LjAxNWEuMjE4LjIxOCAwIDAwLS4yLjExNmwtMS4zMiAyLjMxYy0uMDQ0LjA3OC0uMDIxLjExOC4wNjguMTE4bDUuNzE2LjAwOGMuMDQ2IDAgLjA4LjAyLjEwNC4wNjFsMS40MDMgMi40NTRjLjA0Ni4wODEuMDkyLjA4Mi4xMzkgMGw1LjAwNi04Ljc2Ljc4My0xLjM4MmEuMDU1LjA1NSAwIDAxLjA5NiAwbDEuNDI0IDIuNTNhLjEyMi4xMjIgMCAwMC4xMDcuMDYybDIuNzYzLS4wMmEuMDQuMDQgMCAwMC4wMzUtLjAyLjA0MS4wNDEgMCAwMDAtLjA0bC0yLjktNS4wODZhLjEwOC4xMDggMCAwMTAtLjExM2wuMjkzLS41MDcgMS4xMi0xLjk3N2MuMDI0LS4wNDEuMDEyLS4wNjItLjAzNS0uMDYySDkuMmMtLjA1OSAwLS4wNzMtLjAyNi0uMDQzLS4wNzdsMS40MzQtMi41MDVhLjEwNy4xMDcgMCAwMDAtLjExNEw5LjIyNSAxLjc3NGEuMDYuMDYgMCAwMC0uMDUzLS4wMzF6bTYuMjkgOC4wMmMuMDQ2IDAgLjA1OC4wMi4wMzQuMDZsLS44MzIgMS40NjUtMi42MTMgNC41ODVhLjA1Ni4wNTYgMCAwMS0uMDUuMDI5LjA1OC4wNTggMCAwMS0uMDUtLjAyOUw4LjQ5OCA5Ljg0MWMtLjAyLS4wMzQtLjAxLS4wNTIuMDI4LS4wNTRsLjIxNi0uMDEyIDYuNzIyLS4wMTJ6Ij48L3BhdGg+PC9zdmc+Cg==", "MiniMax": "data:image/svg+xml;base64,PHN2ZyBmaWxsPSIjNzM3YTZkIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGhlaWdodD0iMWVtIiBzdHlsZT0iZmxleDpub25lO2xpbmUtaGVpZ2h0OjEiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+TWluaW1heDwvdGl0bGU+PHBhdGggZD0iTTE2LjI3OCAyYzEuMTU2IDAgMi4wOTMuOTI3IDIuMDkzIDIuMDd2MTIuNTAxYS43NC43NCAwIDAwLjc0NC43MDkuNzQuNzQgMCAwMC43NDMtLjcwOVY5LjA5OWEyLjA2IDIuMDYgMCAwMTIuMDcxLTIuMDQ5QTIuMDYgMi4wNiAwIDAxMjQgOS4xdjYuNTYxYS42NDkuNjQ5IDAgMDEtLjY1Mi42NDUuNjQ5LjY0OSAwIDAxLS42NTMtLjY0NVY5LjFhLjc2Mi43NjIgMCAwMC0uNzY2LS43NTguNzYyLjc2MiAwIDAwLS43NjYuNzU4djcuNDcyYTIuMDM3IDIuMDM3IDAgMDEtMi4wNDggMi4wMjYgMi4wMzcgMi4wMzcgMCAwMS0yLjA0OC0yLjAyNnYtMTIuNWEuNzg1Ljc4NSAwIDAwLS43ODgtLjc1My43ODUuNzg1IDAgMDAtLjc4OS43NTJsLS4wMDEgMTUuOTA0QTIuMDM3IDIuMDM3IDAgMDExMy40NDEgMjJhMi4wMzcgMi4wMzcgMCAwMS0yLjA0OC0yLjAyNlYxOC4wNGMwLS4zNTYuMjkyLS42NDUuNjUyLS42NDUuMzYgMCAuNjUyLjI4OS42NTIuNjQ1djEuOTM0YzAgLjI2My4xNDIuNTA2LjM3Mi42MzguMjMuMTMxLjUxNC4xMzEuNzQ0IDBhLjczNC43MzQgMCAwMC4zNzItLjYzOFY0LjA3YzAtMS4xNDMuOTM3LTIuMDcgMi4wOTMtMi4wN3ptLTUuNjc0IDBjMS4xNTYgMCAyLjA5My45MjcgMi4wOTMgMi4wN3YxMS41MjNhLjY0OC42NDggMCAwMS0uNjUyLjY0NS42NDguNjQ4IDAgMDEtLjY1Mi0uNjQ1VjQuMDdhLjc4NS43ODUgMCAwMC0uNzg5LS43OC43ODUuNzg1IDAgMDAtLjc4OS43OHYxNC4wMTNhMi4wNiAyLjA2IDAgMDEtMi4wNyAyLjA0OCAyLjA2IDIuMDYgMCAwMS0yLjA3MS0yLjA0OFY5LjFhLjc2Mi43NjIgMCAwMC0uNzY2LS43NTguNzYyLjc2MiAwIDAwLS43NjYuNzU4djMuOGEyLjA2IDIuMDYgMCAwMS0yLjA3MSAyLjA0OUEyLjA2IDIuMDYgMCAwMTAgMTIuOXYtMS4zNzhjMC0uMzU3LjI5Mi0uNjQ2LjY1Mi0uNjQ2LjM2IDAgLjY1My4yOS42NTMuNjQ2VjEyLjljMCAuNDE4LjM0My43NTcuNzY2Ljc1N3MuNzY2LS4zMzkuNzY2LS43NTdWOS4wOTlhMi4wNiAyLjA2IDAgMDEyLjA3LTIuMDQ4IDIuMDYgMi4wNiAwIDAxMi4wNzEgMi4wNDh2OC45ODRjMCAuNDE5LjM0My43NTguNzY3Ljc1OC40MjMgMCAuNzY2LS4zMzkuNzY2LS43NThWNC4wN2MwLTEuMTQzLjkzNy0yLjA3IDIuMDkzLTIuMDd6Ij48L3BhdGg+PC9zdmc+Cg==", "NVIDIA": "data:image/svg+xml;base64,PHN2ZyBmaWxsPSIjNzM3YTZkIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGhlaWdodD0iMWVtIiBzdHlsZT0iZmxleDpub25lO2xpbmUtaGVpZ2h0OjEiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+TnZpZGlhPC90aXRsZT48cGF0aCBkPSJNMTAuMjEyIDguOTc2VjcuNjJjLjEyNy0uMDEuMjU2LS4wMTcuMzg4LS4wMjEgMy41OTYtLjExNyA1Ljk1NyAzLjE4NCA1Ljk1NyAzLjE4NHMtMi41NDggMy42NDctNS4yODIgMy42NDdhMy4yMjcgMy4yMjcgMCAwMS0xLjA2My0uMTc1di00LjEwOWMxLjQuMTc0IDEuNjgxLjgxMiAyLjUyMyAyLjI1OGwxLjg3My0xLjYyN2E0LjkwNSA0LjkwNSAwIDAwLTMuNjctMS44NDYgNi41OTQgNi41OTQgMCAwMC0uNzI5LjA0NG0wLTQuNDc2djIuMDI1Yy4xMy0uMDEuMjU5LS4wMTkuMzg4LS4wMjQgNS4wMDItLjE3NCA4LjI2MSA0LjIyNiA4LjI2MSA0LjIyNnMtMy43NDMgNC42OS03LjY0MyA0LjY5Yy0uMzM4IDAtLjY3NS0uMDMxLTEuMDA3LS4wOTJ2MS4yNWMuMjc4LjAzOC41NTguMDU3LjgzOC4wNTcgMy42MjkgMCA2LjI1My0xLjkxIDguNzk0LTQuMTY5LjQyMS4zNDcgMi4xNDYgMS4xOTMgMi41MDEgMS41NjQtMi40MTYgMi4wODMtOC4wNDggMy43NjMtMTEuMjQgMy43NjMtLjMwOCAwLS42MDMtLjAyLS44OTQtLjA0OFYxOS41SDI0di0xNUgxMC4yMXptMCA5Ljc1NnYxLjA2OGMtMy4zNTYtLjYxNi00LjI4Ny00LjIxLTQuMjg3LTQuMjFhNy4xNzMgNy4xNzMgMCAwMTQuMjg3LTIuMTM4djEuMTcyaC0uMDA1YTMuMTgyIDMuMTgyIDAgMDAtMi41MDIgMS4xNzhzLjYxNSAyLjI3NiAyLjUwNyAyLjkzMW0tNS45NjEtMy4zYzEuNDM2LTEuOTM1IDMuNjA0LTMuMTQ4IDUuOTYxLTMuMzM2VjYuNTIzQzUuODEgNi44ODcgMiAxMC43MjMgMiAxMC43MjNzMi4xNTggNi40MjcgOC4yMSA3LjAxNXYtMS4xNjZDNS43NyAxNiA0LjI1IDEwLjk1OCA0LjI1IDEwLjk1OGgtLjAwMnoiPjwvcGF0aD48L3N2Zz4K"};
LOGOS.Google = "assets/google.svg";
const legend = document.getElementById("eff-legend");
const providerButtons = [];
for (const provider of ["Anthropic", "OpenAI", "Google", "Z.ai", "DeepSeek", "Alibaba Cloud", "MiniMax", "NVIDIA"]) {
const sample = MODELS.find((m) => m.provider === provider);
const btn = document.createElement("button");
btn.type = "button";
btn.className = "eff-legend-button";
btn.dataset.provider = provider;
btn.setAttribute("aria-pressed", "false");
btn.title = `Show only ${provider} models`;
const dot = document.createElement("i");
dot.className = "eff-provider-dot";
dot.style.setProperty("--dot-color", modelColor(sample.name, sample.provider));
btn.append(dot, document.createTextNode(provider));
if (LOGOS[provider]) {
const logo = document.createElement("img");
logo.className = "eff-provider-logo";
logo.src = LOGOS[provider];
logo.alt = "";
btn.append(logo);
}
btn.addEventListener("click", () => {
activeProvider = activeProvider === provider ? null : provider;
syncControls();
render();
});
legend.append(btn);
providerButtons.push(btn);
}
function syncControls() {
tabs.forEach((t) => t.setAttribute("aria-selected", String(t.dataset.effMetric === activeMetric)));
ossToggle.setAttribute("aria-pressed", String(openOnly));
providerButtons.forEach((b) => b.setAttribute("aria-pressed", String(b.dataset.provider === activeProvider)));
}
tabs.forEach((tab) => {
tab.addEventListener("click", () => {
activeMetric = tab.dataset.effMetric;
syncControls();
render();
});
});
ossToggle.addEventListener("click", () => {
openOnly = !openOnly;
syncControls();
render();
});
// Performance | Efficiency view switcher
const panels = {
performance: document.querySelector('[data-view-panel="performance"]'),
efficiency: document.querySelector('[data-view-panel="efficiency"]')
};
const seg = document.querySelector(".view-seg");
const viewButtons = Array.from(document.querySelectorAll("[data-view]"));
const setView = (view) => {
panels.performance.hidden = view !== "performance";
panels.efficiency.hidden = view !== "efficiency";
seg.dataset.active = view;
viewButtons.forEach((b) => b.setAttribute("aria-pressed", String(b.dataset.view === view)));
};
viewButtons.forEach((btn) => {
btn.addEventListener("click", () => setView(btn.dataset.view));
});
syncControls();
render();
// Keep both panels the same height so the switch does not shift the page.
const equalize = () => {
panels.performance.style.minHeight = "";
panels.efficiency.style.minHeight = "";
const width = panels.performance.parentElement.clientWidth;
const measure = (panel) => {
const wasHidden = panel.hidden;
const css = panel.style.cssText;
panel.hidden = false;
panel.style.cssText = `position:absolute;visibility:hidden;left:-9999px;top:0;width:${width}px;`;
const h = panel.offsetHeight;
panel.style.cssText = css;
panel.hidden = wasHidden;
return h;
};
const target = Math.max(measure(panels.performance), measure(panels.efficiency));
panels.performance.style.minHeight = target + "px";
panels.efficiency.style.minHeight = target + "px";
};
equalize();
window.addEventListener("load", equalize);
let eqTimer;
window.addEventListener("resize", () => {
clearTimeout(eqTimer);
eqTimer = setTimeout(equalize, 150);
});
if (location.hash.includes("view=efficiency")) setView("efficiency");
})();
</script>
<svg width="0" height="0" style="position:absolute" aria-hidden="true">
<defs>
<filter id="pen-chart" x="-3%" y="-3%" width="106%" height="106%">
<feTurbulence type="fractalNoise" baseFrequency="0.03" numOctaves="2" seed="5" result="n" />
<feDisplacementMap in="SourceGraphic" in2="n" scale="2.2" />
</filter>
<filter id="pen-soft" x="-3%" y="-3%" width="106%" height="106%">
<feTurbulence type="fractalNoise" baseFrequency="0.05" numOctaves="2" seed="8" result="n" />
<feDisplacementMap in="SourceGraphic" in2="n" scale="1.1" />
</filter>
</defs>
</svg>
<div class="or-thumb" id="or-thumb" role="button" tabindex="0" aria-label="Open API price chart">
<div class="or-thumb-title">API $/M tokens</div>
<svg id="or-thumb-svg" viewBox="0 0 320 300" aria-hidden="true"></svg>
<div class="or-cta">Tap to enlarge &middot; OpenRouter</div>
</div>
<div class="or-backdrop" id="or-backdrop" hidden></div>
<div class="or-modal" id="or-modal" hidden role="dialog" aria-modal="true" aria-label="API price chart">
<div class="or-panel">
<div class="or-head">
<div>
<p class="or-kicker">OpenRouter &middot; Aug 2026</p>
<h3 class="or-title" id="or-title">Input price per 1M tokens</h3>
</div>
<div class="or-switch" role="tablist" aria-label="Price direction">
<button class="or-io" data-io="in" aria-selected="true" type="button">In</button>
<button class="or-io" data-io="out" aria-selected="false" type="button">Out</button>
</div>
<button class="or-close" id="or-close" type="button" aria-label="Close">&times;</button>
</div>
<svg id="or-chart" viewBox="0 0 1120 608" role="img" aria-label="Dot chart of API prices per million tokens"></svg>
<p class="or-note">26 priced AutoMedBench Lite models &middot; log scale &middot; sorted by blended (3:1) price</p>
</div>
</div>
<button class="theme-fab" id="amb-theme-toggle" type="button" aria-pressed="false">&#9790; Dark mode</button>
<script>
(() => {
// The AutoMedBench Lite models that have OpenRouter prices (free/local-only excluded).
const MODELS = [
{ n: "Claude Opus 4.8", p: "Anthropic", i: 5, o: 25 },
{ n: "Claude Opus 4.6", p: "Anthropic", i: 5, o: 25 },
{ n: "Gemini 3.1 Pro", p: "Google", i: 2, o: 12 },
{ n: "GPT-5.6 Sol", p: "OpenAI", i: 5, o: 30 },
{ n: "Claude Sonnet 5", p: "Anthropic", i: 2, o: 10 },
{ n: "GPT-5.5", p: "OpenAI", i: 5, o: 30 },
{ n: "GLM-5", p: "Z.ai", i: 0.95, o: 2.55 },
{ n: "DeepSeek V4 Pro", p: "DeepSeek", i: 0.435, o: 0.87 },
{ n: "Qwen3.5-397B", p: "Alibaba Cloud", i: 0.39, o: 2.34 },
{ n: "GPT-5.6 Terra", p: "OpenAI", i: 1, o: 6 },
{ n: "MiniMax M2.5", p: "MiniMax", i: 0.15, o: 0.9 },
{ n: "GPT-5.4", p: "OpenAI", i: 2.5, o: 15 },
{ n: "Qwen3.6-27B", p: "Alibaba Cloud", i: 0.289, o: 2.4 },
{ n: "GPT-5.6 Luna", p: "OpenAI", i: 0.1, o: 0.6 },
{ n: "Qwen3.5-35B-A3B", p: "Alibaba Cloud", i: 0.14, o: 1 },
{ n: "GLM-5.2", p: "Z.ai", i: 0.76, o: 2.42 },
{ n: "Nemotron 3.5 Lightning 30B-A3B", p: "NVIDIA", i: 0.1, o: 0.25 },
{ n: "Gemma 4 26B-A4B", p: "Google", i: 0.12, o: 0.40 },
{ n: "Gemma 4 31B", p: "Google", i: 0.10, o: 0.34 },
{ n: "Gemma 4 12B", p: "Google", i: 0.05, o: 0.15 },
{ n: "Gemma 4 E4B", p: "Google", i: 0.06, o: 0.12 },
{ n: "Nemotron 3 Nano 30B-A3B", p: "NVIDIA", i: 0.05, o: 0.20 },
{ n: "Nemotron 3 Nano 4B", p: "NVIDIA", i: 0.05, o: 0.20 },
{ n: "Gemma 4 E2B", p: "Google", i: 0.06, o: 0.12 },
{ n: "GPT-OSS-120B", p: "OpenAI", i: 0.037, o: 0.17 },
{ n: "GPT-OSS-20B", p: "OpenAI", i: 0.03, o: 0.13 },
{ n: "Qwen3.5-9B", p: "Alibaba Cloud", i: 0.1, o: 0.15 }
];
for (const m of MODELS) m.blend = 0.75 * m.i + 0.25 * m.o;
const ROWS = [...MODELS].sort((a, b) => b.blend - a.blend);
const COLORS = {
"Anthropic": "#bd907d", "OpenAI": "#858e87", "Google": "#8da28e",
"Z.ai": "#8ca1af", "DeepSeek": "#8d93a8", "Alibaba Cloud": "#b99a7c",
"MiniMax": "#a18d99", "NVIDIA": "#8f99a6"
};
const PAL = {
light: { grid: "rgba(115,122,109,0.14)", tick: "#9aa093", label: "#3b4538", ink: "#3b4538" },
dark: { grid: "rgba(170,176,159,0.12)", tick: "#8f9484", label: "#e9e5d7", ink: "#d8d3c3" }
};
const isDark = () => document.documentElement.dataset.theme === "dark";
const pal = () => (isDark() ? PAL.dark : PAL.light);
const SVGNS = "http://www.w3.org/2000/svg";
const el = (tag, attrs = {}) => {
const node = document.createElementNS(SVGNS, tag);
for (const [k, v] of Object.entries(attrs)) node.setAttribute(k, v);
return node;
};
const text = (x, y, content, attrs = {}) => {
const node = el("text", { x, y, ...attrs });
node.textContent = content;
return node;
};
const fmtPrice = (v) =>
Number.isInteger(v) ? "$" + v
: v >= 1 ? "$" + v.toFixed(2)
: "$" + (Math.round(v * 1000) / 1000);
const DMIN = 0.03, DMAX = 40;
const TICKS = [[0.05, "$0.05"], [0.1, "$0.10"], [0.2, "$0.20"], [0.5, "$0.50"], [1, "$1"], [2, "$2"], [5, "$5"], [10, "$10"], [20, "$20"], [30, "$30"]];
const xLog = (v, l, w) => l + ((Math.log10(v) - Math.log10(DMIN)) / (Math.log10(DMAX) - Math.log10(DMIN))) * w;
let activeIO = "in";
const chart = document.getElementById("or-chart");
const titleEl = document.getElementById("or-title");
function renderChart() {
const P = pal();
const W = 1120, M = { t: 30, r: 76, b: 56, l: 190 }, ROW = 29;
const plotH = ROWS.length * ROW;
const H = M.t + plotH + M.b;
const PW = W - M.l - M.r;
chart.setAttribute("viewBox", "0 0 " + W + " " + H);
chart.replaceChildren();
titleEl.textContent = (activeIO === "in" ? "Input" : "Output") + " price per 1M tokens";
const sketch = el("g", { filter: "url(#pen-chart)" });
chart.append(sketch);
const xS = (v) => xLog(v, M.l, PW);
for (const [v, label] of TICKS) {
const x = xS(v);
sketch.append(el("line", { x1: x, y1: M.t, x2: x, y2: M.t + plotH, stroke: P.grid }));
chart.append(text(x, M.t + plotH + 22, label, { "text-anchor": "middle", fill: P.tick, "font-size": "12.5", "font-family": "SFMono-Regular, Consolas, monospace" }));
}
sketch.append(el("line", { x1: M.l, y1: M.t, x2: M.l, y2: M.t + plotH, stroke: P.ink, "stroke-width": "2" }));
const xt = text(M.l + PW / 2, H - 10, (activeIO === "in" ? "Input" : "Output") + " $/M tokens (log)", {
"text-anchor": "middle", fill: P.tick, "font-size": "12.5", "font-weight": "750", "letter-spacing": "0.08em"
});
xt.style.textTransform = "uppercase";
chart.append(xt);
ROWS.forEach((m, i) => {
const y = M.t + (i + 0.5) * ROW;
const c = COLORS[m.p] || "#9a8fa2";
chart.append(text(M.l - 24, y + 5, m.n, {
"text-anchor": "end", fill: P.label, "font-size": "14.5", "font-weight": "600", "letter-spacing": "-0.01em"
}));
sketch.append(el("circle", { cx: M.l - 12, cy: y, r: 4, fill: c }));
const xv = xS(activeIO === "in" ? m.i : m.o);
sketch.append(el("circle", { cx: xv, cy: y, r: 9.5, fill: c, stroke: P.ink, "stroke-width": "1.6" }));
chart.append(text(xv + 16, y + 5, fmtPrice(activeIO === "in" ? m.i : m.o), {
"text-anchor": "start", fill: P.tick, "font-size": "13", "font-family": "SFMono-Regular, Consolas, monospace"
}));
});
}
const thumbSvg = document.getElementById("or-thumb-svg");
function renderThumb() {
const P = pal();
const W = 320, ROW = 15, MT = 14, ML = 14, MR = 14;
const H = MT + ROWS.length * ROW + 12;
const PW = W - ML - MR;
thumbSvg.setAttribute("viewBox", "0 0 " + W + " " + H);
thumbSvg.replaceChildren();
const sketch = el("g", { filter: "url(#pen-chart)" });
thumbSvg.append(sketch);
const xS = (v) => xLog(v, ML, PW);
for (const v of [0.1, 1, 10]) {
sketch.append(el("line", { x1: xS(v), y1: MT - 4, x2: xS(v), y2: H - 8, stroke: P.grid }));
}
sketch.append(el("line", { x1: ML, y1: MT - 4, x2: ML, y2: H - 8, stroke: P.ink, "stroke-width": "1.6" }));
ROWS.forEach((m, i) => {
const y = MT + (i + 0.5) * ROW;
const c = COLORS[m.p] || "#9a8fa2";
sketch.append(el("circle", { cx: xS(m.i), cy: y, r: 3.6, fill: "none", stroke: c, "stroke-width": "1.6" }));
sketch.append(el("circle", { cx: xS(m.o), cy: y, r: 4.2, fill: c }));
});
}
document.querySelectorAll(".or-io").forEach((btn) => {
btn.addEventListener("click", () => {
activeIO = btn.dataset.io;
document.querySelectorAll(".or-io").forEach((b) =>
b.setAttribute("aria-selected", String(b === btn)));
renderChart();
});
});
const thumb = document.getElementById("or-thumb");
const backdrop = document.getElementById("or-backdrop");
const modal = document.getElementById("or-modal");
function openOR() {
backdrop.hidden = false;
modal.hidden = false;
thumb.classList.add("away");
requestAnimationFrame(() => requestAnimationFrame(() => {
backdrop.classList.add("show");
modal.classList.add("show");
}));
}
function closeOR() {
backdrop.classList.remove("show");
modal.classList.remove("show");
thumb.classList.remove("away");
setTimeout(() => { backdrop.hidden = true; modal.hidden = true; }, 480);
}
thumb.addEventListener("click", openOR);
thumb.addEventListener("keydown", (e) => {
if (e.key === "Enter" || e.key === " ") { e.preventDefault(); openOR(); }
});
backdrop.addEventListener("click", closeOR);
document.getElementById("or-close").addEventListener("click", closeOR);
document.addEventListener("keydown", (e) => {
if (e.key === "Escape" && !modal.hidden) closeOR();
});
const fab = document.getElementById("amb-theme-toggle");
let theme = null;
try { theme = localStorage.getItem("amb-theme"); } catch (_) {}
if (theme !== "dark" && theme !== "light") {
theme = window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light";
}
function syncTheme() {
document.documentElement.dataset.theme = theme;
fab.setAttribute("aria-pressed", String(theme === "dark"));
fab.innerHTML = theme === "dark" ? "&#9788; Light mode" : "&#9790; Dark mode";
}
fab.addEventListener("click", () => {
theme = theme === "dark" ? "light" : "dark";
try { localStorage.setItem("amb-theme", theme); } catch (_) {}
syncTheme();
renderThumb();
renderChart();
});
syncTheme();
renderThumb();
renderChart();
})();
</script>
</body>
</html>