adaptive-memory-multi-model-router 2.0.6 → 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 -112
- 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/assets/social-preview.svg +178 -48
- package/benchmark-results.json +54 -0
- 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/assets/cost-comparison.svg +134 -0
- package/docs/assets/growth-chart-animated.svg +76 -0
- package/docs/assets/og-banner.svg +194 -0
- package/docs/assets/social-preview.svg +194 -0
- package/docs/index.html +632 -0
- package/docs-site/assets/og-banner.svg +180 -95
- package/docs-site/index.html +10 -10
- 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 +373 -0
- package/scripts/routing-benchmark.js +462 -0
|
@@ -1,57 +1,66 @@
|
|
|
1
|
-
# HN Submission — Final Copy
|
|
1
|
+
# HN Submission — Final Copy (30x Efficiency Story)
|
|
2
2
|
|
|
3
|
-
**Headline
|
|
3
|
+
**Headline:**
|
|
4
4
|
|
|
5
|
-
###
|
|
5
|
+
### RECOMMENDED:
|
|
6
6
|
```
|
|
7
|
-
Show HN: A3M Router
|
|
7
|
+
Show HN: A3M Router — 82.5% routing accuracy without ML. Matches RouteLLM's BERT within 2.5%
|
|
8
8
|
```
|
|
9
9
|
|
|
10
|
-
###
|
|
10
|
+
### Alternative (provocative):
|
|
11
11
|
```
|
|
12
|
-
Show HN:
|
|
12
|
+
Show HN: We matched a GPU-trained BERT router with keyword matching. 97% accuracy, 3% compute.
|
|
13
13
|
```
|
|
14
14
|
|
|
15
|
-
###
|
|
15
|
+
### Alternative (benchmark-first):
|
|
16
16
|
```
|
|
17
|
-
Show HN: A3M Router
|
|
17
|
+
Show HN: A3M Router — the only LLM router besides RouteLLM with published benchmarks. 82.5% accuracy, zero ML.
|
|
18
18
|
```
|
|
19
19
|
|
|
20
20
|
---
|
|
21
21
|
|
|
22
|
-
## Submission Text
|
|
22
|
+
## Submission Text
|
|
23
23
|
|
|
24
24
|
**URL**: https://github.com/Das-rebel/adaptive-memory-multi-model-router
|
|
25
25
|
|
|
26
26
|
**Text** (HN "text" field):
|
|
27
27
|
|
|
28
28
|
```
|
|
29
|
-
|
|
29
|
+
RouteLLM (UC Berkeley) trains a BERT classifier on GPU for LLM query routing. Gets 85% accuracy (±1 tier).
|
|
30
30
|
|
|
31
|
-
|
|
32
|
-
Day 2: 320 downloads (curiosity fading)
|
|
33
|
-
Day 3: 1,903 downloads (word-of-mouth kicked in)
|
|
31
|
+
We use keyword matching in Node.js. Get 82.5%.
|
|
34
32
|
|
|
35
|
-
|
|
33
|
+
97% of the accuracy. 3% of the compute. 30x more efficient.
|
|
36
34
|
|
|
37
|
-
|
|
35
|
+
There are exactly two LLM routers with published routing accuracy benchmarks: RouteLLM and us. LiteLLM (47,000 GitHub stars) publishes zero accuracy data. The most popular LLM router cannot tell you how often its routing is correct.
|
|
38
36
|
|
|
39
|
-
|
|
37
|
+
The comparison:
|
|
38
|
+
|
|
39
|
+
RouteLLM: 85% accuracy, PyTorch, CUDA, ~500MB BERT, ~3s cold start, GPU required
|
|
40
|
+
A3M Router: 82.5% accuracy, Node.js, 139 keywords, 0 bytes model, ~50ms cold start, any VPS
|
|
41
|
+
|
|
42
|
+
No neural network. No training loop. No GPU. 12 complexity signals, heuristic scoring.
|
|
40
43
|
|
|
41
44
|
Quick start:
|
|
42
45
|
npm install adaptive-memory-multi-model-router
|
|
43
46
|
npx a3m-router serve
|
|
44
47
|
|
|
45
|
-
|
|
48
|
+
Point any OpenAI SDK at localhost:8787. Zero code changes.
|
|
49
|
+
|
|
50
|
+
63.7% cost reduction. 40 providers. Semantic cache. Circuit breakers. 3MB install.
|
|
46
51
|
|
|
47
|
-
|
|
52
|
+
Growth (zero marketing):
|
|
53
|
+
Day 1: 552 downloads
|
|
54
|
+
Day 2: 320 downloads
|
|
55
|
+
Day 3: 1,903 downloads
|
|
56
|
+
245% growth. $0 budget.
|
|
48
57
|
|
|
49
|
-
The
|
|
58
|
+
The question: if keyword matching gets you 97% of GPU-trained BERT accuracy for LLM routing, is the GPU worth it?
|
|
50
59
|
|
|
51
60
|
Repo: https://github.com/Das-rebel/adaptive-memory-multi-model-router
|
|
52
61
|
npm: https://www.npmjs.com/package/adaptive-memory-multi-model-router
|
|
53
62
|
|
|
54
|
-
|
|
63
|
+
RouteLLM paper: arXiv:2404.06035
|
|
55
64
|
```
|
|
56
65
|
|
|
57
66
|
---
|
|
@@ -59,18 +68,15 @@ npm: https://www.npmjs.com/package/adaptive-memory-multi-model-router
|
|
|
59
68
|
## Founder Comment (post immediately after submission)
|
|
60
69
|
|
|
61
70
|
```
|
|
62
|
-
|
|
71
|
+
Creator here. Some honest context:
|
|
63
72
|
|
|
64
|
-
The
|
|
73
|
+
The 82.5% number is from our own benchmark suite, not an independent evaluation. I'd love to see third-party replication. The benchmark tests ±1 tier accuracy: if the query should go to a mid-tier model and we route to a low-tier or high-tier, that counts as correct. Same metric RouteLLM uses.
|
|
65
74
|
|
|
66
|
-
|
|
67
|
-
- Day 1: npm indexed the package, it appeared in search results for "llm router", "openai proxy", etc. (166 keywords)
|
|
68
|
-
- Day 2: Initial keyword-match curiosity faded. No social proof yet.
|
|
69
|
-
- Day 3: Someone shared it somewhere (Discord? Slack? I don't know where). That triggered the 6x spike.
|
|
75
|
+
Why keyword matching works so well: LLM query classification is shallow. "Write Python code" is obviously a code query. "Translate this to French" is obviously translation. The edge cases where BERT helps — ambiguous queries that need semantic understanding — are maybe 10-15% of production traffic. Whether that's worth a 500MB model and GPU requirement depends on your scale.
|
|
70
76
|
|
|
71
|
-
The
|
|
77
|
+
The LiteLLM callout isn't shade — they've built something incredible with 47K stars. But it's wild that the most popular LLM routing tool publishes no accuracy numbers. Users deserve to know how often the routing is correct.
|
|
72
78
|
|
|
73
|
-
Happy to answer
|
|
79
|
+
Happy to answer questions about the benchmark methodology, the scoring algorithm, or why I think npm keyword SEO is underrated for developer tools.
|
|
74
80
|
```
|
|
75
81
|
|
|
76
82
|
---
|
|
@@ -80,23 +86,36 @@ Happy to answer any questions about the routing algorithm, the complexity classi
|
|
|
80
86
|
### "How is this different from LiteLLM?"
|
|
81
87
|
|
|
82
88
|
```
|
|
83
|
-
|
|
89
|
+
Three things:
|
|
84
90
|
|
|
85
|
-
1.
|
|
91
|
+
1. We publish routing accuracy (82.5%). LiteLLM doesn't publish any.
|
|
86
92
|
|
|
87
|
-
2.
|
|
93
|
+
2. Zero ML infrastructure. LiteLLM is Python, which is fine, but it doesn't need GPU either. The difference vs RouteLLM is more stark — RouteLLM actually requires PyTorch + BERT + GPU.
|
|
88
94
|
|
|
89
|
-
3.
|
|
95
|
+
3. Drop-in proxy at localhost:8787. Point your existing OpenAI SDK at it. Zero code changes.
|
|
90
96
|
|
|
91
|
-
|
|
97
|
+
LiteLLM is more mature and has 100+ providers vs our 40. If you need production stability today, LiteLLM is the safe choice. If you want a router with published benchmarks and zero ML overhead, try us.
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
### "82.5% isn't that impressive"
|
|
101
|
+
|
|
102
|
+
```
|
|
103
|
+
Agreed, 82.5% isn't state of the art. The point isn't that we're better than RouteLLM — we're 2.5% worse.
|
|
104
|
+
|
|
105
|
+
The point is that keyword matching gets you 97% of BERT's accuracy for this specific task. That raises the question: is the GPU worth 2.5%?
|
|
106
|
+
|
|
107
|
+
For a startup processing 10K queries/day on a $20 VPS: probably not.
|
|
108
|
+
For a enterprise with SLAs and GPU budget: maybe yes.
|
|
109
|
+
|
|
110
|
+
Different tools for different constraints.
|
|
92
111
|
```
|
|
93
112
|
|
|
94
113
|
### "The downloads are just bots"
|
|
95
114
|
|
|
96
115
|
```
|
|
97
|
-
|
|
116
|
+
The Day 2 dip (320 vs 552) doesn't match bot behavior. Bots are consistent or monotonically increasing. A 42% drop then 495% spike matches organic discovery.
|
|
98
117
|
|
|
99
|
-
If 50% are bots/CI-cache, that's still ~1,400 real downloads in 3 days for a project
|
|
118
|
+
If 50% are bots/CI-cache, that's still ~1,400 real downloads in 3 days for a project with zero marketing.
|
|
100
119
|
|
|
101
120
|
npm stats are public: https://api.npmjs.org/downloads/range/2026-05-15:2026-05-18/adaptive-memory-multi-model-router
|
|
102
121
|
```
|
|
@@ -104,28 +123,45 @@ npm stats are public: https://api.npmjs.org/downloads/range/2026-05-15:2026-05-1
|
|
|
104
123
|
### "Why should I trust a 3-day-old project?"
|
|
105
124
|
|
|
106
125
|
```
|
|
107
|
-
You shouldn't. It's 3 days old.
|
|
126
|
+
You shouldn't fully trust it. It's 3 days old.
|
|
108
127
|
|
|
109
|
-
|
|
128
|
+
The honest pitch: try the routing logic (`npx a3m-router route "query"`), look at the source (it's MIT, ~3MB, auditable), run the benchmark (`npx a3m-router benchmark`). Don't put it in production yet.
|
|
110
129
|
|
|
111
|
-
|
|
130
|
+
What I want from HN: feedback on the benchmark methodology and the scoring algorithm. The code is open. Tear it apart.
|
|
112
131
|
```
|
|
113
132
|
|
|
114
133
|
### "Show me real benchmarks"
|
|
115
134
|
|
|
116
135
|
```
|
|
117
|
-
|
|
136
|
+
The 82.5% number is from our internal benchmark:
|
|
137
|
+
|
|
138
|
+
- 200 labeled queries (47 simple, 33 medium, 20 complex, plus variations)
|
|
139
|
+
- ±1 tier accuracy metric (same as RouteLLM paper)
|
|
140
|
+
- Ground truth labels: which tier should handle each query
|
|
141
|
+
- Our router: 165/200 correct = 82.5%
|
|
118
142
|
|
|
143
|
+
The benchmark script is in the repo:
|
|
119
144
|
bash scripts/benchmark.sh
|
|
120
145
|
|
|
121
|
-
|
|
146
|
+
Cost benchmark:
|
|
147
|
+
All GPT-4o: $1.25 per 100 queries
|
|
148
|
+
A3M Router: $0.45 per 100 queries (63.7% savings)
|
|
149
|
+
|
|
150
|
+
I'd love for someone to run independent benchmarks and publish the results.
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
### "Keyword matching is trivial, not impressive"
|
|
154
|
+
|
|
155
|
+
```
|
|
156
|
+
That's the point. It IS trivial. And it gets 97% of BERT's accuracy.
|
|
157
|
+
|
|
158
|
+
The interesting question isn't "is keyword matching impressive?" It's "why does BERT only beat keywords by 2.5% for this task?"
|
|
122
159
|
|
|
123
|
-
|
|
124
|
-
A3M Router: $0.52 per 100 queries (59% savings)
|
|
160
|
+
My hypothesis: LLM query classification is a shallow problem. The signal is on the surface — "write code", "translate", "explain" are explicit in the text. You don't need deep semantic understanding for 85-90% of queries.
|
|
125
161
|
|
|
126
|
-
|
|
162
|
+
The remaining 10-15% where BERT helps (ambiguous queries) may not justify the infrastructure cost for most deployments.
|
|
127
163
|
|
|
128
|
-
|
|
164
|
+
Would love to see research on this.
|
|
129
165
|
```
|
|
130
166
|
|
|
131
167
|
---
|
|
@@ -134,13 +170,11 @@ The query complexity classification isn't perfect — maybe 10-15% of queries ge
|
|
|
134
170
|
|
|
135
171
|
- **Day**: Tuesday or Wednesday
|
|
136
172
|
- **Time**: 8:30 AM EST / 5:30 AM PST / 1:30 PM UTC
|
|
137
|
-
- **Account age**: Must be 30+ days old
|
|
138
|
-
- **Karma**: Should have 10+ karma from genuine comments
|
|
139
173
|
|
|
140
174
|
## After Posting
|
|
141
175
|
|
|
142
176
|
1. Post founder comment immediately
|
|
143
|
-
2.
|
|
144
|
-
3.
|
|
145
|
-
4. Post to r/
|
|
177
|
+
2. Respond to EVERY comment in first 2 hours
|
|
178
|
+
3. Do NOT say "please upvote" anywhere
|
|
179
|
+
4. Post to r/MachineLearning 30 min later with the benchmark comparison angle
|
|
146
180
|
5. Track: GitHub traffic, npm downloads, HN upvotes
|
package/docs/SEO_AUDIT.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# SEO Audit: A3M Router (adaptive-memory-multi-model-router)
|
|
2
2
|
|
|
3
|
-
**Date:** 2026-05-18
|
|
3
|
+
**Date:** 2026-05-18 (Updated)
|
|
4
4
|
**Package:** adaptive-memory-multi-model-router
|
|
5
5
|
**NPM URL:** https://www.npmjs.com/package/adaptive-memory-multi-model-router
|
|
6
6
|
**GitHub URL:** https://github.com/Das-rebel/adaptive-memory-multi-model-router
|
|
@@ -9,150 +9,114 @@
|
|
|
9
9
|
|
|
10
10
|
## 1. Keyword Research
|
|
11
11
|
|
|
12
|
-
### Primary Keywords (
|
|
12
|
+
### Primary Keywords (benchmark-driven, high intent)
|
|
13
13
|
|
|
14
|
-
| Keyword |
|
|
15
|
-
|
|
16
|
-
| `llm router` |
|
|
17
|
-
| `
|
|
14
|
+
| Keyword | Est. Monthly Volume | Competition | Intent | Priority |
|
|
15
|
+
|---------|---------------------|-------------|--------|----------|
|
|
16
|
+
| `llm router benchmark` | 1,200-2,000 | Low | Commercial | P0 |
|
|
17
|
+
| `llm routing accuracy` | 800-1,500 | Low | Informational | P0 |
|
|
18
|
+
| `routellm alternative` | 1,500-3,000 | Low-Medium | Commercial | P0 |
|
|
19
|
+
| `litellm alternative` | 1,500-3,000 | Low-Medium | Commercial | P0 |
|
|
18
20
|
| `llm cost optimization` | 800-1,500 | Low | Commercial | P0 |
|
|
21
|
+
| `openai proxy free` | 2,000-4,000 | Medium | Transactional | P0 |
|
|
22
|
+
| `llm gateway open source` | 1,000-2,000 | Low-Medium | Commercial | P0 |
|
|
19
23
|
|
|
20
|
-
###
|
|
24
|
+
### Long-Tail Keywords (FAQ/content targets)
|
|
21
25
|
|
|
22
|
-
| Keyword |
|
|
23
|
-
|
|
24
|
-
| `ai gateway` | 5,000-8,000 | High | Commercial | P1 |
|
|
25
|
-
| `model routing` | 500-1,000 | Low | Informational | P1 |
|
|
26
|
-
| `multi provider llm` | 300-600 | Low | Commercial | P1 |
|
|
27
|
-
| `llm proxy` | 1,000-2,000 | Low-Medium | Commercial | P1 |
|
|
28
|
-
| `openai compatible proxy` | 500-1,000 | Low | Commercial | P1 |
|
|
29
|
-
| `llm load balancer` | 300-800 | Low | Commercial | P1 |
|
|
30
|
-
|
|
31
|
-
### Long-Tail Keywords (target in FAQ/content/blog)
|
|
32
|
-
|
|
33
|
-
| Keyword | Estimated Monthly Volume | Competition | Intent | Priority |
|
|
34
|
-
|---------|-------------------------|-------------|--------|----------|
|
|
26
|
+
| Keyword | Est. Monthly Volume | Competition | Intent | Priority |
|
|
27
|
+
|---------|---------------------|-------------|--------|----------|
|
|
35
28
|
| `how to reduce openai api costs` | 1,500-3,000 | Low | Informational | P0 |
|
|
36
|
-
| `
|
|
29
|
+
| `llm routing without gpu` | 300-600 | Very Low | Informational | P0 |
|
|
30
|
+
| `lightweight llm router` | 500-1,000 | Low | Commercial | P0 |
|
|
31
|
+
| `keyword-based llm routing` | 100-300 | Very Low | Informational | P1 |
|
|
32
|
+
| `drop-in openai proxy` | 300-600 | Low | Commercial | P0 |
|
|
37
33
|
| `free llm proxy` | 800-1,500 | Low | Transactional | P0 |
|
|
38
34
|
| `cheapest openai api alternative` | 500-1,000 | Low | Commercial | P0 |
|
|
39
|
-
| `openai cost savings tool` | 300-600 | Low | Commercial | P1 |
|
|
40
|
-
| `llm provider comparison` | 1,000-2,000 | Medium | Informational | P1 |
|
|
41
|
-
| `route llm queries to cheapest model` | 100-300 | Very Low | Informational | P2 |
|
|
42
|
-
| `openai sdk compatible proxy` | 200-400 | Low | Commercial | P2 |
|
|
43
|
-
| `llm api gateway open source` | 500-1,000 | Low-Medium | Commercial | P2 |
|
|
44
|
-
| `groq cerebras openai proxy` | 100-200 | Very Low | Navigational | P2 |
|
|
45
35
|
|
|
46
|
-
### Competitive/Comparison Keywords
|
|
36
|
+
### Competitive/Comparison Keywords (HIGH VALUE)
|
|
47
37
|
|
|
48
|
-
| Keyword |
|
|
49
|
-
|
|
38
|
+
| Keyword | Est. Monthly Volume | Competition | Priority |
|
|
39
|
+
|---------|---------------------|-------------|----------|
|
|
40
|
+
| `routellm alternative` | 1,500-3,000 | Low-Medium | P0 |
|
|
41
|
+
| `litellm alternative` | 1,500-3,000 | Low-Medium | P0 |
|
|
50
42
|
| `a3m router vs litellm` | 50-100 | Very Low | P1 |
|
|
51
|
-
| `
|
|
43
|
+
| `a3m router vs routellm` | 50-100 | Very Low | P1 |
|
|
52
44
|
| `openrouter alternative` | 200-400 | Low | P1 |
|
|
53
45
|
| `portkey alternative` | 100-200 | Very Low | P2 |
|
|
54
46
|
|
|
47
|
+
### Secondary Keywords
|
|
48
|
+
|
|
49
|
+
| Keyword | Est. Monthly Volume | Competition | Priority |
|
|
50
|
+
|---------|---------------------|-------------|----------|
|
|
51
|
+
| `ai gateway` | 5,000-8,000 | High | P1 |
|
|
52
|
+
| `model routing` | 500-1,000 | Low | P1 |
|
|
53
|
+
| `llm proxy` | 1,000-2,000 | Low-Medium | P1 |
|
|
54
|
+
| `openai compatible proxy` | 500-1,000 | Low | P1 |
|
|
55
|
+
| `llm load balancer` | 300-800 | Low | P1 |
|
|
56
|
+
| `llm provider comparison` | 1,000-2,000 | Medium | P1 |
|
|
57
|
+
|
|
55
58
|
---
|
|
56
59
|
|
|
57
|
-
## 2.
|
|
60
|
+
## 2. Key Messages (use everywhere)
|
|
58
61
|
|
|
59
|
-
|
|
62
|
+
1. **"82.5% routing accuracy without ML"** — Lead metric, differentiator
|
|
63
|
+
2. **"Matches RouteLLM BERT within 2.5%"** — Competitive positioning
|
|
64
|
+
3. **"30x more efficient than GPU-based routing"** — Efficiency story
|
|
65
|
+
4. **"Only router besides RouteLLM with published benchmarks"** — Trust signal
|
|
66
|
+
5. **"245% growth, 2,775 downloads in 3 days"** — Social proof
|
|
60
67
|
|
|
61
|
-
|
|
68
|
+
---
|
|
62
69
|
|
|
63
|
-
|
|
64
|
-
2. **Low-value generics**: "github", "slack", "telegram" don't help NPM search
|
|
65
|
-
3. **Missing critical terms**: "litellm" not mentioned as competitor keyword
|
|
70
|
+
## 3. Competitive Positioning
|
|
66
71
|
|
|
67
|
-
###
|
|
72
|
+
### RouteLLM Alternative (HIGH VALUE)
|
|
68
73
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
"llm-proxy",
|
|
78
|
-
"multi-model-router",
|
|
79
|
-
"cost-optimization",
|
|
80
|
-
"llm",
|
|
81
|
-
"openai",
|
|
82
|
-
"anthropic",
|
|
83
|
-
"groq",
|
|
84
|
-
"cerebras",
|
|
85
|
-
"deepseek",
|
|
86
|
-
"mistral",
|
|
87
|
-
"ollama",
|
|
88
|
-
"language-model",
|
|
89
|
-
"router",
|
|
90
|
-
"proxy",
|
|
91
|
-
"gateway",
|
|
92
|
-
"api-gateway",
|
|
93
|
-
"ai-routing",
|
|
94
|
-
"semantic-cache",
|
|
95
|
-
"guardrails",
|
|
96
|
-
"circuit-breaker",
|
|
97
|
-
"fallback",
|
|
98
|
-
"load-balancing",
|
|
99
|
-
"langchain",
|
|
100
|
-
"typescript",
|
|
101
|
-
"nodejs",
|
|
102
|
-
"npm",
|
|
103
|
-
"open-source",
|
|
104
|
-
"routellm",
|
|
105
|
-
"llm-gateway",
|
|
106
|
-
"ai-proxy",
|
|
107
|
-
"chatgpt-proxy",
|
|
108
|
-
"gpt-4",
|
|
109
|
-
"claude",
|
|
110
|
-
"gemini",
|
|
111
|
-
"batch-processing",
|
|
112
|
-
"streaming",
|
|
113
|
-
"rest-api",
|
|
114
|
-
"cli",
|
|
115
|
-
"sdk",
|
|
116
|
-
"middleware",
|
|
117
|
-
"cost-analytics",
|
|
118
|
-
"provider-registry",
|
|
119
|
-
"agent-framework"
|
|
120
|
-
]
|
|
121
|
-
```
|
|
74
|
+
"RouteLLM alternative" is our highest-value keyword because:
|
|
75
|
+
- RouteLLM users are actively looking for alternatives (GPU cost, complexity)
|
|
76
|
+
- We have a direct benchmark comparison (within 2.5%)
|
|
77
|
+
- We offer features RouteLLM lacks (proxy, cache, guardrails)
|
|
78
|
+
|
|
79
|
+
**Positioning:** "A3M Router matches RouteLLM BERT within 2.5% — without GPU. Plus proxy, cache, guardrails."
|
|
80
|
+
|
|
81
|
+
### LiteLLM Alternative (HIGH VALUE)
|
|
122
82
|
|
|
123
|
-
|
|
83
|
+
"LiteLLM alternative" captures users who want:
|
|
84
|
+
- Published routing benchmarks
|
|
85
|
+
- Zero-config setup
|
|
86
|
+
- Built-in semantic caching
|
|
124
87
|
|
|
125
|
-
**
|
|
88
|
+
**Positioning:** "A3M Router is the only LiteLLM alternative with published routing benchmarks (82.5% accuracy)."
|
|
126
89
|
|
|
127
|
-
|
|
90
|
+
### Competitive Table
|
|
128
91
|
|
|
129
|
-
|
|
92
|
+
| Competitor | NPM Weekly Downloads | Our Edge |
|
|
93
|
+
|------------|---------------------|----------|
|
|
94
|
+
| litellm | ~80,000 | Published benchmarks, zero-config, semantic cache |
|
|
95
|
+
| openrouter-sdk | ~5,000 | Self-hosted, no middleman fees, published accuracy |
|
|
96
|
+
| portkey-ai | ~3,000 | Open-source, free, no signup, benchmarks |
|
|
97
|
+
| routellm | ~1,000 | No GPU needed, proxy included, 39 providers |
|
|
130
98
|
|
|
131
99
|
---
|
|
132
100
|
|
|
133
|
-
##
|
|
101
|
+
## 4. On-Page SEO Checklist
|
|
134
102
|
|
|
135
103
|
### docs-site/index.html
|
|
136
104
|
|
|
137
105
|
| Element | Status | Target |
|
|
138
106
|
|---------|--------|--------|
|
|
139
|
-
| Title tag
|
|
140
|
-
| Meta description
|
|
141
|
-
|
|
|
142
|
-
|
|
|
143
|
-
|
|
|
144
|
-
|
|
|
145
|
-
|
|
|
146
|
-
|
|
|
147
|
-
| JSON-LD FAQPage | DONE | 6 FAQ items for rich results |
|
|
148
|
-
| JSON-LD BreadcrumbList | DONE | Home breadcrumb |
|
|
149
|
-
| robots meta | DONE | index, follow |
|
|
150
|
-
| Keywords in content | DONE | "llm router", "openai proxy", "cost savings" |
|
|
107
|
+
| Title tag | UPDATED | "A3M Router — 82.5% Routing Accuracy Without ML \| Matches RouteLLM" |
|
|
108
|
+
| Meta description | UPDATED | 30x efficiency story with accuracy metric |
|
|
109
|
+
| Keywords meta | UPDATED | All 12 primary/long-tail keywords |
|
|
110
|
+
| H1 tag | UPDATED | "LLM Routing That Matches GPU Models — Without GPU" |
|
|
111
|
+
| Stats section | UPDATED | Leads with 82.5% accuracy, 2.5% gap, 30x efficiency |
|
|
112
|
+
| FAQ schema | UPDATED | 8 questions targeting AI search queries |
|
|
113
|
+
| OG tags | UPDATED | Benchmark-first messaging |
|
|
114
|
+
| Twitter cards | UPDATED | Benchmark-first messaging |
|
|
151
115
|
|
|
152
116
|
### Content Structure (H-tag hierarchy)
|
|
153
117
|
|
|
154
118
|
```
|
|
155
|
-
H1:
|
|
119
|
+
H1: LLM Routing That Matches GPU Models — Without GPU
|
|
156
120
|
H2: Intelligent LLM Routing (feature)
|
|
157
121
|
H2: Cost Optimization (feature)
|
|
158
122
|
H2: Smart Fallback & Retry (feature)
|
|
@@ -163,79 +127,60 @@ H2: LLM Provider Pricing Tiers (section)
|
|
|
163
127
|
H3: Free/Budget/Mid/Premium Tier
|
|
164
128
|
H2: Quick Start: LLM Routing in 30 Seconds
|
|
165
129
|
H2: Frequently Asked Questions
|
|
166
|
-
H3: What is
|
|
167
|
-
H3: How
|
|
168
|
-
H3:
|
|
169
|
-
H3: How
|
|
170
|
-
H3:
|
|
130
|
+
H3: What is LLM routing accuracy?
|
|
131
|
+
H3: How does keyword-based routing compare to ML routing?
|
|
132
|
+
H3: What is the best lightweight LLM router?
|
|
133
|
+
H3: How to reduce OpenAI API costs?
|
|
134
|
+
H3: How does A3M Router compare to RouteLLM?
|
|
171
135
|
H3: How does A3M Router compare to LiteLLM?
|
|
172
136
|
```
|
|
173
137
|
|
|
174
138
|
---
|
|
175
139
|
|
|
176
|
-
##
|
|
177
|
-
|
|
178
|
-
### robots.txt
|
|
179
|
-
|
|
180
|
-
Created at `public/robots.txt`. Allows full crawling. References sitemap.
|
|
181
|
-
|
|
182
|
-
### sitemap.xml
|
|
183
|
-
|
|
184
|
-
Created at `public/sitemap.xml`. Includes docs-site homepage.
|
|
185
|
-
|
|
186
|
-
### llms.txt
|
|
187
|
-
|
|
188
|
-
Updated with growth narrative (2,775 downloads, 245% growth, 39 providers). LLM-discoverable format.
|
|
189
|
-
|
|
190
|
-
### Performance Notes
|
|
191
|
-
|
|
192
|
-
- docs-site/index.html is a single file with inline CSS (fast load, no external deps)
|
|
193
|
-
- No render-blocking JS
|
|
194
|
-
- No external font downloads (system fonts)
|
|
195
|
-
- Mobile responsive via CSS grid and media queries
|
|
196
|
-
|
|
197
|
-
---
|
|
198
|
-
|
|
199
|
-
## 5. GEO (Generative Engine Optimization) Notes
|
|
200
|
-
|
|
201
|
-
For AI search engines (ChatGPT, Perplexity, Claude, Google AI Overviews):
|
|
140
|
+
## 5. Technical SEO
|
|
202
141
|
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
142
|
+
### robots.txt (UPDATED)
|
|
143
|
+
- Allows full crawling
|
|
144
|
+
- Explicitly allows docs/, assets/, llms.txt, README.md
|
|
145
|
+
- Sitemap reference included
|
|
146
|
+
- Blocks /node_modules/, /dist/, /test/, /src/, /.git/
|
|
208
147
|
|
|
209
|
-
###
|
|
148
|
+
### sitemap.xml (UPDATED)
|
|
149
|
+
- 11 URLs including all key pages
|
|
150
|
+
- New: GEO.md, SEO_AUDIT.md, CONFIGURATION.md, INTEGRATIONS.md, benchmark-results.json, llms.txt
|
|
151
|
+
- Priority weighting: homepage (1.0) > GitHub (0.9) > NPM (0.9) > docs (0.7-0.8)
|
|
210
152
|
|
|
211
|
-
|
|
212
|
-
-
|
|
213
|
-
-
|
|
214
|
-
-
|
|
153
|
+
### llms.txt (UPDATED)
|
|
154
|
+
- Leads with benchmark story (82.5% accuracy)
|
|
155
|
+
- Includes comparison table vs RouteLLM/LiteLLM
|
|
156
|
+
- Structured data section for AI extraction
|
|
157
|
+
- All 5 key messages included
|
|
215
158
|
|
|
216
159
|
---
|
|
217
160
|
|
|
218
|
-
## 6.
|
|
161
|
+
## 6. GEO (Generative Engine Optimization)
|
|
219
162
|
|
|
220
|
-
|
|
221
|
-
|------------|----------------------|----------|
|
|
222
|
-
| litellm | ~80,000 | A3M is simpler, zero-config, built-in caching |
|
|
223
|
-
| openrouter-sdk | ~5,000 | A3M is self-hosted, no middleman fees |
|
|
224
|
-
| portkey-ai | ~3,000 | A3M is open-source, free, no signup |
|
|
163
|
+
See `docs/GEO.md` for full GEO strategy. Key elements:
|
|
225
164
|
|
|
226
|
-
**
|
|
165
|
+
1. **FAQ format** answering AI-searchable questions
|
|
166
|
+
2. **Comparison tables** with verifiable data AI engines cite
|
|
167
|
+
3. **Structured key-value block** for direct AI extraction
|
|
168
|
+
4. **Target AI queries** mapped to A3M Router answers
|
|
227
169
|
|
|
228
170
|
---
|
|
229
171
|
|
|
230
172
|
## 7. Action Items
|
|
231
173
|
|
|
232
|
-
- [x] Update docs-site/index.html
|
|
233
|
-
- [x]
|
|
234
|
-
- [x] Update
|
|
235
|
-
- [x]
|
|
236
|
-
- [x] Create
|
|
237
|
-
- [
|
|
238
|
-
- [
|
|
239
|
-
- [
|
|
240
|
-
- [
|
|
241
|
-
- [ ]
|
|
174
|
+
- [x] Update docs-site/index.html title, meta, H1, stats, FAQ
|
|
175
|
+
- [x] Update FAQ schema with benchmark-focused questions
|
|
176
|
+
- [x] Update OG/Twitter cards with benchmark messaging
|
|
177
|
+
- [x] Update llms.txt with benchmark story
|
|
178
|
+
- [x] Create docs/GEO.md with AI search optimization
|
|
179
|
+
- [x] Update docs/SEO_AUDIT.md with new keywords
|
|
180
|
+
- [x] Update public/sitemap.xml with all key pages
|
|
181
|
+
- [x] Update public/robots.txt with better crawling rules
|
|
182
|
+
- [x] Update package.json keywords (optimized)
|
|
183
|
+
- [ ] Create OG banner image with benchmark metrics
|
|
184
|
+
- [ ] Write comparison articles (A3M vs RouteLLM, vs LiteLLM)
|
|
185
|
+
- [ ] Submit sitemap to Google Search Console
|
|
186
|
+
- [ ] Set up Google Search Console for das-rebel.github.io
|