@zerone-ai/model-registry
v1.0.0
Published
Universal multi-provider LLM runtime, model registry, and context tracker (OpenAI, OpenRouter, Anthropic, Ollama, Groq, DeepSeek, Local LLMs)
Readme
@zerone-ai/model-registry
A universal, multi-provider model catalog, context window tracker, and unified streaming LLM execution layer. Supports any LLM provider (OpenAI, OpenRouter, Anthropic, Ollama, Groq, DeepSeek, Together, LM Studio, etc.).
Supported Providers
- OpenAI Compatible (Universal): Any provider supporting the OpenAI API specification (
OpenAICompatibleProvider). Works with:- Official OpenAI (
https://api.openai.com/v1) - Groq (
https://api.groq.com/openai/v1) - DeepSeek (
https://api.deepseek.com/v1) - Local Ollama (
http://localhost:11434/v1) - LM Studio / vLLM (
http://localhost:1234/v1) - Mistral, Together AI, Perplexity, etc.
- Official OpenAI (
- OpenRouter: Native discovery of all OpenRouter models, dynamic pricing, and context limits (
OpenRouterProvider). - Anthropic: Native Claude messages API adapter (
AnthropicProvider). - Custom Providers: Easily implement
LLMProviderfor any custom backend or proprietary gateway.
Installation
npm install @zerone-ai/model-registry openaiQuick Start
1. Connecting to Local Ollama
import { ModelRegistry, OpenAICompatibleProvider } from '@zerone-ai/model-registry';
const registry = new ModelRegistry();
// Register local Ollama
registry.register(
new OpenAICompatibleProvider({
name: 'ollama',
baseUrl: 'http://localhost:11434/v1'
})
);
const response = await registry.call({
provider: 'ollama',
model: 'llama3:latest',
messages: [{ role: 'user', content: 'Explain quicksort in 2 sentences.' }],
onChunk: (chunk) => process.stdout.write(chunk)
});2. Multi-Provider Router with Anthropic and OpenRouter
import { ModelRegistry, OpenRouterProvider, AnthropicProvider } from '@zerone-ai/model-registry';
const registry = new ModelRegistry();
registry
.register(new OpenRouterProvider(process.env.OPENROUTER_API_KEY))
.register(new AnthropicProvider(process.env.ANTHROPIC_API_KEY));
// Calls Anthropic directly
const claudeRes = await registry.call({
provider: 'anthropic',
model: 'claude-3-5-sonnet-20241022',
messages: [{ role: 'user', content: 'Write a TypeScript interface' }]
});
// Fetch unified models catalogue
const allModels = await registry.fetchModels();
console.log(`Loaded ${allModels.length} models across all providers.`);License
MIT
