-
Notifications
You must be signed in to change notification settings - Fork 0
/
RAG.drawio
151 lines (151 loc) · 22.3 KB
/
RAG.drawio
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
<mxfile host="app.diagrams.net" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0" version="24.7.7">
<diagram name="第 1 页" id="MafnV5kA-N-Bn0CcQXsm">
<mxGraphModel dx="1802" dy="834" grid="1" gridSize="5" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="0" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="W3ZhN9rzalotpdxbDRm3-1" value="Qwen模型" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="165" y="-50" width="120" height="25" as="geometry" />
</mxCell>
<mxCell id="W3ZhN9rzalotpdxbDRm3-2" value="Embedding模型" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="-85" y="-50" width="120" height="25" as="geometry" />
</mxCell>
<mxCell id="W3ZhN9rzalotpdxbDRm3-3" value="BM2.5算法" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="-85" y="-20" width="120" height="25" as="geometry" />
</mxCell>
<mxCell id="W3ZhN9rzalotpdxbDRm3-4" value="检索模型" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="40" y="-50" width="120" height="25" as="geometry" />
</mxCell>
<mxCell id="O_Eo14AQ1HiPcfrSu76b-1" value="Reranker模型" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="40" y="-20" width="120" height="25" as="geometry" />
</mxCell>
<mxCell id="O_Eo14AQ1HiPcfrSu76b-2" value="<div><font face="宋体">问询环节</font></div>Query" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#000000;fontFamily=Times New Roman;" parent="1" vertex="1">
<mxGeometry x="-85" y="60" width="110" height="40" as="geometry" />
</mxCell>
<mxCell id="O_Eo14AQ1HiPcfrSu76b-3" value="<div style="font-size: 11px;"><font face="宋体">问询生成</font></div>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#000000;verticalAlign=top;fontSize=11;fontFamily=Times New Roman;spacing=-1;" parent="1" vertex="1">
<mxGeometry x="30" y="60" width="270" height="40" as="geometry" />
</mxCell>
<mxCell id="O_Eo14AQ1HiPcfrSu76b-4" value="<span style="font-size: 11px;">expansion</span>" style="rounded=0;whiteSpace=wrap;html=1;verticalAlign=middle;fontFamily=Times New Roman;fillColor=#f5f5f5;strokeColor=#666666;strokeWidth=1;fontColor=#333333;fontSize=11;" parent="1" vertex="1">
<mxGeometry x="40" y="80" width="70" height="16" as="geometry" />
</mxCell>
<mxCell id="O_Eo14AQ1HiPcfrSu76b-6" value="<span style="font-size: 11px;">rewrite</span>" style="rounded=0;whiteSpace=wrap;html=1;verticalAlign=middle;fontFamily=Times New Roman;fillColor=#f5f5f5;strokeColor=#666666;strokeWidth=1;fontColor=#333333;fontSize=11;" parent="1" vertex="1">
<mxGeometry x="130" y="80" width="70" height="16" as="geometry" />
</mxCell>
<mxCell id="O_Eo14AQ1HiPcfrSu76b-7" value="<span style="font-size: 11px;">prompt</span>" style="rounded=0;whiteSpace=wrap;html=1;verticalAlign=middle;fontFamily=Times New Roman;fillColor=#f5f5f5;strokeColor=#666666;strokeWidth=1;fontColor=#333333;fontSize=11;" parent="1" vertex="1">
<mxGeometry x="220" y="80" width="70" height="16" as="geometry" />
</mxCell>
<mxCell id="O_Eo14AQ1HiPcfrSu76b-8" value="<div><font face="宋体">检索环节</font></div>Retrieval" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#000000;fontFamily=Times New Roman;" parent="1" vertex="1">
<mxGeometry x="-85" y="105" width="110" height="50" as="geometry" />
</mxCell>
<mxCell id="O_Eo14AQ1HiPcfrSu76b-10" value="<div style="font-size: 11px;">多路召回</div>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#000000;verticalAlign=top;fontSize=11;fontFamily=宋体;spacing=-1;" parent="1" vertex="1">
<mxGeometry x="30" y="105" width="130" height="50" as="geometry" />
</mxCell>
<mxCell id="O_Eo14AQ1HiPcfrSu76b-11" value="<span style="font-size: 10px;">BM2.5</span>" style="rounded=0;whiteSpace=wrap;html=1;verticalAlign=middle;fontFamily=Times New Roman;fillColor=#f5f5f5;strokeColor=#666666;strokeWidth=1;fontColor=#333333;fontSize=10;" parent="1" vertex="1">
<mxGeometry x="40" y="129" width="40" height="20" as="geometry" />
</mxCell>
<mxCell id="O_Eo14AQ1HiPcfrSu76b-12" value="<span style="font-size: 10px;">embedding</span>" style="rounded=0;whiteSpace=wrap;html=1;verticalAlign=middle;fontFamily=Times New Roman;fillColor=#f5f5f5;strokeColor=#666666;strokeWidth=1;fontColor=#333333;fontSize=10;" parent="1" vertex="1">
<mxGeometry x="90" y="129" width="60" height="20" as="geometry" />
</mxCell>
<mxCell id="O_Eo14AQ1HiPcfrSu76b-13" value="<div style="font-size: 11px;">重排算法</div>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#000000;verticalAlign=top;fontSize=11;fontFamily=宋体;spacing=-1;" parent="1" vertex="1">
<mxGeometry x="170" y="105" width="130" height="50" as="geometry" />
</mxCell>
<mxCell id="O_Eo14AQ1HiPcfrSu76b-14" value="<div style="font-size: 11px;">生成</div><div style="font-size: 11px;">回答</div>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#000000;verticalAlign=middle;fontSize=11;fontFamily=宋体;spacingTop=-14;" parent="1" vertex="1">
<mxGeometry x="305" y="60" width="40" height="215" as="geometry" />
</mxCell>
<mxCell id="O_Eo14AQ1HiPcfrSu76b-15" value="<span style="font-size: 10px;">BGE</span>" style="rounded=0;whiteSpace=wrap;html=1;verticalAlign=middle;fontFamily=Times New Roman;fillColor=#f5f5f5;strokeColor=#666666;strokeWidth=1;fontColor=#333333;fontSize=10;" parent="1" vertex="1">
<mxGeometry x="180" y="129" width="50" height="20" as="geometry" />
</mxCell>
<mxCell id="O_Eo14AQ1HiPcfrSu76b-16" value="<span style="font-size: 10px;">LLM</span>" style="rounded=0;whiteSpace=wrap;html=1;verticalAlign=middle;fontFamily=Times New Roman;fillColor=#f5f5f5;strokeColor=#666666;strokeWidth=1;fontColor=#333333;fontSize=10;" parent="1" vertex="1">
<mxGeometry x="240" y="129" width="50" height="20" as="geometry" />
</mxCell>
<mxCell id="O_Eo14AQ1HiPcfrSu76b-17" value="<div><font face="宋体">索引构建</font></div>Index" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#000000;fontFamily=Times New Roman;" parent="1" vertex="1">
<mxGeometry x="-85" y="160" width="110" height="80" as="geometry" />
</mxCell>
<mxCell id="O_Eo14AQ1HiPcfrSu76b-18" value="<div><font face="宋体">文件处理</font></div>Source" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#000000;fontFamily=Times New Roman;" parent="1" vertex="1">
<mxGeometry x="-85" y="245" width="110" height="30" as="geometry" />
</mxCell>
<mxCell id="O_Eo14AQ1HiPcfrSu76b-19" value="<div style="font-size: 11px;"><font face="宋体">向量数据库构建(基于</font><span style="background-color: initial;">Faiss</span><span style="font-family: 宋体; background-color: initial;">)</span></div>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#000000;verticalAlign=top;fontSize=11;fontFamily=Times New Roman;spacing=-1;" parent="1" vertex="1">
<mxGeometry x="30" y="160" width="270" height="80" as="geometry" />
</mxCell>
<mxCell id="O_Eo14AQ1HiPcfrSu76b-20" value="<div style="font-size: 11px;"><font face="宋体">文档读取加载(</font><span style="background-color: initial;">PYPDF</span><span style="font-family: 宋体; background-color: initial;">)</span></div>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#000000;verticalAlign=middle;fontSize=11;fontFamily=Times New Roman;" parent="1" vertex="1">
<mxGeometry x="30" y="245" width="270" height="30" as="geometry" />
</mxCell>
<mxCell id="O_Eo14AQ1HiPcfrSu76b-21" value="<div><span style="background-color: initial; text-align: left;">Text</span><div><div><font>Image</font></div></div></div>" style="rounded=0;whiteSpace=wrap;html=1;verticalAlign=top;fontFamily=Times New Roman;fillColor=#f5f5f5;strokeColor=#666666;strokeWidth=1;fontColor=#333333;fontSize=10;spacing=0;" parent="1" vertex="1">
<mxGeometry x="40" y="200" width="65" height="35" as="geometry" />
</mxCell>
<mxCell id="O_Eo14AQ1HiPcfrSu76b-23" value="Sentence<div>Token</div>" style="rounded=0;whiteSpace=wrap;html=1;verticalAlign=top;fontFamily=Times New Roman;fillColor=#f5f5f5;strokeColor=#666666;strokeWidth=1;fontColor=#333333;fontSize=10;spacing=0;" parent="1" vertex="1">
<mxGeometry x="125" y="200" width="70" height="35" as="geometry" />
</mxCell>
<mxCell id="O_Eo14AQ1HiPcfrSu76b-24" value="<div>BGE</div><div>OpenAI</div>" style="rounded=0;whiteSpace=wrap;html=1;verticalAlign=top;fontFamily=Times New Roman;fillColor=#f5f5f5;strokeColor=#666666;strokeWidth=1;fontColor=#333333;fontSize=10;spacing=0;" parent="1" vertex="1">
<mxGeometry x="220" y="200" width="70" height="35" as="geometry" />
</mxCell>
<mxCell id="O_Eo14AQ1HiPcfrSu76b-28" value="<span style="font-family: 宋体; font-size: 10px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; orphans: 2; text-align: center; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">文档解析</span>" style="text;whiteSpace=wrap;html=1;fillColor=none;labelBackgroundColor=none;fontColor=#000099;fontStyle=1" parent="1" vertex="1">
<mxGeometry x="50" y="175" width="45" height="25" as="geometry" />
</mxCell>
<mxCell id="O_Eo14AQ1HiPcfrSu76b-29" value="<span style="font-family: 宋体; font-size: 10px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; orphans: 2; text-align: center; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">语料分块</span>" style="text;whiteSpace=wrap;html=1;fillColor=none;labelBackgroundColor=none;fontColor=#000099;fontStyle=1" parent="1" vertex="1">
<mxGeometry x="137.5" y="175" width="45" height="25" as="geometry" />
</mxCell>
<mxCell id="O_Eo14AQ1HiPcfrSu76b-30" value="<span style="font-size: 10px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; orphans: 2; text-align: center; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">embedding</span>" style="text;whiteSpace=wrap;html=1;fillColor=none;labelBackgroundColor=none;fontColor=#000099;fontStyle=1;fontFamily=Times New Roman;" parent="1" vertex="1">
<mxGeometry x="230" y="175" width="50" height="25" as="geometry" />
</mxCell>
<mxCell id="O_Eo14AQ1HiPcfrSu76b-32" value="<div style="font-size: 11px;">Fine-tuning</div>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#328073;strokeColor=#000000;verticalAlign=top;fontSize=11;fontFamily=Times New Roman;fontColor=#FFFFFF;" parent="1" vertex="1">
<mxGeometry x="350" y="60" width="110" height="70" as="geometry" />
</mxCell>
<mxCell id="O_Eo14AQ1HiPcfrSu76b-33" value="<div style="font-size: 11px;">Context Select</div>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#328073;strokeColor=#000000;verticalAlign=top;fontSize=11;fontFamily=Times New Roman;fontColor=#FFFFFF;" parent="1" vertex="1">
<mxGeometry x="350" y="135" width="110" height="65" as="geometry" />
</mxCell>
<mxCell id="O_Eo14AQ1HiPcfrSu76b-34" value="<span style="font-size: 9px;">Top-K</span>" style="rounded=0;whiteSpace=wrap;html=1;verticalAlign=middle;fontFamily=Times New Roman;fillColor=#1D2570;strokeColor=none;strokeWidth=1;fontColor=#FFFFFF;fontSize=9;" parent="1" vertex="1">
<mxGeometry x="360" y="160" width="45" height="15" as="geometry" />
</mxCell>
<mxCell id="O_Eo14AQ1HiPcfrSu76b-35" value="<span style="font-size: 9px;">MMR</span>" style="rounded=0;whiteSpace=wrap;html=1;verticalAlign=middle;fontFamily=Times New Roman;fillColor=#1D2570;strokeColor=none;strokeWidth=1;fontColor=#FFFFFF;fontSize=9;" parent="1" vertex="1">
<mxGeometry x="410" y="160" width="40" height="15" as="geometry" />
</mxCell>
<mxCell id="O_Eo14AQ1HiPcfrSu76b-36" value="<span style="font-size: 9px;">Similarity</span>" style="rounded=0;whiteSpace=wrap;html=1;verticalAlign=middle;fontFamily=Times New Roman;fillColor=#1D2570;strokeColor=none;strokeWidth=1;fontColor=#FFFFFF;fontSize=9;" parent="1" vertex="1">
<mxGeometry x="360" y="180" width="90" height="15" as="geometry" />
</mxCell>
<mxCell id="O_Eo14AQ1HiPcfrSu76b-37" value="<div style="font-size: 11px;">Inference</div><div style="font-size: 11px;"><br></div>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#328073;strokeColor=#000000;verticalAlign=top;fontSize=11;fontFamily=Times New Roman;fontColor=#FFFFFF;" parent="1" vertex="1">
<mxGeometry x="350" y="205" width="110" height="70" as="geometry" />
</mxCell>
<mxCell id="O_Eo14AQ1HiPcfrSu76b-38" value="<span style="font-size: 9px;">Prompt engineering</span>" style="rounded=0;whiteSpace=wrap;html=1;verticalAlign=middle;fontFamily=Times New Roman;fillColor=#1D2570;strokeColor=none;strokeWidth=1;fontColor=#FFFFFF;fontSize=9;" parent="1" vertex="1">
<mxGeometry x="360" y="230" width="90" height="15" as="geometry" />
</mxCell>
<mxCell id="O_Eo14AQ1HiPcfrSu76b-39" value="Chain-of-Thought" style="rounded=0;whiteSpace=wrap;html=1;verticalAlign=middle;fontFamily=Times New Roman;fillColor=#1D2570;strokeColor=none;strokeWidth=1;fontColor=#FFFFFF;fontSize=9;" parent="1" vertex="1">
<mxGeometry x="360" y="252.5" width="90" height="15" as="geometry" />
</mxCell>
<mxCell id="O_Eo14AQ1HiPcfrSu76b-40" value="<font face="Times New Roman">Faiss: </font><font face="宋体">建立向量索引,几种方式&nbsp;</font><font face="Times New Roman"><font style="background-color: initial;">IndexFlatL2/</font><span style="background-color: initial;">IndexIVFFlat/IndexIVFPQ</span></font><div><font face="宋体">平面索引/分区索引/乘积索引,通过牺牲精度换取检索性能</font></div>" style="text;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=宋体;" parent="1" vertex="1">
<mxGeometry x="-85" y="285" width="430" height="30" as="geometry" />
</mxCell>
<mxCell id="O_Eo14AQ1HiPcfrSu76b-41" value="" style="endArrow=classic;html=1;rounded=0;strokeWidth=1;endSize=4;" parent="1" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="313" y="181" as="sourcePoint" />
<mxPoint x="337.5" y="181" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="O_Eo14AQ1HiPcfrSu76b-42" value="<font face="Times New Roman">BM2.5</font><font face="宋体">算法:基于</font><font face="Times New Roman">TF-IDF</font><font face="宋体">,</font><font face="Times New Roman">TF</font><font face="宋体">为词语频率,</font><font face="Times New Roman">IDF</font><font face="宋体">为逆文档频率</font><div><font face="宋体">都是用来体现词语重要性的指标</font><div><font face="Times New Roman">TF</font>计算为词语在文档中频率/<font face="Times New Roman">IDF</font>计算为所用文档中出现比例的倒数</div></div><div>超参数<font face="Times New Roman">k1</font>用以控制 <font face="Times New Roman">b</font> 用以控制文档长度造成的影响</div><div>流程为</div><div><font face="Times New Roman">1&nbsp;&nbsp;</font>统计单句词频<font face="Times New Roman">&amp;&amp;</font>总词频&nbsp;</div><div><font face="Times New Roman">2&nbsp;&nbsp;</font>统计逆文档频率 (<font face="Times New Roman">query</font>的词得在词表里,不然直接<font face="Times New Roman">0</font>)</div><div><font face="Times New Roman">3</font> 遍历<font face="Times New Roman">query</font>的词,<span style="background-color: initial;">单句词频单独计算,</span><span style="background-color: initial;">计算对单句的得分再加和</span></div><div><span style="background-color: initial;"><font face="Times New Roman">4</font> 计算所有的得分</span></div>" style="text;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=宋体;" parent="1" vertex="1">
<mxGeometry x="-85" y="325" width="430" height="145" as="geometry" />
</mxCell>
<mxCell id="O_Eo14AQ1HiPcfrSu76b-43" value="<font face="Times New Roman">Jieba</font><font face="宋体">分词原理与使用</font>" style="text;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=宋体;" parent="1" vertex="1">
<mxGeometry x="-85" y="530" width="385" height="35" as="geometry" />
</mxCell>
<mxCell id="z1lQjwvy5pSk2mGMMR6U-1" value="<span style="font-size: 9px;">Embedding finetuning</span>" style="rounded=0;whiteSpace=wrap;html=1;verticalAlign=middle;fontFamily=Times New Roman;fillColor=#1D2570;strokeColor=none;strokeWidth=1;fontColor=#FFFFFF;fontSize=9;" parent="1" vertex="1">
<mxGeometry x="360" y="87.5" width="90" height="15" as="geometry" />
</mxCell>
<mxCell id="z1lQjwvy5pSk2mGMMR6U-2" value="<span style="font-size: 9px;">LLM finetunning</span>" style="rounded=0;whiteSpace=wrap;html=1;verticalAlign=middle;fontFamily=Times New Roman;fillColor=#1D2570;strokeColor=none;strokeWidth=1;fontColor=#FFFFFF;fontSize=9;" parent="1" vertex="1">
<mxGeometry x="360" y="110" width="90" height="15" as="geometry" />
</mxCell>
<mxCell id="z1lQjwvy5pSk2mGMMR6U-4" value="<font face="Times New Roman">MMR</font><font face="宋体">最大边缘相关性算法:用于提高重排算法</font><font face="Times New Roman">TopK</font><font face="宋体">推荐列表的多样性</font><div><font face="宋体">原理为加权计算推荐得分与相似度得分,根据加权分逐个选入</font><span style="font-family: &quot;Times New Roman&quot;; background-color: initial;">TopK</span></div>" style="text;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=宋体;" parent="1" vertex="1">
<mxGeometry x="-85" y="480" width="405" height="35" as="geometry" />
</mxCell>
<mxCell id="z1lQjwvy5pSk2mGMMR6U-5" value="<font>具体实现使用<font face="Times New Roman">PYPDF</font><font face="宋体">,具体做法有点粗糙,直接将一页内容读成一个字符串,然后滑动窗口切割成语料列表,一条语料就是后续用以检索的数据。</font></font>" style="text;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=宋体;" parent="1" vertex="1">
<mxGeometry x="-420" y="245" width="305" height="45" as="geometry" />
</mxCell>
<mxCell id="z1lQjwvy5pSk2mGMMR6U-6" value="索引构建,首先" style="text;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=宋体;" parent="1" vertex="1">
<mxGeometry x="-420" y="185" width="305" height="35" as="geometry" />
</mxCell>
<mxCell id="z1lQjwvy5pSk2mGMMR6U-7" value="检索环节,分为召回与重排两个部分,其实这个检索模型跟推荐挺像的。召回环节通过两种方法召回,一种是<font face="Times New Roman">BM2.5</font>匹配方法,一种是" style="text;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=宋体;" parent="1" vertex="1">
<mxGeometry x="-420" y="95" width="315" height="54" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>