147 lines
11 KiB
Plaintext
147 lines
11 KiB
Plaintext
|
|
<mxfile host="app.diagrams.net" modified="2026-05-30T00:00:00.000Z" agent="Claude" version="21.0.0">
|
||
|
|
<diagram id="architecture" name="系统架构全景">
|
||
|
|
<mxGraphModel dx="1200" dy="800" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1200" pageHeight="800" math="0" shadow="0">
|
||
|
|
<root>
|
||
|
|
<mxCell id="0" />
|
||
|
|
<mxCell id="1" parent="0" />
|
||
|
|
|
||
|
|
<!-- Frontend 外框 -->
|
||
|
|
<mxCell id="fe-box" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;arcSize=8;shadow=1;" vertex="1" parent="1">
|
||
|
|
<mxGeometry x="100" y="40" width="1000" height="140" as="geometry" />
|
||
|
|
</mxCell>
|
||
|
|
<mxCell id="fe-title" value="<b>Frontend</b> <span style="color:#666">React + Vite + TypeScript</span>" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=14;" vertex="1" parent="1">
|
||
|
|
<mxGeometry x="420" y="50" width="360" height="30" as="geometry" />
|
||
|
|
</mxCell>
|
||
|
|
<mxCell id="fe-mod1" value="项目画廊" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;fontSize=12;" vertex="1" parent="1">
|
||
|
|
<mxGeometry x="140" y="95" width="120" height="40" as="geometry" />
|
||
|
|
</mxCell>
|
||
|
|
<mxCell id="fe-mod2" value="工作台" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;fontSize=12;" vertex="1" parent="1">
|
||
|
|
<mxGeometry x="290" y="95" width="120" height="40" as="geometry" />
|
||
|
|
</mxCell>
|
||
|
|
<mxCell id="fe-mod3" value="结果预览" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;fontSize=12;" vertex="1" parent="1">
|
||
|
|
<mxGeometry x="440" y="95" width="120" height="40" as="geometry" />
|
||
|
|
</mxCell>
|
||
|
|
<mxCell id="fe-mod4" value="风格编辑器" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;fontSize=12;" vertex="1" parent="1">
|
||
|
|
<mxGeometry x="590" y="95" width="120" height="40" as="geometry" />
|
||
|
|
</mxCell>
|
||
|
|
<mxCell id="fe-tech" value="Zustand 状态管理 · react-router v7" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=11;fontColor=#666666;" vertex="1" parent="1">
|
||
|
|
<mxGeometry x="750" y="100" width="310" height="30" as="geometry" />
|
||
|
|
</mxCell>
|
||
|
|
|
||
|
|
<!-- 连接线 -->
|
||
|
|
<mxCell id="conn" value="HTTP / WebSocket" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=12;fontColor=#666666;" vertex="1" parent="1">
|
||
|
|
<mxGeometry x="500" y="195" width="200" height="25" as="geometry" />
|
||
|
|
</mxCell>
|
||
|
|
<mxCell id="conn-arrow" value="" style="endArrow=classic;html=1;strokeWidth=2;strokeColor=#6c8ebf;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="fe-box" target="be-box">
|
||
|
|
<mxGeometry relative="1" as="geometry" />
|
||
|
|
</mxCell>
|
||
|
|
|
||
|
|
<!-- Backend 外框 -->
|
||
|
|
<mxCell id="be-box" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;arcSize=8;shadow=1;" vertex="1" parent="1">
|
||
|
|
<mxGeometry x="100" y="230" width="1000" height="300" as="geometry" />
|
||
|
|
</mxCell>
|
||
|
|
<mxCell id="be-title" value="<b>Backend</b> <span style="color:#666">Go + Gin + Eino</span>" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=14;" vertex="1" parent="1">
|
||
|
|
<mxGeometry x="440" y="240" width="320" height="30" as="geometry" />
|
||
|
|
</mxCell>
|
||
|
|
|
||
|
|
<!-- Handler 层 -->
|
||
|
|
<mxCell id="handler-box" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;arcSize=10;" vertex="1" parent="1">
|
||
|
|
<mxGeometry x="130" y="280" width="940" height="50" as="geometry" />
|
||
|
|
</mxCell>
|
||
|
|
<mxCell id="handler-label" value="<b>Handler</b>" style="text;html=1;align=left;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=12;" vertex="1" parent="1">
|
||
|
|
<mxGeometry x="140" y="287" width="70" height="30" as="geometry" />
|
||
|
|
</mxCell>
|
||
|
|
<mxCell id="handler-items" value="JWT 中间件 · 请求校验 · 错误处理" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=12;fontColor=#555;" vertex="1" parent="1">
|
||
|
|
<mxGeometry x="350" y="287" width="400" height="30" as="geometry" />
|
||
|
|
</mxCell>
|
||
|
|
|
||
|
|
<!-- 箭头 Handler → Service -->
|
||
|
|
<mxCell id="hs-arrow" value="" style="endArrow=classic;html=1;strokeWidth=2;strokeColor=#9673a6;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="handler-box" target="service-box">
|
||
|
|
<mxGeometry relative="1" as="geometry" />
|
||
|
|
</mxCell>
|
||
|
|
|
||
|
|
<!-- Service 层 -->
|
||
|
|
<mxCell id="service-box" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;arcSize=10;" vertex="1" parent="1">
|
||
|
|
<mxGeometry x="130" y="345" width="940" height="100" as="geometry" />
|
||
|
|
</mxCell>
|
||
|
|
<mxCell id="service-label" value="<b>Service</b>" style="text;html=1;align=left;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=12;" vertex="1" parent="1">
|
||
|
|
<mxGeometry x="140" y="350" width="70" height="25" as="geometry" />
|
||
|
|
</mxCell>
|
||
|
|
|
||
|
|
<!-- Eino Pipeline 流程 -->
|
||
|
|
<mxCell id="pipe1" value="Prompt<br>Optimizer" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;fontSize=11;" vertex="1" parent="1">
|
||
|
|
<mxGeometry x="280" y="380" width="110" height="45" as="geometry" />
|
||
|
|
</mxCell>
|
||
|
|
<mxCell id="pipe2" value="Asset<br>Generator" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;fontSize=11;" vertex="1" parent="1">
|
||
|
|
<mxGeometry x="430" y="380" width="110" height="45" as="geometry" />
|
||
|
|
</mxCell>
|
||
|
|
<mxCell id="pipe3" value="Quality<br>Supervisor" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;fontSize=11;" vertex="1" parent="1">
|
||
|
|
<mxGeometry x="580" y="380" width="110" height="45" as="geometry" />
|
||
|
|
</mxCell>
|
||
|
|
<mxCell id="pipe4" value="Format<br>Adapter" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;fontSize=11;" vertex="1" parent="1">
|
||
|
|
<mxGeometry x="730" y="380" width="110" height="45" as="geometry" />
|
||
|
|
</mxCell>
|
||
|
|
|
||
|
|
<!-- Pipeline 箭头 -->
|
||
|
|
<mxCell id="p12" value="" style="endArrow=classic;html=1;strokeWidth=2;strokeColor=#b85450;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="pipe1" target="pipe2">
|
||
|
|
<mxGeometry relative="1" as="geometry" />
|
||
|
|
</mxCell>
|
||
|
|
<mxCell id="p23" value="" style="endArrow=classic;html=1;strokeWidth=2;strokeColor=#b85450;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="pipe2" target="pipe3">
|
||
|
|
<mxGeometry relative="1" as="geometry" />
|
||
|
|
</mxCell>
|
||
|
|
<mxCell id="p34" value="" style="endArrow=classic;html=1;strokeWidth=2;strokeColor=#b85450;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="pipe3" target="pipe4">
|
||
|
|
<mxGeometry relative="1" as="geometry" />
|
||
|
|
</mxCell>
|
||
|
|
|
||
|
|
<mxCell id="pipe-label" value="Eino compose.Graph Pipeline" style="text;html=1;align=left;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=11;fontColor=#b85450;fontStyle=1;" vertex="1" parent="1">
|
||
|
|
<mxGeometry x="870" y="393" width="190" height="25" as="geometry" />
|
||
|
|
</mxCell>
|
||
|
|
|
||
|
|
<!-- 项目管理等 -->
|
||
|
|
<mxCell id="svc-extra" value="项目管理 · 风格系统 · 用户认证" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=11;fontColor=#555;" vertex="1" parent="1">
|
||
|
|
<mxGeometry x="140" y="385" width="130" height="30" as="geometry" />
|
||
|
|
</mxCell>
|
||
|
|
|
||
|
|
<!-- 箭头 Service → Data -->
|
||
|
|
<mxCell id="sd-arrow" value="" style="endArrow=classic;html=1;strokeWidth=2;strokeColor=#d6b656;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="service-box" target="data-box">
|
||
|
|
<mxGeometry relative="1" as="geometry" />
|
||
|
|
</mxCell>
|
||
|
|
|
||
|
|
<!-- Data 层 -->
|
||
|
|
<mxCell id="data-box" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;arcSize=10;" vertex="1" parent="1">
|
||
|
|
<mxGeometry x="130" y="460" width="940" height="50" as="geometry" />
|
||
|
|
</mxCell>
|
||
|
|
<mxCell id="data-label" value="<b>Data</b>" style="text;html=1;align=left;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=12;" vertex="1" parent="1">
|
||
|
|
<mxGeometry x="140" y="467" width="50" height="30" as="geometry" />
|
||
|
|
</mxCell>
|
||
|
|
<mxCell id="data-items" value="GORM + SQLite · sync.Map 缓存" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=12;fontColor=#555;" vertex="1" parent="1">
|
||
|
|
<mxGeometry x="400" y="467" width="400" height="30" as="geometry" />
|
||
|
|
</mxCell>
|
||
|
|
|
||
|
|
<!-- External Services -->
|
||
|
|
<mxCell id="ext-box" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#666666;arcSize=8;shadow=1;dashed=1;" vertex="1" parent="1">
|
||
|
|
<mxGeometry x="100" y="560" width="1000" height="80" as="geometry" />
|
||
|
|
</mxCell>
|
||
|
|
<mxCell id="ext-title" value="<b>外部服务</b>" style="text;html=1;align=left;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=12;" vertex="1" parent="1">
|
||
|
|
<mxGeometry x="120" y="565" width="80" height="25" as="geometry" />
|
||
|
|
</mxCell>
|
||
|
|
<mxCell id="ext1" value="DeepSeek LLM" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#999999;fontSize=12;" vertex="1" parent="1">
|
||
|
|
<mxGeometry x="200" y="595" width="160" height="35" as="geometry" />
|
||
|
|
</mxCell>
|
||
|
|
<mxCell id="ext2" value="Stability AI" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#999999;fontSize=12;" vertex="1" parent="1">
|
||
|
|
<mxGeometry x="460" y="595" width="160" height="35" as="geometry" />
|
||
|
|
</mxCell>
|
||
|
|
<mxCell id="ext3" value="七牛云 Kodo" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#999999;fontSize=12;" vertex="1" parent="1">
|
||
|
|
<mxGeometry x="720" y="595" width="160" height="35" as="geometry" />
|
||
|
|
</mxCell>
|
||
|
|
|
||
|
|
<!-- Backend → External 箭头 -->
|
||
|
|
<mxCell id="be-ext" value="" style="endArrow=classic;html=1;strokeWidth=2;strokeColor=#999;dashed=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="be-box" target="ext-box">
|
||
|
|
<mxGeometry relative="1" as="geometry" />
|
||
|
|
</mxCell>
|
||
|
|
|
||
|
|
</root>
|
||
|
|
</mxGraphModel>
|
||
|
|
</diagram>
|
||
|
|
</mxfile>
|