docs: 添加系统架构图和核心业务流程图 (drawio)
This commit is contained in:
302
docs/arc.drawio
Normal file
302
docs/arc.drawio
Normal file
@@ -0,0 +1,302 @@
|
||||
<mxfile host="65bd71144e">
|
||||
<diagram id="5pkIbrPrzeIIfLiHXYUX" name="Page-1">
|
||||
<mxGraphModel dx="1152" dy="493" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
|
||||
<root>
|
||||
<mxCell id="0"/>
|
||||
<mxCell id="1" parent="0"/>
|
||||
<mxCell id="title" value="GraphRAG Studio — 系统架构图" style="text;fontSize=20;fontStyle=1;fillColor=none;strokeColor=none;align=center;" parent="1" vertex="1">
|
||||
<mxGeometry x="250" y="5" width="300" height="30" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="user-layer" value="" style="rounded=1;fillColor=#FFFFFF;strokeColor=#30363d;dashed=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="160" y="40" width="420" height="45" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="user" value="🌐 用户浏览器 (Browser)" style="rounded=1;fillColor=#1a3a22;strokeColor=#3fb950;fontColor=#f0f6fc;fontSize=14;fontStyle=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="230" y="48" width="280" height="30" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="edge1" style="endArrow=classic;strokeColor=#8b949e;strokeWidth=2;" parent="1" edge="1">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<mxPoint x="370" y="85" as="sourcePoint"/>
|
||||
<mxPoint x="370" y="105" as="targetPoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="fe-layer" value="" style="rounded=1;fillColor=#FFFFFF;strokeColor=#58a6ff;strokeWidth=2;fillStyle=auto;" parent="1" vertex="1">
|
||||
<mxGeometry x="30" y="108" width="680" height="125" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="fe-label" value="Frontend — React SPA (Vite + TypeScript + Tailwind CSS)" style="text;fontSize=12;fontStyle=1;fillColor=none;strokeColor=none;fontColor=#58a6ff;align=left;" parent="1" vertex="1">
|
||||
<mxGeometry x="40" y="110" width="350" height="18" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="page-dash" value="Dashboard" style="rounded=1;fillColor=#21262d;strokeColor=#30363d;fontColor=#c9d1d9;fontSize=11;" parent="1" vertex="1">
|
||||
<mxGeometry x="45" y="133" width="100" height="28" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="page-docs" value="Documents" style="rounded=1;fillColor=#21262d;strokeColor=#30363d;fontColor=#c9d1d9;fontSize=11;" parent="1" vertex="1">
|
||||
<mxGeometry x="155" y="133" width="100" height="28" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="page-kg" value="KG Explorer" style="rounded=1;fillColor=#21262d;strokeColor=#30363d;fontColor=#c9d1d9;fontSize=11;" parent="1" vertex="1">
|
||||
<mxGeometry x="265" y="133" width="100" height="28" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="page-chat" value="QA Chat" style="rounded=1;fillColor=#21262d;strokeColor=#30363d;fontColor=#c9d1d9;fontSize=11;" parent="1" vertex="1">
|
||||
<mxGeometry x="375" y="133" width="100" height="28" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="page-search" value="Search" style="rounded=1;fillColor=#21262d;strokeColor=#30363d;fontColor=#c9d1d9;fontSize=11;" parent="1" vertex="1">
|
||||
<mxGeometry x="485" y="133" width="100" height="28" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="fe-state" value="AppProvider (React Context)" style="rounded=1;fillColor=#1c2128;strokeColor=#8957e5;fontColor=#bc8cff;fontSize=10;" parent="1" vertex="1">
|
||||
<mxGeometry x="45" y="170" width="200" height="24" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="fe-d3" value="D3.js 力导向图" style="rounded=1;fillColor=#1c2128;strokeColor=#8957e5;fontColor=#bc8cff;fontSize=10;" parent="1" vertex="1">
|
||||
<mxGeometry x="260" y="170" width="200" height="24" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="fe-api" value="API Client (api.ts)" style="rounded=1;fillColor=#1c2128;strokeColor=#d29922;fontColor=#d29922;fontSize=10;" parent="1" vertex="1">
|
||||
<mxGeometry x="475" y="170" width="220" height="24" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="edge2" style="endArrow=classic;strokeColor=#8b949e;strokeWidth=2;" parent="1" edge="1">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<mxPoint x="370" y="233" as="sourcePoint"/>
|
||||
<mxPoint x="370" y="253" as="targetPoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="edge2-label" value="REST /api/v1" style="text;fontSize=9;fontColor=#8b949e;fillColor=none;strokeColor=none;" parent="1" vertex="1">
|
||||
<mxGeometry x="378" y="234" width="70" height="16" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="api-layer" value="" style="rounded=1;fillColor=#FFFFFF;strokeColor=#3fb950;strokeWidth=2;" parent="1" vertex="1">
|
||||
<mxGeometry x="30" y="258" width="680" height="90" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="api-label" value="Backend — FastAPI (Python) :8000" style="text;fontSize=12;fontStyle=1;fillColor=none;strokeColor=none;fontColor=#3fb950;align=left;" parent="1" vertex="1">
|
||||
<mxGeometry x="40" y="260" width="250" height="18" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="r-docs" value="/documents" style="rounded=1;fillColor=#0d3320;strokeColor=#3fb950;fontColor=#c9d1d9;fontSize=10;fontStyle=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="40" y="285" width="96" height="28" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="r-idx" value="/index" style="rounded=1;fillColor=#0d3320;strokeColor=#3fb950;fontColor=#c9d1d9;fontSize=10;fontStyle=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="146" y="285" width="96" height="28" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="r-kg" value="/kg" style="rounded=1;fillColor=#0d3320;strokeColor=#3fb950;fontColor=#c9d1d9;fontSize=10;fontStyle=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="252" y="285" width="96" height="28" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="r-query" value="/query" style="rounded=1;fillColor=#0d3320;strokeColor=#3fb950;fontColor=#c9d1d9;fontSize=10;fontStyle=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="358" y="285" width="96" height="28" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="r-search" value="/search" style="rounded=1;fillColor=#0d3320;strokeColor=#3fb950;fontColor=#c9d1d9;fontSize=10;fontStyle=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="464" y="285" width="96" height="28" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="r-sys" value="/system" style="rounded=1;fillColor=#0d3320;strokeColor=#3fb950;fontColor=#c9d1d9;fontSize=10;fontStyle=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="570" y="285" width="96" height="28" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="r-docs-d" value="上传/列表/删除" style="text;fontSize=8;fillColor=none;strokeColor=none;fontColor=#8b949e;align=center;" parent="1" vertex="1">
|
||||
<mxGeometry x="40" y="314" width="96" height="14" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="r-idx-d" value="索引任务管理" style="text;fontSize=8;fillColor=none;strokeColor=none;fontColor=#8b949e;align=center;" parent="1" vertex="1">
|
||||
<mxGeometry x="146" y="314" width="96" height="14" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="r-kg-d" value="图谱 CRUD" style="text;fontSize=8;fillColor=none;strokeColor=none;fontColor=#8b949e;align=center;" parent="1" vertex="1">
|
||||
<mxGeometry x="252" y="314" width="96" height="14" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="r-query-d" value="QA问答" style="text;fontSize=8;fillColor=none;strokeColor=none;fontColor=#8b949e;align=center;" parent="1" vertex="1">
|
||||
<mxGeometry x="358" y="314" width="96" height="14" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="r-search-d" value="实体/路径/子图" style="text;fontSize=8;fillColor=none;strokeColor=none;fontColor=#8b949e;align=center;" parent="1" vertex="1">
|
||||
<mxGeometry x="464" y="314" width="96" height="14" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="r-sys-d" value="健康/统计/Demo" style="text;fontSize=8;fillColor=none;strokeColor=none;fontColor=#8b949e;align=center;" parent="1" vertex="1">
|
||||
<mxGeometry x="570" y="314" width="96" height="14" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="edge3" style="endArrow=classic;strokeColor=#8b949e;strokeWidth=2;" parent="1" edge="1">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<mxPoint x="370" y="348" as="sourcePoint"/>
|
||||
<mxPoint x="370" y="368" as="targetPoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="svc-layer" value="" style="rounded=1;fillColor=#FFFFFF;strokeColor=#d29922;strokeWidth=2;" parent="1" vertex="1">
|
||||
<mxGeometry x="30" y="373" width="680" height="52" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="svc-label" value="Service Layer" style="text;fontSize=11;fontStyle=1;fillColor=none;strokeColor=none;fontColor=#d29922;align=left;" parent="1" vertex="1">
|
||||
<mxGeometry x="40" y="375" width="100" height="16" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="s-doc" value="document_service" style="rounded=1;fillColor=#21262d;strokeColor=#d29922;fontColor=#c9d1d9;fontSize=9;" parent="1" vertex="1">
|
||||
<mxGeometry x="40" y="394" width="120" height="24" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="s-idx" value="indexing_service" style="rounded=1;fillColor=#21262d;strokeColor=#d29922;fontColor=#c9d1d9;fontSize=9;" parent="1" vertex="1">
|
||||
<mxGeometry x="170" y="394" width="120" height="24" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="s-kg" value="kg_service" style="rounded=1;fillColor=#21262d;strokeColor=#d29922;fontColor=#c9d1d9;fontSize=9;" parent="1" vertex="1">
|
||||
<mxGeometry x="300" y="394" width="120" height="24" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="s-qa" value="qa_service" style="rounded=1;fillColor=#21262d;strokeColor=#d29922;fontColor=#c9d1d9;fontSize=9;" parent="1" vertex="1">
|
||||
<mxGeometry x="430" y="394" width="120" height="24" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="s-search" value="search_service" style="rounded=1;fillColor=#21262d;strokeColor=#d29922;fontColor=#c9d1d9;fontSize=9;" parent="1" vertex="1">
|
||||
<mxGeometry x="560" y="394" width="120" height="24" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="edge4" style="endArrow=classic;strokeColor=#8b949e;strokeWidth=2;" parent="1" edge="1">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<mxPoint x="370" y="425" as="sourcePoint"/>
|
||||
<mxPoint x="370" y="448" as="targetPoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="pipe-layer" value="" style="rounded=1;fillColor=#FFFFFF;strokeColor=#8957e5;strokeWidth=2;" parent="1" vertex="1">
|
||||
<mxGeometry x="30" y="453" width="680" height="52" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="pipe-label" value="Pipeline Layer" style="text;fontSize=11;fontStyle=1;fillColor=none;strokeColor=none;fontColor=#8957e5;align=left;" parent="1" vertex="1">
|
||||
<mxGeometry x="40" y="455" width="100" height="16" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="p-text" value="text_assembler" style="rounded=1;fillColor=#21262d;strokeColor=#8957e5;fontColor=#c9d1d9;fontSize=9;" parent="1" vertex="1">
|
||||
<mxGeometry x="40" y="474" width="110" height="24" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="p-extr" value="entity_extractor" style="rounded=1;fillColor=#21262d;strokeColor=#8957e5;fontColor=#c9d1d9;fontSize=9;" parent="1" vertex="1">
|
||||
<mxGeometry x="185" y="474" width="110" height="24" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="p-kgb" value="kg_builder" style="rounded=1;fillColor=#21262d;strokeColor=#8957e5;fontColor=#c9d1d9;fontSize=9;" parent="1" vertex="1">
|
||||
<mxGeometry x="330" y="474" width="110" height="24" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="p-qa" value="qa_agent" style="rounded=1;fillColor=#21262d;strokeColor=#8957e5;fontColor=#c9d1d9;fontSize=9;" parent="1" vertex="1">
|
||||
<mxGeometry x="475" y="474" width="110" height="24" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="pa1" style="endArrow=classic;strokeColor=#8957e5;strokeWidth=1;" parent="1" edge="1">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<mxPoint x="150" y="486" as="sourcePoint"/>
|
||||
<mxPoint x="182" y="486" as="targetPoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="pa2" style="endArrow=classic;strokeColor=#8957e5;strokeWidth=1;" parent="1" edge="1">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<mxPoint x="295" y="486" as="sourcePoint"/>
|
||||
<mxPoint x="327" y="486" as="targetPoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="pa3" style="endArrow=classic;strokeColor=#8957e5;strokeWidth=1;" parent="1" edge="1">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<mxPoint x="440" y="486" as="sourcePoint"/>
|
||||
<mxPoint x="472" y="486" as="targetPoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="st-layer" value="" style="rounded=1;fillColor=#FFFFFF;strokeColor=#ff7b72;strokeWidth=2;" parent="1" vertex="1">
|
||||
<mxGeometry x="30" y="528" width="680" height="52" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="st-label" value="Storage Layer — JSON File Store (backend/data/)" style="text;fontSize=11;fontStyle=1;fillColor=none;strokeColor=none;fontColor=#ff7b72;align=left;" parent="1" vertex="1">
|
||||
<mxGeometry x="40" y="530" width="320" height="16" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="st-docs" value="docs_index.json" style="rounded=1;fillColor=#21262d;strokeColor=#ff7b72;fontColor=#c9d1d9;fontSize=9;" parent="1" vertex="1">
|
||||
<mxGeometry x="40" y="549" width="120" height="24" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="st-kgn" value="kg_nodes.json" style="rounded=1;fillColor=#21262d;strokeColor=#ff7b72;fontColor=#c9d1d9;fontSize=9;" parent="1" vertex="1">
|
||||
<mxGeometry x="175" y="549" width="120" height="24" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="st-kge" value="kg_edges.json" style="rounded=1;fillColor=#21262d;strokeColor=#ff7b72;fontColor=#c9d1d9;fontSize=9;" parent="1" vertex="1">
|
||||
<mxGeometry x="310" y="549" width="120" height="24" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="st-jobs" value="jobs/*.json" style="rounded=1;fillColor=#21262d;strokeColor=#ff7b72;fontColor=#c9d1d9;fontSize=9;" parent="1" vertex="1">
|
||||
<mxGeometry x="445" y="549" width="120" height="24" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="st-hist" value="query_history.jsonl" style="rounded=1;fillColor=#21262d;strokeColor=#ff7b72;fontColor=#c9d1d9;fontSize=9;" parent="1" vertex="1">
|
||||
<mxGeometry x="580" y="549" width="120" height="24" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="edge5" style="endArrow=classic;strokeColor=#8b949e;strokeWidth=2;" parent="1" edge="1">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<mxPoint x="370" y="505" as="sourcePoint"/>
|
||||
<mxPoint x="370" y="525" as="targetPoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="ext-box" value="" style="rounded=1;fillColor=#FFFFFF;strokeColor=#8b949e;strokeWidth=1;dashed=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="740" y="108" width="190" height="175" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="ext-label" value="外部依赖" style="text;fontSize=12;fontStyle=1;fillColor=none;strokeColor=none;fontColor=#8b949e;align=center;" parent="1" vertex="1">
|
||||
<mxGeometry x="760" y="110" width="150" height="18" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="ext-mineru" value="MinerU
(PDF 解析)" style="rounded=1;fillColor=#21262d;strokeColor=#8b949e;fontColor=#ffa657;fontSize=11;" parent="1" vertex="1">
|
||||
<mxGeometry x="760" y="135" width="150" height="38" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="ext-deepseek" value="DeepSeek API
(LLM 推理)" style="rounded=1;fillColor=#21262d;strokeColor=#8b949e;fontColor=#58a6ff;fontSize=11;" parent="1" vertex="1">
|
||||
<mxGeometry x="760" y="183" width="150" height="38" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="ext-lx" value="LangExtract
(实体抽取框架)" style="rounded=1;fillColor=#21262d;strokeColor=#8b949e;fontColor=#bc8cff;fontSize=11;" parent="1" vertex="1">
|
||||
<mxGeometry x="760" y="231" width="150" height="38" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="e2mineru" style="endArrow=classic;strokeColor=#ffa657;strokeWidth=1;dashed=1;entryX=0;entryY=0.5;" parent="1" edge="1">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<mxPoint x="185" y="453" as="sourcePoint"/>
|
||||
<mxPoint x="757" y="154" as="targetPoint"/>
|
||||
<Array as="points">
|
||||
<mxPoint x="725" y="440"/>
|
||||
<mxPoint x="725" y="154"/>
|
||||
<mxPoint x="757" y="154"/>
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="e2ds" style="endArrow=classic;strokeColor=#58a6ff;strokeWidth=1;dashed=1;" parent="1" edge="1">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<mxPoint x="475" y="453" as="sourcePoint"/>
|
||||
<mxPoint x="757" y="202" as="targetPoint"/>
|
||||
<Array as="points">
|
||||
<mxPoint x="730" y="453"/>
|
||||
<mxPoint x="730" y="202"/>
|
||||
<mxPoint x="757" y="202"/>
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="legend-box" value="" style="rounded=1;fillColor=#FFFFFF;strokeColor=#30363d;" parent="1" vertex="1">
|
||||
<mxGeometry x="740" y="340" width="190" height="240" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="legend-title" value="图例" style="text;fontSize=12;fontStyle=1;fillColor=none;strokeColor=none;fontColor=#f0f6fc;align=center;" parent="1" vertex="1">
|
||||
<mxGeometry x="760" y="345" width="150" height="18" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="leg-fe" value="" style="rounded=1;fillColor=#58a6ff;strokeColor=none;" parent="1" vertex="1">
|
||||
<mxGeometry x="755" y="370" width="14" height="14" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="leg-fe-t" value="前端层 (React)" style="text;fontSize=10;fillColor=none;strokeColor=none;fontColor=#c9d1d9;align=left;" parent="1" vertex="1">
|
||||
<mxGeometry x="775" y="368" width="140" height="16" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="leg-api" value="" style="rounded=1;fillColor=#3fb950;strokeColor=none;" parent="1" vertex="1">
|
||||
<mxGeometry x="755" y="392" width="14" height="14" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="leg-api-t" value="API 层 (FastAPI)" style="text;fontSize=10;fillColor=none;strokeColor=none;fontColor=#c9d1d9;align=left;" parent="1" vertex="1">
|
||||
<mxGeometry x="775" y="390" width="140" height="16" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="leg-svc" value="" style="rounded=1;fillColor=#d29922;strokeColor=none;" parent="1" vertex="1">
|
||||
<mxGeometry x="755" y="414" width="14" height="14" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="leg-svc-t" value="服务层 (Service)" style="text;fontSize=10;fillColor=none;strokeColor=none;fontColor=#c9d1d9;align=left;" parent="1" vertex="1">
|
||||
<mxGeometry x="775" y="412" width="140" height="16" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="leg-pipe" value="" style="rounded=1;fillColor=#8957e5;strokeColor=none;" parent="1" vertex="1">
|
||||
<mxGeometry x="755" y="436" width="14" height="14" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="leg-pipe-t" value="流水线层 (Pipeline)" style="text;fontSize=10;fillColor=none;strokeColor=none;fontColor=#c9d1d9;align=left;" parent="1" vertex="1">
|
||||
<mxGeometry x="775" y="434" width="140" height="16" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="leg-st" value="" style="rounded=1;fillColor=#ff7b72;strokeColor=none;" parent="1" vertex="1">
|
||||
<mxGeometry x="755" y="458" width="14" height="14" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="leg-st-t" value="存储层 (JSON FileStore)" style="text;fontSize=10;fillColor=none;strokeColor=none;fontColor=#c9d1d9;align=left;" parent="1" vertex="1">
|
||||
<mxGeometry x="775" y="456" width="140" height="16" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="leg-ext" value="" style="rounded=1;fillColor=#8b949e;strokeColor=none;" parent="1" vertex="1">
|
||||
<mxGeometry x="755" y="480" width="14" height="14" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="leg-ext-t" value="外部依赖" style="text;fontSize=10;fillColor=none;strokeColor=none;fontColor=#c9d1d9;align=left;" parent="1" vertex="1">
|
||||
<mxGeometry x="775" y="478" width="140" height="16" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="leg-solid" value="" style="endArrow=classic;strokeColor=#8b949e;strokeWidth=1;" parent="1" edge="1">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<mxPoint x="755" y="506" as="sourcePoint"/>
|
||||
<mxPoint x="775" y="506" as="targetPoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="leg-solid-t" value="同步调用" style="text;fontSize=10;fillColor=none;strokeColor=none;fontColor=#c9d1d9;align=left;" parent="1" vertex="1">
|
||||
<mxGeometry x="780" y="497" width="140" height="16" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="leg-dash" value="" style="endArrow=classic;strokeColor=#8b949e;strokeWidth=1;dashed=1;" parent="1" edge="1">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<mxPoint x="755" y="530" as="sourcePoint"/>
|
||||
<mxPoint x="775" y="530" as="targetPoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="leg-dash-t" value="异步/外部调用" style="text;fontSize=10;fillColor=none;strokeColor=none;fontColor=#c9d1d9;align=left;" parent="1" vertex="1">
|
||||
<mxGeometry x="780" y="521" width="140" height="16" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="tech-stack" value="技术栈: React + TypeScript + Vite + TailwindCSS | FastAPI + Python | D3.js | NetworkX | LangChain | DeepSeek | MinerU | LangExtract" style="text;fontSize=9;fillColor=none;strokeColor=none;fontColor=#484f58;align=center;" parent="1" vertex="1">
|
||||
<mxGeometry x="30" y="595" width="900" height="16" as="geometry"/>
|
||||
</mxCell>
|
||||
</root>
|
||||
</mxGraphModel>
|
||||
</diagram>
|
||||
</mxfile>
|
||||
Reference in New Issue
Block a user