Files
embeddingsearch/docs/ProjectOutline/ProjectOutlineDiagram.excalidraw.svg

2 lines
36 KiB
XML

<svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1326.2659685054514 979.6556356423737" width="1326.2659685054514" height="979.6556356423737" class="excalidraw-svg"><!-- svg-source:excalidraw --><metadata></metadata><defs><style class="style-fonts">
@font-face { font-family: Excalifont; src: url(data:font/woff2;base64,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); }</style></defs><g stroke-linecap="round" transform="translate(10 10) rotate(0 653.1329842527257 479.82781782118684)"><path d="M32 0 C321.9 0, 611.8 0, 1274.27 0 C1295.6 0, 1306.27 10.67, 1306.27 32 C1306.27 325.94, 1306.27 619.89, 1306.27 927.66 C1306.27 948.99, 1295.6 959.66, 1274.27 959.66 C860.64 959.66, 447.01 959.66, 32 959.66 C10.67 959.66, 0 948.99, 0 927.66 C0 573.32, 0 218.99, 0 32 C0 10.67, 10.67 0, 32 0" stroke="none" stroke-width="0" fill="#1e1e1e"></path><path d="M32 0 C371.06 0, 710.12 0, 1274.27 0 M32 0 C296.95 0, 561.9 0, 1274.27 0 M1274.27 0 C1295.6 0, 1306.27 10.67, 1306.27 32 M1274.27 0 C1295.6 0, 1306.27 10.67, 1306.27 32 M1306.27 32 C1306.27 377.78, 1306.27 723.56, 1306.27 927.66 M1306.27 32 C1306.27 315.47, 1306.27 598.93, 1306.27 927.66 M1306.27 927.66 C1306.27 948.99, 1295.6 959.66, 1274.27 959.66 M1306.27 927.66 C1306.27 948.99, 1295.6 959.66, 1274.27 959.66 M1274.27 959.66 C827.33 959.66, 380.39 959.66, 32 959.66 M1274.27 959.66 C945.11 959.66, 615.96 959.66, 32 959.66 M32 959.66 C10.67 959.66, 0 948.99, 0 927.66 M32 959.66 C10.67 959.66, 0 948.99, 0 927.66 M0 927.66 C0 736.28, 0 544.9, 0 32 M0 927.66 C0 638.8, 0 349.95, 0 32 M0 32 C0 10.67, 10.67 0, 32 0 M0 32 C0 10.67, 10.67 0, 32 0" stroke="#1e1e1e" stroke-width="0.5" fill="none"></path></g><g stroke-linecap="round" transform="translate(454.24454749300196 199.5572299363596) rotate(0 178.79296875 172.4812181271788)"><path d="M32 0 C135.46 2.67, 236.86 1.2, 325.59 0 M32 0 C115.32 -1.82, 197.36 -1.18, 325.59 0 M325.59 0 C345.1 -0.09, 356.31 12.3, 357.59 32 M325.59 0 C347.79 1.1, 358.66 11.93, 357.59 32 M357.59 32 C356.62 139.17, 357.76 245.31, 357.59 312.96 M357.59 32 C359.54 97.2, 359.64 161.81, 357.59 312.96 M357.59 312.96 C358.89 333.96, 346.13 344.51, 325.59 344.96 M357.59 312.96 C357.3 335.84, 345.17 343.53, 325.59 344.96 M325.59 344.96 C240.36 343.94, 152.25 344.01, 32 344.96 M325.59 344.96 C222.49 344.28, 120.25 344.58, 32 344.96 M32 344.96 C11.74 345.51, 0.59 332.3, 0 312.96 M32 344.96 C8.96 342.86, 1.21 336.01, 0 312.96 M0 312.96 C0.55 248.31, -1.1 184.72, 0 32 M0 312.96 C1.09 237.01, 0.02 159.91, 0 32 M0 32 C-0.25 11.03, 11 1.96, 32 0 M0 32 C-1.17 8.73, 11.02 0.97, 32 0" stroke="#ffffff" stroke-width="2" fill="none"></path></g><g transform="translate(590.407351743002 232.6519156108105) rotate(0 42.630165100097656 17.5)"><text x="0" y="24.668" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="28px" fill="#ffffff" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Server</text></g><g stroke-linecap="round" transform="translate(902.406267793985 199.55723041274183) rotate(0 178.79296875 255.9910466016045)"><path d="M32 0 C99.61 -2.79, 167.01 -2.79, 325.59 0 M32 0 C139.57 -0.59, 246.3 -0.98, 325.59 0 M325.59 0 C345.76 1.24, 357.05 12.13, 357.59 32 M325.59 0 C347.58 -0.42, 356.79 9.67, 357.59 32 M357.59 32 C357.83 148.83, 359.64 265.65, 357.59 479.98 M357.59 32 C359.88 162.13, 359.76 292.24, 357.59 479.98 M357.59 479.98 C359.58 502.28, 345.87 511.64, 325.59 511.98 M357.59 479.98 C357.62 502.47, 348.66 510.38, 325.59 511.98 M325.59 511.98 C216.98 512.37, 108.47 513.85, 32 511.98 M325.59 511.98 C242.41 510.21, 158.69 510.06, 32 511.98 M32 511.98 C11.44 513.09, -0.53 501.46, 0 479.98 M32 511.98 C9.87 512.3, -0.61 503.13, 0 479.98 M0 479.98 C-0.15 343.24, -0.02 208.48, 0 32 M0 479.98 C-0.21 382.64, -0.41 284.35, 0 32 M0 32 C1.49 9.95, 11.46 1.45, 32 0 M0 32 C1.04 10.25, 10.24 0.74, 32 0" stroke="#ffffff" stroke-width="2" fill="none"></path></g><g transform="translate(1028.657031043985 232.0337936627419) rotate(0 52.542205810546875 17.5)"><text x="0" y="24.668" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="28px" fill="#ffffff" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Indexer</text></g><g transform="translate(489.3572321248379 37.64341061081052) rotate(0 143.38804626464844 22.5)"><text x="0" y="31.716" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="36px" fill="#ffffff" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">embeddingsearch</text></g><g stroke-linecap="round" transform="translate(459.8805164517828 674.4910211481474) rotate(0 178.79296875 123.00519279545392)"><path d="M32 0 C99.47 -0.51, 167.64 1.27, 325.59 0 M32 0 C131.18 -1.16, 229.3 -2.36, 325.59 0 M325.59 0 C347.85 1.19, 358.09 11.65, 357.59 32 M325.59 0 C344.81 1.4, 355.42 10.3, 357.59 32 M357.59 32 C356.5 87.18, 358.32 140.71, 357.59 214.01 M357.59 32 C357.53 71.43, 357.6 110.22, 357.59 214.01 M357.59 214.01 C358.11 235.43, 348 247.07, 325.59 246.01 M357.59 214.01 C358.04 233.79, 347.87 248.13, 325.59 246.01 M325.59 246.01 C244.71 247.47, 164.67 248.02, 32 246.01 M325.59 246.01 C236.53 244.53, 148.17 245.32, 32 246.01 M32 246.01 C9.33 246.94, 1.97 233.45, 0 214.01 M32 246.01 C9.6 246.94, -2.03 237.07, 0 214.01 M0 214.01 C0.98 142.57, -0.43 75.91, 0 32 M0 214.01 C0.07 147.66, -1.43 80.4, 0 32 M0 32 C0.45 9.72, 11.38 1.38, 32 0 M0 32 C1.67 12.53, 11.35 -0.03, 32 0" stroke="#ffffff" stroke-width="2" fill="none"></path></g><g transform="translate(600.6773227017829 706.9675843981474) rotate(0 37.99616241455078 17.5)"><text x="0" y="24.668" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="28px" fill="#ffffff" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Client</text></g><g stroke-linecap="round" transform="translate(41.43322487880482 521.5877802045031) rotate(0 140.46033818892417 138.42819901124602)"><path d="M32 0 C87.87 1.12, 140.08 1.44, 248.92 0 M32 0 C109.35 1.35, 185.79 0.85, 248.92 0 M248.92 0 C271.17 -0.99, 280.78 11.63, 280.92 32 M248.92 0 C269.91 0.14, 281.35 8.67, 280.92 32 M280.92 32 C280.54 115.64, 280.04 200.84, 280.92 244.86 M280.92 32 C280.3 97.43, 281.48 163.06, 280.92 244.86 M280.92 244.86 C281.07 265.75, 270.87 278.47, 248.92 276.86 M280.92 244.86 C278.85 264.34, 268.58 275.21, 248.92 276.86 M248.92 276.86 C179.94 277.81, 112.99 277.95, 32 276.86 M248.92 276.86 C177.76 275.2, 106.6 274.64, 32 276.86 M32 276.86 C10.84 276.36, -0.8 264.22, 0 244.86 M32 276.86 C10.43 276.2, 1.83 265.07, 0 244.86 M0 244.86 C0.41 161.92, 1.13 76.42, 0 32 M0 244.86 C0.87 166.85, 0.91 86.66, 0 32 M0 32 C-1.02 9.13, 8.7 1.05, 32 0 M0 32 C-2.19 8.99, 11.84 0.76, 32 0" stroke="#ffffff" stroke-width="2" fill="none"></path></g><g transform="translate(104.29545187880478 545.7580197200996) rotate(0 75.1802978515625 35)"><text x="75.1802978515625" y="24.668" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="28px" fill="#ffffff" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">embeddings</text><text x="75.1802978515625" y="59.668" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="28px" fill="#ffffff" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">provider</text></g><g transform="translate(73.26878037880499 627.1081517200996) rotate(0 106.20697021484375 37.5)"><text x="0" y="17.619999999999997" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="20px" fill="#ffffff" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">✔️ Ollama</text><text x="0" y="42.62" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="20px" fill="#ffffff" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">✔️ OpenAI-compatible</text><text x="0" y="67.62" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="20px" fill="#ffffff" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic"> (e.g. LocalAI)</text></g><g mask="url(#mask-FtsgzyvY)" stroke-linecap="round"><g transform="translate(452.7944941064013 542.4992684451959) rotate(0 -60.07022338981271 53.87526283619466)"><path d="M0.15 0.64 C-20.07 18.45, -100.45 88.89, -120.29 106.75 M-1.24 -0.07 C-21.16 17.87, -98.34 89.61, -118.02 107.82" stroke="#ffffff" stroke-width="2" fill="none"></path></g><g transform="translate(452.7944941064013 542.4992684451959) rotate(0 -60.07022338981271 53.87526283619466)"><path d="M-106.61 85.57 C-109.93 92.72, -116.87 103.67, -118.02 107.82 M-106.61 85.57 C-109.13 92.12, -114.34 99.62, -118.02 107.82" stroke="#ffffff" stroke-width="2" fill="none"></path></g><g transform="translate(452.7944941064013 542.4992684451959) rotate(0 -60.07022338981271 53.87526283619466)"><path d="M-94.98 98.11 C-102.76 100.46, -114.17 106.59, -118.02 107.82 M-94.98 98.11 C-101.18 100.69, -110.02 104.28, -118.02 107.82" stroke="#ffffff" stroke-width="2" fill="none"></path></g></g><mask id="mask-FtsgzyvY"><rect x="0" y="0" fill="#fff" width="672.2350869561494" height="750.1377726987193"></rect><rect x="371.36422148523815" y="583.8185205719576" fill="#000" width="43.419952392578125" height="25" opacity="1"></rect></mask><g transform="translate(371.36422148523815 583.8185205719576) rotate(0 21.36004923135046 12.556010709432918)"><text x="21.709976196289062" y="17.619999999999997" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="20px" fill="#ffffff" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">uses</text></g><g stroke-linecap="round" transform="translate(76.892924915138 235.20644306518403) rotate(0 100.64652696751506 116.44717859746902)"><path d="M32 0 C66.19 0.3, 104.15 -0.23, 169.29 0 M32 0 C85.77 1.25, 140.01 1.93, 169.29 0 M169.29 0 C192.02 0.26, 201.56 9.6, 201.29 32 M169.29 0 C190.67 1.3, 201.5 10.97, 201.29 32 M201.29 32 C199.16 80.63, 201.12 130.31, 201.29 200.89 M201.29 32 C201.78 88.21, 201.05 145.1, 201.29 200.89 M201.29 200.89 C203.14 223.8, 190.93 234.85, 169.29 232.89 M201.29 200.89 C203.3 222.52, 188.93 230.99, 169.29 232.89 M169.29 232.89 C116.27 232.14, 61.48 231.07, 32 232.89 M169.29 232.89 C136.46 233.18, 102.1 233.19, 32 232.89 M32 232.89 C11.6 231.51, -0.47 223.05, 0 200.89 M32 232.89 C10.47 234.97, -1.35 222.42, 0 200.89 M0 200.89 C-0.98 154.01, -0.23 103.61, 0 32 M0 200.89 C-1.56 162.74, -2 123.78, 0 32 M0 32 C-1.65 9.43, 9.53 0.04, 32 0 M0 32 C1.92 8.6, 10.86 0.97, 32 0" stroke="#ffffff" stroke-width="2" fill="none"></path></g><g transform="translate(111.7951816669813 267.6519155370829) rotate(0 65.74427032470703 17.5)"><text x="0" y="24.668" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="28px" fill="#ffffff" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Database</text></g><g transform="translate(118.1096960334371 322.36249644719976) rotate(0 59.42975616455078 60)"><text x="0" y="14.096" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="16px" fill="#ffffff" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">✔️ MySQL</text><text x="0" y="34.096000000000004" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="16px" fill="#ffffff" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">⚒️ SQLite</text><text x="0" y="54.096000000000004" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="16px" fill="#ffffff" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">⚒️ MSSQL</text><text x="0" y="74.096" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="16px" fill="#ffffff" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">⚒️ PostgreSQL</text><text x="0" y="94.096" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="16px" fill="#ffffff" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">⚒️ MongoDB</text><text x="0" y="114.096" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="16px" fill="#ffffff" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">⚒️ Redis</text></g><g mask="url(#mask-AihDZIB7)" stroke-linecap="round"><g transform="translate(454.251141295744 314.24628407727) rotate(0 -82.24214279983143 1.585852171953718)"><path d="M0.47 -0.25 C-26.97 0.37, -136.92 2.74, -164.37 3.4 M-0.74 -1.42 C-28.31 -0.63, -137.66 3.56, -164.96 4.6" stroke="#ffffff" stroke-width="2" fill="none"></path></g><g transform="translate(454.251141295744 314.24628407727) rotate(0 -82.24214279983143 1.585852171953718)"><path d="M-141.81 -4.84 C-149.74 -0.54, -157.9 2.78, -164.96 4.6 M-141.81 -4.84 C-148.79 -3.11, -153.48 -0.35, -164.96 4.6" stroke="#ffffff" stroke-width="2" fill="none"></path></g><g transform="translate(454.251141295744 314.24628407727) rotate(0 -82.24214279983143 1.585852171953718)"><path d="M-141.16 12.25 C-149.26 11.02, -157.63 8.8, -164.96 4.6 M-141.16 12.25 C-148.43 9.36, -153.3 7.51, -164.96 4.6" stroke="#ffffff" stroke-width="2" fill="none"></path></g></g><mask id="mask-AihDZIB7"><rect x="0" y="0" fill="#fff" width="719.3163037413199" height="418.2874251594636"></rect><rect x="336.9185951681709" y="291.2668546183668" fill="#000" width="69.59992980957031" height="50" opacity="1"></rect></mask><g transform="translate(336.9185951681709 291.2668546183668) rotate(0 35.09040332774167 24.56528163085693)"><text x="34.799964904785156" y="17.619999999999997" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="20px" fill="#ffffff" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Stores</text><text x="34.799964904785156" y="42.62" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="20px" fill="#ffffff" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">data in</text></g><g mask="url(#mask-MmRvyS6G)" stroke-linecap="round"><g transform="translate(638.2602895113486 662.2038481481475) rotate(0 -0.9707678456243498 -53.63338643103957)"><path d="M0.41 -1.05 C0.06 -18.81, -1.2 -89.03, -1.76 -106.78 M-0.83 1.01 C-1.32 -17.03, -1.83 -89.83, -2.35 -108.27" stroke="#ffffff" stroke-width="2" fill="none"></path></g><g transform="translate(638.2602895113486 662.2038481481475) rotate(0 -0.9707678456243498 -53.63338643103957)"><path d="M6.58 -84.93 C1.9 -91.55, 2.68 -101.29, -2.35 -108.27 M6.58 -84.93 C2.98 -91.87, 1.42 -99.91, -2.35 -108.27" stroke="#ffffff" stroke-width="2" fill="none"></path></g><g transform="translate(638.2602895113486 662.2038481481475) rotate(0 -0.9707678456243498 -53.63338643103957)"><path d="M-10.52 -84.64 C-9.51 -91.42, -3.05 -101.25, -2.35 -108.27 M-10.52 -84.64 C-8.35 -91.8, -4.14 -99.93, -2.35 -108.27" stroke="#ffffff" stroke-width="2" fill="none"></path></g></g><mask id="mask-MmRvyS6G"><rect x="0" y="0" fill="#fff" width="740.6793869657218" height="870.1752031055777"></rect><rect x="593.1807914433416" y="595.7181706694323" fill="#000" width="87.73989868164062" height="25" opacity="1"></rect></mask><g transform="translate(593.1807914433416 595.7181706694323) rotate(0 44.10873022238258 12.852291047675564)"><text x="43.86994934082031" y="17.619999999999997" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="20px" fill="#ffffff" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Accesses</text></g><g transform="translate(530.8676257126267 293.2872020429075) rotate(0 102.16989135742188 25)"><text x="0" y="17.619999999999997" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="20px" fill="#ffffff" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Listens on port 5146</text><text x="0" y="42.62" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="20px" fill="#ffffff" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic"></text></g><g transform="translate(973.2828725581529 297.89669998912564) rotate(0 103.55989074707031 12.5)"><text x="0" y="17.619999999999997" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="20px" fill="#ffffff" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Listens on port 5210</text></g><g stroke-linecap="round" transform="translate(932.677985567266 469.3538262736379) rotate(0 148.52125122857163 97.29827053023698)"><path d="M32 0 C104.92 0.16, 175.13 -1.81, 265.04 0 M32 0 C106.53 -2.33, 181.25 -1.5, 265.04 0 M265.04 0 C286.1 1.06, 296.52 9.29, 297.04 32 M265.04 0 C285.44 1.75, 298.72 10.99, 297.04 32 M297.04 32 C294.32 71.86, 296.31 112.33, 297.04 162.6 M297.04 32 C297.96 71.38, 296.96 111.93, 297.04 162.6 M297.04 162.6 C296.26 185.68, 284.8 195.04, 265.04 194.6 M297.04 162.6 C295.57 182.28, 284.19 195.28, 265.04 194.6 M265.04 194.6 C184.14 196.38, 103.03 195.46, 32 194.6 M265.04 194.6 C197.45 193.76, 129.43 193.7, 32 194.6 M32 194.6 C10.69 193.51, -1.74 182.01, 0 162.6 M32 194.6 C9.34 196.59, -1.22 184.62, 0 162.6 M0 162.6 C1.36 114.12, 1.74 67.78, 0 32 M0 162.6 C-0.78 130.23, -0.94 98.79, 0 32 M0 32 C-0.47 9.67, 10.75 0.62, 32 0 M0 32 C1.87 12.45, 10.91 -1.18, 32 0" stroke="#ffffff" stroke-width="2" fill="none"></path></g><g transform="translate(1023.7405604105243 496.62397095315725) rotate(0 53.102203369140625 17.5)"><text x="0" y="24.668" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="28px" fill="#ffffff" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Workers</text></g><g transform="translate(1013.1528142782236 553.9309928526332) rotate(0 63.68994903564453 37.5)"><text x="0" y="17.619999999999997" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="20px" fill="#ffffff" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">- example.py</text><text x="0" y="42.62" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="20px" fill="#ffffff" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">- example.csx</text><text x="0" y="67.62" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="20px" fill="#ffffff" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">- ...</text></g><g transform="translate(568.2505141271486 351.65362200396936) rotate(0 64.78700256347656 37.5)"><text x="0" y="17.619999999999997" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="20px" fill="#ffffff" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">✔️ Front-end</text><text x="0" y="42.62" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="20px" fill="#ffffff" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">✔️ Swagger</text><text x="0" y="67.62" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="20px" fill="#ffffff" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">✔️ Elmah</text></g><g transform="translate(1012.0557606698435 358.6252628690622) rotate(0 64.78700256347656 37.5)"><text x="0" y="17.619999999999997" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="20px" fill="#ffffff" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">⚒️ Front-end</text><text x="0" y="42.62" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="20px" fill="#ffffff" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">✔️ Swagger</text><text x="0" y="67.62" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="20px" fill="#ffffff" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">✔️ Elmah</text></g><g transform="translate(546.5554819071004 461.3347952247575) rotate(0 86.1897964477539 20)"><text x="0" y="14.096" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="16px" fill="#ffffff" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">✔️ Caches embeddings</text><text x="0" y="34.096000000000004" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="16px" fill="#ffffff" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">✔️ Caches queries</text></g><g transform="translate(535.0676579174817 772.0221758709165) rotate(0 103.60582733154297 50)"><text x="0" y="14.096" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="16px" fill="#ffffff" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">✔️ C# library</text><text x="0" y="34.096000000000004" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="16px" fill="#ffffff" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">⚒️ NuGet</text><text x="0" y="54.096000000000004" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="16px" fill="#ffffff" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">✔️ Searchdomain CRUD</text><text x="0" y="74.096" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="16px" fill="#ffffff" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">✔️ Entity CRUD</text><text x="0" y="94.096" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="16px" fill="#ffffff" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">✔️ Management operations</text></g><g mask="url(#mask-XROGizjb)" stroke-linecap="round"><g transform="translate(1046.4830987789055 722.5393236159508) rotate(0 -109.00132241566888 35.51797896519986)"><path d="M0.28 0.91 C-35.84 12.28, -181.3 57.94, -217.57 69.21 M-1.03 0.34 C-37.19 12.43, -182.16 59.19, -218.28 70.7" stroke="#ffffff" stroke-width="2" fill="none"></path></g><g transform="translate(1046.4830987789055 722.5393236159508) rotate(0 -109.00132241566888 35.51797896519986)"><path d="M-198.53 55.37 C-201.4 59.66, -207.59 63.52, -218.28 70.7 M-198.53 55.37 C-204.01 59.54, -207.09 61.93, -218.28 70.7" stroke="#ffffff" stroke-width="2" fill="none"></path></g><g transform="translate(1046.4830987789055 722.5393236159508) rotate(0 -109.00132241566888 35.51797896519986)"><path d="M-193.3 71.65 C-197.5 72.24, -204.89 72.38, -218.28 70.7 M-193.3 71.65 C-199.93 72.03, -204.23 70.63, -218.28 70.7" stroke="#ffffff" stroke-width="2" fill="none"></path></g></g><mask id="mask-XROGizjb"><rect x="0" y="0" fill="#fff" width="1364.499743606028" height="891.8499541473686"></rect><rect x="913.944800474231" y="744.6946388816598" fill="#000" width="47.05995178222656" height="25" opacity="1"></rect></mask><g transform="translate(913.9448004742308 744.6946388816598) rotate(0 23.536975889005703 13.362663699490895)"><text x="23.52997589111328" y="17.619999999999997" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="20px" fill="#ffffff" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Uses</text></g><g transform="translate(98.16142877348955 728.3437652358098) rotate(0 76.43777465820312 20)"><text x="76.43777465820312" y="14.096" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="16px" fill="#ffffff" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">✔️ Multiple provider</text><text x="76.43777465820312" y="34.096000000000004" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="16px" fill="#ffffff" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">configuration</text></g></svg>