diff --git a/docs_new/cookbook/autoregressive/Moonshotai/Kimi-K3.mdx b/docs_new/cookbook/autoregressive/Moonshotai/Kimi-K3.mdx index b22057c36..ab26e0b2a 100644 --- a/docs_new/cookbook/autoregressive/Moonshotai/Kimi-K3.mdx +++ b/docs_new/cookbook/autoregressive/Moonshotai/Kimi-K3.mdx @@ -101,9 +101,9 @@ are scheduled to release by July 27, 2026**. The recipes on this page were valid repository (`moonshotai/Kimi-K3`) and a public `lmsysorg/sglang` image with K3 support will be available at launch. -Every cell on this page is currently marked **Not Verified**: the recipes run, but none has a -serving round on the final weights and current code behind it. Re-measure throughput and accuracy -before you rely on any of them. +Every cell in the Deploy panel above is currently marked **Final Verification In Progress**: the +recipe runs, but its serving round on the final weights and current code is still open. Re-measure +throughput and accuracy before you rely on any of them. **Recommended generation:** `temperature=1.0`, `top_p=0.95`, `presence_penalty=0`, `frequency_penalty=0` (fixed by the model; informational — do not hardcode in sample code). diff --git a/docs_new/src/snippets/_deployment.jsx b/docs_new/src/snippets/_deployment.jsx index 1dc0e145d..c1b657ba3 100644 --- a/docs_new/src/snippets/_deployment.jsx +++ b/docs_new/src/snippets/_deployment.jsx @@ -23,7 +23,8 @@ // `flags` / `env` / `hints` (each a literal array or a function // of the whole selection), and a row-level `default` / `showWhen`. // `hints` render as `# ...` lines above the command. -// cells {match, verified?, nnodes?, warn?, redirect?, env, flags}[] — one per +// cells {match, verified?, verificationStatus?, nnodes?, warn?, redirect?, +// env, flags}[] — one per // (hw × match dims); env/flags are flat literals, only // {{PLACEHOLDER}} subst applied. `nnodes` supplies the node // count for configs with no `nodes` dim (default 1). `warn` @@ -31,6 +32,10 @@ // embed [label](#anchor) links. `redirect: true` renders the // banner ALONE — no command, header, or copy buttons — for // cells that only point somewhere else. +// `verified` is the boolean badge baseline. +// `verificationStatus` overrides it with a third state — +// "verified" | "in-progress" | "unverified" — for a recipe +// whose verification round is open rather than absent. // modelNames HF slug lookup, `hw|variant|quant` then `variant|quant` // placeholders {{KEY}} → {target: 'command'|'curl', label, default?} // curl cURL template (uses {{MODEL_NAME}} + placeholders) @@ -166,18 +171,30 @@ export const Deployment = ({ config, benchmarks }) => { color: isDark ? "#fde68a" : "#92400e", border: `1px solid ${isDark ? "#92400e" : "#fcd34d"}`, }, - badge: (verified) => ({ + // Takes either a boolean (legacy `cell.verified`) or a status id — see + // VERIFY_LABEL / verifyStatusOf in section 3. + badge: (status) => ({ display: "inline-flex", alignItems: "center", gap: "6px", padding: "2px 8px", borderRadius: "10px", - background: verified ? (isDark ? "#064e3b" : "#d1fae5") - : (isDark ? "#78350f" : "#fef3c7"), - color: verified ? (isDark ? "#a7f3d0" : "#065f46") - : (isDark ? "#fde68a" : "#92400e"), - fontSize: "11px", fontWeight: 600, + background: { + verified: isDark ? "#064e3b" : "#d1fae5", + "in-progress": isDark ? "#1e3a8a" : "#dbeafe", + unverified: isDark ? "#78350f" : "#fef3c7", + }[verifyStatusOf(status)], + color: { + verified: isDark ? "#a7f3d0" : "#065f46", + "in-progress": isDark ? "#bfdbfe" : "#1e40af", + unverified: isDark ? "#fde68a" : "#92400e", + }[verifyStatusOf(status)], + // The in-progress label is long; keep the pill on one line and let the + // header row wrap around it instead of breaking the text mid-badge. + fontSize: "11px", fontWeight: 600, whiteSpace: "nowrap", }), - badgeDot: (verified) => ({ + badgeDot: (status) => ({ width: "8px", height: "8px", borderRadius: "50%", - background: verified ? "#10b981" : "#f59e0b", + background: { verified: "#10b981", "in-progress": "#3b82f6", unverified: "#f59e0b" }[ + verifyStatusOf(status) + ], }), iconButton: { padding: "4px 10px", @@ -388,6 +405,25 @@ export const Deployment = ({ config, benchmarks }) => { }); // ==== 3. Pure helpers (no React state) ==== + // Verification badge state. A cell's boolean `verified` is the baseline; + // `cell.verificationStatus` overrides it, which is how a recipe whose + // verification round is open reports that instead of collapsing into the flat + // Verified / Not Verified pair. + const VERIFY_LABEL = { + verified: "Verified", + "in-progress": "Final Verification In Progress", + unverified: "Not Verified", + }; + // Booleans keep their historical meaning; an unrecognized status id falls + // back to "unverified" rather than to truthiness (a typo must never read as + // a green Verified badge). + const verifyStatusOf = (v) => + typeof v === "string" + ? (VERIFY_LABEL[v] ? v : "unverified") + : (v ? "verified" : "unverified"); + const cellVerifyStatus = (c) => + c ? verifyStatusOf(c.verificationStatus ?? c.verified) : "unverified"; + // Two kinds of selector row: // match dims participate in cell lookup (cell.match[dim] === sel[dim]) // overlay dims never touch cell lookup; the picked option contributes flags @@ -1122,6 +1158,7 @@ export const Deployment = ({ config, benchmarks }) => { // ==== 5. Derived values ==== const s = makeStyles(isDark); const cell = findCell(config.cells, sel); + const verifyStatus = cellVerifyStatus(cell); // Pin the calculator-computed ratio into the rendered command (before the // host/port tail); cells themselves stay ratio-free. const cellWithRatio = (() => { @@ -1337,9 +1374,9 @@ export const Deployment = ({ config, benchmarks }) => { ) : (<>
-
- - {cell && cell.verified ? "Verified" : "Not Verified"} +
+ + {VERIFY_LABEL[verifyStatus]}
{runModes.map((mode, index) => ( diff --git a/docs_new/src/snippets/_playground.jsx b/docs_new/src/snippets/_playground.jsx index af6875931..926f1c577 100644 --- a/docs_new/src/snippets/_playground.jsx +++ b/docs_new/src/snippets/_playground.jsx @@ -101,6 +101,11 @@ export const Playground = ({ config }) => { }) || cell; // Shared with `_deployment.jsx` (HOST/PORT/etc. unified across the page). const STORAGE_KEY = "sglang-deploy-env"; + // ==== MIRROR of DEPLOYMENT_COMPONENT_ID in _deployment.jsx — keep identical ==== + // Snippets cannot import each other. The Deploy panel puts this id on its + // root (carrying its own scrollMarginTop), which is what "jump to the base" + // should land on. + const DEPLOYMENT_COMPONENT_ID = "deployment-configurator"; const pgFeatures = config.playgroundFeatures || {}; // Single-host PD runs prefill + decode as two engines on one box. Each derives @@ -2218,12 +2223,16 @@ export const Playground = ({ config }) => { Inherited base from Deployment: {baseSummary} {/* scrollIntoView (not hash nav) so the base-cell hash survives. - Deploy heading slugs to "deployment" or "deploy". */} + Target the configurator ITSELF: the "## Deployment" heading sits + above the install accordion and a screenful of prose, so landing on + the heading leaves the panel you came for off-screen. The heading + slugs stay as fallbacks for a page that renders no configurator. */}