Refine architecture diagram layout
This commit is contained in:
parent
42cb891b94
commit
f044e29e7e
@ -1,110 +1,107 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" width="1600" height="900" viewBox="0 0 1600 900" role="img" aria-labelledby="title desc">
|
<svg xmlns="http://www.w3.org/2000/svg" width="1600" height="900" viewBox="0 0 1600 900" role="img" aria-labelledby="title desc">
|
||||||
<title id="title">Nexus One AI Architecture Overview</title>
|
<title id="title">Nexus One AI Architecture Overview</title>
|
||||||
<desc id="desc">Professional architecture diagram showing users, portal access, inference, knowledge retrieval, control plane, observability, and deployment substrate for Nexus One AI.</desc>
|
<desc id="desc">Clean enterprise architecture diagram showing users, experience layer, core services, control surfaces, and deployment substrate.</desc>
|
||||||
<defs>
|
<defs>
|
||||||
<linearGradient id="hero" x1="0" x2="1" y1="0" y2="1">
|
|
||||||
<stop offset="0%" stop-color="#12284A"/>
|
|
||||||
<stop offset="100%" stop-color="#1C3B66"/>
|
|
||||||
</linearGradient>
|
|
||||||
<filter id="shadow" x="-20%" y="-20%" width="140%" height="160%">
|
<filter id="shadow" x="-20%" y="-20%" width="140%" height="160%">
|
||||||
<feDropShadow dx="0" dy="8" stdDeviation="14" flood-color="#10233f" flood-opacity="0.12"/>
|
<feDropShadow dx="0" dy="6" stdDeviation="10" flood-color="#0f172a" flood-opacity="0.10"/>
|
||||||
</filter>
|
</filter>
|
||||||
<marker id="arrow" viewBox="0 0 12 12" refX="10" refY="6" markerWidth="10" markerHeight="10" orient="auto-start-reverse">
|
<marker id="arrow" viewBox="0 0 12 12" refX="10" refY="6" markerWidth="9" markerHeight="9" orient="auto">
|
||||||
<path d="M1 1 L11 6 L1 11 Z" fill="#2C7DA0"/>
|
<path d="M1 1 L11 6 L1 11 Z" fill="#2C5E8A"/>
|
||||||
</marker>
|
</marker>
|
||||||
<style>
|
<style>
|
||||||
.kicker { font: 700 18px Arial, sans-serif; letter-spacing: 0.14em; fill: #57D3C3; }
|
.page { fill: #F7F9FC; }
|
||||||
.title { font: 700 44px Arial, sans-serif; fill: #F8FBFF; }
|
.ink { fill: #12263F; }
|
||||||
.subtitle { font: 400 22px Arial, sans-serif; fill: #D4DDEA; }
|
.muted { fill: #58708A; }
|
||||||
.sectionLabel { font: 700 14px Arial, sans-serif; letter-spacing: 0.12em; fill: #4A6788; }
|
.section { fill: #547193; font: 700 16px Arial, sans-serif; letter-spacing: 0.14em; }
|
||||||
.cardTitle { font: 700 24px Arial, sans-serif; fill: #15304F; }
|
.kicker { fill: #0F766E; font: 700 15px Arial, sans-serif; letter-spacing: 0.12em; }
|
||||||
.cardText { font: 400 18px Arial, sans-serif; fill: #49627C; }
|
.title { fill: #12263F; font: 700 30px Arial, sans-serif; }
|
||||||
.cardTextStrong { font: 600 18px Arial, sans-serif; fill: #2C435E; }
|
.subtitle { fill: #58708A; font: 400 18px Arial, sans-serif; }
|
||||||
.footLabel { font: 700 16px Arial, sans-serif; letter-spacing: 0.08em; fill: #0F766E; }
|
.boxTitle { fill: #17324D; font: 700 22px Arial, sans-serif; }
|
||||||
.footText { font: 400 18px Arial, sans-serif; fill: #4B5F73; }
|
.boxLead { fill: #294563; font: 700 16px Arial, sans-serif; }
|
||||||
.small { font: 400 16px Arial, sans-serif; fill: #668099; }
|
.boxText { fill: #49627B; font: 400 16px Arial, sans-serif; }
|
||||||
|
.foot { fill: #6A8199; font: 400 15px Arial, sans-serif; }
|
||||||
</style>
|
</style>
|
||||||
</defs>
|
</defs>
|
||||||
|
|
||||||
<rect width="1600" height="900" fill="#F4F7FB"/>
|
<rect width="1600" height="900" class="page"/>
|
||||||
<rect x="40" y="36" width="1520" height="192" rx="28" fill="url(#hero)"/>
|
|
||||||
<text x="88" y="92" class="kicker">NEXUS ONE AI · ARCHITECTURE OVERVIEW</text>
|
<text x="84" y="82" class="kicker">NEXUS ONE AI · ARCHITECTURE OVERVIEW</text>
|
||||||
<text x="88" y="146" class="title">
|
<text x="84" y="122" class="title">
|
||||||
<tspan x="88" dy="0">Private AI Platform on</tspan>
|
<tspan x="84" dy="0">Private AI Platform on</tspan>
|
||||||
<tspan x="88" dy="52">Customer-Controlled Infrastructure</tspan>
|
<tspan x="84" dy="36">Customer-Controlled Infrastructure</tspan>
|
||||||
</text>
|
</text>
|
||||||
<text x="88" y="220" class="subtitle">Portal access, local inference, document retrieval, administration, and observability in one deployable stack.</text>
|
<text x="84" y="188" class="subtitle">Portal access, local inference, document retrieval, administration, and observability in one deployable stack.</text>
|
||||||
|
<line x1="84" y1="214" x2="1516" y2="214" stroke="#D7E0EA" stroke-width="2"/>
|
||||||
|
|
||||||
<text x="88" y="280" class="sectionLabel">ENTRY POINT</text>
|
<text x="84" y="258" class="section">ENTRY POINT</text>
|
||||||
<text x="418" y="280" class="sectionLabel">EXPERIENCE LAYER</text>
|
<text x="402" y="258" class="section">EXPERIENCE LAYER</text>
|
||||||
<text x="838" y="280" class="sectionLabel">CORE SERVICES</text>
|
<text x="844" y="258" class="section">CORE SERVICES</text>
|
||||||
<text x="1228" y="280" class="sectionLabel">CONTROL SURFACES</text>
|
<text x="1214" y="258" class="section">CONTROL SURFACES</text>
|
||||||
|
|
||||||
<g filter="url(#shadow)">
|
<g filter="url(#shadow)">
|
||||||
<rect x="88" y="304" width="250" height="208" rx="22" fill="#FFFFFF" stroke="#D5E0EC" stroke-width="2"/>
|
<rect x="84" y="282" width="230" height="176" rx="18" fill="#FFFFFF" stroke="#D7E0EA" stroke-width="2"/>
|
||||||
<text x="118" y="350" class="cardTitle">Users</text>
|
<text x="110" y="326" class="boxTitle">Users</text>
|
||||||
<text x="118" y="390" class="cardTextStrong">Admins</text>
|
<text x="110" y="362" class="boxLead">Admins</text>
|
||||||
<text x="118" y="424" class="cardText">Department teams</text>
|
<text x="110" y="392" class="boxText">Department teams</text>
|
||||||
<text x="118" y="458" class="cardText">Procurement reviewers</text>
|
<text x="110" y="422" class="boxText">Procurement reviewers</text>
|
||||||
<text x="118" y="492" class="cardText">IT and security stakeholders</text>
|
<text x="110" y="452" class="boxText">IT and security stakeholders</text>
|
||||||
</g>
|
</g>
|
||||||
|
|
||||||
<g filter="url(#shadow)">
|
<g filter="url(#shadow)">
|
||||||
<rect x="418" y="274" width="340" height="268" rx="24" fill="#FFFFFF" stroke="#B7D7D2" stroke-width="2"/>
|
<rect x="402" y="258" width="336" height="224" rx="18" fill="#FFFFFF" stroke="#BFD9D3" stroke-width="2"/>
|
||||||
<rect x="418" y="274" width="340" height="56" rx="24" fill="#E7F6F3"/>
|
<rect x="402" y="258" width="336" height="50" rx="18" fill="#EAF6F3"/>
|
||||||
<text x="450" y="311" class="cardTitle">Portal and Access Layer</text>
|
<text x="430" y="290" class="boxTitle">Portal and Access Layer</text>
|
||||||
<text x="450" y="370" class="cardTextStrong">Nexus One AI Portal</text>
|
<text x="430" y="350" class="boxLead">Nexus One AI Portal</text>
|
||||||
<text x="450" y="406" class="cardText">Open WebUI</text>
|
<text x="430" y="382" class="boxText">Open WebUI</text>
|
||||||
<text x="450" y="442" class="cardText">Authentication and session control</text>
|
<text x="430" y="414" class="boxText">Authentication and session control</text>
|
||||||
<text x="450" y="478" class="cardText">Prompt workflows and admin UI</text>
|
<text x="430" y="446" class="boxText">Prompt workflows and admin UI</text>
|
||||||
</g>
|
</g>
|
||||||
|
|
||||||
<g filter="url(#shadow)">
|
<g filter="url(#shadow)">
|
||||||
<rect x="838" y="304" width="312" height="160" rx="22" fill="#FFFFFF" stroke="#D5E0EC" stroke-width="2"/>
|
<rect x="844" y="282" width="286" height="146" rx="18" fill="#FFFFFF" stroke="#D7E0EA" stroke-width="2"/>
|
||||||
<text x="870" y="348" class="cardTitle">Inference</text>
|
<text x="872" y="324" class="boxTitle">Inference</text>
|
||||||
<text x="870" y="388" class="cardTextStrong">Ollama</text>
|
<text x="872" y="360" class="boxLead">Ollama</text>
|
||||||
<text x="870" y="422" class="cardText">Local model catalog and runtime</text>
|
<text x="872" y="392" class="boxText">Local model catalog and runtime</text>
|
||||||
</g>
|
</g>
|
||||||
|
|
||||||
<g filter="url(#shadow)">
|
<g filter="url(#shadow)">
|
||||||
<rect x="838" y="494" width="312" height="170" rx="22" fill="#FFFFFF" stroke="#D5E0EC" stroke-width="2"/>
|
<rect x="844" y="452" width="286" height="152" rx="18" fill="#FFFFFF" stroke="#D7E0EA" stroke-width="2"/>
|
||||||
<text x="870" y="538" class="cardTitle">Knowledge Retrieval</text>
|
<text x="872" y="494" class="boxTitle">Knowledge Retrieval</text>
|
||||||
<text x="870" y="578" class="cardTextStrong">ChromaDB</text>
|
<text x="872" y="530" class="boxLead">ChromaDB</text>
|
||||||
<text x="870" y="612" class="cardText">Upload and RAG pipeline</text>
|
<text x="872" y="562" class="boxText">Upload and RAG pipeline</text>
|
||||||
</g>
|
</g>
|
||||||
|
|
||||||
<g filter="url(#shadow)">
|
<g filter="url(#shadow)">
|
||||||
<rect x="1228" y="304" width="284" height="180" rx="22" fill="#FFFFFF" stroke="#D5E0EC" stroke-width="2"/>
|
<rect x="1214" y="282" width="302" height="160" rx="18" fill="#FFFFFF" stroke="#D7E0EA" stroke-width="2"/>
|
||||||
<text x="1260" y="348" class="cardTitle">Control Plane</text>
|
<text x="1242" y="324" class="boxTitle">Control Plane</text>
|
||||||
<text x="1260" y="388" class="cardTextStrong">FastAPI backend</text>
|
<text x="1242" y="360" class="boxLead">FastAPI backend</text>
|
||||||
<text x="1260" y="422" class="cardText">Audit and backup</text>
|
<text x="1242" y="392" class="boxText">Audit and backup</text>
|
||||||
<text x="1260" y="456" class="cardText">Settings and licensing</text>
|
<text x="1242" y="424" class="boxText">Settings and licensing</text>
|
||||||
</g>
|
</g>
|
||||||
|
|
||||||
<g filter="url(#shadow)">
|
<g filter="url(#shadow)">
|
||||||
<rect x="1228" y="514" width="284" height="150" rx="22" fill="#FFFFFF" stroke="#D5E0EC" stroke-width="2"/>
|
<rect x="1214" y="472" width="302" height="132" rx="18" fill="#FFFFFF" stroke="#D7E0EA" stroke-width="2"/>
|
||||||
<text x="1260" y="558" class="cardTitle">Observability</text>
|
<text x="1242" y="512" class="boxTitle">Observability</text>
|
||||||
<text x="1260" y="598" class="cardTextStrong">Grafana and Prometheus</text>
|
<text x="1242" y="546" class="boxLead">Grafana and Prometheus</text>
|
||||||
<text x="1260" y="632" class="cardText">GPU and system metrics</text>
|
<text x="1242" y="576" class="boxText">GPU and system metrics</text>
|
||||||
</g>
|
</g>
|
||||||
|
|
||||||
|
<text x="402" y="656" class="section">DEPLOYMENT SUBSTRATE</text>
|
||||||
<g filter="url(#shadow)">
|
<g filter="url(#shadow)">
|
||||||
<rect x="418" y="718" width="1094" height="112" rx="24" fill="#FFFFFF" stroke="#D5E0EC" stroke-width="2"/>
|
<rect x="402" y="676" width="1114" height="96" rx="18" fill="#FFFFFF" stroke="#D7E0EA" stroke-width="2"/>
|
||||||
<text x="450" y="758" class="footLabel">DEPLOYMENT SUBSTRATE</text>
|
<text x="430" y="730" class="boxText">Ubuntu 22.04 • Bootable ISO or scripted installer • CPU or NVIDIA GPU infrastructure • Internal network / air-gapped friendly</text>
|
||||||
<text x="450" y="794" class="footText">Ubuntu 22.04 • Bootable ISO or scripted installer • CPU or NVIDIA GPU infrastructure • Internal network / air-gapped friendly</text>
|
|
||||||
</g>
|
</g>
|
||||||
|
|
||||||
<line x1="338" y1="408" x2="418" y2="408" stroke="#2C7DA0" stroke-width="5" stroke-linecap="round" marker-end="url(#arrow)"/>
|
<line x1="314" y1="370" x2="402" y2="370" stroke="#2C5E8A" stroke-width="4.5" stroke-linecap="round" marker-end="url(#arrow)"/>
|
||||||
<line x1="758" y1="408" x2="838" y2="384" stroke="#2C7DA0" stroke-width="5" stroke-linecap="round" marker-end="url(#arrow)"/>
|
<line x1="738" y1="370" x2="844" y2="354" stroke="#2C5E8A" stroke-width="4.5" stroke-linecap="round" marker-end="url(#arrow)"/>
|
||||||
<line x1="758" y1="452" x2="838" y2="579" stroke="#2C7DA0" stroke-width="5" stroke-linecap="round" marker-end="url(#arrow)"/>
|
<line x1="738" y1="404" x2="844" y2="528" stroke="#2C5E8A" stroke-width="4.5" stroke-linecap="round" marker-end="url(#arrow)"/>
|
||||||
<line x1="1150" y1="384" x2="1228" y2="384" stroke="#2C7DA0" stroke-width="5" stroke-linecap="round" marker-end="url(#arrow)"/>
|
<line x1="1130" y1="354" x2="1214" y2="362" stroke="#2C5E8A" stroke-width="4.5" stroke-linecap="round" marker-end="url(#arrow)"/>
|
||||||
<line x1="1150" y1="579" x2="1228" y2="589" stroke="#2C7DA0" stroke-width="5" stroke-linecap="round" marker-end="url(#arrow)"/>
|
<line x1="1130" y1="528" x2="1214" y2="536" stroke="#2C5E8A" stroke-width="4.5" stroke-linecap="round" marker-end="url(#arrow)"/>
|
||||||
<line x1="588" y1="542" x2="588" y2="718" stroke="#2C7DA0" stroke-width="5" stroke-linecap="round" marker-end="url(#arrow)"/>
|
<line x1="570" y1="482" x2="570" y2="676" stroke="#2C5E8A" stroke-width="4.5" stroke-linecap="round" marker-end="url(#arrow)"/>
|
||||||
|
|
||||||
<line x1="994" y1="664" x2="994" y2="718" stroke="#B8C7D8" stroke-width="3" stroke-dasharray="8 8"/>
|
<line x1="988" y1="604" x2="988" y2="676" stroke="#C7D3E0" stroke-width="3" stroke-dasharray="8 8"/>
|
||||||
<line x1="1370" y1="664" x2="1370" y2="718" stroke="#B8C7D8" stroke-width="3" stroke-dasharray="8 8"/>
|
<line x1="1366" y1="604" x2="1366" y2="676" stroke="#C7D3E0" stroke-width="3" stroke-dasharray="8 8"/>
|
||||||
|
|
||||||
<rect x="88" y="744" width="244" height="56" rx="18" fill="#DFF6F2"/>
|
<text x="84" y="822" class="foot">Private AI packaged stack</text>
|
||||||
<text x="128" y="778" class="footLabel">PRIVATE AI · PACKAGED STACK</text>
|
<text x="1516" y="822" text-anchor="end" class="foot">Powered by Cezen</text>
|
||||||
<text x="1360" y="778" text-anchor="end" class="small">Powered by Cezen</text>
|
|
||||||
</svg>
|
</svg>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 6.6 KiB After Width: | Height: | Size: 6.1 KiB |
Loading…
Reference in New Issue
Block a user