@ai-sdk/azure 2.0.0-canary.9 → 2.0.1

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,5 +1,677 @@
1
1
  # @ai-sdk/azure
2
2
 
3
+ ## 2.0.1
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies [bc45e29]
8
+ - @ai-sdk/openai@2.0.1
9
+
10
+ ## 2.0.0
11
+
12
+ ### Major Changes
13
+
14
+ - d5f588f: AI SDK 5
15
+ - 516be5b: ### Move Image Model Settings into generate options
16
+
17
+ Image Models no longer have settings. Instead, `maxImagesPerCall` can be passed directly to `generateImage()`. All other image settings can be passed to `providerOptions[provider]`.
18
+
19
+ Before
20
+
21
+ ```js
22
+ await generateImage({
23
+ model: luma.image('photon-flash-1', {
24
+ maxImagesPerCall: 5,
25
+ pollIntervalMillis: 500,
26
+ }),
27
+ prompt,
28
+ n: 10,
29
+ });
30
+ ```
31
+
32
+ After
33
+
34
+ ```js
35
+ await generateImage({
36
+ model: luma.image('photon-flash-1'),
37
+ prompt,
38
+ n: 10,
39
+ maxImagesPerCall: 5,
40
+ providerOptions: {
41
+ luma: { pollIntervalMillis: 5 },
42
+ },
43
+ });
44
+ ```
45
+
46
+ Pull Request: https://github.com/vercel/ai/pull/6180
47
+
48
+ ### Patch Changes
49
+
50
+ - c467b38: feat (provider/azure): add OpenAI responses API support
51
+ - 004fb17: feat(azure): add speech model support and fix transcription
52
+ - 3b13ccf: feat(providers/azure): add transcribe
53
+ - e2aceaf: feat: add raw chunk support
54
+ - eb173f1: chore (providers): remove model shorthand deprecation warnings
55
+ - db72adc: chore(providers/openai): update completion model to use providerOptions
56
+ - 9bf7291: chore(providers/openai): enable structuredOutputs by default & switch to provider option
57
+ - 9301f86: refactor (image-model): rename `ImageModelV1` to `ImageModelV2`
58
+ - 3db5258: update: Azure OpenAI provider to v1 API format
59
+ - 4617fab: chore(embedding-models): remove remaining settings
60
+ - 52ce942: chore(providers/openai): remove & enable strict compatibility by default
61
+ - 205077b: fix: improve Zod compatibility
62
+ - Updated dependencies [a571d6e]
63
+ - Updated dependencies [742b7be]
64
+ - Updated dependencies [948b755]
65
+ - Updated dependencies [d63bcbc]
66
+ - Updated dependencies [e7fcc86]
67
+ - Updated dependencies [7cddb72]
68
+ - Updated dependencies [ccce59b]
69
+ - Updated dependencies [e2b9e4b]
70
+ - Updated dependencies [95857aa]
71
+ - Updated dependencies [45c1ea2]
72
+ - Updated dependencies [6f6bb89]
73
+ - Updated dependencies [060370c]
74
+ - Updated dependencies [dc714f3]
75
+ - Updated dependencies [b5da06a]
76
+ - Updated dependencies [d1a1aa1]
77
+ - Updated dependencies [63f9e9b]
78
+ - Updated dependencies [3bd3c0b]
79
+ - Updated dependencies [5d142ab]
80
+ - Updated dependencies [d5f588f]
81
+ - Updated dependencies [e025824]
82
+ - Updated dependencies [cc62234]
83
+ - Updated dependencies [0571b98]
84
+ - Updated dependencies [5d959e7]
85
+ - Updated dependencies [b6b43c7]
86
+ - Updated dependencies [4fef487]
87
+ - Updated dependencies [48d257a]
88
+ - Updated dependencies [0c0c0b3]
89
+ - Updated dependencies [0d2c085]
90
+ - Updated dependencies [0eee6a8]
91
+ - Updated dependencies [177526b]
92
+ - Updated dependencies [2f542fa]
93
+ - Updated dependencies [40acf9b]
94
+ - Updated dependencies [c15dfbf]
95
+ - Updated dependencies [9222aeb]
96
+ - Updated dependencies [3b1ea10]
97
+ - Updated dependencies [e2aceaf]
98
+ - Updated dependencies [d2af019]
99
+ - Updated dependencies [411e483]
100
+ - Updated dependencies [8ba77a7]
101
+ - Updated dependencies [eb173f1]
102
+ - Updated dependencies [209256d]
103
+ - Updated dependencies [faea29f]
104
+ - Updated dependencies [7032dc5]
105
+ - Updated dependencies [870c5c0]
106
+ - Updated dependencies [db72adc]
107
+ - Updated dependencies [7b3ae3f]
108
+ - Updated dependencies [a166433]
109
+ - Updated dependencies [26735b5]
110
+ - Updated dependencies [443d8ec]
111
+ - Updated dependencies [a8c8bd5]
112
+ - Updated dependencies [abf9a79]
113
+ - Updated dependencies [14c9410]
114
+ - Updated dependencies [e86be6f]
115
+ - Updated dependencies [8d12da5]
116
+ - Updated dependencies [9bf7291]
117
+ - Updated dependencies [2e13791]
118
+ - Updated dependencies [9f95b35]
119
+ - Updated dependencies [d521cda]
120
+ - Updated dependencies [66962ed]
121
+ - Updated dependencies [0d06df6]
122
+ - Updated dependencies [442be08]
123
+ - Updated dependencies [472524a]
124
+ - Updated dependencies [0059ee2]
125
+ - Updated dependencies [dd3ff01]
126
+ - Updated dependencies [8493141]
127
+ - Updated dependencies [d9c98f4]
128
+ - Updated dependencies [05d2819]
129
+ - Updated dependencies [9301f86]
130
+ - Updated dependencies [0a87932]
131
+ - Updated dependencies [c4a2fec]
132
+ - Updated dependencies [957b739]
133
+ - Updated dependencies [79457bd]
134
+ - Updated dependencies [a3f768e]
135
+ - Updated dependencies [7435eb5]
136
+ - Updated dependencies [8aa9e20]
137
+ - Updated dependencies [4617fab]
138
+ - Updated dependencies [b5a0e32]
139
+ - Updated dependencies [136819b]
140
+ - Updated dependencies [516be5b]
141
+ - Updated dependencies [ac34802]
142
+ - Updated dependencies [0054544]
143
+ - Updated dependencies [cb68df0]
144
+ - Updated dependencies [52ce942]
145
+ - Updated dependencies [db64cbe]
146
+ - Updated dependencies [ad80501]
147
+ - Updated dependencies [b3c3450]
148
+ - Updated dependencies [68ecf2f]
149
+ - Updated dependencies [9e9c809]
150
+ - Updated dependencies [32831c6]
151
+ - Updated dependencies [48249c4]
152
+ - Updated dependencies [c7d3b2e]
153
+ - Updated dependencies [6dc848c]
154
+ - Updated dependencies [6b98118]
155
+ - Updated dependencies [d0f9495]
156
+ - Updated dependencies [63d791d]
157
+ - Updated dependencies [87b828f]
158
+ - Updated dependencies [3f2f00c]
159
+ - Updated dependencies [bfdca8d]
160
+ - Updated dependencies [0ff02bb]
161
+ - Updated dependencies [7979f7f]
162
+ - Updated dependencies [ad2a3d5]
163
+ - Updated dependencies [9943464]
164
+ - Updated dependencies [39a4fab]
165
+ - Updated dependencies [44f4aba]
166
+ - Updated dependencies [0fa7414]
167
+ - Updated dependencies [9bd5ab5]
168
+ - Updated dependencies [57edfcb]
169
+ - Updated dependencies [faf8446]
170
+ - Updated dependencies [efc3a62]
171
+ - Updated dependencies [7ea4132]
172
+ - Updated dependencies [fa758ea]
173
+ - Updated dependencies [d1a034f]
174
+ - Updated dependencies [5c56081]
175
+ - Updated dependencies [fd65bc6]
176
+ - Updated dependencies [023ba40]
177
+ - Updated dependencies [e497698]
178
+ - Updated dependencies [ea7a7c9]
179
+ - Updated dependencies [26535e0]
180
+ - Updated dependencies [928fadf]
181
+ - Updated dependencies [e030615]
182
+ - Updated dependencies [5e57fae]
183
+ - Updated dependencies [0a87932]
184
+ - Updated dependencies [393138b]
185
+ - Updated dependencies [c57e248]
186
+ - Updated dependencies [5147e6e]
187
+ - Updated dependencies [88a8ee5]
188
+ - Updated dependencies [06bac05]
189
+ - Updated dependencies [41fa418]
190
+ - Updated dependencies [205077b]
191
+ - Updated dependencies [71f938d]
192
+ - Updated dependencies [3795467]
193
+ - Updated dependencies [28a5ed5]
194
+ - Updated dependencies [7182d14]
195
+ - Updated dependencies [c1e6647]
196
+ - Updated dependencies [c2b92cc]
197
+ - Updated dependencies [284353f]
198
+ - Updated dependencies [1766ede]
199
+ - Updated dependencies [6f231db]
200
+ - Updated dependencies [811dff3]
201
+ - Updated dependencies [f10304b]
202
+ - Updated dependencies [dd5fd43]
203
+ - Updated dependencies [4af5233]
204
+ - Updated dependencies [33f4a6a]
205
+ - Updated dependencies [383cbfa]
206
+ - Updated dependencies [27deb4d]
207
+ - Updated dependencies [7df7a25]
208
+ - Updated dependencies [c4df419]
209
+ - @ai-sdk/provider-utils@3.0.0
210
+ - @ai-sdk/provider@2.0.0
211
+ - @ai-sdk/openai@2.0.0
212
+
213
+ ## 2.0.0-beta.16
214
+
215
+ ### Patch Changes
216
+
217
+ - Updated dependencies [88a8ee5]
218
+ - @ai-sdk/provider-utils@3.0.0-beta.10
219
+ - @ai-sdk/openai@2.0.0-beta.16
220
+
221
+ ## 2.0.0-beta.15
222
+
223
+ ### Patch Changes
224
+
225
+ - Updated dependencies [9943464]
226
+ - Updated dependencies [27deb4d]
227
+ - @ai-sdk/openai@2.0.0-beta.15
228
+ - @ai-sdk/provider@2.0.0-beta.2
229
+ - @ai-sdk/provider-utils@3.0.0-beta.9
230
+
231
+ ## 2.0.0-beta.14
232
+
233
+ ### Patch Changes
234
+
235
+ - 004fb17: feat(azure): add speech model support and fix transcription
236
+ - eb173f1: chore (providers): remove model shorthand deprecation warnings
237
+ - Updated dependencies [eb173f1]
238
+ - Updated dependencies [7032dc5]
239
+ - Updated dependencies [dd5fd43]
240
+ - @ai-sdk/openai@2.0.0-beta.14
241
+ - @ai-sdk/provider-utils@3.0.0-beta.8
242
+
243
+ ## 2.0.0-beta.13
244
+
245
+ ### Patch Changes
246
+
247
+ - Updated dependencies [e7fcc86]
248
+ - @ai-sdk/provider-utils@3.0.0-beta.7
249
+ - @ai-sdk/openai@2.0.0-beta.13
250
+
251
+ ## 2.0.0-beta.12
252
+
253
+ ### Patch Changes
254
+
255
+ - Updated dependencies [d521cda]
256
+ - Updated dependencies [0059ee2]
257
+ - Updated dependencies [ac34802]
258
+ - @ai-sdk/openai@2.0.0-beta.12
259
+ - @ai-sdk/provider-utils@3.0.0-beta.6
260
+
261
+ ## 2.0.0-beta.11
262
+
263
+ ### Patch Changes
264
+
265
+ - 3db5258: update: Azure OpenAI provider to v1 API format
266
+ - Updated dependencies [57edfcb]
267
+ - Updated dependencies [383cbfa]
268
+ - @ai-sdk/provider-utils@3.0.0-beta.5
269
+ - @ai-sdk/openai@2.0.0-beta.11
270
+
271
+ ## 2.0.0-beta.10
272
+
273
+ ### Patch Changes
274
+
275
+ - 205077b: fix: improve Zod compatibility
276
+ - Updated dependencies [0fa7414]
277
+ - Updated dependencies [205077b]
278
+ - @ai-sdk/openai@2.0.0-beta.10
279
+ - @ai-sdk/provider-utils@3.0.0-beta.4
280
+
281
+ ## 2.0.0-beta.9
282
+
283
+ ### Patch Changes
284
+
285
+ - Updated dependencies [faea29f]
286
+ - @ai-sdk/openai@2.0.0-beta.9
287
+
288
+ ## 2.0.0-beta.8
289
+
290
+ ### Patch Changes
291
+
292
+ - Updated dependencies [05d2819]
293
+ - Updated dependencies [db64cbe]
294
+ - @ai-sdk/provider-utils@3.0.0-beta.3
295
+ - @ai-sdk/openai@2.0.0-beta.8
296
+
297
+ ## 2.0.0-beta.7
298
+
299
+ ### Patch Changes
300
+
301
+ - Updated dependencies [209256d]
302
+ - @ai-sdk/openai@2.0.0-beta.7
303
+
304
+ ## 2.0.0-beta.6
305
+
306
+ ### Patch Changes
307
+
308
+ - Updated dependencies [0eee6a8]
309
+ - Updated dependencies [b5a0e32]
310
+ - Updated dependencies [c7d3b2e]
311
+ - @ai-sdk/openai@2.0.0-beta.6
312
+
313
+ ## 2.0.0-beta.5
314
+
315
+ ### Patch Changes
316
+
317
+ - Updated dependencies [48249c4]
318
+ - Updated dependencies [e497698]
319
+ - @ai-sdk/openai@2.0.0-beta.5
320
+
321
+ ## 2.0.0-beta.4
322
+
323
+ ### Patch Changes
324
+
325
+ - Updated dependencies [b3c3450]
326
+ - Updated dependencies [ad2a3d5]
327
+ - @ai-sdk/openai@2.0.0-beta.4
328
+
329
+ ## 2.0.0-beta.3
330
+
331
+ ### Patch Changes
332
+
333
+ - Updated dependencies [efc3a62]
334
+ - @ai-sdk/openai@2.0.0-beta.3
335
+
336
+ ## 2.0.0-beta.2
337
+
338
+ ### Patch Changes
339
+
340
+ - Updated dependencies [0571b98]
341
+ - Updated dependencies [39a4fab]
342
+ - Updated dependencies [d1a034f]
343
+ - @ai-sdk/provider-utils@3.0.0-beta.2
344
+ - @ai-sdk/openai@2.0.0-beta.2
345
+
346
+ ## 2.0.0-beta.1
347
+
348
+ ### Patch Changes
349
+
350
+ - Updated dependencies [742b7be]
351
+ - Updated dependencies [7cddb72]
352
+ - Updated dependencies [ccce59b]
353
+ - Updated dependencies [e2b9e4b]
354
+ - Updated dependencies [45c1ea2]
355
+ - Updated dependencies [e025824]
356
+ - Updated dependencies [cc62234]
357
+ - Updated dependencies [5d959e7]
358
+ - Updated dependencies [0d06df6]
359
+ - Updated dependencies [472524a]
360
+ - Updated dependencies [dd3ff01]
361
+ - Updated dependencies [7435eb5]
362
+ - Updated dependencies [cb68df0]
363
+ - Updated dependencies [bfdca8d]
364
+ - Updated dependencies [44f4aba]
365
+ - Updated dependencies [023ba40]
366
+ - Updated dependencies [5e57fae]
367
+ - Updated dependencies [71f938d]
368
+ - Updated dependencies [28a5ed5]
369
+ - @ai-sdk/provider@2.0.0-beta.1
370
+ - @ai-sdk/provider-utils@3.0.0-beta.1
371
+ - @ai-sdk/openai@2.0.0-beta.1
372
+
373
+ ## 2.0.0-alpha.15
374
+
375
+ ### Patch Changes
376
+
377
+ - Updated dependencies [48d257a]
378
+ - Updated dependencies [8ba77a7]
379
+ - @ai-sdk/provider@2.0.0-alpha.15
380
+ - @ai-sdk/provider-utils@3.0.0-alpha.15
381
+ - @ai-sdk/openai@2.0.0-alpha.15
382
+
383
+ ## 2.0.0-alpha.14
384
+
385
+ ### Patch Changes
386
+
387
+ - Updated dependencies [b5da06a]
388
+ - Updated dependencies [63f9e9b]
389
+ - Updated dependencies [2e13791]
390
+ - @ai-sdk/provider@2.0.0-alpha.14
391
+ - @ai-sdk/openai@2.0.0-alpha.14
392
+ - @ai-sdk/provider-utils@3.0.0-alpha.14
393
+
394
+ ## 2.0.0-alpha.13
395
+
396
+ ### Patch Changes
397
+
398
+ - Updated dependencies [68ecf2f]
399
+ - @ai-sdk/provider@2.0.0-alpha.13
400
+ - @ai-sdk/openai@2.0.0-alpha.13
401
+ - @ai-sdk/provider-utils@3.0.0-alpha.13
402
+
403
+ ## 2.0.0-alpha.12
404
+
405
+ ### Patch Changes
406
+
407
+ - e2aceaf: feat: add raw chunk support
408
+ - Updated dependencies [2f542fa]
409
+ - Updated dependencies [e2aceaf]
410
+ - @ai-sdk/openai@2.0.0-alpha.12
411
+ - @ai-sdk/provider@2.0.0-alpha.12
412
+ - @ai-sdk/provider-utils@3.0.0-alpha.12
413
+
414
+ ## 2.0.0-alpha.11
415
+
416
+ ### Patch Changes
417
+
418
+ - Updated dependencies [8d12da5]
419
+ - Updated dependencies [c1e6647]
420
+ - @ai-sdk/openai@2.0.0-alpha.11
421
+ - @ai-sdk/provider@2.0.0-alpha.11
422
+ - @ai-sdk/provider-utils@3.0.0-alpha.11
423
+
424
+ ## 2.0.0-alpha.10
425
+
426
+ ### Patch Changes
427
+
428
+ - Updated dependencies [c4df419]
429
+ - @ai-sdk/provider@2.0.0-alpha.10
430
+ - @ai-sdk/openai@2.0.0-alpha.10
431
+ - @ai-sdk/provider-utils@3.0.0-alpha.10
432
+
433
+ ## 2.0.0-alpha.9
434
+
435
+ ### Patch Changes
436
+
437
+ - Updated dependencies [811dff3]
438
+ - @ai-sdk/provider@2.0.0-alpha.9
439
+ - @ai-sdk/openai@2.0.0-alpha.9
440
+ - @ai-sdk/provider-utils@3.0.0-alpha.9
441
+
442
+ ## 2.0.0-alpha.8
443
+
444
+ ### Patch Changes
445
+
446
+ - Updated dependencies [4fef487]
447
+ - Updated dependencies [9222aeb]
448
+ - Updated dependencies [4af5233]
449
+ - @ai-sdk/provider-utils@3.0.0-alpha.8
450
+ - @ai-sdk/provider@2.0.0-alpha.8
451
+ - @ai-sdk/openai@2.0.0-alpha.8
452
+
453
+ ## 2.0.0-alpha.7
454
+
455
+ ### Patch Changes
456
+
457
+ - Updated dependencies [5c56081]
458
+ - @ai-sdk/provider@2.0.0-alpha.7
459
+ - @ai-sdk/openai@2.0.0-alpha.7
460
+ - @ai-sdk/provider-utils@3.0.0-alpha.7
461
+
462
+ ## 2.0.0-alpha.6
463
+
464
+ ### Patch Changes
465
+
466
+ - Updated dependencies [0d2c085]
467
+ - @ai-sdk/provider@2.0.0-alpha.6
468
+ - @ai-sdk/openai@2.0.0-alpha.6
469
+ - @ai-sdk/provider-utils@3.0.0-alpha.6
470
+
471
+ ## 2.0.0-alpha.4
472
+
473
+ ### Patch Changes
474
+
475
+ - Updated dependencies [dc714f3]
476
+ - @ai-sdk/provider@2.0.0-alpha.4
477
+ - @ai-sdk/openai@2.0.0-alpha.4
478
+ - @ai-sdk/provider-utils@3.0.0-alpha.4
479
+
480
+ ## 2.0.0-alpha.3
481
+
482
+ ### Patch Changes
483
+
484
+ - Updated dependencies [6b98118]
485
+ - @ai-sdk/provider@2.0.0-alpha.3
486
+ - @ai-sdk/openai@2.0.0-alpha.3
487
+ - @ai-sdk/provider-utils@3.0.0-alpha.3
488
+
489
+ ## 2.0.0-alpha.2
490
+
491
+ ### Patch Changes
492
+
493
+ - Updated dependencies [26535e0]
494
+ - @ai-sdk/provider@2.0.0-alpha.2
495
+ - @ai-sdk/openai@2.0.0-alpha.2
496
+ - @ai-sdk/provider-utils@3.0.0-alpha.2
497
+
498
+ ## 2.0.0-alpha.1
499
+
500
+ ### Patch Changes
501
+
502
+ - Updated dependencies [3f2f00c]
503
+ - @ai-sdk/provider@2.0.0-alpha.1
504
+ - @ai-sdk/openai@2.0.0-alpha.1
505
+ - @ai-sdk/provider-utils@3.0.0-alpha.1
506
+
507
+ ## 2.0.0-canary.21
508
+
509
+ ### Patch Changes
510
+
511
+ - Updated dependencies [faf8446]
512
+ - @ai-sdk/provider-utils@3.0.0-canary.19
513
+ - @ai-sdk/openai@2.0.0-canary.20
514
+
515
+ ## 2.0.0-canary.20
516
+
517
+ ### Patch Changes
518
+
519
+ - Updated dependencies [40acf9b]
520
+ - @ai-sdk/provider-utils@3.0.0-canary.18
521
+ - @ai-sdk/openai@2.0.0-canary.19
522
+
523
+ ## 2.0.0-canary.19
524
+
525
+ ### Major Changes
526
+
527
+ - 516be5b: ### Move Image Model Settings into generate options
528
+
529
+ Image Models no longer have settings. Instead, `maxImagesPerCall` can be passed directly to `generateImage()`. All other image settings can be passed to `providerOptions[provider]`.
530
+
531
+ Before
532
+
533
+ ```js
534
+ await generateImage({
535
+ model: luma.image('photon-flash-1', {
536
+ maxImagesPerCall: 5,
537
+ pollIntervalMillis: 500,
538
+ }),
539
+ prompt,
540
+ n: 10,
541
+ });
542
+ ```
543
+
544
+ After
545
+
546
+ ```js
547
+ await generateImage({
548
+ model: luma.image('photon-flash-1'),
549
+ prompt,
550
+ n: 10,
551
+ maxImagesPerCall: 5,
552
+ providerOptions: {
553
+ luma: { pollIntervalMillis: 5 },
554
+ },
555
+ });
556
+ ```
557
+
558
+ Pull Request: https://github.com/vercel/ai/pull/6180
559
+
560
+ ### Patch Changes
561
+
562
+ - Updated dependencies [516be5b]
563
+ - Updated dependencies [ea7a7c9]
564
+ - @ai-sdk/openai@2.0.0-canary.18
565
+ - @ai-sdk/provider-utils@3.0.0-canary.17
566
+
567
+ ## 2.0.0-canary.18
568
+
569
+ ### Patch Changes
570
+
571
+ - 52ce942: chore(providers/openai): remove & enable strict compatibility by default
572
+ - Updated dependencies [52ce942]
573
+ - Updated dependencies [87b828f]
574
+ - @ai-sdk/openai@2.0.0-canary.17
575
+ - @ai-sdk/provider-utils@3.0.0-canary.16
576
+
577
+ ## 2.0.0-canary.17
578
+
579
+ ### Patch Changes
580
+
581
+ - Updated dependencies [a571d6e]
582
+ - Updated dependencies [a8c8bd5]
583
+ - Updated dependencies [7979f7f]
584
+ - Updated dependencies [928fadf]
585
+ - Updated dependencies [41fa418]
586
+ - Updated dependencies [6f231db]
587
+ - @ai-sdk/provider-utils@3.0.0-canary.15
588
+ - @ai-sdk/provider@2.0.0-canary.14
589
+ - @ai-sdk/openai@2.0.0-canary.16
590
+
591
+ ## 2.0.0-canary.16
592
+
593
+ ### Patch Changes
594
+
595
+ - Updated dependencies [957b739]
596
+ - Updated dependencies [136819b]
597
+ - Updated dependencies [9bd5ab5]
598
+ - Updated dependencies [284353f]
599
+ - @ai-sdk/provider-utils@3.0.0-canary.14
600
+ - @ai-sdk/openai@2.0.0-canary.15
601
+ - @ai-sdk/provider@2.0.0-canary.13
602
+
603
+ ## 2.0.0-canary.15
604
+
605
+ ### Patch Changes
606
+
607
+ - Updated dependencies [7b3ae3f]
608
+ - Updated dependencies [0ff02bb]
609
+ - Updated dependencies [fa758ea]
610
+ - @ai-sdk/provider@2.0.0-canary.12
611
+ - @ai-sdk/provider-utils@3.0.0-canary.13
612
+ - @ai-sdk/openai@2.0.0-canary.14
613
+
614
+ ## 2.0.0-canary.14
615
+
616
+ ### Patch Changes
617
+
618
+ - 9bf7291: chore(providers/openai): enable structuredOutputs by default & switch to provider option
619
+ - 4617fab: chore(embedding-models): remove remaining settings
620
+ - Updated dependencies [177526b]
621
+ - Updated dependencies [c15dfbf]
622
+ - Updated dependencies [9bf7291]
623
+ - Updated dependencies [4617fab]
624
+ - Updated dependencies [e030615]
625
+ - @ai-sdk/openai@2.0.0-canary.13
626
+ - @ai-sdk/provider@2.0.0-canary.11
627
+ - @ai-sdk/provider-utils@3.0.0-canary.12
628
+
629
+ ## 2.0.0-canary.13
630
+
631
+ ### Patch Changes
632
+
633
+ - db72adc: chore(providers/openai): update completion model to use providerOptions
634
+ - 9301f86: refactor (image-model): rename `ImageModelV1` to `ImageModelV2`
635
+ - Updated dependencies [db72adc]
636
+ - Updated dependencies [66962ed]
637
+ - Updated dependencies [9301f86]
638
+ - Updated dependencies [a3f768e]
639
+ - Updated dependencies [7df7a25]
640
+ - @ai-sdk/openai@2.0.0-canary.12
641
+ - @ai-sdk/provider-utils@3.0.0-canary.11
642
+ - @ai-sdk/provider@2.0.0-canary.10
643
+
644
+ ## 2.0.0-canary.12
645
+
646
+ ### Patch Changes
647
+
648
+ - Updated dependencies [e86be6f]
649
+ - Updated dependencies [8493141]
650
+ - @ai-sdk/provider@2.0.0-canary.9
651
+ - @ai-sdk/openai@2.0.0-canary.11
652
+ - @ai-sdk/provider-utils@3.0.0-canary.10
653
+
654
+ ## 2.0.0-canary.11
655
+
656
+ ### Patch Changes
657
+
658
+ - Updated dependencies [95857aa]
659
+ - Updated dependencies [3bd3c0b]
660
+ - Updated dependencies [7ea4132]
661
+ - @ai-sdk/provider@2.0.0-canary.8
662
+ - @ai-sdk/openai@2.0.0-canary.10
663
+ - @ai-sdk/provider-utils@3.0.0-canary.9
664
+
665
+ ## 2.0.0-canary.10
666
+
667
+ ### Patch Changes
668
+
669
+ - Updated dependencies [d63bcbc]
670
+ - Updated dependencies [d2af019]
671
+ - Updated dependencies [870c5c0]
672
+ - Updated dependencies [06bac05]
673
+ - @ai-sdk/openai@2.0.0-canary.9
674
+
3
675
  ## 2.0.0-canary.9
