@anolilab/ai-model-registry 1.4.0 → 2.0.0
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/CHANGELOG.md +41 -0
- package/LICENSE.md +8 -13
- package/MIGRATION.md +474 -0
- package/README.md +94 -49
- package/dist/index.d.ts +16 -16
- package/dist/index.js +1 -3
- package/dist/packem_chunks/alibaba.js +1 -0
- package/dist/packem_chunks/amazon-bedrock.js +1 -0
- package/dist/packem_chunks/anthropic.js +1 -0
- package/dist/packem_chunks/api.js +75 -0
- package/dist/packem_chunks/azure-open-ai.js +1 -0
- package/dist/packem_chunks/cerebras.js +1 -0
- package/dist/packem_chunks/chutes.js +1 -0
- package/dist/packem_chunks/cloudflare.js +3 -0
- package/dist/packem_chunks/deep-infra.js +1 -0
- package/dist/packem_chunks/deep-seek.js +1 -0
- package/dist/packem_chunks/fireworks-ai.js +1 -0
- package/dist/packem_chunks/git-hub-copilot.js +1 -0
- package/dist/packem_chunks/git-hub-models.js +1 -0
- package/dist/packem_chunks/google-partner.js +1 -0
- package/dist/packem_chunks/google-vertex.js +1 -0
- package/dist/packem_chunks/google.js +1 -0
- package/dist/packem_chunks/groq.js +1 -0
- package/dist/packem_chunks/hugging-face.js +1 -0
- package/dist/packem_chunks/inception.js +1 -0
- package/dist/packem_chunks/inference.js +1 -0
- package/dist/packem_chunks/meta.js +1 -0
- package/dist/packem_chunks/mistral.js +1 -0
- package/dist/packem_chunks/model-scope.js +1 -0
- package/dist/packem_chunks/morph.js +1 -0
- package/dist/packem_chunks/open-ai.js +1 -0
- package/dist/packem_chunks/open-router.js +1 -0
- package/dist/packem_chunks/providers.js +1 -0
- package/dist/packem_chunks/requesty.js +73 -0
- package/dist/packem_chunks/together-ai.js +1 -0
- package/dist/packem_chunks/upstage.js +1 -0
- package/dist/packem_chunks/v0.js +1 -0
- package/dist/packem_chunks/venice.js +1 -0
- package/dist/packem_chunks/vercel.js +1 -0
- package/dist/packem_chunks/weights-_-biases.js +1 -0
- package/dist/packem_chunks/xai.js +1 -0
- package/dist/schema.d.ts +1 -1
- package/dist/schema.js +1 -1
- package/dist/types/alibaba.d.ts +6 -0
- package/dist/types/alibaba.js +0 -0
- package/dist/types/amazon-bedrock.d.ts +6 -0
- package/dist/types/amazon-bedrock.js +0 -0
- package/dist/types/anthropic.d.ts +6 -0
- package/dist/types/anthropic.js +0 -0
- package/dist/types/azure-open-ai.d.ts +6 -0
- package/dist/types/azure-open-ai.js +0 -0
- package/dist/types/cerebras.d.ts +6 -0
- package/dist/types/cerebras.js +0 -0
- package/dist/types/chutes.d.ts +6 -0
- package/dist/types/chutes.js +0 -0
- package/dist/types/cloudflare.d.ts +6 -0
- package/dist/types/cloudflare.js +0 -0
- package/dist/types/deep-infra.d.ts +6 -0
- package/dist/types/deep-infra.js +0 -0
- package/dist/types/deep-seek.d.ts +6 -0
- package/dist/types/deep-seek.js +0 -0
- package/dist/types/fireworks-ai.d.ts +6 -0
- package/dist/types/fireworks-ai.js +0 -0
- package/dist/types/git-hub-copilot.d.ts +6 -0
- package/dist/types/git-hub-copilot.js +0 -0
- package/dist/types/git-hub-models.d.ts +6 -0
- package/dist/types/git-hub-models.js +0 -0
- package/dist/types/google-partner.d.ts +6 -0
- package/dist/types/google-partner.js +0 -0
- package/dist/types/google-vertex.d.ts +6 -0
- package/dist/types/google-vertex.js +0 -0
- package/dist/types/google.d.ts +6 -0
- package/dist/types/google.js +0 -0
- package/dist/types/groq.d.ts +6 -0
- package/dist/types/groq.js +0 -0
- package/dist/types/hugging-face.d.ts +6 -0
- package/dist/types/hugging-face.js +0 -0
- package/dist/types/inception.d.ts +6 -0
- package/dist/types/inception.js +0 -0
- package/dist/types/inference.d.ts +6 -0
- package/dist/types/inference.js +0 -0
- package/dist/types/meta.d.ts +6 -0
- package/dist/types/meta.js +0 -0
- package/dist/types/mistral.d.ts +6 -0
- package/dist/types/mistral.js +0 -0
- package/dist/types/model-scope.d.ts +6 -0
- package/dist/types/model-scope.js +0 -0
- package/dist/types/morph.d.ts +6 -0
- package/dist/types/morph.js +0 -0
- package/dist/types/open-ai.d.ts +6 -0
- package/dist/types/open-ai.js +0 -0
- package/dist/types/open-router.d.ts +6 -0
- package/dist/types/open-router.js +0 -0
- package/dist/types/providers.d.ts +11 -0
- package/dist/types/providers.js +1 -0
- package/dist/types/requesty.d.ts +6 -0
- package/dist/types/requesty.js +0 -0
- package/dist/types/together-ai.d.ts +6 -0
- package/dist/types/together-ai.js +0 -0
- package/dist/types/upstage.d.ts +6 -0
- package/dist/types/upstage.js +0 -0
- package/dist/types/v0.d.ts +6 -0
- package/dist/types/v0.js +0 -0
- package/dist/types/venice.d.ts +6 -0
- package/dist/types/venice.js +0 -0
- package/dist/types/vercel.d.ts +6 -0
- package/dist/types/vercel.js +0 -0
- package/dist/types/weights-_-biases.d.ts +6 -0
- package/dist/types/weights-_-biases.js +0 -0
- package/dist/types/xai.d.ts +6 -0
- package/dist/types/xai.js +0 -0
- package/package.json +6 -1
- package/public/alibaba.json +326 -0
- package/public/amazon-bedrock.json +2141 -0
- package/public/anthropic.json +396 -0
- package/public/api.json +13504 -3
- package/public/azure-open-ai.json +332 -0
- package/public/cerebras.json +288 -0
- package/public/chutes.json +3220 -0
- package/public/cloudflare.json +3094 -0
- package/public/deep-infra.json +956 -0
- package/public/deep-seek.json +46 -0
- package/public/fireworks-ai.json +14486 -0
- package/public/git-hub-copilot.json +676 -0
- package/public/git-hub-models.json +256 -0
- package/public/google-partner.json +536 -0
- package/public/google-vertex.json +1376 -0
- package/public/google.json +536 -0
- package/public/groq.json +882 -0
- package/public/hugging-face.json +1096 -0
- package/public/inception.json +81 -0
- package/public/inference.json +291 -0
- package/public/meta.json +151 -0
- package/public/mistral.json +2181 -0
- package/public/model-scope.json +37839 -0
- package/public/morph.json +46 -0
- package/public/open-ai.json +606 -0
- package/public/open-router.json +15341 -0
- package/public/providers.json +43 -0
- package/public/requesty.json +13757 -0
- package/public/together-ai.json +641 -0
- package/public/upstage.json +606 -0
- package/public/v0.json +431 -0
- package/public/venice.json +501 -0
- package/public/vercel.json +4071 -0
- package/public/weights-&-biases.json +551 -0
- package/public/xai.json +256 -0
package/README.md
CHANGED
|
@@ -51,19 +51,19 @@ pnpm add @anolilab/ai-model-registry
|
|
|
51
51
|
## Usage
|
|
52
52
|
|
|
53
53
|
```typescript
|
|
54
|
-
import { getProviders, getModelsByProvider, getModelById, searchModels, getAllModels } from "@anolilab/ai-model-registry";
|
|
54
|
+
import { getProviders, getModelsByProvider, getModelById, searchModels, getAllModels, type ProviderName } from "@anolilab/ai-model-registry";
|
|
55
55
|
|
|
56
|
-
// Get all available providers
|
|
57
|
-
const providers = getProviders();
|
|
56
|
+
// Get all available providers (async)
|
|
57
|
+
const providers = await getProviders();
|
|
58
58
|
console.log(providers);
|
|
59
59
|
// ['Anthropic', 'Google', 'Groq', 'Meta', 'OpenAI', 'DeepSeek', ...]
|
|
60
60
|
|
|
61
|
-
// Get all models from a specific provider
|
|
62
|
-
const anthropicModels = getModelsByProvider("Anthropic");
|
|
61
|
+
// Get all models from a specific provider (type-safe provider name)
|
|
62
|
+
const anthropicModels = await getModelsByProvider("Anthropic" as ProviderName);
|
|
63
63
|
console.log(`Found ${anthropicModels.length} Anthropic models`);
|
|
64
64
|
|
|
65
65
|
// Get a specific model by ID
|
|
66
|
-
const model = getModelById("claude-3-opus-20240229");
|
|
66
|
+
const model = await getModelById("claude-3-opus-20240229");
|
|
67
67
|
if (model) {
|
|
68
68
|
console.log(`Model: ${model.name}`);
|
|
69
69
|
console.log(`Provider: ${model.provider}`);
|
|
@@ -72,18 +72,38 @@ if (model) {
|
|
|
72
72
|
}
|
|
73
73
|
|
|
74
74
|
// Search for models with specific capabilities
|
|
75
|
-
const visionModels = searchModels({ vision: true });
|
|
76
|
-
const reasoningModels = searchModels({ reasoning: true });
|
|
77
|
-
const toolCallModels = searchModels({ tool_call: true });
|
|
75
|
+
const visionModels = await searchModels({ vision: true });
|
|
76
|
+
const reasoningModels = await searchModels({ reasoning: true });
|
|
77
|
+
const toolCallModels = await searchModels({ tool_call: true });
|
|
78
78
|
|
|
79
79
|
// Get all models for advanced filtering
|
|
80
|
-
const allModels = getAllModels();
|
|
80
|
+
const allModels = await getAllModels();
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### Type-Safe Provider and Model Names
|
|
84
|
+
|
|
85
|
+
The package provides TypeScript types for provider names and model IDs:
|
|
86
|
+
|
|
87
|
+
```typescript
|
|
88
|
+
import type { ProviderName } from "@anolilab/ai-model-registry";
|
|
89
|
+
import type ModelName from "@anolilab/ai-model-registry/types/open-router";
|
|
90
|
+
|
|
91
|
+
// Type-safe provider names
|
|
92
|
+
const provider: ProviderName = "OpenAI"; // ✅ Valid
|
|
93
|
+
const invalid: ProviderName = "InvalidProvider"; // ❌ TypeScript error
|
|
94
|
+
|
|
95
|
+
// Type-safe model IDs for specific providers
|
|
96
|
+
const modelId: ModelName = "meta-llama/llama-3.1-8b-instruct"; // ✅ Valid
|
|
97
|
+
const invalidId: ModelName = "invalid-model"; // ❌ TypeScript error
|
|
81
98
|
```
|
|
82
99
|
|
|
83
100
|
## Features
|
|
84
101
|
|
|
85
102
|
- Unified interface to access models from multiple providers through a single API
|
|
86
103
|
- Full TypeScript support with Zod schema validation for type safety
|
|
104
|
+
- Type-safe provider names and model IDs with generated union types
|
|
105
|
+
- Dynamic imports for optimal code splitting and tree shaking
|
|
106
|
+
- Provider-specific JSON files for efficient loading
|
|
87
107
|
- Tree shaking support - import only what you need to minimize bundle size
|
|
88
108
|
- Comprehensive model information including capabilities, pricing, and limits
|
|
89
109
|
- Advanced search and filtering capabilities across all models
|
|
@@ -95,48 +115,52 @@ const allModels = getAllModels();
|
|
|
95
115
|
|
|
96
116
|
### Core Functions
|
|
97
117
|
|
|
98
|
-
|
|
118
|
+
All functions are async and use dynamic imports for optimal code splitting.
|
|
119
|
+
|
|
120
|
+
#### `getProviders(): Promise<ProviderName[]>`
|
|
99
121
|
|
|
100
122
|
Returns an array of all available provider names.
|
|
101
123
|
|
|
102
124
|
```typescript
|
|
103
|
-
const providers = getProviders();
|
|
125
|
+
const providers = await getProviders();
|
|
104
126
|
// ['Anthropic', 'Google', 'Groq', 'Meta', 'OpenAI', ...]
|
|
105
127
|
```
|
|
106
128
|
|
|
107
|
-
#### `getModelsByProvider(provider:
|
|
129
|
+
#### `getModelsByProvider(provider: ProviderName): Promise<Model[]>`
|
|
108
130
|
|
|
109
|
-
Returns all models for a specific provider.
|
|
131
|
+
Returns all models for a specific provider. Uses provider-specific JSON files for efficient loading.
|
|
110
132
|
|
|
111
133
|
```typescript
|
|
112
|
-
|
|
113
|
-
|
|
134
|
+
import type { ProviderName } from "@anolilab/ai-model-registry";
|
|
135
|
+
|
|
136
|
+
const openAIModels = await getModelsByProvider("OpenAI" as ProviderName);
|
|
137
|
+
const anthropicModels = await getModelsByProvider("Anthropic" as ProviderName);
|
|
114
138
|
```
|
|
115
139
|
|
|
116
|
-
#### `getModelById(id: string): Model | undefined
|
|
140
|
+
#### `getModelById(id: string): Promise<Model | undefined>`
|
|
117
141
|
|
|
118
142
|
Returns a specific model by its ID, or `undefined` if not found.
|
|
119
143
|
|
|
120
144
|
```typescript
|
|
121
|
-
const gpt4 = getModelById("gpt-4");
|
|
122
|
-
const claude = getModelById("claude-3-opus-20240229");
|
|
145
|
+
const gpt4 = await getModelById("gpt-4");
|
|
146
|
+
const claude = await getModelById("claude-3-opus-20240229");
|
|
123
147
|
```
|
|
124
148
|
|
|
125
|
-
#### `getAllModels(): Model[]
|
|
149
|
+
#### `getAllModels(): Promise<Model[]>`
|
|
126
150
|
|
|
127
|
-
Returns all models (useful for advanced filtering and custom logic).
|
|
151
|
+
Returns all models (useful for advanced filtering and custom logic). Loads all provider files in parallel.
|
|
128
152
|
|
|
129
153
|
```typescript
|
|
130
|
-
const allModels = getAllModels();
|
|
154
|
+
const allModels = await getAllModels();
|
|
131
155
|
const expensiveModels = allModels.filter((model) => (model.cost.input || 0) > 0.1 || (model.cost.output || 0) > 0.1);
|
|
132
156
|
```
|
|
133
157
|
|
|
134
|
-
#### `getProviderStats(): Record<
|
|
158
|
+
#### `getProviderStats(): Promise<Record<ProviderName, number>>`
|
|
135
159
|
|
|
136
160
|
Returns provider statistics with model counts.
|
|
137
161
|
|
|
138
162
|
```typescript
|
|
139
|
-
const stats = getProviderStats();
|
|
163
|
+
const stats = await getProviderStats();
|
|
140
164
|
console.log(stats);
|
|
141
165
|
// {
|
|
142
166
|
// 'OpenAI': 15,
|
|
@@ -149,9 +173,9 @@ console.log(stats);
|
|
|
149
173
|
|
|
150
174
|
### Advanced Search
|
|
151
175
|
|
|
152
|
-
#### `searchModels(criteria: SearchCriteria): Model[]
|
|
176
|
+
#### `searchModels(criteria: SearchCriteria): Promise<Model[]>`
|
|
153
177
|
|
|
154
|
-
Search models by various criteria with powerful filtering options.
|
|
178
|
+
Search models by various criteria with powerful filtering options. Automatically uses provider-specific files when a provider filter is specified.
|
|
155
179
|
|
|
156
180
|
```typescript
|
|
157
181
|
interface SearchCriteria {
|
|
@@ -163,7 +187,7 @@ interface SearchCriteria {
|
|
|
163
187
|
preview?: boolean;
|
|
164
188
|
|
|
165
189
|
// Provider filter
|
|
166
|
-
provider?:
|
|
190
|
+
provider?: ProviderName;
|
|
167
191
|
|
|
168
192
|
// Modality filters
|
|
169
193
|
modalities?: {
|
|
@@ -185,38 +209,32 @@ interface SearchCriteria {
|
|
|
185
209
|
|
|
186
210
|
```typescript
|
|
187
211
|
// Find all vision-capable models
|
|
188
|
-
const visionModels = searchModels({ vision: true });
|
|
212
|
+
const visionModels = await searchModels({ vision: true });
|
|
189
213
|
|
|
190
214
|
// Find models with reasoning capabilities
|
|
191
|
-
const reasoningModels = searchModels({ reasoning: true });
|
|
215
|
+
const reasoningModels = await searchModels({ reasoning: true });
|
|
192
216
|
|
|
193
217
|
// Find models that support tool calling
|
|
194
|
-
const toolCallModels = searchModels({ tool_call: true });
|
|
218
|
+
const toolCallModels = await searchModels({ tool_call: true });
|
|
195
219
|
|
|
196
|
-
// Find models from a specific provider
|
|
197
|
-
const openAIModels = searchModels({ provider: "OpenAI" });
|
|
220
|
+
// Find models from a specific provider (uses provider-specific file)
|
|
221
|
+
const openAIModels = await searchModels({ provider: "OpenAI" as ProviderName });
|
|
198
222
|
|
|
199
223
|
// Find models with large context windows
|
|
200
|
-
const largeContextModels = searchModels({ context_min: 100000 });
|
|
201
|
-
|
|
202
|
-
// Find affordable models
|
|
203
|
-
const affordableModels = searchModels({
|
|
204
|
-
max_input_cost: 0.01,
|
|
205
|
-
max_output_cost: 0.02,
|
|
206
|
-
});
|
|
224
|
+
const largeContextModels = await searchModels({ context_min: 100000 });
|
|
207
225
|
|
|
208
226
|
// Find models that accept text and image input
|
|
209
|
-
const multimodalModels = searchModels({
|
|
227
|
+
const multimodalModels = await searchModels({
|
|
210
228
|
modalities: {
|
|
211
229
|
input: ["text", "image"],
|
|
212
230
|
},
|
|
213
231
|
});
|
|
214
232
|
|
|
215
233
|
// Find models with streaming support
|
|
216
|
-
const streamingModels = searchModels({ streaming_supported: true });
|
|
234
|
+
const streamingModels = await searchModels({ streaming_supported: true });
|
|
217
235
|
|
|
218
236
|
// Find preview/beta models
|
|
219
|
-
const previewModels = searchModels({ preview: true });
|
|
237
|
+
const previewModels = await searchModels({ preview: true });
|
|
220
238
|
```
|
|
221
239
|
|
|
222
240
|
## Model Schema
|
|
@@ -312,21 +330,34 @@ interface Model {
|
|
|
312
330
|
}
|
|
313
331
|
```
|
|
314
332
|
|
|
315
|
-
## Tree Shaking
|
|
333
|
+
## Tree Shaking and Code Splitting
|
|
316
334
|
|
|
317
|
-
The package supports tree shaking
|
|
335
|
+
The package supports tree shaking and uses dynamic imports for optimal code splitting:
|
|
318
336
|
|
|
319
337
|
```typescript
|
|
320
338
|
// Only import specific functions
|
|
321
|
-
import { getProviders, getModelById } from "@anolilab/ai-model-registry";
|
|
339
|
+
import { getProviders, getModelById, type ProviderName } from "@anolilab/ai-model-registry";
|
|
322
340
|
|
|
323
341
|
// Import schema for validation
|
|
324
342
|
import { ModelSchema } from "@anolilab/ai-model-registry/schema";
|
|
325
343
|
|
|
326
344
|
// Import icons (if needed)
|
|
327
345
|
import { getIcon } from "@anolilab/ai-model-registry/icons";
|
|
346
|
+
|
|
347
|
+
// Import provider-specific model ID types
|
|
348
|
+
import type ModelName from "@anolilab/ai-model-registry/types/open-router";
|
|
349
|
+
import type { ProviderName } from "@anolilab/ai-model-registry/types/providers";
|
|
328
350
|
```
|
|
329
351
|
|
|
352
|
+
### Dynamic Loading
|
|
353
|
+
|
|
354
|
+
The package uses dynamic imports to load provider-specific JSON files on demand:
|
|
355
|
+
|
|
356
|
+
- **Single provider queries**: Only loads the specific provider's JSON file
|
|
357
|
+
- **All models queries**: Loads all provider files in parallel
|
|
358
|
+
- **Automatic caching**: Results are cached to avoid re-loading
|
|
359
|
+
- **Better code splitting**: Bundlers can split provider files into separate chunks
|
|
360
|
+
|
|
330
361
|
## Supported Providers
|
|
331
362
|
|
|
332
363
|
The registry includes models from 50+ providers:
|
|
@@ -500,7 +531,11 @@ pnpm run build
|
|
|
500
531
|
- Fetches pricing data from Helicone API
|
|
501
532
|
- Enriches models with icon information
|
|
502
533
|
- Synchronizes data between models with the same ID
|
|
503
|
-
- Generates `
|
|
534
|
+
- Generates `public/api.json` (main API file)
|
|
535
|
+
- Generates `public/{provider-name}.json` (provider-specific files)
|
|
536
|
+
- Generates `public/providers.json` (provider index)
|
|
537
|
+
- Generates `src/types/providers.ts` (ProviderName type)
|
|
538
|
+
- Generates `src/types/{provider-name}.ts` (ModelName types per provider)
|
|
504
539
|
|
|
505
540
|
3. **Generate Icons (`pnpm run generate-icons`)**:
|
|
506
541
|
- Creates SVG sprite sheet from LobeHub icons and custom icons
|
|
@@ -552,15 +587,25 @@ pnpm run lint:types
|
|
|
552
587
|
```
|
|
553
588
|
packages/ai-model-registry/
|
|
554
589
|
├── src/
|
|
555
|
-
│ ├── index.ts # Main exports
|
|
590
|
+
│ ├── index.ts # Main exports (async functions)
|
|
556
591
|
│ ├── schema.ts # Model schema definitions
|
|
557
|
-
│
|
|
592
|
+
│ ├── icons-sprite.ts # Generated icon sprite
|
|
593
|
+
│ └── types/ # Generated TypeScript types
|
|
594
|
+
│ ├── providers.ts # ProviderName type
|
|
595
|
+
│ ├── open-router.ts # ModelName type for OpenRouter
|
|
596
|
+
│ ├── open-ai.ts # ModelName type for OpenAI
|
|
597
|
+
│ └── ... # Other provider model types
|
|
558
598
|
├── scripts/
|
|
559
599
|
│ ├── aggregate-providers.ts # Data aggregation script
|
|
560
600
|
│ ├── generate-svg-sprite.ts # Icon generation
|
|
561
601
|
│ └── download/ # Provider data downloaders
|
|
602
|
+
├── public/ # Generated JSON files
|
|
603
|
+
│ ├── api.json # Main API file (all models)
|
|
604
|
+
│ ├── providers.json # Provider index
|
|
605
|
+
│ ├── open-router.json # Provider-specific models
|
|
606
|
+
│ ├── open-ai.json # Provider-specific models
|
|
607
|
+
│ └── ... # Other provider files
|
|
562
608
|
├── data/
|
|
563
|
-
│ ├── all-models.json # Generated model data
|
|
564
609
|
│ └── providers/ # Raw provider data
|
|
565
610
|
└── assets/
|
|
566
611
|
└── icons/ # Provider icons
|
package/dist/index.d.ts
CHANGED
|
@@ -1,25 +1,25 @@
|
|
|
1
1
|
import { Model } from './schema.js';
|
|
2
|
-
|
|
3
|
-
export { getIcon, hasProviderIcon, iconSymbols, isBase64Icon, isSvgIcon, providerIconMap, spriteSheet } from './icons-sprite.js';
|
|
2
|
+
import { ProviderName } from './types/providers.js';
|
|
4
3
|
import 'zod';
|
|
5
4
|
|
|
6
5
|
/**
|
|
7
6
|
* Retrieves all available AI model providers from the registry.
|
|
8
|
-
* @returns
|
|
7
|
+
* @returns Promise that resolves to an array of provider names sorted alphabetically.
|
|
9
8
|
*/
|
|
10
|
-
declare const getProviders: () =>
|
|
9
|
+
declare const getProviders: () => Promise<ProviderName[]>;
|
|
11
10
|
/**
|
|
12
11
|
* Retrieves all AI models for a specific provider.
|
|
12
|
+
* First tries to load from provider-specific JSON file, falls back to filtering all models.
|
|
13
13
|
* @param provider The name of the provider to filter by.
|
|
14
|
-
* @returns
|
|
14
|
+
* @returns Promise that resolves to an array of models belonging to the specified provider.
|
|
15
15
|
*/
|
|
16
|
-
declare const getModelsByProvider: (provider:
|
|
16
|
+
declare const getModelsByProvider: (provider: ProviderName) => Promise<Model[]>;
|
|
17
17
|
/**
|
|
18
18
|
* Retrieves a specific AI model by its unique identifier.
|
|
19
19
|
* @param id The unique identifier of the model to retrieve.
|
|
20
|
-
* @returns
|
|
20
|
+
* @returns Promise that resolves to the model if found, undefined otherwise.
|
|
21
21
|
*/
|
|
22
|
-
declare const getModelById: (id: string) => Model | undefined
|
|
22
|
+
declare const getModelById: (id: string) => Promise<Model | undefined>;
|
|
23
23
|
/**
|
|
24
24
|
* Searches and filters AI models based on various criteria such as capabilities, provider, and context window.
|
|
25
25
|
* @param criteria The search criteria to filter models by.
|
|
@@ -34,7 +34,7 @@ declare const getModelById: (id: string) => Model | undefined;
|
|
|
34
34
|
* @param criteria.streaming_supported Whether to filter by streaming support.
|
|
35
35
|
* @param criteria.tool_call Whether to filter by tool calling capability.
|
|
36
36
|
* @param criteria.vision Whether to filter by vision capability.
|
|
37
|
-
* @returns
|
|
37
|
+
* @returns Promise that resolves to an array of models that match the specified criteria.
|
|
38
38
|
*/
|
|
39
39
|
declare const searchModels: (criteria: {
|
|
40
40
|
context_max?: number;
|
|
@@ -44,21 +44,21 @@ declare const searchModels: (criteria: {
|
|
|
44
44
|
output?: string[];
|
|
45
45
|
};
|
|
46
46
|
preview?: boolean;
|
|
47
|
-
provider?:
|
|
47
|
+
provider?: ProviderName;
|
|
48
48
|
reasoning?: boolean;
|
|
49
49
|
streaming_supported?: boolean;
|
|
50
50
|
tool_call?: boolean;
|
|
51
51
|
vision?: boolean;
|
|
52
|
-
}) => Model[]
|
|
52
|
+
}) => Promise<Model[]>;
|
|
53
53
|
/**
|
|
54
54
|
* Retrieves all AI models from the registry for advanced filtering and processing.
|
|
55
|
-
* @returns
|
|
55
|
+
* @returns Promise that resolves to a copy of all models in the registry.
|
|
56
56
|
*/
|
|
57
|
-
declare const getAllModels: () => Model[]
|
|
57
|
+
declare const getAllModels: () => Promise<Model[]>;
|
|
58
58
|
/**
|
|
59
59
|
* Retrieves statistics about AI model providers including their model counts.
|
|
60
|
-
* @returns
|
|
60
|
+
* @returns Promise that resolves to an object mapping provider names to their model counts.
|
|
61
61
|
*/
|
|
62
|
-
declare const getProviderStats: () => Record<
|
|
62
|
+
declare const getProviderStats: () => Promise<Record<ProviderName, number>>;
|
|
63
63
|
|
|
64
|
-
export {
|
|
64
|
+
export { getAllModels, getModelById, getModelsByProvider, getProviderStats, getProviders, searchModels };
|