You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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>
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 |
0 commit comments