From e213d9eb00bb35e593a392bb44e881686da3453f Mon Sep 17 00:00:00 2001 From: David P <david.purge@gmail.com> Date: Fri, 15 Dec 2023 11:00:27 +0100 Subject: [PATCH] Opes source LLM pattern --- .../blueprints/llm-open-source.excalidraw.svg | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 content/docs/devops/blueprints/llm-open-source.excalidraw.svg diff --git a/content/docs/devops/blueprints/llm-open-source.excalidraw.svg b/content/docs/devops/blueprints/llm-open-source.excalidraw.svg new file mode 100644 index 00000000..068b43e5 --- /dev/null +++ b/content/docs/devops/blueprints/llm-open-source.excalidraw.svg @@ -0,0 +1,21 @@ +<svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 920.4013388422684 699.1493700834546" width="920.4013388422684" height="699.1493700834546"> + <!-- svg-source:excalidraw --> + <!-- payload-type:application/vnd.excalidraw+json --><!-- payload-version:2 --><!-- payload-start -->eyJ2ZXJzaW9uIjoiMSIsImVuY29kaW5nIjoiYnN0cmluZyIsImNvbXByZXNzZWQiOnRydWUsImVuY29kZWQiOiJ4nO1daVPjSFx1MDAxMv3ev4Jgv+zGttV1XHUwMDFmXHUwMDEzsTFcdTAwMDFcdTAwMDZcdTAwMDNccjRXtzl2N1xiYVx0I7AlXHUwMDFmMtfG/PfNMrR1WDJcdTAwMTZYoJ5dTURcdTAwMGZIspWqypcvMyuz+M+npaXl8KHnLv+2tOzet+yO51xm7Lvlz+b8rTtcdTAwMTh6gVx1MDAwZpfI+PdhMFx1MDAxYbTGd16FYW/425cvXXtw44a9jt1yrVtvOLI7w3DkeIHVXG66X7zQ7Vx1MDAwZX83/36zu+4/ekHXXHRcdTAwMDdW9JCa63hhMHh6lttxu65cdTAwMWZcdTAwMGXh2/9cdL8vLf1n/G9MuoHbXG5tv91xx1x1MDAxZlx1MDAxOF+KXHUwMDA05ESlz35cdTAwMGL8sbBYSCo0Ujq6w1x1MDAxYq7B80LXgcuXILNcdTAwMWJdMaeWXHUwMDBm10/P5OP12lx1MDAwZrqHXHUwMDA2vZXtvXpw4kWPvfQ6naPwoTNcdTAwMTZrXHUwMDE4wNtE14bhILhxjz0nvPo5brHzeZ9cdTAwMWFcdTAwMDSj9pXvXHUwMDBlzevjydmgZ7e88MGcQ2hy9mlcZn5bis7cw2+UYkshJFx1MDAxNSZ8csF8lGpuMaEkT4lSXHUwMDBmOjD2IMpfsGv+i4S5sFs3bZDIdyb3hFx1MDAwM9tcdTAwMWb27Fx1MDAwMcxQdN/d80tiriyJJKKYMG1cdTAwMGU5ueXK9dpXIdyjiCVcdTAwMDTCXFw836IjadzxNFximCaFaPRSRoLeljNWiH9HQz9cdTAwMDBV2jJcdTAwMWbwR51OfPx853n8fipOpDr0+cxcdTAwMWbRK5r719MqXHUwMDE3V7uE6oXuffTeMT1cdTAwMTFcdTAwMTKdbfXkZStg93S76Yvh9fm35cl9f3zO/tqnXHUwMDBmn7TF0W6j3dJX6zZ7OD2nIbpzk0/5+Xx7MFxi7mLf+/xTNCyjnmM/qTOWiFxiSjCilLPJ9Y7n36THrFx1MDAxM7RuXCJcdTAwMDR8ilx0PFx1MDAwNb3E+8dQx1A+6lxiXGKAXHUwMDE0YWRu1GWPZrVRJ6TFMKOMSUCYlkIksMcwtqRWiiRQuWj8KZBBao1cdTAwMTiWTCEm9DT8OErjXHIrXHUwMDE4boZ5TElejbjEhSlo5Wsp1pphQlxuaGkkVeCHR96jmVx1MDAxMYJcdTAwMTJnXHUwMDFidtfrPCRmdKy+MIo/hu7gX/5fL1x1MDAwMEzw09+WXHUwMDEzN6x0vLbR6eVcdTAwMTZcYu5cdTAwMGVcdTAwMTLqXHUwMDFlesBZk1x1MDAxYrqe48RZqFx1MDAwNU+1Pd9cdTAwMWRszUNcdTAwMWXBwGt7vt35/pJQMFx1MDAxYe7mz1x0xFZMgS7soWuuXHUwMDFhXHKjM4E7kzNcdTAwMTVG6bNcdTAwMTP0Yk6lxkpHd7yE3m+PoV3/Xlx1MDAwYuRqf1tennVWnL2Dw2qjV1JqMUQoozLJmYRhXHUwMDBiaVomZzJtKYmTXHUwMDBmidgy9uBnuDLwYMCcyF+LIHurXHUwMDFkXHUwMDE1/thBzVx1MDAxZlx1MDAxN82j0GmcYd1dK0JkWCusYy9dXHUwMDEykUmqc6FcdTAwMDDqwcHA4/ndx+y3rjZcdTAwMTRAXHUwMDFmXHUwMDExlppoJCVmiiXxXHUwMDAwXHUwMDFlXHUwMDFlL1x1MDAxN1x1MDAwZlhZgmpNKNJ87ErOQ2JMUKpp3I59XHUwMDAwh1x1MDAxNVXQt3FYY1x1MDAwMNdd31n6sVx1MDAwNaxx6NqtsCxcInvBoqeJbLZkpbOZiHkyU1x1MDAxMaCQWjIs5vdFXa9fa9333K2TzlbXXHUwMDBmv462j9tb1YYwJcpinKbjP86IpTHBJfNcdTAwMTlcdTAwMDc+XHUwMDEzXHUwMDEyg1x1MDAxN4zGXHUwMDA3nY/VXHUwMDA04ZJKuVx1MDAwMCf0XHUwMDFkWc09b9vqRG/2trzR5u1Zryb2u9eFwjNwOjQqndVcdTAwMDSheZDgXFxcdGPq5/fvsl+62oigXHUwMDFhojMhpeKCXHUwMDE5aCSBIVx1MDAxMFxcLVx1MDAxZFx1MDAxOFRamkJcZohorrs3TWxCgdtcdTAwMDFcdTAwMWb7QGIrrqNcdTAwMGJcdM5AuFx1MDAxNkyBv7TS65VFbC9cdTAwMTj3nFxiLUey8olNk/TZyDfVlHOhXHUwMDBiJFk2b0Rnd+/4K1rfvt24k+wodIdcdTAwMTUnNlx0xIaeXHUwMDAwPJXbZFaFYjRccoZGY4p/LTbb1CfHNzc1uvp4cSXaXHUwMDE3nfXQ+T4sXHUwMDE0ozFGlFx1MDAxNHFElMJmQubjXHUwMDAwKyY1irmAL+Ig862rjVx1MDAwMyosXHUwMDAyrlx1MDAxNZdaXHUwMDAxtaViNFxinsrEXHUwMDAypVx1MDAxMFx1MDAwMVx1MDAwMo0xRIFcdTAwMWEy4zM5hVxiXHUwMDAx2Fx1MDAwMf9uXHUwMDExWf1Xx2dMXHUwMDExXGJs343G6oFvlNNcdTAwMGVBPZf+5Vx1MDAxZrmDW6/lXHUwMDAyfTTsYbiyv1VcdTAwMTanvWDX05yWXHUwMDEwc5aQc9GbUK+nNy1z4zaCtOaU6PlRffDQvD683W026qetjY7T/L62qlx1MDAxYlVHNbH4M6bSkZuwXHUwMDA0UVx1MDAxYYlcdTAwMTJcdTAwMTdcdTAwMGZcbpNcdTAwMWNMiqJcdTAwMWMtwjV9z5W61omNyaFzzs+UvFL9XHUwMDAz7Vxce8VcdTAwMTKRnEtUOslpkb+ixsC9QIxcdTAwMTMxN1x1MDAxY7LfutpwYMhcdTAwMTJcdTAwMDLCpUyS41x1MDAxY79cdTAwMDMkXsV1lDCBkOJcdTAwMWaaizQ6+mFcXFe3W1fuOPXneMOyeO5cdTAwMDVcdTAwMGI/k+fyXHUwMDA0LJ3jpMhdXmBcdTAwMDSbdDudP1x1MDAxMXPRvzlcdTAwMTf7urcyODjVt52zfnDmdKpccmpcdTAwMDCTXHUwMDA1kFbJNYSx16q0RcZcdTAwMDNQrcU2zImisYqhX4HjXHUwMDBlVvbuT49cdTAwMTXGXHL7kTXv+4/rt0ffXHUwMDBicVx1MDAxY1x1MDAxN4hTXHUwMDFlx0Upi22a56FcdTAwMDHCXHUwMDFiLJmgav6ERvZbV1x1MDAxYVx1MDAwZVx1MDAxOGFsUZPSIEQgyWIlXHUwMDEwP7NcdTAwMWHlY4JwXHUwMDBiYa2JNFlcdTAwMGJTmDVcdTAwMGbJYU1cYtyNlHg7Ml7NcmBFiHq/qpGdnd3pXGJp6e9AeDswvfUrIKeyyO5cdTAwMDVTnya7PEmz5Cyd81x1MDAxNFx1MDAxNemzUW2Y1JhcdTAwMTZaj1s531xi3I3V+iHfXHUwMDE0a6dKeeuHh27lUU5cZspcdTAwMDVLeKtjN5ZKy5TG4VLLMmeyXHUwMDFlxlOLXHUwMDBl8EpcdTAwMTgxrdBcdTAwMDLA/Y60d3ex2T+QdUd4jb0jWtvYXbs82p+3XGLTa1xm1vvN3Ue2SdauvTs68lx1MDAwZWud5FPeUIRcdP44Kr1cYlPnr/KxcfJNXHUwMDE1cC6zXHUwMDA3s+I4I8jSglx1MDAxMKYl5+BjpkJGRt5cdTAwMDFrJonDNTyCpas9I8ShKcTB/DBcIvBHLvNhSVx1MDAxMcNFlPRtbLrtXHUwMDA3d1x1MDAxZNdpu8CfTeCPYLC2XG5ktVx1MDAxZlxmw/bAPTrYgfN/X9rfeLpWXHUwMDE2sb5AJ2lijYTOXHUwMDE2OVPguVx1MDAxOFa/pX6T5EaVSjKFtUDzXHUwMDEzbL2+8f3k2/VcdTAwMDNuhW5wW7/ZXHUwMDFhrVx1MDAwN1x1MDAxNc+cjoHPkMpInUpCrSevtkr8XG58oKSIeT2/XHUwMDAyva6e0NVcdTAwMWSvw9eds/1+77x23OU7P4plToVCqPSoMl6rnPY3XHUwMDE1hDjg1lx1MDAxNKhmzn7risPBMFx1MDAxZFx1MDAwNI1KYSa0JDJcdTAwMDVcdFU+JFx1MDAxMLNMc1x1MDAwZqFcdTAwMTJcdMQzW1x1MDAxMTJo0ORcdTAwMWQkeEpyXHUwMDAx+ZbX506LaunbeHDLb7vDqUXC/YfwXG5OvUtw+YLFT3NgJHCGuK+OMN/Cf1x1MDAxOMv8ilx1MDAwMG26j6SgXHUwMDA1Klx1MDAwMnaOuu7F9iW39aavvtZP2f1Ds9qQl1x1MDAxNMZVSD7d9SdcdTAwMTGygG5omX1HL1x1MDAxMCCdzlx1MDAxZUlcdTAwMDJcdTAwMTFcdTAwMTFhv1x1MDAxOFx1MDAwM3493HTrrVF3b7128d2/27iTfed+3lx1MDAwMDNYbe5pyUZiXHUwMDE0tC5o3bUvT9yrhVx1MDAwNZiKy9iCU0nMiqnCuTiT4GVqolxuJGyzh7PaOGPUkphiLlx1MDAwNacqnv18wlx1MDAxYS9cdTAwMWZrXHUwMDA0mFVqTYFTXHQ1IWZcdTAwMDbiSEa+XHUwMDE2Q0Qs4mvGXHUwMDFmwaxcdTAwMTTC4ndj1rVcdTAwMDCUXHUwMDBixFx1MDAwMlx1MDAwZT10e8HQ9Jg/XHUwMDAwWe3ag1x1MDAxYie48z/Dhf21xuelze+7O+aX42DglFaWM5tU0iQ7kT1H8pjcKannYluM37KIOYNtXHSTVFI+f4vURet6tbF+rFx1MDAxZa62u6NcdTAwMWZ7/lxyub6h1TZcdTAwMDLjXHUwMDBle1x1MDAwNlx1MDAxNiCdzZWYWFKUbVx1MDAwMF7VYMGUXHUwMDA2qcgvltF17YNTdsJHmz9E89BcdTAwMTGN7reDQzQv4a6trN6cNlx1MDAwZY67XHUwMDBm/fWWY5NcdTAwMGJa81x1MDAxYlx1MDAwYiNcXEGpKlJg8SrClSx36Vx1MDAwNFwiK1xmwVKBZsTswaw40pSFOfAtxLJYUkWTcKNcYpze0n1bXHQ2VCtJXHUwMDE4XHUwMDA1+qSMTcNtum2Dm8VJRj8wjCVcYmui329xNKM34vfSVkNnc8ZcdTAwMWNtXHUwMDFivy+4b+PJgGSGplwiN1x1MDAxYsVcdTAwMTCERohcdTAwMTfo2Zi9U0glISwps+hcdTAwMTNdJcBLXHUwMDE0tVC5SSiKhUXSma54XtainKd2xPnpLStuKjJEKXRJXqbLmVx1MDAxYrooRl5V2jdcZu1BuOr5jue301x1MDAxZnF9J7pcdTAwMTJcdTAwMTP5eTemeTa0XHUwMDE424jWyMhfg6GFyZVIjt1cdTAwMGVcdTAwMDbWMHZX2+6ZUbCQfvKhpoajY1x1MDAwZsN60O16Ibz5fuD5YVrc8ausXHUwMDE40F259tTww8vEr6XR2TPfmPRKop+WXCL9XHUwMDFk/zL5+d+fM++uXHUwMDExapw+nNBwc1x1MDAxMGE9KdeL35Clp+aIa2j0JZ/i/8+zR2OrlWGOXGLObSGjXHUwMDEwIVKh8fx5sj5qNm6HXHUwMDE3J81AXHUwMDFmNM5OV7n/tXtSbWvENLVwRlx1MDAxZFx1MDAwNqPcKrtcdTAwMDGUUGFlZ8iQpVM9bc92SFItJeeolDTZXHUwMDFizVx1MDAxMCE0XHUwMDE2epRhhpJftlibkLi2UIOQnmZz1CYzvCBcdTAwMWPTmK6kvVxuJjlcdTAwMTFcdTAwMDVcIvCji+5Dqy+7j7v3XHUwMDA3ZyfXw4uj4K7iu21BNGtlxN9cXHEr5WosXHUwMDFjxFxmWzpZkFx1MDAxOXlcdTAwMTRcdTAwMTAqXHUwMDAwMlRW+o0ojZGkpTSEvlx1MDAxMchcZlx1MDAxM12kneV/XHUwMDA2yFNTbY5abJZcdTAwMGKCOT9IYPmbXHUwMDBlXHUwMDExzMGTwlx1MDAwNdLqs/NcdTAwMWXVxDPQcjpAkGarodQ2lounZGml8lx1MDAwN1x1MDAxMZots6BBM4JcdTAwMDNKTd22qGRwUDQtlVx1MDAwN+a8XHUwMDEwYHboXHUwMDFkXHUwMDBiXHUwMDAxkIW4plxcXGKFMVx1MDAwM1NccqOWXHUwMDExXHUwMDAy4KetQKdDgHezXHUwMDFmpVx1MDAwNlx1MDAwN9P6ZY6JZi3KfpD8wk9cdTAwMDVBrJa4wPYus9cpK2k+lIJgcipcdTAwMTkvpFVuL1x1MDAxMbZS5mliO5iVymw8WVx1MDAwZYIoQVxm5r6UdqI3Wo6iK8hFLcfsXHUwMDA1sKVE8lx1MDAwMFEhOIwg4VxcXHUwMDEzrqKc68R04D+pxZjWKnM869PC/FxynL+MXHUwMDBmVIwg6ixcdTAwMTA/zK6cr6TBgEifW1x1MDAxOE9nJU25qE5FXHUwMDE2izZcdTAwMWPIyslISnCCsmJcdTAwMDfFOCNSLWKD3oVbXHLT2Fx1MDAxMDmv75mMnF25nbQnplx1MDAwM1x1MDAwNzx2U1x1MDAwYkYk0tEuIDFXZNxjXHUwMDFlkfIvmo1MKdf43LNeXHUwMDE1tFx1MDAxZXmpXHUwMDA3PGuzYG3SvUU2SO3fnFx1MDAxZF/pncHV4bfHYFx1MDAxNFx1MDAxZe7fbvvVtlx1MDAxZEpqK2tcdTAwMGIqZjo/So5XQIutnCo7knZGJtFcbqeCw5VcbkYrXHUwMDA0Lyha+bOlXHUwMDFlpubZXHUwMDFjtZ9TvCAg529FgDVcdTAwMDO/S6FcdTAwMDJJh53gdneX9TuXZ/fBqjjZaj56w1HFgYzMn6LIWFx1MDAwYlDIKjFuQFNWYoJhwcHzTW1pMtmIwGxFwMqp33kjiqlpXHUwMDE2/T+Kp+6uTU21OaJJXlx1MDAxNCGjXFxC1kpiLVxubJsl+Vx1MDAxMaFuP7hsNu9OvcdDdb52XvG9XTFcdTAwMDK8ZlXjMfB7aLlbJ1hEZLvyQk5cdTAwMTdcdTAwMDI/71x1MDAwZYSpRDxe2FUhICslX1Ux9CdcdTAwMDdyep7NXHUwMDExzXBBXHUwMDE4zyytpbHKzTSWOdFcdTAwMDLRXHUwMDAyfSyN48fT2tmdoPW9/v1N0Dvwd74tdn3eXHTM1C1cdTAwMTLNQnJLc1BGrjVmXG4nW7ixRuO/cFx1MDAwM8EwzFx1MDAwN+I6JdjioM05sZRWpvDQ2PCMP2QlIFx1MDAwZTDZXHUwMDEyiZCiXHUwMDEwoUeAjrZIgViTfFiPyyykaylcbrV6z9To3HZcdTAwMTGeS0xEmn5cdTAwMTEs549cdTAwMTT1feeEXHUwMDFlN0Zo41x1MDAxY+/db6w/tG1+XnFl1pRaXHUwMDAy+IlcdTAwMTAkIVx1MDAwMIs5SeNcbrhxXHUwMDFmpkLM7D1uXHUwMDE2QkpTZphyXHUwMDAwlZbAiDi5/XlcdTAwMTQ+TteegOJcdTAwMTPOPnKDXHUwMDFmQlx1MDAwMeTv2IpZ71x1MDAwNCPny7ZcdTAwMWF+WTPfOqhcdTAwMDE79YJhbORcdTAwMTNlrFx1MDAxZPcyqffJXCLWMOjlVbAm3mBqp7pcdTAwMTelmK/F47nD49MzrS3bvd5RXGLjO7EnMKGe8zxIkUTLt557tzqtYX+5XHUwMDFjXHUwMDFmpkp+bFxiXGbk3LFx+uPTXHUwMDFm/1x1MDAwNSy0UJMifQ==<!-- payload-end --> + <defs> + <style class="style-fonts"> + @font-face { + font-family: "Virgil"; + src: url("https://file%2B.vscode-resource.vscode-cdn.net/Users/jprusaczyk/.vscode/extensions/pomdtr.excalidraw-editor-3.7.1/public//dist/excalidraw-assets/Virgil.woff2"); + } + @font-face { + font-family: "Cascadia"; + src: url("https://file%2B.vscode-resource.vscode-cdn.net/Users/jprusaczyk/.vscode/extensions/pomdtr.excalidraw-editor-3.7.1/public//dist/excalidraw-assets/Cascadia.woff2"); + } + @font-face { + font-family: "Assistant"; + src: url("https://file%2B.vscode-resource.vscode-cdn.net/Users/jprusaczyk/.vscode/extensions/pomdtr.excalidraw-editor-3.7.1/public//dist/excalidraw-assets/Assistant-Regular.woff2"); + } + </style> + + </defs> + <rect x="0" y="0" width="920.4013388422684" height="699.1493700834546" fill="#ffffff"></rect><g stroke-linecap="round" transform="translate(13.34765625 214.98877144379412) rotate(0 79.353515625 41.330078125)"><path d="M20.67 0 C52.05 1.28, 86.22 1.27, 138.04 0 M20.67 0 C60.32 -0.13, 101.56 1.05, 138.04 0 M138.04 0 C153.68 -0.12, 158.96 7.68, 158.71 20.67 M138.04 0 C150.78 -0.46, 159.5 4.64, 158.71 20.67 M158.71 20.67 C158.92 34.53, 159.4 51.71, 158.71 62 M158.71 20.67 C158.22 32.9, 158.45 47.13, 158.71 62 M158.71 62 C158.13 75.34, 153.49 84.09, 138.04 82.66 M158.71 62 C157.21 77.67, 150.27 82.38, 138.04 82.66 M138.04 82.66 C105.04 84.5, 74.16 80.75, 20.67 82.66 M138.04 82.66 C112.94 82.88, 86.16 82.72, 20.67 82.66 M20.67 82.66 C4.9 82.16, -0.59 73.99, 0 62 M20.67 82.66 C4.61 80.54, -0.27 74.4, 0 62 M0 62 C-0.78 51.17, -1.05 35.73, 0 20.67 M0 62 C0.38 47.79, -0.36 32.35, 0 20.67 M0 20.67 C0.23 5.79, 5.5 1.99, 20.67 0 M0 20.67 C-0.7 5.74, 4.74 -0.63, 20.67 0" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(48.961219787597656 231.31884956879412) rotate(0 43.739952087402344 25)"><text x="43.739952087402344" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">User</text><text x="43.739952087402344" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">(browser)</text></g><g stroke-linecap="round" transform="translate(414.94921875 60.61377144379412) rotate(0 74.935546875 42.5)"><path d="M21.25 0 C42.81 -0.88, 66.8 0.48, 128.62 0 M21.25 0 C50.58 -0.62, 79.07 0.27, 128.62 0 M128.62 0 C142.42 1.49, 150.37 8.13, 149.87 21.25 M128.62 0 C140.9 -0.81, 151.39 8.09, 149.87 21.25 M149.87 21.25 C149.41 30.89, 150.72 39.08, 149.87 63.75 M149.87 21.25 C150.07 33.93, 148.69 47.78, 149.87 63.75 M149.87 63.75 C149.96 77.67, 140.91 86.71, 128.62 85 M149.87 63.75 C150.88 79.59, 143.84 85.58, 128.62 85 M128.62 85 C85.38 86.27, 43.04 86.84, 21.25 85 M128.62 85 C87.14 83.17, 44.25 83.56, 21.25 85 M21.25 85 C8.34 85.94, 0.93 76.09, 0 63.75 M21.25 85 C7.53 86.64, -1.46 79.01, 0 63.75 M0 63.75 C0.59 49.48, 1.1 37.8, 0 21.25 M0 63.75 C0.54 51.39, 0.23 37.25, 0 21.25 M0 21.25 C1.04 7.26, 7.2 -0.88, 21.25 0 M0 21.25 C0.81 7.13, 5.45 2.13, 21.25 0" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(430.56480407714844 78.11377144379412) rotate(0 59.31996154785156 25)"><text x="59.31996154785156" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Frontend UI</text><text x="59.31996154785156" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">(React)</text></g><g stroke-linecap="round" transform="translate(10 362.4321308187941) rotate(0 79.93359375 42.5)"><path d="M21.25 0 C57.78 -0.88, 99.4 1.49, 138.62 0 M21.25 0 C62.75 0.5, 106.41 0.92, 138.62 0 M138.62 0 C153.11 -1.83, 158.26 6.69, 159.87 21.25 M138.62 0 C150.61 0.71, 160.89 7.15, 159.87 21.25 M159.87 21.25 C159.29 37.94, 160.81 56.21, 159.87 63.75 M159.87 21.25 C160.47 37.24, 159.4 54.14, 159.87 63.75 M159.87 63.75 C160.55 78.19, 154.65 85.71, 138.62 85 M159.87 63.75 C157.63 78.92, 151.69 83.76, 138.62 85 M138.62 85 C103.03 86.54, 70.17 85.72, 21.25 85 M138.62 85 C109.33 85.86, 80.01 85.2, 21.25 85 M21.25 85 C8.97 85.25, 0.49 76.72, 0 63.75 M21.25 85 C6.02 85.2, -0.33 77.85, 0 63.75 M0 63.75 C-1.06 49.64, 0.56 32.86, 0 21.25 M0 63.75 C0.08 51.02, -0.03 40.73, 0 21.25 M0 21.25 C0.21 7.46, 6.66 1.31, 21.25 0 M0 21.25 C-2.13 5.32, 4.97 -1.19, 21.25 0" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(20.963653564453125 379.9321308187941) rotate(0 68.96994018554688 25)"><text x="68.96994018554688" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">User</text><text x="68.96994018554688" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">(Electron App)</text></g><g stroke-linecap="round" transform="translate(409.611328125 214.02002144379412) rotate(0 74.935546875 42.5)"><path d="M21.25 0 C58.12 -0.44, 91.68 1.98, 128.62 0 M21.25 0 C62.07 0.62, 103.72 -0.81, 128.62 0 M128.62 0 C142.7 0.72, 148.56 8.82, 149.87 21.25 M128.62 0 C140.99 0.74, 151.81 4.96, 149.87 21.25 M149.87 21.25 C149.24 32.48, 150.87 39.54, 149.87 63.75 M149.87 21.25 C148.59 31.52, 149.42 41.25, 149.87 63.75 M149.87 63.75 C149.52 77.64, 141.58 85.33, 128.62 85 M149.87 63.75 C147.71 80.15, 144.61 86.34, 128.62 85 M128.62 85 C100.87 83.7, 72.37 85.21, 21.25 85 M128.62 85 C100.45 85.23, 73.26 85.11, 21.25 85 M21.25 85 C6.21 84.41, 0.28 79.75, 0 63.75 M21.25 85 C6.08 83.28, -0.93 79.99, 0 63.75 M0 63.75 C1.79 50.32, -0.34 37.92, 0 21.25 M0 63.75 C0.74 50.87, -0.86 35.67, 0 21.25 M0 21.25 C1.97 7.79, 8.11 -0.3, 21.25 0 M0 21.25 C1.15 5.89, 6 -1.75, 21.25 0" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(417.74693298339844 219.02002144379412) rotate(0 66.79994201660156 37.5)"><text x="66.79994201660156" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Conversation </text><text x="66.79994201660156" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Service</text><text x="66.79994201660156" y="50" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">(FastAPI)</text></g><g stroke-linecap="round" transform="translate(414.080078125 366.1489276937941) rotate(0 74.935546875 42.5)"><path d="M21.25 0 C53.94 -1.49, 91.59 -0.05, 128.62 0 M21.25 0 C48.06 1.34, 74.76 -0.2, 128.62 0 M128.62 0 C144.71 1.74, 149.51 7.83, 149.87 21.25 M128.62 0 C142.71 -0.6, 149.52 9.16, 149.87 21.25 M149.87 21.25 C149.07 34.07, 151.44 48.77, 149.87 63.75 M149.87 21.25 C149.29 33.8, 149.04 45.76, 149.87 63.75 M149.87 63.75 C149.33 76.44, 143.99 86.94, 128.62 85 M149.87 63.75 C151.62 77.82, 144.77 86.41, 128.62 85 M128.62 85 C107.46 86.63, 82.72 85.27, 21.25 85 M128.62 85 C91.81 84.67, 54.08 85.78, 21.25 85 M21.25 85 C6.09 83.56, 0 78.43, 0 63.75 M21.25 85 C5.8 86.15, -0.57 79.69, 0 63.75 M0 63.75 C0.25 52.56, 0.6 40.92, 0 21.25 M0 63.75 C0.45 52.65, -0.24 41.03, 0 21.25 M0 21.25 C0.7 5.81, 8.55 -1.1, 21.25 0 M0 21.25 C-2.19 8.6, 6.07 0.18, 21.25 0" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(422.21568298339844 371.1489276937941) rotate(0 66.79994201660156 37.5)"><text x="66.79994201660156" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Conversation </text><text x="66.79994201660156" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Cache</text><text x="66.79994201660156" y="50" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">(Redis)</text></g><g stroke-linecap="round" transform="translate(680.427734375 208.73486519379412) rotate(0 74.935546875 42.5)"><path d="M21.25 0 C51.87 -1.56, 86.24 -0.92, 128.62 0 M21.25 0 C46.92 -0.19, 71.64 -0.33, 128.62 0 M128.62 0 C144.14 0.64, 150.56 6.22, 149.87 21.25 M128.62 0 C143.72 -0.63, 148.03 8.43, 149.87 21.25 M149.87 21.25 C151.54 34.44, 148.76 45.29, 149.87 63.75 M149.87 21.25 C150.11 36.68, 150.33 51.45, 149.87 63.75 M149.87 63.75 C150.87 78.65, 143.62 84.98, 128.62 85 M149.87 63.75 C148.21 79.56, 141.92 85, 128.62 85 M128.62 85 C87.92 82.67, 49.84 82.63, 21.25 85 M128.62 85 C89.61 83.9, 48.7 85.29, 21.25 85 M21.25 85 C6.04 84.61, -1.17 79.39, 0 63.75 M21.25 85 C8.62 86, -0.23 75.8, 0 63.75 M0 63.75 C1.61 49.09, -0.33 36.22, 0 21.25 M0 63.75 C0.65 47.88, -0.4 30.74, 0 21.25 M0 21.25 C1.23 8.9, 8.83 1.3, 21.25 0 M0 21.25 C-0.13 7.05, 8.35 1.98, 21.25 0" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(692.8533172607422 213.73486519379412) rotate(0 62.50996398925781 37.5)"><text x="62.50996398925781" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">LLM Service</text><text x="62.50996398925781" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">(FastAPI + </text><text x="62.50996398925781" y="50" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">LangChain)</text></g><g stroke-linecap="round" transform="translate(693.853515625 357.3442401937941) rotate(0 74.935546875 55)"><path d="M27.5 0 C54.62 0.25, 84.41 0.91, 122.37 0 M27.5 0 C59.3 0.43, 90.54 -0.12, 122.37 0 M122.37 0 C142.3 -1.69, 149.55 10.31, 149.87 27.5 M122.37 0 C139.31 1.16, 150.06 11.43, 149.87 27.5 M149.87 27.5 C149.15 44.29, 151.25 65.82, 149.87 82.5 M149.87 27.5 C150.58 38.56, 149.35 50.63, 149.87 82.5 M149.87 82.5 C151 101, 139.92 111.4, 122.37 110 M149.87 82.5 C149.42 99.55, 142.94 112.28, 122.37 110 M122.37 110 C86.91 108.52, 54.45 107.69, 27.5 110 M122.37 110 C88.86 109.46, 55.23 110.94, 27.5 110 M27.5 110 C10.89 109.77, -0.59 99.05, 0 82.5 M27.5 110 C7.25 111.23, 0.43 102.09, 0 82.5 M0 82.5 C-0.14 71.58, 1.18 58.37, 0 27.5 M0 82.5 C0.34 68.87, 0.05 52.41, 0 27.5 M0 27.5 C0.09 11.15, 9.2 -0.41, 27.5 0 M0 27.5 C0.44 6.94, 10.52 -0.32, 27.5 0" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(702.5091247558594 362.3442401937941) rotate(0 66.27993774414062 50)"><text x="66.27993774414062" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Knowledge </text><text x="66.27993774414062" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">VectorDB</text><text x="66.27993774414062" y="50" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">(PostgreSQL </text><text x="66.27993774414062" y="75" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">+ PGVector)</text></g><g stroke-linecap="round" transform="translate(701.955078125 543.3715839437941) rotate(0 74.935546875 55)"><path d="M27.5 0 C49.5 0.5, 70.42 1.55, 122.37 0 M27.5 0 C58.81 -0.96, 91.15 -1.12, 122.37 0 M122.37 0 C142.46 0.03, 148.21 9.96, 149.87 27.5 M122.37 0 C139.38 0.78, 152.15 7.35, 149.87 27.5 M149.87 27.5 C151.17 43.8, 150.94 59.55, 149.87 82.5 M149.87 27.5 C150.36 48, 148.99 71.17, 149.87 82.5 M149.87 82.5 C150.54 99.47, 142.18 109.41, 122.37 110 M149.87 82.5 C149.47 100.54, 140.15 110.5, 122.37 110 M122.37 110 C102.51 112.05, 79.71 109.71, 27.5 110 M122.37 110 C91.15 110.61, 58.44 111, 27.5 110 M27.5 110 C8.75 109.85, 0.6 99, 0 82.5 M27.5 110 C11.26 111.95, 1.21 100.1, 0 82.5 M0 82.5 C0.49 64.15, 1.94 43.4, 0 27.5 M0 82.5 C-0.22 65.46, 0.97 47.79, 0 27.5 M0 27.5 C1.66 9.58, 8.35 -0.27, 27.5 0 M0 27.5 C-0.31 7.37, 7.45 -0.26, 27.5 0" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(724.3906631469727 548.3715839437941) rotate(0 52.499961853027344 50)"><text x="52.499961853027344" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Ingestion </text><text x="52.499961853027344" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Service</text><text x="52.499961853027344" y="50" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">(Python + </text><text x="52.499961853027344" y="75" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">LangChain)</text></g><g stroke-linecap="round" transform="translate(412.814453125 519.7153339437941) rotate(0 74.935546875 67.5)"><path d="M32 0 C62.97 1.78, 93.59 1.92, 117.87 0 M32 0 C57.65 -0.7, 82.5 -0.44, 117.87 0 M117.87 0 C137.5 1.1, 150.96 12.11, 149.87 32 M117.87 0 C137.43 0.15, 151.91 11.14, 149.87 32 M149.87 32 C149.22 56.23, 151.06 84.57, 149.87 103 M149.87 32 C150.06 59.76, 149.3 88.45, 149.87 103 M149.87 103 C151.33 122.84, 138.83 135.66, 117.87 135 M149.87 103 C149.91 125.61, 139.45 135.76, 117.87 135 M117.87 135 C91.36 137.46, 63.42 133.74, 32 135 M117.87 135 C89.85 136.39, 62.39 135.55, 32 135 M32 135 C11.32 136.13, -1.74 126.14, 0 103 M32 135 C11.44 135.48, -0.68 126.01, 0 103 M0 103 C1.03 79.7, 0.97 59.52, 0 32 M0 103 C-1.14 79.07, -1.28 52.95, 0 32 M0 32 C-1.6 8.79, 10.98 -0.56, 32 0 M0 32 C-1.04 12.26, 10.83 -1.99, 32 0" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(425.2600326538086 524.7153339437941) rotate(0 62.489967346191406 62.5)"><text x="62.489967346191406" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Document </text><text x="62.489967346191406" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Repository</text><text x="62.489967346191406" y="50" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">(Markdown, </text><text x="62.489967346191406" y="75" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">PDF, HTML, </text><text x="62.489967346191406" y="100" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Word)</text></g><g stroke-linecap="round" transform="translate(13.39453125 532.2895526937941) rotate(0 79.93359375 42.5)"><path d="M21.25 0 C60.55 -2.9, 103.49 0.06, 138.62 0 M21.25 0 C59.07 -1.12, 97.11 -0.44, 138.62 0 M138.62 0 C151.41 0.1, 160.29 7.78, 159.87 21.25 M138.62 0 C150.97 1.68, 161.16 8.71, 159.87 21.25 M159.87 21.25 C161.41 33.58, 159.75 47.64, 159.87 63.75 M159.87 21.25 C160.48 33.36, 159.2 46.2, 159.87 63.75 M159.87 63.75 C159.51 76.62, 154.29 83.73, 138.62 85 M159.87 63.75 C161.35 76.14, 153.23 84.69, 138.62 85 M138.62 85 C110.22 82.76, 80.36 83.81, 21.25 85 M138.62 85 C114.36 84.08, 91.08 84.21, 21.25 85 M21.25 85 C5.38 84.85, 1.99 78.13, 0 63.75 M21.25 85 C5.3 86.45, 2.08 79.94, 0 63.75 M0 63.75 C-1.76 49.92, -0.26 35.64, 0 21.25 M0 63.75 C0.93 46.99, -0.72 31.76, 0 21.25 M0 21.25 C-0.64 6.16, 7.26 1.34, 21.25 0 M0 21.25 C0.4 4.88, 5.55 -1.03, 21.25 0" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(19.69818878173828 549.7895526937941) rotate(0 73.62993621826172 25)"><text x="73.62993621826172" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">User</text><text x="73.62993621826172" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">(Electron App?)</text></g><g stroke-linecap="round"><g transform="translate(415.9140625 102.53564644379412) rotate(0 -158.142578125 55.177734375)"><path d="M0.43 -0.1 C-38.59 4.36, -180.84 8.31, -233.43 26.72 C-286.02 45.12, -301.26 96.39, -315.11 110.33 M-0.8 -1.2 C-39.49 3.48, -178.66 9.54, -231.07 28.35 C-283.48 47.15, -301.04 97.78, -315.27 111.64" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(415.9140625 102.53564644379412) rotate(0 -158.142578125 55.177734375)"><path d="M-307.35 82.7 C-310.34 91.95, -312.72 105.34, -315.27 111.64 M-307.35 82.7 C-309.74 90.91, -311.54 100.03, -315.27 111.64" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(415.9140625 102.53564644379412) rotate(0 -158.142578125 55.177734375)"><path d="M-290.6 94.56 C-299.57 99.64, -307.92 108.79, -315.27 111.64 M-290.6 94.56 C-297.97 99.24, -304.76 104.82, -315.27 111.64" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round"><g transform="translate(174.7109375 254.73095894379412) rotate(0 118.46875 -0.47265625)"><path d="M0.91 -0.37 C40.23 -0.43, 196.83 -0.69, 236.23 -0.66 M-0.07 -1.61 C39.61 -2.03, 199.11 -2.55, 238.57 -2.63" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round"><g transform="translate(171.3125 405.1918964437941) rotate(0 120.9921875 -73.81640625)"><path d="M0.49 -1.03 C40.68 -25.4, 201.38 -122, 241.52 -146.51 M-0.72 1.04 C39.25 -23.61, 200.18 -123.37, 240.32 -148.04" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round"><g transform="translate(175.421875 578.0278339437941) rotate(0 118.9765625 0.98046875)"><path d="M0.31 -0.15 C39.86 0.35, 197.66 1.64, 237.09 2.12 M-0.99 -1.28 C38.96 -0.48, 199.32 3.4, 239.35 3.75" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(175.421875 578.0278339437941) rotate(0 118.9765625 0.98046875)"><path d="M210.98 13.51 C218.72 9.28, 227.16 6.19, 239.35 3.75 M210.98 13.51 C221.62 10.35, 230.89 7.11, 239.35 3.75" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(175.421875 578.0278339437941) rotate(0 118.9765625 0.98046875)"><path d="M211.34 -7.01 C218.82 -5.52, 227.16 -2.88, 239.35 3.75 M211.34 -7.01 C222.03 -2.67, 231.17 1.58, 239.35 3.75" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round"><g transform="translate(563.609375 586.8950214437941) rotate(0 70.5390625 2.078125)"><path d="M1.19 1.13 C24.94 1.85, 118.34 3.73, 141.81 4.17 M0.36 0.68 C24.08 1.61, 117.69 5.02, 141.25 5.71" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(563.609375 586.8950214437941) rotate(0 70.5390625 2.078125)"><path d="M112.73 15.02 C121.49 13.73, 126.47 11.82, 141.25 5.71 M112.73 15.02 C120.75 12.59, 127.17 9.59, 141.25 5.71" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(563.609375 586.8950214437941) rotate(0 70.5390625 2.078125)"><path d="M113.42 -5.49 C121.99 -1.84, 126.82 1.18, 141.25 5.71 M113.42 -5.49 C121.25 -2.44, 127.49 0.02, 141.25 5.71" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round"><g transform="translate(776.6640625 543.4965839437941) rotate(0 -0.078125 -36.90625)"><path d="M-0.59 -0.82 C-0.6 -12.89, -0.32 -61.06, -0.29 -73.13 M1.3 1.36 C1.13 -11, -0.88 -62.12, -1.31 -74.9" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(776.6640625 543.4965839437941) rotate(0 -0.078125 -36.90625)"><path d="M9.97 -47.1 C5.59 -55.22, 4.91 -63.23, -1.31 -74.9 M9.97 -47.1 C4.95 -56.33, 2.04 -67.46, -1.31 -74.9" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(776.6640625 543.4965839437941) rotate(0 -0.078125 -36.90625)"><path d="M-10.53 -46.35 C-9.14 -54.58, -4.04 -62.8, -1.31 -74.9 M-10.53 -46.35 C-8.44 -55.64, -4.22 -67.04, -1.31 -74.9" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round"><g transform="translate(560.9921875 252.02783394379412) rotate(0 61.046875 -1.0390625)"><path d="M-1.16 -1.13 C19.19 -1.29, 101.24 -1.74, 121.95 -2.02 M0.44 0.9 C20.63 1.03, 100.53 0, 120.92 -0.46" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round"><g transform="translate(484.2109375 300.2700214437941) rotate(0 -0.25390625 32.51953125)"><path d="M-0.72 0.6 C-0.82 11.51, -0.59 54.77, -0.36 65.44 M1.11 -0.14 C0.84 10.41, -1.13 52.56, -1.23 63.53" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round"><g transform="translate(762.0234375 292.8637714437941) rotate(0 0.6328125 33.59765625)"><path d="M0.24 -0.37 C0.38 10.55, 0.42 54.73, 0.77 66.1 M-1.09 -1.61 C-1.14 9.37, -0.97 55.82, -0.44 67.06" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(357.50320099148144 10.000000000000028) rotate(0 276.4490689253935 339.5746850417273)"><path d="M32 0 C199 -1.47, 365.13 -0.51, 520.9 0 M520.9 0 C543.2 -1.82, 554.31 9.8, 552.9 32 M552.9 32 C549.92 228.92, 550.88 426.76, 552.9 647.15 M552.9 647.15 C554.14 667.23, 543.36 679.9, 520.9 679.15 M520.9 679.15 C358.06 678.42, 196.94 677.79, 32 679.15 M32 679.15 C11.37 677.98, 1.5 670.47, 0 647.15 M0 647.15 C0.14 505.79, -0.59 365.23, 0 32 M0 32 C-1.15 9.54, 10.19 1.58, 32 0" stroke="#1e1e1e" stroke-width="2.5" fill="none" stroke-dasharray="1.5 8"></path></g><g transform="translate(615.1576970712649 48.37806556495423) rotate(0 131.97987365722656 12.5)"><text x="0" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Cloud/K8s/Docker-Compose</text></g></svg> \ No newline at end of file