Files
nexus/Hermes/xingzhi/infographic-llm-wiki-sync.svg
2026-04-20 16:01:56 +08:00

145 lines
7.4 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" width="3000" height="2000" viewBox="0 0 3000 2000">
<defs>
<filter id="chalk" x="-20%" y="-20%" width="140%" height="140%">
<feTurbulence baseFrequency="0.8" numOctaves="2" stitchTiles="stitch" result="t" />
<feColorMatrix type="saturate" values="0" in="t" result="t2"/>
<feBlend in="SourceGraphic" in2="t2" mode="overlay"/>
</filter>
<linearGradient id="bggrad" x1="0" x2="1" y1="0" y2="1">
<stop offset="0%" stop-color="#0b0b0b"/>
<stop offset="100%" stop-color="#111111"/>
</linearGradient>
<style>
.title { font: 64px/1.1 'Helvetica Neue', Arial, sans-serif; fill: #fff; font-weight:700 }
.subtitle { font: 28px/1.1 'Helvetica Neue', Arial, sans-serif; fill:#ddd }
.timeline-label { font: 20px 'Helvetica Neue', Arial, sans-serif; fill:#f6f6f6 }
.box-title { font:22px 'Helvetica Neue', Arial, sans-serif; fill:#fff; font-weight:700 }
.box-body { font:18px 'Helvetica Neue', Arial, sans-serif; fill:#f2f2f2 }
.datasrc { font:16px 'Helvetica Neue', Arial, sans-serif; fill:#cfcfcf }
.caption { font:18px 'Helvetica Neue', Arial, sans-serif; fill:#ddd }
</style>
</defs>
<!-- background -->
<rect width="100%" height="100%" fill="url(#bggrad)"/>
<!-- Title -->
<g transform="translate(120,80)">
<text class="title">llm-wiki-sync — 从零散笔记到结构化 Wiki</text>
<text class="subtitle" transform="translate(0,70)">把 raw/ 里的素材自动解析为 Source 页面、实体与图谱chalkboard 风格)</text>
</g>
<!-- Timeline (left-to-right) -->
<g transform="translate(140,220)">
<line x1="0" y1="0" x2="2600" y2="0" stroke="#3a3a3a" stroke-width="6" stroke-linecap="round"/>
<!-- nodes -->
<g transform="translate(0,-40)">
<circle cx="0" cy="40" r="28" fill="#2e8b57" stroke="#fff" stroke-width="3"/>
<text class="timeline-label" x="0" y="90" text-anchor="middle">raw/ (source)</text>
</g>
<g transform="translate(600,-40)">
<circle cx="0" cy="40" r="28" fill="#f39c12" stroke="#fff" stroke-width="3"/>
<text class="timeline-label" x="0" y="90" text-anchor="middle">ingest</text>
</g>
<g transform="translate(1200,-40)">
<circle cx="0" cy="40" r="28" fill="#d35400" stroke="#fff" stroke-width="3"/>
<text class="timeline-label" x="0" y="90" text-anchor="middle">extract</text>
</g>
<g transform="translate(1800,-40)">
<circle cx="0" cy="40" r="28" fill="#2980b9" stroke="#fff" stroke-width="3"/>
<text class="timeline-label" x="0" y="90" text-anchor="middle">wiki / sources</text>
</g>
<g transform="translate(2400,-40)">
<circle cx="0" cy="40" r="28" fill="#8e44ad" stroke="#fff" stroke-width="3"/>
<text class="timeline-label" x="0" y="90" text-anchor="middle">graph → quartz</text>
</g>
</g>
<!-- Flowchart (center) -->
<g transform="translate(260,380)">
<!-- ingest box -->
<rect x="0" y="0" width="420" height="110" rx="12" fill="#141414" stroke="#ffffff22" stroke-width="2" filter="url(#chalk)"/>
<text class="box-title" x="20" y="34">1. Parse & Normalize</text>
<text class="box-body" x="20" y="64">frontmatter, metadata, language detection</text>
<text class="box-body" x="20" y="88">split sections, clean formatting</text>
<!-- arrow to extract -->
<line x1="450" y1="55" x2="710" y2="55" stroke="#ffffff55" stroke-width="6" marker-end="url(#arrow)"/>
<!-- extract box -->
<rect x="760" y="0" width="480" height="160" rx="12" fill="#141414" stroke="#ffffff22" stroke-width="2"/>
<text class="box-title" x="780" y="38">2. LLM Extraction</text>
<text class="box-body" x="780" y="70">Summary (24 sentences)</text>
<text class="box-body" x="780" y="98">Key Claims · Quotes · Concepts · Entities</text>
<text class="box-body" x="780" y="126">Connections (A → depends_on → B)</text>
<!-- arrow to wiki -->
<line x1="1250" y1="80" x2="1480" y2="80" stroke="#ffffff55" stroke-width="6"/>
<!-- wiki box -->
<rect x="1510" y="-20" width="540" height="220" rx="12" fill="#141414" stroke="#ffffff22" stroke-width="2"/>
<text class="box-title" x="1530" y="20">3. Write Source Page</text>
<text class="box-body" x="1530" y="56">frontmatter + Summary + Claims + Quotes</text>
<text class="box-body" x="1530" y="86">Create/Update Entities & Concepts pages</text>
<text class="box-body" x="1530" y="116">Append ingest log (git & audit)</text>
<text class="box-body" x="1530" y="146">Optional: graph rebuild → graph.json / graph.html</text>
</g>
<!-- callouts on right -->
<g transform="translate(1820,700)">
<rect x="0" y="0" width="1080" height="360" rx="14" fill="#0f0f0f" stroke="#ffffff11" stroke-width="2"/>
<text class="box-title" x="28" y="42">Key Outputs & Callouts</text>
<g transform="translate(28,70)">
<rect x="0" y="0" width="320" height="120" rx="10" fill="#151515" stroke="#ffffff11"/>
<text class="box-title" x="18" y="30">Summary</text>
<text class="box-body" x="18" y="60">24 concise lines for search & index</text>
</g>
<g transform="translate(360,70)">
<rect x="0" y="0" width="320" height="120" rx="10" fill="#151515" stroke="#ffffff11"/>
<text class="box-title" x="18" y="30">Entities & Concepts</text>
<text class="box-body" x="18" y="60">Normalized pages: wiki/entities/, wiki/concepts/</text>
</g>
<g transform="translate(700,70)">
<rect x="0" y="0" width="320" height="120" rx="10" fill="#151515" stroke="#ffffff11"/>
<text class="box-title" x="18" y="30">Connections</text>
<text class="box-body" x="18" y="60">Graph edges for visual discovery (graph.json)</text>
</g>
<g transform="translate(28,210)">
<rect x="0" y="0" width="990" height="120" rx="10" fill="#151515" stroke="#ffffff11"/>
<text class="box-title" x="18" y="36">Operational Notes</text>
<text class="box-body" x="18" y="66">Batch size 310, audit logs, git checkpoints, Quartz for static export</text>
</g>
</g>
<!-- footer / data sources -->
<g transform="translate(120,1200)">
<text class="datasrc">Data sources: Karpathy gist (LLM Wiki), SamurAI llm-wiki-agent (github.com/SamurAIGPT/llm-wiki-agent), Quartz (jackyzha0/quartz)</text>
<rect x="0" y="36" width="2760" height="320" rx="8" fill="#0d0d0d" stroke="#ffffff11"/>
<text class="caption" x="20" y="80">Caption: Chalkboard-style infographic summarizing llm-wiki-sync — an automated pipeline to convert scattered notes (raw/) into structured wiki pages, entities, and a graph for long-term reuse.</text>
<text class="datasrc" x="20" y="120">Annotations: include source links in wiki: https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f; https://github.com/SamurAIGPT/llm-wiki-agent; https://github.com/jackyzha0/quartz</text>
</g>
<!-- visual arrow marker definition -->
<defs>
<marker id="arrow" markerWidth="10" markerHeight="10" refX="8" refY="5" orient="auto">
<path d="M0,0 L10,5 L0,10 z" fill="#ffffffcc" />
</marker>
</defs>
<!-- alt text as comment -->
<!-- ALT: Infographic showing llm-wiki-sync pipeline: timeline from raw -> ingest -> extract -> wiki -> graph, central flowchart of parse -> LLM extraction -> write source page, callouts for Summary, Entities, Connections, footer with data sources and caption. Chalkboard visual theme (dark background, white/colored highlights). -->
</svg>