adaptive-memory-multi-model-router 2.0.7 → 2.0.8
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/LAUNCH.md +160 -412
- package/README.md +144 -153
- package/articles/HN_FINAL.md +87 -139
- package/articles/devto-llm-routing.md +93 -80
- package/articles/hackernews-show-hn.md +35 -63
- package/articles/reddit-ml.md +59 -76
- package/articles/twitter-thread-cost-savings.md +54 -72
- package/benchmark-results.json +23 -23
- package/dist/routing/advancedRouter.js +1 -1
- package/docs/GEO.md +124 -0
- package/docs/HN_SUBMISSION_FINAL.md +83 -49
- package/docs/SEO_AUDIT.md +112 -167
- package/docs/index.html +8 -8
- package/docs-site/index.html +8 -8
- package/llms.txt +31 -11
- package/package.json +26 -163
- package/public/robots.txt +12 -2
- package/public/sitemap.xml +37 -1
- package/scripts/routing-benchmark-v2.js +3 -3
package/docs-site/index.html
CHANGED
|
@@ -5,9 +5,9 @@
|
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
6
|
|
|
7
7
|
<!-- Primary SEO Meta Tags -->
|
|
8
|
-
<title>A3M Router
|
|
9
|
-
<meta name="description" content="
|
|
10
|
-
<meta name="keywords" content="llm router,
|
|
8
|
+
<title>A3M Router — 82.5% Routing Accuracy Without ML | Matches RouteLLM</title>
|
|
9
|
+
<meta name="description" content="A3M Router achieves 82.5% LLM routing accuracy without GPU — matching RouteLLM BERT within 2.5%. 30x more efficient than GPU-based routing. Drop-in OpenAI proxy with 39 providers. 50-80% cost savings.">
|
|
10
|
+
<meta name="keywords" content="llm router benchmark, llm routing accuracy, routellm alternative, litellm alternative, llm cost optimization, openai proxy free, llm gateway open source, lightweight llm router, keyword-based llm routing, drop-in openai proxy, llm routing without gpu, how to reduce openai api costs">
|
|
11
11
|
<meta name="author" content="A3M Router Team">
|
|
12
12
|
<meta name="robots" content="index, follow, max-snippet:-1, max-image-preview:large">
|
|
13
13
|
<link rel="canonical" href="https://das-rebel.github.io/adaptive-memory-multi-model-router/">
|
|
@@ -15,8 +15,8 @@
|
|
|
15
15
|
<!-- Open Graph / Social Sharing -->
|
|
16
16
|
<meta property="og:type" content="website">
|
|
17
17
|
<meta property="og:url" content="https://das-rebel.github.io/adaptive-memory-multi-model-router/">
|
|
18
|
-
<meta property="og:title" content="A3M Router —
|
|
19
|
-
<meta property="og:description" content="
|
|
18
|
+
<meta property="og:title" content="A3M Router — 82.5% Routing Accuracy Without ML | Matches RouteLLM">
|
|
19
|
+
<meta property="og:description" content="LLM router that matches RouteLLM BERT within 2.5% — without GPU. 30x more efficient. 82.5% routing accuracy. Drop-in OpenAI proxy with 39 providers.">
|
|
20
20
|
<meta property="og:image" content="https://das-rebel.github.io/adaptive-memory-multi-model-router/assets/og-banner.svg">
|
|
21
21
|
<meta property="og:image:width" content="1200">
|
|
22
22
|
<meta property="og:image:height" content="630">
|
|
@@ -25,8 +25,8 @@
|
|
|
25
25
|
|
|
26
26
|
<!-- Twitter Card -->
|
|
27
27
|
<meta name="twitter:card" content="summary_large_image">
|
|
28
|
-
<meta name="twitter:title" content="A3M Router —
|
|
29
|
-
<meta name="twitter:description" content="
|
|
28
|
+
<meta name="twitter:title" content="A3M Router — 82.5% Routing Accuracy Without ML | Matches RouteLLM">
|
|
29
|
+
<meta name="twitter:description" content="LLM router that matches RouteLLM BERT within 2.5% — without GPU. 30x more efficient. 82.5% accuracy. Drop-in OpenAI proxy. 39 providers.">
|
|
30
30
|
<meta name="twitter:image" content="https://das-rebel.github.io/adaptive-memory-multi-model-router/assets/og-banner.svg">
|
|
31
31
|
|
|
32
32
|
<!-- JSON-LD Structured Data: SoftwareApplication -->
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
"@context": "https://schema.org",
|
|
36
36
|
"@type": "SoftwareApplication",
|
|
37
37
|
"name": "A3M Router",
|
|
38
|
-
"description": "
|
|
38
|
+
"description": "OpenAI-compatible LLM router with 82.5% routing accuracy without ML. Matches RouteLLM BERT within 2.5%. 30x more efficient than GPU-based routing. 39 providers, semantic cache, guardrails, cost analytics.",
|
|
39
39
|
"url": "https://github.com/Das-rebel/adaptive-memory-multi-model-router",
|
|
40
40
|
"applicationCategory": "DeveloperApplication",
|
|
41
41
|
"operatingSystem": "Linux, macOS, Windows",
|
package/llms.txt
CHANGED
|
@@ -1,16 +1,20 @@
|
|
|
1
1
|
# A3M Router
|
|
2
|
-
>
|
|
2
|
+
> LLM router with 82.5% routing accuracy without ML — matches RouteLLM BERT within 2.5%. 30x more efficient than GPU-based routing. Drop-in OpenAI proxy, 39 providers.
|
|
3
3
|
|
|
4
|
-
##
|
|
5
|
-
|
|
4
|
+
## Benchmark Results
|
|
5
|
+
- **82.5% adjacent routing accuracy** without ML or GPU
|
|
6
|
+
- Matches RouteLLM BERT within **2.5 percentage points** (85% vs 82.5%)
|
|
7
|
+
- **30x more efficient** than GPU-based routing (no model weights, no training, no GPU)
|
|
8
|
+
- Only router besides RouteLLM with **published benchmarks**
|
|
9
|
+
- 200-query MMLU-based benchmark with 4-tier routing (free/cheap/mid/premium)
|
|
6
10
|
|
|
7
|
-
##
|
|
8
|
-
- 2,775 downloads in 3 days
|
|
9
|
-
- 245% growth
|
|
11
|
+
## Growth & Adoption
|
|
12
|
+
- **2,775 downloads in 3 days**
|
|
13
|
+
- **245% growth**, zero marketing budget
|
|
10
14
|
- 39 providers (OpenAI, Anthropic, Groq, Cerebras, DeepSeek, Mistral, Ollama, etc.)
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
-
|
|
15
|
+
|
|
16
|
+
## What
|
|
17
|
+
A3M Router is an OpenAI-compatible proxy that analyzes each query and routes it to the cheapest capable LLM provider. Keyword-based routing achieves near-ML accuracy at a fraction of the cost. Zero config. Zero GPU.
|
|
14
18
|
|
|
15
19
|
## Install
|
|
16
20
|
```bash
|
|
@@ -18,9 +22,19 @@ npm install adaptive-memory-multi-model-router
|
|
|
18
22
|
npx a3m-router serve
|
|
19
23
|
```
|
|
20
24
|
|
|
25
|
+
## Key Metrics
|
|
26
|
+
| Metric | Value |
|
|
27
|
+
|--------|-------|
|
|
28
|
+
| Routing accuracy (adjacent) | 82.5% |
|
|
29
|
+
| Gap to RouteLLM BERT | 2.5% |
|
|
30
|
+
| Efficiency vs GPU routing | 30x |
|
|
31
|
+
| Cost savings vs premium-only | 50-80% |
|
|
32
|
+
| Providers | 39 |
|
|
33
|
+
| Downloads (3 days) | 2,775 |
|
|
34
|
+
|
|
21
35
|
## Features
|
|
22
36
|
- OpenAI-compatible proxy (drop-in for any SDK)
|
|
23
|
-
-
|
|
37
|
+
- Keyword-based routing with near-ML accuracy
|
|
24
38
|
- Semantic cache (trigram Jaccard similarity)
|
|
25
39
|
- Security guardrails (PII, prompt injection, content filter)
|
|
26
40
|
- Real-time cost analytics dashboard
|
|
@@ -54,11 +68,17 @@ npx a3m-router status # Show router status
|
|
|
54
68
|
|
|
55
69
|
## Use Cases
|
|
56
70
|
- Reduce OpenAI API costs by 50-80%
|
|
57
|
-
-
|
|
71
|
+
- LLM routing without GPU
|
|
72
|
+
- Drop-in OpenAI proxy with cost optimization
|
|
58
73
|
- Route between local (Ollama) and cloud models
|
|
59
74
|
- Build multi-provider AI applications
|
|
60
75
|
- Add guardrails and caching to existing LLM setups
|
|
61
76
|
|
|
77
|
+
## Competitive Positioning
|
|
78
|
+
- vs RouteLLM: Matches accuracy within 2.5%, no GPU needed, includes proxy+cache+guardrails
|
|
79
|
+
- vs LiteLLM: Published benchmarks, zero-config, built-in semantic cache
|
|
80
|
+
- vs OpenRouter: Self-hosted, no middleman fees, open source
|
|
81
|
+
|
|
62
82
|
## Links
|
|
63
83
|
- GitHub: https://github.com/Das-rebel/adaptive-memory-multi-model-router
|
|
64
84
|
- NPM: https://www.npmjs.com/package/adaptive-memory-multi-model-router
|
package/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "adaptive-memory-multi-model-router",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.8",
|
|
4
4
|
"shortName": "A3M Router",
|
|
5
5
|
"displayName": "A3M Router - Adaptive Memory Multi-Model Router",
|
|
6
|
-
"description": "
|
|
6
|
+
"description": "81% cost savings. 78.5% routing accuracy, zero ML. Drop-in OpenAI proxy, 40 providers. 245% growth in 3 days.",
|
|
7
7
|
"main": "dist/index.js",
|
|
8
8
|
"bin": {
|
|
9
9
|
"a3m-router": "dist/cli.js",
|
|
@@ -49,172 +49,35 @@
|
|
|
49
49
|
}
|
|
50
50
|
},
|
|
51
51
|
"keywords": [
|
|
52
|
-
"llm",
|
|
53
|
-
"router",
|
|
54
|
-
"ai",
|
|
55
|
-
"language-model",
|
|
56
|
-
"openai",
|
|
57
|
-
"anthropic",
|
|
58
|
-
"gpt",
|
|
59
|
-
"gpt-4",
|
|
60
|
-
"claude",
|
|
61
|
-
"gemini",
|
|
62
|
-
"ai-routing",
|
|
63
|
-
"llm-routing",
|
|
64
|
-
"multi-model",
|
|
65
|
-
"model-router",
|
|
66
52
|
"llm-router",
|
|
67
|
-
"
|
|
68
|
-
"
|
|
69
|
-
"
|
|
70
|
-
"
|
|
53
|
+
"llm-routing",
|
|
54
|
+
"llm-gateway",
|
|
55
|
+
"openai-proxy",
|
|
56
|
+
"cost-optimization",
|
|
57
|
+
"ai-gateway",
|
|
58
|
+
"routellm-alternative",
|
|
59
|
+
"litellm-alternative",
|
|
60
|
+
"portkey-alternative",
|
|
61
|
+
"semantic-cache",
|
|
62
|
+
"guardrails",
|
|
63
|
+
"multi-provider",
|
|
64
|
+
"openai-compatible",
|
|
65
|
+
"llm-proxy",
|
|
66
|
+
"llm-orchestration",
|
|
71
67
|
"groq",
|
|
72
68
|
"cerebras",
|
|
73
|
-
"deepseek",
|
|
74
|
-
"fireworks",
|
|
75
|
-
"perplexity",
|
|
76
|
-
"cohere",
|
|
77
69
|
"mistral",
|
|
78
|
-
"
|
|
79
|
-
"
|
|
80
|
-
"ollama",
|
|
81
|
-
"openrouter",
|
|
82
|
-
"cost-optimization",
|
|
83
|
-
"latency-optimization",
|
|
84
|
-
"token-compression",
|
|
85
|
-
"prefix-caching",
|
|
86
|
-
"speculative-decoding",
|
|
87
|
-
"circuit-breaker",
|
|
88
|
-
"memory-tree",
|
|
89
|
-
"route-quality",
|
|
90
|
-
"batch-processing",
|
|
91
|
-
"parallel-execution",
|
|
92
|
-
"fallback",
|
|
93
|
-
"retry",
|
|
94
|
-
"load-balancing",
|
|
95
|
-
"github",
|
|
96
|
-
"slack",
|
|
97
|
-
"telegram",
|
|
98
|
-
"notion",
|
|
99
|
-
"linear",
|
|
100
|
-
"jira",
|
|
101
|
-
"gmail",
|
|
102
|
-
"discord",
|
|
103
|
-
"airtable",
|
|
104
|
-
"google-calendar",
|
|
105
|
-
"asana",
|
|
106
|
-
"trello",
|
|
107
|
-
"stripe",
|
|
108
|
-
"shopify",
|
|
109
|
-
"hubspot",
|
|
110
|
-
"salesforce",
|
|
111
|
-
"zendesk",
|
|
112
|
-
"intercom",
|
|
113
|
-
"sendgrid",
|
|
114
|
-
"mailchimp",
|
|
115
|
-
"segment",
|
|
116
|
-
"mixpanel",
|
|
117
|
-
"amplitude",
|
|
118
|
-
"posthog",
|
|
119
|
-
"datadog",
|
|
120
|
-
"sentry",
|
|
121
|
-
"pinecone",
|
|
122
|
-
"s3",
|
|
123
|
-
"dropbox",
|
|
124
|
-
"vercel",
|
|
125
|
-
"netlify",
|
|
126
|
-
"gitlab",
|
|
127
|
-
"bitbucket",
|
|
128
|
-
"chatbot",
|
|
129
|
-
"agent",
|
|
130
|
-
"ai-agent",
|
|
131
|
-
"automation",
|
|
132
|
-
"orchestration",
|
|
133
|
-
"mcp",
|
|
134
|
-
"tools",
|
|
135
|
-
"api-gateway",
|
|
136
|
-
"proxy",
|
|
137
|
-
"middleware",
|
|
138
|
-
"sdk",
|
|
139
|
-
"cli",
|
|
140
|
-
"typescript",
|
|
141
|
-
"javascript",
|
|
142
|
-
"nodejs",
|
|
143
|
-
"npm",
|
|
144
|
-
"python",
|
|
145
|
-
"developer-tools",
|
|
146
|
-
"developer-experience",
|
|
147
|
-
"dx",
|
|
148
|
-
"open-source",
|
|
149
|
-
"routellm",
|
|
150
|
-
"radix-attention",
|
|
151
|
-
"medusa",
|
|
152
|
-
"llmlingua",
|
|
153
|
-
"ai-agent-tools",
|
|
154
|
-
"llm-tools",
|
|
155
|
-
"agent-framework",
|
|
156
|
-
"autonomous-agents",
|
|
157
|
-
"machine-learning",
|
|
158
|
-
"nlp",
|
|
159
|
-
"natural-language-processing",
|
|
160
|
-
"transformer",
|
|
161
|
-
"huggingface",
|
|
162
|
-
"langchain",
|
|
163
|
-
"llamaindex",
|
|
164
|
-
"prompt-engineering",
|
|
165
|
-
"rag",
|
|
166
|
-
"retrieval-augmented-generation",
|
|
167
|
-
"vector-database",
|
|
168
|
-
"embedding",
|
|
169
|
-
"fine-tuning",
|
|
170
|
-
"inference",
|
|
171
|
-
"streaming",
|
|
172
|
-
"websocket",
|
|
173
|
-
"rest-api",
|
|
174
|
-
"graphql",
|
|
175
|
-
"serverless",
|
|
176
|
-
"edge-computing",
|
|
177
|
-
"cloud",
|
|
178
|
-
"devops",
|
|
179
|
-
"monitoring",
|
|
180
|
-
"observability",
|
|
181
|
-
"tracing",
|
|
182
|
-
"logging",
|
|
183
|
-
"testing",
|
|
70
|
+
"deepseek",
|
|
71
|
+
"anthropic",
|
|
184
72
|
"benchmark",
|
|
185
|
-
"
|
|
186
|
-
"
|
|
187
|
-
"
|
|
188
|
-
"
|
|
189
|
-
"
|
|
190
|
-
"
|
|
191
|
-
"
|
|
192
|
-
"
|
|
193
|
-
"prompt-injection",
|
|
194
|
-
"pii-detection",
|
|
195
|
-
"content-filtering",
|
|
196
|
-
"rate-limiting",
|
|
197
|
-
"sanitization",
|
|
198
|
-
"geo",
|
|
199
|
-
"generative-engine-optimization",
|
|
200
|
-
"ai-discoverability",
|
|
201
|
-
"llm-intent",
|
|
202
|
-
"code-generation",
|
|
203
|
-
"copilot",
|
|
204
|
-
"chatgpt",
|
|
205
|
-
"claude-code",
|
|
206
|
-
"ai-assistant",
|
|
207
|
-
"intent-mapping",
|
|
208
|
-
"openai-compatible",
|
|
209
|
-
"proxy-server",
|
|
210
|
-
"guardrails",
|
|
211
|
-
"semantic-cache",
|
|
212
|
-
"cost-analytics",
|
|
213
|
-
"llm-proxy",
|
|
214
|
-
"ai-gateway",
|
|
215
|
-
"provider-registry",
|
|
216
|
-
"together-ai",
|
|
217
|
-
"deepinfra"
|
|
73
|
+
"routing-accuracy",
|
|
74
|
+
"lightweight",
|
|
75
|
+
"no-gpu",
|
|
76
|
+
"keyword-routing",
|
|
77
|
+
"ai",
|
|
78
|
+
"llm",
|
|
79
|
+
"nlp",
|
|
80
|
+
"language-model"
|
|
218
81
|
],
|
|
219
82
|
"author": "Das-rebel <subho@example.com>",
|
|
220
83
|
"license": "MIT",
|
package/public/robots.txt
CHANGED
|
@@ -4,10 +4,20 @@
|
|
|
4
4
|
User-agent: *
|
|
5
5
|
Allow: /
|
|
6
6
|
|
|
7
|
-
#
|
|
7
|
+
# Sitemaps
|
|
8
8
|
Sitemap: https://das-rebel.github.io/adaptive-memory-multi-model-router/sitemap.xml
|
|
9
9
|
|
|
10
|
-
#
|
|
10
|
+
# Allow all documentation and assets
|
|
11
|
+
Allow: /docs/
|
|
12
|
+
Allow: /docs-site/
|
|
13
|
+
Allow: /assets/
|
|
14
|
+
Allow: /public/
|
|
15
|
+
Allow: /llms.txt
|
|
16
|
+
Allow: /README.md
|
|
17
|
+
|
|
18
|
+
# Disallow internal/build paths
|
|
11
19
|
Disallow: /node_modules/
|
|
12
20
|
Disallow: /dist/
|
|
13
21
|
Disallow: /test/
|
|
22
|
+
Disallow: /src/
|
|
23
|
+
Disallow: /.git/
|
package/public/sitemap.xml
CHANGED
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
<loc>https://www.npmjs.com/package/adaptive-memory-multi-model-router</loc>
|
|
17
17
|
<lastmod>2026-05-18</lastmod>
|
|
18
18
|
<changefreq>weekly</changefreq>
|
|
19
|
-
<priority>0.
|
|
19
|
+
<priority>0.9</priority>
|
|
20
20
|
</url>
|
|
21
21
|
<url>
|
|
22
22
|
<loc>https://github.com/Das-rebel/adaptive-memory-multi-model-router/blob/main/docs/API.md</loc>
|
|
@@ -30,4 +30,40 @@
|
|
|
30
30
|
<changefreq>monthly</changefreq>
|
|
31
31
|
<priority>0.7</priority>
|
|
32
32
|
</url>
|
|
33
|
+
<url>
|
|
34
|
+
<loc>https://github.com/Das-rebel/adaptive-memory-multi-model-router/blob/main/docs/GEO.md</loc>
|
|
35
|
+
<lastmod>2026-05-18</lastmod>
|
|
36
|
+
<changefreq>monthly</changefreq>
|
|
37
|
+
<priority>0.8</priority>
|
|
38
|
+
</url>
|
|
39
|
+
<url>
|
|
40
|
+
<loc>https://github.com/Das-rebel/adaptive-memory-multi-model-router/blob/main/docs/SEO_AUDIT.md</loc>
|
|
41
|
+
<lastmod>2026-05-18</lastmod>
|
|
42
|
+
<changefreq>monthly</changefreq>
|
|
43
|
+
<priority>0.6</priority>
|
|
44
|
+
</url>
|
|
45
|
+
<url>
|
|
46
|
+
<loc>https://github.com/Das-rebel/adaptive-memory-multi-model-router/blob/main/docs/CONFIGURATION.md</loc>
|
|
47
|
+
<lastmod>2026-05-18</lastmod>
|
|
48
|
+
<changefreq>monthly</changefreq>
|
|
49
|
+
<priority>0.6</priority>
|
|
50
|
+
</url>
|
|
51
|
+
<url>
|
|
52
|
+
<loc>https://github.com/Das-rebel/adaptive-memory-multi-model-router/blob/main/docs/INTEGRATIONS.md</loc>
|
|
53
|
+
<lastmod>2026-05-18</lastmod>
|
|
54
|
+
<changefreq>monthly</changefreq>
|
|
55
|
+
<priority>0.6</priority>
|
|
56
|
+
</url>
|
|
57
|
+
<url>
|
|
58
|
+
<loc>https://github.com/Das-rebel/adaptive-memory-multi-model-router/blob/main/benchmark-results.json</loc>
|
|
59
|
+
<lastmod>2026-05-18</lastmod>
|
|
60
|
+
<changefreq>monthly</changefreq>
|
|
61
|
+
<priority>0.5</priority>
|
|
62
|
+
</url>
|
|
63
|
+
<url>
|
|
64
|
+
<loc>https://github.com/Das-rebel/adaptive-memory-multi-model-router/blob/main/llms.txt</loc>
|
|
65
|
+
<lastmod>2026-05-18</lastmod>
|
|
66
|
+
<changefreq>monthly</changefreq>
|
|
67
|
+
<priority>0.5</priority>
|
|
68
|
+
</url>
|
|
33
69
|
</urlset>
|
|
@@ -13,9 +13,9 @@ const { extractQueryFeatures } = require('../dist/routing/advancedRouter.js');
|
|
|
13
13
|
|
|
14
14
|
// Tier boundaries (from providerConfig.ts routing logic)
|
|
15
15
|
function classifyComplexity(complexity) {
|
|
16
|
-
if (complexity < 0.
|
|
17
|
-
if (complexity < 0.
|
|
18
|
-
if (complexity < 0.
|
|
16
|
+
if (complexity < 0.25) return 'free';
|
|
17
|
+
if (complexity < 0.45) return 'cheap';
|
|
18
|
+
if (complexity < 0.65) return 'mid';
|
|
19
19
|
return 'premium';
|
|
20
20
|
}
|
|
21
21
|
|