@tashiscool/providers
v0.1.0
Published
LLM provider registry with model metadata and capabilities
Maintainers
Readme
@llm-utils/providers
LLM provider registry with comprehensive model metadata and capabilities. Easily discover and manage models across 14+ providers.
Installation
pnpm add @llm-utils/providers
# or
npm install @llm-utils/providersFeatures
- 14+ Provider Support - OpenAI, Anthropic, Google, Mistral, Groq, DeepSeek, xAI, and more
- Model Metadata - Context windows, capabilities, pricing, and release dates
- Capability Filtering - Find models with vision, tool calling, streaming, etc.
- Credential Management - Auto-detection from environment variables
- Type-Safe - Full TypeScript support with comprehensive types
Usage
Quick Start
import {
getModelById,
getModelsWithCapability,
ProviderRegistry
} from '@llm-utils/providers';
// Get a specific model
const gpt4o = getModelById('gpt-4o');
console.log(gpt4o?.contextWindow); // 128000
console.log(gpt4o?.capabilities.vision); // true
// Find all models with vision capability
const visionModels = getModelsWithCapability('vision');
console.log(visionModels.length); // Multiple models
// Create a registry from environment
const registry = new ProviderRegistry();
registry.registerFromEnv();
// Find models across registered providers
const streamingModels = registry.findModelsWithCapability('streaming');Provider Registry
import { ProviderRegistry, createProviderInstance } from '@llm-utils/providers';
// Create a registry
const registry = new ProviderRegistry();
// Register with explicit credentials
registry.register('openai', { apiKey: 'sk-...' });
registry.register('anthropic', { apiKey: 'sk-ant-...' });
// Or register all from environment
registry.registerFromEnv();
// Get a provider instance
const openai = registry.get('openai');
if (openai?.isConfigured()) {
const models = openai.listModels();
const visionModels = openai.listModelsWithCapability('vision');
}Model Discovery
import {
allModels,
getModelsByProvider,
getModelsWithCapability
} from '@llm-utils/providers';
// Get all models
console.log(allModels.length);
// Get models by provider
const anthropicModels = getModelsByProvider('anthropic');
const openaiModels = getModelsByProvider('openai');
// Filter by capability
const toolCallingModels = getModelsWithCapability('toolCalling');
const jsonModeModels = getModelsWithCapability('jsonMode');
const embeddingModels = getModelsWithCapability('embeddings');Provider Configuration
import { getProvider, getAllProviders, isProviderConfigured } from '@llm-utils/providers';
// Get provider config
const openai = getProvider('openai');
console.log(openai.baseUrl); // https://api.openai.com/v1
console.log(openai.requiredEnvVars); // ['OPENAI_API_KEY']
// List all providers
const providers = getAllProviders();
providers.forEach(p => console.log(`${p.name}: ${p.description}`));
// Check if configured from environment
if (isProviderConfigured('anthropic')) {
console.log('Anthropic is ready to use');
}Supported Providers
| Provider | ID | Models |
|----------|-----|--------|
| OpenAI | openai | GPT-4o, GPT-4, o1, DALL-E, Embeddings |
| Anthropic | anthropic | Claude 3.5 Sonnet, Claude 3 Opus, Haiku |
| Google | google | Gemini 2.0, Gemini 1.5 Pro/Flash |
| Mistral | mistral | Mistral Large, Small, Codestral |
| Groq | groq | Llama 3.3, Mixtral, Gemma |
| DeepSeek | deepseek | DeepSeek V3, R1 |
| xAI | xai | Grok 2, Grok Vision |
| Azure OpenAI | azure-openai | OpenAI models on Azure |
| AWS Bedrock | aws-bedrock | Claude, Mistral on AWS |
| Ollama | ollama | Local models |
| Together AI | together-ai | Open models |
| Replicate | replicate | Various models |
| Hugging Face | huggingface | Inference API |
| Cohere | cohere | Command, Embed |
Model Capabilities
Each model includes capability flags:
interface ModelCapabilities {
chat: boolean; // Text generation
vision: boolean; // Image input
toolCalling: boolean; // Function calling
jsonMode: boolean; // JSON output mode
structuredOutput: boolean; // Schema-based output
streaming: boolean; // Stream responses
embeddings: boolean; // Vector embeddings
imageGeneration: boolean; // Image creation
audio: boolean; // Audio I/O
}API Reference
Types
ProviderId- Provider identifier union typeModelMetadata- Model information including capabilities and pricingProviderConfig- Provider configuration including base URL and env varsProviderCredentials- API keys and connection optionsProviderInstance- Configured provider with methods
Functions
getModelById(id)- Get model by IDgetModelsByProvider(provider)- Get all models for a providergetModelsWithCapability(cap)- Filter models by capabilitygetProvider(id)- Get provider configurationgetAllProviders()- List all provider configsisProviderConfigured(id)- Check env var configurationcreateProviderInstance(id, creds?)- Create provider instance
Classes
ProviderRegistry- Manage multiple provider instances
License
MIT
