@ai-sdk/fireworks 0.2.14 → 1.0.0-alpha.10

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 CHANGED
@@ -1,75 +1,347 @@
1
1
  # @ai-sdk/fireworks
2
2
 
3
- ## 0.2.14
3
+ ## 1.0.0-alpha.10
4
4
 
5
5
  ### Patch Changes
6
6
 
7
- - Updated dependencies [d87b9d1]
8
- - @ai-sdk/provider-utils@2.2.8
9
- - @ai-sdk/openai-compatible@0.2.14
7
+ - Updated dependencies [c4df419]
8
+ - @ai-sdk/provider@2.0.0-alpha.10
9
+ - @ai-sdk/openai-compatible@1.0.0-alpha.10
10
+ - @ai-sdk/provider-utils@3.0.0-alpha.10
10
11
 
11
- ## 0.2.13
12
+ ## 1.0.0-alpha.9
12
13
 
13
14
  ### Patch Changes
14
15
 
15
- - Updated dependencies [23571c9]
16
- - @ai-sdk/openai-compatible@0.2.13
16
+ - Updated dependencies [811dff3]
17
+ - @ai-sdk/provider@2.0.0-alpha.9
18
+ - @ai-sdk/openai-compatible@1.0.0-alpha.9
19
+ - @ai-sdk/provider-utils@3.0.0-alpha.9
17
20
 
18
- ## 0.2.12
21
+ ## 1.0.0-alpha.8
19
22
 
20
23
  ### Patch Changes
21
24
 
22
- - Updated dependencies [13492fe]
23
- - @ai-sdk/openai-compatible@0.2.12
25
+ - Updated dependencies [4fef487]
26
+ - Updated dependencies [9222aeb]
27
+ - @ai-sdk/provider-utils@3.0.0-alpha.8
28
+ - @ai-sdk/provider@2.0.0-alpha.8
29
+ - @ai-sdk/openai-compatible@1.0.0-alpha.8
24
30
 
25
- ## 0.2.11
31
+ ## 1.0.0-alpha.7
26
32
 
27
33
  ### Patch Changes
28
34
 
29
- - Updated dependencies [b5c9cd4]
30
- - @ai-sdk/openai-compatible@0.2.11
35
+ - Updated dependencies [5c56081]
36
+ - @ai-sdk/provider@2.0.0-alpha.7
37
+ - @ai-sdk/openai-compatible@1.0.0-alpha.7
38
+ - @ai-sdk/provider-utils@3.0.0-alpha.7
31
39
 
32
- ## 0.2.10
40
+ ## 1.0.0-alpha.6
33
41
 
34
42
  ### Patch Changes
35
43
 
36
- - Updated dependencies [beef951]
37
- - @ai-sdk/provider@1.1.3
38
- - @ai-sdk/openai-compatible@0.2.10
39
- - @ai-sdk/provider-utils@2.2.7
44
+ - Updated dependencies [0d2c085]
45
+ - @ai-sdk/provider@2.0.0-alpha.6
46
+ - @ai-sdk/openai-compatible@1.0.0-alpha.6
47
+ - @ai-sdk/provider-utils@3.0.0-alpha.6
40
48
 
41
- ## 0.2.9
49
+ ## 1.0.0-alpha.4
42
50
 
43
51
  ### Patch Changes
44
52
 
45
- - Updated dependencies [1bbc698]
46
- - @ai-sdk/openai-compatible@0.2.9
53
+ - Updated dependencies [dc714f3]
54
+ - @ai-sdk/provider@2.0.0-alpha.4
55
+ - @ai-sdk/openai-compatible@1.0.0-alpha.4
56
+ - @ai-sdk/provider-utils@3.0.0-alpha.4
47
57
 
48
- ## 0.2.8
58
+ ## 1.0.0-alpha.3
49
59
 
50
60
  ### Patch Changes
51
61
 
52
- - Updated dependencies [013faa8]
53
- - @ai-sdk/provider@1.1.2
54
- - @ai-sdk/openai-compatible@0.2.8
55
- - @ai-sdk/provider-utils@2.2.6
62
+ - Updated dependencies [6b98118]
63
+ - @ai-sdk/provider@2.0.0-alpha.3
64
+ - @ai-sdk/openai-compatible@1.0.0-alpha.3
65
+ - @ai-sdk/provider-utils@3.0.0-alpha.3
56
66
 
57
- ## 0.2.7
67
+ ## 1.0.0-alpha.2
58
68
 
59
69
  ### Patch Changes
60
70
 
61
- - Updated dependencies [c21fa6d]
62
- - @ai-sdk/provider-utils@2.2.5
63
- - @ai-sdk/provider@1.1.1
64
- - @ai-sdk/openai-compatible@0.2.7
71
+ - Updated dependencies [26535e0]
72
+ - @ai-sdk/provider@2.0.0-alpha.2
73
+ - @ai-sdk/openai-compatible@1.0.0-alpha.2
74
+ - @ai-sdk/provider-utils@3.0.0-alpha.2
65
75
 
66
- ## 0.2.6
76
+ ## 1.0.0-alpha.1
67
77
 
68
78
  ### Patch Changes
69
79
 
70
- - Updated dependencies [2c19b9a]
71
- - @ai-sdk/provider-utils@2.2.4
72
- - @ai-sdk/openai-compatible@0.2.6
80
+ - Updated dependencies [3f2f00c]
81
+ - @ai-sdk/provider@2.0.0-alpha.1
82
+ - @ai-sdk/openai-compatible@1.0.0-alpha.1
83
+ - @ai-sdk/provider-utils@3.0.0-alpha.1
84
+
85
+ ## 1.0.0-canary.19
86
+
87
+ ### Patch Changes
88
+
89
+ - Updated dependencies [faf8446]
90
+ - @ai-sdk/provider-utils@3.0.0-canary.19
91
+ - @ai-sdk/openai-compatible@1.0.0-canary.19
92
+
93
+ ## 1.0.0-canary.18
94
+
95
+ ### Patch Changes
96
+
97
+ - Updated dependencies [40acf9b]
98
+ - @ai-sdk/provider-utils@3.0.0-canary.18
99
+ - @ai-sdk/openai-compatible@1.0.0-canary.18
100
+
101
+ ## 1.0.0-canary.17
102
+
103
+ ### Major Changes
104
+
105
+ - 516be5b: ### Move Image Model Settings into generate options
106
+
107
+ Image Models no longer have settings. Instead, `maxImagesPerCall` can be passed directly to `generateImage()`. All other image settings can be passed to `providerOptions[provider]`.
108
+
109
+ Before
110
+
111
+ ```js
112
+ await generateImage({
113
+ model: luma.image('photon-flash-1', {
114
+ maxImagesPerCall: 5,
115
+ pollIntervalMillis: 500,
116
+ }),
117
+ prompt,
118
+ n: 10,
119
+ });
120
+ ```
121
+
122
+ After
123
+
124
+ ```js
125
+ await generateImage({
126
+ model: luma.image('photon-flash-1'),
127
+ prompt,
128
+ n: 10,
129
+ maxImagesPerCall: 5,
130
+ providerOptions: {
131
+ luma: { pollIntervalMillis: 5 },
132
+ },
133
+ });
134
+ ```
135
+
136
+ Pull Request: https://github.com/vercel/ai/pull/6180
137
+
138
+ ### Patch Changes
139
+
140
+ - Updated dependencies [516be5b]
141
+ - Updated dependencies [ea7a7c9]
142
+ - @ai-sdk/openai-compatible@1.0.0-canary.17
143
+ - @ai-sdk/provider-utils@3.0.0-canary.17
144
+
145
+ ## 1.0.0-canary.16
146
+
147
+ ### Patch Changes
148
+
149
+ - Updated dependencies [87b828f]
150
+ - @ai-sdk/provider-utils@3.0.0-canary.16
151
+ - @ai-sdk/openai-compatible@1.0.0-canary.16
152
+
153
+ ## 1.0.0-canary.15
154
+
155
+ ### Patch Changes
156
+
157
+ - Updated dependencies [a571d6e]
158
+ - Updated dependencies [a8c8bd5]
159
+ - Updated dependencies [7979f7f]
160
+ - Updated dependencies [41fa418]
161
+ - @ai-sdk/provider-utils@3.0.0-canary.15
162
+ - @ai-sdk/provider@2.0.0-canary.14
163
+ - @ai-sdk/openai-compatible@1.0.0-canary.15
164
+
165
+ ## 1.0.0-canary.14
166
+
167
+ ### Patch Changes
168
+
169
+ - Updated dependencies [957b739]
170
+ - Updated dependencies [9bd5ab5]
171
+ - @ai-sdk/provider-utils@3.0.0-canary.14
172
+ - @ai-sdk/provider@2.0.0-canary.13
173
+ - @ai-sdk/openai-compatible@1.0.0-canary.14
174
+
175
+ ## 1.0.0-canary.13
176
+
177
+ ### Patch Changes
178
+
179
+ - d9209ca: fix (image-model): `specificationVersion: v1` -> `v2`
180
+ - Updated dependencies [7b3ae3f]
181
+ - Updated dependencies [d9209ca]
182
+ - Updated dependencies [0ff02bb]
183
+ - @ai-sdk/provider@2.0.0-canary.12
184
+ - @ai-sdk/openai-compatible@1.0.0-canary.13
185
+ - @ai-sdk/provider-utils@3.0.0-canary.13
186
+
187
+ ## 1.0.0-canary.12
188
+
189
+ ### Patch Changes
190
+
191
+ - Updated dependencies [9bf7291]
192
+ - Updated dependencies [4617fab]
193
+ - Updated dependencies [e030615]
194
+ - @ai-sdk/provider@2.0.0-canary.11
195
+ - @ai-sdk/openai-compatible@1.0.0-canary.12
196
+ - @ai-sdk/provider-utils@3.0.0-canary.12
197
+
198
+ ## 1.0.0-canary.11
199
+
200
+ ### Patch Changes
201
+
202
+ - 9301f86: refactor (image-model): rename `ImageModelV1` to `ImageModelV2`
203
+ - Updated dependencies [db72adc]
204
+ - Updated dependencies [42e32b0]
205
+ - Updated dependencies [66962ed]
206
+ - Updated dependencies [9301f86]
207
+ - Updated dependencies [a3f768e]
208
+ - @ai-sdk/openai-compatible@1.0.0-canary.11
209
+ - @ai-sdk/provider-utils@3.0.0-canary.11
210
+ - @ai-sdk/provider@2.0.0-canary.10
211
+
212
+ ## 1.0.0-canary.10
213
+
214
+ ### Patch Changes
215
+
216
+ - Updated dependencies [cf8280e]
217
+ - Updated dependencies [e86be6f]
218
+ - @ai-sdk/openai-compatible@1.0.0-canary.10
219
+ - @ai-sdk/provider@2.0.0-canary.9
220
+ - @ai-sdk/provider-utils@3.0.0-canary.10
221
+
222
+ ## 1.0.0-canary.9
223
+
224
+ ### Patch Changes
225
+
226
+ - Updated dependencies [95857aa]
227
+ - Updated dependencies [7ea4132]
228
+ - @ai-sdk/provider@2.0.0-canary.8
229
+ - @ai-sdk/openai-compatible@1.0.0-canary.9
230
+ - @ai-sdk/provider-utils@3.0.0-canary.9
231
+
232
+ ## 1.0.0-canary.8
233
+
234
+ ### Patch Changes
235
+
236
+ - Updated dependencies [5d142ab]
237
+ - Updated dependencies [b6b43c7]
238
+ - Updated dependencies [b9a6121]
239
+ - Updated dependencies [8aa9e20]
240
+ - Updated dependencies [3795467]
241
+ - @ai-sdk/provider-utils@3.0.0-canary.8
242
+ - @ai-sdk/provider@2.0.0-canary.7
243
+ - @ai-sdk/openai-compatible@1.0.0-canary.8
244
+
245
+ ## 1.0.0-canary.7
246
+
247
+ ### Patch Changes
248
+
249
+ - fa49207: feat(providers/openai-compatible): convert to providerOptions
250
+ - 26735b5: chore(embedding-model): add v2 interface
251
+ - Updated dependencies [fa49207]
252
+ - Updated dependencies [26735b5]
253
+ - Updated dependencies [443d8ec]
254
+ - Updated dependencies [14c9410]
255
+ - Updated dependencies [d9c98f4]
256
+ - Updated dependencies [c4a2fec]
257
+ - Updated dependencies [0054544]
258
+ - Updated dependencies [9e9c809]
259
+ - Updated dependencies [32831c6]
260
+ - Updated dependencies [d0f9495]
261
+ - Updated dependencies [fd65bc6]
262
+ - Updated dependencies [393138b]
263
+ - Updated dependencies [7182d14]
264
+ - @ai-sdk/openai-compatible@1.0.0-canary.7
265
+ - @ai-sdk/provider@2.0.0-canary.6
266
+ - @ai-sdk/provider-utils@3.0.0-canary.7
267
+
268
+ ## 1.0.0-canary.6
269
+
270
+ ### Patch Changes
271
+
272
+ - Updated dependencies [6db02c9]
273
+ - Updated dependencies [411e483]
274
+ - Updated dependencies [79457bd]
275
+ - Updated dependencies [ad80501]
276
+ - Updated dependencies [1766ede]
277
+ - Updated dependencies [f10304b]
278
+ - @ai-sdk/openai-compatible@1.0.0-canary.6
279
+ - @ai-sdk/provider@2.0.0-canary.5
280
+ - @ai-sdk/provider-utils@3.0.0-canary.6
281
+
282
+ ## 1.0.0-canary.5
283
+
284
+ ### Patch Changes
285
+
286
+ - Updated dependencies [6f6bb89]
287
+ - @ai-sdk/provider@2.0.0-canary.4
288
+ - @ai-sdk/openai-compatible@1.0.0-canary.5
289
+ - @ai-sdk/provider-utils@3.0.0-canary.5
290
+
291
+ ## 1.0.0-canary.4
292
+
293
+ ### Patch Changes
294
+
295
+ - Updated dependencies [d1a1aa1]
296
+ - @ai-sdk/provider@2.0.0-canary.3
297
+ - @ai-sdk/openai-compatible@1.0.0-canary.4
298
+ - @ai-sdk/provider-utils@3.0.0-canary.4
299
+
300
+ ## 1.0.0-canary.3
301
+
302
+ ### Patch Changes
303
+
304
+ - Updated dependencies [a166433]
305
+ - Updated dependencies [abf9a79]
306
+ - Updated dependencies [9f95b35]
307
+ - Updated dependencies [0a87932]
308
+ - Updated dependencies [6dc848c]
309
+ - @ai-sdk/provider-utils@3.0.0-canary.3
310
+ - @ai-sdk/provider@2.0.0-canary.2
311
+ - @ai-sdk/openai-compatible@1.0.0-canary.3
312
+
313
+ ## 1.0.0-canary.2
314
+
315
+ ### Patch Changes
316
+
317
+ - Updated dependencies [c57e248]
318
+ - Updated dependencies [33f4a6a]
319
+ - @ai-sdk/provider@2.0.0-canary.1
320
+ - @ai-sdk/openai-compatible@1.0.0-canary.2
321
+ - @ai-sdk/provider-utils@3.0.0-canary.2
322
+
323
+ ## 1.0.0-canary.1
324
+
325
+ ### Patch Changes
326
+
327
+ - Updated dependencies [060370c]
328
+ - Updated dependencies [0c0c0b3]
329
+ - Updated dependencies [63d791d]
330
+ - @ai-sdk/provider-utils@3.0.0-canary.1
331
+ - @ai-sdk/openai-compatible@1.0.0-canary.1
332
+
333
+ ## 1.0.0-canary.0
334
+
335
+ ### Major Changes
336
+
337
+ - d5f588f: AI SDK 5
338
+
339
+ ### Patch Changes
340
+
341
+ - Updated dependencies [d5f588f]
342
+ - @ai-sdk/provider-utils@3.0.0-canary.0
343
+ - @ai-sdk/openai-compatible@1.0.0-canary.0
344
+ - @ai-sdk/provider@2.0.0-canary.0
73
345
 
