MLOps/rapports/images/pipeline2.svg
Alexis Bruneteau f107164b51 maybe maybe not
2025-10-01 15:04:13 +02:00

3 lines
40 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.7.2/css/all.min.css" type="text/css"?>
<svg id="graph-1297" width="100%" xmlns="http://www.w3.org/2000/svg" class="flowchart" style="overflow: hidden; max-width: 100%; touch-action: none; user-select: none;" role="graphics-document document" aria-roledescription="flowchart-v2" height="100%" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ev="http://www.w3.org/2001/xml-events"><g id="viewport-20250917151023202" class="svg-pan-zoom_viewport" transform="matrix(0.6343756914138794,0,0,0.6343756914138794,424.56597900390625,49.08765411376953)" style="transform: matrix(0.634376, 0, 0, 0.634376, 424.566, 49.0877);"><style>#graph-1297{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#ccc;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#graph-1297 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#graph-1297 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#graph-1297 .error-icon{fill:#a44141;}#graph-1297 .error-text{fill:#ddd;stroke:#ddd;}#graph-1297 .edge-thickness-normal{stroke-width:1px;}#graph-1297 .edge-thickness-thick{stroke-width:3.5px;}#graph-1297 .edge-pattern-solid{stroke-dasharray:0;}#graph-1297 .edge-thickness-invisible{stroke-width:0;fill:none;}#graph-1297 .edge-pattern-dashed{stroke-dasharray:3;}#graph-1297 .edge-pattern-dotted{stroke-dasharray:2;}#graph-1297 .marker{fill:lightgrey;stroke:lightgrey;}#graph-1297 .marker.cross{stroke:lightgrey;}#graph-1297 svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#graph-1297 p{margin:0;}#graph-1297 .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#ccc;}#graph-1297 .cluster-label text{fill:#F9FFFE;}#graph-1297 .cluster-label span{color:#F9FFFE;}#graph-1297 .cluster-label span p{background-color:transparent;}#graph-1297 .label text,#graph-1297 span{fill:#ccc;color:#ccc;}#graph-1297 .node rect,#graph-1297 .node circle,#graph-1297 .node ellipse,#graph-1297 .node polygon,#graph-1297 .node path{fill:#1f2020;stroke:#ccc;stroke-width:1px;}#graph-1297 .rough-node .label text,#graph-1297 .node .label text,#graph-1297 .image-shape .label,#graph-1297 .icon-shape .label{text-anchor:middle;}#graph-1297 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#graph-1297 .rough-node .label,#graph-1297 .node .label,#graph-1297 .image-shape .label,#graph-1297 .icon-shape .label{text-align:center;}#graph-1297 .node.clickable{cursor:pointer;}#graph-1297 .root .anchor path{fill:lightgrey!important;stroke-width:0;stroke:lightgrey;}#graph-1297 .arrowheadPath{fill:lightgrey;}#graph-1297 .edgePath .path{stroke:lightgrey;stroke-width:2.0px;}#graph-1297 .flowchart-link{stroke:lightgrey;fill:none;}#graph-1297 .edgeLabel{background-color:hsl(0, 0%, 34.4117647059%);text-align:center;}#graph-1297 .edgeLabel p{background-color:hsl(0, 0%, 34.4117647059%);}#graph-1297 .edgeLabel rect{opacity:0.5;background-color:hsl(0, 0%, 34.4117647059%);fill:hsl(0, 0%, 34.4117647059%);}#graph-1297 .labelBkg{background-color:rgba(87.75, 87.75, 87.75, 0.5);}#graph-1297 .cluster rect{fill:hsl(180, 1.5873015873%, 28.3529411765%);stroke:rgba(255, 255, 255, 0.25);stroke-width:1px;}#graph-1297 .cluster text{fill:#F9FFFE;}#graph-1297 .cluster span{color:#F9FFFE;}#graph-1297 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(20, 1.5873015873%, 12.3529411765%);border:1px solid rgba(255, 255, 255, 0.25);border-radius:2px;pointer-events:none;z-index:100;}#graph-1297 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#ccc;}#graph-1297 rect.text{fill:none;stroke-width:0;}#graph-1297 .icon-shape,#graph-1297 .image-shape{background-color:hsl(0, 0%, 34.4117647059%);text-align:center;}#graph-1297 .icon-shape p,#graph-1297 .image-shape p{background-color:hsl(0, 0%, 34.4117647059%);padding:2px;}#graph-1297 .icon-shape rect,#graph-1297 .image-shape rect{opacity:0.5;background-color:hsl(0, 0%, 34.4117647059%);fill:hsl(0, 0%, 34.4117647059%);}#graph-1297 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#graph-1297 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#graph-1297 :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}#graph-1297 .dataLayer rect{fill:#3b82f6!important;stroke:#1d4ed8!important;stroke-width:2px!important;color:#fff!important;}#graph-1297 .dataLayer polygon{fill:#3b82f6!important;stroke:#1d4ed8!important;stroke-width:2px!important;color:#fff!important;}#graph-1297 .dataLayer ellipse{fill:#3b82f6!important;stroke:#1d4ed8!important;stroke-width:2px!important;color:#fff!important;}#graph-1297 .dataLayer circle{fill:#3b82f6!important;stroke:#1d4ed8!important;stroke-width:2px!important;color:#fff!important;}#graph-1297 .dataLayer path{fill:#3b82f6!important;stroke:#1d4ed8!important;stroke-width:2px!important;color:#fff!important;}#graph-1297 .dataLayer tspan{fill:#fff!important;}#graph-1297 .mlLayer rect{fill:#10b981!important;stroke:#047857!important;stroke-width:2px!important;color:#fff!important;}#graph-1297 .mlLayer polygon{fill:#10b981!important;stroke:#047857!important;stroke-width:2px!important;color:#fff!important;}#graph-1297 .mlLayer ellipse{fill:#10b981!important;stroke:#047857!important;stroke-width:2px!important;color:#fff!important;}#graph-1297 .mlLayer circle{fill:#10b981!important;stroke:#047857!important;stroke-width:2px!important;color:#fff!important;}#graph-1297 .mlLayer path{fill:#10b981!important;stroke:#047857!important;stroke-width:2px!important;color:#fff!important;}#graph-1297 .mlLayer tspan{fill:#fff!important;}#graph-1297 .opsLayer rect{fill:#f59e0b!important;stroke:#d97706!important;stroke-width:2px!important;color:#fff!important;}#graph-1297 .opsLayer polygon{fill:#f59e0b!important;stroke:#d97706!important;stroke-width:2px!important;color:#fff!important;}#graph-1297 .opsLayer ellipse{fill:#f59e0b!important;stroke:#d97706!important;stroke-width:2px!important;color:#fff!important;}#graph-1297 .opsLayer circle{fill:#f59e0b!important;stroke:#d97706!important;stroke-width:2px!important;color:#fff!important;}#graph-1297 .opsLayer path{fill:#f59e0b!important;stroke:#d97706!important;stroke-width:2px!important;color:#fff!important;}#graph-1297 .opsLayer tspan{fill:#fff!important;}#graph-1297 .monitorLayer rect{fill:#ec4899!important;stroke:#be185d!important;stroke-width:2px!important;color:#fff!important;}#graph-1297 .monitorLayer polygon{fill:#ec4899!important;stroke:#be185d!important;stroke-width:2px!important;color:#fff!important;}#graph-1297 .monitorLayer ellipse{fill:#ec4899!important;stroke:#be185d!important;stroke-width:2px!important;color:#fff!important;}#graph-1297 .monitorLayer circle{fill:#ec4899!important;stroke:#be185d!important;stroke-width:2px!important;color:#fff!important;}#graph-1297 .monitorLayer path{fill:#ec4899!important;stroke:#be185d!important;stroke-width:2px!important;color:#fff!important;}#graph-1297 .monitorLayer tspan{fill:#fff!important;}</style><g><marker id="graph-1297_flowchart-v2-pointEnd" class="marker flowchart-v2" viewBox="0 0 10 10" refX="5" refY="5" markerUnits="userSpaceOnUse" markerWidth="8" markerHeight="8" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowMarkerPath" style="stroke-width: 1px; stroke-dasharray: 1px, 0px;"></path></marker><marker id="graph-1297_flowchart-v2-pointStart" class="marker flowchart-v2" viewBox="0 0 10 10" refX="4.5" refY="5" markerUnits="userSpaceOnUse" markerWidth="8" markerHeight="8" orient="auto"><path d="M 0 5 L 10 10 L 10 0 z" class="arrowMarkerPath" style="stroke-width: 1px; stroke-dasharray: 1px, 0px;"></path></marker><marker id="graph-1297_flowchart-v2-circleEnd" class="marker flowchart-v2" viewBox="0 0 10 10" refX="11" refY="5" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width: 1px; stroke-dasharray: 1px, 0px;"></circle></marker><marker id="graph-1297_flowchart-v2-circleStart" class="marker flowchart-v2" viewBox="0 0 10 10" refX="-1" refY="5" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width: 1px; stroke-dasharray: 1px, 0px;"></circle></marker><marker id="graph-1297_flowchart-v2-crossEnd" class="marker cross flowchart-v2" viewBox="0 0 11 11" refX="12" refY="5.2" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><path d="M 1,1 l 9,9 M 10,1 l -9,9" class="arrowMarkerPath" style="stroke-width: 2px; stroke-dasharray: 1px, 0px;"></path></marker><marker id="graph-1297_flowchart-v2-crossStart" class="marker cross flowchart-v2" viewBox="0 0 11 11" refX="-1" refY="5.2" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><path d="M 1,1 l 9,9 M 10,1 l -9,9" class="arrowMarkerPath" style="stroke-width: 2px; stroke-dasharray: 1px, 0px;"></path></marker><g class="root"><g class="clusters"></g><g class="edgePaths"><path d="M375.8,94.2L375.8,100.367C375.8,106.533,375.8,118.867,375.8,130.533C375.8,142.2,375.8,153.2,375.8,158.7L375.8,164.2" id="L_DS_DL_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style="" marker-end="url(#graph-1297_flowchart-v2-pointEnd)"></path><path d="M334.061,254.4L328.089,260.567C322.117,266.733,310.173,279.067,304.201,290.733C298.229,302.4,298.229,313.4,298.229,318.9L298.229,324.4" id="L_DL_FS_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style="" marker-end="url(#graph-1297_flowchart-v2-pointEnd)"></path><path d="M417.539,254.4L423.511,260.567C429.483,266.733,441.427,279.067,447.399,298.583C453.371,318.1,453.371,344.8,453.371,371.5C453.371,398.2,453.371,424.9,453.371,451.6C453.371,478.3,453.371,505,453.371,531.7C453.371,558.4,453.371,585.1,447.863,604.138C442.355,623.176,431.338,634.551,425.83,640.239L420.322,645.927" id="L_DL_DP_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style="" marker-end="url(#graph-1297_flowchart-v2-pointEnd)"></path><path d="M298.229,414.6L298.229,420.767C298.229,426.933,298.229,439.267,298.229,450.933C298.229,462.6,298.229,473.6,298.229,479.1L298.229,484.6" id="L_FS_QG_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style="" marker-end="url(#graph-1297_flowchart-v2-pointEnd)"></path><path d="M499.833,719.121L539.992,727.934C580.15,736.747,660.467,754.374,700.625,776.537C740.783,798.7,740.783,825.4,740.783,852.1C740.783,878.8,740.783,905.5,740.783,932.2C740.783,958.9,740.783,985.6,740.783,1012.3C740.783,1039,740.783,1065.7,740.783,1092.4C740.783,1119.1,740.783,1145.8,740.783,1172.5C740.783,1199.2,740.783,1225.9,740.783,1252.6C740.783,1279.3,740.783,1306,740.783,1332.7C740.783,1359.4,740.783,1386.1,740.783,1412.8C740.783,1439.5,740.783,1466.2,740.783,1492.9C740.783,1519.6,740.783,1546.3,726.872,1565.756C712.96,1585.212,685.136,1597.425,671.224,1603.531L657.313,1609.637" id="L_DP_MT_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style="" marker-end="url(#graph-1297_flowchart-v2-pointEnd)"></path><path d="M375.8,735L375.8,741.167C375.8,747.333,375.8,759.667,375.8,771.333C375.8,783,375.8,794,375.8,799.5L375.8,805" id="L_DP_ET_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style="" marker-end="url(#graph-1297_flowchart-v2-pointEnd)"></path><path d="M375.8,895.2L375.8,901.367C375.8,907.533,375.8,919.867,375.8,931.533C375.8,943.2,375.8,954.2,375.8,959.7L375.8,965.2" id="L_ET_MR_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style="" marker-end="url(#graph-1297_flowchart-v2-pointEnd)"></path><path d="M298.229,574.8L298.229,580.967C298.229,587.133,298.229,599.467,303.737,611.321C309.246,623.176,320.262,634.551,325.77,640.239L331.278,645.927" id="L_QG_DP_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style="" marker-end="url(#graph-1297_flowchart-v2-pointEnd)"></path><path d="M307.54,1055.4L297.774,1061.567C288.007,1067.733,268.475,1080.067,258.708,1091.733C248.942,1103.4,248.942,1114.4,248.942,1119.9L248.942,1125.4" id="L_MR_CD_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style="" marker-end="url(#graph-1297_flowchart-v2-pointEnd)"></path><path d="M471.217,1042.31L497.76,1050.659C524.303,1059.007,577.389,1075.703,603.932,1097.402C630.475,1119.1,630.475,1145.8,630.475,1172.5C630.475,1199.2,630.475,1225.9,604.143,1247.532C577.811,1269.164,525.147,1285.728,498.815,1294.01L472.482,1302.292" id="L_MR_MS_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style="" marker-end="url(#graph-1297_flowchart-v2-pointEnd)"></path><path d="M248.942,1215.6L248.942,1221.767C248.942,1227.933,248.942,1240.267,258.144,1252.244C267.347,1264.221,285.753,1275.843,294.955,1281.654L304.158,1287.464" id="L_CD_MS_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style="" marker-end="url(#graph-1297_flowchart-v2-pointEnd)"></path><path d="M286.215,1375.8L273.397,1381.967C260.579,1388.133,234.944,1400.467,215.559,1412.362C196.174,1424.257,183.041,1435.714,176.474,1441.442L169.907,1447.171" id="L_MS_MON_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style="" marker-end="url(#graph-1297_flowchart-v2-pointEnd)"></path><path d="M375.8,1375.8L375.8,1381.967C375.8,1388.133,375.8,1400.467,375.8,1412.133C375.8,1423.8,375.8,1434.8,375.8,1440.3L375.8,1445.8" id="L_MS_AL_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style="" marker-end="url(#graph-1297_flowchart-v2-pointEnd)"></path><path d="M468.667,1363.771L493.09,1371.942C517.514,1380.114,566.361,1396.457,590.785,1410.128C615.208,1423.8,615.208,1434.8,615.208,1440.3L615.208,1445.8" id="L_MS_EU_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style="" marker-end="url(#graph-1297_flowchart-v2-pointEnd)"></path><path d="M103.318,1449.8L101.292,1443.633C99.265,1437.467,95.212,1425.133,93.185,1405.617C91.158,1386.1,91.158,1359.4,91.158,1332.7C91.158,1306,91.158,1279.3,91.158,1252.6C91.158,1225.9,91.158,1199.2,91.158,1172.5C91.158,1145.8,91.158,1119.1,91.158,1092.4C91.158,1065.7,91.158,1039,91.158,1012.3C91.158,985.6,91.158,958.9,91.158,932.2C91.158,905.5,91.158,878.8,91.158,852.1C91.158,825.4,91.158,798.7,117.285,777.998C143.411,757.296,195.664,742.592,221.79,735.239L247.916,727.887" id="L_MON_DP_0" class="edge-thickness-normal edge-pattern-dotted edge-thickness-normal edge-pattern-solid flowchart-link" style="" marker-end="url(#graph-1297_flowchart-v2-pointEnd)"></path><path d="M375.8,1536L375.8,1542.167C375.8,1548.333,375.8,1560.667,389.712,1572.94C403.624,1585.212,431.447,1597.425,445.359,1603.531L459.271,1609.637" id="L_AL_MT_0" class="edge-thickness-normal edge-pattern-dotted edge-thickness-normal edge-pattern-solid flowchart-link" style="" marker-end="url(#graph-1297_flowchart-v2-pointEnd)"></path></g><g class="edgeLabels"><g class="edgeLabel" transform="translate(375.80001068115234, 131.1999969482422)"><g class="label" transform="translate(-25.51667022705078, -12)"><foreignObject width="51.03334045410156" height="24"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml" class="labelBkg"><span class="edgeLabel"><p>INGEST</p></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(298.22917556762695, 291.3999938964844)"><g class="label" transform="translate(-23.800003051757812, -12)"><foreignObject width="47.600006103515625" height="24"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml" class="labelBkg"><span class="edgeLabel"><p>CACHE</p></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(453.37084579467773, 451.59999084472656)"><g class="label" transform="translate(-31.275001525878906, -12)"><foreignObject width="62.55000305175781" height="24"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml" class="labelBkg"><span class="edgeLabel"><p>PROCESS</p></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(298.22917556762695, 451.59999084472656)"><g class="label" transform="translate(-32.650001525878906, -12)"><foreignObject width="65.30000305175781" height="24"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml" class="labelBkg"><span class="edgeLabel"><p>VALIDATE</p></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(740.7833404541016, 1172.4999771118164)"><g class="label" transform="translate(-21.349998474121094, -12)"><foreignObject width="42.69999694824219" height="24"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml" class="labelBkg"><span class="edgeLabel"><p>TRAIN</p></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(375.80001068115234, 771.9999847412109)"><g class="label" transform="translate(-23.40833282470703, -12)"><foreignObject width="46.81666564941406" height="24"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml" class="labelBkg"><span class="edgeLabel"><p>TRACK</p></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(375.80001068115234, 932.1999816894531)"><g class="label" transform="translate(-34.008331298828125, -12)"><foreignObject width="68.01666259765625" height="24"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml" class="labelBkg"><span class="edgeLabel"><p>REGISTER</p></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(298.22917556762695, 611.7999877929688)"><g class="label" transform="translate(-56.900001525878906, -12)"><foreignObject width="113.80000305175781" height="24"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml" class="labelBkg"><span class="edgeLabel"><p>QUALITY CHECK</p></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(248.94166946411133, 1092.3999786376953)"><g class="label" transform="translate(-20.900001525878906, -12)"><foreignObject width="41.80000305175781" height="24"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml" class="labelBkg"><span class="edgeLabel"><p>BUILD</p></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(630.4750061035156, 1172.4999771118164)"><g class="label" transform="translate(-27.65833282470703, -12)"><foreignObject width="55.31666564941406" height="24"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml" class="labelBkg"><span class="edgeLabel"><p>DEPLOY</p></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(248.94166946411133, 1252.5999755859375)"><g class="label" transform="translate(-30.125, -12)"><foreignObject width="60.25" height="24"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml" class="labelBkg"><span class="edgeLabel"><p>RELEASE</p></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(222.40082, 1406.50111)"><g class="label" transform="translate(-32.650001525878906, -12)"><foreignObject width="65.30000305175781" height="24"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml" class="labelBkg"><span class="edgeLabel"><p>MONITOR</p></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(375.80001068115234, 1412.7999725341797)"><g class="label" transform="translate(-22.01667022705078, -12)"><foreignObject width="44.03334045410156" height="24"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml" class="labelBkg"><span class="edgeLabel"><p>ALERT</p></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(615.2083435058594, 1412.7999725341797)"><g class="label" transform="translate(-21.40833282470703, -12)"><foreignObject width="42.81666564941406" height="24"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml" class="labelBkg"><span class="edgeLabel"><p>SERVE</p></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(91.1583366394043, 1092.3999786376953)"><g class="label" transform="translate(-36.30833435058594, -12)"><foreignObject width="72.61666870117188" height="24"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml" class="labelBkg"><span class="edgeLabel"><p>FEEDBACK</p></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(375.80001068115234, 1572.9999694824219)"><g class="label" transform="translate(-30.291664123535156, -12)"><foreignObject width="60.58332824707031" height="24"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml" class="labelBkg"><span class="edgeLabel"><p>RETRAIN</p></span></div></foreignObject></g></g></g><g class="nodes"><g class="node default dataLayer" id="flowchart-DS-0" transform="translate(375.80001068115234, 51.099998474121094)"><rect class="basic label-container" style="fill:#3b82f6 !important;stroke:#1d4ed8 !important;stroke-width:2px !important" x="-106.04166412353516" y="-43.099998474121094" width="212.0833282470703" height="86.19999694824219"></rect><g class="label" style="color:#fff !important" transform="translate(0, -28.099998474121094)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1" style="fill:#fff !important"><tspan class="text-outer-tspan" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">🗃️</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> Data</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> Sources</tspan></tspan><tspan class="text-outer-tspan" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">HLTV.org</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"></tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> Steam</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> API</tspan></tspan><tspan class="text-outer-tspan" x="0" y="2.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Tournament</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> Feeds</tspan></tspan></text></g></g></g><g class="node default dataLayer" id="flowchart-DL-1" transform="translate(375.80001068115234, 211.29999542236328)"><rect class="basic label-container" style="fill:#3b82f6 !important;stroke:#1d4ed8 !important;stroke-width:2px !important" x="-95.84166717529297" y="-43.099998474121094" width="191.68333435058594" height="86.19999694824219"></rect><g class="label" style="color:#fff !important" transform="translate(0, -28.099998474121094)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1" style="fill:#fff !important"><tspan class="text-outer-tspan" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">☁️</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> Data</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> Lake</tspan></tspan><tspan class="text-outer-tspan" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Amazon</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> S3</tspan></tspan><tspan class="text-outer-tspan" x="0" y="2.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Raw</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> match</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> results</tspan></tspan></text></g></g></g><g class="node default dataLayer" id="flowchart-FS-2" transform="translate(298.22917556762695, 371.49999237060547)"><rect class="basic label-container" style="fill:#3b82f6 !important;stroke:#1d4ed8 !important;stroke-width:2px !important" x="-96.86666870117188" y="-43.099998474121094" width="193.73333740234375" height="86.19999694824219"></rect><g class="label" style="color:#fff !important" transform="translate(0, -28.099998474121094)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1" style="fill:#fff !important"><tspan class="text-outer-tspan" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"></tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> Feature</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> Store</tspan></tspan><tspan class="text-outer-tspan" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Redis</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> Cache</tspan></tspan><tspan class="text-outer-tspan" x="0" y="2.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Real-time</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> features</tspan></tspan></text></g></g></g><g class="node default mlLayer" id="flowchart-DP-3" transform="translate(375.80001068115234, 691.8999862670898)"><rect class="basic label-container" style="fill:#10b981 !important;stroke:#047857 !important;stroke-width:2px !important" x="-124.03334045410156" y="-43.099998474121094" width="248.06668090820312" height="86.19999694824219"></rect><g class="label" style="color:#fff !important" transform="translate(0, -28.099998474121094)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1" style="fill:#fff !important"><tspan class="text-outer-tspan" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">⚙️</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> Data</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> Pipeline</tspan></tspan><tspan class="text-outer-tspan" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Airflow</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> +</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> Spark</tspan></tspan><tspan class="text-outer-tspan" x="0" y="2.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">ETL</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"></tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> Feature</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> Engineering</tspan></tspan></text></g></g></g><g class="node default mlLayer" id="flowchart-QG-4" transform="translate(298.22917556762695, 531.6999893188477)"><rect class="basic label-container" style="fill:#10b981 !important;stroke:#047857 !important;stroke-width:2px !important" x="-120.14167022705078" y="-43.099998474121094" width="240.28334045410156" height="86.19999694824219"></rect><g class="label" style="color:#fff !important" transform="translate(0, -28.099998474121094)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1" style="fill:#fff !important"><tspan class="text-outer-tspan" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">🔍</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> Quality</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> Gates</tspan></tspan><tspan class="text-outer-tspan" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Great</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> Expectations</tspan></tspan><tspan class="text-outer-tspan" x="0" y="2.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Schema</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"></tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> Drift</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> Detection</tspan></tspan></text></g></g></g><g class="node default mlLayer" id="flowchart-MT-5" transform="translate(558.291675567627, 1653.099967956543)"><rect class="basic label-container" style="fill:#10b981 !important;stroke:#047857 !important;stroke-width:2px !important" x="-95.35833740234375" y="-43.099998474121094" width="190.7166748046875" height="86.19999694824219"></rect><g class="label" style="color:#fff !important" transform="translate(0, -28.099998474121094)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1" style="fill:#fff !important"><tspan class="text-outer-tspan" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">🤖</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> Model</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> Training</tspan></tspan><tspan class="text-outer-tspan" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Multi-Target</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> ML</tspan></tspan><tspan class="text-outer-tspan" x="0" y="2.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Match</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> Prediction</tspan></tspan></text></g></g></g><g class="node default mlLayer" id="flowchart-ET-6" transform="translate(375.80001068115234, 852.099983215332)"><rect class="basic label-container" style="fill:#10b981 !important;stroke:#047857 !important;stroke-width:2px !important" x="-116.60833740234375" y="-43.099998474121094" width="233.2166748046875" height="86.19999694824219"></rect><g class="label" style="color:#fff !important" transform="translate(0, -28.099998474121094)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1" style="fill:#fff !important"><tspan class="text-outer-tspan" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">📊</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> Experiment</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> Tracking</tspan></tspan><tspan class="text-outer-tspan" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">MLflow</tspan></tspan><tspan class="text-outer-tspan" x="0" y="2.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Hyperparameter</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> Tuning</tspan></tspan></text></g></g></g><g class="node default mlLayer" id="flowchart-MR-7" transform="translate(375.80001068115234, 1012.2999801635742)"><rect class="basic label-container" style="fill:#10b981 !important;stroke:#047857 !important;stroke-width:2px !important" x="-95.41666412353516" y="-43.099998474121094" width="190.8333282470703" height="86.19999694824219"></rect><g class="label" style="color:#fff !important" transform="translate(0, -28.099998474121094)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1" style="fill:#fff !important"><tspan class="text-outer-tspan" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">📦</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> Model</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> Registry</tspan></tspan><tspan class="text-outer-tspan" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Model</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> Store</tspan></tspan><tspan class="text-outer-tspan" x="0" y="2.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">A/B</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> Testing</tspan></tspan></text></g></g></g><g class="node default opsLayer" id="flowchart-CD-8" transform="translate(248.94166946411133, 1172.4999771118164)"><rect class="basic label-container" style="fill:#f59e0b !important;stroke:#d97706 !important;stroke-width:2px !important" x="-96.91666412353516" y="-43.099998474121094" width="193.8333282470703" height="86.19999694824219"></rect><g class="label" style="color:#fff !important" transform="translate(0, -28.099998474121094)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1" style="fill:#fff !important"><tspan class="text-outer-tspan" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">🔄</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> CI/CD</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> Pipeline</tspan></tspan><tspan class="text-outer-tspan" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Gitea</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> Actions</tspan></tspan><tspan class="text-outer-tspan" x="0" y="2.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Automated</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> Testing</tspan></tspan></text></g></g></g><g class="node default opsLayer" id="flowchart-MS-9" transform="translate(375.80001068115234, 1332.6999740600586)"><rect class="basic label-container" style="fill:#f59e0b !important;stroke:#d97706 !important;stroke-width:2px !important" x="-92.86666870117188" y="-43.099998474121094" width="185.73333740234375" height="86.19999694824219"></rect><g class="label" style="color:#fff !important" transform="translate(0, -28.099998474121094)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1" style="fill:#fff !important"><tspan class="text-outer-tspan" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">🚀</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> Model</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> Serving</tspan></tspan><tspan class="text-outer-tspan" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">FastAPI</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> +</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> ECS</tspan></tspan><tspan class="text-outer-tspan" x="0" y="2.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Real-time</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> API</tspan></tspan></text></g></g></g><g class="node default monitorLayer" id="flowchart-MON-10" transform="translate(117.48333740234375, 1492.8999710083008)"><rect class="basic label-container" style="fill:#ec4899 !important;stroke:#be185d !important;stroke-width:2px !important" x="-109.48333740234375" y="-43.099998474121094" width="218.9666748046875" height="86.19999694824219"></rect><g class="label" style="color:#fff !important" transform="translate(0, -28.099998474121094)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1" style="fill:#fff !important"><tspan class="text-outer-tspan" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">📈</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> Monitoring</tspan></tspan><tspan class="text-outer-tspan" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Prometheus</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> +</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> Grafana</tspan></tspan><tspan class="text-outer-tspan" x="0" y="2.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Model</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> Performance</tspan></tspan></text></g></g></g><g class="node default monitorLayer" id="flowchart-AL-11" transform="translate(375.80001068115234, 1492.8999710083008)"><rect class="basic label-container" style="fill:#ec4899 !important;stroke:#be185d !important;stroke-width:2px !important" x="-98.83333587646484" y="-43.099998474121094" width="197.6666717529297" height="86.19999694824219"></rect><g class="label" style="color:#fff !important" transform="translate(0, -28.099998474121094)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1" style="fill:#fff !important"><tspan class="text-outer-tspan" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">🚨</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> Alerting</tspan></tspan><tspan class="text-outer-tspan" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">PagerDuty</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> +</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> Slack</tspan></tspan><tspan class="text-outer-tspan" x="0" y="2.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Performance</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> Alerts</tspan></tspan></text></g></g></g><g class="node default monitorLayer" id="flowchart-EU-12" transform="translate(615.2083435058594, 1492.8999710083008)"><rect class="basic label-container" style="fill:#ec4899 !important;stroke:#be185d !important;stroke-width:2px !important" x="-90.57499694824219" y="-43.099998474121094" width="181.14999389648438" height="86.19999694824219"></rect><g class="label" style="color:#fff !important" transform="translate(0, -28.099998474121094)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1" style="fill:#fff !important"><tspan class="text-outer-tspan" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">👥</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> End</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> Users</tspan></tspan><tspan class="text-outer-tspan" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Fantasy</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> Sports</tspan></tspan><tspan class="text-outer-tspan" x="0" y="2.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Betting</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> Analytics</tspan></tspan></text></g></g></g></g></g></g></g></svg>