cost-katana 2.1.0 → 2.1.2
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/README.md +194 -27
- package/dist/constants/models.d.ts +212 -0
- package/dist/constants/models.d.ts.map +1 -0
- package/dist/constants/models.js +275 -0
- package/dist/constants/models.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +42 -11
- package/dist/index.js.map +1 -1
- package/package.json +9 -2
package/README.md
CHANGED
|
@@ -3,14 +3,15 @@
|
|
|
3
3
|
**AI that just works. With automatic cost tracking.**
|
|
4
4
|
|
|
5
5
|
```typescript
|
|
6
|
-
import { ai } from 'cost-katana';
|
|
6
|
+
import { ai, OPENAI } from 'cost-katana';
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
// NEW: Type-safe model selection (recommended)
|
|
9
|
+
const response = await ai(OPENAI.GPT_4, 'Hello, world!');
|
|
9
10
|
console.log(response.text); // "Hello! How can I help you today?"
|
|
10
11
|
console.log(`Cost: $${response.cost}`); // "Cost: $0.0012"
|
|
11
12
|
```
|
|
12
13
|
|
|
13
|
-
That's it. No setup. No configuration. No complexity.
|
|
14
|
+
That's it. No setup. No configuration. No complexity. **And no typos!**
|
|
14
15
|
|
|
15
16
|
## Installation
|
|
16
17
|
|
|
@@ -26,23 +27,29 @@ npm install cost-katana
|
|
|
26
27
|
|
|
27
28
|
## Quick Start
|
|
28
29
|
|
|
29
|
-
###
|
|
30
|
+
### 🎯 Type-Safe Model Selection (Recommended)
|
|
30
31
|
|
|
31
32
|
```typescript
|
|
32
|
-
import { ai } from 'cost-katana';
|
|
33
|
+
import { ai, OPENAI, ANTHROPIC, GOOGLE } from 'cost-katana';
|
|
33
34
|
|
|
34
|
-
//
|
|
35
|
-
await ai(
|
|
36
|
-
await ai(
|
|
37
|
-
await ai(
|
|
35
|
+
// Type-safe model constants with autocomplete
|
|
36
|
+
await ai(OPENAI.GPT_4, 'Explain quantum computing');
|
|
37
|
+
await ai(ANTHROPIC.CLAUDE_3_5_SONNET_20241022, 'Write a haiku');
|
|
38
|
+
await ai(GOOGLE.GEMINI_2_5_PRO, 'Solve this equation: 2x + 5 = 13');
|
|
38
39
|
```
|
|
39
40
|
|
|
41
|
+
**Benefits:**
|
|
42
|
+
- ✅ **Autocomplete** - Your IDE suggests all available models
|
|
43
|
+
- ✅ **No typos** - Compile-time errors catch mistakes
|
|
44
|
+
- ✅ **Refactor safely** - Update model names with confidence
|
|
45
|
+
- ✅ **Self-documenting** - See exactly which model you're using
|
|
46
|
+
|
|
40
47
|
### Chat Conversations
|
|
41
48
|
|
|
42
49
|
```typescript
|
|
43
|
-
import { chat } from 'cost-katana';
|
|
50
|
+
import { chat, OPENAI } from 'cost-katana';
|
|
44
51
|
|
|
45
|
-
const session = chat(
|
|
52
|
+
const session = chat(OPENAI.GPT_4);
|
|
46
53
|
await session.send('Hello!');
|
|
47
54
|
await session.send('What can you help me with?');
|
|
48
55
|
await session.send('Tell me a joke');
|
|
@@ -79,17 +86,64 @@ console.log(`Total cost: $${session.totalCost}`);
|
|
|
79
86
|
### Compare Models
|
|
80
87
|
|
|
81
88
|
```typescript
|
|
82
|
-
import { ai } from 'cost-katana';
|
|
89
|
+
import { ai, OPENAI, ANTHROPIC, GOOGLE } from 'cost-katana';
|
|
83
90
|
|
|
84
|
-
const models = [
|
|
91
|
+
const models = [
|
|
92
|
+
{ name: 'GPT-4', constant: OPENAI.GPT_4 },
|
|
93
|
+
{ name: 'Claude 3.5 Sonnet', constant: ANTHROPIC.CLAUDE_3_5_SONNET_20241022 },
|
|
94
|
+
{ name: 'Gemini 2.5 Pro', constant: GOOGLE.GEMINI_2_5_PRO }
|
|
95
|
+
];
|
|
85
96
|
const prompt = 'Explain relativity in one sentence';
|
|
86
97
|
|
|
87
|
-
for (const
|
|
88
|
-
const response = await ai(
|
|
89
|
-
console.log(`${
|
|
98
|
+
for (const { name, constant } of models) {
|
|
99
|
+
const response = await ai(constant, prompt);
|
|
100
|
+
console.log(`${name}: $${response.cost.toFixed(4)}`);
|
|
90
101
|
}
|
|
91
102
|
```
|
|
92
103
|
|
|
104
|
+
### 🔄 Migration Guide (from string model names)
|
|
105
|
+
|
|
106
|
+
**Old way (deprecated, still works):**
|
|
107
|
+
```typescript
|
|
108
|
+
// String model names (shows deprecation warning)
|
|
109
|
+
await ai('gpt-4', 'Hello');
|
|
110
|
+
await ai('claude-3-sonnet', 'Hello');
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
**New way (recommended):**
|
|
114
|
+
```typescript
|
|
115
|
+
import { ai, OPENAI, ANTHROPIC } from 'cost-katana';
|
|
116
|
+
|
|
117
|
+
// Type-safe constants with autocomplete
|
|
118
|
+
await ai(OPENAI.GPT_4, 'Hello');
|
|
119
|
+
await ai(ANTHROPIC.CLAUDE_3_5_SONNET_20241022, 'Hello');
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
**Available Model Constants:**
|
|
123
|
+
|
|
124
|
+
```typescript
|
|
125
|
+
// OpenAI Models
|
|
126
|
+
OPENAI.GPT_5, OPENAI.GPT_5_MINI, OPENAI.GPT_4, OPENAI.GPT_4_TURBO,
|
|
127
|
+
OPENAI.GPT_4O, OPENAI.GPT_3_5_TURBO, OPENAI.O1, OPENAI.O3, ...
|
|
128
|
+
|
|
129
|
+
// Anthropic Models
|
|
130
|
+
ANTHROPIC.CLAUDE_SONNET_4_5, ANTHROPIC.CLAUDE_HAIKU_4_5,
|
|
131
|
+
ANTHROPIC.CLAUDE_3_5_SONNET_20241022, ANTHROPIC.CLAUDE_3_5_HAIKU_20241022, ...
|
|
132
|
+
|
|
133
|
+
// Google Models
|
|
134
|
+
GOOGLE.GEMINI_2_5_PRO, GOOGLE.GEMINI_2_5_FLASH, GOOGLE.GEMINI_1_5_PRO,
|
|
135
|
+
GOOGLE.GEMINI_1_5_FLASH, ...
|
|
136
|
+
|
|
137
|
+
// AWS Bedrock Models
|
|
138
|
+
AWS_BEDROCK.NOVA_PRO, AWS_BEDROCK.NOVA_LITE, AWS_BEDROCK.CLAUDE_SONNET_4_5, ...
|
|
139
|
+
|
|
140
|
+
// Other Providers
|
|
141
|
+
XAI.GROK_2_1212, DEEPSEEK.DEEPSEEK_CHAT, MISTRAL.MISTRAL_LARGE_LATEST,
|
|
142
|
+
COHERE.COMMAND_R_PLUS, GROQ.LLAMA_3_3_70B_VERSATILE, META.LLAMA_3_3_70B_INSTRUCT, ...
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
> **Note**: String model names will continue to work but show a deprecation warning. They will be removed in a future major version.
|
|
146
|
+
|
|
93
147
|
## Features
|
|
94
148
|
|
|
95
149
|
### 💰 Cost Tracking
|
|
@@ -176,11 +230,26 @@ const response = await ai('gpt-4', 'Hello');
|
|
|
176
230
|
# Option 1: Cost Katana (Recommended - all features)
|
|
177
231
|
COST_KATANA_API_KEY=dak_your_key_here
|
|
178
232
|
|
|
179
|
-
# Option 2: Direct provider keys (
|
|
180
|
-
OPENAI_API_KEY=sk-...
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
233
|
+
# Option 2: Direct provider keys (uses native SDKs)
|
|
234
|
+
OPENAI_API_KEY=sk-... # For OpenAI models (native SDK) - USER PROVIDED
|
|
235
|
+
GEMINI_API_KEY=... # For Gemini models (native SDK) - USER PROVIDED
|
|
236
|
+
ANTHROPIC_API_KEY=sk-ant-... # For Claude models
|
|
237
|
+
AWS_ACCESS_KEY_ID=... # For AWS Bedrock
|
|
238
|
+
AWS_SECRET_ACCESS_KEY=... # For AWS Bedrock
|
|
239
|
+
AWS_REGION=us-east-1 # For AWS Bedrock
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
> **⚠️ Important for Self-Hosted Users**:
|
|
243
|
+
> - **OpenAI and Gemini providers require YOUR OWN API keys**
|
|
244
|
+
> - Cost Katana **does not provide** OpenAI or Google API keys
|
|
245
|
+
> - Without `OPENAI_API_KEY`, OpenAI models (GPT-*) will not be available
|
|
246
|
+
> - Without `GEMINI_API_KEY`, Gemini models will not be available
|
|
247
|
+
> - Only AWS Bedrock models (Claude, Nova, etc.) work with AWS credentials
|
|
248
|
+
>
|
|
249
|
+
> **With direct provider keys, Cost Katana automatically uses:**
|
|
250
|
+
> - Native OpenAI SDK for GPT models (if OPENAI_API_KEY provided)
|
|
251
|
+
> - Native Google Gemini SDK for Gemini models (if GEMINI_API_KEY provided)
|
|
252
|
+
> - AWS Bedrock as fallback for both
|
|
184
253
|
|
|
185
254
|
### Manual Configuration
|
|
186
255
|
|
|
@@ -209,21 +278,23 @@ const response = await ai('gpt-4', 'Your prompt', {
|
|
|
209
278
|
|
|
210
279
|
## Multi-Provider Support
|
|
211
280
|
|
|
212
|
-
Works with all major AI providers:
|
|
281
|
+
Works with all major AI providers with **native SDK support** for optimal performance:
|
|
213
282
|
|
|
214
283
|
```typescript
|
|
215
|
-
// OpenAI
|
|
284
|
+
// OpenAI (Native SDK)
|
|
216
285
|
await ai('gpt-4', 'Hello');
|
|
217
286
|
await ai('gpt-3.5-turbo', 'Hello');
|
|
287
|
+
await ai('gpt-4-turbo', 'Hello');
|
|
288
|
+
|
|
289
|
+
// Google Gemini (Native SDK)
|
|
290
|
+
await ai('gemini-pro', 'Hello');
|
|
291
|
+
await ai('gemini-1.5-flash', 'Hello');
|
|
292
|
+
await ai('gemini-1.5-pro', 'Hello');
|
|
218
293
|
|
|
219
294
|
// Anthropic
|
|
220
295
|
await ai('claude-3-sonnet', 'Hello');
|
|
221
296
|
await ai('claude-3-haiku', 'Hello');
|
|
222
297
|
|
|
223
|
-
// Google
|
|
224
|
-
await ai('gemini-pro', 'Hello');
|
|
225
|
-
await ai('gemini-flash', 'Hello');
|
|
226
|
-
|
|
227
298
|
// AWS Bedrock
|
|
228
299
|
await ai('nova-pro', 'Hello');
|
|
229
300
|
await ai('nova-lite', 'Hello');
|
|
@@ -231,6 +302,102 @@ await ai('nova-lite', 'Hello');
|
|
|
231
302
|
// And many more...
|
|
232
303
|
```
|
|
233
304
|
|
|
305
|
+
### Native SDK Integration
|
|
306
|
+
|
|
307
|
+
Cost Katana uses **native SDKs** for OpenAI and Google Gemini, providing:
|
|
308
|
+
- ✅ **Better Performance** - Direct API calls, no middleman
|
|
309
|
+
- ✅ **Lower Latency** - Optimized request/response handling
|
|
310
|
+
- ✅ **Automatic Failover** - Falls back to AWS Bedrock if native SDK fails
|
|
311
|
+
- ✅ **Full Feature Support** - Access to all provider-specific features
|
|
312
|
+
|
|
313
|
+
#### OpenAI Native SDK
|
|
314
|
+
|
|
315
|
+
```typescript
|
|
316
|
+
import { ai, OpenAIProvider } from 'cost-katana';
|
|
317
|
+
|
|
318
|
+
// Option 1: Automatic (uses OPENAI_API_KEY from env)
|
|
319
|
+
const response = await ai('gpt-4', 'Explain quantum computing');
|
|
320
|
+
|
|
321
|
+
// Option 2: Manual configuration
|
|
322
|
+
const openai = new OpenAIProvider({
|
|
323
|
+
apiKey: 'sk-your-openai-key',
|
|
324
|
+
provider: 'openai'
|
|
325
|
+
});
|
|
326
|
+
|
|
327
|
+
const result = await openai.makeRequest({
|
|
328
|
+
model: 'gpt-4-turbo',
|
|
329
|
+
messages: [
|
|
330
|
+
{ role: 'system', content: 'You are a helpful assistant' },
|
|
331
|
+
{ role: 'user', content: 'Hello!' }
|
|
332
|
+
],
|
|
333
|
+
maxTokens: 500,
|
|
334
|
+
temperature: 0.7
|
|
335
|
+
});
|
|
336
|
+
|
|
337
|
+
console.log(result.choices[0].message.content);
|
|
338
|
+
console.log(`Tokens: ${result.usage.total_tokens}`);
|
|
339
|
+
```
|
|
340
|
+
|
|
341
|
+
#### Google Gemini Native SDK
|
|
342
|
+
|
|
343
|
+
```typescript
|
|
344
|
+
import { ai, GoogleProvider } from 'cost-katana';
|
|
345
|
+
|
|
346
|
+
// Option 1: Automatic (uses GOOGLE_API_KEY from env)
|
|
347
|
+
const response = await ai('gemini-1.5-pro', 'Write a haiku about AI');
|
|
348
|
+
|
|
349
|
+
// Option 2: Manual configuration
|
|
350
|
+
const gemini = new GoogleProvider({
|
|
351
|
+
apiKey: 'your-google-ai-key',
|
|
352
|
+
provider: 'google'
|
|
353
|
+
});
|
|
354
|
+
|
|
355
|
+
const result = await gemini.makeRequest({
|
|
356
|
+
model: 'gemini-1.5-flash',
|
|
357
|
+
messages: [
|
|
358
|
+
{ role: 'user', content: 'Explain machine learning' }
|
|
359
|
+
],
|
|
360
|
+
maxTokens: 1000,
|
|
361
|
+
temperature: 0.8
|
|
362
|
+
});
|
|
363
|
+
|
|
364
|
+
console.log(result.choices[0].message.content);
|
|
365
|
+
console.log(`Tokens: ${result.usage.totalTokenCount}`);
|
|
366
|
+
```
|
|
367
|
+
|
|
368
|
+
#### Provider Auto-Detection
|
|
369
|
+
|
|
370
|
+
Cost Katana automatically detects the right provider based on the model name:
|
|
371
|
+
|
|
372
|
+
```typescript
|
|
373
|
+
// Auto-routes to OpenAI SDK
|
|
374
|
+
await ai('gpt-4', 'Hello');
|
|
375
|
+
|
|
376
|
+
// Auto-routes to Google Gemini SDK
|
|
377
|
+
await ai('gemini-pro', 'Hello');
|
|
378
|
+
|
|
379
|
+
// Auto-routes to Anthropic
|
|
380
|
+
await ai('claude-3-sonnet', 'Hello');
|
|
381
|
+
|
|
382
|
+
// Auto-routes to AWS Bedrock
|
|
383
|
+
await ai('nova-pro', 'Hello');
|
|
384
|
+
```
|
|
385
|
+
|
|
386
|
+
#### Failover & Reliability
|
|
387
|
+
|
|
388
|
+
If a native SDK fails, Cost Katana automatically falls back to AWS Bedrock:
|
|
389
|
+
|
|
390
|
+
```typescript
|
|
391
|
+
// Primary: OpenAI SDK
|
|
392
|
+
// Fallback: AWS Bedrock (if OpenAI fails)
|
|
393
|
+
const response = await ai('gpt-4', 'Hello', {
|
|
394
|
+
fallback: true // Enable automatic failover
|
|
395
|
+
});
|
|
396
|
+
|
|
397
|
+
console.log(`Provider used: ${response.provider}`);
|
|
398
|
+
// Output might be 'openai' or 'aws-bedrock' depending on availability
|
|
399
|
+
```
|
|
400
|
+
|
|
234
401
|
## Real-World Examples
|
|
235
402
|
|
|
236
403
|
### Customer Support Bot
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
export declare namespace OPENAI {
|
|
2
|
+
const GPT_5 = "gpt-5";
|
|
3
|
+
const GPT_5_MINI = "gpt-5-mini";
|
|
4
|
+
const GPT_5_NANO = "gpt-5-nano";
|
|
5
|
+
const GPT_5_PRO = "gpt-5-pro";
|
|
6
|
+
const GPT_5_CODEX = "gpt-5-codex";
|
|
7
|
+
const GPT_5_CHAT_LATEST = "gpt-5-chat-latest";
|
|
8
|
+
const GPT_4_1 = "gpt-4.1";
|
|
9
|
+
const GPT_4_1_MINI = "gpt-4.1-mini";
|
|
10
|
+
const GPT_4_1_NANO = "gpt-4.1-nano";
|
|
11
|
+
const GPT_4O = "gpt-4o";
|
|
12
|
+
const GPT_4O_2024_08_06 = "gpt-4o-2024-08-06";
|
|
13
|
+
const GPT_4O_2024_05_13 = "gpt-4o-2024-05-13";
|
|
14
|
+
const GPT_4O_AUDIO_PREVIEW = "gpt-4o-audio-preview";
|
|
15
|
+
const GPT_4O_REALTIME_PREVIEW = "gpt-4o-realtime-preview";
|
|
16
|
+
const GPT_4O_MINI = "gpt-4o-mini";
|
|
17
|
+
const GPT_4O_MINI_2024_07_18 = "gpt-4o-mini-2024-07-18";
|
|
18
|
+
const GPT_4O_MINI_AUDIO_PREVIEW = "gpt-4o-mini-audio-preview";
|
|
19
|
+
const GPT_4O_MINI_REALTIME_PREVIEW = "gpt-4o-mini-realtime-preview";
|
|
20
|
+
const O3_PRO = "o3-pro";
|
|
21
|
+
const O3_DEEP_RESEARCH = "o3-deep-research";
|
|
22
|
+
const O4_MINI = "o4-mini";
|
|
23
|
+
const O4_MINI_DEEP_RESEARCH = "o4-mini-deep-research";
|
|
24
|
+
const O3 = "o3";
|
|
25
|
+
const O1_PRO = "o1-pro";
|
|
26
|
+
const O1 = "o1";
|
|
27
|
+
const O3_MINI = "o3-mini";
|
|
28
|
+
const O1_MINI = "o1-mini";
|
|
29
|
+
const O1_PREVIEW = "o1-preview";
|
|
30
|
+
const SORA_2 = "sora-2";
|
|
31
|
+
const SORA_2_PRO = "sora-2-pro";
|
|
32
|
+
const GPT_IMAGE_1 = "gpt-image-1";
|
|
33
|
+
const GPT_IMAGE_1_MINI = "gpt-image-1-mini";
|
|
34
|
+
const DALL_E_3 = "dall-e-3";
|
|
35
|
+
const DALL_E_2 = "dall-e-2";
|
|
36
|
+
const GPT_REALTIME = "gpt-realtime";
|
|
37
|
+
const GPT_REALTIME_MINI = "gpt-realtime-mini";
|
|
38
|
+
const GPT_AUDIO = "gpt-audio";
|
|
39
|
+
const GPT_AUDIO_MINI = "gpt-audio-mini";
|
|
40
|
+
const GPT_4O_TRANSCRIBE = "gpt-4o-transcribe";
|
|
41
|
+
const GPT_4O_TRANSCRIBE_DIARIZE = "gpt-4o-transcribe-diarize";
|
|
42
|
+
const GPT_4O_MINI_TRANSCRIBE = "gpt-4o-mini-transcribe";
|
|
43
|
+
const WHISPER_1 = "whisper-1";
|
|
44
|
+
const GPT_4O_MINI_TTS = "gpt-4o-mini-tts";
|
|
45
|
+
const TTS_1 = "tts-1";
|
|
46
|
+
const TTS_1_HD = "tts-1-hd";
|
|
47
|
+
const GPT_OSS_120B = "gpt-oss-120b";
|
|
48
|
+
const GPT_OSS_20B = "gpt-oss-20b";
|
|
49
|
+
const CODEX_MINI_LATEST = "codex-mini-latest";
|
|
50
|
+
const OMNI_MODERATION_LATEST = "omni-moderation-latest";
|
|
51
|
+
const GPT_4O_MINI_SEARCH_PREVIEW = "gpt-4o-mini-search-preview-2025-03-11";
|
|
52
|
+
const GPT_4O_SEARCH_PREVIEW = "gpt-4o-search-preview-2025-03-11";
|
|
53
|
+
const COMPUTER_USE_PREVIEW = "computer-use-preview-2025-03-11";
|
|
54
|
+
const TEXT_EMBEDDING_3_SMALL = "text-embedding-3-small";
|
|
55
|
+
const TEXT_EMBEDDING_3_LARGE = "text-embedding-3-large";
|
|
56
|
+
const TEXT_EMBEDDING_ADA_002 = "text-embedding-ada-002";
|
|
57
|
+
const CHATGPT_4O_LATEST = "chatgpt-4o-latest";
|
|
58
|
+
const GPT_4_TURBO = "gpt-4-turbo";
|
|
59
|
+
const GPT_4 = "gpt-4";
|
|
60
|
+
const GPT_3_5_TURBO = "gpt-3.5-turbo";
|
|
61
|
+
const GPT_3_5_TURBO_0125 = "gpt-3.5-turbo-0125";
|
|
62
|
+
}
|
|
63
|
+
export declare namespace ANTHROPIC {
|
|
64
|
+
const CLAUDE_SONNET_4_5 = "claude-sonnet-4-5";
|
|
65
|
+
const CLAUDE_HAIKU_4_5 = "claude-haiku-4-5";
|
|
66
|
+
const CLAUDE_OPUS_4_1_20250805 = "claude-opus-4-1-20250805";
|
|
67
|
+
const CLAUDE_OPUS_4_20250514 = "claude-opus-4-20250514";
|
|
68
|
+
const CLAUDE_SONNET_4_20250514 = "claude-sonnet-4-20250514";
|
|
69
|
+
const CLAUDE_3_7_SONNET_20250219 = "claude-3-7-sonnet-20250219";
|
|
70
|
+
const CLAUDE_3_5_SONNET_20241022 = "claude-3-5-sonnet-20241022";
|
|
71
|
+
const CLAUDE_3_5_HAIKU_20241022 = "claude-3-5-haiku-20241022";
|
|
72
|
+
const CLAUDE_3_HAIKU_20240307 = "claude-3-haiku-20240307";
|
|
73
|
+
const CLAUDE_3_OPUS_20240229 = "claude-3-opus-20240229";
|
|
74
|
+
}
|
|
75
|
+
export declare namespace GOOGLE {
|
|
76
|
+
const GEMINI_2_5_PRO = "gemini-2.5-pro";
|
|
77
|
+
const GEMINI_2_5_FLASH = "gemini-2.5-flash";
|
|
78
|
+
const GEMINI_2_5_FLASH_LITE_PREVIEW = "gemini-2.5-flash-lite-preview";
|
|
79
|
+
const GEMINI_2_5_FLASH_LITE = "gemini-2.5-flash-lite";
|
|
80
|
+
const GEMINI_2_5_FLASH_AUDIO = "gemini-2.5-flash-audio";
|
|
81
|
+
const GEMINI_2_5_FLASH_LITE_AUDIO_PREVIEW = "gemini-2.5-flash-lite-audio-preview";
|
|
82
|
+
const GEMINI_2_5_FLASH_NATIVE_AUDIO = "gemini-2.5-flash-native-audio";
|
|
83
|
+
const GEMINI_2_5_FLASH_NATIVE_AUDIO_OUTPUT = "gemini-2.5-flash-native-audio-output";
|
|
84
|
+
const GEMINI_2_5_FLASH_PREVIEW_TTS = "gemini-2.5-flash-preview-tts";
|
|
85
|
+
const GEMINI_2_5_PRO_PREVIEW_TTS = "gemini-2.5-pro-preview-tts";
|
|
86
|
+
const GEMINI_2_0_FLASH = "gemini-2.0-flash";
|
|
87
|
+
const GEMINI_2_0_FLASH_LITE = "gemini-2.0-flash-lite";
|
|
88
|
+
const GEMINI_2_0_FLASH_AUDIO = "gemini-2.0-flash-audio";
|
|
89
|
+
const GEMINI_1_5_FLASH = "gemini-1.5-flash";
|
|
90
|
+
const GEMINI_1_5_FLASH_LARGE_CONTEXT = "gemini-1.5-flash-large-context";
|
|
91
|
+
const GEMINI_1_5_FLASH_8B = "gemini-1.5-flash-8b";
|
|
92
|
+
const GEMINI_1_5_FLASH_8B_LARGE_CONTEXT = "gemini-1.5-flash-8b-large-context";
|
|
93
|
+
const GEMINI_1_5_PRO = "gemini-1.5-pro";
|
|
94
|
+
const GEMINI_1_5_PRO_LARGE_CONTEXT = "gemini-1.5-pro-large-context";
|
|
95
|
+
const GEMINI_1_0_PRO = "gemini-1.0-pro";
|
|
96
|
+
const GEMINI_1_0_PRO_VISION = "gemini-1.0-pro-vision";
|
|
97
|
+
const GEMINI_PRO = "gemini-pro";
|
|
98
|
+
const GEMINI_PRO_VISION = "gemini-pro-vision";
|
|
99
|
+
const GEMMA_3N = "gemma-3n";
|
|
100
|
+
const GEMMA_3 = "gemma-3";
|
|
101
|
+
const GEMMA_2 = "gemma-2";
|
|
102
|
+
const GEMMA = "gemma";
|
|
103
|
+
const SHIELDGEMMA_2 = "shieldgemma-2";
|
|
104
|
+
const PALIGEMMA = "paligemma";
|
|
105
|
+
const CODEGEMMA = "codegemma";
|
|
106
|
+
const TXGEMMA = "txgemma";
|
|
107
|
+
const MEDGEMMA = "medgemma";
|
|
108
|
+
const MEDSIGLIP = "medsiglip";
|
|
109
|
+
const T5GEMMA = "t5gemma";
|
|
110
|
+
const TEXT_EMBEDDING_004 = "text-embedding-004";
|
|
111
|
+
const MULTIMODAL_EMBEDDINGS = "multimodal-embeddings";
|
|
112
|
+
const IMAGEN_4_GENERATION = "imagen-4-generation";
|
|
113
|
+
const IMAGEN_4_FAST_GENERATION = "imagen-4-fast-generation";
|
|
114
|
+
const IMAGEN_4_ULTRA_GENERATION = "imagen-4-ultra-generation";
|
|
115
|
+
const IMAGEN_3_GENERATION = "imagen-3-generation";
|
|
116
|
+
const IMAGEN_3_EDITING_CUSTOMIZATION = "imagen-3-editing-customization";
|
|
117
|
+
const IMAGEN_3_FAST_GENERATION = "imagen-3-fast-generation";
|
|
118
|
+
const IMAGEN_CAPTIONING_VQA = "imagen-captioning-vqa";
|
|
119
|
+
const VEO_2 = "veo-2";
|
|
120
|
+
const VEO_3 = "veo-3";
|
|
121
|
+
const VEO_3_FAST = "veo-3-fast";
|
|
122
|
+
const VEO_3_PREVIEW = "veo-3-preview";
|
|
123
|
+
const VEO_3_FAST_PREVIEW = "veo-3-fast-preview";
|
|
124
|
+
const VIRTUAL_TRY_ON = "virtual-try-on";
|
|
125
|
+
}
|
|
126
|
+
export declare namespace AWS_BEDROCK {
|
|
127
|
+
const NOVA_PRO = "amazon.nova-pro-v1:0";
|
|
128
|
+
const NOVA_LITE = "amazon.nova-lite-v1:0";
|
|
129
|
+
const NOVA_MICRO = "amazon.nova-micro-v1:0";
|
|
130
|
+
const CLAUDE_SONNET_4_5 = "anthropic.claude-sonnet-4-5-v1:0";
|
|
131
|
+
const CLAUDE_HAIKU_4_5 = "anthropic.claude-haiku-4-5-v1:0";
|
|
132
|
+
const CLAUDE_OPUS_4_1_20250805 = "anthropic.claude-opus-4-1-20250805-v1:0";
|
|
133
|
+
const CLAUDE_OPUS_4_20250514 = "anthropic.claude-opus-4-20250514-v1:0";
|
|
134
|
+
const CLAUDE_SONNET_4_20250514 = "anthropic.claude-sonnet-4-20250514-v1:0";
|
|
135
|
+
const CLAUDE_3_7_SONNET_20250219 = "anthropic.claude-3-7-sonnet-20250219-v1:0";
|
|
136
|
+
const CLAUDE_3_5_SONNET_20241022 = "anthropic.claude-3-5-sonnet-20241022-v1:0";
|
|
137
|
+
const CLAUDE_3_5_SONNET_20240620 = "anthropic.claude-3-5-sonnet-20240620-v1:0";
|
|
138
|
+
const CLAUDE_3_5_HAIKU_20241022 = "anthropic.claude-3-5-haiku-20241022-v1:0";
|
|
139
|
+
const CLAUDE_3_HAIKU_20240307 = "anthropic.claude-3-haiku-20240307-v1:0";
|
|
140
|
+
const CLAUDE_3_OPUS_20240229 = "anthropic.claude-3-opus-20240229-v1:0";
|
|
141
|
+
const US_CLAUDE_3_5_HAIKU_20241022 = "us.anthropic.claude-3-5-haiku-20241022-v1:0";
|
|
142
|
+
const LLAMA_3_3_70B_INSTRUCT = "meta.llama3-3-70b-instruct-v1:0";
|
|
143
|
+
const LLAMA_3_2_1B_INSTRUCT = "meta.llama3-2-1b-instruct-v1:0";
|
|
144
|
+
const LLAMA_3_2_3B_INSTRUCT = "meta.llama3-2-3b-instruct-v1:0";
|
|
145
|
+
const LLAMA_3_2_11B_VISION_INSTRUCT = "meta.llama3-2-11b-vision-instruct-v1:0";
|
|
146
|
+
const LLAMA_3_2_90B_VISION_INSTRUCT = "meta.llama3-2-90b-vision-instruct-v1:0";
|
|
147
|
+
const LLAMA_3_1_8B_INSTRUCT = "meta.llama3-1-8b-instruct-v1:0";
|
|
148
|
+
const LLAMA_3_1_70B_INSTRUCT = "meta.llama3-1-70b-instruct-v1:0";
|
|
149
|
+
const LLAMA_3_1_405B_INSTRUCT = "meta.llama3-1-405b-instruct-v1:0";
|
|
150
|
+
const MISTRAL_LARGE_2 = "mistral.mistral-large-2407-v1:0";
|
|
151
|
+
const MISTRAL_SMALL = "mistral.mistral-small-2402-v1:0";
|
|
152
|
+
const COHERE_COMMAND_R = "cohere.command-r-v1:0";
|
|
153
|
+
const COHERE_COMMAND_R_PLUS = "cohere.command-r-plus-v1:0";
|
|
154
|
+
}
|
|
155
|
+
export declare namespace XAI {
|
|
156
|
+
const GROK_2_1212 = "grok-2-1212";
|
|
157
|
+
const GROK_2_VISION_1212 = "grok-2-vision-1212";
|
|
158
|
+
const GROK_BETA = "grok-beta";
|
|
159
|
+
const GROK_VISION_BETA = "grok-vision-beta";
|
|
160
|
+
}
|
|
161
|
+
export declare namespace DEEPSEEK {
|
|
162
|
+
const DEEPSEEK_CHAT = "deepseek-chat";
|
|
163
|
+
const DEEPSEEK_REASONER = "deepseek-reasoner";
|
|
164
|
+
}
|
|
165
|
+
export declare namespace MISTRAL {
|
|
166
|
+
const MISTRAL_LARGE_LATEST = "mistral-large-latest";
|
|
167
|
+
const MISTRAL_SMALL_LATEST = "mistral-small-latest";
|
|
168
|
+
const CODESTRAL_LATEST = "codestral-latest";
|
|
169
|
+
const MINISTRAL_8B_LATEST = "ministral-8b-latest";
|
|
170
|
+
const MINISTRAL_3B_LATEST = "ministral-3b-latest";
|
|
171
|
+
const PIXTRAL_LARGE_LATEST = "pixtral-large-latest";
|
|
172
|
+
const PIXTRAL_12B = "pixtral-12b-2409";
|
|
173
|
+
}
|
|
174
|
+
export declare namespace COHERE {
|
|
175
|
+
const COMMAND_R_PLUS = "command-r-plus";
|
|
176
|
+
const COMMAND_R = "command-r";
|
|
177
|
+
const COMMAND_R_PLUS_08_2024 = "command-r-plus-08-2024";
|
|
178
|
+
const COMMAND_R_08_2024 = "command-r-08-2024";
|
|
179
|
+
const COMMAND_LIGHT = "command-light";
|
|
180
|
+
const EMBED_ENGLISH_V3 = "embed-english-v3.0";
|
|
181
|
+
const EMBED_MULTILINGUAL_V3 = "embed-multilingual-v3.0";
|
|
182
|
+
const EMBED_ENGLISH_LIGHT_V3 = "embed-english-light-v3.0";
|
|
183
|
+
const EMBED_MULTILINGUAL_LIGHT_V3 = "embed-multilingual-light-v3.0";
|
|
184
|
+
const RERANK_ENGLISH_V3 = "rerank-english-v3.0";
|
|
185
|
+
const RERANK_MULTILINGUAL_V3 = "rerank-multilingual-v3.0";
|
|
186
|
+
}
|
|
187
|
+
export declare namespace GROQ {
|
|
188
|
+
const LLAMA_3_3_70B_VERSATILE = "llama-3.3-70b-versatile";
|
|
189
|
+
const LLAMA_3_1_8B_INSTANT = "llama-3.1-8b-instant";
|
|
190
|
+
const LLAMA_3_1_70B_VERSATILE = "llama-3.1-70b-versatile";
|
|
191
|
+
const LLAMA_3_2_1B_PREVIEW = "llama-3.2-1b-preview";
|
|
192
|
+
const LLAMA_3_2_3B_PREVIEW = "llama-3.2-3b-preview";
|
|
193
|
+
const LLAMA_3_2_11B_VISION_PREVIEW = "llama-3.2-11b-vision-preview";
|
|
194
|
+
const LLAMA_3_2_90B_VISION_PREVIEW = "llama-3.2-90b-vision-preview";
|
|
195
|
+
const MIXTRAL_8X7B_32768 = "mixtral-8x7b-32768";
|
|
196
|
+
const GEMMA_2_9B_IT = "gemma2-9b-it";
|
|
197
|
+
const GEMMA_7B_IT = "gemma-7b-it";
|
|
198
|
+
}
|
|
199
|
+
export declare namespace META {
|
|
200
|
+
const LLAMA_3_3_70B_INSTRUCT = "llama-3.3-70b-instruct";
|
|
201
|
+
const LLAMA_3_2_1B_INSTRUCT = "llama-3.2-1b-instruct";
|
|
202
|
+
const LLAMA_3_2_3B_INSTRUCT = "llama-3.2-3b-instruct";
|
|
203
|
+
const LLAMA_3_2_11B_VISION_INSTRUCT = "llama-3.2-11b-vision-instruct";
|
|
204
|
+
const LLAMA_3_2_90B_VISION_INSTRUCT = "llama-3.2-90b-vision-instruct";
|
|
205
|
+
const LLAMA_3_1_8B_INSTRUCT = "llama-3.1-8b-instruct";
|
|
206
|
+
const LLAMA_3_1_70B_INSTRUCT = "llama-3.1-70b-instruct";
|
|
207
|
+
const LLAMA_3_1_405B_INSTRUCT = "llama-3.1-405b-instruct";
|
|
208
|
+
}
|
|
209
|
+
export declare function isModelConstant(value: string): boolean;
|
|
210
|
+
export declare function getAllModelConstants(): string[];
|
|
211
|
+
export declare function getProviderFromModel(modelId: string): string;
|
|
212
|
+
//# sourceMappingURL=models.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/constants/models.ts"],"names":[],"mappings":"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"}
|