74
346
  ## 0.2.5
75
347
 
package/dist/index.d.mts CHANGED
@@ -1,28 +1,36 @@
1
- import { ProviderV1, LanguageModelV1, EmbeddingModelV1, ImageModelV1 } from '@ai-sdk/provider';
2
- import { FetchFunction } from '@ai-sdk/provider-utils';
3
1
  import { z } from 'zod';
4
- import { OpenAICompatibleChatSettings, OpenAICompatibleCompletionSettings, OpenAICompatibleEmbeddingSettings } from '@ai-sdk/openai-compatible';
5
-
6
- type FireworksChatModelId = 'accounts/fireworks/models/deepseek-v3' | 'accounts/fireworks/models/llama-v3p3-70b-instruct' | 'accounts/fireworks/models/llama-v3p2-3b-instruct' | 'accounts/fireworks/models/llama-v3p1-405b-instruct' | 'accounts/fireworks/models/llama-v3p1-8b-instruct' | 'accounts/fireworks/models/mixtral-8x7b-instruct' | 'accounts/fireworks/models/mixtral-8x22b-instruct' | 'accounts/fireworks/models/mixtral-8x7b-instruct-hf' | 'accounts/fireworks/models/qwen2p5-coder-32b-instruct' | 'accounts/fireworks/models/qwen2p5-72b-instruct' | 'accounts/fireworks/models/qwen-qwq-32b-preview' | 'accounts/fireworks/models/qwen2-vl-72b-instruct' | 'accounts/fireworks/models/llama-v3p2-11b-vision-instruct' | 'accounts/fireworks/models/qwq-32b' | 'accounts/fireworks/models/yi-large' | (string & {});
7
- interface FireworksChatSettings extends OpenAICompatibleChatSettings {
8
- }
9
-
10
- type FireworksCompletionModelId = 'accounts/fireworks/models/llama-v3-8b-instruct' | 'accounts/fireworks/models/llama-v2-34b-code' | (string & {});
11
- interface FireworksCompletionSettings extends OpenAICompatibleCompletionSettings {
12
- }
2
+ import { ImageModelV2, ProviderV2, LanguageModelV2, EmbeddingModelV2 } from '@ai-sdk/provider';
3
+ import { FetchFunction } from '@ai-sdk/provider-utils';
13
4
 
14
5
  type FireworksEmbeddingModelId = 'nomic-ai/nomic-embed-text-v1.5' | (string & {});
15
- interface FireworksEmbeddingSettings extends OpenAICompatibleEmbeddingSettings {
16
- }
6
+ declare const fireworksEmbeddingProviderOptions: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
7
+ type FireworksEmbeddingProviderOptions = z.infer<typeof fireworksEmbeddingProviderOptions>;
17
8
 
18
9
  type FireworksImageModelId = 'accounts/fireworks/models/flux-1-dev-fp8' | 'accounts/fireworks/models/flux-1-schnell-fp8' | 'accounts/fireworks/models/playground-v2-5-1024px-aesthetic' | 'accounts/fireworks/models/japanese-stable-diffusion-xl' | 'accounts/fireworks/models/playground-v2-1024px-aesthetic' | 'accounts/fireworks/models/SSD-1B' | 'accounts/fireworks/models/stable-diffusion-xl-1024-v1-0' | (string & {});
