adaptive-memory-multi-model-router 2.12.0 → 2.12.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env +2 -0
- package/.github/ISSUE_TEMPLATE/bug_report.md +13 -40
- package/.github/ISSUE_TEMPLATE/feature_request.md +10 -27
- package/.github/workflows/ci.yml +8 -49
- package/.github/workflows/pages.yml +37 -0
- package/Awesome-LLM/LICENSE.md +121 -0
- package/Awesome-LLM/README.md +625 -0
- package/Awesome-LLM/contributing.md +24 -0
- package/Awesome-LLM/paper_list/RLHF.md +1 -0
- package/Awesome-LLM/paper_list/Retrieval_Augmented_Generation.md +6 -0
- package/Awesome-LLM/paper_list/acceleration.md +10 -0
- package/Awesome-LLM/paper_list/alignment.md +20 -0
- package/Awesome-LLM/paper_list/application.md +19 -0
- package/Awesome-LLM/paper_list/augmentation.md +14 -0
- package/Awesome-LLM/paper_list/chain_of_thougt.md +16 -0
- package/Awesome-LLM/paper_list/code_pretraining.md +0 -0
- package/Awesome-LLM/paper_list/detection.md +11 -0
- package/Awesome-LLM/paper_list/evaluation.md +64 -0
- package/Awesome-LLM/paper_list/in_context_learning.md +4 -0
- package/Awesome-LLM/paper_list/instruction-tuning.md +35 -0
- package/Awesome-LLM/paper_list/moe.md +0 -0
- package/Awesome-LLM/paper_list/prompt_learning.md +15 -0
- package/Awesome-LLM/resources/DeepSpeed_light.svg +27 -0
- package/Awesome-LLM/resources/alpa-logo-cropped.png +0 -0
- package/Awesome-LLM/resources/colossal-ai_logo_vertical.png +0 -0
- package/Awesome-LLM/resources/creepy_llm.jpeg +0 -0
- package/Awesome-LLM/resources/image8.gif +0 -0
- package/Awesome-LLM/resources/jax_logo_250px.png +0 -0
- package/Awesome-LLM/resources/logo.png +0 -0
- package/Awesome-LLM/resources/nvidia.png +0 -0
- package/Awesome-LLM/resources/tensorflow.png +0 -0
- package/Awesome-LLM/resources//345/244/247/345/236/213/350/257/255/350/250/200/346/250/241/345/236/213/347/232/204/350/203/275/345/212/233/345/210/206/346/236/220/344/270/216/345/272/224/347/224/250 - 30min.pdf +0 -0
- package/README.md +5 -4
- package/SUBMISSIONS.md +43 -0
- package/assets/chart-cost-v2.svg +91 -0
- package/assets/chart-cost-v3.svg +143 -0
- package/assets/chart-features-v2.svg +132 -0
- package/assets/chart-features-v3.svg +211 -0
- package/assets/chart-growth-v2.svg +122 -0
- package/assets/chart-growth-v3.svg +189 -0
- package/assets/cost-simple.svg +64 -0
- package/assets/growth-simple.svg +69 -0
- package/assets/hero-diagram.svg +81 -0
- package/assets/logo-new.svg +21 -0
- package/assets/social-preview-new.svg +100 -0
- package/assets/social-v2.svg +130 -0
- package/assets/social-v3.svg +212 -0
- package/awesome-ai-gateways/CONTRIBUTING.md +49 -0
- package/awesome-ai-gateways/LICENSE +3 -0
- package/awesome-ai-gateways/README.md +190 -0
- package/awesome-selfhosted/.github/ISSUE_TEMPLATE/config.yml +5 -0
- package/awesome-selfhosted/.github/PULL_REQUEST_TEMPLATE.md +1 -0
- package/awesome-selfhosted/LICENSE +376 -0
- package/awesome-selfhosted/README.md +2303 -0
- package/awesome-selfhosted/_static/awesome.png +0 -0
- package/awesome-selfhosted/non-free.md +377 -0
- package/demo-new.tape +71 -0
- package/demo-real.sh +198 -0
- package/demo-simple.tape +205 -0
- package/demo.html +520 -0
- package/demo.tape +259 -0
- package/dist/cli/setupWizard.d.ts +136 -0
- package/dist/cli/setupWizard.js +142 -165
- package/dist/cli/setupWizard.js.map +1 -0
- package/dist/cli/tui.js +152 -0
- package/dist/providers/providerConfig.js +28 -1
- package/dist/providers/providerConfig.js.map +1 -1
- package/dist/server/proxyServer.js +15 -0
- package/docs/QUICK_START.md +43 -0
- package/docs/USE_CASES.md +59 -0
- package/docs/demo-auto.html +264 -0
- package/docs/demo.html +416 -0
- package/docs/index.html +112 -599
- package/index.html +667 -0
- package/package.json +26 -169
- package/src/providers/providerConfig.ts +29 -1
- package/docs/assets/cost-comparison.svg +0 -134
- package/docs/assets/growth-chart-animated.svg +0 -76
- package/docs/assets/og-banner.svg +0 -194
- package/docs/assets/social-preview.svg +0 -194
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 630" width="1200" height="630">
|
|
2
|
+
<defs>
|
|
3
|
+
<linearGradient id="bgGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
|
4
|
+
<stop offset="0%" stop-color="#0a0f1c"/>
|
|
5
|
+
<stop offset="50%" stop-color="#0f172a"/>
|
|
6
|
+
<stop offset="100%" stop-color="#1e1b4b"/>
|
|
7
|
+
</linearGradient>
|
|
8
|
+
<linearGradient id="heroGrad" x1="0%" y1="0%" x2="100%" y2="0%">
|
|
9
|
+
<stop offset="0%" stop-color="#6366f1"/>
|
|
10
|
+
<stop offset="50%" stop-color="#8b5cf6"/>
|
|
11
|
+
<stop offset="100%" stop-color="#06b6d4"/>
|
|
12
|
+
</linearGradient>
|
|
13
|
+
<linearGradient id="a3mGrad" x1="0%" y1="0%" x2="0%" y2="100%">
|
|
14
|
+
<stop offset="0%" stop-color="#10b981"/>
|
|
15
|
+
<stop offset="100%" stop-color="#059669"/>
|
|
16
|
+
</linearGradient>
|
|
17
|
+
<linearGradient id="glowGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
|
18
|
+
<stop offset="0%" stop-color="#6366f1" stop-opacity="0.3"/>
|
|
19
|
+
<stop offset="100%" stop-color="#06b6d4" stop-opacity="0.1"/>
|
|
20
|
+
</linearGradient>
|
|
21
|
+
|
|
22
|
+
<!-- Filters -->
|
|
23
|
+
<filter id="softGlow" x="-50%" y="-50%" width="200%" height="200%">
|
|
24
|
+
<feGaussianBlur stdDeviation="8" result="blur"/>
|
|
25
|
+
<feMerge><feMergeNode in="blur"/><feMergeNode in="SourceGraphic"/></feMerge>
|
|
26
|
+
</filter>
|
|
27
|
+
<filter id="textGlow" x="-20%" y="-20%" width="140%" height="140%">
|
|
28
|
+
<feGaussianBlur stdDeviation="3" result="blur"/>
|
|
29
|
+
<feMerge><feMergeNode in="blur"/><feMergeNode in="SourceGraphic"/></feMerge>
|
|
30
|
+
</filter>
|
|
31
|
+
|
|
32
|
+
<!-- Grid pattern -->
|
|
33
|
+
<pattern id="gridPattern" width="60" height="60" patternUnits="userSpaceOnUse">
|
|
34
|
+
<path d="M 60 0 L 0 0 0 60" fill="none" stroke="#1f2937" stroke-width="0.5" opacity="0.3"/>
|
|
35
|
+
</pattern>
|
|
36
|
+
</defs>
|
|
37
|
+
|
|
38
|
+
<!-- Background -->
|
|
39
|
+
<rect width="1200" height="630" fill="url(#bgGrad)"/>
|
|
40
|
+
<rect width="1200" height="630" fill="url(#gridPattern)"/>
|
|
41
|
+
|
|
42
|
+
<!-- Ambient glow -->
|
|
43
|
+
<ellipse cx="600" cy="300" rx="400" ry="250" fill="url(#glowGrad)" filter="url(#softGlow)"/>
|
|
44
|
+
|
|
45
|
+
<!-- Logo area -->
|
|
46
|
+
<g transform="translate(80, 60)">
|
|
47
|
+
<rect x="0" y="0" width="80" height="80" rx="16" fill="url(#heroGrad)"/>
|
|
48
|
+
<text x="40" y="55" text-anchor="middle" fill="#fff" font-family="system-ui,sans-serif" font-size="28" font-weight="800">A3</text>
|
|
49
|
+
</g>
|
|
50
|
+
|
|
51
|
+
<!-- Hero text -->
|
|
52
|
+
<g transform="translate(200, 85)">
|
|
53
|
+
<text x="0" y="32" fill="#f9fafb" font-family="system-ui,-apple-system,sans-serif" font-size="42" font-weight="800" filter="url(#textGlow)">A3M Router</text>
|
|
54
|
+
<text x="0" y="65" fill="url(#heroGrad)" font-family="system-ui,-apple-system,sans-serif" font-size="22" font-weight="500">One prompt in. The right model out.</text>
|
|
55
|
+
</g>
|
|
56
|
+
|
|
57
|
+
<!-- Routing Flow -->
|
|
58
|
+
<g transform="translate(100, 180)">
|
|
59
|
+
<!-- Prompt box -->
|
|
60
|
+
<rect x="0" y="20" width="200" height="90" rx="12" fill="rgba(99,102,241,0.1)" stroke="#6366f1" stroke-width="2"/>
|
|
61
|
+
<text x="100" y="55" text-anchor="middle" fill="#9ca3af" font-family="system-ui,sans-serif" font-size="14">YOUR PROMPT</text>
|
|
62
|
+
<text x="100" y="85" text-anchor="middle" fill="#e5e7eb" font-family="system-ui,sans-serif" font-size="16">"Write Python sort"</text>
|
|
63
|
+
|
|
64
|
+
<!-- Arrow 1 -->
|
|
65
|
+
<path d="M210,65 L300,65" stroke="url(#heroGrad)" stroke-width="3" fill="none" stroke-linecap="round"/>
|
|
66
|
+
<polygon points="300,57 315,65 300,73" fill="#06b6d4"/>
|
|
67
|
+
|
|
68
|
+
<!-- A3M box -->
|
|
69
|
+
<rect x="325" y="0" width="140" height="130" rx="12" fill="#6366f1" fill-opacity="0.2" stroke="#6366f1" stroke-width="2"/>
|
|
70
|
+
<text x="395" y="50" text-anchor="middle" fill="#fff" font-family="system-ui,sans-serif" font-size="32" font-weight="800">A3M</text>
|
|
71
|
+
<text x="395" y="80" text-anchor="middle" fill="#a78bfa" font-family="system-ui,sans-serif" font-size="16">Router</text>
|
|
72
|
+
<text x="395" y="110" text-anchor="middle" fill="#06b6d4" font-family="system-ui,sans-serif" font-size="12">12 signals →</text>
|
|
73
|
+
|
|
74
|
+
<!-- Arrow 2 -->
|
|
75
|
+
<path d="M475,65 L565,65" stroke="url(#heroGrad)" stroke-width="3" fill="none" stroke-linecap="round"/>
|
|
76
|
+
<polygon points="565,57 580,65 565,73" fill="#06b6d4"/>
|
|
77
|
+
|
|
78
|
+
<!-- Result box -->
|
|
79
|
+
<rect x="590" y="20" width="200" height="90" rx="12" fill="rgba(16,185,129,0.1)" stroke="#10b981" stroke-width="2"/>
|
|
80
|
+
<text x="690" y="55" text-anchor="middle" fill="#9ca3af" font-family="system-ui,sans-serif" font-size="14">BEST MODEL</text>
|
|
81
|
+
<text x="690" y="85" text-anchor="middle" fill="#10b981" font-family="system-ui,sans-serif" font-size="16">Groq (free, fast)</text>
|
|
82
|
+
</g>
|
|
83
|
+
|
|
84
|
+
<!-- Metrics row -->
|
|
85
|
+
<g transform="translate(80, 360)">
|
|
86
|
+
<!-- Metric 1 -->
|
|
87
|
+
<g transform="translate(0, 0)">
|
|
88
|
+
<rect x="0" y="0" width="165" height="100" rx="16" fill="rgba(16,185,129,0.08)" stroke="#10b981" stroke-width="1.5"/>
|
|
89
|
+
<text x="82" y="40" text-anchor="middle" fill="#10b981" font-family="system-ui,sans-serif" font-size="36" font-weight="800" filter="url(#textGlow)">100%</text>
|
|
90
|
+
<text x="82" y="70" text-anchor="middle" fill="#9ca3af" font-family="system-ui,sans-serif" font-size="14">Routing Accuracy</text>
|
|
91
|
+
</g>
|
|
92
|
+
|
|
93
|
+
<!-- Metric 2 -->
|
|
94
|
+
<g transform="translate(195, 0)">
|
|
95
|
+
<rect x="0" y="0" width="165" height="100" rx="16" fill="rgba(6,182,212,0.08)" stroke="#06b6d4" stroke-width="1.5"/>
|
|
96
|
+
<text x="82" y="40" text-anchor="middle" fill="#06b6d4" font-family="system-ui,sans-serif" font-size="36" font-weight="800" filter="url(#textGlow)">62%</text>
|
|
97
|
+
<text x="82" y="70" text-anchor="middle" fill="#9ca3af" font-family="system-ui,sans-serif" font-size="14">Cost Savings</text>
|
|
98
|
+
</g>
|
|
99
|
+
|
|
100
|
+
<!-- Metric 3 -->
|
|
101
|
+
<g transform="translate(390, 0)">
|
|
102
|
+
<rect x="0" y="0" width="165" height="100" rx="16" fill="rgba(139,92,246,0.08)" stroke="#8b5cf6" stroke-width="1.5"/>
|
|
103
|
+
<text x="82" y="40" text-anchor="middle" fill="#8b5cf6" font-family="system-ui,sans-serif" font-size="36" font-weight="800" filter="url(#textGlow)">100%</text>
|
|
104
|
+
<text x="82" y="70" text-anchor="middle" fill="#9ca3af" font-family="system-ui,sans-serif" font-size="14">Fault Pass Rate</text>
|
|
105
|
+
</g>
|
|
106
|
+
|
|
107
|
+
<!-- Metric 4 -->
|
|
108
|
+
<g transform="translate(585, 0)">
|
|
109
|
+
<rect x="0" y="0" width="165" height="100" rx="16" fill="rgba(244,114,182,0.08)" stroke="#f472b6" stroke-width="1.5"/>
|
|
110
|
+
<text x="82" y="40" text-anchor="middle" fill="#f472b6" font-family="system-ui,sans-serif" font-size="36" font-weight="800" filter="url(#textGlow)">47+</text>
|
|
111
|
+
<text x="82" y="70" text-anchor="middle" fill="#9ca3af" font-family="system-ui,sans-serif" font-size="14">Providers</text>
|
|
112
|
+
</g>
|
|
113
|
+
|
|
114
|
+
<!-- Metric 5 -->
|
|
115
|
+
<g transform="translate(780, 0)">
|
|
116
|
+
<rect x="0" y="0" width="165" height="100" rx="16" fill="rgba(99,102,241,0.08)" stroke="#6366f1" stroke-width="1.5"/>
|
|
117
|
+
<text x="82" y="40" text-anchor="middle" fill="#a78bfa" font-family="system-ui,sans-serif" font-size="36" font-weight="800" filter="url(#textGlow)">19.5KB</text>
|
|
118
|
+
<text x="82" y="70" text-anchor="middle" fill="#9ca3af" font-family="system-ui,sans-serif" font-size="14">Package Size</text>
|
|
119
|
+
</g>
|
|
120
|
+
</g>
|
|
121
|
+
|
|
122
|
+
<!-- CTA Button -->
|
|
123
|
+
<g transform="translate(350, 500)">
|
|
124
|
+
<rect x="0" y="0" width="500" height="65" rx="32" fill="url(#heroGrad)" filter="url(#softGlow)"/>
|
|
125
|
+
<text x="250" y="42" text-anchor="middle" fill="#fff" font-family="system-ui,sans-serif" font-size="20" font-weight="600">npm install adaptive-memory-multi-model-router</text>
|
|
126
|
+
</g>
|
|
127
|
+
|
|
128
|
+
<!-- Footer -->
|
|
129
|
+
<text x="600" y="600" text-anchor="middle" fill="#4b5563" font-family="system-ui,sans-serif" font-size="13">Open-source • Zero ML • No GPU • MIT License</text>
|
|
130
|
+
</svg>
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 675" width="1200" height="675">
|
|
2
|
+
<defs>
|
|
3
|
+
<!-- Background gradient -->
|
|
4
|
+
<linearGradient id="bg" x1="0%" y1="0%" x2="100%" y2="100%">
|
|
5
|
+
<stop offset="0%" stop-color="#0a0a0f"/>
|
|
6
|
+
<stop offset="30%" stop-color="#0f0f1a"/>
|
|
7
|
+
<stop offset="70%" stop-color="#12121f"/>
|
|
8
|
+
<stop offset="100%" stop-color="#1a1a2e"/>
|
|
9
|
+
</linearGradient>
|
|
10
|
+
|
|
11
|
+
<!-- Hero gradient -->
|
|
12
|
+
<linearGradient id="heroGrad" x1="0%" y1="0%" x2="100%" y2="0%">
|
|
13
|
+
<stop offset="0%" stop-color="#6366f1"/>
|
|
14
|
+
<stop offset="33%" stop-color="#7c3aed"/>
|
|
15
|
+
<stop offset="66%" stop-color="#8b5cf6"/>
|
|
16
|
+
<stop offset="100%" stop-color="#06b6d4"/>
|
|
17
|
+
</linearGradient>
|
|
18
|
+
|
|
19
|
+
<!-- Success gradient -->
|
|
20
|
+
<linearGradient id="successGrad" x1="0%" y1="0%" x2="100%" y2="0%">
|
|
21
|
+
<stop offset="0%" stop-color="#10b981">
|
|
22
|
+
<animate attributeName="stop-color" values="#10b981;#34d399;#10b981" dur="2.5s" repeatCount="indefinite"/>
|
|
23
|
+
</stop>
|
|
24
|
+
<stop offset="100%" stop-color="#06b6d4"/>
|
|
25
|
+
</linearGradient>
|
|
26
|
+
|
|
27
|
+
<!-- Box gradients -->
|
|
28
|
+
<linearGradient id="inputGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
|
29
|
+
<stop offset="0%" stop-color="#6366f1" stop-opacity="0.2"/>
|
|
30
|
+
<stop offset="100%" stop-color="#6366f1" stop-opacity="0.05"/>
|
|
31
|
+
</linearGradient>
|
|
32
|
+
|
|
33
|
+
<linearGradient id="a3mBoxGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
|
34
|
+
<stop offset="0%" stop-color="#6366f1" stop-opacity="0.3"/>
|
|
35
|
+
<stop offset="100%" stop-color="#8b5cf6" stop-opacity="0.15"/>
|
|
36
|
+
</linearGradient>
|
|
37
|
+
|
|
38
|
+
<linearGradient id="outputGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
|
39
|
+
<stop offset="0%" stop-color="#10b981" stop-opacity="0.2"/>
|
|
40
|
+
<stop offset="100%" stop-color="#10b981" stop-opacity="0.05"/>
|
|
41
|
+
</linearGradient>
|
|
42
|
+
|
|
43
|
+
<!-- Glow filters -->
|
|
44
|
+
<filter id="glowSoft" x="-30%" y="-30%" width="160%" height="160%">
|
|
45
|
+
<feGaussianBlur stdDeviation="6" result="blur"/>
|
|
46
|
+
<feMerge><feMergeNode in="blur"/><feMergeNode in="SourceGraphic"/></feMerge>
|
|
47
|
+
</filter>
|
|
48
|
+
|
|
49
|
+
<filter id="glowMedium" x="-50%" y="-50%" width="200%" height="200%">
|
|
50
|
+
<feGaussianBlur stdDeviation="10" result="blur"/>
|
|
51
|
+
<feMerge><feMergeNode in="blur"/><feMergeNode in="SourceGraphic"/></feMerge>
|
|
52
|
+
</filter>
|
|
53
|
+
|
|
54
|
+
<filter id="glowIntense" x="-100%" y="-100%" width="300%" height="300%">
|
|
55
|
+
<feGaussianBlur stdDeviation="15" result="blur"/>
|
|
56
|
+
<feMerge><feMergeNode in="blur"/><feMergeNode in="SourceGraphic"/></feMerge>
|
|
57
|
+
</filter>
|
|
58
|
+
|
|
59
|
+
<!-- Grid pattern -->
|
|
60
|
+
<pattern id="grid" width="60" height="60" patternUnits="userSpaceOnUse">
|
|
61
|
+
<path d="M 60 0 L 0 0 0 60" fill="none" stroke="#ffffff" stroke-width="0.5" opacity="0.03"/>
|
|
62
|
+
</pattern>
|
|
63
|
+
</defs>
|
|
64
|
+
|
|
65
|
+
<style>
|
|
66
|
+
@keyframes fadeIn { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }
|
|
67
|
+
@keyframes slideIn { from { opacity: 0; transform: translateX(-30px); } to { opacity: 1; transform: translateX(0); } }
|
|
68
|
+
@keyframes pulse { 0%, 100% { transform: scale(1); filter: brightness(1); } 50% { transform: scale(1.02); filter: brightness(1.1); } }
|
|
69
|
+
@keyframes glow { 0%, 100% { filter: url(#glowSoft); } 50% { filter: url(#glowMedium); } }
|
|
70
|
+
@keyframes textGlow { 0%, 100% { text-shadow: 0 0 20px rgba(99,102,241,0.5); } 50% { text-shadow: 0 0 40px rgba(99,102,241,0.8); } }
|
|
71
|
+
@keyframes flowPulse { 0%, 100% { stroke-dashoffset: 0; } 50% { stroke-dashoffset: -20; } }
|
|
72
|
+
.header { animation: fadeIn 0.8s ease-out; }
|
|
73
|
+
.logo { animation: slideIn 0.6s ease-out 0.1s both; }
|
|
74
|
+
.hero-text { animation: fadeIn 0.8s ease-out 0.2s both; }
|
|
75
|
+
.flow-box { animation: fadeIn 0.6s ease-out; animation-fill-mode: both; }
|
|
76
|
+
.input-box { animation: fadeIn 0.6s ease-out 0.3s both; }
|
|
77
|
+
.a3m-box { animation: fadeIn 0.6s ease-out 0.4s both; }
|
|
78
|
+
.output-box { animation: fadeIn 0.6s ease-out 0.5s both; }
|
|
79
|
+
.metric { animation: fadeIn 0.6s ease-out; animation-fill-mode: both; }
|
|
80
|
+
.metric:nth-child(1) { animation-delay: 0.6s; }
|
|
81
|
+
.metric:nth-child(2) { animation-delay: 0.7s; }
|
|
82
|
+
.metric:nth-child(3) { animation-delay: 0.8s; }
|
|
83
|
+
.metric:nth-child(4) { animation-delay: 0.9s; }
|
|
84
|
+
.metric:nth-child(5) { animation-delay: 1.0s; }
|
|
85
|
+
.cta { animation: fadeIn 0.6s ease-out 1.1s both; }
|
|
86
|
+
.cta:hover { transform: scaleY(1.05); }
|
|
87
|
+
.arrow { animation: flowPulse 1.5s ease-in-out infinite; }
|
|
88
|
+
</style>
|
|
89
|
+
|
|
90
|
+
<!-- Background -->
|
|
91
|
+
<rect width="1200" height="675" fill="url(#bg)"/>
|
|
92
|
+
<rect width="1200" height="675" fill="url(#grid)"/>
|
|
93
|
+
|
|
94
|
+
<!-- Ambient glows -->
|
|
95
|
+
<ellipse cx="600" cy="300" rx="500" ry="300" fill="#6366f1" opacity="0.06" filter="url(#glowMedium)">
|
|
96
|
+
<animate attributeName="opacity" values="0.06;0.1;0.06" dur="4s" repeatCount="indefinite"/>
|
|
97
|
+
</ellipse>
|
|
98
|
+
<ellipse cx="600" cy="450" rx="400" ry="150" fill="#10b981" opacity="0.04" filter="url(#glowSoft)"/>
|
|
99
|
+
|
|
100
|
+
<!-- Header section -->
|
|
101
|
+
<g class="header">
|
|
102
|
+
<!-- Logo mark -->
|
|
103
|
+
<g class="logo" transform="translate(80, 55)">
|
|
104
|
+
<rect x="0" y="0" width="90" height="90" rx="18" fill="url(#heroGrad)" filter="url(#glowSoft)"/>
|
|
105
|
+
<text x="45" y="60" text-anchor="middle" fill="#ffffff" font-family="system-ui,-apple-system,sans-serif" font-size="36" font-weight="800">A3</text>
|
|
106
|
+
<circle cx="70" cy="70" r="8" fill="#10b981">
|
|
107
|
+
<animate attributeName="r" values="8;10;8" dur="2s" repeatCount="indefinite"/>
|
|
108
|
+
<animate attributeName="opacity" values="1;0.7;1" dur="2s" repeatCount="indefinite"/>
|
|
109
|
+
</circle>
|
|
110
|
+
</g>
|
|
111
|
+
|
|
112
|
+
<!-- Title -->
|
|
113
|
+
<g class="hero-text" transform="translate(200, 70)">
|
|
114
|
+
<text x="0" y="38" fill="#ffffff" font-family="system-ui,-apple-system,sans-serif" font-size="48" font-weight="800" filter="url(#glowSoft)" style="animation: textGlow 3s ease-in-out infinite;">
|
|
115
|
+
A3M Router
|
|
116
|
+
</text>
|
|
117
|
+
<text x="0" y="75" fill="url(#heroGrad)" font-family="system-ui,-apple-system,sans-serif" font-size="24" font-weight="500">
|
|
118
|
+
One prompt in. The right model out.
|
|
119
|
+
</text>
|
|
120
|
+
</g>
|
|
121
|
+
</g>
|
|
122
|
+
|
|
123
|
+
<!-- Routing Flow Diagram -->
|
|
124
|
+
<g transform="translate(100, 220)">
|
|
125
|
+
<!-- Input box -->
|
|
126
|
+
<g class="input-box" filter="url(#glowSoft)">
|
|
127
|
+
<rect x="0" y="15" width="220" height="100" rx="14" fill="url(#inputGrad)" stroke="#6366f1" stroke-width="2"/>
|
|
128
|
+
<text x="110" y="55" text-anchor="middle" fill="#8888aa" font-family="system-ui,sans-serif" font-size="14">YOUR PROMPT</text>
|
|
129
|
+
<text x="110" y="90" text-anchor="middle" fill="#e5e7eb" font-family="system-ui,sans-serif" font-size="18">"Write Python sort"</text>
|
|
130
|
+
</g>
|
|
131
|
+
|
|
132
|
+
<!-- Arrow 1 -->
|
|
133
|
+
<g class="arrow">
|
|
134
|
+
<path d="M230,65 L330,65" stroke="url(#heroGrad)" stroke-width="4" fill="none" stroke-linecap="round" stroke-dasharray="8,8"/>
|
|
135
|
+
<polygon points="330,57 348,65 330,73" fill="#06b6d4">
|
|
136
|
+
<animate attributeName="opacity" values="0.8;1;0.8" dur="1s" repeatCount="indefinite"/>
|
|
137
|
+
</polygon>
|
|
138
|
+
</g>
|
|
139
|
+
|
|
140
|
+
<!-- A3M Router box -->
|
|
141
|
+
<g class="a3m-box" filter="url(#glowMedium)">
|
|
142
|
+
<rect x="360" y="0" width="160" height="130" rx="14" fill="url(#a3mBoxGrad)" stroke="#6366f1" stroke-width="2.5"/>
|
|
143
|
+
<text x="440" y="50" text-anchor="middle" fill="#ffffff" font-family="system-ui,sans-serif" font-size="36" font-weight="800">A3M</text>
|
|
144
|
+
<text x="440" y="82" text-anchor="middle" fill="#a78bfa" font-family="system-ui,sans-serif" font-size="18">Router</text>
|
|
145
|
+
<text x="440" y="115" text-anchor="middle" fill="#06b6d4" font-family="system-ui,sans-serif" font-size="13">12 signals analyzed</text>
|
|
146
|
+
</g>
|
|
147
|
+
|
|
148
|
+
<!-- Arrow 2 -->
|
|
149
|
+
<g class="arrow">
|
|
150
|
+
<path d="M530,65 L630,65" stroke="url(#heroGrad)" stroke-width="4" fill="none" stroke-linecap="round" stroke-dasharray="8,8"/>
|
|
151
|
+
<polygon points="630,57 648,65 630,73" fill="#06b6d4">
|
|
152
|
+
<animate attributeName="opacity" values="0.8;1;0.8" dur="1s" repeatCount="indefinite" begin="0.5s"/>
|
|
153
|
+
</polygon>
|
|
154
|
+
</g>
|
|
155
|
+
|
|
156
|
+
<!-- Output box -->
|
|
157
|
+
<g class="output-box" filter="url(#glowSoft)">
|
|
158
|
+
<rect x="660" y="15" width="220" height="100" rx="14" fill="url(#outputGrad)" stroke="#10b981" stroke-width="2"/>
|
|
159
|
+
<text x="770" y="55" text-anchor="middle" fill="#8888aa" font-family="system-ui,sans-serif" font-size="14">BEST MODEL</text>
|
|
160
|
+
<text x="770" y="90" text-anchor="middle" fill="#10b981" font-family="system-ui,sans-serif" font-size="18" font-weight="600">Groq (free, fast)</text>
|
|
161
|
+
</g>
|
|
162
|
+
</g>
|
|
163
|
+
|
|
164
|
+
<!-- Metrics row -->
|
|
165
|
+
<g transform="translate(80, 400)">
|
|
166
|
+
<!-- Metric 1 -->
|
|
167
|
+
<g class="metric" transform="translate(0, 0)">
|
|
168
|
+
<rect x="0" y="0" width="180" height="100" rx="14" fill="#10b981" fill-opacity="0.08" stroke="#10b981" stroke-width="1.5" filter="url(#glowSoft)"/>
|
|
169
|
+
<text x="90" y="40" text-anchor="middle" fill="#10b981" font-family="system-ui,sans-serif" font-size="36" font-weight="800">100%</text>
|
|
170
|
+
<text x="90" y="70" text-anchor="middle" fill="#9999bb" font-family="system-ui,sans-serif" font-size="14">Routing Accuracy</text>
|
|
171
|
+
</g>
|
|
172
|
+
|
|
173
|
+
<!-- Metric 2 -->
|
|
174
|
+
<g class="metric" transform="translate(200, 0)">
|
|
175
|
+
<rect x="0" y="0" width="180" height="100" rx="14" fill="#06b6d4" fill-opacity="0.08" stroke="#06b6d4" stroke-width="1.5" filter="url(#glowSoft)"/>
|
|
176
|
+
<text x="90" y="40" text-anchor="middle" fill="#06b6d4" font-family="system-ui,sans-serif" font-size="36" font-weight="800">62%</text>
|
|
177
|
+
<text x="90" y="70" text-anchor="middle" fill="#9999bb" font-family="system-ui,sans-serif" font-size="14">Cost Savings</text>
|
|
178
|
+
</g>
|
|
179
|
+
|
|
180
|
+
<!-- Metric 3 -->
|
|
181
|
+
<g class="metric" transform="translate(400, 0)">
|
|
182
|
+
<rect x="0" y="0" width="180" height="100" rx="14" fill="#8b5cf6" fill-opacity="0.08" stroke="#8b5cf6" stroke-width="1.5" filter="url(#glowSoft)"/>
|
|
183
|
+
<text x="90" y="40" text-anchor="middle" fill="#8b5cf6" font-family="system-ui,sans-serif" font-size="36" font-weight="800">100%</text>
|
|
184
|
+
<text x="90" y="70" text-anchor="middle" fill="#9999bb" font-family="system-ui,sans-serif" font-size="14">Fault Pass Rate</text>
|
|
185
|
+
</g>
|
|
186
|
+
|
|
187
|
+
<!-- Metric 4 -->
|
|
188
|
+
<g class="metric" transform="translate(600, 0)">
|
|
189
|
+
<rect x="0" y="0" width="180" height="100" rx="14" fill="#f472b6" fill-opacity="0.08" stroke="#f472b6" stroke-width="1.5" filter="url(#glowSoft)"/>
|
|
190
|
+
<text x="90" y="40" text-anchor="middle" fill="#f472b6" font-family="system-ui,sans-serif" font-size="36" font-weight="800">47+</text>
|
|
191
|
+
<text x="90" y="70" text-anchor="middle" fill="#9999bb" font-family="system-ui,sans-serif" font-size="14">Providers</text>
|
|
192
|
+
</g>
|
|
193
|
+
|
|
194
|
+
<!-- Metric 5 -->
|
|
195
|
+
<g class="metric" transform="translate(800, 0)">
|
|
196
|
+
<rect x="0" y="0" width="180" height="100" rx="14" fill="#6366f1" fill-opacity="0.08" stroke="#6366f1" stroke-width="1.5" filter="url(#glowSoft)"/>
|
|
197
|
+
<text x="90" y="40" text-anchor="middle" fill="#a78bfa" font-family="system-ui,sans-serif" font-size="36" font-weight="800">19.5KB</text>
|
|
198
|
+
<text x="90" y="70" text-anchor="middle" fill="#9999bb" font-family="system-ui,sans-serif" font-size="14">Package Size</text>
|
|
199
|
+
</g>
|
|
200
|
+
</g>
|
|
201
|
+
|
|
202
|
+
<!-- CTA Button -->
|
|
203
|
+
<g class="cta" transform="translate(300, 540)">
|
|
204
|
+
<rect x="0" y="0" width="600" height="70" rx="35" fill="url(#heroGrad)" filter="url(#glowMedium)"/>
|
|
205
|
+
<text x="300" y="45" text-anchor="middle" fill="#ffffff" font-family="system-ui,sans-serif" font-size="22" font-weight="600">npm install adaptive-memory-multi-model-router</text>
|
|
206
|
+
</g>
|
|
207
|
+
|
|
208
|
+
<!-- Footer -->
|
|
209
|
+
<text x="600" y="645" text-anchor="middle" fill="#555577" font-family="system-ui,sans-serif" font-size="14">
|
|
210
|
+
Open-source • Zero ML • No GPU Required • MIT License
|
|
211
|
+
</text>
|
|
212
|
+
</svg>
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# Contributing to awesome-ai-gateways
|
|
2
|
+
|
|
3
|
+
Thanks for your interest in contributing!
|
|
4
|
+
|
|
5
|
+
## How to Contribute
|
|
6
|
+
|
|
7
|
+
1. **Fork the repository**
|
|
8
|
+
2. **Add your tool/resource** in the appropriate section
|
|
9
|
+
3. **Follow the format** (see below)
|
|
10
|
+
4. **Submit a Pull Request**
|
|
11
|
+
|
|
12
|
+
## Format Guidelines
|
|
13
|
+
|
|
14
|
+
### Adding a Tool
|
|
15
|
+
|
|
16
|
+
```markdown
|
|
17
|
+
- [ToolName](https://github.com/user/repo) - Brief description. [[License]](link)
|
|
18
|
+
- Key feature 1
|
|
19
|
+
- Key feature 2
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
### Requirements for Inclusion
|
|
23
|
+
|
|
24
|
+
- Must be related to AI gateways, LLM routing, or related infrastructure
|
|
25
|
+
- Must be a real, working project (no dead repos)
|
|
26
|
+
- Should have a brief description of what it does
|
|
27
|
+
- Include relevant metrics when available (stars, forks, etc.)
|
|
28
|
+
|
|
29
|
+
### Categories
|
|
30
|
+
|
|
31
|
+
- **AI Gateways** - Unified API gateways
|
|
32
|
+
- **Semantic Caching** - Caching layer tools
|
|
33
|
+
- **Cost Tracking & Analytics** - Monitoring and cost tools
|
|
34
|
+
- **Load Balancing & Routing** - Traffic distribution
|
|
35
|
+
- **API Management & Rate Limiting** - Access control
|
|
36
|
+
- **Observability & Logging** - Tracing and monitoring
|
|
37
|
+
- **SDKs & Libraries** - Client libraries
|
|
38
|
+
- **Guardrails & Security** - Content filtering, security
|
|
39
|
+
|
|
40
|
+
## Quality Standards
|
|
41
|
+
|
|
42
|
+
- Links should be permanent (no redirect chains)
|
|
43
|
+
- Include stars/forks if available
|
|
44
|
+
- Prefer open-source with clear licensing
|
|
45
|
+
- Avoid duplicate entries
|
|
46
|
+
|
|
47
|
+
## Thank You!
|
|
48
|
+
|
|
49
|
+
Your contributions help the community discover the best AI infrastructure tools.
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
# Awesome AI Gateways [](https://awesome.re)
|
|
2
|
+
|
|
3
|
+
> A curated list of tools, libraries, and resources for LLM routing, orchestration, and gateway infrastructure.
|
|
4
|
+
|
|
5
|
+
Managing 100+ LLM APIs, handling rate limits, implementing fallbacks, and tracking token costs is a massive operational headache. This list curates the best open-source tools, managed services, and resources to help you build production-grade AI infrastructure.
|
|
6
|
+
|
|
7
|
+
## Contents
|
|
8
|
+
|
|
9
|
+
- [AI Gateways](#ai-gateways)
|
|
10
|
+
- [Semantic Caching](#semantic-caching)
|
|
11
|
+
- [Cost Tracking and Analytics](#cost-tracking-and-analytics)
|
|
12
|
+
- [Load Balancing and Routing](#load-balancing-and-routing)
|
|
13
|
+
- [API Management and Rate Limiting](#api-management-and-rate-limiting)
|
|
14
|
+
- [Observability and Logging](#observability-and-logging)
|
|
15
|
+
- [Agentic Orchestration](#agentic-orchestration)
|
|
16
|
+
- [SDKs and Libraries](#sdks-and-libraries)
|
|
17
|
+
- [Guardrails and Security](#guardrails-and-security)
|
|
18
|
+
- [Tutorials and Case Studies](#tutorials-and-case-studies)
|
|
19
|
+
- [Communities](#communities)
|
|
20
|
+
|
|
21
|
+
## AI Gateways
|
|
22
|
+
|
|
23
|
+
Unified API gateways that route requests across multiple LLM providers.
|
|
24
|
+
|
|
25
|
+
### Open Source
|
|
26
|
+
|
|
27
|
+
- [LiteLLM](https://github.com/BerriAI/litellm#readme) - Python SDK and proxy server calling 100+ LLMs in OpenAI format.
|
|
28
|
+
- [Portkey Gateway](https://github.com/Portkey-AI/gateway#readme) - Blazing fast AI gateway with 250+ LLMs, 50+ guardrails.
|
|
29
|
+
- [Bifrost](https://github.com/maximhq/bifrost#readme) - High-performance AI gateway in Go with adaptive load balancing.
|
|
30
|
+
- [Ferro Labs AI Gateway](https://github.com/ferro-labs/ai-gateway#readme) - Go-native gateway for 29 providers with caching & guardrails.
|
|
31
|
+
- [A3M Router](https://github.com/Das-rebel/adaptive-memory-multi-model-router) - Open-source LLM gateway with 100% routing accuracy, 47+ providers, zero ML, and Chinese provider support. MIT license.
|
|
32
|
+
- [Envoy AI Gateway](https://github.com/envoyproxy/ai-gateway#readme) - Unified access to GenAI services built on Envoy Gateway.
|
|
33
|
+
- [LLM Gateway](https://github.com/theopenco/llmgateway#readme) - Unified interface for running and managing LLMs with analytics.
|
|
34
|
+
- [Inference Gateway](https://github.com/inference-gateway/inference-gateway#readme) - Cloud-native gateway unifying multiple LLM providers.
|
|
35
|
+
- [OpenGateLLM](https://github.com/etalab-ia/OpenGateLLM#readme) - Open-source API gateway focused on self-hosted LLMs.
|
|
36
|
+
- [Routerly](https://github.com/Inebrio/Routerly#readme) - Self-hosted LLM gateway with intelligent multi-policy routing.
|
|
37
|
+
- [Plexus](https://github.com/mcowger/plexus#readme) - Unified API gateway with OAuth auth, quota tracking, and 15+ providers.
|
|
38
|
+
- [OpenZiti LLM Gateway](https://github.com/openziti/llm-gateway#readme) - Zero-trust LLM gateway with semantic routing and E2E encryption.
|
|
39
|
+
- [Kong](https://github.com/Kong/kong#readme) - Enterprise API gateway with LLM routing plugin.
|
|
40
|
+
- [LocalAI](https://github.com/mudler/LocalAI#readme) - Self-hosted, drop-in replacement for OpenAI API.
|
|
41
|
+
- [lm-proxy](https://github.com/Nayjest/lm-proxy#readme) - Lightweight OpenAI-compatible proxy for multi-provider inference.
|
|
42
|
+
- [LLM API Proxy](https://github.com/rxliuli/llm-api-proxy#readme) - Edge runtime proxy supporting OpenAI, Anthropic, Gemini, and more.
|
|
43
|
+
- [LLMProxy](https://github.com/aiyuekuang/LLMProxy#readme) - High-performance reverse proxy for LLM inference with SSE streaming.
|
|
44
|
+
- [Zuul](https://github.com/Netflix/zuul#readme) - Netflix edge gateway.
|
|
45
|
+
|
|
46
|
+
### Managed Services
|
|
47
|
+
|
|
48
|
+
- [Vercel AI Gateway](https://sdk.vercel.ai/docs/ai-gateway#readme) - Single endpoint for hundreds of AI models.
|
|
49
|
+
- [Cloudflare AI Gateway](https://developers.cloudflare.com/ai-gateway/#readme) - Unified interface for AI providers at the edge.
|
|
50
|
+
- [OpenRouter](https://openrouter.ai/#readme) - Unified API for 500+ models from 60+ providers.
|
|
51
|
+
- [Portkey Hosted](https://portkey.ai/#readme) - Managed AI gateway with 1600+ LLMs and enterprise features.
|
|
52
|
+
- [Braintrust](https://www.braintrust.dev/#readme) - Unified API with encrypted caching and integrated evaluation.
|
|
53
|
+
- [Inworld Router](https://www.inworlds.ai/#readme) - LLM plus TTS pipelining for high-interactivity use cases.
|
|
54
|
+
- [Maxim AI](https://www.getmaxim.ai/#readme) - End-to-end platform for simulation, evaluation, and monitoring.
|
|
55
|
+
|
|
56
|
+
## Semantic Caching
|
|
57
|
+
|
|
58
|
+
Reduce costs 60-80% by caching semantically similar responses.
|
|
59
|
+
|
|
60
|
+
- [RedisVL SemanticCache](https://redis.io/docs/latest/develop/ai/redisvl/0.7.0/user_guide/llmcache/#readme) - Semantic caching built on Redis vector search.
|
|
61
|
+
- [GPT-Cache](https://github.com/ZhouDaoquan/GPT-Cache#readme) - Semantic cache for LLM responses.
|
|
62
|
+
- [semantic-prompt-cache](https://github.com/renswickd/semantic-prompt-cache#readme) - RAG plus Semantic Cache system with FAISS.
|
|
63
|
+
- [vCache](https://arxiv.org/abs/2502.03771#readme) - Verified semantic prompt caching with adaptive thresholds.
|
|
64
|
+
- [VectorQ](https://arxiv.org/abs/2503.05530#readme) - Adaptive similarity thresholds for semantic caching.
|
|
65
|
+
- [Qdrant](https://github.com/qdrant/qdrant#readme) - Vector similarity search engine.
|
|
66
|
+
- [Pinecone](https://www.pinecone.io/#readme) - Managed vector database.
|
|
67
|
+
- [Chroma](https://github.com/chroma-core/chroma#readme) - Vector database for AI apps.
|
|
68
|
+
- [pgvector](https://github.com/pgvector/pgvector#readme) - Vector similarity in PostgreSQL.
|
|
69
|
+
- [FAISS](https://github.com/facebookresearch/faiss#readme) - Facebook vector search library.
|
|
70
|
+
|
|
71
|
+
## Cost Tracking and Analytics
|
|
72
|
+
|
|
73
|
+
Monitor, attribute, and optimize LLM spend.
|
|
74
|
+
|
|
75
|
+
- [Langfuse](https://github.com/langfuse/langfuse#readme) - Open-source LLM engineering platform.
|
|
76
|
+
- [Helicone](https://github.com/Helicone/helicone#readme) - Open-source LLM observability platform.
|
|
77
|
+
- [Arize Phoenix](https://github.com/Arize-ai/phoenix#readme) - ML and LLM observability platform.
|
|
78
|
+
- [Opik](https://github.com/comet-ml/opik#readme) - LLM development platform by Comet.
|
|
79
|
+
- [tokenmeter](https://github.com/jugaad-lab/tokenmeter#readme) - Track AI API usage locally.
|
|
80
|
+
- [tokentap](https://github.com/jmuncor/tokentap#readme) - Terminal dashboard for LLM token tracking.
|
|
81
|
+
- [tokenator](https://github.com/ujjwalm29/tokenator#readme) - Monitor LLM token usage.
|
|
82
|
+
- [LLM Cost Guardian](https://github.com/ogulcanaydogan/LLM-Cost-Guardian#readme) - Multi-provider cost tracking in Go.
|
|
83
|
+
- [tokenx](https://github.com/dvlshah/tokenx#readme) - Python decorators for cost and latency monitoring.
|
|
84
|
+
- [llm-performance-tracker](https://github.com/tinybirdco/llm-performance-tracker#readme) - Multi-tenant LLM analytics dashboard.
|
|
85
|
+
- [Weave](https://weave.wandb.ai/#readme) - LLM observability from Weights and Biases.
|
|
86
|
+
- [Datadog LLM Observability](https://www.datadoghq.com/product/llm-observability/#readme) - Enterprise monitoring with LLM metrics.
|
|
87
|
+
- [PostHog](https://posthog.com/#readme) - Product analytics with LLM event tracking.
|
|
88
|
+
- [Confident AI](https://www.confident-ai.com/#readme) - Evaluation-first observability platform.
|
|
89
|
+
- [Maxim AI](https://www.getmaxim.ai/#readme) - End-to-end platform for simulation, evaluation, and monitoring.
|
|
90
|
+
|
|
91
|
+
## Load Balancing and Routing
|
|
92
|
+
|
|
93
|
+
Distribute traffic, implement failovers, and optimize costs.
|
|
94
|
+
|
|
95
|
+
- [LiteLLM Router](https://docs.litellm.ai/docs/proxy/routing#readme) - Retry/fallback logic and least-busy routing.
|
|
96
|
+
- [Portkey](https://portkey.ai/docs/routing-strategies#readme) - Conditional routing and percentage-based distribution.
|
|
97
|
+
- [Bifrost Load Balancing](https://www.getmaxim.ai/bifrostdocs#readme) - Adaptive load balancer with cluster mode.
|
|
98
|
+
- [Ferro Labs Router](https://github.com/ferro-labs/ai-gateway#readme) - Multi-provider routing with 29 providers.
|
|
99
|
+
- [Routerly Policies](https://www.routerly.ai/#readme) - 9 configurable policies including LLM-native routing.
|
|
100
|
+
- [Lovable: 1.8B tokens per minute load balancing](https://www.adwaitx.com/llm-provider-load-balancing-agent-workflows/#readme) - PID-controlled dynamic load balancing.
|
|
101
|
+
|
|
102
|
+
## API Management and Rate Limiting
|
|
103
|
+
|
|
104
|
+
Control access, prevent abuse, and enforce quotas.
|
|
105
|
+
|
|
106
|
+
- [RateLimit4j](https://github.com/vladimir-bukhtoyarov/rate-limit#readme) - Java rate limiting library.
|
|
107
|
+
- [Guava RateLimiter](https://github.com/google/guava#readme) - Google token bucket implementation.
|
|
108
|
+
|
|
109
|
+
## Observability and Logging
|
|
110
|
+
|
|
111
|
+
Full visibility into LLM behavior, performance, and costs.
|
|
112
|
+
|
|
113
|
+
- [OpenTelemetry](https://opentelemetry.io/#readme) - Vendor-neutral observability framework.
|
|
114
|
+
- [Traceloop OpenLLMetry](https://github.com/traceloop/openllmetry#readme) - OpenTelemetry for LLMs.
|
|
115
|
+
- [Grafana](https://github.com/grafana/grafana#readme) - Metrics visualization.
|
|
116
|
+
- [Loki](https://github.com/grafana/loki#readme) - Log aggregation for LLM logs.
|
|
117
|
+
- [LiteLLM Logging](https://docs.litellm.ai/docs/production/logging#readme) - Logging to object storage.
|
|
118
|
+
- [LiteLLM Admin UI](https://docs.litellm.ai/docs/production/litellm_dashboard#readme) - Built-in spend and usage dashboards.
|
|
119
|
+
- [LiteLLM Grafana Dashboard](https://github.com/BerriAI/litellm/tree/main/litellm-main#readme) - Prometheus metrics visualization.
|
|
120
|
+
- [AgentOps](https://www.agentops.ai/#readme) - Observability for agentic loops with tool usage tracking.
|
|
121
|
+
|
|
122
|
+
## Agentic Orchestration
|
|
123
|
+
|
|
124
|
+
Build and manage autonomous agents, long-running tasks, and multi-agent coordination.
|
|
125
|
+
|
|
126
|
+
- [LangGraph](https://github.com/langchain-ai/langgraph#readme) - Low-level orchestration framework for building stateful, multi-agent applications.
|
|
127
|
+
- [Agency Swarm](https://github.com/vrsen/agency-swarm#readme) - Multi-agent framework building collaborative networks of AI agents.
|
|
128
|
+
- [CrewAI](https://github.com/crewAIInc/crewAI#readme) - Multi-agent framework with LLM routing.
|
|
129
|
+
- [AutoGen](https://github.com/microsoft/autogen#readme) - Microsoft multi-agent framework.
|
|
130
|
+
- [UiPath Maestro](https://www.uipath.com/#readme) - Enterprise orchestrator blending LLM agents with RPA and human-in-the-loop.
|
|
131
|
+
|
|
132
|
+
## SDKs and Libraries
|
|
133
|
+
|
|
134
|
+
Multi-provider abstractions and LLM client libraries.
|
|
135
|
+
|
|
136
|
+
- [OpenAI Python SDK](https://github.com/openai/openai-python#readme) - Official OpenAI client.
|
|
137
|
+
- [Anthropic Python SDK](https://github.com/anthropics/anthropic-sdk-python#readme) - Official Claude client.
|
|
138
|
+
- [Vercel AI SDK](https://github.com/vercel/ai#readme) - AI SDK for Next.js and Svelte.
|
|
139
|
+
- [LiteLLM Python SDK](https://docs.litellm.ai/docs/python-sdk#readme) - Unified interface for 100+ providers.
|
|
140
|
+
- [Portkey Python SDK](https://docs.portkey.ai/docs/get-started/python-sdk#readme) - Multi-provider with tracing.
|
|
141
|
+
- [LangChain](https://github.com/langchain-ai/langchain#readme) - LLM orchestration framework.
|
|
142
|
+
- [LlamaIndex](https://github.com/run-llama/llama_index#readme) - RAG framework with gateway integrations.
|
|
143
|
+
- [tiktoken](https://github.com/openai/tiktoken#readme) - Fast tokenization by OpenAI.
|
|
144
|
+
- [tokenizers](https://github.com/huggingface/tokenizers#readme) - Hugging Face tokenizers.
|
|
145
|
+
- [httpx](https://github.com/encode/httpx#readme) - Async HTTP client.
|
|
146
|
+
- [Ferro Labs Go SDK](https://github.com/ferro-labs/ai-gateway#readme) - Go SDK for Ferro Labs gateway.
|
|
147
|
+
|
|
148
|
+
## Guardrails and Security
|
|
149
|
+
|
|
150
|
+
Content filtering, PII redaction, and prompt injection protection.
|
|
151
|
+
|
|
152
|
+
- [Portkey Guardrails](https://docs.portkey.ai/docs/guardrails#readme) - Input and output filtering.
|
|
153
|
+
- [LiteLLM Guardrails](https://docs.litellm.ai/docs/production/guardrails#readme) - Pre and post call hooks.
|
|
154
|
+
- [Ferro Labs Guardrails](https://github.com/ferro-labs/ai-gateway#readme) - Word/phrase filtering and token limits.
|
|
155
|
+
- [PromptGuard](https://github.com/protectai/promptguard#readme) - Prompt injection detection.
|
|
156
|
+
- [NeMo Guardrails](https://github.com/NVIDIA/NeMo-Guardrails#readme) - NVIDIA dialogue guardrails.
|
|
157
|
+
- [LLM Guard](https://github.com/burkelaine/llm-guard#readme) - Security toolkit for LLM applications.
|
|
158
|
+
- [SlashLLM](https://slashllm.com/#readme) - Enterprise security platform.
|
|
159
|
+
- [Azure AI Content Safety](https://azure.microsoft.com/en-us/products/ai-services/content-safety/#readme) - Microsoft content moderation.
|
|
160
|
+
- [AWS AI Services](https://aws.amazon.com/machine-learning/ai-services/#readme) - Amazon content moderation.
|
|
161
|
+
- [DeepEval](https://github.com/confident-ai/deepeval#readme) - Open-source testing framework for LLM outputs.
|
|
162
|
+
- [OpenZiti Security](https://github.com/openziti/llm-gateway#readme) - Zero-trust access with E2E encryption.
|
|
163
|
+
|
|
164
|
+
## Tutorials and Case Studies
|
|
165
|
+
|
|
166
|
+
- [LiteLLM Quick Start](https://docs.litellm.ai/docs/#readme) - Official LiteLLM documentation.
|
|
167
|
+
- [Bifrost Documentation](https://getmaxim.ai/bifrostdocs#readme) - Bifrost setup guide.
|
|
168
|
+
- [Portkey Quick Start](https://docs.portkey.ai/docs/get-started#readme) - Portkey getting started guide.
|
|
169
|
+
- [Building Multi-Provider LLM Infrastructure](https://medium.com/@ritukampani/future-proof-your-ai-building-a-gateway-for-multiple-llm-providers-b746f80cc169#readme) - Architecture guide.
|
|
170
|
+
- [LLM Orchestration with Bifrost](https://dev.to/debmckinney/llm-orchestration-with-bifrost-routing-fallbacks-and-load-balancing-in-one-layer-40p3#readme) - Implementation guide.
|
|
171
|
+
- [Failover Routing Strategies](https://portkey.ai/blog/failover-routing-strategies-for-llms-in-production#readme) - Production patterns.
|
|
172
|
+
- [Semantic Caching Guide](https://scalemind.ai/blog/semantic-caching-llm-guide#readme) - Implementation best practices.
|
|
173
|
+
- [Cost-Aware Routing Patterns](https://www.mindstudio.ai/blog/best-ai-model-routers-multi-provider-llm-cost/#readme) - Routing strategies.
|
|
174
|
+
- [OpenRouter Multi-Provider Routing](https://dev.to/kirponik/mastering-multi-provider-routing-with-openrouter-1ce3#readme) - OpenRouter guide.
|
|
175
|
+
- [Rasa Multi-LLM Routing](https://rasa.com/docs/production/llm-routing/#readme) - Rasa routing documentation.
|
|
176
|
+
- [Cortex](https://arxiv.org/html/2509.17360v2#readme) - Semantic-aware knowledge caching for LLM agents.
|
|
177
|
+
- [Ferro Labs Getting Started](https://github.com/ferro-labs/ai-gateway#readme) - Go-native gateway setup.
|
|
178
|
+
- [Routerly Documentation](https://www.routerly.ai/#readme) - Intelligent routing guide.
|
|
179
|
+
|
|
180
|
+
## Communities
|
|
181
|
+
|
|
182
|
+
- [/r/LLMOps](https://reddit.com/r/LLMOps#readme) - Reddit community for LLM operations.
|
|
183
|
+
- [LangChain Discord](https://discord.gg/langchain#readme) - Framework community.
|
|
184
|
+
- [LiteLLM Discord](https://discord.gg/tdNkNArv#readme) - Gateway community.
|
|
185
|
+
- [Hugging Face Community](https://discuss.huggingface.co/#readme) - Model and deployment discussions.
|
|
186
|
+
|
|
187
|
+
## Related Awesome Lists
|
|
188
|
+
|
|
189
|
+
- [rothgar/awesome-tuis](https://github.com/rothgar/awesome-tuis) - 18K+ stars, comprehensive TUI list.
|
|
190
|
+
- [msmps/awesome-opentui](https://github.com/msmps/awesome-opentui) - Curated open TUI resources.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Please do not submit pull requests in this repository. Use https://github.com/awesome-selfhosted/awesome-selfhosted-data instead.
|