4
676
 
5
677
  ### Patch Changes
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # AI SDK - Azure OpenAI Provider
2
2
 
3
- The **[Azure provider](https://sdk.vercel.ai/providers/ai-sdk-providers/azure)** for the [AI SDK](https://sdk.vercel.ai/docs) contains language model support for the Azure OpenAI API.
3
+ The **[Azure provider](https://ai-sdk.dev/providers/ai-sdk-providers/azure)** for the [AI SDK](https://ai-sdk.dev/docs) contains language model support for the Azure OpenAI API.
4
4
 
5
5
  ## Setup
6
6
 
@@ -32,4 +32,4 @@ const { text } = await generateText({
32
32
 
33
33
  ## Documentation
34
34
 
35
- Please check out the **[Azure provider](https://sdk.vercel.ai/providers/ai-sdk-providers/azure)** for more information.
35
+ Please check out the **[Azure provider](https://ai-sdk.dev/providers/ai-sdk-providers/azure)** for more information.
package/dist/index.d.mts CHANGED
@@ -1,17 +1,16 @@
1
- import { OpenAIChatSettings, OpenAICompletionSettings, OpenAIEmbeddingSettings, OpenAIImageSettings } from '@ai-sdk/openai/internal';
2
- import { ProviderV2, LanguageModelV2, EmbeddingModelV2, ImageModelV1, TranscriptionModelV1 } from '@ai-sdk/provider';
1
+ import { ProviderV2, LanguageModelV2, EmbeddingModelV2, ImageModelV2, TranscriptionModelV2, SpeechModelV2 } from '@ai-sdk/provider';
3
2
  import { FetchFunction } from '@ai-sdk/provider-utils';
4
3
 
5
4
  interface AzureOpenAIProvider extends ProviderV2 {
6
- (deploymentId: string, settings?: OpenAIChatSettings): LanguageModelV2;
5
+ (deploymentId: string): LanguageModelV2;
7
6
  /**
8
7
  Creates an Azure OpenAI chat model for text generation.
9
8
  */
10
- languageModel(deploymentId: string, settings?: OpenAIChatSettings): LanguageModelV2;
9
+ languageModel(deploymentId: string): LanguageModelV2;
11
10
  /**
12
11
  Creates an Azure OpenAI chat model for text generation.
13
12
  */
14
- chat(deploymentId: string, settings?: OpenAIChatSettings): LanguageModelV2;
13
+ chat(deploymentId: string): LanguageModelV2;
15
14
  /**
16
15
  Creates an Azure OpenAI responses API model for text generation.
17
16
  */
@@ -19,45 +18,45 @@ interface AzureOpenAIProvider extends ProviderV2 {
19
18
  /**
20
19
  Creates an Azure OpenAI completion model for text generation.
21
20
  */
22
- completion(deploymentId: string, settings?: OpenAICompletionSettings): LanguageModelV2;
21
+ completion(deploymentId: string): LanguageModelV2;
23
22
  /**
24
- @deprecated Use `textEmbeddingModel` instead.
23
+ @deprecated Use `textEmbedding` instead.
25
24
  */
26
- embedding(deploymentId: string, settings?: OpenAIEmbeddingSettings): EmbeddingModelV2<string>;
25
+ embedding(deploymentId: string): EmbeddingModelV2<string>;
27
26
  /**
28
27
  * Creates an Azure OpenAI DALL-E model for image generation.
29
- * @deprecated Use `imageModel` instead.
30
28
  */
31
- image(deploymentId: string, settings?: OpenAIImageSettings): ImageModelV1;
29
+ image(deploymentId: string): ImageModelV2;
32
30
  /**
33
31
  * Creates an Azure OpenAI DALL-E model for image generation.
34
32
  */
35
- imageModel(deploymentId: string, settings?: OpenAIImageSettings): ImageModelV1;
36
- /**
37
- @deprecated Use `textEmbeddingModel` instead.
38
- */
39
- textEmbedding(deploymentId: string, settings?: OpenAIEmbeddingSettings): EmbeddingModelV2<string>;
33
+ imageModel(deploymentId: string): ImageModelV2;
34
+ textEmbedding(deploymentId: string): EmbeddingModelV2<string>;
40
35
  /**
41
36
  Creates an Azure OpenAI model for text embeddings.
42
37
  */
43
- textEmbeddingModel(deploymentId: string, settings?: OpenAIEmbeddingSettings): EmbeddingModelV2<string>;
38
+ textEmbeddingModel(deploymentId: string): EmbeddingModelV2<string>;
44
39
  /**
45
40
  * Creates an Azure OpenAI model for audio transcription.
46
41
  */
47
- transcription(deploymentId: string): TranscriptionModelV1;
42
+ transcription(deploymentId: string): TranscriptionModelV2;
43
+ /**
44
+ * Creates an Azure OpenAI model for speech generation.
45
+ */
46
+ speech(deploymentId: string): SpeechModelV2;
48
47
  }
49
48
  interface AzureOpenAIProviderSettings {
50
49
  /**
51
50
  Name of the Azure OpenAI resource. Either this or `baseURL` can be used.
52
51
 
53
- The resource name is used in the assembled URL: `https://{resourceName}.openai.azure.com/openai/deployments/{modelId}{path}`.
52
+ The resource name is used in the assembled URL: `https://{resourceName}.openai.azure.com/openai/v1{path}`.
54
53
  */
55
54
  resourceName?: string;
56
55
  /**
57
56
  Use a different URL prefix for API calls, e.g. to use proxy servers. Either this or `resourceName` can be used.
58
57
  When a baseURL is provided, the resourceName is ignored.
59
58
 
60
- With a baseURL, the resolved URL is `{baseURL}/{modelId}{path}`.
59
+ With a baseURL, the resolved URL is `{baseURL}/v1{path}`.
61
60
  */
62
61
  baseURL?: string;
63
62
  /**
@@ -74,7 +73,7 @@ interface AzureOpenAIProviderSettings {
74
73
  */
75
74
  fetch?: FetchFunction;
76
75
  /**
77
- Custom api version to use. Defaults to `2024-10-01-preview`.
76
+ Custom api version to use. Defaults to `preview`.
78
77
  */
79
78
  apiVersion?: string;
80
79
  }
package/dist/index.d.ts CHANGED
@@ -1,17 +1,16 @@
1
- import { OpenAIChatSettings, OpenAICompletionSettings, OpenAIEmbeddingSettings, OpenAIImageSettings } from '@ai-sdk/openai/internal';
2
- import { ProviderV2, LanguageModelV2, EmbeddingModelV2, ImageModelV1, TranscriptionModelV1 } from '@ai-sdk/provider';
1
+ import { ProviderV2, LanguageModelV2, EmbeddingModelV2, ImageModelV2, TranscriptionModelV2, SpeechModelV2 } from '@ai-sdk/provider';
3
2
  import { FetchFunction } from '@ai-sdk/provider-utils';
4
3
 
5
4
  interface AzureOpenAIProvider extends ProviderV2 {
6
- (deploymentId: string, settings?: OpenAIChatSettings): LanguageModelV2;
5
+ (deploymentId: string): LanguageModelV2;
7
6
  /**
8
7
  Creates an Azure OpenAI chat model for text generation.
9
8
  */
10
- languageModel(deploymentId: string, settings?: OpenAIChatSettings): LanguageModelV2;
9
+ languageModel(deploymentId: string): LanguageModelV2;
11
10
  /**
12
11
  Creates an Azure OpenAI chat model for text generation.
13
12
  */
14
- chat(deploymentId: string, settings?: OpenAIChatSettings): LanguageModelV2;
13
+ chat(deploymentId: string): LanguageModelV2;
15
14
  /**
16
15
  Creates an Azure OpenAI responses API model for text generation.
17
16
  */
@@ -19,45 +18,45 @@ interface AzureOpenAIProvider extends ProviderV2 {
19
18
  /**
20
19
  Creates an Azure OpenAI completion model for text generation.
21
20
  */
22
- completion(deploymentId: string, settings?: OpenAICompletionSettings): LanguageModelV2;
21
+ completion(deploymentId: string): LanguageModelV2;
23
22
  /**
24
- @deprecated Use `textEmbeddingModel` instead.
23
+ @deprecated Use `textEmbedding` instead.
25
24
  */
26
- embedding(deploymentId: string, settings?: OpenAIEmbeddingSettings): EmbeddingModelV2<string>;
25
+ embedding(deploymentId: string): EmbeddingModelV2<string>;
27
26
  /**
28
27
  * Creates an Azure OpenAI DALL-E model for image generation.
29
- * @deprecated Use `imageModel` instead.
30
28
  */
31
- image(deploymentId: string, settings?: OpenAIImageSettings): ImageModelV1;
29
+ image(deploymentId: string): ImageModelV2;
32
30
  /**
33
31
  * Creates an Azure OpenAI DALL-E model for image generation.
34
32
  */
35
- imageModel(deploymentId: string, settings?: OpenAIImageSettings): ImageModelV1;
36
- /**
37
- @deprecated Use `textEmbeddingModel` instead.
38
- */
39
- textEmbedding(deploymentId: string, settings?: OpenAIEmbeddingSettings): EmbeddingModelV2<string>;
33
+ imageModel(deploymentId: string): ImageModelV2;
34
+ textEmbedding(deploymentId: string): EmbeddingModelV2<string>;
40
35
  /**
41
36
  Creates an Azure OpenAI model for text embeddings.
42
37
  */
43
- textEmbeddingModel(deploymentId: string, settings?: OpenAIEmbeddingSettings): EmbeddingModelV2<string>;
38
+ textEmbeddingModel(deploymentId: string): EmbeddingModelV2<string>;
44
39
  /**
45
40
  * Creates an Azure OpenAI model for audio transcription.
46
41
  */
47
- transcription(deploymentId: string): TranscriptionModelV1;
42
+ transcription(deploymentId: string): TranscriptionModelV2;
43
+ /**
44
+ * Creates an Azure OpenAI model for speech generation.
45
+ */
46
+ speech(deploymentId: string): SpeechModelV2;
48
47
  }
49
48
  interface AzureOpenAIProviderSettings {
50
49
  /**
51
50
  Name of the Azure OpenAI resource. Either this or `baseURL` can be used.
52
51
 
53
- The resource name is used in the assembled URL: `https://{resourceName}.openai.azure.com/openai/deployments/{modelId}{path}`.
52
+ The resource name is used in the assembled URL: `https://{resourceName}.openai.azure.com/openai/v1{path}`.
54
53
  */
55
54
  resourceName?: string;
56
55
  /**
57
56
  Use a different URL prefix for API calls, e.g. to use proxy servers. Either this or `resourceName` can be used.
58
57
  When a baseURL is provided, the resourceName is ignored.
59
58
 
60
- With a baseURL, the resolved URL is `{baseURL}/{modelId}{path}`.
59
+ With a baseURL, the resolved URL is `{baseURL}/v1{path}`.
61
60
  */
62
61
  baseURL?: string;
63
62
  /**
@@ -74,7 +73,7 @@ interface AzureOpenAIProviderSettings {
74
73
  */
75
74
  fetch?: FetchFunction;
76
75
  /**
77
- Custom api version to use. Defaults to `2024-10-01-preview`.
76
+ Custom api version to use. Defaults to `preview`.
78
77
  */
79
78
  apiVersion?: string;
80
79
  }
package/dist/index.js CHANGED
@@ -44,58 +44,63 @@ function createAzure(options = {}) {
44
44
  environmentVariableName: "AZURE_RESOURCE_NAME",
45
45
  description: "Azure OpenAI resource name"
46
46
  });
47
- const apiVersion = (_a = options.apiVersion) != null ? _a : "2025-03-01-preview";
47
+ const apiVersion = (_a = options.apiVersion) != null ? _a : "preview";
48
48
  const url = ({ path, modelId }) => {
49
- if (path === "/responses") {
50
- return options.baseURL ? `${options.baseURL}${path}?api-version=${apiVersion}` : `https://${getResourceName()}.openai.azure.com/openai/responses?api-version=${apiVersion}`;
51
- }
52
- return options.baseURL ? `${options.baseURL}/${modelId}${path}?api-version=${apiVersion}` : `https://${getResourceName()}.openai.azure.com/openai/deployments/${modelId}${path}?api-version=${apiVersion}`;
49
+ var _a2;
50
+ const baseUrlPrefix = (_a2 = options.baseURL) != null ? _a2 : `https://${getResourceName()}.openai.azure.com/openai`;
51
+ const fullUrl = new URL(`${baseUrlPrefix}/v1${path}`);
52
+ fullUrl.searchParams.set("api-version", apiVersion);
53
+ return fullUrl.toString();
53
54
  };
54
- const createChatModel = (deploymentName, settings = {}) => new import_internal.OpenAIChatLanguageModel(deploymentName, settings, {
55
- provider: "azure-openai.chat",
55
+ const createChatModel = (deploymentName) => new import_internal.OpenAIChatLanguageModel(deploymentName, {
56
+ provider: "azure.chat",
56
57
  url,
57
58
  headers: getHeaders,
58
- compatibility: "strict",
59
59
  fetch: options.fetch
60
60
  });
61
- const createCompletionModel = (modelId, settings = {}) => new import_internal.OpenAICompletionLanguageModel(modelId, settings, {
62
- provider: "azure-openai.completion",
61
+ const createCompletionModel = (modelId) => new import_internal.OpenAICompletionLanguageModel(modelId, {
62
+ provider: "azure.completion",
63
63
  url,
64
- compatibility: "strict",
65
64
  headers: getHeaders,
66
65
  fetch: options.fetch
67
66
  });
68
- const createEmbeddingModel = (modelId, settings = {}) => new import_internal.OpenAIEmbeddingModel(modelId, settings, {
69
- provider: "azure-openai.embeddings",
67
+ const createEmbeddingModel = (modelId) => new import_internal.OpenAIEmbeddingModel(modelId, {
68
+ provider: "azure.embeddings",
70
69
  headers: getHeaders,
71
70
  url,
72
71
  fetch: options.fetch
73
72
  });
74
73
  const createResponsesModel = (modelId) => new import_internal.OpenAIResponsesLanguageModel(modelId, {
75
- provider: "azure-openai.responses",
74
+ provider: "azure.responses",
76
75
  url,
77
76
  headers: getHeaders,
78
77
  fetch: options.fetch
79
78
  });
80
- const createImageModel = (modelId, settings = {}) => new import_internal.OpenAIImageModel(modelId, settings, {
81
- provider: "azure-openai.image",
79
+ const createImageModel = (modelId) => new import_internal.OpenAIImageModel(modelId, {
80
+ provider: "azure.image",
82
81
  url,
83
82
  headers: getHeaders,
84
83
  fetch: options.fetch
85
84
  });
86
85
  const createTranscriptionModel = (modelId) => new import_internal.OpenAITranscriptionModel(modelId, {
87
- provider: "azure-openai.transcription",
86
+ provider: "azure.transcription",
87
+ url,
88
+ headers: getHeaders,
89
+ fetch: options.fetch
90
+ });
91
+ const createSpeechModel = (modelId) => new import_internal.OpenAISpeechModel(modelId, {
92
+ provider: "azure.speech",
88
93
  url,
89
94
  headers: getHeaders,
90
95
  fetch: options.fetch
91
96
  });
92
- const provider = function(deploymentId, settings) {
97
+ const provider = function(deploymentId) {
93
98
  if (new.target) {
94
99
  throw new Error(
95
100
  "The Azure OpenAI model function cannot be called with the new keyword."
96
101
  );
97
102
  }
98
- return createChatModel(deploymentId, settings);
103
+ return createChatModel(deploymentId);
99
104
  };
100
105
  provider.languageModel = createChatModel;
101
106
  provider.chat = createChatModel;
@@ -107,6 +112,7 @@ function createAzure(options = {}) {
107
112
  provider.textEmbeddingModel = createEmbeddingModel;
108
113
  provider.responses = createResponsesModel;
109
114
  provider.transcription = createTranscriptionModel;
115
+ provider.speech = createSpeechModel;
110
116
  return provider;
111
117
  }
112
118
  var azure = createAzure();
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/azure-openai-provider.ts"],"sourcesContent":["export { azure, createAzure } from './azure-openai-provider';\nexport type {\n AzureOpenAIProvider,\n AzureOpenAIProviderSettings,\n} from './azure-openai-provider';\n","import {\n OpenAIChatLanguageModel,\n OpenAIChatSettings,\n OpenAICompletionLanguageModel,\n OpenAICompletionSettings,\n OpenAIEmbeddingModel,\n OpenAIEmbeddingSettings,\n OpenAIImageModel,\n OpenAIImageSettings,\n OpenAIResponsesLanguageModel,\n OpenAITranscriptionModel,\n} from '@ai-sdk/openai/internal';\nimport {\n EmbeddingModelV2,\n LanguageModelV2,\n ProviderV2,\n ImageModelV1,\n TranscriptionModelV1,\n} from '@ai-sdk/provider';\nimport { FetchFunction, loadApiKey, loadSetting } from '@ai-sdk/provider-utils';\n\nexport interface AzureOpenAIProvider extends ProviderV2 {\n (deploymentId: string, settings?: OpenAIChatSettings): LanguageModelV2;\n\n /**\nCreates an Azure OpenAI chat model for text generation.\n */\n languageModel(\n deploymentId: string,\n settings?: OpenAIChatSettings,\n ): LanguageModelV2;\n\n /**\nCreates an Azure OpenAI chat model for text generation.\n */\n chat(deploymentId: string, settings?: OpenAIChatSettings): LanguageModelV2;\n\n /**\nCreates an Azure OpenAI responses API model for text generation.\n */\n responses(deploymentId: string): LanguageModelV2;\n\n /**\nCreates an Azure OpenAI completion model for text generation.\n */\n completion(\n deploymentId: string,\n settings?: OpenAICompletionSettings,\n ): LanguageModelV2;\n\n /**\n@deprecated Use `textEmbeddingModel` instead.\n */\n embedding(\n deploymentId: string,\n settings?: OpenAIEmbeddingSettings,\n ): EmbeddingModelV2<string>;\n\n /**\n * Creates an Azure OpenAI DALL-E model for image generation.\n * @deprecated Use `imageModel` instead.\n */\n image(deploymentId: string, settings?: OpenAIImageSettings): ImageModelV1;\n\n /**\n * Creates an Azure OpenAI DALL-E model for image generation.\n */\n imageModel(\n deploymentId: string,\n settings?: OpenAIImageSettings,\n ): ImageModelV1;\n\n /**\n@deprecated Use `textEmbeddingModel` instead.\n */\n textEmbedding(\n deploymentId: string,\n settings?: OpenAIEmbeddingSettings,\n ): EmbeddingModelV2<string>;\n\n /**\nCreates an Azure OpenAI model for text embeddings.\n */\n textEmbeddingModel(\n deploymentId: string,\n settings?: OpenAIEmbeddingSettings,\n ): EmbeddingModelV2<string>;\n\n /**\n * Creates an Azure OpenAI model for audio transcription.\n */\n transcription(deploymentId: string): TranscriptionModelV1;\n}\n\nexport interface AzureOpenAIProviderSettings {\n /**\nName of the Azure OpenAI resource. Either this or `baseURL` can be used.\n\nThe resource name is used in the assembled URL: `https://{resourceName}.openai.azure.com/openai/deployments/{modelId}{path}`.\n */\n resourceName?: string;\n\n /**\nUse a different URL prefix for API calls, e.g. to use proxy servers. Either this or `resourceName` can be used.\nWhen a baseURL is provided, the resourceName is ignored.\n\nWith a baseURL, the resolved URL is `{baseURL}/{modelId}{path}`.\n */\n baseURL?: string;\n\n /**\nAPI key for authenticating requests.\n */\n apiKey?: string;\n\n /**\nCustom headers to include in the requests.\n */\n headers?: Record<string, string>;\n\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 /**\nCustom api version to use. Defaults to `2024-10-01-preview`.\n */\n apiVersion?: string;\n}\n\n/**\nCreate an Azure OpenAI provider instance.\n */\nexport function createAzure(\n options: AzureOpenAIProviderSettings = {},\n): AzureOpenAIProvider {\n const getHeaders = () => ({\n 'api-key': loadApiKey({\n apiKey: options.apiKey,\n environmentVariableName: 'AZURE_API_KEY',\n description: 'Azure OpenAI',\n }),\n ...options.headers,\n });\n\n const getResourceName = () =>\n loadSetting({\n settingValue: options.resourceName,\n settingName: 'resourceName',\n environmentVariableName: 'AZURE_RESOURCE_NAME',\n description: 'Azure OpenAI resource name',\n });\n\n const apiVersion = options.apiVersion ?? '2025-03-01-preview';\n const url = ({ path, modelId }: { path: string; modelId: string }) => {\n if (path === '/responses') {\n return options.baseURL\n ? `${options.baseURL}${path}?api-version=${apiVersion}`\n : `https://${getResourceName()}.openai.azure.com/openai/responses?api-version=${apiVersion}`;\n }\n\n // Default URL format for other endpoints\n return options.baseURL\n ? `${options.baseURL}/${modelId}${path}?api-version=${apiVersion}`\n : `https://${getResourceName()}.openai.azure.com/openai/deployments/${modelId}${path}?api-version=${apiVersion}`;\n };\n\n const createChatModel = (\n deploymentName: string,\n settings: OpenAIChatSettings = {},\n ) =>\n new OpenAIChatLanguageModel(deploymentName, settings, {\n provider: 'azure-openai.chat',\n url,\n headers: getHeaders,\n compatibility: 'strict',\n fetch: options.fetch,\n });\n\n const createCompletionModel = (\n modelId: string,\n settings: OpenAICompletionSettings = {},\n ) =>\n new OpenAICompletionLanguageModel(modelId, settings, {\n provider: 'azure-openai.completion',\n url,\n compatibility: 'strict',\n headers: getHeaders,\n fetch: options.fetch,\n });\n\n const createEmbeddingModel = (\n modelId: string,\n settings: OpenAIEmbeddingSettings = {},\n ) =>\n new OpenAIEmbeddingModel(modelId, settings, {\n provider: 'azure-openai.embeddings',\n headers: getHeaders,\n url,\n fetch: options.fetch,\n });\n\n const createResponsesModel = (modelId: string) =>\n new OpenAIResponsesLanguageModel(modelId, {\n provider: 'azure-openai.responses',\n url,\n headers: getHeaders,\n fetch: options.fetch,\n });\n\n const createImageModel = (\n modelId: string,\n settings: OpenAIImageSettings = {},\n ) =>\n new OpenAIImageModel(modelId, settings, {\n provider: 'azure-openai.image',\n url,\n headers: getHeaders,\n fetch: options.fetch,\n });\n\n const createTranscriptionModel = (modelId: string) =>\n new OpenAITranscriptionModel(modelId, {\n provider: 'azure-openai.transcription',\n url,\n headers: getHeaders,\n fetch: options.fetch,\n });\n\n const provider = function (\n deploymentId: string,\n settings?: OpenAIChatSettings | OpenAICompletionSettings,\n ) {\n if (new.target) {\n throw new Error(\n 'The Azure OpenAI model function cannot be called with the new keyword.',\n );\n }\n\n return createChatModel(deploymentId, settings as OpenAIChatSettings);\n };\n\n provider.languageModel = createChatModel;\n provider.chat = createChatModel;\n provider.completion = createCompletionModel;\n provider.embedding = createEmbeddingModel;\n provider.image = createImageModel;\n provider.imageModel = createImageModel;\n provider.textEmbedding = createEmbeddingModel;\n provider.textEmbeddingModel = createEmbeddingModel;\n provider.responses = createResponsesModel;\n provider.transcription = createTranscriptionModel;\n return provider;\n}\n\n/**\nDefault Azure OpenAI provider instance.\n */\nexport const azure = createAzure();\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,sBAWO;AAQP,4BAAuD;AAoHhD,SAAS,YACd,UAAuC,CAAC,GACnB;AAzIvB;AA0IE,QAAM,aAAa,OAAO;AAAA,IACxB,eAAW,kCAAW;AAAA,MACpB,QAAQ,QAAQ;AAAA,MAChB,yBAAyB;AAAA,MACzB,aAAa;AAAA,IACf,CAAC;AAAA,IACD,GAAG,QAAQ;AAAA,EACb;AAEA,QAAM,kBAAkB,UACtB,mCAAY;AAAA,IACV,cAAc,QAAQ;AAAA,IACtB,aAAa;AAAA,IACb,yBAAyB;AAAA,IACzB,aAAa;AAAA,EACf,CAAC;AAEH,QAAM,cAAa,aAAQ,eAAR,YAAsB;AACzC,QAAM,MAAM,CAAC,EAAE,MAAM,QAAQ,MAAyC;AACpE,QAAI,SAAS,cAAc;AACzB,aAAO,QAAQ,UACX,GAAG,QAAQ,OAAO,GAAG,IAAI,gBAAgB,UAAU,KACnD,WAAW,gBAAgB,CAAC,kDAAkD,UAAU;AAAA,IAC9F;AAGA,WAAO,QAAQ,UACX,GAAG,QAAQ,OAAO,IAAI,OAAO,GAAG,IAAI,gBAAgB,UAAU,KAC9D,WAAW,gBAAgB,CAAC,wCAAwC,OAAO,GAAG,IAAI,gBAAgB,UAAU;AAAA,EAClH;AAEA,QAAM,kBAAkB,CACtB,gBACA,WAA+B,CAAC,MAEhC,IAAI,wCAAwB,gBAAgB,UAAU;AAAA,IACpD,UAAU;AAAA,IACV;AAAA,IACA,SAAS;AAAA,IACT,eAAe;AAAA,IACf,OAAO,QAAQ;AAAA,EACjB,CAAC;AAEH,QAAM,wBAAwB,CAC5B,SACA,WAAqC,CAAC,MAEtC,IAAI,8CAA8B,SAAS,UAAU;AAAA,IACnD,UAAU;AAAA,IACV;AAAA,IACA,eAAe;AAAA,IACf,SAAS;AAAA,IACT,OAAO,QAAQ;AAAA,EACjB,CAAC;AAEH,QAAM,uBAAuB,CAC3B,SACA,WAAoC,CAAC,MAErC,IAAI,qCAAqB,SAAS,UAAU;AAAA,IAC1C,UAAU;AAAA,IACV,SAAS;AAAA,IACT;AAAA,IACA,OAAO,QAAQ;AAAA,EACjB,CAAC;AAEH,QAAM,uBAAuB,CAAC,YAC5B,IAAI,6CAA6B,SAAS;AAAA,IACxC,UAAU;AAAA,IACV;AAAA,IACA,SAAS;AAAA,IACT,OAAO,QAAQ;AAAA,EACjB,CAAC;AAEH,QAAM,mBAAmB,CACvB,SACA,WAAgC,CAAC,MAEjC,IAAI,iCAAiB,SAAS,UAAU;AAAA,IACtC,UAAU;AAAA,IACV;AAAA,IACA,SAAS;AAAA,IACT,OAAO,QAAQ;AAAA,EACjB,CAAC;AAEH,QAAM,2BAA2B,CAAC,YAChC,IAAI,yCAAyB,SAAS;AAAA,IACpC,UAAU;AAAA,IACV;AAAA,IACA,SAAS;AAAA,IACT,OAAO,QAAQ;AAAA,EACjB,CAAC;AAEH,QAAM,WAAW,SACf,cACA,UACA;AACA,QAAI,YAAY;AACd,YAAM,IAAI;AAAA,QACR;AAAA,MACF;AAAA,IACF;AAEA,WAAO,gBAAgB,cAAc,QAA8B;AAAA,EACrE;AAEA,WAAS,gBAAgB;AACzB,WAAS,OAAO;AAChB,WAAS,aAAa;AACtB,WAAS,YAAY;AACrB,WAAS,QAAQ;AACjB,WAAS,aAAa;AACtB,WAAS,gBAAgB;AACzB,WAAS,qBAAqB;AAC9B,WAAS,YAAY;AACrB,WAAS,gBAAgB;AACzB,SAAO;AACT;AAKO,IAAM,QAAQ,YAAY;","names":[]}
1
+ {"version":3,"sources":["../src/index.ts","../src/azure-openai-provider.ts"],"sourcesContent":["export { azure, createAzure } from './azure-openai-provider';\nexport type {\n AzureOpenAIProvider,\n AzureOpenAIProviderSettings,\n} from './azure-openai-provider';\n","import {\n OpenAIChatLanguageModel,\n OpenAICompletionLanguageModel,\n OpenAIEmbeddingModel,\n OpenAIImageModel,\n OpenAIResponsesLanguageModel,\n OpenAISpeechModel,\n OpenAITranscriptionModel,\n} from '@ai-sdk/openai/internal';\nimport {\n EmbeddingModelV2,\n LanguageModelV2,\n ProviderV2,\n ImageModelV2,\n SpeechModelV2,\n TranscriptionModelV2,\n} from '@ai-sdk/provider';\nimport { FetchFunction, loadApiKey, loadSetting } from '@ai-sdk/provider-utils';\n\nexport interface AzureOpenAIProvider extends ProviderV2 {\n (deploymentId: string): LanguageModelV2;\n\n /**\nCreates an Azure OpenAI chat model for text generation.\n */\n languageModel(deploymentId: string): LanguageModelV2;\n\n /**\nCreates an Azure OpenAI chat model for text generation.\n */\n chat(deploymentId: string): LanguageModelV2;\n\n /**\nCreates an Azure OpenAI responses API model for text generation.\n */\n responses(deploymentId: string): LanguageModelV2;\n\n /**\nCreates an Azure OpenAI completion model for text generation.\n */\n completion(deploymentId: string): LanguageModelV2;\n\n /**\n@deprecated Use `textEmbedding` instead.\n */\n embedding(deploymentId: string): EmbeddingModelV2<string>;\n\n /**\n * Creates an Azure OpenAI DALL-E model for image generation.\n */\n image(deploymentId: string): ImageModelV2;\n\n /**\n * Creates an Azure OpenAI DALL-E model for image generation.\n */\n imageModel(deploymentId: string): ImageModelV2;\n\n textEmbedding(deploymentId: string): EmbeddingModelV2<string>;\n\n /**\nCreates an Azure OpenAI model for text embeddings.\n */\n textEmbeddingModel(deploymentId: string): EmbeddingModelV2<string>;\n\n /**\n * Creates an Azure OpenAI model for audio transcription.\n */\n transcription(deploymentId: string): TranscriptionModelV2;\n\n /**\n * Creates an Azure OpenAI model for speech generation.\n */\n speech(deploymentId: string): SpeechModelV2;\n}\n\nexport interface AzureOpenAIProviderSettings {\n /**\nName of the Azure OpenAI resource. Either this or `baseURL` can be used.\n\nThe resource name is used in the assembled URL: `https://{resourceName}.openai.azure.com/openai/v1{path}`.\n */\n resourceName?: string;\n\n /**\nUse a different URL prefix for API calls, e.g. to use proxy servers. Either this or `resourceName` can be used.\nWhen a baseURL is provided, the resourceName is ignored.\n\nWith a baseURL, the resolved URL is `{baseURL}/v1{path}`.\n */\n baseURL?: string;\n\n /**\nAPI key for authenticating requests.\n */\n apiKey?: string;\n\n /**\nCustom headers to include in the requests.\n */\n headers?: Record<string, string>;\n\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 /**\nCustom api version to use. Defaults to `preview`.\n */\n apiVersion?: string;\n}\n\n/**\nCreate an Azure OpenAI provider instance.\n */\nexport function createAzure(\n options: AzureOpenAIProviderSettings = {},\n): AzureOpenAIProvider {\n const getHeaders = () => ({\n 'api-key': loadApiKey({\n apiKey: options.apiKey,\n environmentVariableName: 'AZURE_API_KEY',\n description: 'Azure OpenAI',\n }),\n ...options.headers,\n });\n\n const getResourceName = () =>\n loadSetting({\n settingValue: options.resourceName,\n settingName: 'resourceName',\n environmentVariableName: 'AZURE_RESOURCE_NAME',\n description: 'Azure OpenAI resource name',\n });\n\n const apiVersion = options.apiVersion ?? 'preview';\n\n const url = ({ path, modelId }: { path: string; modelId: string }) => {\n const baseUrlPrefix =\n options.baseURL ?? `https://${getResourceName()}.openai.azure.com/openai`;\n // Use v1 API format - no deployment ID in URL\n const fullUrl = new URL(`${baseUrlPrefix}/v1${path}`);\n fullUrl.searchParams.set('api-version', apiVersion);\n return fullUrl.toString();\n };\n\n const createChatModel = (deploymentName: string) =>\n new OpenAIChatLanguageModel(deploymentName, {\n provider: 'azure.chat',\n url,\n headers: getHeaders,\n fetch: options.fetch,\n });\n\n const createCompletionModel = (modelId: string) =>\n new OpenAICompletionLanguageModel(modelId, {\n provider: 'azure.completion',\n url,\n headers: getHeaders,\n fetch: options.fetch,\n });\n\n const createEmbeddingModel = (modelId: string) =>\n new OpenAIEmbeddingModel(modelId, {\n provider: 'azure.embeddings',\n headers: getHeaders,\n url,\n fetch: options.fetch,\n });\n\n const createResponsesModel = (modelId: string) =>\n new OpenAIResponsesLanguageModel(modelId, {\n provider: 'azure.responses',\n url,\n headers: getHeaders,\n fetch: options.fetch,\n });\n\n const createImageModel = (modelId: string) =>\n new OpenAIImageModel(modelId, {\n provider: 'azure.image',\n url,\n headers: getHeaders,\n fetch: options.fetch,\n });\n\n const createTranscriptionModel = (modelId: string) =>\n new OpenAITranscriptionModel(modelId, {\n provider: 'azure.transcription',\n url,\n headers: getHeaders,\n fetch: options.fetch,\n });\n\n const createSpeechModel = (modelId: string) =>\n new OpenAISpeechModel(modelId, {\n provider: 'azure.speech',\n url,\n headers: getHeaders,\n fetch: options.fetch,\n });\n\n const provider = function (deploymentId: string) {\n if (new.target) {\n throw new Error(\n 'The Azure OpenAI model function cannot be called with the new keyword.',\n );\n }\n\n return createChatModel(deploymentId);\n };\n\n provider.languageModel = createChatModel;\n provider.chat = createChatModel;\n provider.completion = createCompletionModel;\n provider.embedding = createEmbeddingModel;\n provider.image = createImageModel;\n provider.imageModel = createImageModel;\n provider.textEmbedding = createEmbeddingModel;\n provider.textEmbeddingModel = createEmbeddingModel;\n provider.responses = createResponsesModel;\n provider.transcription = createTranscriptionModel;\n provider.speech = createSpeechModel;\n return provider;\n}\n\n/**\nDefault Azure OpenAI provider instance.\n */\nexport const azure = createAzure();\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,sBAQO;AASP,4BAAuD;AAmGhD,SAAS,YACd,UAAuC,CAAC,GACnB;AAtHvB;AAuHE,QAAM,aAAa,OAAO;AAAA,IACxB,eAAW,kCAAW;AAAA,MACpB,QAAQ,QAAQ;AAAA,MAChB,yBAAyB;AAAA,MACzB,aAAa;AAAA,IACf,CAAC;AAAA,IACD,GAAG,QAAQ;AAAA,EACb;AAEA,QAAM,kBAAkB,UACtB,mCAAY;AAAA,IACV,cAAc,QAAQ;AAAA,IACtB,aAAa;AAAA,IACb,yBAAyB;AAAA,IACzB,aAAa;AAAA,EACf,CAAC;AAEH,QAAM,cAAa,aAAQ,eAAR,YAAsB;AAEzC,QAAM,MAAM,CAAC,EAAE,MAAM,QAAQ,MAAyC;AA1IxE,QAAAA;AA2II,UAAM,iBACJA,MAAA,QAAQ,YAAR,OAAAA,MAAmB,WAAW,gBAAgB,CAAC;AAEjD,UAAM,UAAU,IAAI,IAAI,GAAG,aAAa,MAAM,IAAI,EAAE;AACpD,YAAQ,aAAa,IAAI,eAAe,UAAU;AAClD,WAAO,QAAQ,SAAS;AAAA,EAC1B;AAEA,QAAM,kBAAkB,CAAC,mBACvB,IAAI,wCAAwB,gBAAgB;AAAA,IAC1C,UAAU;AAAA,IACV;AAAA,IACA,SAAS;AAAA,IACT,OAAO,QAAQ;AAAA,EACjB,CAAC;AAEH,QAAM,wBAAwB,CAAC,YAC7B,IAAI,8CAA8B,SAAS;AAAA,IACzC,UAAU;AAAA,IACV;AAAA,IACA,SAAS;AAAA,IACT,OAAO,QAAQ;AAAA,EACjB,CAAC;AAEH,QAAM,uBAAuB,CAAC,YAC5B,IAAI,qCAAqB,SAAS;AAAA,IAChC,UAAU;AAAA,IACV,SAAS;AAAA,IACT;AAAA,IACA,OAAO,QAAQ;AAAA,EACjB,CAAC;AAEH,QAAM,uBAAuB,CAAC,YAC5B,IAAI,6CAA6B,SAAS;AAAA,IACxC,UAAU;AAAA,IACV;AAAA,IACA,SAAS;AAAA,IACT,OAAO,QAAQ;AAAA,EACjB,CAAC;AAEH,QAAM,mBAAmB,CAAC,YACxB,IAAI,iCAAiB,SAAS;AAAA,IAC5B,UAAU;AAAA,IACV;AAAA,IACA,SAAS;AAAA,IACT,OAAO,QAAQ;AAAA,EACjB,CAAC;AAEH,QAAM,2BAA2B,CAAC,YAChC,IAAI,yCAAyB,SAAS;AAAA,IACpC,UAAU;AAAA,IACV;AAAA,IACA,SAAS;AAAA,IACT,OAAO,QAAQ;AAAA,EACjB,CAAC;AAEH,QAAM,oBAAoB,CAAC,YACzB,IAAI,kCAAkB,SAAS;AAAA,IAC7B,UAAU;AAAA,IACV;AAAA,IACA,SAAS;AAAA,IACT,OAAO,QAAQ;AAAA,EACjB,CAAC;AAEH,QAAM,WAAW,SAAU,cAAsB;AAC/C,QAAI,YAAY;AACd,YAAM,IAAI;AAAA,QACR;AAAA,MACF;AAAA,IACF;AAEA,WAAO,gBAAgB,YAAY;AAAA,EACrC;AAEA,WAAS,gBAAgB;AACzB,WAAS,OAAO;AAChB,WAAS,aAAa;AACtB,WAAS,YAAY;AACrB,WAAS,QAAQ;AACjB,WAAS,aAAa;AACtB,WAAS,gBAAgB;AACzB,WAAS,qBAAqB;AAC9B,WAAS,YAAY;AACrB,WAAS,gBAAgB;AACzB,WAAS,SAAS;AAClB,SAAO;AACT;AAKO,IAAM,QAAQ,YAAY;","names":["_a"]}
package/dist/index.mjs CHANGED
@@ -5,6 +5,7 @@ import {
5
5
  OpenAIEmbeddingModel,
6
6
  OpenAIImageModel,
7
7
  OpenAIResponsesLanguageModel,
8
+ OpenAISpeechModel,
8
9
  OpenAITranscriptionModel
9
10
  } from "@ai-sdk/openai/internal";
10
11
  import { loadApiKey, loadSetting } from "@ai-sdk/provider-utils";
@@ -24,58 +25,63 @@ function createAzure(options = {}) {
24
25
  environmentVariableName: "AZURE_RESOURCE_NAME",
25
26
  description: "Azure OpenAI resource name"
26
27
  });
27
- const apiVersion = (_a = options.apiVersion) != null ? _a : "2025-03-01-preview";
28
+ const apiVersion = (_a = options.apiVersion) != null ? _a : "preview";
28
29
  const url = ({ path, modelId }) => {
29
- if (path === "/responses") {
30
- return options.baseURL ? `${options.baseURL}${path}?api-version=${apiVersion}` : `https://${getResourceName()}.openai.azure.com/openai/responses?api-version=${apiVersion}`;
31
- }
32
- return options.baseURL ? `${options.baseURL}/${modelId}${path}?api-version=${apiVersion}` : `https://${getResourceName()}.openai.azure.com/openai/deployments/${modelId}${path}?api-version=${apiVersion}`;
30
+ var _a2;
31
+ const baseUrlPrefix = (_a2 = options.baseURL) != null ? _a2 : `https://${getResourceName()}.openai.azure.com/openai`;
32
+ const fullUrl = new URL(`${baseUrlPrefix}/v1${path}`);
33
+ fullUrl.searchParams.set("api-version", apiVersion);
34
+ return fullUrl.toString();
33
35
  };
34
- const createChatModel = (deploymentName, settings = {}) => new OpenAIChatLanguageModel(deploymentName, settings, {
35
- provider: "azure-openai.chat",
36
+ const createChatModel = (deploymentName) => new OpenAIChatLanguageModel(deploymentName, {
37
+ provider: "azure.chat",
36
38
  url,
37
39
  headers: getHeaders,
38
- compatibility: "strict",
39
40
  fetch: options.fetch
40
41
  });
41
- const createCompletionModel = (modelId, settings = {}) => new OpenAICompletionLanguageModel(modelId, settings, {
42
- provider: "azure-openai.completion",
42
+ const createCompletionModel = (modelId) => new OpenAICompletionLanguageModel(modelId, {
43
+ provider: "azure.completion",
43
44
  url,
44
- compatibility: "strict",
45
45
  headers: getHeaders,
46
46
  fetch: options.fetch
47
47
  });
48
- const createEmbeddingModel = (modelId, settings = {}) => new OpenAIEmbeddingModel(modelId, settings, {
49
- provider: "azure-openai.embeddings",
48
+ const createEmbeddingModel = (modelId) => new OpenAIEmbeddingModel(modelId, {
49
+ provider: "azure.embeddings",
50
50
  headers: getHeaders,
51
51
  url,
52
52
  fetch: options.fetch
53
53
  });
54
54
  const createResponsesModel = (modelId) => new OpenAIResponsesLanguageModel(modelId, {
55
- provider: "azure-openai.responses",
55
+ provider: "azure.responses",
56
56
  url,
57
57
  headers: getHeaders,
58
58
  fetch: options.fetch
59
59
  });
60
- const createImageModel = (modelId, settings = {}) => new OpenAIImageModel(modelId, settings, {
61
- provider: "azure-openai.image",
60
+ const createImageModel = (modelId) => new OpenAIImageModel(modelId, {
61
+ provider: "azure.image",
62
62
  url,
63
63
  headers: getHeaders,
64
64
  fetch: options.fetch
65
65
  });
66
66
  const createTranscriptionModel = (modelId) => new OpenAITranscriptionModel(modelId, {
67
- provider: "azure-openai.transcription",
67
+ provider: "azure.transcription",
68
+ url,
69
+ headers: getHeaders,
70
+ fetch: options.fetch
71
+ });
72
+ const createSpeechModel = (modelId) => new OpenAISpeechModel(modelId, {
73
+ provider: "azure.speech",
68
74
  url,
69
75
  headers: getHeaders,
70
76
  fetch: options.fetch
71
77
  });
72
- const provider = function(deploymentId, settings) {
78
+ const provider = function(deploymentId) {
73
79
  if (new.target) {
74
80
  throw new Error(
75
81
  "The Azure OpenAI model function cannot be called with the new keyword."
76
82
  );
77
83
  }
78
- return createChatModel(deploymentId, settings);
84
+ return createChatModel(deploymentId);
79
85
  };
80
86
  provider.languageModel = createChatModel;
81
87
  provider.chat = createChatModel;
@@ -87,6 +93,7 @@ function createAzure(options = {}) {
87
93
  provider.textEmbeddingModel = createEmbeddingModel;
88
94
  provider.responses = createResponsesModel;
89
95
  provider.transcription = createTranscriptionModel;
96
+ provider.speech = createSpeechModel;
90
97
  return provider;
91
98
  }
92
99
  var azure = createAzure();
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/azure-openai-provider.ts"],"sourcesContent":["import {\n OpenAIChatLanguageModel,\n OpenAIChatSettings,\n OpenAICompletionLanguageModel,\n OpenAICompletionSettings,\n OpenAIEmbeddingModel,\n OpenAIEmbeddingSettings,\n OpenAIImageModel,\n OpenAIImageSettings,\n OpenAIResponsesLanguageModel,\n OpenAITranscriptionModel,\n} from '@ai-sdk/openai/internal';\nimport {\n EmbeddingModelV2,\n LanguageModelV2,\n ProviderV2,\n ImageModelV1,\n TranscriptionModelV1,\n} from '@ai-sdk/provider';\nimport { FetchFunction, loadApiKey, loadSetting } from '@ai-sdk/provider-utils';\n\nexport interface AzureOpenAIProvider extends ProviderV2 {\n (deploymentId: string, settings?: OpenAIChatSettings): LanguageModelV2;\n\n /**\nCreates an Azure OpenAI chat model for text generation.\n */\n languageModel(\n deploymentId: string,\n settings?: OpenAIChatSettings,\n ): LanguageModelV2;\n\n /**\nCreates an Azure OpenAI chat model for text generation.\n */\n chat(deploymentId: string, settings?: OpenAIChatSettings): LanguageModelV2;\n\n /**\nCreates an Azure OpenAI responses API model for text generation.\n */\n responses(deploymentId: string): LanguageModelV2;\n\n /**\nCreates an Azure OpenAI completion model for text generation.\n */\n completion(\n deploymentId: string,\n settings?: OpenAICompletionSettings,\n ): LanguageModelV2;\n\n /**\n@deprecated Use `textEmbeddingModel` instead.\n */\n embedding(\n deploymentId: string,\n settings?: OpenAIEmbeddingSettings,\n ): EmbeddingModelV2<string>;\n\n /**\n * Creates an Azure OpenAI DALL-E model for image generation.\n * @deprecated Use `imageModel` instead.\n */\n image(deploymentId: string, settings?: OpenAIImageSettings): ImageModelV1;\n\n /**\n * Creates an Azure OpenAI DALL-E model for image generation.\n */\n imageModel(\n deploymentId: string,\n settings?: OpenAIImageSettings,\n ): ImageModelV1;\n\n /**\n@deprecated Use `textEmbeddingModel` instead.\n */\n textEmbedding(\n deploymentId: string,\n settings?: OpenAIEmbeddingSettings,\n ): EmbeddingModelV2<string>;\n\n /**\nCreates an Azure OpenAI model for text embeddings.\n */\n textEmbeddingModel(\n deploymentId: string,\n settings?: OpenAIEmbeddingSettings,\n ): EmbeddingModelV2<string>;\n\n /**\n * Creates an Azure OpenAI model for audio transcription.\n */\n transcription(deploymentId: string): TranscriptionModelV1;\n}\n\nexport interface AzureOpenAIProviderSettings {\n /**\nName of the Azure OpenAI resource. Either this or `baseURL` can be used.\n\nThe resource name is used in the assembled URL: `https://{resourceName}.openai.azure.com/openai/deployments/{modelId}{path}`.\n */\n resourceName?: string;\n\n /**\nUse a different URL prefix for API calls, e.g. to use proxy servers. Either this or `resourceName` can be used.\nWhen a baseURL is provided, the resourceName is ignored.\n\nWith a baseURL, the resolved URL is `{baseURL}/{modelId}{path}`.\n */\n baseURL?: string;\n\n /**\nAPI key for authenticating requests.\n */\n apiKey?: string;\n\n /**\nCustom headers to include in the requests.\n */\n headers?: Record<string, string>;\n\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 /**\nCustom api version to use. Defaults to `2024-10-01-preview`.\n */\n apiVersion?: string;\n}\n\n/**\nCreate an Azure OpenAI provider instance.\n */\nexport function createAzure(\n options: AzureOpenAIProviderSettings = {},\n): AzureOpenAIProvider {\n const getHeaders = () => ({\n 'api-key': loadApiKey({\n apiKey: options.apiKey,\n environmentVariableName: 'AZURE_API_KEY',\n description: 'Azure OpenAI',\n }),\n ...options.headers,\n });\n\n const getResourceName = () =>\n loadSetting({\n settingValue: options.resourceName,\n settingName: 'resourceName',\n environmentVariableName: 'AZURE_RESOURCE_NAME',\n description: 'Azure OpenAI resource name',\n });\n\n const apiVersion = options.apiVersion ?? '2025-03-01-preview';\n const url = ({ path, modelId }: { path: string; modelId: string }) => {\n if (path === '/responses') {\n return options.baseURL\n ? `${options.baseURL}${path}?api-version=${apiVersion}`\n : `https://${getResourceName()}.openai.azure.com/openai/responses?api-version=${apiVersion}`;\n }\n\n // Default URL format for other endpoints\n return options.baseURL\n ? `${options.baseURL}/${modelId}${path}?api-version=${apiVersion}`\n : `https://${getResourceName()}.openai.azure.com/openai/deployments/${modelId}${path}?api-version=${apiVersion}`;\n };\n\n const createChatModel = (\n deploymentName: string,\n settings: OpenAIChatSettings = {},\n ) =>\n new OpenAIChatLanguageModel(deploymentName, settings, {\n provider: 'azure-openai.chat',\n url,\n headers: getHeaders,\n compatibility: 'strict',\n fetch: options.fetch,\n });\n\n const createCompletionModel = (\n modelId: string,\n settings: OpenAICompletionSettings = {},\n ) =>\n new OpenAICompletionLanguageModel(modelId, settings, {\n provider: 'azure-openai.completion',\n url,\n compatibility: 'strict',\n headers: getHeaders,\n fetch: options.fetch,\n });\n\n const createEmbeddingModel = (\n modelId: string,\n settings: OpenAIEmbeddingSettings = {},\n ) =>\n new OpenAIEmbeddingModel(modelId, settings, {\n provider: 'azure-openai.embeddings',\n headers: getHeaders,\n url,\n fetch: options.fetch,\n });\n\n const createResponsesModel = (modelId: string) =>\n new OpenAIResponsesLanguageModel(modelId, {\n provider: 'azure-openai.responses',\n url,\n headers: getHeaders,\n fetch: options.fetch,\n });\n\n const createImageModel = (\n modelId: string,\n settings: OpenAIImageSettings = {},\n ) =>\n new OpenAIImageModel(modelId, settings, {\n provider: 'azure-openai.image',\n url,\n headers: getHeaders,\n fetch: options.fetch,\n });\n\n const createTranscriptionModel = (modelId: string) =>\n new OpenAITranscriptionModel(modelId, {\n provider: 'azure-openai.transcription',\n url,\n headers: getHeaders,\n fetch: options.fetch,\n });\n\n const provider = function (\n deploymentId: string,\n settings?: OpenAIChatSettings | OpenAICompletionSettings,\n ) {\n if (new.target) {\n throw new Error(\n 'The Azure OpenAI model function cannot be called with the new keyword.',\n );\n }\n\n return createChatModel(deploymentId, settings as OpenAIChatSettings);\n };\n\n provider.languageModel = createChatModel;\n provider.chat = createChatModel;\n provider.completion = createCompletionModel;\n provider.embedding = createEmbeddingModel;\n provider.image = createImageModel;\n provider.imageModel = createImageModel;\n provider.textEmbedding = createEmbeddingModel;\n provider.textEmbeddingModel = createEmbeddingModel;\n provider.responses = createResponsesModel;\n provider.transcription = createTranscriptionModel;\n return provider;\n}\n\n/**\nDefault Azure OpenAI provider instance.\n */\nexport const azure = createAzure();\n"],"mappings":";AAAA;AAAA,EACE;AAAA,EAEA;AAAA,EAEA;AAAA,EAEA;AAAA,EAEA;AAAA,EACA;AAAA,OACK;AAQP,SAAwB,YAAY,mBAAmB;AAoHhD,SAAS,YACd,UAAuC,CAAC,GACnB;AAzIvB;AA0IE,QAAM,aAAa,OAAO;AAAA,IACxB,WAAW,WAAW;AAAA,MACpB,QAAQ,QAAQ;AAAA,MAChB,yBAAyB;AAAA,MACzB,aAAa;AAAA,IACf,CAAC;AAAA,IACD,GAAG,QAAQ;AAAA,EACb;AAEA,QAAM,kBAAkB,MACtB,YAAY;AAAA,IACV,cAAc,QAAQ;AAAA,IACtB,aAAa;AAAA,IACb,yBAAyB;AAAA,IACzB,aAAa;AAAA,EACf,CAAC;AAEH,QAAM,cAAa,aAAQ,eAAR,YAAsB;AACzC,QAAM,MAAM,CAAC,EAAE,MAAM,QAAQ,MAAyC;AACpE,QAAI,SAAS,cAAc;AACzB,aAAO,QAAQ,UACX,GAAG,QAAQ,OAAO,GAAG,IAAI,gBAAgB,UAAU,KACnD,WAAW,gBAAgB,CAAC,kDAAkD,UAAU;AAAA,IAC9F;AAGA,WAAO,QAAQ,UACX,GAAG,QAAQ,OAAO,IAAI,OAAO,GAAG,IAAI,gBAAgB,UAAU,KAC9D,WAAW,gBAAgB,CAAC,wCAAwC,OAAO,GAAG,IAAI,gBAAgB,UAAU;AAAA,EAClH;AAEA,QAAM,kBAAkB,CACtB,gBACA,WAA+B,CAAC,MAEhC,IAAI,wBAAwB,gBAAgB,UAAU;AAAA,IACpD,UAAU;AAAA,IACV;AAAA,IACA,SAAS;AAAA,IACT,eAAe;AAAA,IACf,OAAO,QAAQ;AAAA,EACjB,CAAC;AAEH,QAAM,wBAAwB,CAC5B,SACA,WAAqC,CAAC,MAEtC,IAAI,8BAA8B,SAAS,UAAU;AAAA,IACnD,UAAU;AAAA,IACV;AAAA,IACA,eAAe;AAAA,IACf,SAAS;AAAA,IACT,OAAO,QAAQ;AAAA,EACjB,CAAC;AAEH,QAAM,uBAAuB,CAC3B,SACA,WAAoC,CAAC,MAErC,IAAI,qBAAqB,SAAS,UAAU;AAAA,IAC1C,UAAU;AAAA,IACV,SAAS;AAAA,IACT;AAAA,IACA,OAAO,QAAQ;AAAA,EACjB,CAAC;AAEH,QAAM,uBAAuB,CAAC,YAC5B,IAAI,6BAA6B,SAAS;AAAA,IACxC,UAAU;AAAA,IACV;AAAA,IACA,SAAS;AAAA,IACT,OAAO,QAAQ;AAAA,EACjB,CAAC;AAEH,QAAM,mBAAmB,CACvB,SACA,WAAgC,CAAC,MAEjC,IAAI,iBAAiB,SAAS,UAAU;AAAA,IACtC,UAAU;AAAA,IACV;AAAA,IACA,SAAS;AAAA,IACT,OAAO,QAAQ;AAAA,EACjB,CAAC;AAEH,QAAM,2BAA2B,CAAC,YAChC,IAAI,yBAAyB,SAAS;AAAA,IACpC,UAAU;AAAA,IACV;AAAA,IACA,SAAS;AAAA,IACT,OAAO,QAAQ;AAAA,EACjB,CAAC;AAEH,QAAM,WAAW,SACf,cACA,UACA;AACA,QAAI,YAAY;AACd,YAAM,IAAI;AAAA,QACR;AAAA,MACF;AAAA,IACF;AAEA,WAAO,gBAAgB,cAAc,QAA8B;AAAA,EACrE;AAEA,WAAS,gBAAgB;AACzB,WAAS,OAAO;AAChB,WAAS,aAAa;AACtB,WAAS,YAAY;AACrB,WAAS,QAAQ;AACjB,WAAS,aAAa;AACtB,WAAS,gBAAgB;AACzB,WAAS,qBAAqB;AAC9B,WAAS,YAAY;AACrB,WAAS,gBAAgB;AACzB,SAAO;AACT;AAKO,IAAM,QAAQ,YAAY;","names":[]}
1
+ {"version":3,"sources":["../src/azure-openai-provider.ts"],"sourcesContent":["import {\n OpenAIChatLanguageModel,\n OpenAICompletionLanguageModel,\n OpenAIEmbeddingModel,\n OpenAIImageModel,\n OpenAIResponsesLanguageModel,\n OpenAISpeechModel,\n OpenAITranscriptionModel,\n} from '@ai-sdk/openai/internal';\nimport {\n EmbeddingModelV2,\n LanguageModelV2,\n ProviderV2,\n ImageModelV2,\n SpeechModelV2,\n TranscriptionModelV2,\n} from '@ai-sdk/provider';\nimport { FetchFunction, loadApiKey, loadSetting } from '@ai-sdk/provider-utils';\n\nexport interface AzureOpenAIProvider extends ProviderV2 {\n (deploymentId: string): LanguageModelV2;\n\n /**\nCreates an Azure OpenAI chat model for text generation.\n */\n languageModel(deploymentId: string): LanguageModelV2;\n\n /**\nCreates an Azure OpenAI chat model for text generation.\n */\n chat(deploymentId: string): LanguageModelV2;\n\n /**\nCreates an Azure OpenAI responses API model for text generation.\n */\n responses(deploymentId: string): LanguageModelV2;\n\n /**\nCreates an Azure OpenAI completion model for text generation.\n */\n completion(deploymentId: string): LanguageModelV2;\n\n /**\n@deprecated Use `textEmbedding` instead.\n */\n embedding(deploymentId: string): EmbeddingModelV2<string>;\n\n /**\n * Creates an Azure OpenAI DALL-E model for image generation.\n */\n image(deploymentId: string): ImageModelV2;\n\n /**\n * Creates an Azure OpenAI DALL-E model for image generation.\n */\n imageModel(deploymentId: string): ImageModelV2;\n\n textEmbedding(deploymentId: string): EmbeddingModelV2<string>;\n\n /**\nCreates an Azure OpenAI model for text embeddings.\n */\n textEmbeddingModel(deploymentId: string): EmbeddingModelV2<string>;\n\n /**\n * Creates an Azure OpenAI model for audio transcription.\n */\n transcription(deploymentId: string): TranscriptionModelV2;\n\n /**\n * Creates an Azure OpenAI model for speech generation.\n */\n speech(deploymentId: string): SpeechModelV2;\n}\n\nexport interface AzureOpenAIProviderSettings {\n /**\nName of the Azure OpenAI resource. Either this or `baseURL` can be used.\n\nThe resource name is used in the assembled URL: `https://{resourceName}.openai.azure.com/openai/v1{path}`.\n */\n resourceName?: string;\n\n /**\nUse a different URL prefix for API calls, e.g. to use proxy servers. Either this or `resourceName` can be used.\nWhen a baseURL is provided, the resourceName is ignored.\n\nWith a baseURL, the resolved URL is `{baseURL}/v1{path}`.\n */\n baseURL?: string;\n\n /**\nAPI key for authenticating requests.\n */\n apiKey?: string;\n\n /**\nCustom headers to include in the requests.\n */\n headers?: Record<string, string>;\n\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 /**\nCustom api version to use. Defaults to `preview`.\n */\n apiVersion?: string;\n}\n\n/**\nCreate an Azure OpenAI provider instance.\n */\nexport function createAzure(\n options: AzureOpenAIProviderSettings = {},\n): AzureOpenAIProvider {\n const getHeaders = () => ({\n 'api-key': loadApiKey({\n apiKey: options.apiKey,\n environmentVariableName: 'AZURE_API_KEY',\n description: 'Azure OpenAI',\n }),\n ...options.headers,\n });\n\n const getResourceName = () =>\n loadSetting({\n settingValue: options.resourceName,\n settingName: 'resourceName',\n environmentVariableName: 'AZURE_RESOURCE_NAME',\n description: 'Azure OpenAI resource name',\n });\n\n const apiVersion = options.apiVersion ?? 'preview';\n\n const url = ({ path, modelId }: { path: string; modelId: string }) => {\n const baseUrlPrefix =\n options.baseURL ?? `https://${getResourceName()}.openai.azure.com/openai`;\n // Use v1 API format - no deployment ID in URL\n const fullUrl = new URL(`${baseUrlPrefix}/v1${path}`);\n fullUrl.searchParams.set('api-version', apiVersion);\n return fullUrl.toString();\n };\n\n const createChatModel = (deploymentName: string) =>\n new OpenAIChatLanguageModel(deploymentName, {\n provider: 'azure.chat',\n url,\n headers: getHeaders,\n fetch: options.fetch,\n });\n\n const createCompletionModel = (modelId: string) =>\n new OpenAICompletionLanguageModel(modelId, {\n provider: 'azure.completion',\n url,\n headers: getHeaders,\n fetch: options.fetch,\n });\n\n const createEmbeddingModel = (modelId: string) =>\n new OpenAIEmbeddingModel(modelId, {\n provider: 'azure.embeddings',\n headers: getHeaders,\n url,\n fetch: options.fetch,\n });\n\n const createResponsesModel = (modelId: string) =>\n new OpenAIResponsesLanguageModel(modelId, {\n provider: 'azure.responses',\n url,\n headers: getHeaders,\n fetch: options.fetch,\n });\n\n const createImageModel = (modelId: string) =>\n new OpenAIImageModel(modelId, {\n provider: 'azure.image',\n url,\n headers: getHeaders,\n fetch: options.fetch,\n });\n\n const createTranscriptionModel = (modelId: string) =>\n new OpenAITranscriptionModel(modelId, {\n provider: 'azure.transcription',\n url,\n headers: getHeaders,\n fetch: options.fetch,\n });\n\n const createSpeechModel = (modelId: string) =>\n new OpenAISpeechModel(modelId, {\n provider: 'azure.speech',\n url,\n headers: getHeaders,\n fetch: options.fetch,\n });\n\n const provider = function (deploymentId: string) {\n if (new.target) {\n throw new Error(\n 'The Azure OpenAI model function cannot be called with the new keyword.',\n );\n }\n\n return createChatModel(deploymentId);\n };\n\n provider.languageModel = createChatModel;\n provider.chat = createChatModel;\n provider.completion = createCompletionModel;\n provider.embedding = createEmbeddingModel;\n provider.image = createImageModel;\n provider.imageModel = createImageModel;\n provider.textEmbedding = createEmbeddingModel;\n provider.textEmbeddingModel = createEmbeddingModel;\n provider.responses = createResponsesModel;\n provider.transcription = createTranscriptionModel;\n provider.speech = createSpeechModel;\n return provider;\n}\n\n/**\nDefault Azure OpenAI provider instance.\n */\nexport const azure = createAzure();\n"],"mappings":";AAAA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AASP,SAAwB,YAAY,mBAAmB;AAmGhD,SAAS,YACd,UAAuC,CAAC,GACnB;AAtHvB;AAuHE,QAAM,aAAa,OAAO;AAAA,IACxB,WAAW,WAAW;AAAA,MACpB,QAAQ,QAAQ;AAAA,MAChB,yBAAyB;AAAA,MACzB,aAAa;AAAA,IACf,CAAC;AAAA,IACD,GAAG,QAAQ;AAAA,EACb;AAEA,QAAM,kBAAkB,MACtB,YAAY;AAAA,IACV,cAAc,QAAQ;AAAA,IACtB,aAAa;AAAA,IACb,yBAAyB;AAAA,IACzB,aAAa;AAAA,EACf,CAAC;AAEH,QAAM,cAAa,aAAQ,eAAR,YAAsB;AAEzC,QAAM,MAAM,CAAC,EAAE,MAAM,QAAQ,MAAyC;AA1IxE,QAAAA;AA2II,UAAM,iBACJA,MAAA,QAAQ,YAAR,OAAAA,MAAmB,WAAW,gBAAgB,CAAC;AAEjD,UAAM,UAAU,IAAI,IAAI,GAAG,aAAa,MAAM,IAAI,EAAE;AACpD,YAAQ,aAAa,IAAI,eAAe,UAAU;AAClD,WAAO,QAAQ,SAAS;AAAA,EAC1B;AAEA,QAAM,kBAAkB,CAAC,mBACvB,IAAI,wBAAwB,gBAAgB;AAAA,IAC1C,UAAU;AAAA,IACV;AAAA,IACA,SAAS;AAAA,IACT,OAAO,QAAQ;AAAA,EACjB,CAAC;AAEH,QAAM,wBAAwB,CAAC,YAC7B,IAAI,8BAA8B,SAAS;AAAA,IACzC,UAAU;AAAA,IACV;AAAA,IACA,SAAS;AAAA,IACT,OAAO,QAAQ;AAAA,EACjB,CAAC;AAEH,QAAM,uBAAuB,CAAC,YAC5B,IAAI,qBAAqB,SAAS;AAAA,IAChC,UAAU;AAAA,IACV,SAAS;AAAA,IACT;AAAA,IACA,OAAO,QAAQ;AAAA,EACjB,CAAC;AAEH,QAAM,uBAAuB,CAAC,YAC5B,IAAI,6BAA6B,SAAS;AAAA,IACxC,UAAU;AAAA,IACV;AAAA,IACA,SAAS;AAAA,IACT,OAAO,QAAQ;AAAA,EACjB,CAAC;AAEH,QAAM,mBAAmB,CAAC,YACxB,IAAI,iBAAiB,SAAS;AAAA,IAC5B,UAAU;AAAA,IACV;AAAA,IACA,SAAS;AAAA,IACT,OAAO,QAAQ;AAAA,EACjB,CAAC;AAEH,QAAM,2BAA2B,CAAC,YAChC,IAAI,yBAAyB,SAAS;AAAA,IACpC,UAAU;AAAA,IACV;AAAA,IACA,SAAS;AAAA,IACT,OAAO,QAAQ;AAAA,EACjB,CAAC;AAEH,QAAM,oBAAoB,CAAC,YACzB,IAAI,kBAAkB,SAAS;AAAA,IAC7B,UAAU;AAAA,IACV;AAAA,IACA,SAAS;AAAA,IACT,OAAO,QAAQ;AAAA,EACjB,CAAC;AAEH,QAAM,WAAW,SAAU,cAAsB;AAC/C,QAAI,YAAY;AACd,YAAM,IAAI;AAAA,QACR;AAAA,MACF;AAAA,IACF;AAEA,WAAO,gBAAgB,YAAY;AAAA,EACrC;AAEA,WAAS,gBAAgB;AACzB,WAAS,OAAO;AAChB,WAAS,aAAa;AACtB,WAAS,YAAY;AACrB,WAAS,QAAQ;AACjB,WAAS,aAAa;AACtB,WAAS,gBAAgB;AACzB,WAAS,qBAAqB;AAC9B,WAAS,YAAY;AACrB,WAAS,gBAAgB;AACzB,WAAS,SAAS;AAClB,SAAO;AACT;AAKO,IAAM,QAAQ,YAAY;","names":["_a"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ai-sdk/azure",
3
- "version": "2.0.0-canary.9",
3
+ "version": "2.0.1",
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": "2.0.0-canary.8",
23
- "@ai-sdk/provider": "2.0.0-canary.7",
24
- "@ai-sdk/provider-utils": "3.0.0-canary.8"
22
+ "@ai-sdk/openai": "2.0.1",
23
+ "@ai-sdk/provider": "2.0.0",
24
+ "@ai-sdk/provider-utils": "3.0.0"
25
25
  },
26
26
  "devDependencies": {
27
27
  "@types/node": "20.17.24",
28
28
  "tsup": "^8",
29
29
  "typescript": "5.8.3",
30
- "zod": "3.23.8",
30
+ "zod": "3.25.76",
31
31
  "@vercel/ai-tsconfig": "0.0.0"
32
32
  },
33
33
  "peerDependencies": {
34
- "zod": "^3.0.0"
34
+ "zod": "^3.25.76 || ^4"
35
35
  },
36
36
  "engines": {
37
37
  "node": ">=18"
@@ -39,7 +39,7 @@
39
39
  "publishConfig": {
40
40
  "access": "public"
41
41
  },
42
- "homepage": "https://sdk.vercel.ai/docs",
42
+ "homepage": "https://ai-sdk.dev/docs",
43
43
  "repository": {
44
44
  "type": "git",
45
45
  "url": "git+https://github.com/vercel/ai.git"
@@ -58,8 +58,9 @@
58
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
- "test:node": "vitest --config vitest.node.config.js --run",
63
- "test:node:watch": "vitest --config vitest.node.config.js"
64
+ "test:node": "vitest --config vitest.node.config.js --run"
64
65
  }
65
66
  }