post(ai): the five-step AI roadmap — what I actually run in production (EN+ZH) + og/banner
Deploy / build (push) Successful in 2m34s

This commit is contained in:
hoelee committed 2026-10-13 21:59:22 +08:00
1 parent d2b15d684f
commit 5216f0761b
6 files changed
+367

No files matched your search

+17
View File
@@ -1203,6 +1203,23 @@ BANNERS['does-hevc-actually-shrink-your-files'] = {
],
};
BANNERS['five-step-ai-roadmap-what-i-actually-run'] = {
titlebar: "root@desktop — five steps, three running",
lines: [
{ t: 'cmd', text: "roadmap: 5 steps → 1 fundamentals … 5 fine-tuning" }, { t: 'dim', text: "a syllabus says what to study, not what runs" },
{ t: 'cmd', text: "mem0 + LiteLLM + pgvector on the NAS · port 20015" }, { t: 'err', text: "502 conversion failed — multipart part had no Content-Type" },
{ t: 'cmd', text: "whisper large-v3 · RTX 3060 12 GB · 57 s video → 8 s" }, { t: 'ok', text: "POST /memories · GET /search — two calls, per user_id" },
{ t: 'hl', text: "toggle idle: 4,906 MiB → 1,321 MiB VRAM" }, { t: 'err', text: "step 5 fine-tuning: never done — and that is deliberate" },
],
flow: [
{ n: '1', label: "read the diagrams" },
{ n: '2', label: "prompt · automate" },
{ n: '3', label: "RAG · ingest" },
{ n: '4', label: "agents · loop" },
{ n: '5', label: "fine-tune — skipped" },
],
};
// ---------- read frontmatter ----------
const postPath = join(ROOT, 'src', 'content', 'posts', `${slug}.md`);
let category = 'devops';
+5
View File
@@ -367,6 +367,11 @@ TERMINALS['does-hevc-actually-shrink-your-files'] = `
<div class="line"><span class="prompt">$</span><span class="cmd">libx265 -crf 26 -> 56.7%</span></div>
<div class="line"><span class="prompt">&nbsp;</span><span class="cmd">min SSIM 0.988 · 22% smaller than NVENC</span><span class="fix">-> measured</span></div>`;
TERMINALS['five-step-ai-roadmap-what-i-actually-run'] = `
<div class="line"><span class="prompt">$</span><span class="cmd">roadmap: 1 fundamentals · 2 prompting · 3 RAG · 4 agents · 5 fine-tuning</span></div>
<div class="line"><span class="prompt">&nbsp;</span><span class="err">step 5: never done — my failures were bytes, mounts and licences</span></div>
<div class="line"><span class="prompt">$</span><span class="cmd">3 of 5 running here · 57 s video → text in ~8 s</span><span class="fix">→ transcript ✓</span></div>`;
// ---------- read frontmatter ----------
const postPath = join(ROOT, 'src', 'content', 'posts', `${slug}.md`);
if (!existsSync(postPath)) {