Simplify architecture snapshot

This commit is contained in:
Jino Jose 2026-07-07 11:29:46 +05:30
parent f044e29e7e
commit ff70fb02a2

View File

@ -1,107 +1,106 @@
<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">Clean enterprise architecture diagram showing users, experience layer, core services, control surfaces, and deployment substrate.</desc> <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>
<defs> <defs>
<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="6" stdDeviation="10" flood-color="#0f172a" flood-opacity="0.10"/> <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="9" markerHeight="9" orient="auto"> <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="#2C5E8A"/> <path d="M1 1 L11 6 L1 11 Z" fill="#2E5E89"/>
</marker> </marker>
<style> <style>
.page { fill: #F7F9FC; } .bg { fill: #F7F9FC; }
.ink { fill: #12263F; } .line { stroke: #D7E0EA; stroke-width: 2; }
.muted { fill: #58708A; } .flow { stroke: #2E5E89; stroke-width: 4.5; stroke-linecap: round; fill: none; marker-end: url(#arrow); }
.section { fill: #547193; font: 700 16px Arial, sans-serif; letter-spacing: 0.14em; } .guide { stroke: #C9D6E3; stroke-width: 2.5; stroke-dasharray: 7 7; }
.kicker { fill: #0F766E; font: 700 15px Arial, sans-serif; letter-spacing: 0.12em; } .kicker { fill: #0F766E; font: 700 15px Arial, sans-serif; letter-spacing: 0.12em; }
.title { fill: #12263F; font: 700 30px Arial, sans-serif; } .title { fill: #142B45; font: 700 32px Arial, sans-serif; }
.subtitle { fill: #58708A; font: 400 18px Arial, sans-serif; } .subtitle { fill: #5A728C; font: 400 18px Arial, sans-serif; }
.boxTitle { fill: #17324D; font: 700 22px Arial, sans-serif; } .section { fill: #597697; font: 700 15px Arial, sans-serif; letter-spacing: 0.14em; }
.boxLead { fill: #294563; font: 700 16px Arial, sans-serif; } .cardTitle { fill: #17324D; font: 700 21px Arial, sans-serif; }
.boxText { fill: #49627B; font: 400 16px Arial, sans-serif; } .cardLead { fill: #294563; font: 700 16px Arial, sans-serif; }
.foot { fill: #6A8199; font: 400 15px Arial, sans-serif; } .cardText { fill: #4A627C; font: 400 16px Arial, sans-serif; }
.small { fill: #667F98; font: 400 15px Arial, sans-serif; }
</style> </style>
</defs> </defs>
<rect width="1600" height="900" class="page"/> <rect width="1600" height="900" class="bg"/>
<text x="84" y="82" class="kicker">NEXUS ONE AI · ARCHITECTURE OVERVIEW</text> <text x="96" y="86" class="kicker">NEXUS ONE AI · ARCHITECTURE OVERVIEW</text>
<text x="84" y="122" class="title"> <text x="96" y="132" class="title">
<tspan x="84" dy="0">Private AI Platform on</tspan> <tspan x="96" dy="0">Private AI Platform on</tspan>
<tspan x="84" dy="36">Customer-Controlled Infrastructure</tspan> <tspan x="96" dy="38">Customer-Controlled Infrastructure</tspan>
</text> </text>
<text x="84" y="188" class="subtitle">Portal access, local inference, document retrieval, administration, and observability in one deployable stack.</text> <text x="96" y="192" class="subtitle">Portal layer, core services, and control surfaces packaged for on-premises deployment.</text>
<line x1="84" y1="214" x2="1516" y2="214" stroke="#D7E0EA" stroke-width="2"/> <line x1="96" y1="220" x2="1504" y2="220" class="line"/>
<text x="84" y="258" class="section">ENTRY POINT</text> <text x="96" y="270" class="section">ENTRY POINT</text>
<text x="402" y="258" class="section">EXPERIENCE LAYER</text> <text x="370" y="270" class="section">EXPERIENCE LAYER</text>
<text x="844" y="258" class="section">CORE SERVICES</text> <text x="760" y="270" class="section">CORE SERVICES</text>
<text x="1214" y="258" class="section">CONTROL SURFACES</text> <text x="1180" y="270" class="section">CONTROL SURFACES</text>
<g filter="url(#shadow)"> <g filter="url(#shadow)">
<rect x="84" y="282" width="230" height="176" rx="18" fill="#FFFFFF" stroke="#D7E0EA" stroke-width="2"/> <rect x="96" y="292" width="220" height="170" rx="18" fill="#FFFFFF" stroke="#D7E0EA" stroke-width="2"/>
<text x="110" y="326" class="boxTitle">Users</text> <text x="122" y="336" class="cardTitle">Users</text>
<text x="110" y="362" class="boxLead">Admins</text> <text x="122" y="374" class="cardLead">Admins</text>
<text x="110" y="392" class="boxText">Department teams</text> <text x="122" y="404" class="cardText">Department teams</text>
<text x="110" y="422" class="boxText">Procurement reviewers</text> <text x="122" y="434" class="cardText">Procurement / IT / Security</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="402" y="258" width="336" height="224" rx="18" fill="#FFFFFF" stroke="#BFD9D3" stroke-width="2"/> <rect x="370" y="268" width="300" height="218" rx="18" fill="#FFFFFF" stroke="#BFD9D3" stroke-width="2"/>
<rect x="402" y="258" width="336" height="50" rx="18" fill="#EAF6F3"/> <rect x="370" y="268" width="300" height="48" rx="18" fill="#EAF6F3"/>
<text x="430" y="290" class="boxTitle">Portal and Access Layer</text> <text x="394" y="298" class="cardTitle">Portal and Access Layer</text>
<text x="430" y="350" class="boxLead">Nexus One AI Portal</text> <text x="394" y="358" class="cardLead">Nexus One AI Portal</text>
<text x="430" y="382" class="boxText">Open WebUI</text> <text x="394" y="390" class="cardText">Open WebUI</text>
<text x="430" y="414" class="boxText">Authentication and session control</text> <text x="394" y="422" class="cardText">Authentication and session control</text>
<text x="430" y="446" class="boxText">Prompt workflows and admin UI</text> <text x="394" y="454" class="cardText">Prompt workflows and admin UI</text>
</g> </g>
<g filter="url(#shadow)"> <g filter="url(#shadow)">
<rect x="844" y="282" width="286" height="146" rx="18" fill="#FFFFFF" stroke="#D7E0EA" stroke-width="2"/> <rect x="760" y="292" width="280" height="128" rx="18" fill="#FFFFFF" stroke="#D7E0EA" stroke-width="2"/>
<text x="872" y="324" class="boxTitle">Inference</text> <text x="786" y="334" class="cardTitle">Inference</text>
<text x="872" y="360" class="boxLead">Ollama</text> <text x="786" y="368" class="cardLead">Ollama</text>
<text x="872" y="392" class="boxText">Local model catalog and runtime</text> <text x="786" y="398" class="cardText">Local model runtime</text>
</g> </g>
<g filter="url(#shadow)"> <g filter="url(#shadow)">
<rect x="844" y="452" width="286" height="152" rx="18" fill="#FFFFFF" stroke="#D7E0EA" stroke-width="2"/> <rect x="760" y="448" width="280" height="128" rx="18" fill="#FFFFFF" stroke="#D7E0EA" stroke-width="2"/>
<text x="872" y="494" class="boxTitle">Knowledge Retrieval</text> <text x="786" y="490" class="cardTitle">Knowledge Retrieval</text>
<text x="872" y="530" class="boxLead">ChromaDB</text> <text x="786" y="524" class="cardLead">ChromaDB</text>
<text x="872" y="562" class="boxText">Upload and RAG pipeline</text> <text x="786" y="554" class="cardText">Upload and RAG pipeline</text>
</g> </g>
<g filter="url(#shadow)"> <g filter="url(#shadow)">
<rect x="1214" y="282" width="302" height="160" rx="18" fill="#FFFFFF" stroke="#D7E0EA" stroke-width="2"/> <rect x="1180" y="292" width="260" height="128" rx="18" fill="#FFFFFF" stroke="#D7E0EA" stroke-width="2"/>
<text x="1242" y="324" class="boxTitle">Control Plane</text> <text x="1206" y="334" class="cardTitle">Control Plane</text>
<text x="1242" y="360" class="boxLead">FastAPI backend</text> <text x="1206" y="368" class="cardLead">FastAPI backend</text>
<text x="1242" y="392" class="boxText">Audit and backup</text> <text x="1206" y="398" class="cardText">Audit, backup, settings</text>
<text x="1242" y="424" class="boxText">Settings and licensing</text>
</g> </g>
<g filter="url(#shadow)"> <g filter="url(#shadow)">
<rect x="1214" y="472" width="302" height="132" rx="18" fill="#FFFFFF" stroke="#D7E0EA" stroke-width="2"/> <rect x="1180" y="448" width="260" height="128" rx="18" fill="#FFFFFF" stroke="#D7E0EA" stroke-width="2"/>
<text x="1242" y="512" class="boxTitle">Observability</text> <text x="1206" y="490" class="cardTitle">Observability</text>
<text x="1242" y="546" class="boxLead">Grafana and Prometheus</text> <text x="1206" y="524" class="cardLead">Grafana and Prometheus</text>
<text x="1242" y="576" class="boxText">GPU and system metrics</text> <text x="1206" y="554" class="cardText">GPU and system metrics</text>
</g> </g>
<text x="402" y="656" class="section">DEPLOYMENT SUBSTRATE</text> <text x="370" y="646" class="section">DEPLOYMENT SUBSTRATE</text>
<g filter="url(#shadow)"> <g filter="url(#shadow)">
<rect x="402" y="676" width="1114" height="96" rx="18" fill="#FFFFFF" stroke="#D7E0EA" stroke-width="2"/> <rect x="370" y="668" width="1070" height="92" rx="18" fill="#FFFFFF" stroke="#D7E0EA" stroke-width="2"/>
<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="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> </g>
<line x1="314" y1="370" x2="402" y2="370" stroke="#2C5E8A" stroke-width="4.5" stroke-linecap="round" marker-end="url(#arrow)"/> <line x1="316" y1="377" x2="370" y2="377" class="flow"/>
<line x1="738" y1="370" x2="844" y2="354" stroke="#2C5E8A" stroke-width="4.5" stroke-linecap="round" marker-end="url(#arrow)"/> <line x1="670" y1="377" x2="760" y2="356" class="flow"/>
<line x1="738" y1="404" x2="844" y2="528" stroke="#2C5E8A" stroke-width="4.5" stroke-linecap="round" marker-end="url(#arrow)"/> <line x1="670" y1="410" x2="760" y2="512" class="flow"/>
<line x1="1130" y1="354" x2="1214" y2="362" stroke="#2C5E8A" stroke-width="4.5" stroke-linecap="round" marker-end="url(#arrow)"/> <line x1="1040" y1="356" x2="1180" y2="356" class="flow"/>
<line x1="1130" y1="528" x2="1214" y2="536" stroke="#2C5E8A" stroke-width="4.5" stroke-linecap="round" marker-end="url(#arrow)"/> <line x1="1040" y1="512" x2="1180" y2="512" class="flow"/>
<line x1="570" y1="482" x2="570" y2="676" stroke="#2C5E8A" stroke-width="4.5" stroke-linecap="round" marker-end="url(#arrow)"/> <line x1="520" y1="486" x2="520" y2="668" class="flow"/>
<line x1="988" y1="604" x2="988" y2="676" stroke="#C7D3E0" stroke-width="3" stroke-dasharray="8 8"/> <line x1="900" y1="576" x2="900" y2="668" class="guide"/>
<line x1="1366" y1="604" x2="1366" y2="676" stroke="#C7D3E0" stroke-width="3" stroke-dasharray="8 8"/> <line x1="1310" y1="576" x2="1310" y2="668" class="guide"/>
<text x="84" y="822" class="foot">Private AI packaged stack</text> <text x="96" y="824" class="small">Private AI packaged stack</text>
<text x="1516" y="822" text-anchor="end" class="foot">Powered by Cezen</text> <text x="1440" y="824" text-anchor="end" class="small">Powered by Cezen</text>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 6.1 KiB

After

Width:  |  Height:  |  Size: 5.7 KiB