145 lines
7.4 KiB
XML
145 lines
7.4 KiB
XML
<?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 (2–4 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">2–4 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 3–10, 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>
|