Skip to content

Commit ffd0874

Browse files
apartsinclaude
andcommitted
docs: add Why ModelMesh value proposition table to README
Add a 10-row value proposition table to help developers evaluate the library. Update stale test counts (1,879 total) and sample counts (12 quickstart examples). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 6928f8b commit ffd0874

File tree

1 file changed

+21
-4
lines changed

1 file changed

+21
-4
lines changed

README.md

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
<img src="https://img.shields.io/badge/typescript-5.0%2B-blue" alt="TypeScript 5.0+">
1313
<img src="https://img.shields.io/badge/docker-supported-2496ED" alt="Docker">
1414
<a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-green" alt="License"></a>
15-
<a href="https://github.com/ApartsinProjects/ModelMesh/actions"><img src="https://img.shields.io/badge/tests-1%2C366%20passed-brightgreen" alt="Tests"></a>
15+
<a href="https://github.com/ApartsinProjects/ModelMesh/actions"><img src="https://img.shields.io/badge/tests-1%2C879%20passed-brightgreen" alt="Tests"></a>
1616
<a href="https://apartsinprojects.github.io/ModelMesh/"><img src="https://img.shields.io/badge/docs-GitHub%20Pages-blue" alt="Documentation"></a>
1717
</p>
1818

@@ -161,6 +161,23 @@ pools:
161161
client = modelmesh.create(config="modelmesh.yaml")
162162
```
163163

164+
## Why ModelMesh
165+
166+
Ten reasons to add ModelMesh to your next project.
167+
168+
| # | Value | Feature | How It Delivers |
169+
|---|---|---|---|
170+
| **1** | **Integrate in two minutes, scale the configuration as you grow** | **[Progressive Configuration](docs/index.md)** | **Env vars** for instant start. **YAML** for providers, pools, strategies, budgets, secrets. **Programmatic** for dynamic setups. All three compose seamlessly |
171+
| **2** | **One familiar API across every provider you will ever use** | **[Uniform OpenAI-Compatible API](docs/guides/Capabilities.md)** | Same `client.chat.completions.create()` for OpenAI, Anthropic, Gemini, DeepSeek, Mistral, Ollama, or custom models. Chat, embeddings, TTS, STT, image generation. Swap providers in config, never in code |
172+
| **3** | **Chain free tiers so you never hit a quota wall** | **[Free-Tier Aggregation](docs/guides/QuickStart.md)** | Set free API keys, call `create("chat")`. The library detects providers, pools them by capability, and rotates silently when a quota exhausts. Your code sees one provider; ModelMesh manages the rotation |
173+
| **4** | **Provider goes down, your app stays up** | **[Resilient Routing](docs/guides/ErrorHandling.md)** | Multiple rotation strategies: cost-first, latency-first, round-robin, sticky, rate-limit-aware. On failure the router deactivates the model, selects the next candidate, and retries within the same request |
174+
| **5** | **Request capabilities, not model names** | **[Capability Discovery](docs/guides/Capabilities.md)** | Ask for `"chat-completion"`, not `"gpt-4o"`. ModelMesh resolves to the best available model. New models appear, old ones deprecate, your code stays the same |
175+
| **6** | **Spending caps enforced before the overage, not after** | **[Budget Enforcement](docs/guides/QuickStart.md#usage-tracking)** | Real-time cost tracking per model and provider. Set daily or monthly limits in config. `BudgetExceededError` fires before the breaching request |
176+
| **7** | **One library for Python backend, TypeScript frontend, Docker proxy** | **[Full-Stack Deployment](docs/guides/QuickStart.md)** | `pip install`, `npm install`, or `docker run`. Each exposes the same API with zero core dependencies. One config file drives all deployment modes |
177+
| **8** | **Test AI code like regular code** | **[Mock Client and Testing](docs/guides/Testing.md)** | `mock_client(responses=[...])` returns an identical API with zero network calls and millisecond execution. Typed exceptions carry structured metadata. `client.explain()` dry-runs routing decisions |
178+
| **9** | **Production-grade observability without extra plumbing** | **[Observability Connectors](docs/ConnectorCatalogue.md)** | Pre-built sinks for console, file, JSON-log, Prometheus, and webhooks. Structured traces across routing, failover, and budget events. Plug in custom callbacks for existing dashboards |
179+
| **10** | **When pre-built doesn't fit, extend without forking** | **[CDK](docs/ConnectorCatalogue.md)** | Base classes for providers, rotation policies, secret stores, storage backends, and observability sinks. Inherit, override what you need, ship as a reusable package |
180+
164181
## Key Features
165182

166183
| Feature | Description |
@@ -201,7 +218,7 @@ client = modelmesh.create(config="modelmesh.yaml")
201218

202219
| Collection | Description |
203220
|---|---|
204-
| **[Quickstart](samples/quickstart/)** | 6 progressive examples in Python and TypeScript |
221+
| **[Quickstart](samples/quickstart/)** | 12 progressive examples in Python and TypeScript |
205222
| **[System Integration](samples/system/)** | Multi-provider, streaming, embeddings, cost optimization |
206223
| **[CDK Tutorials](samples/cdk/)** | Build providers, rotation policies, and more |
207224
| **[Custom Connectors](samples/connectors/)** | Full custom connector examples for all 6 types |
@@ -214,11 +231,11 @@ client = modelmesh.create(config="modelmesh.yaml")
214231
git clone https://github.com/ApartsinProjects/ModelMesh.git
215232
cd ModelMesh
216233

217-
# Run Python tests (855 tests)
234+
# Run Python tests (1,166 tests)
218235
pip install pytest
219236
cd src/python && python -m pytest ../../tests/ -v
220237

221-
# Run TypeScript tests (511 tests)
238+
# Run TypeScript tests (713 tests)
222239
cd src/typescript && npm install && npm test
223240

224241
# Or use the automation script

0 commit comments

Comments
 (0)