Adopt cleaner business-style architecture figure

This commit is contained in:
Jino Jose 2026-07-07 11:51:26 +05:30
parent ff70fb02a2
commit 7d6223125e

View File

@ -1,106 +1,87 @@
<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>
<desc id="desc">Simple enterprise architecture diagram showing how users access the portal layer, which connects to inference and retrieval services, with control surfaces and deployment substrate below.</desc>
<desc id="desc">Business-style architecture figure showing entry point, experience layer, core services, control surfaces, and deployment substrate for Nexus One AI.</desc>
<defs>
<filter id="shadow" x="-20%" y="-20%" width="140%" height="160%">
<feDropShadow dx="0" dy="6" stdDeviation="10" flood-color="#0f172a" flood-opacity="0.10"/>
</filter>
<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="#2E5E89"/>
<marker id="arrow" viewBox="0 0 12 12" refX="10" refY="6" markerWidth="8" markerHeight="8" orient="auto">
<path d="M1 1 L11 6 L1 11 Z" fill="#5B7694"/>
</marker>
<style>
.bg { fill: #F7F9FC; }
.line { stroke: #D7E0EA; stroke-width: 2; }
.flow { stroke: #2E5E89; stroke-width: 4.5; stroke-linecap: round; fill: none; marker-end: url(#arrow); }
.guide { stroke: #C9D6E3; stroke-width: 2.5; stroke-dasharray: 7 7; }
.kicker { fill: #0F766E; font: 700 15px Arial, sans-serif; letter-spacing: 0.12em; }
.title { fill: #142B45; font: 700 32px Arial, sans-serif; }
.subtitle { fill: #5A728C; font: 400 18px Arial, sans-serif; }
.section { fill: #597697; font: 700 15px Arial, sans-serif; letter-spacing: 0.14em; }
.cardTitle { fill: #17324D; font: 700 21px Arial, sans-serif; }
.cardLead { fill: #294563; font: 700 16px Arial, sans-serif; }
.cardText { fill: #4A627C; font: 400 16px Arial, sans-serif; }
.small { fill: #667F98; font: 400 15px Arial, sans-serif; }
.bg { fill: #FAFBFD; }
.rule { stroke: #D7DEE8; stroke-width: 2; }
.grid { stroke: #E7EDF4; stroke-width: 1.5; }
.arrow { stroke: #5B7694; stroke-width: 4; fill: none; marker-end: url(#arrow); }
.dash { stroke: #C7D2DF; stroke-width: 2.5; stroke-dasharray: 7 7; }
.kicker { fill: #117A72; font: 700 14px Arial, sans-serif; letter-spacing: 0.14em; }
.title { fill: #1A2F49; font: 700 30px Arial, sans-serif; }
.subtitle { fill: #5F738A; font: 400 17px Arial, sans-serif; }
.section { fill: #6D8299; font: 700 14px Arial, sans-serif; letter-spacing: 0.16em; }
.cardTitle { fill: #20364F; font: 700 19px Arial, sans-serif; }
.lead { fill: #28435F; font: 700 15px Arial, sans-serif; }
.text { fill: #51677F; font: 400 15px Arial, sans-serif; }
.foot { fill: #70859C; font: 400 14px Arial, sans-serif; }
</style>
</defs>
<rect width="1600" height="900" class="bg"/>
<text x="96" y="86" class="kicker">NEXUS ONE AI · ARCHITECTURE OVERVIEW</text>
<text x="96" y="132" class="title">
<tspan x="96" dy="0">Private AI Platform on</tspan>
<tspan x="96" dy="38">Customer-Controlled Infrastructure</tspan>
</text>
<text x="96" y="192" class="subtitle">Portal layer, core services, and control surfaces packaged for on-premises deployment.</text>
<line x1="96" y1="220" x2="1504" y2="220" class="line"/>
<text x="88" y="82" class="kicker">NEXUS ONE AI · ARCHITECTURE OVERVIEW</text>
<text x="88" y="126" class="title">Private AI Platform on Customer-Controlled Infrastructure</text>
<text x="88" y="158" class="subtitle">Portal layer, core services, and control surfaces packaged for on-premises deployment.</text>
<line x1="88" y1="188" x2="1512" y2="188" class="rule"/>
<text x="96" y="270" class="section">ENTRY POINT</text>
<text x="370" y="270" class="section">EXPERIENCE LAYER</text>
<text x="760" y="270" class="section">CORE SERVICES</text>
<text x="1180" y="270" class="section">CONTROL SURFACES</text>
<text x="88" y="236" class="section">ENTRY POINT</text>
<text x="350" y="236" class="section">EXPERIENCE LAYER</text>
<text x="760" y="236" class="section">CORE SERVICES</text>
<text x="1178" y="236" class="section">CONTROL SURFACES</text>
<g filter="url(#shadow)">
<rect x="96" y="292" width="220" height="170" rx="18" fill="#FFFFFF" stroke="#D7E0EA" stroke-width="2"/>
<text x="122" y="336" class="cardTitle">Users</text>
<text x="122" y="374" class="cardLead">Admins</text>
<text x="122" y="404" class="cardText">Department teams</text>
<text x="122" y="434" class="cardText">Procurement / IT / Security</text>
</g>
<rect x="88" y="266" width="210" height="156" rx="8" fill="#FFFFFF" stroke="#D8E1EB" stroke-width="2"/>
<text x="112" y="305" class="cardTitle">Users</text>
<text x="112" y="340" class="lead">Admins</text>
<text x="112" y="370" class="text">Department teams</text>
<text x="112" y="400" class="text">Procurement / IT / Security</text>
<g filter="url(#shadow)">
<rect x="370" y="268" width="300" height="218" rx="18" fill="#FFFFFF" stroke="#BFD9D3" stroke-width="2"/>
<rect x="370" y="268" width="300" height="48" rx="18" fill="#EAF6F3"/>
<text x="394" y="298" class="cardTitle">Portal and Access Layer</text>
<text x="394" y="358" class="cardLead">Nexus One AI Portal</text>
<text x="394" y="390" class="cardText">Open WebUI</text>
<text x="394" y="422" class="cardText">Authentication and session control</text>
<text x="394" y="454" class="cardText">Prompt workflows and admin UI</text>
</g>
<rect x="350" y="246" width="302" height="196" rx="8" fill="#FFFFFF" stroke="#C9DED8" stroke-width="2"/>
<rect x="350" y="246" width="302" height="40" rx="8" fill="#EEF6F4"/>
<text x="374" y="272" class="cardTitle">Portal and Access Layer</text>
<text x="374" y="330" class="lead">Nexus One AI Portal</text>
<text x="374" y="360" class="text">Open WebUI</text>
<text x="374" y="390" class="text">Authentication and session control</text>
<text x="374" y="420" class="text">Prompt workflows and admin UI</text>
<g filter="url(#shadow)">
<rect x="760" y="292" width="280" height="128" rx="18" fill="#FFFFFF" stroke="#D7E0EA" stroke-width="2"/>
<text x="786" y="334" class="cardTitle">Inference</text>
<text x="786" y="368" class="cardLead">Ollama</text>
<text x="786" y="398" class="cardText">Local model runtime</text>
</g>
<rect x="760" y="266" width="270" height="116" rx="8" fill="#FFFFFF" stroke="#D8E1EB" stroke-width="2"/>
<text x="784" y="304" class="cardTitle">Inference</text>
<text x="784" y="338" class="lead">Ollama</text>
<text x="784" y="366" class="text">Local model runtime</text>
<g filter="url(#shadow)">
<rect x="760" y="448" width="280" height="128" rx="18" fill="#FFFFFF" stroke="#D7E0EA" stroke-width="2"/>
<text x="786" y="490" class="cardTitle">Knowledge Retrieval</text>
<text x="786" y="524" class="cardLead">ChromaDB</text>
<text x="786" y="554" class="cardText">Upload and RAG pipeline</text>
</g>
<rect x="760" y="422" width="270" height="116" rx="8" fill="#FFFFFF" stroke="#D8E1EB" stroke-width="2"/>
<text x="784" y="460" class="cardTitle">Knowledge Retrieval</text>
<text x="784" y="494" class="lead">ChromaDB</text>
<text x="784" y="522" class="text">Upload and RAG pipeline</text>
<g filter="url(#shadow)">
<rect x="1180" y="292" width="260" height="128" rx="18" fill="#FFFFFF" stroke="#D7E0EA" stroke-width="2"/>
<text x="1206" y="334" class="cardTitle">Control Plane</text>
<text x="1206" y="368" class="cardLead">FastAPI backend</text>
<text x="1206" y="398" class="cardText">Audit, backup, settings</text>
</g>
<rect x="1178" y="266" width="270" height="116" rx="8" fill="#FFFFFF" stroke="#D8E1EB" stroke-width="2"/>
<text x="1202" y="304" class="cardTitle">Control Plane</text>
<text x="1202" y="338" class="lead">FastAPI backend</text>
<text x="1202" y="366" class="text">Audit, backup, settings</text>
<g filter="url(#shadow)">
<rect x="1180" y="448" width="260" height="128" rx="18" fill="#FFFFFF" stroke="#D7E0EA" stroke-width="2"/>
<text x="1206" y="490" class="cardTitle">Observability</text>
<text x="1206" y="524" class="cardLead">Grafana and Prometheus</text>
<text x="1206" y="554" class="cardText">GPU and system metrics</text>
</g>
<rect x="1178" y="422" width="270" height="116" rx="8" fill="#FFFFFF" stroke="#D8E1EB" stroke-width="2"/>
<text x="1202" y="460" class="cardTitle">Observability</text>
<text x="1202" y="494" class="lead">Grafana and Prometheus</text>
<text x="1202" y="522" class="text">GPU and system metrics</text>
<text x="370" y="646" class="section">DEPLOYMENT SUBSTRATE</text>
<g filter="url(#shadow)">
<rect x="370" y="668" width="1070" height="92" rx="18" fill="#FFFFFF" stroke="#D7E0EA" stroke-width="2"/>
<text x="396" y="722" class="cardText">Ubuntu 22.04 • Bootable ISO or scripted installer • CPU or NVIDIA GPU infrastructure • Internal network / air-gapped friendly</text>
</g>
<text x="350" y="612" class="section">DEPLOYMENT SUBSTRATE</text>
<rect x="350" y="638" width="1098" height="84" rx="8" fill="#FFFFFF" stroke="#D8E1EB" stroke-width="2"/>
<text x="376" y="688" class="text">Ubuntu 22.04 • Bootable ISO or scripted installer • CPU or NVIDIA GPU infrastructure • Internal network / air-gapped friendly</text>
<line x1="316" y1="377" x2="370" y2="377" class="flow"/>
<line x1="670" y1="377" x2="760" y2="356" class="flow"/>
<line x1="670" y1="410" x2="760" y2="512" class="flow"/>
<line x1="1040" y1="356" x2="1180" y2="356" class="flow"/>
<line x1="1040" y1="512" x2="1180" y2="512" class="flow"/>
<line x1="520" y1="486" x2="520" y2="668" class="flow"/>
<line x1="298" y1="344" x2="350" y2="344" class="arrow"/>
<line x1="652" y1="344" x2="760" y2="324" class="arrow"/>
<line x1="652" y1="382" x2="760" y2="480" class="arrow"/>
<line x1="1030" y1="324" x2="1178" y2="324" class="arrow"/>
<line x1="1030" y1="480" x2="1178" y2="480" class="arrow"/>
<line x1="501" y1="442" x2="501" y2="638" class="arrow"/>
<line x1="900" y1="576" x2="900" y2="668" class="guide"/>
<line x1="1310" y1="576" x2="1310" y2="668" class="guide"/>
<line x1="895" y1="538" x2="895" y2="638" class="dash"/>
<line x1="1313" y1="538" x2="1313" y2="638" class="dash"/>
<text x="96" y="824" class="small">Private AI packaged stack</text>
<text x="1440" y="824" text-anchor="end" class="small">Powered by Cezen</text>
<text x="88" y="790" class="foot">Private AI packaged stack</text>
<text x="1448" y="790" text-anchor="end" class="foot">Powered by Cezen</text>
</svg>

Before

Width:  |  Height:  |  Size: 5.7 KiB

After

Width:  |  Height:  |  Size: 5.1 KiB