19
- interface FireworksImageSettings {
20
- /**
21
- Override the maximum number of images per call (default 1)
22
- */
23
- maxImagesPerCall?: number;
10
+
11
+ interface FireworksImageModelConfig {
12
+ provider: string;
13
+ baseURL: string;
14
+ headers: () => Record<string, string>;
15
+ fetch?: FetchFunction;
16
+ _internal?: {
17
+ currentDate?: () => Date;
18
+ };
19
+ }
20
+ declare class FireworksImageModel implements ImageModelV2 {
21
+ readonly modelId: FireworksImageModelId;
22
+ private config;
23
+ readonly specificationVersion = "v2";
24
+ readonly maxImagesPerCall = 1;
25
+ get provider(): string;
26
+ constructor(modelId: FireworksImageModelId, config: FireworksImageModelConfig);
27
+ doGenerate({ prompt, n, size, aspectRatio, seed, providerOptions, headers, abortSignal, }: Parameters<ImageModelV2['doGenerate']>[0]): Promise<Awaited<ReturnType<ImageModelV2['doGenerate']>>>;
24
28
  }
25
29
 
30
+ type FireworksChatModelId = 'accounts/fireworks/models/deepseek-v3' | 'accounts/fireworks/models/llama-v3p3-70b-instruct' | 'accounts/fireworks/models/llama-v3p2-3b-instruct' | 'accounts/fireworks/models/llama-v3p1-405b-instruct' | 'accounts/fireworks/models/llama-v3p1-8b-instruct' | 'accounts/fireworks/models/mixtral-8x7b-instruct' | 'accounts/fireworks/models/mixtral-8x22b-instruct' | 'accounts/fireworks/models/mixtral-8x7b-instruct-hf' | 'accounts/fireworks/models/qwen2p5-coder-32b-instruct' | 'accounts/fireworks/models/qwen2p5-72b-instruct' | 'accounts/fireworks/models/qwen-qwq-32b-preview' | 'accounts/fireworks/models/qwen2-vl-72b-instruct' | 'accounts/fireworks/models/llama-v3p2-11b-vision-instruct' | 'accounts/fireworks/models/qwq-32b' | 'accounts/fireworks/models/yi-large' | (string & {});
31
+
32
+ type FireworksCompletionModelId = 'accounts/fireworks/models/llama-v3-8b-instruct' | 'accounts/fireworks/models/llama-v2-34b-code' | (string & {});
33
+
26
34
  type FireworksErrorData = z.infer<typeof fireworksErrorSchema>;
27
35
  declare const fireworksErrorSchema: z.ZodObject<{
28
36
  error: z.ZodString;
@@ -51,37 +59,38 @@ interface FireworksProviderSettings {
51
59
  */
52
60
  fetch?: FetchFunction;
53
61
  }
54
- interface FireworksProvider extends ProviderV1 {
62
+ interface FireworksProvider extends ProviderV2 {
55
63
  /**
56
64
  Creates a model for text generation.
57
65
  */
58
- (modelId: FireworksChatModelId, settings?: FireworksChatSettings): LanguageModelV1;
66
+ (modelId: FireworksChatModelId): LanguageModelV2;
59
67
  /**
60
68
  Creates a chat model for text generation.
61
69
  */
62
- chatModel(modelId: FireworksChatModelId, settings?: FireworksChatSettings): LanguageModelV1;
70
+ chatModel(modelId: FireworksChatModelId): LanguageModelV2;
63
71
  /**
64
72
  Creates a completion model for text generation.
65
73
  */
66
- completionModel(modelId: FireworksCompletionModelId, settings?: FireworksCompletionSettings): LanguageModelV1;
74
+ completionModel(modelId: FireworksCompletionModelId): LanguageModelV2;
67
75
  /**
68
76
  Creates a chat model for text generation.
69
77
  */
70
- languageModel(modelId: FireworksChatModelId, settings?: FireworksChatSettings): LanguageModelV1;
78
+ languageModel(modelId: FireworksChatModelId): LanguageModelV2;
71
79
  /**
72
80
  Creates a text embedding model for text generation.
73
81
  */
74
- textEmbeddingModel(modelId: FireworksEmbeddingModelId, settings?: FireworksEmbeddingSettings): EmbeddingModelV1<string>;
82
+ textEmbeddingModel(modelId: FireworksEmbeddingModelId): EmbeddingModelV2<string>;
75
83
  /**
76
84
  Creates a model for image generation.
85
+ @deprecated Use `imageModel` instead.
77
86
  */
78
- image(modelId: FireworksImageModelId, settings?: FireworksImageSettings): ImageModelV1;
87
+ image(modelId: FireworksImageModelId): ImageModelV2;
79
88
  /**
80
89
  Creates a model for image generation.
81
90
  */
82
- imageModel(modelId: FireworksImageModelId, settings?: FireworksImageSettings): ImageModelV1;
91
+ imageModel(modelId: FireworksImageModelId): ImageModelV2;
83
92
  }
84
93
  declare function createFireworks(options?: FireworksProviderSettings): FireworksProvider;
85
94
  declare const fireworks: FireworksProvider;
86
95
 
87
- export { type FireworksErrorData, type FireworksProvider, type FireworksProviderSettings, createFireworks, fireworks };
96
+ export { type FireworksEmbeddingModelId, type FireworksEmbeddingProviderOptions, type FireworksErrorData, FireworksImageModel, type FireworksImageModelId, type FireworksProvider, type FireworksProviderSettings, createFireworks, fireworks };
package/dist/index.d.ts CHANGED
@@ -1,28 +1,36 @@
1
- import { ProviderV1, LanguageModelV1, EmbeddingModelV1, ImageModelV1 } from '@ai-sdk/provider';
2
- import { FetchFunction } from '@ai-sdk/provider-utils';
3
1
  import { z } from 'zod';
4
- import { OpenAICompatibleChatSettings, OpenAICompatibleCompletionSettings, OpenAICompatibleEmbeddingSettings } from '@ai-sdk/openai-compatible';
5
-
6
- type FireworksChatModelId = 'accounts/fireworks/models/deepseek-v3' | 'accounts/fireworks/models/llama-v3p3-70b-instruct' | 'accounts/fireworks/models/llama-v3p2-3b-instruct' | 'accounts/fireworks/models/llama-v3p1-405b-instruct' | 'accounts/fireworks/models/llama-v3p1-8b-instruct' | 'accounts/fireworks/models/mixtral-8x7b-instruct' | 'accounts/fireworks/models/mixtral-8x22b-instruct' | 'accounts/fireworks/models/mixtral-8x7b-instruct-hf' | 'accounts/fireworks/models/qwen2p5-coder-32b-instruct' | 'accounts/fireworks/models/qwen2p5-72b-instruct' | 'accounts/fireworks/models/qwen-qwq-32b-preview' | 'accounts/fireworks/models/qwen2-vl-72b-instruct' | 'accounts/fireworks/models/llama-v3p2-11b-vision-instruct' | 'accounts/fireworks/models/qwq-32b' | 'accounts/fireworks/models/yi-large' | (string & {});
7
- interface FireworksChatSettings extends OpenAICompatibleChatSettings {
8
- }
9
-
10
- type FireworksCompletionModelId = 'accounts/fireworks/models/llama-v3-8b-instruct' | 'accounts/fireworks/models/llama-v2-34b-code' | (string & {});
11
- interface FireworksCompletionSettings extends OpenAICompatibleCompletionSettings {
12
- }
2
+ import { ImageModelV2, ProviderV2, LanguageModelV2, EmbeddingModelV2 } from '@ai-sdk/provider';
3
+ import { FetchFunction } from '@ai-sdk/provider-utils';
13
4
 
14
5
  type FireworksEmbeddingModelId = 'nomic-ai/nomic-embed-text-v1.5' | (string & {});
15
- interface FireworksEmbeddingSettings extends OpenAICompatibleEmbeddingSettings {
16
- }
6
+ declare const fireworksEmbeddingProviderOptions: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
7
+ type FireworksEmbeddingProviderOptions = z.infer<typeof fireworksEmbeddingProviderOptions>;
17
8
 
18
9
  type FireworksImageModelId = 'accounts/fireworks/models/flux-1-dev-fp8' | 'accounts/fireworks/models/flux-1-schnell-fp8' | 'accounts/fireworks/models/playground-v2-5-1024px-aesthetic' | 'accounts/fireworks/models/japanese-stable-diffusion-xl' | 'accounts/fireworks/models/playground-v2-1024px-aesthetic' | 'accounts/fireworks/models/SSD-1B' | 'accounts/fireworks/models/stable-diffusion-xl-1024-v1-0' | (string & {});
19
- interface FireworksImageSettings {
20
- /**
21
- Override the maximum number of images per call (default 1)
22
- */
23
- maxImagesPerCall?: number;
10
+
11
+ interface FireworksImageModelConfig {
12
+ provider: string;
13
+ baseURL: string;
14
+ headers: () => Record<string, string>;
15
+ fetch?: FetchFunction;
16
+ _internal?: {
17
+ currentDate?: () => Date;
18
+ };
19
+ }
20
+ declare class FireworksImageModel implements ImageModelV2 {
21
+ readonly modelId: FireworksImageModelId;
22
+ private config;
23
+ readonly specificationVersion = "v2";
24
+ readonly maxImagesPerCall = 1;
25
+ get provider(): string;
26
+ constructor(modelId: FireworksImageModelId, config: FireworksImageModelConfig);
27
+ doGenerate({ prompt, n, size, aspectRatio, seed, providerOptions, headers, abortSignal, }: Parameters<ImageModelV2['doGenerate']>[0]): Promise<Awaited<ReturnType<ImageModelV2['doGenerate']>>>;
24
28
  }
25
29
 
30
+ type FireworksChatModelId = 'accounts/fireworks/models/deepseek-v3' | 'accounts/fireworks/models/llama-v3p3-70b-instruct' | 'accounts/fireworks/models/llama-v3p2-3b-instruct' | 'accounts/fireworks/models/llama-v3p1-405b-instruct' | 'accounts/fireworks/models/llama-v3p1-8b-instruct' | 'accounts/fireworks/models/mixtral-8x7b-instruct' | 'accounts/fireworks/models/mixtral-8x22b-instruct' | 'accounts/fireworks/models/mixtral-8x7b-instruct-hf' | 'accounts/fireworks/models/qwen2p5-coder-32b-instruct' | 'accounts/fireworks/models/qwen2p5-72b-instruct' | 'accounts/fireworks/models/qwen-qwq-32b-preview' | 'accounts/fireworks/models/qwen2-vl-72b-instruct' | 'accounts/fireworks/models/llama-v3p2-11b-vision-instruct' | 'accounts/fireworks/models/qwq-32b' | 'accounts/fireworks/models/yi-large' | (string & {});
31
+
32
+ type FireworksCompletionModelId = 'accounts/fireworks/models/llama-v3-8b-instruct' | 'accounts/fireworks/models/llama-v2-34b-code' | (string & {});
33
+
26
34
  type FireworksErrorData = z.infer<typeof fireworksErrorSchema>;
27
35
  declare const fireworksErrorSchema: z.ZodObject<{
28
36
  error: z.ZodString;
@@ -51,37 +59,38 @@ interface FireworksProviderSettings {
51
59
  */
52
60
  fetch?: FetchFunction;
53
61
  }
54
- interface FireworksProvider extends ProviderV1 {
62
+ interface FireworksProvider extends ProviderV2 {
55
63
  /**
56
64
  Creates a model for text generation.
57
65
  */
58
- (modelId: FireworksChatModelId, settings?: FireworksChatSettings): LanguageModelV1;
66
+ (modelId: FireworksChatModelId): LanguageModelV2;
59
67
  /**
60
68
  Creates a chat model for text generation.
61
69
  */
62
- chatModel(modelId: FireworksChatModelId, settings?: FireworksChatSettings): LanguageModelV1;
70
+ chatModel(modelId: FireworksChatModelId): LanguageModelV2;
63
71
  /**
64
72
  Creates a completion model for text generation.
65
73
  */
66
- completionModel(modelId: FireworksCompletionModelId, settings?: FireworksCompletionSettings): LanguageModelV1;
74
+ completionModel(modelId: FireworksCompletionModelId): LanguageModelV2;
67
75
  /**
68
76
  Creates a chat model for text generation.
69
77
  */
70
- languageModel(modelId: FireworksChatModelId, settings?: FireworksChatSettings): LanguageModelV1;
78
+ languageModel(modelId: FireworksChatModelId): LanguageModelV2;
71
79
  /**
72
80
  Creates a text embedding model for text generation.
73
81
  */
74
- textEmbeddingModel(modelId: FireworksEmbeddingModelId, settings?: FireworksEmbeddingSettings): EmbeddingModelV1<string>;
82
+ textEmbeddingModel(modelId: FireworksEmbeddingModelId): EmbeddingModelV2<string>;
75
83
  /**
76
84
  Creates a model for image generation.
85
+ @deprecated Use `imageModel` instead.
77
86
  */
78
- image(modelId: FireworksImageModelId, settings?: FireworksImageSettings): ImageModelV1;
87
+ image(modelId: FireworksImageModelId): ImageModelV2;
79
88
  /**
80
89
  Creates a model for image generation.
81
90
  */
82
- imageModel(modelId: FireworksImageModelId, settings?: FireworksImageSettings): ImageModelV1;
91
+ imageModel(modelId: FireworksImageModelId): ImageModelV2;
83
92
  }
84
93
  declare function createFireworks(options?: FireworksProviderSettings): FireworksProvider;
85
94
  declare const fireworks: FireworksProvider;
86
95
 
87
- export { type FireworksErrorData, type FireworksProvider, type FireworksProviderSettings, createFireworks, fireworks };
96
+ export { type FireworksEmbeddingModelId, type FireworksEmbeddingProviderOptions, type FireworksErrorData, FireworksImageModel, type FireworksImageModelId, type FireworksProvider, type FireworksProviderSettings, createFireworks, fireworks };
package/dist/index.js CHANGED
@@ -20,16 +20,12 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
20
20
  // src/index.ts
21
21
  var src_exports = {};
22
22
  __export(src_exports, {
23
+ FireworksImageModel: () => FireworksImageModel,
23
24
  createFireworks: () => createFireworks,
24
25
  fireworks: () => fireworks
25
26
  });
26
27
  module.exports = __toCommonJS(src_exports);
27
28
 
28
- // src/fireworks-provider.ts
29
- var import_openai_compatible = require("@ai-sdk/openai-compatible");
30
- var import_provider_utils2 = require("@ai-sdk/provider-utils");
31
- var import_zod = require("zod");
32
-
33
29
  // src/fireworks-image-model.ts
34
30
  var import_provider_utils = require("@ai-sdk/provider-utils");
35
31
  var modelToBackendConfig = {
@@ -71,19 +67,15 @@ function getUrlForModel(baseUrl, modelId) {
71
67
  }
72
68
  }
73
69
  var FireworksImageModel = class {
74
- constructor(modelId, settings, config) {
70
+ constructor(modelId, config) {
75
71
  this.modelId = modelId;
76
- this.settings = settings;
77
72
  this.config = config;
78
- this.specificationVersion = "v1";
73
+ this.specificationVersion = "v2";
74
+ this.maxImagesPerCall = 1;
79
75
  }
80
76
  get provider() {
81
77
  return this.config.provider;
82
78
  }
83
- get maxImagesPerCall() {
84
- var _a;
85
- return (_a = this.settings.maxImagesPerCall) != null ? _a : 1;
86
- }
87
79
  async doGenerate({
88
80
  prompt,
89
81
  n,
@@ -142,6 +134,9 @@ var FireworksImageModel = class {
142
134
  };
143
135
 
144
136
  // src/fireworks-provider.ts
137
+ var import_openai_compatible = require("@ai-sdk/openai-compatible");
138
+ var import_provider_utils2 = require("@ai-sdk/provider-utils");
139
+ var import_zod = require("zod");
145
140
  var fireworksErrorSchema = import_zod.z.object({
146
141
  error: import_zod.z.string()
147
142
  });
@@ -167,26 +162,25 @@ function createFireworks(options = {}) {
167
162
  headers: getHeaders,
168
163
  fetch: options.fetch
169
164
  });
170
- const createChatModel = (modelId, settings = {}) => {
171
- return new import_openai_compatible.OpenAICompatibleChatLanguageModel(modelId, settings, {
165
+ const createChatModel = (modelId) => {
166
+ return new import_openai_compatible.OpenAICompatibleChatLanguageModel(modelId, {
172
167
  ...getCommonModelConfig("chat"),
173
- errorStructure: fireworksErrorStructure,
174
- defaultObjectGenerationMode: "json"
168
+ errorStructure: fireworksErrorStructure
175
169
  });
176
170
  };
177
- const createCompletionModel = (modelId, settings = {}) => new import_openai_compatible.OpenAICompatibleCompletionLanguageModel(modelId, settings, {
171
+ const createCompletionModel = (modelId) => new import_openai_compatible.OpenAICompatibleCompletionLanguageModel(modelId, {
178
172
  ...getCommonModelConfig("completion"),
179
173
  errorStructure: fireworksErrorStructure
180
174
  });
181
- const createTextEmbeddingModel = (modelId, settings = {}) => new import_openai_compatible.OpenAICompatibleEmbeddingModel(modelId, settings, {
175
+ const createTextEmbeddingModel = (modelId) => new import_openai_compatible.OpenAICompatibleEmbeddingModel(modelId, {
182
176
  ...getCommonModelConfig("embedding"),
183
177
  errorStructure: fireworksErrorStructure
184
178
  });
185
- const createImageModel = (modelId, settings = {}) => new FireworksImageModel(modelId, settings, {
179
+ const createImageModel = (modelId) => new FireworksImageModel(modelId, {
186
180
  ...getCommonModelConfig("image"),
187
181
  baseURL: baseURL != null ? baseURL : defaultBaseURL
188
182
  });
189
- const provider = (modelId, settings) => createChatModel(modelId, settings);
183
+ const provider = (modelId) => createChatModel(modelId);
190
184
  provider.completionModel = createCompletionModel;
191
185
  provider.chatModel = createChatModel;
192
186
  provider.languageModel = createChatModel;
@@ -198,6 +192,7 @@ function createFireworks(options = {}) {
198
192
  var fireworks = createFireworks();
199
193
  // Annotate the CommonJS export names for ESM import in node:
200
194
  0 && (module.exports = {
195
+ FireworksImageModel,
201
196
  createFireworks,
202
197
  fireworks
203
198
  });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/fireworks-provider.ts","../src/fireworks-image-model.ts"],"sourcesContent":["export { createFireworks, fireworks } from './fireworks-provider';\nexport type {\n FireworksProvider,\n FireworksProviderSettings,\n FireworksErrorData,\n} from './fireworks-provider';\n","import {\n OpenAICompatibleChatLanguageModel,\n OpenAICompatibleCompletionLanguageModel,\n OpenAICompatibleEmbeddingModel,\n ProviderErrorStructure,\n} from '@ai-sdk/openai-compatible';\nimport {\n EmbeddingModelV1,\n ImageModelV1,\n LanguageModelV1,\n ProviderV1,\n} from '@ai-sdk/provider';\nimport {\n FetchFunction,\n loadApiKey,\n withoutTrailingSlash,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod';\nimport {\n FireworksChatModelId,\n FireworksChatSettings,\n} from './fireworks-chat-settings';\nimport {\n FireworksCompletionModelId,\n FireworksCompletionSettings,\n} from './fireworks-completion-settings';\nimport {\n FireworksEmbeddingModelId,\n FireworksEmbeddingSettings,\n} from './fireworks-embedding-settings';\nimport { FireworksImageModel } from './fireworks-image-model';\nimport {\n FireworksImageModelId,\n FireworksImageSettings,\n} from './fireworks-image-settings';\n\nexport type FireworksErrorData = z.infer<typeof fireworksErrorSchema>;\n\nconst fireworksErrorSchema = z.object({\n error: z.string(),\n});\n\nconst fireworksErrorStructure: ProviderErrorStructure<FireworksErrorData> = {\n errorSchema: fireworksErrorSchema,\n errorToMessage: data => data.error,\n};\n\nexport interface FireworksProviderSettings {\n /**\nFireworks API key. Default value is taken from the `FIREWORKS_API_KEY`\nenvironment variable.\n*/\n apiKey?: string;\n /**\nBase URL for the API calls.\n*/\n baseURL?: string;\n /**\nCustom headers to include in the requests.\n*/\n headers?: Record<string, string>;\n /**\nCustom fetch implementation. You can use it as a middleware to intercept requests,\nor to provide a custom fetch implementation for e.g. testing.\n*/\n fetch?: FetchFunction;\n}\n\nexport interface FireworksProvider extends ProviderV1 {\n /**\nCreates a model for text generation.\n*/\n (\n modelId: FireworksChatModelId,\n settings?: FireworksChatSettings,\n ): LanguageModelV1;\n\n /**\nCreates a chat model for text generation.\n*/\n chatModel(\n modelId: FireworksChatModelId,\n settings?: FireworksChatSettings,\n ): LanguageModelV1;\n\n /**\nCreates a completion model for text generation.\n*/\n completionModel(\n modelId: FireworksCompletionModelId,\n settings?: FireworksCompletionSettings,\n ): LanguageModelV1;\n\n /**\nCreates a chat model for text generation.\n*/\n languageModel(\n modelId: FireworksChatModelId,\n settings?: FireworksChatSettings,\n ): LanguageModelV1;\n\n /**\nCreates a text embedding model for text generation.\n*/\n textEmbeddingModel(\n modelId: FireworksEmbeddingModelId,\n settings?: FireworksEmbeddingSettings,\n ): EmbeddingModelV1<string>;\n\n /**\nCreates a model for image generation.\n*/\n image(\n modelId: FireworksImageModelId,\n settings?: FireworksImageSettings,\n ): ImageModelV1;\n\n /**\nCreates a model for image generation.\n*/\n imageModel(\n modelId: FireworksImageModelId,\n settings?: FireworksImageSettings,\n ): ImageModelV1;\n}\n\nconst defaultBaseURL = 'https://api.fireworks.ai/inference/v1';\n\nexport function createFireworks(\n options: FireworksProviderSettings = {},\n): FireworksProvider {\n const baseURL = withoutTrailingSlash(options.baseURL ?? defaultBaseURL);\n const getHeaders = () => ({\n Authorization: `Bearer ${loadApiKey({\n apiKey: options.apiKey,\n environmentVariableName: 'FIREWORKS_API_KEY',\n description: 'Fireworks API key',\n })}`,\n ...options.headers,\n });\n\n interface CommonModelConfig {\n provider: string;\n url: ({ path }: { path: string }) => string;\n headers: () => Record<string, string>;\n fetch?: FetchFunction;\n }\n\n const getCommonModelConfig = (modelType: string): CommonModelConfig => ({\n provider: `fireworks.${modelType}`,\n url: ({ path }) => `${baseURL}${path}`,\n headers: getHeaders,\n fetch: options.fetch,\n });\n\n const createChatModel = (\n modelId: FireworksChatModelId,\n settings: FireworksChatSettings = {},\n ) => {\n return new OpenAICompatibleChatLanguageModel(modelId, settings, {\n ...getCommonModelConfig('chat'),\n errorStructure: fireworksErrorStructure,\n defaultObjectGenerationMode: 'json',\n });\n };\n\n const createCompletionModel = (\n modelId: FireworksCompletionModelId,\n settings: FireworksCompletionSettings = {},\n ) =>\n new OpenAICompatibleCompletionLanguageModel(modelId, settings, {\n ...getCommonModelConfig('completion'),\n errorStructure: fireworksErrorStructure,\n });\n\n const createTextEmbeddingModel = (\n modelId: FireworksEmbeddingModelId,\n settings: FireworksEmbeddingSettings = {},\n ) =>\n new OpenAICompatibleEmbeddingModel(modelId, settings, {\n ...getCommonModelConfig('embedding'),\n errorStructure: fireworksErrorStructure,\n });\n\n const createImageModel = (\n modelId: FireworksImageModelId,\n settings: FireworksImageSettings = {},\n ) =>\n new FireworksImageModel(modelId, settings, {\n ...getCommonModelConfig('image'),\n baseURL: baseURL ?? defaultBaseURL,\n });\n\n const provider = (\n modelId: FireworksChatModelId,\n settings?: FireworksChatSettings,\n ) => createChatModel(modelId, settings);\n\n provider.completionModel = createCompletionModel;\n provider.chatModel = createChatModel;\n provider.languageModel = createChatModel;\n provider.textEmbeddingModel = createTextEmbeddingModel;\n provider.image = createImageModel;\n provider.imageModel = createImageModel;\n return provider;\n}\n\nexport const fireworks = createFireworks();\n","import { ImageModelV1, ImageModelV1CallWarning } from '@ai-sdk/provider';\nimport {\n combineHeaders,\n createBinaryResponseHandler,\n createStatusCodeErrorResponseHandler,\n FetchFunction,\n postJsonToApi,\n} from '@ai-sdk/provider-utils';\nimport {\n FireworksImageModelId,\n FireworksImageSettings,\n} from './fireworks-image-settings';\n\ninterface FireworksImageModelBackendConfig {\n urlFormat: 'workflows' | 'image_generation';\n supportsSize?: boolean;\n}\n\nconst modelToBackendConfig: Partial<\n Record<FireworksImageModelId, FireworksImageModelBackendConfig>\n> = {\n 'accounts/fireworks/models/flux-1-dev-fp8': {\n urlFormat: 'workflows',\n },\n 'accounts/fireworks/models/flux-1-schnell-fp8': {\n urlFormat: 'workflows',\n },\n 'accounts/fireworks/models/playground-v2-5-1024px-aesthetic': {\n urlFormat: 'image_generation',\n supportsSize: true,\n },\n 'accounts/fireworks/models/japanese-stable-diffusion-xl': {\n urlFormat: 'image_generation',\n supportsSize: true,\n },\n 'accounts/fireworks/models/playground-v2-1024px-aesthetic': {\n urlFormat: 'image_generation',\n supportsSize: true,\n },\n 'accounts/fireworks/models/stable-diffusion-xl-1024-v1-0': {\n urlFormat: 'image_generation',\n supportsSize: true,\n },\n 'accounts/fireworks/models/SSD-1B': {\n urlFormat: 'image_generation',\n supportsSize: true,\n },\n};\n\nfunction getUrlForModel(\n baseUrl: string,\n modelId: FireworksImageModelId,\n): string {\n switch (modelToBackendConfig[modelId]?.urlFormat) {\n case 'image_generation':\n return `${baseUrl}/image_generation/${modelId}`;\n case 'workflows':\n default:\n return `${baseUrl}/workflows/${modelId}/text_to_image`;\n }\n}\n\ninterface FireworksImageModelConfig {\n provider: string;\n baseURL: string;\n headers: () => Record<string, string>;\n fetch?: FetchFunction;\n _internal?: {\n currentDate?: () => Date;\n };\n}\n\nexport class FireworksImageModel implements ImageModelV1 {\n readonly specificationVersion = 'v1';\n\n get provider(): string {\n return this.config.provider;\n }\n\n get maxImagesPerCall(): number {\n return this.settings.maxImagesPerCall ?? 1;\n }\n\n constructor(\n readonly modelId: FireworksImageModelId,\n readonly settings: FireworksImageSettings,\n private config: FireworksImageModelConfig,\n ) {}\n\n async doGenerate({\n prompt,\n n,\n size,\n aspectRatio,\n seed,\n providerOptions,\n headers,\n abortSignal,\n }: Parameters<ImageModelV1['doGenerate']>[0]): Promise<\n Awaited<ReturnType<ImageModelV1['doGenerate']>>\n > {\n const warnings: Array<ImageModelV1CallWarning> = [];\n\n const backendConfig = modelToBackendConfig[this.modelId];\n if (!backendConfig?.supportsSize && size != null) {\n warnings.push({\n type: 'unsupported-setting',\n setting: 'size',\n details:\n 'This model does not support the `size` option. Use `aspectRatio` instead.',\n });\n }\n\n // Use supportsSize as a proxy for whether the model does not support\n // aspectRatio. This invariant holds for the current set of models.\n if (backendConfig?.supportsSize && aspectRatio != null) {\n warnings.push({\n type: 'unsupported-setting',\n setting: 'aspectRatio',\n details: 'This model does not support the `aspectRatio` option.',\n });\n }\n\n const splitSize = size?.split('x');\n const currentDate = this.config._internal?.currentDate?.() ?? new Date();\n const { value: response, responseHeaders } = await postJsonToApi({\n url: getUrlForModel(this.config.baseURL, this.modelId),\n headers: combineHeaders(this.config.headers(), headers),\n body: {\n prompt,\n aspect_ratio: aspectRatio,\n seed,\n samples: n,\n ...(splitSize && { width: splitSize[0], height: splitSize[1] }),\n ...(providerOptions.fireworks ?? {}),\n },\n failedResponseHandler: createStatusCodeErrorResponseHandler(),\n successfulResponseHandler: createBinaryResponseHandler(),\n abortSignal,\n fetch: this.config.fetch,\n });\n\n return {\n images: [response],\n warnings,\n response: {\n timestamp: currentDate,\n modelId: this.modelId,\n headers: responseHeaders,\n },\n };\n }\n}\n"],"mappings":"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","names":["import_provider_utils"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/fireworks-image-model.ts","../src/fireworks-provider.ts"],"sourcesContent":["export type {\n FireworksEmbeddingModelId,\n FireworksEmbeddingProviderOptions,\n} from './fireworks-embedding-options';\nexport { FireworksImageModel } from './fireworks-image-model';\nexport type { FireworksImageModelId } from './fireworks-image-options';\nexport { fireworks, createFireworks } from './fireworks-provider';\nexport type {\n FireworksProvider,\n FireworksProviderSettings,\n FireworksErrorData,\n} from './fireworks-provider';\n","import { ImageModelV2, ImageModelV2CallWarning } from '@ai-sdk/provider';\nimport {\n combineHeaders,\n createBinaryResponseHandler,\n createStatusCodeErrorResponseHandler,\n FetchFunction,\n postJsonToApi,\n} from '@ai-sdk/provider-utils';\nimport { FireworksImageModelId } from './fireworks-image-options';\n\ninterface FireworksImageModelBackendConfig {\n urlFormat: 'workflows' | 'image_generation';\n supportsSize?: boolean;\n}\n\nconst modelToBackendConfig: Partial<\n Record<FireworksImageModelId, FireworksImageModelBackendConfig>\n> = {\n 'accounts/fireworks/models/flux-1-dev-fp8': {\n urlFormat: 'workflows',\n },\n 'accounts/fireworks/models/flux-1-schnell-fp8': {\n urlFormat: 'workflows',\n },\n 'accounts/fireworks/models/playground-v2-5-1024px-aesthetic': {\n urlFormat: 'image_generation',\n supportsSize: true,\n },\n 'accounts/fireworks/models/japanese-stable-diffusion-xl': {\n urlFormat: 'image_generation',\n supportsSize: true,\n },\n 'accounts/fireworks/models/playground-v2-1024px-aesthetic': {\n urlFormat: 'image_generation',\n supportsSize: true,\n },\n 'accounts/fireworks/models/stable-diffusion-xl-1024-v1-0': {\n urlFormat: 'image_generation',\n supportsSize: true,\n },\n 'accounts/fireworks/models/SSD-1B': {\n urlFormat: 'image_generation',\n supportsSize: true,\n },\n};\n\nfunction getUrlForModel(\n baseUrl: string,\n modelId: FireworksImageModelId,\n): string {\n switch (modelToBackendConfig[modelId]?.urlFormat) {\n case 'image_generation':\n return `${baseUrl}/image_generation/${modelId}`;\n case 'workflows':\n default:\n return `${baseUrl}/workflows/${modelId}/text_to_image`;\n }\n}\n\ninterface FireworksImageModelConfig {\n provider: string;\n baseURL: string;\n headers: () => Record<string, string>;\n fetch?: FetchFunction;\n _internal?: {\n currentDate?: () => Date;\n };\n}\n\nexport class FireworksImageModel implements ImageModelV2 {\n readonly specificationVersion = 'v2';\n readonly maxImagesPerCall = 1;\n\n get provider(): string {\n return this.config.provider;\n }\n\n constructor(\n readonly modelId: FireworksImageModelId,\n private config: FireworksImageModelConfig,\n ) {}\n\n async doGenerate({\n prompt,\n n,\n size,\n aspectRatio,\n seed,\n providerOptions,\n headers,\n abortSignal,\n }: Parameters<ImageModelV2['doGenerate']>[0]): Promise<\n Awaited<ReturnType<ImageModelV2['doGenerate']>>\n > {\n const warnings: Array<ImageModelV2CallWarning> = [];\n\n const backendConfig = modelToBackendConfig[this.modelId];\n if (!backendConfig?.supportsSize && size != null) {\n warnings.push({\n type: 'unsupported-setting',\n setting: 'size',\n details:\n 'This model does not support the `size` option. Use `aspectRatio` instead.',\n });\n }\n\n // Use supportsSize as a proxy for whether the model does not support\n // aspectRatio. This invariant holds for the current set of models.\n if (backendConfig?.supportsSize && aspectRatio != null) {\n warnings.push({\n type: 'unsupported-setting',\n setting: 'aspectRatio',\n details: 'This model does not support the `aspectRatio` option.',\n });\n }\n\n const splitSize = size?.split('x');\n const currentDate = this.config._internal?.currentDate?.() ?? new Date();\n const { value: response, responseHeaders } = await postJsonToApi({\n url: getUrlForModel(this.config.baseURL, this.modelId),\n headers: combineHeaders(this.config.headers(), headers),\n body: {\n prompt,\n aspect_ratio: aspectRatio,\n seed,\n samples: n,\n ...(splitSize && { width: splitSize[0], height: splitSize[1] }),\n ...(providerOptions.fireworks ?? {}),\n },\n failedResponseHandler: createStatusCodeErrorResponseHandler(),\n successfulResponseHandler: createBinaryResponseHandler(),\n abortSignal,\n fetch: this.config.fetch,\n });\n\n return {\n images: [response],\n warnings,\n response: {\n timestamp: currentDate,\n modelId: this.modelId,\n headers: responseHeaders,\n },\n };\n }\n}\n","import {\n OpenAICompatibleChatLanguageModel,\n OpenAICompatibleCompletionLanguageModel,\n OpenAICompatibleEmbeddingModel,\n ProviderErrorStructure,\n} from '@ai-sdk/openai-compatible';\nimport {\n EmbeddingModelV2,\n ImageModelV2,\n LanguageModelV2,\n ProviderV2,\n} from '@ai-sdk/provider';\nimport {\n FetchFunction,\n loadApiKey,\n withoutTrailingSlash,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod';\nimport { FireworksChatModelId } from './fireworks-chat-options';\nimport { FireworksCompletionModelId } from './fireworks-completion-options';\nimport { FireworksEmbeddingModelId } from './fireworks-embedding-options';\nimport { FireworksImageModel } from './fireworks-image-model';\nimport { FireworksImageModelId } from './fireworks-image-options';\n\nexport type FireworksErrorData = z.infer<typeof fireworksErrorSchema>;\n\nconst fireworksErrorSchema = z.object({\n error: z.string(),\n});\n\nconst fireworksErrorStructure: ProviderErrorStructure<FireworksErrorData> = {\n errorSchema: fireworksErrorSchema,\n errorToMessage: data => data.error,\n};\n\nexport interface FireworksProviderSettings {\n /**\nFireworks API key. Default value is taken from the `FIREWORKS_API_KEY`\nenvironment variable.\n*/\n apiKey?: string;\n /**\nBase URL for the API calls.\n*/\n baseURL?: string;\n /**\nCustom headers to include in the requests.\n*/\n headers?: Record<string, string>;\n /**\nCustom fetch implementation. You can use it as a middleware to intercept requests,\nor to provide a custom fetch implementation for e.g. testing.\n*/\n fetch?: FetchFunction;\n}\n\nexport interface FireworksProvider extends ProviderV2 {\n /**\nCreates a model for text generation.\n*/\n (modelId: FireworksChatModelId): LanguageModelV2;\n\n /**\nCreates a chat model for text generation.\n*/\n chatModel(modelId: FireworksChatModelId): LanguageModelV2;\n\n /**\nCreates a completion model for text generation.\n*/\n completionModel(modelId: FireworksCompletionModelId): LanguageModelV2;\n\n /**\nCreates a chat model for text generation.\n*/\n languageModel(modelId: FireworksChatModelId): LanguageModelV2;\n\n /**\nCreates a text embedding model for text generation.\n*/\n textEmbeddingModel(\n modelId: FireworksEmbeddingModelId,\n ): EmbeddingModelV2<string>;\n\n /**\nCreates a model for image generation.\n@deprecated Use `imageModel` instead.\n*/\n image(modelId: FireworksImageModelId): ImageModelV2;\n\n /**\nCreates a model for image generation.\n*/\n imageModel(modelId: FireworksImageModelId): ImageModelV2;\n}\n\nconst defaultBaseURL = 'https://api.fireworks.ai/inference/v1';\n\nexport function createFireworks(\n options: FireworksProviderSettings = {},\n): FireworksProvider {\n const baseURL = withoutTrailingSlash(options.baseURL ?? defaultBaseURL);\n const getHeaders = () => ({\n Authorization: `Bearer ${loadApiKey({\n apiKey: options.apiKey,\n environmentVariableName: 'FIREWORKS_API_KEY',\n description: 'Fireworks API key',\n })}`,\n ...options.headers,\n });\n\n interface CommonModelConfig {\n provider: string;\n url: ({ path }: { path: string }) => string;\n headers: () => Record<string, string>;\n fetch?: FetchFunction;\n }\n\n const getCommonModelConfig = (modelType: string): CommonModelConfig => ({\n provider: `fireworks.${modelType}`,\n url: ({ path }) => `${baseURL}${path}`,\n headers: getHeaders,\n fetch: options.fetch,\n });\n\n const createChatModel = (modelId: FireworksChatModelId) => {\n return new OpenAICompatibleChatLanguageModel(modelId, {\n ...getCommonModelConfig('chat'),\n errorStructure: fireworksErrorStructure,\n });\n };\n\n const createCompletionModel = (modelId: FireworksCompletionModelId) =>\n new OpenAICompatibleCompletionLanguageModel(modelId, {\n ...getCommonModelConfig('completion'),\n errorStructure: fireworksErrorStructure,\n });\n\n const createTextEmbeddingModel = (modelId: FireworksEmbeddingModelId) =>\n new OpenAICompatibleEmbeddingModel(modelId, {\n ...getCommonModelConfig('embedding'),\n errorStructure: fireworksErrorStructure,\n });\n\n const createImageModel = (modelId: FireworksImageModelId) =>\n new FireworksImageModel(modelId, {\n ...getCommonModelConfig('image'),\n baseURL: baseURL ?? defaultBaseURL,\n });\n\n const provider = (modelId: FireworksChatModelId) => createChatModel(modelId);\n\n provider.completionModel = createCompletionModel;\n provider.chatModel = createChatModel;\n provider.languageModel = createChatModel;\n provider.textEmbeddingModel = createTextEmbeddingModel;\n provider.image = createImageModel;\n provider.imageModel = createImageModel;\n return provider;\n}\n\nexport const fireworks = createFireworks();\n"],"mappings":"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","names":["import_provider_utils"]}
package/dist/index.mjs CHANGED
@@ -1,15 +1,3 @@
1
- // src/fireworks-provider.ts
2
- import {
3
- OpenAICompatibleChatLanguageModel,
4
- OpenAICompatibleCompletionLanguageModel,
5
- OpenAICompatibleEmbeddingModel
6
- } from "@ai-sdk/openai-compatible";
7
- import {
8
- loadApiKey,
9
- withoutTrailingSlash
10
- } from "@ai-sdk/provider-utils";
11
- import { z } from "zod";
12
-
13
1
  // src/fireworks-image-model.ts
14
2
  import {
15
3
  combineHeaders,
@@ -56,19 +44,15 @@ function getUrlForModel(baseUrl, modelId) {
56
44
  }
57
45
  }
58
46
  var FireworksImageModel = class {
59
- constructor(modelId, settings, config) {
47
+ constructor(modelId, config) {
60
48
  this.modelId = modelId;
61
- this.settings = settings;
62
49
  this.config = config;
63
- this.specificationVersion = "v1";
50
+ this.specificationVersion = "v2";
51
+ this.maxImagesPerCall = 1;
64
52
  }
65
53
  get provider() {
66
54
  return this.config.provider;
67
55
  }
68
- get maxImagesPerCall() {
69
- var _a;
70
- return (_a = this.settings.maxImagesPerCall) != null ? _a : 1;
71
- }
72
56
  async doGenerate({
73
57
  prompt,
74
58
  n,
@@ -127,6 +111,16 @@ var FireworksImageModel = class {
127
111
  };
128
112
 
129
113
  // src/fireworks-provider.ts
114
+ import {
115
+ OpenAICompatibleChatLanguageModel,
116
+ OpenAICompatibleCompletionLanguageModel,
117
+ OpenAICompatibleEmbeddingModel
118
+ } from "@ai-sdk/openai-compatible";
119
+ import {
120
+ loadApiKey,
121
+ withoutTrailingSlash
122
+ } from "@ai-sdk/provider-utils";
123
+ import { z } from "zod";
130
124
  var fireworksErrorSchema = z.object({
131
125
  error: z.string()
132
126
  });
@@ -152,26 +146,25 @@ function createFireworks(options = {}) {
152
146
  headers: getHeaders,
153
147
  fetch: options.fetch
154
148
  });
155
- const createChatModel = (modelId, settings = {}) => {
156
- return new OpenAICompatibleChatLanguageModel(modelId, settings, {
149
+ const createChatModel = (modelId) => {
150
+ return new OpenAICompatibleChatLanguageModel(modelId, {
157
151
  ...getCommonModelConfig("chat"),
158
- errorStructure: fireworksErrorStructure,
159
- defaultObjectGenerationMode: "json"
152
+ errorStructure: fireworksErrorStructure
160
153
  });
161
154
  };
162
- const createCompletionModel = (modelId, settings = {}) => new OpenAICompatibleCompletionLanguageModel(modelId, settings, {
155
+ const createCompletionModel = (modelId) => new OpenAICompatibleCompletionLanguageModel(modelId, {
163
156
  ...getCommonModelConfig("completion"),
164
157
  errorStructure: fireworksErrorStructure
165
158
  });
166
- const createTextEmbeddingModel = (modelId, settings = {}) => new OpenAICompatibleEmbeddingModel(modelId, settings, {
159
+ const createTextEmbeddingModel = (modelId) => new OpenAICompatibleEmbeddingModel(modelId, {
167
160
  ...getCommonModelConfig("embedding"),
168
161
  errorStructure: fireworksErrorStructure
169
162
  });
170
- const createImageModel = (modelId, settings = {}) => new FireworksImageModel(modelId, settings, {
163
+ const createImageModel = (modelId) => new FireworksImageModel(modelId, {
171
164
  ...getCommonModelConfig("image"),
172
165
  baseURL: baseURL != null ? baseURL : defaultBaseURL
173
166
  });
174
- const provider = (modelId, settings) => createChatModel(modelId, settings);
167
+ const provider = (modelId) => createChatModel(modelId);
175
168
  provider.completionModel = createCompletionModel;
176
169
  provider.chatModel = createChatModel;
177
170
  provider.languageModel = createChatModel;
@@ -182,6 +175,7 @@ function createFireworks(options = {}) {
182
175
  }
183
176
  var fireworks = createFireworks();
184
177
  export {
178
+ FireworksImageModel,
185
179
  createFireworks,
186
180
  fireworks
187
181
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/fireworks-provider.ts","../src/fireworks-image-model.ts"],"sourcesContent":["import {\n OpenAICompatibleChatLanguageModel,\n OpenAICompatibleCompletionLanguageModel,\n OpenAICompatibleEmbeddingModel,\n ProviderErrorStructure,\n} from '@ai-sdk/openai-compatible';\nimport {\n EmbeddingModelV1,\n ImageModelV1,\n LanguageModelV1,\n ProviderV1,\n} from '@ai-sdk/provider';\nimport {\n FetchFunction,\n loadApiKey,\n withoutTrailingSlash,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod';\nimport {\n FireworksChatModelId,\n FireworksChatSettings,\n} from './fireworks-chat-settings';\nimport {\n FireworksCompletionModelId,\n FireworksCompletionSettings,\n} from './fireworks-completion-settings';\nimport {\n FireworksEmbeddingModelId,\n FireworksEmbeddingSettings,\n} from './fireworks-embedding-settings';\nimport { FireworksImageModel } from './fireworks-image-model';\nimport {\n FireworksImageModelId,\n FireworksImageSettings,\n} from './fireworks-image-settings';\n\nexport type FireworksErrorData = z.infer<typeof fireworksErrorSchema>;\n\nconst fireworksErrorSchema = z.object({\n error: z.string(),\n});\n\nconst fireworksErrorStructure: ProviderErrorStructure<FireworksErrorData> = {\n errorSchema: fireworksErrorSchema,\n errorToMessage: data => data.error,\n};\n\nexport interface FireworksProviderSettings {\n /**\nFireworks API key. Default value is taken from the `FIREWORKS_API_KEY`\nenvironment variable.\n*/\n apiKey?: string;\n /**\nBase URL for the API calls.\n*/\n baseURL?: string;\n /**\nCustom headers to include in the requests.\n*/\n headers?: Record<string, string>;\n /**\nCustom fetch implementation. You can use it as a middleware to intercept requests,\nor to provide a custom fetch implementation for e.g. testing.\n*/\n fetch?: FetchFunction;\n}\n\nexport interface FireworksProvider extends ProviderV1 {\n /**\nCreates a model for text generation.\n*/\n (\n modelId: FireworksChatModelId,\n settings?: FireworksChatSettings,\n ): LanguageModelV1;\n\n /**\nCreates a chat model for text generation.\n*/\n chatModel(\n modelId: FireworksChatModelId,\n settings?: FireworksChatSettings,\n ): LanguageModelV1;\n\n /**\nCreates a completion model for text generation.\n*/\n completionModel(\n modelId: FireworksCompletionModelId,\n settings?: FireworksCompletionSettings,\n ): LanguageModelV1;\n\n /**\nCreates a chat model for text generation.\n*/\n languageModel(\n modelId: FireworksChatModelId,\n settings?: FireworksChatSettings,\n ): LanguageModelV1;\n\n /**\nCreates a text embedding model for text generation.\n*/\n textEmbeddingModel(\n modelId: FireworksEmbeddingModelId,\n settings?: FireworksEmbeddingSettings,\n ): EmbeddingModelV1<string>;\n\n /**\nCreates a model for image generation.\n*/\n image(\n modelId: FireworksImageModelId,\n settings?: FireworksImageSettings,\n ): ImageModelV1;\n\n /**\nCreates a model for image generation.\n*/\n imageModel(\n modelId: FireworksImageModelId,\n settings?: FireworksImageSettings,\n ): ImageModelV1;\n}\n\nconst defaultBaseURL = 'https://api.fireworks.ai/inference/v1';\n\nexport function createFireworks(\n options: FireworksProviderSettings = {},\n): FireworksProvider {\n const baseURL = withoutTrailingSlash(options.baseURL ?? defaultBaseURL);\n const getHeaders = () => ({\n Authorization: `Bearer ${loadApiKey({\n apiKey: options.apiKey,\n environmentVariableName: 'FIREWORKS_API_KEY',\n description: 'Fireworks API key',\n })}`,\n ...options.headers,\n });\n\n interface CommonModelConfig {\n provider: string;\n url: ({ path }: { path: string }) => string;\n headers: () => Record<string, string>;\n fetch?: FetchFunction;\n }\n\n const getCommonModelConfig = (modelType: string): CommonModelConfig => ({\n provider: `fireworks.${modelType}`,\n url: ({ path }) => `${baseURL}${path}`,\n headers: getHeaders,\n fetch: options.fetch,\n });\n\n const createChatModel = (\n modelId: FireworksChatModelId,\n settings: FireworksChatSettings = {},\n ) => {\n return new OpenAICompatibleChatLanguageModel(modelId, settings, {\n ...getCommonModelConfig('chat'),\n errorStructure: fireworksErrorStructure,\n defaultObjectGenerationMode: 'json',\n });\n };\n\n const createCompletionModel = (\n modelId: FireworksCompletionModelId,\n settings: FireworksCompletionSettings = {},\n ) =>\n new OpenAICompatibleCompletionLanguageModel(modelId, settings, {\n ...getCommonModelConfig('completion'),\n errorStructure: fireworksErrorStructure,\n });\n\n const createTextEmbeddingModel = (\n modelId: FireworksEmbeddingModelId,\n settings: FireworksEmbeddingSettings = {},\n ) =>\n new OpenAICompatibleEmbeddingModel(modelId, settings, {\n ...getCommonModelConfig('embedding'),\n errorStructure: fireworksErrorStructure,\n });\n\n const createImageModel = (\n modelId: FireworksImageModelId,\n settings: FireworksImageSettings = {},\n ) =>\n new FireworksImageModel(modelId, settings, {\n ...getCommonModelConfig('image'),\n baseURL: baseURL ?? defaultBaseURL,\n });\n\n const provider = (\n modelId: FireworksChatModelId,\n settings?: FireworksChatSettings,\n ) => createChatModel(modelId, settings);\n\n provider.completionModel = createCompletionModel;\n provider.chatModel = createChatModel;\n provider.languageModel = createChatModel;\n provider.textEmbeddingModel = createTextEmbeddingModel;\n provider.image = createImageModel;\n provider.imageModel = createImageModel;\n return provider;\n}\n\nexport const fireworks = createFireworks();\n","import { ImageModelV1, ImageModelV1CallWarning } from '@ai-sdk/provider';\nimport {\n combineHeaders,\n createBinaryResponseHandler,\n createStatusCodeErrorResponseHandler,\n FetchFunction,\n postJsonToApi,\n} from '@ai-sdk/provider-utils';\nimport {\n FireworksImageModelId,\n FireworksImageSettings,\n} from './fireworks-image-settings';\n\ninterface FireworksImageModelBackendConfig {\n urlFormat: 'workflows' | 'image_generation';\n supportsSize?: boolean;\n}\n\nconst modelToBackendConfig: Partial<\n Record<FireworksImageModelId, FireworksImageModelBackendConfig>\n> = {\n 'accounts/fireworks/models/flux-1-dev-fp8': {\n urlFormat: 'workflows',\n },\n 'accounts/fireworks/models/flux-1-schnell-fp8': {\n urlFormat: 'workflows',\n },\n 'accounts/fireworks/models/playground-v2-5-1024px-aesthetic': {\n urlFormat: 'image_generation',\n supportsSize: true,\n },\n 'accounts/fireworks/models/japanese-stable-diffusion-xl': {\n urlFormat: 'image_generation',\n supportsSize: true,\n },\n 'accounts/fireworks/models/playground-v2-1024px-aesthetic': {\n urlFormat: 'image_generation',\n supportsSize: true,\n },\n 'accounts/fireworks/models/stable-diffusion-xl-1024-v1-0': {\n urlFormat: 'image_generation',\n supportsSize: true,\n },\n 'accounts/fireworks/models/SSD-1B': {\n urlFormat: 'image_generation',\n supportsSize: true,\n },\n};\n\nfunction getUrlForModel(\n baseUrl: string,\n modelId: FireworksImageModelId,\n): string {\n switch (modelToBackendConfig[modelId]?.urlFormat) {\n case 'image_generation':\n return `${baseUrl}/image_generation/${modelId}`;\n case 'workflows':\n default:\n return `${baseUrl}/workflows/${modelId}/text_to_image`;\n }\n}\n\ninterface FireworksImageModelConfig {\n provider: string;\n baseURL: string;\n headers: () => Record<string, string>;\n fetch?: FetchFunction;\n _internal?: {\n currentDate?: () => Date;\n };\n}\n\nexport class FireworksImageModel implements ImageModelV1 {\n readonly specificationVersion = 'v1';\n\n get provider(): string {\n return this.config.provider;\n }\n\n get maxImagesPerCall(): number {\n return this.settings.maxImagesPerCall ?? 1;\n }\n\n constructor(\n readonly modelId: FireworksImageModelId,\n readonly settings: FireworksImageSettings,\n private config: FireworksImageModelConfig,\n ) {}\n\n async doGenerate({\n prompt,\n n,\n size,\n aspectRatio,\n seed,\n providerOptions,\n headers,\n abortSignal,\n }: Parameters<ImageModelV1['doGenerate']>[0]): Promise<\n Awaited<ReturnType<ImageModelV1['doGenerate']>>\n > {\n const warnings: Array<ImageModelV1CallWarning> = [];\n\n const backendConfig = modelToBackendConfig[this.modelId];\n if (!backendConfig?.supportsSize && size != null) {\n warnings.push({\n type: 'unsupported-setting',\n setting: 'size',\n details:\n 'This model does not support the `size` option. Use `aspectRatio` instead.',\n });\n }\n\n // Use supportsSize as a proxy for whether the model does not support\n // aspectRatio. This invariant holds for the current set of models.\n if (backendConfig?.supportsSize && aspectRatio != null) {\n warnings.push({\n type: 'unsupported-setting',\n setting: 'aspectRatio',\n details: 'This model does not support the `aspectRatio` option.',\n });\n }\n\n const splitSize = size?.split('x');\n const currentDate = this.config._internal?.currentDate?.() ?? new Date();\n const { value: response, responseHeaders } = await postJsonToApi({\n url: getUrlForModel(this.config.baseURL, this.modelId),\n headers: combineHeaders(this.config.headers(), headers),\n body: {\n prompt,\n aspect_ratio: aspectRatio,\n seed,\n samples: n,\n ...(splitSize && { width: splitSize[0], height: splitSize[1] }),\n ...(providerOptions.fireworks ?? {}),\n },\n failedResponseHandler: createStatusCodeErrorResponseHandler(),\n successfulResponseHandler: createBinaryResponseHandler(),\n abortSignal,\n fetch: this.config.fetch,\n });\n\n return {\n images: [response],\n warnings,\n response: {\n timestamp: currentDate,\n modelId: this.modelId,\n headers: responseHeaders,\n },\n };\n }\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/fireworks-image-model.ts","../src/fireworks-provider.ts"],"sourcesContent":["import { ImageModelV2, ImageModelV2CallWarning } from '@ai-sdk/provider';\nimport {\n combineHeaders,\n createBinaryResponseHandler,\n createStatusCodeErrorResponseHandler,\n FetchFunction,\n postJsonToApi,\n} from '@ai-sdk/provider-utils';\nimport { FireworksImageModelId } from './fireworks-image-options';\n\ninterface FireworksImageModelBackendConfig {\n urlFormat: 'workflows' | 'image_generation';\n supportsSize?: boolean;\n}\n\nconst modelToBackendConfig: Partial<\n Record<FireworksImageModelId, FireworksImageModelBackendConfig>\n> = {\n 'accounts/fireworks/models/flux-1-dev-fp8': {\n urlFormat: 'workflows',\n },\n 'accounts/fireworks/models/flux-1-schnell-fp8': {\n urlFormat: 'workflows',\n },\n 'accounts/fireworks/models/playground-v2-5-1024px-aesthetic': {\n urlFormat: 'image_generation',\n supportsSize: true,\n },\n 'accounts/fireworks/models/japanese-stable-diffusion-xl': {\n urlFormat: 'image_generation',\n supportsSize: true,\n },\n 'accounts/fireworks/models/playground-v2-1024px-aesthetic': {\n urlFormat: 'image_generation',\n supportsSize: true,\n },\n 'accounts/fireworks/models/stable-diffusion-xl-1024-v1-0': {\n urlFormat: 'image_generation',\n supportsSize: true,\n },\n 'accounts/fireworks/models/SSD-1B': {\n urlFormat: 'image_generation',\n supportsSize: true,\n },\n};\n\nfunction getUrlForModel(\n baseUrl: string,\n modelId: FireworksImageModelId,\n): string {\n switch (modelToBackendConfig[modelId]?.urlFormat) {\n case 'image_generation':\n return `${baseUrl}/image_generation/${modelId}`;\n case 'workflows':\n default:\n return `${baseUrl}/workflows/${modelId}/text_to_image`;\n }\n}\n\ninterface FireworksImageModelConfig {\n provider: string;\n baseURL: string;\n headers: () => Record<string, string>;\n fetch?: FetchFunction;\n _internal?: {\n currentDate?: () => Date;\n };\n}\n\nexport class FireworksImageModel implements ImageModelV2 {\n readonly specificationVersion = 'v2';\n readonly maxImagesPerCall = 1;\n\n get provider(): string {\n return this.config.provider;\n }\n\n constructor(\n readonly modelId: FireworksImageModelId,\n private config: FireworksImageModelConfig,\n ) {}\n\n async doGenerate({\n prompt,\n n,\n size,\n aspectRatio,\n seed,\n providerOptions,\n headers,\n abortSignal,\n }: Parameters<ImageModelV2['doGenerate']>[0]): Promise<\n Awaited<ReturnType<ImageModelV2['doGenerate']>>\n > {\n const warnings: Array<ImageModelV2CallWarning> = [];\n\n const backendConfig = modelToBackendConfig[this.modelId];\n if (!backendConfig?.supportsSize && size != null) {\n warnings.push({\n type: 'unsupported-setting',\n setting: 'size',\n details:\n 'This model does not support the `size` option. Use `aspectRatio` instead.',\n });\n }\n\n // Use supportsSize as a proxy for whether the model does not support\n // aspectRatio. This invariant holds for the current set of models.\n if (backendConfig?.supportsSize && aspectRatio != null) {\n warnings.push({\n type: 'unsupported-setting',\n setting: 'aspectRatio',\n details: 'This model does not support the `aspectRatio` option.',\n });\n }\n\n const splitSize = size?.split('x');\n const currentDate = this.config._internal?.currentDate?.() ?? new Date();\n const { value: response, responseHeaders } = await postJsonToApi({\n url: getUrlForModel(this.config.baseURL, this.modelId),\n headers: combineHeaders(this.config.headers(), headers),\n body: {\n prompt,\n aspect_ratio: aspectRatio,\n seed,\n samples: n,\n ...(splitSize && { width: splitSize[0], height: splitSize[1] }),\n ...(providerOptions.fireworks ?? {}),\n },\n failedResponseHandler: createStatusCodeErrorResponseHandler(),\n successfulResponseHandler: createBinaryResponseHandler(),\n abortSignal,\n fetch: this.config.fetch,\n });\n\n return {\n images: [response],\n warnings,\n response: {\n timestamp: currentDate,\n modelId: this.modelId,\n headers: responseHeaders,\n },\n };\n }\n}\n","import {\n OpenAICompatibleChatLanguageModel,\n OpenAICompatibleCompletionLanguageModel,\n OpenAICompatibleEmbeddingModel,\n ProviderErrorStructure,\n} from '@ai-sdk/openai-compatible';\nimport {\n EmbeddingModelV2,\n ImageModelV2,\n LanguageModelV2,\n ProviderV2,\n} from '@ai-sdk/provider';\nimport {\n FetchFunction,\n loadApiKey,\n withoutTrailingSlash,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod';\nimport { FireworksChatModelId } from './fireworks-chat-options';\nimport { FireworksCompletionModelId } from './fireworks-completion-options';\nimport { FireworksEmbeddingModelId } from './fireworks-embedding-options';\nimport { FireworksImageModel } from './fireworks-image-model';\nimport { FireworksImageModelId } from './fireworks-image-options';\n\nexport type FireworksErrorData = z.infer<typeof fireworksErrorSchema>;\n\nconst fireworksErrorSchema = z.object({\n error: z.string(),\n});\n\nconst fireworksErrorStructure: ProviderErrorStructure<FireworksErrorData> = {\n errorSchema: fireworksErrorSchema,\n errorToMessage: data => data.error,\n};\n\nexport interface FireworksProviderSettings {\n /**\nFireworks API key. Default value is taken from the `FIREWORKS_API_KEY`\nenvironment variable.\n*/\n apiKey?: string;\n /**\nBase URL for the API calls.\n*/\n baseURL?: string;\n /**\nCustom headers to include in the requests.\n*/\n headers?: Record<string, string>;\n /**\nCustom fetch implementation. You can use it as a middleware to intercept requests,\nor to provide a custom fetch implementation for e.g. testing.\n*/\n fetch?: FetchFunction;\n}\n\nexport interface FireworksProvider extends ProviderV2 {\n /**\nCreates a model for text generation.\n*/\n (modelId: FireworksChatModelId): LanguageModelV2;\n\n /**\nCreates a chat model for text generation.\n*/\n chatModel(modelId: FireworksChatModelId): LanguageModelV2;\n\n /**\nCreates a completion model for text generation.\n*/\n completionModel(modelId: FireworksCompletionModelId): LanguageModelV2;\n\n /**\nCreates a chat model for text generation.\n*/\n languageModel(modelId: FireworksChatModelId): LanguageModelV2;\n\n /**\nCreates a text embedding model for text generation.\n*/\n textEmbeddingModel(\n modelId: FireworksEmbeddingModelId,\n ): EmbeddingModelV2<string>;\n\n /**\nCreates a model for image generation.\n@deprecated Use `imageModel` instead.\n*/\n image(modelId: FireworksImageModelId): ImageModelV2;\n\n /**\nCreates a model for image generation.\n*/\n imageModel(modelId: FireworksImageModelId): ImageModelV2;\n}\n\nconst defaultBaseURL = 'https://api.fireworks.ai/inference/v1';\n\nexport function createFireworks(\n options: FireworksProviderSettings = {},\n): FireworksProvider {\n const baseURL = withoutTrailingSlash(options.baseURL ?? defaultBaseURL);\n const getHeaders = () => ({\n Authorization: `Bearer ${loadApiKey({\n apiKey: options.apiKey,\n environmentVariableName: 'FIREWORKS_API_KEY',\n description: 'Fireworks API key',\n })}`,\n ...options.headers,\n });\n\n interface CommonModelConfig {\n provider: string;\n url: ({ path }: { path: string }) => string;\n headers: () => Record<string, string>;\n fetch?: FetchFunction;\n }\n\n const getCommonModelConfig = (modelType: string): CommonModelConfig => ({\n provider: `fireworks.${modelType}`,\n url: ({ path }) => `${baseURL}${path}`,\n headers: getHeaders,\n fetch: options.fetch,\n });\n\n const createChatModel = (modelId: FireworksChatModelId) => {\n return new OpenAICompatibleChatLanguageModel(modelId, {\n ...getCommonModelConfig('chat'),\n errorStructure: fireworksErrorStructure,\n });\n };\n\n const createCompletionModel = (modelId: FireworksCompletionModelId) =>\n new OpenAICompatibleCompletionLanguageModel(modelId, {\n ...getCommonModelConfig('completion'),\n errorStructure: fireworksErrorStructure,\n });\n\n const createTextEmbeddingModel = (modelId: FireworksEmbeddingModelId) =>\n new OpenAICompatibleEmbeddingModel(modelId, {\n ...getCommonModelConfig('embedding'),\n errorStructure: fireworksErrorStructure,\n });\n\n const createImageModel = (modelId: FireworksImageModelId) =>\n new FireworksImageModel(modelId, {\n ...getCommonModelConfig('image'),\n baseURL: baseURL ?? defaultBaseURL,\n });\n\n const provider = (modelId: FireworksChatModelId) => createChatModel(modelId);\n\n provider.completionModel = createCompletionModel;\n provider.chatModel = createChatModel;\n provider.languageModel = createChatModel;\n provider.textEmbeddingModel = createTextEmbeddingModel;\n provider.image = createImageModel;\n provider.imageModel = createImageModel;\n return provider;\n}\n\nexport const fireworks = createFireworks();\n"],"mappings":";AACA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,OACK;AAQP,IAAM,uBAEF;AAAA,EACF,4CAA4C;AAAA,IAC1C,WAAW;AAAA,EACb;AAAA,EACA,gDAAgD;AAAA,IAC9C,WAAW;AAAA,EACb;AAAA,EACA,8DAA8D;AAAA,IAC5D,WAAW;AAAA,IACX,cAAc;AAAA,EAChB;AAAA,EACA,0DAA0D;AAAA,IACxD,WAAW;AAAA,IACX,cAAc;AAAA,EAChB;AAAA,EACA,4DAA4D;AAAA,IAC1D,WAAW;AAAA,IACX,cAAc;AAAA,EAChB;AAAA,EACA,2DAA2D;AAAA,IACzD,WAAW;AAAA,IACX,cAAc;AAAA,EAChB;AAAA,EACA,oCAAoC;AAAA,IAClC,WAAW;AAAA,IACX,cAAc;AAAA,EAChB;AACF;AAEA,SAAS,eACP,SACA,SACQ;AAjDV;AAkDE,WAAQ,0BAAqB,OAAO,MAA5B,mBAA+B,WAAW;AAAA,IAChD,KAAK;AACH,aAAO,GAAG,OAAO,qBAAqB,OAAO;AAAA,IAC/C,KAAK;AAAA,IACL;AACE,aAAO,GAAG,OAAO,cAAc,OAAO;AAAA,EAC1C;AACF;AAYO,IAAM,sBAAN,MAAkD;AAAA,EAQvD,YACW,SACD,QACR;AAFS;AACD;AATV,SAAS,uBAAuB;AAChC,SAAS,mBAAmB;AAAA,EASzB;AAAA,EAPH,IAAI,WAAmB;AACrB,WAAO,KAAK,OAAO;AAAA,EACrB;AAAA,EAOA,MAAM,WAAW;AAAA,IACf;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,GAEE;AA7FJ;AA8FI,UAAM,WAA2C,CAAC;AAElD,UAAM,gBAAgB,qBAAqB,KAAK,OAAO;AACvD,QAAI,EAAC,+CAAe,iBAAgB,QAAQ,MAAM;AAChD,eAAS,KAAK;AAAA,QACZ,MAAM;AAAA,QACN,SAAS;AAAA,QACT,SACE;AAAA,MACJ,CAAC;AAAA,IACH;AAIA,SAAI,+CAAe,iBAAgB,eAAe,MAAM;AACtD,eAAS,KAAK;AAAA,QACZ,MAAM;AAAA,QACN,SAAS;AAAA,QACT,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAEA,UAAM,YAAY,6BAAM,MAAM;AAC9B,UAAM,eAAc,sBAAK,OAAO,cAAZ,mBAAuB,gBAAvB,4CAA0C,oBAAI,KAAK;AACvE,UAAM,EAAE,OAAO,UAAU,gBAAgB,IAAI,MAAM,cAAc;AAAA,MAC/D,KAAK,eAAe,KAAK,OAAO,SAAS,KAAK,OAAO;AAAA,MACrD,SAAS,eAAe,KAAK,OAAO,QAAQ,GAAG,OAAO;AAAA,MACtD,MAAM;AAAA,QACJ;AAAA,QACA,cAAc;AAAA,QACd;AAAA,QACA,SAAS;AAAA,QACT,GAAI,aAAa,EAAE,OAAO,UAAU,CAAC,GAAG,QAAQ,UAAU,CAAC,EAAE;AAAA,QAC7D,IAAI,qBAAgB,cAAhB,YAA6B,CAAC;AAAA,MACpC;AAAA,MACA,uBAAuB,qCAAqC;AAAA,MAC5D,2BAA2B,4BAA4B;AAAA,MACvD;AAAA,MACA,OAAO,KAAK,OAAO;AAAA,IACrB,CAAC;AAED,WAAO;AAAA,MACL,QAAQ,CAAC,QAAQ;AAAA,MACjB;AAAA,MACA,UAAU;AAAA,QACR,WAAW;AAAA,QACX,SAAS,KAAK;AAAA,QACd,SAAS;AAAA,MACX;AAAA,IACF;AAAA,EACF;AACF;;;ACjJA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OAEK;AAOP;AAAA,EAEE;AAAA,EACA;AAAA,OACK;AACP,SAAS,SAAS;AASlB,IAAM,uBAAuB,EAAE,OAAO;AAAA,EACpC,OAAO,EAAE,OAAO;AAClB,CAAC;AAED,IAAM,0BAAsE;AAAA,EAC1E,aAAa;AAAA,EACb,gBAAgB,UAAQ,KAAK;AAC/B;AA+DA,IAAM,iBAAiB;AAEhB,SAAS,gBACd,UAAqC,CAAC,GACnB;AApGrB;AAqGE,QAAM,UAAU,sBAAqB,aAAQ,YAAR,YAAmB,cAAc;AACtE,QAAM,aAAa,OAAO;AAAA,IACxB,eAAe,UAAU,WAAW;AAAA,MAClC,QAAQ,QAAQ;AAAA,MAChB,yBAAyB;AAAA,MACzB,aAAa;AAAA,IACf,CAAC,CAAC;AAAA,IACF,GAAG,QAAQ;AAAA,EACb;AASA,QAAM,uBAAuB,CAAC,eAA0C;AAAA,IACtE,UAAU,aAAa,SAAS;AAAA,IAChC,KAAK,CAAC,EAAE,KAAK,MAAM,GAAG,OAAO,GAAG,IAAI;AAAA,IACpC,SAAS;AAAA,IACT,OAAO,QAAQ;AAAA,EACjB;AAEA,QAAM,kBAAkB,CAAC,YAAkC;AACzD,WAAO,IAAI,kCAAkC,SAAS;AAAA,MACpD,GAAG,qBAAqB,MAAM;AAAA,MAC9B,gBAAgB;AAAA,IAClB,CAAC;AAAA,EACH;AAEA,QAAM,wBAAwB,CAAC,YAC7B,IAAI,wCAAwC,SAAS;AAAA,IACnD,GAAG,qBAAqB,YAAY;AAAA,IACpC,gBAAgB;AAAA,EAClB,CAAC;AAEH,QAAM,2BAA2B,CAAC,YAChC,IAAI,+BAA+B,SAAS;AAAA,IAC1C,GAAG,qBAAqB,WAAW;AAAA,IACnC,gBAAgB;AAAA,EAClB,CAAC;AAEH,QAAM,mBAAmB,CAAC,YACxB,IAAI,oBAAoB,SAAS;AAAA,IAC/B,GAAG,qBAAqB,OAAO;AAAA,IAC/B,SAAS,4BAAW;AAAA,EACtB,CAAC;AAEH,QAAM,WAAW,CAAC,YAAkC,gBAAgB,OAAO;AAE3E,WAAS,kBAAkB;AAC3B,WAAS,YAAY;AACrB,WAAS,gBAAgB;AACzB,WAAS,qBAAqB;AAC9B,WAAS,QAAQ;AACjB,WAAS,aAAa;AACtB,SAAO;AACT;AAEO,IAAM,YAAY,gBAAgB;","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ai-sdk/fireworks",
3
- "version": "0.2.14",
3
+ "version": "1.0.0-alpha.10",
4
4
  "license": "Apache-2.0",
5
5
  "sideEffects": false,
6
6
  "main": "./dist/index.js",
@@ -19,19 +19,19 @@
19
19
  }
20
20
  },
21
21
  "dependencies": {
22
- "@ai-sdk/openai-compatible": "0.2.14",
23
- "@ai-sdk/provider": "1.1.3",
24
- "@ai-sdk/provider-utils": "2.2.8"
22
+ "@ai-sdk/openai-compatible": "1.0.0-alpha.10",
23
+ "@ai-sdk/provider": "2.0.0-alpha.10",
24
+ "@ai-sdk/provider-utils": "3.0.0-alpha.10"
25
25
  },
26
26
  "devDependencies": {
27
27
  "@types/node": "20.17.24",
28
28
  "tsup": "^8",
29
- "typescript": "5.6.3",
30
- "zod": "3.23.8",
29
+ "typescript": "5.8.3",
30
+ "zod": "3.25.49",
31
31
  "@vercel/ai-tsconfig": "0.0.0"
32
32
  },
33
33
  "peerDependencies": {
34
- "zod": "^3.0.0"
34
+ "zod": "^3.25.49"
35
35
  },
36
36
  "engines": {
37
37
  "node": ">=18"
@@ -51,13 +51,15 @@
51
51
  "ai"
52
52
  ],
53
53
  "scripts": {
54
- "build": "tsup",
55
- "build:watch": "tsup --watch",
56
- "clean": "rm -rf dist",
54
+ "build": "pnpm clean && tsup --tsconfig tsconfig.build.json",
55
+ "build:watch": "pnpm clean && tsup --watch",
56
+ "clean": "rm -rf dist *.tsbuildinfo",
57
57
  "lint": "eslint \"./**/*.ts*\"",
58
- "type-check": "tsc --noEmit",
58
+ "type-check": "tsc --build",
59
59
  "prettier-check": "prettier --check \"./**/*.ts*\"",
60
60
  "test": "pnpm test:node && pnpm test:edge",
61
+ "test:update": "pnpm test:node -u",
62
+ "test:watch": "vitest --config vitest.node.config.js",
61
63
  "test:edge": "vitest --config vitest.edge.config.js --run",
62
64
  "test:node": "vitest --config vitest.node.config.js --run"
63
65
  }