homepage: AI section to the bottom; model-only AI descriptions

The user page now orders Web Apps, Media Library Apps, AI — the models sit
at the bottom, below the apps people click. The AI card and /docs#models
descriptions drop the infrastructure (runtimes, GPUs, tensor parallelism,
draft heads) in favor of what users care about: the hosted model, its
size, the context/parallel capacity, and what it's good at.
This commit is contained in:
Frank
2026-09-21 15:02:14 -07:00
parent e23df8b229
commit 2b046a21d0
4 changed files with 17 additions and 16 deletions
+1 -1
View File
@@ -10,7 +10,7 @@ const CATEGORY = window.location.pathname.indexOf('/admin') !== -1 ? 'admin' : '
// same renderSection()/renderPanel() below. SECTION_ORDER fixes each page's
// section order; a section with no services renders nothing.
const SECTION_ORDER = {
user: ['AI', 'Web Apps', 'Media Library Apps'],
user: ['Web Apps', 'Media Library Apps', 'AI'],
admin: ['Media Library Apps', 'Observability', 'AI', 'Infrastructure'],
};
+9 -12
View File
@@ -42,32 +42,29 @@
<section id="models">
<h1>The running models</h1>
<p>Three models serve the family, each on its own hardware. The homepage status
cards above show whether each one is up right now.</p>
<p>Three models serve the family. The homepage status cards show whether
each one is up right now.</p>
<h2>frank-large — the big brain</h2>
<ul>
<li><strong>Model:</strong> Qwen3.8-Flash-Next UD-IQ4_XS, served by unsloth llama.cpp with the model's own MTP draft head (depth 2).</li>
<li><strong>Hardware:</strong> Dankclaw's Strix Halo iGPU (gfx1151), shared with the whole host.</li>
<li><strong>Best for:</strong> long, thoughtful text conversations at a 200k-token window.</li>
<li><strong>Capacity:</strong> exactly one conversation resident at a time. A second waits — politely, but it waits.</li>
<li><strong>Model:</strong> Qwen3.8-Flash-Next, UD-IQ4_XS (87.3 GiB).</li>
<li><strong>Capacity:</strong> 200k-token context, exactly one conversation at a time. A second waits — politely, but it waits.</li>
<li><strong>Best for:</strong> long, thoughtful text conversations.</li>
<li><strong>Not for:</strong> images. It cannot see them.</li>
</ul>
<h2>frank-small — the eyes</h2>
<ul>
<li><strong>Model:</strong> Gemma4-12B QAT (HauhauCS Balanced, Q4_K_M) with MTP + n-gram speculative decoding.</li>
<li><strong>Hardware:</strong> Dankclaw's RTX 3090.</li>
<li><strong>Best for:</strong> anything with a picture — screenshots, photos, diagrams. Fastest decode of the fleet at long context, and the endpoint that gets most daily traffic.</li>
<li><strong>Model:</strong> Gemma4-12B QAT (Balanced, Q4_K_M, 7.4 GiB).</li>
<li><strong>Capacity:</strong> one million tokens of pooled context across four simultaneous conversations (up to 262k each).</li>
<li><strong>Best for:</strong> anything with a picture — screenshots, photos, diagrams. Fastest decode of the fleet at long context, and the endpoint that gets most daily traffic.</li>
</ul>
<h2>frank-medium — the 27B generalist</h2>
<ul>
<li><strong>Model:</strong> Qwen3.8-27B-Uncensored at FP8, on vllm-radiance with a DFlash2 draft head.</li>
<li><strong>Hardware:</strong> Dankserver's two Radeon R9700s as ONE tensor-parallel engine (TP=2).</li>
<li><strong>Best for:</strong> general chat and reasoning when the big brain is busy; the biggest pure-language model we run, and the fastest we have measured.</li>
<li><strong>Model:</strong> Qwen3.8-27B-Uncensored, FP8 (~31 GiB).</li>
<li><strong>Capacity:</strong> 262k-token context shared by up to eight conversations at once. It can see pictures too; <code>frank-small</code> is the faster eye and holds four conversations.</li>
<li><strong>Best for:</strong> general chat and reasoning when the big brain is busy — and the only seat with eight chairs at once.</li>
</ul>
<p class="foot-note">Which one to pick? Screenshots and photos: <code>frank-small</code>.
+3 -3
View File
@@ -255,7 +255,7 @@
"name": "frank-large",
"category": "user",
"section": "AI",
"description": "The big brain. Qwen3.8-Flash-Next UD-IQ4_XS on unsloth llama.cpp, running on Dankclaw's Strix Halo iGPU. Text-only; one conversation resident at a time.",
"description": "Qwen3.8-Flash-Next (UD-IQ4_XS, 87.3 GiB) — 200k-token context, one conversation at a time. The big brain: long, thoughtful text conversations. Text only; it cannot see images.",
"url": "",
"docs": "/docs#models",
"probe": "127.0.0.1:7770",
@@ -267,7 +267,7 @@
"name": "frank-medium",
"category": "user",
"section": "AI",
"description": "The 27B generalist. Qwen3.8-27B-Uncensored at FP8 on vllm-radiance, one tensor-parallel process across Dankserver's two R9700s with a DFlash2 drafter; 262k-token context shared by up to eight conversations.",
"description": "Qwen3.8-27B-Uncensored (FP8, ~31 GiB) — 262k-token context shared by up to eight conversations. The generalist: chat and reasoning, and it sees images.",
"url": "",
"docs": "/docs#models",
"probe": "192.168.0.235:7770",
@@ -279,7 +279,7 @@
"name": "frank-small",
"category": "user",
"section": "AI",
"description": "The vision path. HauhauCS Gemma4-12B QAT (Balanced, Q4_K_M) with MTP + ngram spec-decode on Dankclaw's RTX 3090. Sees images; 1M-token pool across four conversations.",
"description": "Gemma4-12B QAT (Q4_K_M, 7.4 GiB) — 1M-token pool across four 262k-token conversations. The eyes: screenshots, photos, diagrams; the fastest of the three.",
"url": "",
"docs": "/docs#models",
"probe": "127.0.0.1:7771",
+4
View File
@@ -41,6 +41,10 @@ setup() {
grep -q "repeat(auto-fill" "$BASE/style.css"
}
@test "the user page keeps the AI section at the bottom" {
grep -q "user: \['Web Apps', 'Media Library Apps', 'AI'\]" "$BASE/app.js"
}
@test "WIP badges distinguish open from closed work" {
grep -q "WIP: OPEN" "$BASE/app.js"
grep -q "WIP: CLOSED" "$BASE/app.js"