【delete】 Remove unused assets and screenshots
@@ -1,198 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1280 760">
|
|
||||||
<defs>
|
|
||||||
<style>
|
|
||||||
@import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600;700&display=swap');
|
|
||||||
text { font-family: 'JetBrains Mono', 'SF Mono', 'Cascadia Code', monospace; }
|
|
||||||
</style>
|
|
||||||
<pattern id="grid" width="40" height="40" patternUnits="userSpaceOnUse">
|
|
||||||
<path d="M 40 0 L 0 0 0 40" fill="none" stroke="#1e293b" stroke-width="0.5"/>
|
|
||||||
</pattern>
|
|
||||||
<marker id="arrow-cyan" markerWidth="10" markerHeight="7" refX="9" refY="3.5" orient="auto">
|
|
||||||
<polygon points="0 0, 10 3.5, 0 7" fill="#22d3ee"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="arrow-slate" markerWidth="10" markerHeight="7" refX="9" refY="3.5" orient="auto">
|
|
||||||
<polygon points="0 0, 10 3.5, 0 7" fill="#64748b"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="arrow-rose" markerWidth="10" markerHeight="7" refX="9" refY="3.5" orient="auto">
|
|
||||||
<polygon points="0 0, 10 3.5, 0 7" fill="#fb7185"/>
|
|
||||||
</marker>
|
|
||||||
<marker id="arrow-emerald" markerWidth="10" markerHeight="7" refX="9" refY="3.5" orient="auto">
|
|
||||||
<polygon points="0 0, 10 3.5, 0 7" fill="#34d399"/>
|
|
||||||
</marker>
|
|
||||||
</defs>
|
|
||||||
|
|
||||||
<!-- Background -->
|
|
||||||
<rect width="1280" height="760" fill="#0f172a"/>
|
|
||||||
<rect width="1280" height="760" fill="url(#grid)"/>
|
|
||||||
|
|
||||||
<!-- Title -->
|
|
||||||
<text x="40" y="44" fill="#f8fafc" font-size="16" font-weight="700">MemoryBear — System Architecture</text>
|
|
||||||
<text x="40" y="62" fill="#64748b" font-size="9">RedBear AI · Next-Generation AI Memory Management System</text>
|
|
||||||
|
|
||||||
<!-- ═══════════════════════════════════════════════════════════════ -->
|
|
||||||
<!-- ROW 1: FastAPI Service Layer y=80..150 (full width center) -->
|
|
||||||
<!-- ═══════════════════════════════════════════════════════════════ -->
|
|
||||||
<rect x="200" y="80" width="880" height="70" rx="8" fill="#0f172a"/>
|
|
||||||
<rect x="200" y="80" width="880" height="70" rx="8" fill="rgba(8,51,68,0.5)" stroke="#22d3ee" stroke-width="1.5"/>
|
|
||||||
<!-- left badge -->
|
|
||||||
<rect x="220" y="97" width="160" height="36" rx="5" fill="rgba(8,51,68,0.8)" stroke="#22d3ee" stroke-width="1" stroke-dasharray="4,2"/>
|
|
||||||
<text x="300" y="112" fill="#22d3ee" font-size="9" font-weight="600" text-anchor="middle">Management API</text>
|
|
||||||
<text x="300" y="126" fill="#94a3b8" font-size="8" text-anchor="middle">/api · JWT Auth</text>
|
|
||||||
<!-- center label -->
|
|
||||||
<text x="640" y="112" fill="#f8fafc" font-size="13" font-weight="700" text-anchor="middle">FastAPI Service Layer</text>
|
|
||||||
<text x="640" y="128" fill="#94a3b8" font-size="9" text-anchor="middle">Uvicorn · avg latency <50ms · 1000 QPS · Swagger auto-docs</text>
|
|
||||||
<!-- right badge -->
|
|
||||||
<rect x="900" y="97" width="160" height="36" rx="5" fill="rgba(8,51,68,0.8)" stroke="#22d3ee" stroke-width="1" stroke-dasharray="4,2"/>
|
|
||||||
<text x="980" y="112" fill="#22d3ee" font-size="9" font-weight="600" text-anchor="middle">Service API</text>
|
|
||||||
<text x="980" y="126" fill="#94a3b8" font-size="8" text-anchor="middle">/v1 · API Key Auth</text>
|
|
||||||
|
|
||||||
<!-- Arrows: FastAPI → 3 engines -->
|
|
||||||
<line x1="430" y1="150" x2="310" y2="220" stroke="#22d3ee" stroke-width="1.5" marker-end="url(#arrow-cyan)"/>
|
|
||||||
<line x1="640" y1="150" x2="640" y2="220" stroke="#22d3ee" stroke-width="1.5" marker-end="url(#arrow-cyan)"/>
|
|
||||||
<line x1="850" y1="150" x2="970" y2="220" stroke="#22d3ee" stroke-width="1.5" marker-end="url(#arrow-cyan)"/>
|
|
||||||
|
|
||||||
<!-- ═══════════════════════════════════════════════════════════════ -->
|
|
||||||
<!-- ROW 2: Three Engines y=220..340 -->
|
|
||||||
<!-- ═══════════════════════════════════════════════════════════════ -->
|
|
||||||
|
|
||||||
<!-- Extraction Engine x=160..400 -->
|
|
||||||
<rect x="160" y="220" width="240" height="120" rx="8" fill="#0f172a"/>
|
|
||||||
<rect x="160" y="220" width="240" height="120" rx="8" fill="rgba(8,51,68,0.45)" stroke="#22d3ee" stroke-width="1.5"/>
|
|
||||||
<text x="280" y="246" fill="#22d3ee" font-size="11" font-weight="700" text-anchor="middle">Extraction Engine</text>
|
|
||||||
<line x1="178" y1="254" x2="382" y2="254" stroke="#22d3ee" stroke-width="0.5" opacity="0.4"/>
|
|
||||||
<text x="280" y="272" fill="#94a3b8" font-size="8" text-anchor="middle">· Statements extraction</text>
|
|
||||||
<text x="280" y="287" fill="#94a3b8" font-size="8" text-anchor="middle">· Triplet (entity + relation)</text>
|
|
||||||
<text x="280" y="302" fill="#94a3b8" font-size="8" text-anchor="middle">· Timestamp anchoring</text>
|
|
||||||
<text x="280" y="317" fill="#94a3b8" font-size="8" text-anchor="middle">· Smart summarization</text>
|
|
||||||
|
|
||||||
<!-- Hybrid Search x=520..760 -->
|
|
||||||
<rect x="520" y="220" width="240" height="120" rx="8" fill="#0f172a"/>
|
|
||||||
<rect x="520" y="220" width="240" height="120" rx="8" fill="rgba(76,29,149,0.35)" stroke="#a78bfa" stroke-width="1.5"/>
|
|
||||||
<text x="640" y="246" fill="#a78bfa" font-size="11" font-weight="700" text-anchor="middle">Hybrid Search</text>
|
|
||||||
<line x1="538" y1="254" x2="742" y2="254" stroke="#a78bfa" stroke-width="0.5" opacity="0.4"/>
|
|
||||||
<text x="640" y="272" fill="#94a3b8" font-size="8" text-anchor="middle">· Elasticsearch keyword</text>
|
|
||||||
<text x="640" y="287" fill="#94a3b8" font-size="8" text-anchor="middle">· BERT semantic vector</text>
|
|
||||||
<text x="640" y="302" fill="#94a3b8" font-size="8" text-anchor="middle">· Hybrid fusion (92% acc)</text>
|
|
||||||
<text x="640" y="317" fill="#94a3b8" font-size="8" text-anchor="middle">· +35% vs single-mode</text>
|
|
||||||
|
|
||||||
<!-- Reflection Engine x=880..1120 -->
|
|
||||||
<rect x="880" y="220" width="240" height="120" rx="8" fill="#0f172a"/>
|
|
||||||
<rect x="880" y="220" width="240" height="120" rx="8" fill="rgba(6,78,59,0.4)" stroke="#34d399" stroke-width="1.5"/>
|
|
||||||
<text x="1000" y="246" fill="#34d399" font-size="11" font-weight="700" text-anchor="middle">Reflection Engine</text>
|
|
||||||
<line x1="898" y1="254" x2="1102" y2="254" stroke="#34d399" stroke-width="0.5" opacity="0.4"/>
|
|
||||||
<text x="1000" y="272" fill="#94a3b8" font-size="8" text-anchor="middle">· Consistency checks</text>
|
|
||||||
<text x="1000" y="287" fill="#94a3b8" font-size="8" text-anchor="middle">· Value assessment</text>
|
|
||||||
<text x="1000" y="302" fill="#94a3b8" font-size="8" text-anchor="middle">· Association optimization</text>
|
|
||||||
<text x="1000" y="317" fill="#94a3b8" font-size="8" text-anchor="middle">· Daily auto-schedule</text>
|
|
||||||
|
|
||||||
<!-- Arrows: 3 engines → Storage -->
|
|
||||||
<line x1="280" y1="340" x2="380" y2="420" stroke="#64748b" stroke-width="1.5" marker-end="url(#arrow-slate)"/>
|
|
||||||
<line x1="640" y1="340" x2="640" y2="420" stroke="#64748b" stroke-width="1.5" marker-end="url(#arrow-slate)"/>
|
|
||||||
<line x1="1000" y1="340" x2="900" y2="420" stroke="#64748b" stroke-width="1.5" marker-end="url(#arrow-slate)"/>
|
|
||||||
|
|
||||||
<!-- ═══════════════════════════════════════════════════════════════ -->
|
|
||||||
<!-- ROW 3: Knowledge Storage Layer y=420..540 -->
|
|
||||||
<!-- ═══════════════════════════════════════════════════════════════ -->
|
|
||||||
<!-- Outer region boundary — starts at x=120, well clear of left edge -->
|
|
||||||
<rect x="120" y="415" width="1040" height="130" rx="10" fill="none" stroke="#fbbf24" stroke-width="1" stroke-dasharray="8,4"/>
|
|
||||||
<text x="140" y="432" fill="#fbbf24" font-size="9" font-weight="600">Knowledge Storage Layer</text>
|
|
||||||
|
|
||||||
<!-- Neo4j x=140..340 -->
|
|
||||||
<rect x="140" y="442" width="200" height="80" rx="6" fill="#0f172a"/>
|
|
||||||
<rect x="140" y="442" width="200" height="80" rx="6" fill="rgba(76,29,149,0.4)" stroke="#a78bfa" stroke-width="1.5"/>
|
|
||||||
<text x="240" y="466" fill="#a78bfa" font-size="10" font-weight="600" text-anchor="middle">Neo4j Graph DB</text>
|
|
||||||
<text x="240" y="482" fill="#94a3b8" font-size="8" text-anchor="middle">Knowledge graph · Entities</text>
|
|
||||||
<text x="240" y="496" fill="#94a3b8" font-size="8" text-anchor="middle">12 relation types · Visual</text>
|
|
||||||
|
|
||||||
<!-- PostgreSQL x=360..560 -->
|
|
||||||
<rect x="360" y="442" width="200" height="80" rx="6" fill="#0f172a"/>
|
|
||||||
<rect x="360" y="442" width="200" height="80" rx="6" fill="rgba(8,51,68,0.5)" stroke="#22d3ee" stroke-width="1.5"/>
|
|
||||||
<text x="460" y="466" fill="#22d3ee" font-size="10" font-weight="600" text-anchor="middle">PostgreSQL</text>
|
|
||||||
<text x="460" y="482" fill="#94a3b8" font-size="8" text-anchor="middle">Primary DB · SQLAlchemy</text>
|
|
||||||
<text x="460" y="496" fill="#94a3b8" font-size="8" text-anchor="middle">Alembic migrations</text>
|
|
||||||
|
|
||||||
<!-- Elasticsearch x=580..780 -->
|
|
||||||
<rect x="580" y="442" width="200" height="80" rx="6" fill="#0f172a"/>
|
|
||||||
<rect x="580" y="442" width="200" height="80" rx="6" fill="rgba(120,53,15,0.35)" stroke="#fbbf24" stroke-width="1.5"/>
|
|
||||||
<text x="680" y="466" fill="#fbbf24" font-size="10" font-weight="600" text-anchor="middle">Elasticsearch 8.x</text>
|
|
||||||
<text x="680" y="482" fill="#94a3b8" font-size="8" text-anchor="middle">Keyword + vector index</text>
|
|
||||||
<text x="680" y="496" fill="#94a3b8" font-size="8" text-anchor="middle">BERT embeddings</text>
|
|
||||||
|
|
||||||
<!-- Redis x=800..1000 -->
|
|
||||||
<rect x="800" y="442" width="200" height="80" rx="6" fill="#0f172a"/>
|
|
||||||
<rect x="800" y="442" width="200" height="80" rx="6" fill="rgba(136,19,55,0.35)" stroke="#fb7185" stroke-width="1.5"/>
|
|
||||||
<text x="900" y="466" fill="#fb7185" font-size="10" font-weight="600" text-anchor="middle">Redis 6.0+</text>
|
|
||||||
<text x="900" y="482" fill="#94a3b8" font-size="8" text-anchor="middle">Cache · Celery broker</text>
|
|
||||||
<text x="900" y="496" fill="#94a3b8" font-size="8" text-anchor="middle">3 task queues</text>
|
|
||||||
|
|
||||||
<!-- Arrow: Storage → Forgetting -->
|
|
||||||
<line x1="640" y1="545" x2="640" y2="590" stroke="#fb7185" stroke-width="1.5" marker-end="url(#arrow-rose)"/>
|
|
||||||
|
|
||||||
<!-- ═══════════════════════════════════════════════════════════════ -->
|
|
||||||
<!-- ROW 4: Bottom row — MCP | Forgetting Engine | Celery Workers -->
|
|
||||||
<!-- y=590..680 -->
|
|
||||||
<!-- ═══════════════════════════════════════════════════════════════ -->
|
|
||||||
|
|
||||||
<!-- MCP / Agent panel x=20..170 y=590..680 -->
|
|
||||||
<rect x="20" y="590" width="150" height="130" rx="8" fill="none" stroke="#60a5fa" stroke-width="1" stroke-dasharray="6,3"/>
|
|
||||||
<text x="95" y="607" fill="#60a5fa" font-size="8" font-weight="600" text-anchor="middle">MCP / Agent</text>
|
|
||||||
|
|
||||||
<rect x="32" y="614" width="126" height="28" rx="4" fill="rgba(59,130,246,0.2)" stroke="#60a5fa" stroke-width="1"/>
|
|
||||||
<text x="95" y="626" fill="#60a5fa" font-size="8" font-weight="600" text-anchor="middle">fastmcp</text>
|
|
||||||
<text x="95" y="637" fill="#94a3b8" font-size="7" text-anchor="middle">MCP tools</text>
|
|
||||||
|
|
||||||
<rect x="32" y="648" width="126" height="28" rx="4" fill="rgba(59,130,246,0.2)" stroke="#60a5fa" stroke-width="1"/>
|
|
||||||
<text x="95" y="660" fill="#60a5fa" font-size="8" font-weight="600" text-anchor="middle">LangGraph Agent</text>
|
|
||||||
<text x="95" y="671" fill="#94a3b8" font-size="7" text-anchor="middle">LangChain LLM</text>
|
|
||||||
|
|
||||||
<rect x="32" y="682" width="126" height="28" rx="4" fill="rgba(59,130,246,0.2)" stroke="#60a5fa" stroke-width="1"/>
|
|
||||||
<text x="95" y="694" fill="#60a5fa" font-size="8" font-weight="600" text-anchor="middle">OpenAI / DashScope</text>
|
|
||||||
<text x="95" y="705" fill="#94a3b8" font-size="7" text-anchor="middle">AWS Bedrock / Xinference</text>
|
|
||||||
|
|
||||||
<!-- connect line MCP → storage layer -->
|
|
||||||
<line x1="170" y1="640" x2="200" y2="482" stroke="#60a5fa" stroke-width="1" stroke-dasharray="4,2"/>
|
|
||||||
|
|
||||||
<!-- Forgetting Engine x=390..890 y=590..670 -->
|
|
||||||
<rect x="390" y="590" width="500" height="80" rx="8" fill="#0f172a"/>
|
|
||||||
<rect x="390" y="590" width="500" height="80" rx="8" fill="rgba(136,19,55,0.35)" stroke="#fb7185" stroke-width="1.5"/>
|
|
||||||
<text x="640" y="616" fill="#fb7185" font-size="12" font-weight="700" text-anchor="middle">Forgetting Engine</text>
|
|
||||||
<line x1="410" y1="624" x2="870" y2="624" stroke="#fb7185" stroke-width="0.5" opacity="0.4"/>
|
|
||||||
<text x="640" y="641" fill="#94a3b8" font-size="8" text-anchor="middle">Memory strength model · Time decay · Dormancy → Decay → Clearance</text>
|
|
||||||
<text x="640" y="656" fill="#94a3b8" font-size="8" text-anchor="middle">Redundancy < 8% · Synaptic pruning inspired · Cold storage archive</text>
|
|
||||||
|
|
||||||
<!-- Celery Workers panel x=1110..1260 y=590..720 -->
|
|
||||||
<rect x="1110" y="590" width="150" height="130" rx="8" fill="none" stroke="#34d399" stroke-width="1" stroke-dasharray="6,3"/>
|
|
||||||
<text x="1185" y="607" fill="#34d399" font-size="8" font-weight="600" text-anchor="middle">Celery Workers</text>
|
|
||||||
|
|
||||||
<rect x="1122" y="614" width="126" height="28" rx="5" fill="rgba(6,78,59,0.3)" stroke="#34d399" stroke-width="1"/>
|
|
||||||
<text x="1185" y="626" fill="#34d399" font-size="8" font-weight="600" text-anchor="middle">memory_tasks</text>
|
|
||||||
<text x="1185" y="637" fill="#94a3b8" font-size="7" text-anchor="middle">threads · 100 concurrency</text>
|
|
||||||
|
|
||||||
<rect x="1122" y="648" width="126" height="28" rx="5" fill="rgba(6,78,59,0.3)" stroke="#34d399" stroke-width="1"/>
|
|
||||||
<text x="1185" y="660" fill="#34d399" font-size="8" font-weight="600" text-anchor="middle">document_tasks</text>
|
|
||||||
<text x="1185" y="671" fill="#94a3b8" font-size="7" text-anchor="middle">prefork · 4 concurrency</text>
|
|
||||||
|
|
||||||
<rect x="1122" y="682" width="126" height="28" rx="5" fill="rgba(6,78,59,0.3)" stroke="#34d399" stroke-width="1"/>
|
|
||||||
<text x="1185" y="694" fill="#34d399" font-size="8" font-weight="600" text-anchor="middle">periodic_tasks</text>
|
|
||||||
<text x="1185" y="705" fill="#94a3b8" font-size="7" text-anchor="middle">prefork · 2 concurrency</text>
|
|
||||||
|
|
||||||
<!-- connect line Celery → Redis -->
|
|
||||||
<line x1="1110" y1="640" x2="1000" y2="482" stroke="#34d399" stroke-width="1" stroke-dasharray="4,2"/>
|
|
||||||
|
|
||||||
<!-- ═══════════════════════════════════════════════════════════════ -->
|
|
||||||
<!-- Legend -->
|
|
||||||
<!-- ═══════════════════════════════════════════════════════════════ -->
|
|
||||||
<rect x="40" y="736" width="8" height="8" rx="1" fill="#22d3ee"/>
|
|
||||||
<text x="54" y="745" fill="#94a3b8" font-size="8">API / Extraction</text>
|
|
||||||
<rect x="170" y="736" width="8" height="8" rx="1" fill="#a78bfa"/>
|
|
||||||
<text x="184" y="745" fill="#94a3b8" font-size="8">Search / Graph</text>
|
|
||||||
<rect x="300" y="736" width="8" height="8" rx="1" fill="#34d399"/>
|
|
||||||
<text x="314" y="745" fill="#94a3b8" font-size="8">Reflection / Workers</text>
|
|
||||||
<rect x="450" y="736" width="8" height="8" rx="1" fill="#fbbf24"/>
|
|
||||||
<text x="464" y="745" fill="#94a3b8" font-size="8">Storage Layer</text>
|
|
||||||
<rect x="560" y="736" width="8" height="8" rx="1" fill="#fb7185"/>
|
|
||||||
<text x="574" y="745" fill="#94a3b8" font-size="8">Forgetting Engine</text>
|
|
||||||
<rect x="680" y="736" width="8" height="8" rx="1" fill="#60a5fa"/>
|
|
||||||
<text x="694" y="745" fill="#94a3b8" font-size="8">MCP / Agent</text>
|
|
||||||
<text x="1240" y="750" fill="#334155" font-size="7" text-anchor="end">RedBear AI · MemoryBear v1.0</text>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 15 KiB |
@@ -1,170 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1400 620">
|
|
||||||
<defs>
|
|
||||||
<style>
|
|
||||||
text { font-family: 'JetBrains Mono', 'SF Mono', 'Cascadia Code', monospace; }
|
|
||||||
</style>
|
|
||||||
<pattern id="grid" width="40" height="40" patternUnits="userSpaceOnUse">
|
|
||||||
<path d="M 40 0 L 0 0 0 40" fill="none" stroke="#1e293b" stroke-width="0.5"/>
|
|
||||||
</pattern>
|
|
||||||
</defs>
|
|
||||||
|
|
||||||
<!-- Background -->
|
|
||||||
<rect width="1400" height="620" fill="#0f172a"/>
|
|
||||||
<rect width="1400" height="620" fill="url(#grid)"/>
|
|
||||||
|
|
||||||
<!-- Title -->
|
|
||||||
<text x="40" y="40" fill="#f8fafc" font-size="15" font-weight="700">MemoryBear — Project Structure</text>
|
|
||||||
<text x="40" y="58" fill="#64748b" font-size="9">Monorepo: Python Backend (api/) + React Frontend (web/) + Benchmark + Sandbox</text>
|
|
||||||
|
|
||||||
<!-- ══════════════════════════════════════════════════════════ -->
|
|
||||||
<!-- ROOT level x=40 -->
|
|
||||||
<!-- ══════════════════════════════════════════════════════════ -->
|
|
||||||
<text x="40" y="90" fill="#94a3b8" font-size="10">MemoryBear/</text>
|
|
||||||
<!-- root items -->
|
|
||||||
<text x="60" y="110" fill="#fbbf24" font-size="10">├── api/</text>
|
|
||||||
<text x="200" y="110" fill="#475569" font-size="9">Backend (FastAPI + Celery)</text>
|
|
||||||
<text x="60" y="126" fill="#fbbf24" font-size="10">├── web/</text>
|
|
||||||
<text x="200" y="126" fill="#475569" font-size="9">Frontend (React + Vite)</text>
|
|
||||||
<text x="60" y="142" fill="#64748b" font-size="10">├── redbear-mem-benchmark/</text>
|
|
||||||
<text x="340" y="142" fill="#475569" font-size="9">Benchmark suite (git submodule)</text>
|
|
||||||
<text x="60" y="158" fill="#64748b" font-size="10">├── sandbox/</text>
|
|
||||||
<text x="200" y="158" fill="#475569" font-size="9">Sandboxed code execution service</text>
|
|
||||||
<text x="60" y="174" fill="#64748b" font-size="10">├── docs/</text>
|
|
||||||
<text x="200" y="174" fill="#475569" font-size="9">Architecture diagrams & docs</text>
|
|
||||||
<text x="60" y="190" fill="#64748b" font-size="10">└── ontology_entities.json</text>
|
|
||||||
<text x="340" y="190" fill="#475569" font-size="9">Default ontology configuration</text>
|
|
||||||
|
|
||||||
<!-- ══════════════════════════════════════════════════════════ -->
|
|
||||||
<!-- LEFT COLUMN: api/ x=40..660 -->
|
|
||||||
<!-- ══════════════════════════════════════════════════════════ -->
|
|
||||||
|
|
||||||
<!-- api/ header box -->
|
|
||||||
<rect x="40" y="208" width="300" height="22" rx="4" fill="rgba(120,53,15,0.3)" stroke="#fbbf24" stroke-width="1"/>
|
|
||||||
<text x="52" y="223" fill="#fbbf24" font-size="10" font-weight="700">api/ — Backend</text>
|
|
||||||
|
|
||||||
<text x="60" y="246" fill="#94a3b8" font-size="9">├── app/</text>
|
|
||||||
<text x="60" y="261" fill="#64748b" font-size="9">│ ├── main.py</text>
|
|
||||||
<text x="220" y="261" fill="#334155" font-size="8">FastAPI entry, CORS, lifespan</text>
|
|
||||||
<text x="60" y="275" fill="#64748b" font-size="9">│ ├── celery_app.py</text>
|
|
||||||
<text x="220" y="275" fill="#334155" font-size="8">Celery config, task routing</text>
|
|
||||||
<text x="60" y="289" fill="#64748b" font-size="9">│ ├── db.py</text>
|
|
||||||
<text x="220" y="289" fill="#334155" font-size="8">SQLAlchemy sessions</text>
|
|
||||||
<text x="60" y="303" fill="#64748b" font-size="9">│ ├── controllers/</text>
|
|
||||||
<text x="220" y="303" fill="#334155" font-size="8">/api (JWT) · /v1 (API Key)</text>
|
|
||||||
<text x="60" y="317" fill="#64748b" font-size="9">│ ├── services/</text>
|
|
||||||
<text x="220" y="317" fill="#334155" font-size="8">Business logic layer</text>
|
|
||||||
<text x="60" y="331" fill="#64748b" font-size="9">│ ├── repositories/</text>
|
|
||||||
<text x="220" y="331" fill="#334155" font-size="8">PostgreSQL + Neo4j data access</text>
|
|
||||||
<text x="60" y="345" fill="#64748b" font-size="9">│ ├── models/</text>
|
|
||||||
<text x="220" y="345" fill="#334155" font-size="8">SQLAlchemy ORM models</text>
|
|
||||||
<text x="60" y="359" fill="#64748b" font-size="9">│ ├── schemas/</text>
|
|
||||||
<text x="220" y="359" fill="#334155" font-size="8">Pydantic request/response</text>
|
|
||||||
|
|
||||||
<!-- core/ sub-tree -->
|
|
||||||
<text x="60" y="378" fill="#22d3ee" font-size="9">│ └── core/</text>
|
|
||||||
<text x="220" y="378" fill="#334155" font-size="8">Core domain logic</text>
|
|
||||||
|
|
||||||
<text x="80" y="393" fill="#64748b" font-size="9">│ ├── memory/</text>
|
|
||||||
<text x="240" y="393" fill="#334155" font-size="8">Core memory subsystem</text>
|
|
||||||
<text x="100" y="407" fill="#475569" font-size="8">│ │ ├── pipelines/</text>
|
|
||||||
<text x="280" y="407" fill="#334155" font-size="8">WritePipeline orchestration</text>
|
|
||||||
<text x="100" y="420" fill="#475569" font-size="8">│ │ ├── storage_services/</text>
|
|
||||||
<text x="310" y="420" fill="#334155" font-size="8">Extraction · Forgetting · Reflection · Search · Clustering</text>
|
|
||||||
<text x="100" y="433" fill="#475569" font-size="8">│ │ ├── agent/</text>
|
|
||||||
<text x="280" y="433" fill="#334155" font-size="8">LangGraph-based memory agent</text>
|
|
||||||
<text x="100" y="446" fill="#475569" font-size="8">│ │ ├── ontology_services/</text>
|
|
||||||
<text x="310" y="446" fill="#334155" font-size="8">OWL/TTL entity type system</text>
|
|
||||||
<text x="100" y="459" fill="#475569" font-size="8">│ │ ├── analytics/</text>
|
|
||||||
<text x="280" y="459" fill="#334155" font-size="8">Hot tags, activity stats</text>
|
|
||||||
<text x="100" y="472" fill="#475569" font-size="8">│ │ └── utils/</text>
|
|
||||||
<text x="280" y="472" fill="#334155" font-size="8">Jinja2 prompts, embedder, config</text>
|
|
||||||
|
|
||||||
<text x="80" y="488" fill="#64748b" font-size="9">│ ├── rag/</text>
|
|
||||||
<text x="240" y="488" fill="#334155" font-size="8">RAG pipeline · GraphRAG · doc parsing</text>
|
|
||||||
<text x="80" y="501" fill="#64748b" font-size="9">│ ├── workflow/</text>
|
|
||||||
<text x="240" y="501" fill="#334155" font-size="8">Workflow engine (nodes, adapters)</text>
|
|
||||||
<text x="80" y="514" fill="#64748b" font-size="9">│ ├── tools/</text>
|
|
||||||
<text x="240" y="514" fill="#334155" font-size="8">Builtin · Custom · MCP tools</text>
|
|
||||||
<text x="80" y="527" fill="#64748b" font-size="9">│ ├── agent/</text>
|
|
||||||
<text x="240" y="527" fill="#334155" font-size="8">Agent framework</text>
|
|
||||||
<text x="80" y="540" fill="#64748b" font-size="9">│ ├── permissions/</text>
|
|
||||||
<text x="240" y="540" fill="#334155" font-size="8">RBAC permission system</text>
|
|
||||||
<text x="80" y="553" fill="#64748b" font-size="9">│ └── storage/</text>
|
|
||||||
<text x="240" y="553" fill="#334155" font-size="8">Local · OSS · S3 file storage</text>
|
|
||||||
|
|
||||||
<text x="60" y="572" fill="#64748b" font-size="9">├── migrations/</text>
|
|
||||||
<text x="200" y="572" fill="#334155" font-size="8">Alembic DB migrations</text>
|
|
||||||
<text x="60" y="586" fill="#64748b" font-size="9">├── docker-compose.yml</text>
|
|
||||||
<text x="240" y="586" fill="#334155" font-size="8">API + 3 Celery workers + Beat</text>
|
|
||||||
<text x="60" y="600" fill="#64748b" font-size="9">└── env.example</text>
|
|
||||||
<text x="200" y="600" fill="#334155" font-size="8">Environment variable template</text>
|
|
||||||
|
|
||||||
<!-- ══════════════════════════════════════════════════════════ -->
|
|
||||||
<!-- RIGHT COLUMN: web/ x=740..1360 -->
|
|
||||||
<!-- ══════════════════════════════════════════════════════════ -->
|
|
||||||
|
|
||||||
<!-- web/ header box -->
|
|
||||||
<rect x="740" y="208" width="300" height="22" rx="4" fill="rgba(6,78,59,0.3)" stroke="#34d399" stroke-width="1"/>
|
|
||||||
<text x="752" y="223" fill="#34d399" font-size="10" font-weight="700">web/ — Frontend</text>
|
|
||||||
|
|
||||||
<text x="760" y="246" fill="#94a3b8" font-size="9">└── src/</text>
|
|
||||||
|
|
||||||
<text x="780" y="261" fill="#64748b" font-size="9">├── App.tsx</text>
|
|
||||||
<text x="920" y="261" fill="#334155" font-size="8">Root component with routing</text>
|
|
||||||
<text x="780" y="275" fill="#64748b" font-size="9">├── api/</text>
|
|
||||||
<text x="920" y="275" fill="#334155" font-size="8">Axios API client functions</text>
|
|
||||||
|
|
||||||
<!-- views sub-tree -->
|
|
||||||
<text x="780" y="294" fill="#34d399" font-size="9">├── views/</text>
|
|
||||||
<text x="920" y="294" fill="#334155" font-size="8">Page-level route components</text>
|
|
||||||
<text x="800" y="308" fill="#475569" font-size="8">│ ├── MemoryManagement/</text>
|
|
||||||
<text x="980" y="308" fill="#334155" font-size="8">Memory CRUD & visualization</text>
|
|
||||||
<text x="800" y="321" fill="#475569" font-size="8">│ ├── MemoryExtractionEngine/</text>
|
|
||||||
<text x="980" y="321" fill="#334155" font-size="8">Extraction pipeline UI</text>
|
|
||||||
<text x="800" y="334" fill="#475569" font-size="8">│ ├── ForgettingEngine/</text>
|
|
||||||
<text x="980" y="334" fill="#334155" font-size="8">Memory decay management</text>
|
|
||||||
<text x="800" y="347" fill="#475569" font-size="8">│ ├── SelfReflectionEngine/</text>
|
|
||||||
<text x="980" y="347" fill="#334155" font-size="8">Reflection task dashboard</text>
|
|
||||||
<text x="800" y="360" fill="#475569" font-size="8">│ ├── EmotionEngine/</text>
|
|
||||||
<text x="980" y="360" fill="#334155" font-size="8">Emotion extraction view</text>
|
|
||||||
<text x="800" y="373" fill="#475569" font-size="8">│ ├── KnowledgeBase/</text>
|
|
||||||
<text x="980" y="373" fill="#334155" font-size="8">RAG knowledge base management</text>
|
|
||||||
<text x="800" y="386" fill="#475569" font-size="8">│ ├── Ontology/</text>
|
|
||||||
<text x="980" y="386" fill="#334155" font-size="8">Entity/relation type config</text>
|
|
||||||
<text x="800" y="399" fill="#475569" font-size="8">│ ├── Workflow/</text>
|
|
||||||
<text x="980" y="399" fill="#334155" font-size="8">Visual workflow editor</text>
|
|
||||||
<text x="800" y="412" fill="#475569" font-size="8">│ ├── Conversation/</text>
|
|
||||||
<text x="980" y="412" fill="#334155" font-size="8">Chat interface</text>
|
|
||||||
<text x="800" y="425" fill="#475569" font-size="8">│ ├── ApplicationManagement/</text>
|
|
||||||
<text x="980" y="425" fill="#334155" font-size="8">App & API key management</text>
|
|
||||||
<text x="800" y="438" fill="#475569" font-size="8">│ ├── ModelManagement/</text>
|
|
||||||
<text x="980" y="438" fill="#334155" font-size="8">LLM model configuration</text>
|
|
||||||
<text x="800" y="451" fill="#475569" font-size="8">│ └── UserManagement/</text>
|
|
||||||
<text x="980" y="451" fill="#334155" font-size="8">Members, spaces, permissions</text>
|
|
||||||
|
|
||||||
<!-- components / hooks / store -->
|
|
||||||
<text x="780" y="470" fill="#64748b" font-size="9">├── components/</text>
|
|
||||||
<text x="920" y="470" fill="#334155" font-size="8">Chat · D3Graph · Charts · Markdown ···</text>
|
|
||||||
<text x="780" y="484" fill="#64748b" font-size="9">├── hooks/</text>
|
|
||||||
<text x="920" y="484" fill="#334155" font-size="8">Custom React hooks</text>
|
|
||||||
<text x="780" y="498" fill="#64748b" font-size="9">├── store/</text>
|
|
||||||
<text x="920" y="498" fill="#334155" font-size="8">Zustand state management</text>
|
|
||||||
<text x="780" y="512" fill="#64748b" font-size="9">├── i18n/</text>
|
|
||||||
<text x="920" y="512" fill="#334155" font-size="8">i18next · zh / en translations</text>
|
|
||||||
<text x="780" y="526" fill="#64748b" font-size="9">├── routes/</text>
|
|
||||||
<text x="920" y="526" fill="#334155" font-size="8">Route definitions</text>
|
|
||||||
<text x="780" y="540" fill="#64748b" font-size="9">├── utils/</text>
|
|
||||||
<text x="920" y="540" fill="#334155" font-size="8">format · request · stream · validator</text>
|
|
||||||
<text x="780" y="554" fill="#64748b" font-size="9">└── assets/</text>
|
|
||||||
<text x="920" y="554" fill="#334155" font-size="8">Images, fonts</text>
|
|
||||||
|
|
||||||
<!-- tech badges bottom -->
|
|
||||||
<text x="760" y="580" fill="#475569" font-size="8">Stack: React 18 · TypeScript · Vite · Ant Design 5 · Tailwind CSS 4</text>
|
|
||||||
<text x="760" y="594" fill="#475569" font-size="8"> Zustand · AntV X6 · ECharts · D3.js · i18next · Axios</text>
|
|
||||||
|
|
||||||
<!-- vertical divider -->
|
|
||||||
<line x1="700" y1="200" x2="700" y2="610" stroke="#1e293b" stroke-width="1.5" stroke-dasharray="6,4"/>
|
|
||||||
|
|
||||||
<!-- footer -->
|
|
||||||
<text x="1360" y="612" fill="#334155" font-size="7" text-anchor="end">RedBear AI · MemoryBear v1.0</text>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 1.2 MiB |
|
Before Width: | Height: | Size: 76 KiB |
|
Before Width: | Height: | Size: 173 KiB |
|
Before Width: | Height: | Size: 114 KiB |
|
Before Width: | Height: | Size: 1.2 MiB |
|
Before Width: | Height: | Size: 1.3 MiB |
|
Before Width: | Height: | Size: 1.2 MiB |
|
Before Width: | Height: | Size: 59 KiB |
|
Before Width: | Height: | Size: 93 KiB |
|
Before Width: | Height: | Size: 167 KiB |
|
Before Width: | Height: | Size: 29 KiB |
|
Before Width: | Height: | Size: 280 KiB |
|
Before Width: | Height: | Size: 201 KiB |
|
Before Width: | Height: | Size: 298 KiB |
|
Before Width: | Height: | Size: 226 KiB |
|
Before Width: | Height: | Size: 335 KiB |
|
Before Width: | Height: | Size: 354 KiB |