Commit f2a9f00f authored by Kaifmohd's avatar Kaifmohd
Browse files

LLM-ASYST

parents
<svg id="my-svg" width="100%" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="flowchart" style="max-width: 1417.03px; background-color: white;" viewBox="0 0 1417.03125 502" role="graphics-document document" aria-roledescription="flowchart-v2"><style>#my-svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#my-svg .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#my-svg .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#my-svg .error-icon{fill:#552222;}#my-svg .error-text{fill:#552222;stroke:#552222;}#my-svg .edge-thickness-normal{stroke-width:1px;}#my-svg .edge-thickness-thick{stroke-width:3.5px;}#my-svg .edge-pattern-solid{stroke-dasharray:0;}#my-svg .edge-thickness-invisible{stroke-width:0;fill:none;}#my-svg .edge-pattern-dashed{stroke-dasharray:3;}#my-svg .edge-pattern-dotted{stroke-dasharray:2;}#my-svg .marker{fill:#333333;stroke:#333333;}#my-svg .marker.cross{stroke:#333333;}#my-svg svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#my-svg p{margin:0;}#my-svg .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#my-svg .cluster-label text{fill:#333;}#my-svg .cluster-label span{color:#333;}#my-svg .cluster-label span p{background-color:transparent;}#my-svg .label text,#my-svg span{fill:#333;color:#333;}#my-svg .node rect,#my-svg .node circle,#my-svg .node ellipse,#my-svg .node polygon,#my-svg .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#my-svg .rough-node .label text,#my-svg .node .label text,#my-svg .image-shape .label,#my-svg .icon-shape .label{text-anchor:middle;}#my-svg .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#my-svg .rough-node .label,#my-svg .node .label,#my-svg .image-shape .label,#my-svg .icon-shape .label{text-align:center;}#my-svg .node.clickable{cursor:pointer;}#my-svg .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#my-svg .arrowheadPath{fill:#333333;}#my-svg .edgePath .path{stroke:#333333;stroke-width:1px;}#my-svg .flowchart-link{stroke:#333333;fill:none;}#my-svg .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#my-svg .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#my-svg .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#my-svg .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#my-svg .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#my-svg .cluster text{fill:#333;}#my-svg .cluster span{color:#333;}#my-svg 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(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#my-svg .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#my-svg rect.text{fill:none;stroke-width:0;}#my-svg .icon-shape,#my-svg .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#my-svg .icon-shape p,#my-svg .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#my-svg .icon-shape .label rect,#my-svg .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#my-svg .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#my-svg .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#my-svg .node .neo-node{stroke:#9370DB;}#my-svg [data-look="neo"].node rect,#my-svg [data-look="neo"].cluster rect,#my-svg [data-look="neo"].node polygon{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#my-svg [data-look="neo"].node path{stroke:#9370DB;stroke-width:1px;}#my-svg [data-look="neo"].node .outer-path{filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#my-svg [data-look="neo"].node .neo-line path{stroke:#9370DB;filter:none;}#my-svg [data-look="neo"].node circle{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#my-svg [data-look="neo"].node circle .state-start{fill:#000000;}#my-svg [data-look="neo"].icon-shape .icon{fill:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#my-svg [data-look="neo"].icon-shape .icon-neo path{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#my-svg :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}</style><g><marker id="my-svg_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: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_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: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-pointEnd-margin" class="marker flowchart-v2" viewBox="0 0 11.5 14" refX="11.5" refY="7" markerUnits="userSpaceOnUse" markerWidth="10.5" markerHeight="14" orient="auto"><path d="M 0 0 L 11.5 7 L 0 14 z" class="arrowMarkerPath" style="stroke-width: 0; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-pointStart-margin" class="marker flowchart-v2" viewBox="0 0 11.5 14" refX="1" refY="7" markerUnits="userSpaceOnUse" markerWidth="11.5" markerHeight="14" orient="auto"><polygon points="0,7 11.5,14 11.5,0" class="arrowMarkerPath" style="stroke-width: 0; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_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: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_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: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-circleEnd-margin" class="marker flowchart-v2" viewBox="0 0 10 10" refY="5" refX="12.25" markerUnits="userSpaceOnUse" markerWidth="14" markerHeight="14" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width: 0; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-circleStart-margin" class="marker flowchart-v2" viewBox="0 0 10 10" refX="-2" refY="5" markerUnits="userSpaceOnUse" markerWidth="14" markerHeight="14" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width: 0; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_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: 2; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_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: 2; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-crossEnd-margin" class="marker cross flowchart-v2" viewBox="0 0 15 15" refX="17.7" refY="7.5" markerUnits="userSpaceOnUse" markerWidth="12" markerHeight="12" orient="auto"><path d="M 1,1 L 14,14 M 1,14 L 14,1" class="arrowMarkerPath" style="stroke-width: 2.5;"/></marker><marker id="my-svg_flowchart-v2-crossStart-margin" class="marker cross flowchart-v2" viewBox="0 0 15 15" refX="-3.5" refY="7.5" markerUnits="userSpaceOnUse" markerWidth="12" markerHeight="12" orient="auto"><path d="M 1,1 L 14,14 M 1,14 L 14,1" class="arrowMarkerPath" style="stroke-width: 2.5; stroke-dasharray: 1, 0;"/></marker><g class="root"><g class="clusters"/><g class="edgePaths"><path d="M129.41,218L145.31,201.167C161.211,184.333,193.012,150.667,213.512,133.833C234.013,117,243.214,117,247.814,117L252.414,117" id="my-svg-L_UIChoice_LocalGemma_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_UIChoice_LocalGemma_0" data-points="W3sieCI6MTI5LjQwOTkxMjEwOTM3NSwieSI6MjE4fSx7IngiOjIyNC44MTI1LCJ5IjoxMTd9LHsieCI6MjU2LjQxNDA2MjUsInkiOjExN31d" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M199.813,245L203.979,245C208.146,245,216.479,245,225.897,245C235.315,245,245.818,245,251.069,245L256.32,245" id="my-svg-L_UIChoice_ChatAIChoice_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_UIChoice_ChatAIChoice_0" data-points="W3sieCI6MTk5LjgxMjUsInkiOjI0NX0seyJ4IjoyMjQuODEyNSwieSI6MjQ1fSx7IngiOjI2MC4zMjAzMTI1LCJ5IjoyNDV9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M129.41,272L145.31,288.833C161.211,305.667,193.012,339.333,212.412,356.167C231.813,373,238.813,373,242.313,373L245.813,373" id="my-svg-L_UIChoice_OpenAICustom_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_UIChoice_OpenAICustom_0" data-points="W3sieCI6MTI5LjQwOTkxMjEwOTM3NSwieSI6MjcyfSx7IngiOjIyNC44MTI1LCJ5IjozNzN9LHsieCI6MjQ5LjgxMjUsInkiOjM3M31d" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M494.461,117L499.728,117C504.995,117,515.529,117,536.983,131.39C558.437,145.781,590.812,174.562,607,188.952L623.187,203.342" id="my-svg-L_LocalGemma_BackendProfile_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_LocalGemma_BackendProfile_0" data-points="W3sieCI6NDk0LjQ2MDkzNzUsInkiOjExN30seyJ4Ijo1MjYuMDYyNSwieSI6MTE3fSx7IngiOjYyNi4xNzY2MzU3NDIxODc1LCJ5IjoyMDZ9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M490.555,245L496.473,245C502.391,245,514.227,245,523.645,245C533.063,245,540.063,245,543.563,245L547.063,245" id="my-svg-L_ChatAIChoice_BackendProfile_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_ChatAIChoice_BackendProfile_0" data-points="W3sieCI6NDkwLjU1NDY4NzUsInkiOjI0NX0seyJ4Ijo1MjYuMDYyNSwieSI6MjQ1fSx7IngiOjU1MS4wNjI1LCJ5IjoyNDV9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M501.063,373L505.229,373C509.396,373,517.729,373,538.083,358.61C558.437,344.219,590.812,315.438,607,301.048L623.187,286.658" id="my-svg-L_OpenAICustom_BackendProfile_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_OpenAICustom_BackendProfile_0" data-points="W3sieCI6NTAxLjA2MjUsInkiOjM3M30seyJ4Ijo1MjYuMDYyNSwieSI6MzczfSx7IngiOjYyNi4xNzY2MzU3NDIxODc1LCJ5IjoyODR9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M789.031,245L793.198,245C797.365,245,805.698,245,813.365,245C821.031,245,828.031,245,831.531,245L835.031,245" id="my-svg-L_BackendProfile_OpenAICompat_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_BackendProfile_OpenAICompat_0" data-points="W3sieCI6Nzg5LjAzMTI1LCJ5IjoyNDV9LHsieCI6ODE0LjAzMTI1LCJ5IjoyNDV9LHsieCI6ODM5LjAzMTI1LCJ5IjoyNDV9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M1008.955,194L1028.135,169.5C1047.314,145,1085.673,96,1110.887,71.5C1136.102,47,1148.172,47,1154.207,47L1160.242,47" id="my-svg-L_OpenAICompat_DockerSidecar_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_OpenAICompat_DockerSidecar_0" data-points="W3sieCI6MTAwOC45NTU0OTI0MjQyNDI0LCJ5IjoxOTR9LHsieCI6MTEyNC4wMzEyNSwieSI6NDd9LHsieCI6MTE2NC4yNDIxODc1LCJ5Ijo0N31d" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M1081.96,194L1088.972,190.833C1095.984,187.667,1110.007,181.333,1125.13,178.167C1140.253,175,1156.474,175,1164.585,175L1172.695,175" id="my-svg-L_OpenAICompat_HostOverride_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_OpenAICompat_HostOverride_0" data-points="W3sieCI6MTA4MS45NTk4MjE0Mjg1NzEzLCJ5IjoxOTR9LHsieCI6MTEyNC4wMzEyNSwieSI6MTc1fSx7IngiOjExNzYuNjk1MzEyNSwieSI6MTc1fV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M1081.96,296L1088.972,299.167C1095.984,302.333,1110.007,308.667,1120.519,311.833C1131.031,315,1138.031,315,1141.531,315L1145.031,315" id="my-svg-L_OpenAICompat_GWDG_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_OpenAICompat_GWDG_0" data-points="W3sieCI6MTA4MS45NTk4MjE0Mjg1NzEzLCJ5IjoyOTZ9LHsieCI6MTEyNC4wMzEyNSwieSI6MzE1fSx7IngiOjExNDkuMDMxMjUsInkiOjMxNX1d" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M1006.674,296L1026.234,322.5C1045.793,349,1084.912,402,1112.335,428.5C1139.758,455,1155.484,455,1163.348,455L1171.211,455" id="my-svg-L_OpenAICompat_PaidOpenAI_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_OpenAICompat_PaidOpenAI_0" data-points="W3sieCI6MTAwNi42NzQxMDcxNDI4NTcxLCJ5IjoyOTZ9LHsieCI6MTEyNC4wMzEyNSwieSI6NDU1fSx7IngiOjExNzUuMjEwOTM3NSwieSI6NDU1fV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/></g><g class="edgeLabels"><g class="edgeLabel"><g class="label" data-id="L_UIChoice_LocalGemma_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_UIChoice_ChatAIChoice_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_UIChoice_OpenAICustom_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_LocalGemma_BackendProfile_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_ChatAIChoice_BackendProfile_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_OpenAICustom_BackendProfile_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_BackendProfile_OpenAICompat_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_OpenAICompat_DockerSidecar_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_OpenAICompat_HostOverride_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_OpenAICompat_GWDG_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_OpenAICompat_PaidOpenAI_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"></span></div></foreignObject></g></g></g><g class="nodes"><g class="node default" id="my-svg-flowchart-UIChoice-0" data-look="classic" transform="translate(103.90625, 245)"><rect class="basic label-container" style="" x="-95.90625" y="-27" width="191.8125" height="54"/><g class="label" style="" transform="translate(-65.90625, -12)"><rect/><foreignObject width="131.8125" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>UI Provider Choice</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-LocalGemma-1" data-look="classic" transform="translate(375.4375, 117)"><rect class="basic label-container" style="" x="-119.0234375" y="-39" width="238.046875" height="78"/><g class="label" style="" transform="translate(-89.0234375, -24)"><rect/><foreignObject width="178.046875" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>Local Gemma<br />llm_profile local_gemma</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-ChatAIChoice-2" data-look="classic" transform="translate(375.4375, 245)"><rect class="basic label-container" style="" x="-115.1171875" y="-39" width="230.234375" height="78"/><g class="label" style="" transform="translate(-85.1171875, -24)"><rect/><foreignObject width="170.234375" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>Academic Cloud Chat AI<br />llm_profile chat_ai</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-OpenAICustom-3" data-look="classic" transform="translate(375.4375, 373)"><rect class="basic label-container" style="" x="-125.625" y="-39" width="251.25" height="78"/><g class="label" style="" transform="translate(-95.625, -24)"><rect/><foreignObject width="191.25" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>Use my OpenAI key<br />llm_profile openai_custom</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-BackendProfile-4" data-look="classic" transform="translate(670.046875, 245)"><rect class="basic label-container" style="" x="-118.984375" y="-39" width="237.96875" height="78"/><g class="label" style="" transform="translate(-88.984375, -24)"><rect/><foreignObject width="177.96875" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>Backend profile mapping<br />services/llm/profiles.py</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-OpenAICompat-5" data-look="classic" transform="translate(969.03125, 245)"><rect class="basic label-container" style="" x="-130" y="-51" width="260" height="102"/><g class="label" style="" transform="translate(-100, -36)"><rect/><foreignObject width="200" height="72"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>OpenAI-compatible provider<br />chat completions API</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-DockerSidecar-6" data-look="classic" transform="translate(1279.03125, 47)"><rect class="basic label-container" style="" x="-114.7890625" y="-39" width="229.578125" height="78"/><g class="label" style="" transform="translate(-84.7890625, -24)"><rect/><foreignObject width="169.578125" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>Default or CUDA Docker<br />local-llm service</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-HostOverride-7" data-look="classic" transform="translate(1279.03125, 175)"><rect class="basic label-container" style="" x="-102.3359375" y="-39" width="204.671875" height="78"/><g class="label" style="" transform="translate(-72.3359375, -24)"><rect/><foreignObject width="144.671875" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>Host LLM override<br />host.docker.internal</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-GWDG-8" data-look="classic" transform="translate(1279.03125, 315)"><rect class="basic label-container" style="" x="-130" y="-51" width="260" height="102"/><g class="label" style="" transform="translate(-100, -36)"><rect/><foreignObject width="200" height="72"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>GWDG Chat AI<br />Chat AI base URL and API key</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-PaidOpenAI-9" data-look="classic" transform="translate(1279.03125, 455)"><rect class="basic label-container" style="" x="-103.8203125" y="-39" width="207.640625" height="78"/><g class="label" style="" transform="translate(-73.8203125, -24)"><rect/><foreignObject width="147.640625" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>OpenAI<br />runtime API key only</p></span></div></foreignObject></g></g></g></g></g><defs><filter id="my-svg-drop-shadow" height="130%" width="130%"><feDropShadow dx="4" dy="4" stdDeviation="0" flood-opacity="0.06" flood-color="#000000"/></filter></defs><defs><filter id="my-svg-drop-shadow-small" height="150%" width="150%"><feDropShadow dx="2" dy="2" stdDeviation="0" flood-opacity="0.06" flood-color="#000000"/></filter></defs></svg>
\ No newline at end of file
services:
local-llm:
image: ${LLAMA_CPP_CUDA_IMAGE:-ghcr.io/ggml-org/llama.cpp:server-cuda}
gpus:
- driver: nvidia
count: all
capabilities:
- gpu
environment:
NVIDIA_VISIBLE_DEVICES: all
NVIDIA_DRIVER_CAPABILITIES: compute,utility
command:
- -m
- /models/gemma-4-E4B-it-Q4_K_M.gguf
- --host
- 0.0.0.0
- --port
- "8080"
- -c
- "4096"
- -np
- "1"
- -ngl
- "99"
services:
backend:
environment:
LLM_BASE_URL: ${HOST_LLM_BASE_URL:-http://host.docker.internal:8080/v1}
LOCAL_LLM_BASE_URL: ${HOST_LLM_BASE_URL:-http://host.docker.internal:8080/v1}
LOCAL_LLM_MODEL: ${HOST_LLM_MODEL:-gemma-4-E4B-it-Q4_K_M.gguf}
LLM_MODEL: ${HOST_LLM_MODEL:-gemma-4-E4B-it-Q4_K_M.gguf}
local-llm:
image: busybox:1.36
command:
- sh
- -c
- while true; do sleep 3600; done
ports: []
volumes: []
services:
backend:
build:
context: ./asyst-backend
ports:
- "8000:8000"
environment:
CORS_ORIGINS: http://localhost:5173,http://127.0.0.1:5173
DATABASE_URL: sqlite:////data/asyst.db
UPLOAD_DIR: /data/uploads
LLM_PROVIDER: openai_compatible
LLM_BASE_URL: http://local-llm:8080/v1
LLM_MODEL: gemma-4-E4B-it-GGUF
LLM_PROMPT_STRATEGY: p1_reference_zero_shot
LLM_MAX_TOKENS: "1024"
LLM_TEMPERATURE: "0"
LLM_TIMEOUT_SECONDS: "180"
LLM_RETRY_MAX_ATTEMPTS: "60"
LLM_RETRY_INITIAL_SECONDS: "5"
LLM_RETRY_MAX_SECONDS: "5"
LLM_REQUESTS_PER_MINUTE: "10"
LLM_API_KEY: local-not-required
LOCAL_LLM_BASE_URL: http://local-llm:8080/v1
LOCAL_LLM_MODEL: gemma-4-E4B-it-GGUF
LOCAL_LLM_API_KEY: local-not-required
CHAT_AI_BASE_URL: https://chat-ai.academiccloud.de/v1
CHAT_AI_MODEL: gemma-4-31b-it
CHAT_AI_API_KEY: ${CHAT_AI_API_KEY:-}
volumes:
- asyst-backend-data:/data
depends_on:
- local-llm
frontend:
build:
context: ./asyst-ui
ports:
- "5173:5173"
environment:
VITE_API_BASE_URL: http://localhost:8000
depends_on:
- backend
local-llm:
image: ghcr.io/ggml-org/llama.cpp:server
ports:
- "8080:8080"
volumes:
- ${LOCAL_LLM_MODEL_DIR:-./models}:/models:ro
command:
- -m
- /models/gemma-4-E4B-it-Q4_K_M.gguf
- --host
- 0.0.0.0
- --port
- "8080"
- -c
- "4096"
- -np
- "1"
- -ngl
- "0"
volumes:
asyst-backend-data:
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment