@ai-sdk/gladia 1.0.0-canary.8 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +331 -0
- package/dist/index.d.mts +6 -6
- package/dist/index.d.ts +6 -6
- package/dist/index.js +108 -86
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +29 -5
- package/dist/index.mjs.map +1 -1
- package/package.json +5 -5
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,336 @@
|
|
|
1
1
|
# @ai-sdk/gladia
|
|
2
2
|
|
|
3
|
+
## 1.0.0
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 84d4b2b: fix (provider/gladia): correct workspace dependencies
|
|
8
|
+
- cb68df0: feat: add transcription and speech model support to provider registry
|
|
9
|
+
- cf822aa: feat(providers/gladia): add transcribe
|
|
10
|
+
- d1a034f: feature: using Zod 4 for internal stuff
|
|
11
|
+
- 205077b: fix: improve Zod compatibility
|
|
12
|
+
- Updated dependencies [a571d6e]
|
|
13
|
+
- Updated dependencies [742b7be]
|
|
14
|
+
- Updated dependencies [e7fcc86]
|
|
15
|
+
- Updated dependencies [7cddb72]
|
|
16
|
+
- Updated dependencies [ccce59b]
|
|
17
|
+
- Updated dependencies [e2b9e4b]
|
|
18
|
+
- Updated dependencies [95857aa]
|
|
19
|
+
- Updated dependencies [45c1ea2]
|
|
20
|
+
- Updated dependencies [6f6bb89]
|
|
21
|
+
- Updated dependencies [060370c]
|
|
22
|
+
- Updated dependencies [dc714f3]
|
|
23
|
+
- Updated dependencies [b5da06a]
|
|
24
|
+
- Updated dependencies [d1a1aa1]
|
|
25
|
+
- Updated dependencies [63f9e9b]
|
|
26
|
+
- Updated dependencies [5d142ab]
|
|
27
|
+
- Updated dependencies [d5f588f]
|
|
28
|
+
- Updated dependencies [e025824]
|
|
29
|
+
- Updated dependencies [0571b98]
|
|
30
|
+
- Updated dependencies [b6b43c7]
|
|
31
|
+
- Updated dependencies [4fef487]
|
|
32
|
+
- Updated dependencies [48d257a]
|
|
33
|
+
- Updated dependencies [0c0c0b3]
|
|
34
|
+
- Updated dependencies [0d2c085]
|
|
35
|
+
- Updated dependencies [40acf9b]
|
|
36
|
+
- Updated dependencies [9222aeb]
|
|
37
|
+
- Updated dependencies [e2aceaf]
|
|
38
|
+
- Updated dependencies [411e483]
|
|
39
|
+
- Updated dependencies [8ba77a7]
|
|
40
|
+
- Updated dependencies [7b3ae3f]
|
|
41
|
+
- Updated dependencies [a166433]
|
|
42
|
+
- Updated dependencies [26735b5]
|
|
43
|
+
- Updated dependencies [443d8ec]
|
|
44
|
+
- Updated dependencies [a8c8bd5]
|
|
45
|
+
- Updated dependencies [abf9a79]
|
|
46
|
+
- Updated dependencies [14c9410]
|
|
47
|
+
- Updated dependencies [e86be6f]
|
|
48
|
+
- Updated dependencies [9bf7291]
|
|
49
|
+
- Updated dependencies [2e13791]
|
|
50
|
+
- Updated dependencies [9f95b35]
|
|
51
|
+
- Updated dependencies [66962ed]
|
|
52
|
+
- Updated dependencies [0d06df6]
|
|
53
|
+
- Updated dependencies [472524a]
|
|
54
|
+
- Updated dependencies [dd3ff01]
|
|
55
|
+
- Updated dependencies [d9c98f4]
|
|
56
|
+
- Updated dependencies [05d2819]
|
|
57
|
+
- Updated dependencies [9301f86]
|
|
58
|
+
- Updated dependencies [0a87932]
|
|
59
|
+
- Updated dependencies [c4a2fec]
|
|
60
|
+
- Updated dependencies [957b739]
|
|
61
|
+
- Updated dependencies [79457bd]
|
|
62
|
+
- Updated dependencies [a3f768e]
|
|
63
|
+
- Updated dependencies [7435eb5]
|
|
64
|
+
- Updated dependencies [8aa9e20]
|
|
65
|
+
- Updated dependencies [4617fab]
|
|
66
|
+
- Updated dependencies [ac34802]
|
|
67
|
+
- Updated dependencies [0054544]
|
|
68
|
+
- Updated dependencies [cb68df0]
|
|
69
|
+
- Updated dependencies [ad80501]
|
|
70
|
+
- Updated dependencies [68ecf2f]
|
|
71
|
+
- Updated dependencies [9e9c809]
|
|
72
|
+
- Updated dependencies [32831c6]
|
|
73
|
+
- Updated dependencies [6dc848c]
|
|
74
|
+
- Updated dependencies [6b98118]
|
|
75
|
+
- Updated dependencies [d0f9495]
|
|
76
|
+
- Updated dependencies [63d791d]
|
|
77
|
+
- Updated dependencies [87b828f]
|
|
78
|
+
- Updated dependencies [3f2f00c]
|
|
79
|
+
- Updated dependencies [bfdca8d]
|
|
80
|
+
- Updated dependencies [0ff02bb]
|
|
81
|
+
- Updated dependencies [7979f7f]
|
|
82
|
+
- Updated dependencies [39a4fab]
|
|
83
|
+
- Updated dependencies [44f4aba]
|
|
84
|
+
- Updated dependencies [9bd5ab5]
|
|
85
|
+
- Updated dependencies [57edfcb]
|
|
86
|
+
- Updated dependencies [faf8446]
|
|
87
|
+
- Updated dependencies [7ea4132]
|
|
88
|
+
- Updated dependencies [d1a034f]
|
|
89
|
+
- Updated dependencies [5c56081]
|
|
90
|
+
- Updated dependencies [fd65bc6]
|
|
91
|
+
- Updated dependencies [023ba40]
|
|
92
|
+
- Updated dependencies [ea7a7c9]
|
|
93
|
+
- Updated dependencies [26535e0]
|
|
94
|
+
- Updated dependencies [e030615]
|
|
95
|
+
- Updated dependencies [5e57fae]
|
|
96
|
+
- Updated dependencies [393138b]
|
|
97
|
+
- Updated dependencies [c57e248]
|
|
98
|
+
- Updated dependencies [88a8ee5]
|
|
99
|
+
- Updated dependencies [41fa418]
|
|
100
|
+
- Updated dependencies [205077b]
|
|
101
|
+
- Updated dependencies [71f938d]
|
|
102
|
+
- Updated dependencies [3795467]
|
|
103
|
+
- Updated dependencies [28a5ed5]
|
|
104
|
+
- Updated dependencies [7182d14]
|
|
105
|
+
- Updated dependencies [c1e6647]
|
|
106
|
+
- Updated dependencies [1766ede]
|
|
107
|
+
- Updated dependencies [811dff3]
|
|
108
|
+
- Updated dependencies [f10304b]
|
|
109
|
+
- Updated dependencies [dd5fd43]
|
|
110
|
+
- Updated dependencies [33f4a6a]
|
|
111
|
+
- Updated dependencies [383cbfa]
|
|
112
|
+
- Updated dependencies [27deb4d]
|
|
113
|
+
- Updated dependencies [c4df419]
|
|
114
|
+
- @ai-sdk/provider-utils@3.0.0
|
|
115
|
+
- @ai-sdk/provider@2.0.0
|
|
116
|
+
|
|
117
|
+
## 1.0.0-beta.10
|
|
118
|
+
|
|
119
|
+
### Patch Changes
|
|
120
|
+
|
|
121
|
+
- Updated dependencies [88a8ee5]
|
|
122
|
+
- @ai-sdk/provider-utils@3.0.0-beta.10
|
|
123
|
+
|
|
124
|
+
## 1.0.0-beta.9
|
|
125
|
+
|
|
126
|
+
### Patch Changes
|
|
127
|
+
|
|
128
|
+
- Updated dependencies [27deb4d]
|
|
129
|
+
- @ai-sdk/provider@2.0.0-beta.2
|
|
130
|
+
- @ai-sdk/provider-utils@3.0.0-beta.9
|
|
131
|
+
|
|
132
|
+
## 1.0.0-beta.8
|
|
133
|
+
|
|
134
|
+
### Patch Changes
|
|
135
|
+
|
|
136
|
+
- Updated dependencies [dd5fd43]
|
|
137
|
+
- @ai-sdk/provider-utils@3.0.0-beta.8
|
|
138
|
+
|
|
139
|
+
## 1.0.0-beta.7
|
|
140
|
+
|
|
141
|
+
### Patch Changes
|
|
142
|
+
|
|
143
|
+
- Updated dependencies [e7fcc86]
|
|
144
|
+
- @ai-sdk/provider-utils@3.0.0-beta.7
|
|
145
|
+
|
|
146
|
+
## 1.0.0-beta.6
|
|
147
|
+
|
|
148
|
+
### Patch Changes
|
|
149
|
+
|
|
150
|
+
- Updated dependencies [ac34802]
|
|
151
|
+
- @ai-sdk/provider-utils@3.0.0-beta.6
|
|
152
|
+
|
|
153
|
+
## 1.0.0-beta.5
|
|
154
|
+
|
|
155
|
+
### Patch Changes
|
|
156
|
+
|
|
157
|
+
- Updated dependencies [57edfcb]
|
|
158
|
+
- Updated dependencies [383cbfa]
|
|
159
|
+
- @ai-sdk/provider-utils@3.0.0-beta.5
|
|
160
|
+
|
|
161
|
+
## 1.0.0-beta.4
|
|
162
|
+
|
|
163
|
+
### Patch Changes
|
|
164
|
+
|
|
165
|
+
- 205077b: fix: improve Zod compatibility
|
|
166
|
+
- Updated dependencies [205077b]
|
|
167
|
+
- @ai-sdk/provider-utils@3.0.0-beta.4
|
|
168
|
+
|
|
169
|
+
## 1.0.0-beta.3
|
|
170
|
+
|
|
171
|
+
### Patch Changes
|
|
172
|
+
|
|
173
|
+
- Updated dependencies [05d2819]
|
|
174
|
+
- @ai-sdk/provider-utils@3.0.0-beta.3
|
|
175
|
+
|
|
176
|
+
## 1.0.0-beta.2
|
|
177
|
+
|
|
178
|
+
### Patch Changes
|
|
179
|
+
|
|
180
|
+
- d1a034f: feature: using Zod 4 for internal stuff
|
|
181
|
+
- Updated dependencies [0571b98]
|
|
182
|
+
- Updated dependencies [39a4fab]
|
|
183
|
+
- Updated dependencies [d1a034f]
|
|
184
|
+
- @ai-sdk/provider-utils@3.0.0-beta.2
|
|
185
|
+
|
|
186
|
+
## 1.0.0-beta.1
|
|
187
|
+
|
|
188
|
+
### Patch Changes
|
|
189
|
+
|
|
190
|
+
- cb68df0: feat: add transcription and speech model support to provider registry
|
|
191
|
+
- Updated dependencies [742b7be]
|
|
192
|
+
- Updated dependencies [7cddb72]
|
|
193
|
+
- Updated dependencies [ccce59b]
|
|
194
|
+
- Updated dependencies [e2b9e4b]
|
|
195
|
+
- Updated dependencies [45c1ea2]
|
|
196
|
+
- Updated dependencies [e025824]
|
|
197
|
+
- Updated dependencies [0d06df6]
|
|
198
|
+
- Updated dependencies [472524a]
|
|
199
|
+
- Updated dependencies [dd3ff01]
|
|
200
|
+
- Updated dependencies [7435eb5]
|
|
201
|
+
- Updated dependencies [cb68df0]
|
|
202
|
+
- Updated dependencies [bfdca8d]
|
|
203
|
+
- Updated dependencies [44f4aba]
|
|
204
|
+
- Updated dependencies [023ba40]
|
|
205
|
+
- Updated dependencies [5e57fae]
|
|
206
|
+
- Updated dependencies [71f938d]
|
|
207
|
+
- Updated dependencies [28a5ed5]
|
|
208
|
+
- @ai-sdk/provider@2.0.0-beta.1
|
|
209
|
+
- @ai-sdk/provider-utils@3.0.0-beta.1
|
|
210
|
+
|
|
211
|
+
## 1.0.0-alpha.15
|
|
212
|
+
|
|
213
|
+
### Patch Changes
|
|
214
|
+
|
|
215
|
+
- Updated dependencies [48d257a]
|
|
216
|
+
- Updated dependencies [8ba77a7]
|
|
217
|
+
- @ai-sdk/provider@2.0.0-alpha.15
|
|
218
|
+
- @ai-sdk/provider-utils@3.0.0-alpha.15
|
|
219
|
+
|
|
220
|
+
## 1.0.0-alpha.14
|
|
221
|
+
|
|
222
|
+
### Patch Changes
|
|
223
|
+
|
|
224
|
+
- Updated dependencies [b5da06a]
|
|
225
|
+
- Updated dependencies [63f9e9b]
|
|
226
|
+
- Updated dependencies [2e13791]
|
|
227
|
+
- @ai-sdk/provider@2.0.0-alpha.14
|
|
228
|
+
- @ai-sdk/provider-utils@3.0.0-alpha.14
|
|
229
|
+
|
|
230
|
+
## 1.0.0-alpha.13
|
|
231
|
+
|
|
232
|
+
### Patch Changes
|
|
233
|
+
|
|
234
|
+
- Updated dependencies [68ecf2f]
|
|
235
|
+
- @ai-sdk/provider@2.0.0-alpha.13
|
|
236
|
+
- @ai-sdk/provider-utils@3.0.0-alpha.13
|
|
237
|
+
|
|
238
|
+
## 1.0.0-alpha.12
|
|
239
|
+
|
|
240
|
+
### Patch Changes
|
|
241
|
+
|
|
242
|
+
- Updated dependencies [e2aceaf]
|
|
243
|
+
- @ai-sdk/provider@2.0.0-alpha.12
|
|
244
|
+
- @ai-sdk/provider-utils@3.0.0-alpha.12
|
|
245
|
+
|
|
246
|
+
## 1.0.0-alpha.11
|
|
247
|
+
|
|
248
|
+
### Patch Changes
|
|
249
|
+
|
|
250
|
+
- Updated dependencies [c1e6647]
|
|
251
|
+
- @ai-sdk/provider@2.0.0-alpha.11
|
|
252
|
+
- @ai-sdk/provider-utils@3.0.0-alpha.11
|
|
253
|
+
|
|
254
|
+
## 1.0.0-alpha.10
|
|
255
|
+
|
|
256
|
+
### Patch Changes
|
|
257
|
+
|
|
258
|
+
- Updated dependencies [c4df419]
|
|
259
|
+
- @ai-sdk/provider@2.0.0-alpha.10
|
|
260
|
+
- @ai-sdk/provider-utils@3.0.0-alpha.10
|
|
261
|
+
|
|
262
|
+
## 1.0.0-alpha.9
|
|
263
|
+
|
|
264
|
+
### Patch Changes
|
|
265
|
+
|
|
266
|
+
- Updated dependencies [811dff3]
|
|
267
|
+
- @ai-sdk/provider@2.0.0-alpha.9
|
|
268
|
+
- @ai-sdk/provider-utils@3.0.0-alpha.9
|
|
269
|
+
|
|
270
|
+
## 1.0.0-alpha.8
|
|
271
|
+
|
|
272
|
+
### Patch Changes
|
|
273
|
+
|
|
274
|
+
- Updated dependencies [4fef487]
|
|
275
|
+
- Updated dependencies [9222aeb]
|
|
276
|
+
- @ai-sdk/provider-utils@3.0.0-alpha.8
|
|
277
|
+
- @ai-sdk/provider@2.0.0-alpha.8
|
|
278
|
+
|
|
279
|
+
## 1.0.0-alpha.7
|
|
280
|
+
|
|
281
|
+
### Patch Changes
|
|
282
|
+
|
|
283
|
+
- Updated dependencies [5c56081]
|
|
284
|
+
- @ai-sdk/provider@2.0.0-alpha.7
|
|
285
|
+
- @ai-sdk/provider-utils@3.0.0-alpha.7
|
|
286
|
+
|
|
287
|
+
## 1.0.0-alpha.6
|
|
288
|
+
|
|
289
|
+
### Patch Changes
|
|
290
|
+
|
|
291
|
+
- Updated dependencies [0d2c085]
|
|
292
|
+
- @ai-sdk/provider@2.0.0-alpha.6
|
|
293
|
+
- @ai-sdk/provider-utils@3.0.0-alpha.6
|
|
294
|
+
|
|
295
|
+
## 1.0.0-alpha.4
|
|
296
|
+
|
|
297
|
+
### Patch Changes
|
|
298
|
+
|
|
299
|
+
- Updated dependencies [dc714f3]
|
|
300
|
+
- @ai-sdk/provider@2.0.0-alpha.4
|
|
301
|
+
- @ai-sdk/provider-utils@3.0.0-alpha.4
|
|
302
|
+
|
|
303
|
+
## 1.0.0-alpha.3
|
|
304
|
+
|
|
305
|
+
### Patch Changes
|
|
306
|
+
|
|
307
|
+
- Updated dependencies [6b98118]
|
|
308
|
+
- @ai-sdk/provider@2.0.0-alpha.3
|
|
309
|
+
- @ai-sdk/provider-utils@3.0.0-alpha.3
|
|
310
|
+
|
|
311
|
+
## 1.0.0-alpha.2
|
|
312
|
+
|
|
313
|
+
### Patch Changes
|
|
314
|
+
|
|
315
|
+
- Updated dependencies [26535e0]
|
|
316
|
+
- @ai-sdk/provider@2.0.0-alpha.2
|
|
317
|
+
- @ai-sdk/provider-utils@3.0.0-alpha.2
|
|
318
|
+
|
|
319
|
+
## 1.0.0-alpha.1
|
|
320
|
+
|
|
321
|
+
### Patch Changes
|
|
322
|
+
|
|
323
|
+
- Updated dependencies [3f2f00c]
|
|
324
|
+
- @ai-sdk/provider@2.0.0-alpha.1
|
|
325
|
+
- @ai-sdk/provider-utils@3.0.0-alpha.1
|
|
326
|
+
|
|
327
|
+
## 1.0.0-canary.9
|
|
328
|
+
|
|
329
|
+
### Patch Changes
|
|
330
|
+
|
|
331
|
+
- Updated dependencies [faf8446]
|
|
332
|
+
- @ai-sdk/provider-utils@3.0.0-canary.19
|
|
333
|
+
|
|
3
334
|
## 1.0.0-canary.8
|
|
4
335
|
|
|
5
336
|
### Patch Changes
|
package/dist/index.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { TranscriptionModelV2, ProviderV2 } from '@ai-sdk/provider';
|
|
2
2
|
import { FetchFunction } from '@ai-sdk/provider-utils';
|
|
3
3
|
|
|
4
4
|
type GladiaConfig = {
|
|
@@ -17,24 +17,24 @@ interface GladiaTranscriptionModelConfig extends GladiaConfig {
|
|
|
17
17
|
currentDate?: () => Date;
|
|
18
18
|
};
|
|
19
19
|
}
|
|
20
|
-
declare class GladiaTranscriptionModel implements
|
|
20
|
+
declare class GladiaTranscriptionModel implements TranscriptionModelV2 {
|
|
21
21
|
readonly modelId: 'default';
|
|
22
22
|
private readonly config;
|
|
23
|
-
readonly specificationVersion = "
|
|
23
|
+
readonly specificationVersion = "v2";
|
|
24
24
|
get provider(): string;
|
|
25
25
|
constructor(modelId: 'default', config: GladiaTranscriptionModelConfig);
|
|
26
26
|
private getArgs;
|
|
27
|
-
doGenerate(options: Parameters<
|
|
27
|
+
doGenerate(options: Parameters<TranscriptionModelV2['doGenerate']>[0]): Promise<Awaited<ReturnType<TranscriptionModelV2['doGenerate']>>>;
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
-
interface GladiaProvider extends
|
|
30
|
+
interface GladiaProvider extends ProviderV2 {
|
|
31
31
|
(): {
|
|
32
32
|
transcription: GladiaTranscriptionModel;
|
|
33
33
|
};
|
|
34
34
|
/**
|
|
35
35
|
Creates a model for transcription.
|
|
36
36
|
*/
|
|
37
|
-
transcription():
|
|
37
|
+
transcription(): TranscriptionModelV2;
|
|
38
38
|
}
|
|
39
39
|
interface GladiaProviderSettings {
|
|
40
40
|
/**
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { TranscriptionModelV2, ProviderV2 } from '@ai-sdk/provider';
|
|
2
2
|
import { FetchFunction } from '@ai-sdk/provider-utils';
|
|
3
3
|
|
|
4
4
|
type GladiaConfig = {
|
|
@@ -17,24 +17,24 @@ interface GladiaTranscriptionModelConfig extends GladiaConfig {
|
|
|
17
17
|
currentDate?: () => Date;
|
|
18
18
|
};
|
|
19
19
|
}
|
|
20
|
-
declare class GladiaTranscriptionModel implements
|
|
20
|
+
declare class GladiaTranscriptionModel implements TranscriptionModelV2 {
|
|
21
21
|
readonly modelId: 'default';
|
|
22
22
|
private readonly config;
|
|
23
|
-
readonly specificationVersion = "
|
|
23
|
+
readonly specificationVersion = "v2";
|
|
24
24
|
get provider(): string;
|
|
25
25
|
constructor(modelId: 'default', config: GladiaTranscriptionModelConfig);
|
|
26
26
|
private getArgs;
|
|
27
|
-
doGenerate(options: Parameters<
|
|
27
|
+
doGenerate(options: Parameters<TranscriptionModelV2['doGenerate']>[0]): Promise<Awaited<ReturnType<TranscriptionModelV2['doGenerate']>>>;
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
-
interface GladiaProvider extends
|
|
30
|
+
interface GladiaProvider extends ProviderV2 {
|
|
31
31
|
(): {
|
|
32
32
|
transcription: GladiaTranscriptionModel;
|
|
33
33
|
};
|
|
34
34
|
/**
|
|
35
35
|
Creates a model for transcription.
|
|
36
36
|
*/
|
|
37
|
-
transcription():
|
|
37
|
+
transcription(): TranscriptionModelV2;
|
|
38
38
|
}
|
|
39
39
|
interface GladiaProviderSettings {
|
|
40
40
|
/**
|
package/dist/index.js
CHANGED
|
@@ -26,20 +26,21 @@ __export(src_exports, {
|
|
|
26
26
|
module.exports = __toCommonJS(src_exports);
|
|
27
27
|
|
|
28
28
|
// src/gladia-provider.ts
|
|
29
|
+
var import_provider2 = require("@ai-sdk/provider");
|
|
29
30
|
var import_provider_utils3 = require("@ai-sdk/provider-utils");
|
|
30
31
|
|
|
31
32
|
// src/gladia-transcription-model.ts
|
|
32
33
|
var import_provider = require("@ai-sdk/provider");
|
|
33
34
|
var import_provider_utils2 = require("@ai-sdk/provider-utils");
|
|
34
|
-
var
|
|
35
|
+
var import_v42 = require("zod/v4");
|
|
35
36
|
|
|
36
37
|
// src/gladia-error.ts
|
|
37
|
-
var
|
|
38
|
+
var import_v4 = require("zod/v4");
|
|
38
39
|
var import_provider_utils = require("@ai-sdk/provider-utils");
|
|
39
|
-
var gladiaErrorDataSchema =
|
|
40
|
-
error:
|
|
41
|
-
message:
|
|
42
|
-
code:
|
|
40
|
+
var gladiaErrorDataSchema = import_v4.z.object({
|
|
41
|
+
error: import_v4.z.object({
|
|
42
|
+
message: import_v4.z.string(),
|
|
43
|
+
code: import_v4.z.number()
|
|
43
44
|
})
|
|
44
45
|
});
|
|
45
46
|
var gladiaFailedResponseHandler = (0, import_provider_utils.createJsonErrorResponseHandler)({
|
|
@@ -48,262 +49,262 @@ var gladiaFailedResponseHandler = (0, import_provider_utils.createJsonErrorRespo
|
|
|
48
49
|
});
|
|
49
50
|
|
|
50
51
|
// src/gladia-transcription-model.ts
|
|
51
|
-
var gladiaProviderOptionsSchema =
|
|
52
|
+
var gladiaProviderOptionsSchema = import_v42.z.object({
|
|
52
53
|
/**
|
|
53
54
|
* Optional context prompt to guide the transcription.
|
|
54
55
|
*/
|
|
55
|
-
contextPrompt:
|
|
56
|
+
contextPrompt: import_v42.z.string().nullish(),
|
|
56
57
|
/**
|
|
57
58
|
* Custom vocabulary to improve transcription accuracy.
|
|
58
59
|
* Can be a boolean or an array of custom terms.
|
|
59
60
|
*/
|
|
60
|
-
customVocabulary:
|
|
61
|
+
customVocabulary: import_v42.z.union([import_v42.z.boolean(), import_v42.z.array(import_v42.z.any())]).nullish(),
|
|
61
62
|
/**
|
|
62
63
|
* Configuration for custom vocabulary.
|
|
63
64
|
*/
|
|
64
|
-
customVocabularyConfig:
|
|
65
|
+
customVocabularyConfig: import_v42.z.object({
|
|
65
66
|
/**
|
|
66
67
|
* Array of vocabulary terms or objects with pronunciation details.
|
|
67
68
|
*/
|
|
68
|
-
vocabulary:
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
69
|
+
vocabulary: import_v42.z.array(
|
|
70
|
+
import_v42.z.union([
|
|
71
|
+
import_v42.z.string(),
|
|
72
|
+
import_v42.z.object({
|
|
72
73
|
/**
|
|
73
74
|
* The vocabulary term.
|
|
74
75
|
*/
|
|
75
|
-
value:
|
|
76
|
+
value: import_v42.z.string(),
|
|
76
77
|
/**
|
|
77
78
|
* Intensity of the term in recognition (optional).
|
|
78
79
|
*/
|
|
79
|
-
intensity:
|
|
80
|
+
intensity: import_v42.z.number().nullish(),
|
|
80
81
|
/**
|
|
81
82
|
* Alternative pronunciations for the term (optional).
|
|
82
83
|
*/
|
|
83
|
-
pronunciations:
|
|
84
|
+
pronunciations: import_v42.z.array(import_v42.z.string()).nullish(),
|
|
84
85
|
/**
|
|
85
86
|
* Language of the term (optional).
|
|
86
87
|
*/
|
|
87
|
-
language:
|
|
88
|
+
language: import_v42.z.string().nullish()
|
|
88
89
|
})
|
|
89
90
|
])
|
|
90
91
|
),
|
|
91
92
|
/**
|
|
92
93
|
* Default intensity for all vocabulary terms.
|
|
93
94
|
*/
|
|
94
|
-
defaultIntensity:
|
|
95
|
+
defaultIntensity: import_v42.z.number().nullish()
|
|
95
96
|
}).nullish(),
|
|
96
97
|
/**
|
|
97
98
|
* Whether to automatically detect the language of the audio.
|
|
98
99
|
*/
|
|
99
|
-
detectLanguage:
|
|
100
|
+
detectLanguage: import_v42.z.boolean().nullish(),
|
|
100
101
|
/**
|
|
101
102
|
* Whether to enable code switching (multiple languages in the same audio).
|
|
102
103
|
*/
|
|
103
|
-
enableCodeSwitching:
|
|
104
|
+
enableCodeSwitching: import_v42.z.boolean().nullish(),
|
|
104
105
|
/**
|
|
105
106
|
* Configuration for code switching.
|
|
106
107
|
*/
|
|
107
|
-
codeSwitchingConfig:
|
|
108
|
+
codeSwitchingConfig: import_v42.z.object({
|
|
108
109
|
/**
|
|
109
110
|
* Languages to consider for code switching.
|
|
110
111
|
*/
|
|
111
|
-
languages:
|
|
112
|
+
languages: import_v42.z.array(import_v42.z.string()).nullish()
|
|
112
113
|
}).nullish(),
|
|
113
114
|
/**
|
|
114
115
|
* Specific language for transcription.
|
|
115
116
|
*/
|
|
116
|
-
language:
|
|
117
|
+
language: import_v42.z.string().nullish(),
|
|
117
118
|
/**
|
|
118
119
|
* Whether to enable callback when transcription is complete.
|
|
119
120
|
*/
|
|
120
|
-
callback:
|
|
121
|
+
callback: import_v42.z.boolean().nullish(),
|
|
121
122
|
/**
|
|
122
123
|
* Configuration for callback.
|
|
123
124
|
*/
|
|
124
|
-
callbackConfig:
|
|
125
|
+
callbackConfig: import_v42.z.object({
|
|
125
126
|
/**
|
|
126
127
|
* URL to send the callback to.
|
|
127
128
|
*/
|
|
128
|
-
url:
|
|
129
|
+
url: import_v42.z.string(),
|
|
129
130
|
/**
|
|
130
131
|
* HTTP method for the callback.
|
|
131
132
|
*/
|
|
132
|
-
method:
|
|
133
|
+
method: import_v42.z.enum(["POST", "PUT"]).nullish()
|
|
133
134
|
}).nullish(),
|
|
134
135
|
/**
|
|
135
136
|
* Whether to generate subtitles.
|
|
136
137
|
*/
|
|
137
|
-
subtitles:
|
|
138
|
+
subtitles: import_v42.z.boolean().nullish(),
|
|
138
139
|
/**
|
|
139
140
|
* Configuration for subtitles generation.
|
|
140
141
|
*/
|
|
141
|
-
subtitlesConfig:
|
|
142
|
+
subtitlesConfig: import_v42.z.object({
|
|
142
143
|
/**
|
|
143
144
|
* Subtitle file formats to generate.
|
|
144
145
|
*/
|
|
145
|
-
formats:
|
|
146
|
+
formats: import_v42.z.array(import_v42.z.enum(["srt", "vtt"])).nullish(),
|
|
146
147
|
/**
|
|
147
148
|
* Minimum duration for subtitle segments.
|
|
148
149
|
*/
|
|
149
|
-
minimumDuration:
|
|
150
|
+
minimumDuration: import_v42.z.number().nullish(),
|
|
150
151
|
/**
|
|
151
152
|
* Maximum duration for subtitle segments.
|
|
152
153
|
*/
|
|
153
|
-
maximumDuration:
|
|
154
|
+
maximumDuration: import_v42.z.number().nullish(),
|
|
154
155
|
/**
|
|
155
156
|
* Maximum characters per row in subtitles.
|
|
156
157
|
*/
|
|
157
|
-
maximumCharactersPerRow:
|
|
158
|
+
maximumCharactersPerRow: import_v42.z.number().nullish(),
|
|
158
159
|
/**
|
|
159
160
|
* Maximum rows per caption in subtitles.
|
|
160
161
|
*/
|
|
161
|
-
maximumRowsPerCaption:
|
|
162
|
+
maximumRowsPerCaption: import_v42.z.number().nullish(),
|
|
162
163
|
/**
|
|
163
164
|
* Style of subtitles.
|
|
164
165
|
*/
|
|
165
|
-
style:
|
|
166
|
+
style: import_v42.z.enum(["default", "compliance"]).nullish()
|
|
166
167
|
}).nullish(),
|
|
167
168
|
/**
|
|
168
169
|
* Whether to enable speaker diarization (speaker identification).
|
|
169
170
|
*/
|
|
170
|
-
diarization:
|
|
171
|
+
diarization: import_v42.z.boolean().nullish(),
|
|
171
172
|
/**
|
|
172
173
|
* Configuration for diarization.
|
|
173
174
|
*/
|
|
174
|
-
diarizationConfig:
|
|
175
|
+
diarizationConfig: import_v42.z.object({
|
|
175
176
|
/**
|
|
176
177
|
* Exact number of speakers to identify.
|
|
177
178
|
*/
|
|
178
|
-
numberOfSpeakers:
|
|
179
|
+
numberOfSpeakers: import_v42.z.number().nullish(),
|
|
179
180
|
/**
|
|
180
181
|
* Minimum number of speakers to identify.
|
|
181
182
|
*/
|
|
182
|
-
minSpeakers:
|
|
183
|
+
minSpeakers: import_v42.z.number().nullish(),
|
|
183
184
|
/**
|
|
184
185
|
* Maximum number of speakers to identify.
|
|
185
186
|
*/
|
|
186
|
-
maxSpeakers:
|
|
187
|
+
maxSpeakers: import_v42.z.number().nullish(),
|
|
187
188
|
/**
|
|
188
189
|
* Whether to use enhanced diarization.
|
|
189
190
|
*/
|
|
190
|
-
enhanced:
|
|
191
|
+
enhanced: import_v42.z.boolean().nullish()
|
|
191
192
|
}).nullish(),
|
|
192
193
|
/**
|
|
193
194
|
* Whether to translate the transcription.
|
|
194
195
|
*/
|
|
195
|
-
translation:
|
|
196
|
+
translation: import_v42.z.boolean().nullish(),
|
|
196
197
|
/**
|
|
197
198
|
* Configuration for translation.
|
|
198
199
|
*/
|
|
199
|
-
translationConfig:
|
|
200
|
+
translationConfig: import_v42.z.object({
|
|
200
201
|
/**
|
|
201
202
|
* Target languages for translation.
|
|
202
203
|
*/
|
|
203
|
-
targetLanguages:
|
|
204
|
+
targetLanguages: import_v42.z.array(import_v42.z.string()),
|
|
204
205
|
/**
|
|
205
206
|
* Translation model to use.
|
|
206
207
|
*/
|
|
207
|
-
model:
|
|
208
|
+
model: import_v42.z.enum(["base", "enhanced"]).nullish(),
|
|
208
209
|
/**
|
|
209
210
|
* Whether to match original utterances in translation.
|
|
210
211
|
*/
|
|
211
|
-
matchOriginalUtterances:
|
|
212
|
+
matchOriginalUtterances: import_v42.z.boolean().nullish()
|
|
212
213
|
}).nullish(),
|
|
213
214
|
/**
|
|
214
215
|
* Whether to generate a summary of the transcription.
|
|
215
216
|
*/
|
|
216
|
-
summarization:
|
|
217
|
+
summarization: import_v42.z.boolean().nullish(),
|
|
217
218
|
/**
|
|
218
219
|
* Configuration for summarization.
|
|
219
220
|
*/
|
|
220
|
-
summarizationConfig:
|
|
221
|
+
summarizationConfig: import_v42.z.object({
|
|
221
222
|
/**
|
|
222
223
|
* Type of summary to generate.
|
|
223
224
|
*/
|
|
224
|
-
type:
|
|
225
|
+
type: import_v42.z.enum(["general", "bullet_points", "concise"]).nullish()
|
|
225
226
|
}).nullish(),
|
|
226
227
|
/**
|
|
227
228
|
* Whether to enable content moderation.
|
|
228
229
|
*/
|
|
229
|
-
moderation:
|
|
230
|
+
moderation: import_v42.z.boolean().nullish(),
|
|
230
231
|
/**
|
|
231
232
|
* Whether to enable named entity recognition.
|
|
232
233
|
*/
|
|
233
|
-
namedEntityRecognition:
|
|
234
|
+
namedEntityRecognition: import_v42.z.boolean().nullish(),
|
|
234
235
|
/**
|
|
235
236
|
* Whether to enable automatic chapter creation.
|
|
236
237
|
*/
|
|
237
|
-
chapterization:
|
|
238
|
+
chapterization: import_v42.z.boolean().nullish(),
|
|
238
239
|
/**
|
|
239
240
|
* Whether to ensure consistent naming of entities.
|
|
240
241
|
*/
|
|
241
|
-
nameConsistency:
|
|
242
|
+
nameConsistency: import_v42.z.boolean().nullish(),
|
|
242
243
|
/**
|
|
243
244
|
* Whether to enable custom spelling.
|
|
244
245
|
*/
|
|
245
|
-
customSpelling:
|
|
246
|
+
customSpelling: import_v42.z.boolean().nullish(),
|
|
246
247
|
/**
|
|
247
248
|
* Configuration for custom spelling.
|
|
248
249
|
*/
|
|
249
|
-
customSpellingConfig:
|
|
250
|
+
customSpellingConfig: import_v42.z.object({
|
|
250
251
|
/**
|
|
251
252
|
* Dictionary of custom spellings.
|
|
252
253
|
*/
|
|
253
|
-
spellingDictionary:
|
|
254
|
+
spellingDictionary: import_v42.z.record(import_v42.z.string(), import_v42.z.array(import_v42.z.string()))
|
|
254
255
|
}).nullish(),
|
|
255
256
|
/**
|
|
256
257
|
* Whether to extract structured data from the transcription.
|
|
257
258
|
*/
|
|
258
|
-
structuredDataExtraction:
|
|
259
|
+
structuredDataExtraction: import_v42.z.boolean().nullish(),
|
|
259
260
|
/**
|
|
260
261
|
* Configuration for structured data extraction.
|
|
261
262
|
*/
|
|
262
|
-
structuredDataExtractionConfig:
|
|
263
|
+
structuredDataExtractionConfig: import_v42.z.object({
|
|
263
264
|
/**
|
|
264
265
|
* Classes of data to extract.
|
|
265
266
|
*/
|
|
266
|
-
classes:
|
|
267
|
+
classes: import_v42.z.array(import_v42.z.string())
|
|
267
268
|
}).nullish(),
|
|
268
269
|
/**
|
|
269
270
|
* Whether to perform sentiment analysis on the transcription.
|
|
270
271
|
*/
|
|
271
|
-
sentimentAnalysis:
|
|
272
|
+
sentimentAnalysis: import_v42.z.boolean().nullish(),
|
|
272
273
|
/**
|
|
273
274
|
* Whether to send audio to a language model for processing.
|
|
274
275
|
*/
|
|
275
|
-
audioToLlm:
|
|
276
|
+
audioToLlm: import_v42.z.boolean().nullish(),
|
|
276
277
|
/**
|
|
277
278
|
* Configuration for audio to language model processing.
|
|
278
279
|
*/
|
|
279
|
-
audioToLlmConfig:
|
|
280
|
+
audioToLlmConfig: import_v42.z.object({
|
|
280
281
|
/**
|
|
281
282
|
* Prompts to send to the language model.
|
|
282
283
|
*/
|
|
283
|
-
prompts:
|
|
284
|
+
prompts: import_v42.z.array(import_v42.z.string())
|
|
284
285
|
}).nullish(),
|
|
285
286
|
/**
|
|
286
287
|
* Custom metadata to include with the transcription.
|
|
287
288
|
*/
|
|
288
|
-
customMetadata:
|
|
289
|
+
customMetadata: import_v42.z.record(import_v42.z.string(), import_v42.z.any()).nullish(),
|
|
289
290
|
/**
|
|
290
291
|
* Whether to include sentence-level segmentation.
|
|
291
292
|
*/
|
|
292
|
-
sentences:
|
|
293
|
+
sentences: import_v42.z.boolean().nullish(),
|
|
293
294
|
/**
|
|
294
295
|
* Whether to enable display mode.
|
|
295
296
|
*/
|
|
296
|
-
displayMode:
|
|
297
|
+
displayMode: import_v42.z.boolean().nullish(),
|
|
297
298
|
/**
|
|
298
299
|
* Whether to enhance punctuation in the transcription.
|
|
299
300
|
*/
|
|
300
|
-
punctuationEnhanced:
|
|
301
|
+
punctuationEnhanced: import_v42.z.boolean().nullish()
|
|
301
302
|
});
|
|
302
303
|
var GladiaTranscriptionModel = class {
|
|
303
304
|
constructor(modelId, config) {
|
|
304
305
|
this.modelId = modelId;
|
|
305
306
|
this.config = config;
|
|
306
|
-
this.specificationVersion = "
|
|
307
|
+
this.specificationVersion = "v2";
|
|
307
308
|
}
|
|
308
309
|
get provider() {
|
|
309
310
|
return this.config.provider;
|
|
@@ -523,26 +524,26 @@ var GladiaTranscriptionModel = class {
|
|
|
523
524
|
};
|
|
524
525
|
}
|
|
525
526
|
};
|
|
526
|
-
var gladiaUploadResponseSchema =
|
|
527
|
-
audio_url:
|
|
527
|
+
var gladiaUploadResponseSchema = import_v42.z.object({
|
|
528
|
+
audio_url: import_v42.z.string()
|
|
528
529
|
});
|
|
529
|
-
var gladiaTranscriptionInitializeResponseSchema =
|
|
530
|
-
result_url:
|
|
530
|
+
var gladiaTranscriptionInitializeResponseSchema = import_v42.z.object({
|
|
531
|
+
result_url: import_v42.z.string()
|
|
531
532
|
});
|
|
532
|
-
var gladiaTranscriptionResultResponseSchema =
|
|
533
|
-
status:
|
|
534
|
-
result:
|
|
535
|
-
metadata:
|
|
536
|
-
audio_duration:
|
|
533
|
+
var gladiaTranscriptionResultResponseSchema = import_v42.z.object({
|
|
534
|
+
status: import_v42.z.enum(["queued", "processing", "done", "error"]),
|
|
535
|
+
result: import_v42.z.object({
|
|
536
|
+
metadata: import_v42.z.object({
|
|
537
|
+
audio_duration: import_v42.z.number()
|
|
537
538
|
}),
|
|
538
|
-
transcription:
|
|
539
|
-
full_transcript:
|
|
540
|
-
languages:
|
|
541
|
-
utterances:
|
|
542
|
-
|
|
543
|
-
start:
|
|
544
|
-
end:
|
|
545
|
-
text:
|
|
539
|
+
transcription: import_v42.z.object({
|
|
540
|
+
full_transcript: import_v42.z.string(),
|
|
541
|
+
languages: import_v42.z.array(import_v42.z.string()),
|
|
542
|
+
utterances: import_v42.z.array(
|
|
543
|
+
import_v42.z.object({
|
|
544
|
+
start: import_v42.z.number(),
|
|
545
|
+
end: import_v42.z.number(),
|
|
546
|
+
text: import_v42.z.string()
|
|
546
547
|
})
|
|
547
548
|
)
|
|
548
549
|
})
|
|
@@ -572,6 +573,27 @@ function createGladia(options = {}) {
|
|
|
572
573
|
};
|
|
573
574
|
provider.transcription = createTranscriptionModel;
|
|
574
575
|
provider.transcriptionModel = createTranscriptionModel;
|
|
576
|
+
provider.languageModel = () => {
|
|
577
|
+
throw new import_provider2.NoSuchModelError({
|
|
578
|
+
modelId: "unknown",
|
|
579
|
+
modelType: "languageModel",
|
|
580
|
+
message: "Gladia does not provide language models"
|
|
581
|
+
});
|
|
582
|
+
};
|
|
583
|
+
provider.textEmbeddingModel = () => {
|
|
584
|
+
throw new import_provider2.NoSuchModelError({
|
|
585
|
+
modelId: "unknown",
|
|
586
|
+
modelType: "textEmbeddingModel",
|
|
587
|
+
message: "Gladia does not provide text embedding models"
|
|
588
|
+
});
|
|
589
|
+
};
|
|
590
|
+
provider.imageModel = () => {
|
|
591
|
+
throw new import_provider2.NoSuchModelError({
|
|
592
|
+
modelId: "unknown",
|
|
593
|
+
modelType: "imageModel",
|
|
594
|
+
message: "Gladia does not provide image models"
|
|
595
|
+
});
|
|
596
|
+
};
|
|
575
597
|
return provider;
|
|
576
598
|
}
|
|
577
599
|
var gladia = createGladia();
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/gladia-provider.ts","../src/gladia-transcription-model.ts","../src/gladia-error.ts"],"sourcesContent":["export { createGladia, gladia } from './gladia-provider';\nexport type { GladiaProvider, GladiaProviderSettings } from './gladia-provider';\n","import { TranscriptionModelV1, ProviderV1 } from '@ai-sdk/provider';\nimport { FetchFunction, loadApiKey } from '@ai-sdk/provider-utils';\nimport { GladiaTranscriptionModel } from './gladia-transcription-model';\n\nexport interface GladiaProvider extends Pick<ProviderV1, 'transcriptionModel'> {\n (): {\n transcription: GladiaTranscriptionModel;\n };\n\n /**\nCreates a model for transcription.\n */\n transcription(): TranscriptionModelV1;\n}\n\nexport interface GladiaProviderSettings {\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\n/**\nCreate a Gladia provider instance.\n */\nexport function createGladia(\n options: GladiaProviderSettings = {},\n): GladiaProvider {\n const getHeaders = () => ({\n 'x-gladia-key': loadApiKey({\n apiKey: options.apiKey,\n environmentVariableName: 'GLADIA_API_KEY',\n description: 'Gladia',\n }),\n ...options.headers,\n });\n\n const createTranscriptionModel = () =>\n new GladiaTranscriptionModel('default', {\n provider: `gladia.transcription`,\n url: ({ path }) => `https://api.gladia.io${path}`,\n headers: getHeaders,\n fetch: options.fetch,\n });\n\n const provider = function () {\n return {\n transcription: createTranscriptionModel(),\n };\n };\n\n provider.transcription = createTranscriptionModel;\n provider.transcriptionModel = createTranscriptionModel;\n\n return provider as GladiaProvider;\n}\n\n/**\nDefault Gladia provider instance.\n */\nexport const gladia = createGladia();\n","import {\n AISDKError,\n TranscriptionModelV1,\n TranscriptionModelV1CallWarning,\n} from '@ai-sdk/provider';\nimport {\n combineHeaders,\n convertBase64ToUint8Array,\n createJsonResponseHandler,\n delay,\n getFromApi,\n parseProviderOptions,\n postFormDataToApi,\n postJsonToApi,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod';\nimport { GladiaConfig } from './gladia-config';\nimport { gladiaFailedResponseHandler } from './gladia-error';\nimport { GladiaTranscriptionInitiateAPITypes } from './gladia-api-types';\n\n// https://docs.gladia.io/api-reference/v2/pre-recorded/init\nconst gladiaProviderOptionsSchema = z.object({\n /**\n * Optional context prompt to guide the transcription.\n */\n contextPrompt: z.string().nullish(),\n\n /**\n * Custom vocabulary to improve transcription accuracy.\n * Can be a boolean or an array of custom terms.\n */\n customVocabulary: z.union([z.boolean(), z.array(z.any())]).nullish(),\n\n /**\n * Configuration for custom vocabulary.\n */\n customVocabularyConfig: z\n .object({\n /**\n * Array of vocabulary terms or objects with pronunciation details.\n */\n vocabulary: z.array(\n z.union([\n z.string(),\n z.object({\n /**\n * The vocabulary term.\n */\n value: z.string(),\n /**\n * Intensity of the term in recognition (optional).\n */\n intensity: z.number().nullish(),\n /**\n * Alternative pronunciations for the term (optional).\n */\n pronunciations: z.array(z.string()).nullish(),\n /**\n * Language of the term (optional).\n */\n language: z.string().nullish(),\n }),\n ]),\n ),\n /**\n * Default intensity for all vocabulary terms.\n */\n defaultIntensity: z.number().nullish(),\n })\n .nullish(),\n\n /**\n * Whether to automatically detect the language of the audio.\n */\n detectLanguage: z.boolean().nullish(),\n\n /**\n * Whether to enable code switching (multiple languages in the same audio).\n */\n enableCodeSwitching: z.boolean().nullish(),\n\n /**\n * Configuration for code switching.\n */\n codeSwitchingConfig: z\n .object({\n /**\n * Languages to consider for code switching.\n */\n languages: z.array(z.string()).nullish(),\n })\n .nullish(),\n\n /**\n * Specific language for transcription.\n */\n language: z.string().nullish(),\n\n /**\n * Whether to enable callback when transcription is complete.\n */\n callback: z.boolean().nullish(),\n\n /**\n * Configuration for callback.\n */\n callbackConfig: z\n .object({\n /**\n * URL to send the callback to.\n */\n url: z.string(),\n /**\n * HTTP method for the callback.\n */\n method: z.enum(['POST', 'PUT']).nullish(),\n })\n .nullish(),\n\n /**\n * Whether to generate subtitles.\n */\n subtitles: z.boolean().nullish(),\n\n /**\n * Configuration for subtitles generation.\n */\n subtitlesConfig: z\n .object({\n /**\n * Subtitle file formats to generate.\n */\n formats: z.array(z.enum(['srt', 'vtt'])).nullish(),\n /**\n * Minimum duration for subtitle segments.\n */\n minimumDuration: z.number().nullish(),\n /**\n * Maximum duration for subtitle segments.\n */\n maximumDuration: z.number().nullish(),\n /**\n * Maximum characters per row in subtitles.\n */\n maximumCharactersPerRow: z.number().nullish(),\n /**\n * Maximum rows per caption in subtitles.\n */\n maximumRowsPerCaption: z.number().nullish(),\n /**\n * Style of subtitles.\n */\n style: z.enum(['default', 'compliance']).nullish(),\n })\n .nullish(),\n\n /**\n * Whether to enable speaker diarization (speaker identification).\n */\n diarization: z.boolean().nullish(),\n\n /**\n * Configuration for diarization.\n */\n diarizationConfig: z\n .object({\n /**\n * Exact number of speakers to identify.\n */\n numberOfSpeakers: z.number().nullish(),\n /**\n * Minimum number of speakers to identify.\n */\n minSpeakers: z.number().nullish(),\n /**\n * Maximum number of speakers to identify.\n */\n maxSpeakers: z.number().nullish(),\n /**\n * Whether to use enhanced diarization.\n */\n enhanced: z.boolean().nullish(),\n })\n .nullish(),\n\n /**\n * Whether to translate the transcription.\n */\n translation: z.boolean().nullish(),\n\n /**\n * Configuration for translation.\n */\n translationConfig: z\n .object({\n /**\n * Target languages for translation.\n */\n targetLanguages: z.array(z.string()),\n /**\n * Translation model to use.\n */\n model: z.enum(['base', 'enhanced']).nullish(),\n /**\n * Whether to match original utterances in translation.\n */\n matchOriginalUtterances: z.boolean().nullish(),\n })\n .nullish(),\n\n /**\n * Whether to generate a summary of the transcription.\n */\n summarization: z.boolean().nullish(),\n\n /**\n * Configuration for summarization.\n */\n summarizationConfig: z\n .object({\n /**\n * Type of summary to generate.\n */\n type: z.enum(['general', 'bullet_points', 'concise']).nullish(),\n })\n .nullish(),\n\n /**\n * Whether to enable content moderation.\n */\n moderation: z.boolean().nullish(),\n\n /**\n * Whether to enable named entity recognition.\n */\n namedEntityRecognition: z.boolean().nullish(),\n\n /**\n * Whether to enable automatic chapter creation.\n */\n chapterization: z.boolean().nullish(),\n\n /**\n * Whether to ensure consistent naming of entities.\n */\n nameConsistency: z.boolean().nullish(),\n\n /**\n * Whether to enable custom spelling.\n */\n customSpelling: z.boolean().nullish(),\n\n /**\n * Configuration for custom spelling.\n */\n customSpellingConfig: z\n .object({\n /**\n * Dictionary of custom spellings.\n */\n spellingDictionary: z.record(z.array(z.string())),\n })\n .nullish(),\n\n /**\n * Whether to extract structured data from the transcription.\n */\n structuredDataExtraction: z.boolean().nullish(),\n\n /**\n * Configuration for structured data extraction.\n */\n structuredDataExtractionConfig: z\n .object({\n /**\n * Classes of data to extract.\n */\n classes: z.array(z.string()),\n })\n .nullish(),\n\n /**\n * Whether to perform sentiment analysis on the transcription.\n */\n sentimentAnalysis: z.boolean().nullish(),\n\n /**\n * Whether to send audio to a language model for processing.\n */\n audioToLlm: z.boolean().nullish(),\n\n /**\n * Configuration for audio to language model processing.\n */\n audioToLlmConfig: z\n .object({\n /**\n * Prompts to send to the language model.\n */\n prompts: z.array(z.string()),\n })\n .nullish(),\n\n /**\n * Custom metadata to include with the transcription.\n */\n customMetadata: z.record(z.any()).nullish(),\n\n /**\n * Whether to include sentence-level segmentation.\n */\n sentences: z.boolean().nullish(),\n\n /**\n * Whether to enable display mode.\n */\n displayMode: z.boolean().nullish(),\n\n /**\n * Whether to enhance punctuation in the transcription.\n */\n punctuationEnhanced: z.boolean().nullish(),\n});\n\nexport type GladiaTranscriptionCallOptions = z.infer<\n typeof gladiaProviderOptionsSchema\n>;\n\ninterface GladiaTranscriptionModelConfig extends GladiaConfig {\n _internal?: {\n currentDate?: () => Date;\n };\n}\n\nexport class GladiaTranscriptionModel implements TranscriptionModelV1 {\n readonly specificationVersion = 'v1';\n\n get provider(): string {\n return this.config.provider;\n }\n\n constructor(\n readonly modelId: 'default',\n private readonly config: GladiaTranscriptionModelConfig,\n ) {}\n\n private async getArgs({\n providerOptions,\n }: Parameters<TranscriptionModelV1['doGenerate']>[0]) {\n const warnings: TranscriptionModelV1CallWarning[] = [];\n\n // Parse provider options\n const gladiaOptions = await parseProviderOptions({\n provider: 'gladia',\n providerOptions,\n schema: gladiaProviderOptionsSchema,\n });\n\n const body: Omit<GladiaTranscriptionInitiateAPITypes, 'audio_url'> = {};\n\n // Add provider-specific options\n if (gladiaOptions) {\n body.context_prompt = gladiaOptions.contextPrompt ?? undefined;\n body.custom_vocabulary = gladiaOptions.customVocabulary ?? undefined;\n body.detect_language = gladiaOptions.detectLanguage ?? undefined;\n body.enable_code_switching =\n gladiaOptions.enableCodeSwitching ?? undefined;\n body.language = gladiaOptions.language ?? undefined;\n body.callback = gladiaOptions.callback ?? undefined;\n body.subtitles = gladiaOptions.subtitles ?? undefined;\n body.diarization = gladiaOptions.diarization ?? undefined;\n body.translation = gladiaOptions.translation ?? undefined;\n body.summarization = gladiaOptions.summarization ?? undefined;\n body.moderation = gladiaOptions.moderation ?? undefined;\n body.named_entity_recognition =\n gladiaOptions.namedEntityRecognition ?? undefined;\n body.chapterization = gladiaOptions.chapterization ?? undefined;\n body.name_consistency = gladiaOptions.nameConsistency ?? undefined;\n body.custom_spelling = gladiaOptions.customSpelling ?? undefined;\n body.structured_data_extraction =\n gladiaOptions.structuredDataExtraction ?? undefined;\n body.structured_data_extraction_config =\n gladiaOptions.structuredDataExtractionConfig ?? undefined;\n body.sentiment_analysis = gladiaOptions.sentimentAnalysis ?? undefined;\n body.audio_to_llm = gladiaOptions.audioToLlm ?? undefined;\n body.audio_to_llm_config = gladiaOptions.audioToLlmConfig ?? undefined;\n body.custom_metadata = gladiaOptions.customMetadata ?? undefined;\n body.sentences = gladiaOptions.sentences ?? undefined;\n body.display_mode = gladiaOptions.displayMode ?? undefined;\n body.punctuation_enhanced =\n gladiaOptions.punctuationEnhanced ?? undefined;\n\n if (gladiaOptions.customVocabularyConfig) {\n body.custom_vocabulary_config = {\n vocabulary: gladiaOptions.customVocabularyConfig.vocabulary.map(\n item => {\n if (typeof item === 'string') return item;\n return {\n value: item.value,\n intensity: item.intensity ?? undefined,\n pronunciations: item.pronunciations ?? undefined,\n language: item.language ?? undefined,\n };\n },\n ),\n default_intensity:\n gladiaOptions.customVocabularyConfig.defaultIntensity ?? undefined,\n };\n }\n\n // Handle code switching config\n if (gladiaOptions.codeSwitchingConfig) {\n body.code_switching_config = {\n languages: gladiaOptions.codeSwitchingConfig.languages ?? undefined,\n };\n }\n\n // Handle callback config\n if (gladiaOptions.callbackConfig) {\n body.callback_config = {\n url: gladiaOptions.callbackConfig.url,\n method: gladiaOptions.callbackConfig.method ?? undefined,\n };\n }\n\n // Handle subtitles config\n if (gladiaOptions.subtitlesConfig) {\n body.subtitles_config = {\n formats: gladiaOptions.subtitlesConfig.formats ?? undefined,\n minimum_duration:\n gladiaOptions.subtitlesConfig.minimumDuration ?? undefined,\n maximum_duration:\n gladiaOptions.subtitlesConfig.maximumDuration ?? undefined,\n maximum_characters_per_row:\n gladiaOptions.subtitlesConfig.maximumCharactersPerRow ?? undefined,\n maximum_rows_per_caption:\n gladiaOptions.subtitlesConfig.maximumRowsPerCaption ?? undefined,\n style: gladiaOptions.subtitlesConfig.style ?? undefined,\n };\n }\n\n // Handle diarization config\n if (gladiaOptions.diarizationConfig) {\n body.diarization_config = {\n number_of_speakers:\n gladiaOptions.diarizationConfig.numberOfSpeakers ?? undefined,\n min_speakers:\n gladiaOptions.diarizationConfig.minSpeakers ?? undefined,\n max_speakers:\n gladiaOptions.diarizationConfig.maxSpeakers ?? undefined,\n enhanced: gladiaOptions.diarizationConfig.enhanced ?? undefined,\n };\n }\n\n // Handle translation config\n if (gladiaOptions.translationConfig) {\n body.translation_config = {\n target_languages: gladiaOptions.translationConfig.targetLanguages,\n model: gladiaOptions.translationConfig.model ?? undefined,\n match_original_utterances:\n gladiaOptions.translationConfig.matchOriginalUtterances ??\n undefined,\n };\n }\n\n // Handle summarization config\n if (gladiaOptions.summarizationConfig) {\n body.summarization_config = {\n type: gladiaOptions.summarizationConfig.type ?? undefined,\n };\n }\n\n // Handle custom spelling config\n if (gladiaOptions.customSpellingConfig) {\n body.custom_spelling_config = {\n spelling_dictionary:\n gladiaOptions.customSpellingConfig.spellingDictionary,\n };\n }\n }\n\n return {\n body,\n warnings,\n };\n }\n\n async doGenerate(\n options: Parameters<TranscriptionModelV1['doGenerate']>[0],\n ): Promise<Awaited<ReturnType<TranscriptionModelV1['doGenerate']>>> {\n const currentDate = this.config._internal?.currentDate?.() ?? new Date();\n\n // Create form data with base fields\n const formData = new FormData();\n const blob =\n options.audio instanceof Uint8Array\n ? new Blob([options.audio])\n : new Blob([convertBase64ToUint8Array(options.audio)]);\n\n formData.append('model', this.modelId);\n formData.append(\n 'audio',\n new File([blob], 'audio', { type: options.mediaType }),\n );\n\n const { value: uploadResponse } = await postFormDataToApi({\n url: this.config.url({\n path: '/v2/upload',\n modelId: 'default',\n }),\n headers: combineHeaders(this.config.headers(), options.headers),\n formData,\n failedResponseHandler: gladiaFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler(\n gladiaUploadResponseSchema,\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch,\n });\n\n const { body, warnings } = await this.getArgs(options);\n\n const { value: transcriptionInitResponse } = await postJsonToApi({\n url: this.config.url({\n path: '/v2/pre-recorded',\n modelId: 'default',\n }),\n headers: combineHeaders(this.config.headers(), options.headers),\n body: {\n ...body,\n audio_url: uploadResponse.audio_url,\n },\n failedResponseHandler: gladiaFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler(\n gladiaTranscriptionInitializeResponseSchema,\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch,\n });\n\n // Poll the result URL until the transcription is done or an error occurs\n const resultUrl = transcriptionInitResponse.result_url;\n let transcriptionResult;\n let transcriptionResultHeaders;\n const timeoutMs = 60 * 1000; // 60 seconds timeout\n const startTime = Date.now();\n const pollingInterval = 1000;\n\n while (true) {\n // Check if we've exceeded the timeout\n if (Date.now() - startTime > timeoutMs) {\n throw new AISDKError({\n message: 'Transcription job polling timed out',\n name: 'TranscriptionJobPollingTimedOut',\n cause: transcriptionResult,\n });\n }\n\n const response = await getFromApi({\n url: resultUrl,\n headers: combineHeaders(this.config.headers(), options.headers),\n failedResponseHandler: gladiaFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler(\n gladiaTranscriptionResultResponseSchema,\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch,\n });\n\n transcriptionResult = response.value;\n transcriptionResultHeaders = response.responseHeaders;\n\n if (transcriptionResult.status === 'done') {\n break;\n }\n\n if (transcriptionResult.status === 'error') {\n throw new AISDKError({\n message: 'Transcription job failed',\n name: 'TranscriptionJobFailed',\n cause: transcriptionResult,\n });\n }\n\n // Wait for the configured polling interval before checking again\n await delay(pollingInterval);\n }\n\n if (!transcriptionResult.result) {\n throw new AISDKError({\n message: 'Transcription result is empty',\n name: 'TranscriptionResultEmpty',\n cause: transcriptionResult,\n });\n }\n\n // Process the successful result\n return {\n text: transcriptionResult.result.transcription.full_transcript,\n durationInSeconds: transcriptionResult.result.metadata.audio_duration,\n language: transcriptionResult.result.transcription.languages.at(0),\n segments: transcriptionResult.result.transcription.utterances.map(\n utterance => ({\n text: utterance.text,\n startSecond: utterance.start,\n endSecond: utterance.end,\n }),\n ),\n response: {\n timestamp: currentDate,\n modelId: 'default',\n headers: transcriptionResultHeaders,\n },\n providerMetadata: {\n gladia: transcriptionResult,\n },\n warnings,\n };\n }\n}\n\nconst gladiaUploadResponseSchema = z.object({\n audio_url: z.string(),\n});\n\nconst gladiaTranscriptionInitializeResponseSchema = z.object({\n result_url: z.string(),\n});\n\nconst gladiaTranscriptionResultResponseSchema = z.object({\n status: z.enum(['queued', 'processing', 'done', 'error']),\n result: z\n .object({\n metadata: z.object({\n audio_duration: z.number(),\n }),\n transcription: z.object({\n full_transcript: z.string(),\n languages: z.array(z.string()),\n utterances: z.array(\n z.object({\n start: z.number(),\n end: z.number(),\n text: z.string(),\n }),\n ),\n }),\n })\n .nullish(),\n});\n","import { z } from 'zod';\nimport { createJsonErrorResponseHandler } from '@ai-sdk/provider-utils';\n\nexport const gladiaErrorDataSchema = z.object({\n error: z.object({\n message: z.string(),\n code: z.number(),\n }),\n});\n\nexport type GladiaErrorData = z.infer<typeof gladiaErrorDataSchema>;\n\nexport const gladiaFailedResponseHandler = createJsonErrorResponseHandler({\n errorSchema: gladiaErrorDataSchema,\n errorToMessage: data => data.error.message,\n});\n"],"mappings":"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","names":["import_provider_utils","import_provider_utils","import_zod","_a","_b","_c"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/gladia-provider.ts","../src/gladia-transcription-model.ts","../src/gladia-error.ts"],"sourcesContent":["export { createGladia, gladia } from './gladia-provider';\nexport type { GladiaProvider, GladiaProviderSettings } from './gladia-provider';\n","import {\n TranscriptionModelV2,\n ProviderV2,\n NoSuchModelError,\n} from '@ai-sdk/provider';\nimport { FetchFunction, loadApiKey } from '@ai-sdk/provider-utils';\nimport { GladiaTranscriptionModel } from './gladia-transcription-model';\n\nexport interface GladiaProvider extends ProviderV2 {\n (): {\n transcription: GladiaTranscriptionModel;\n };\n\n /**\nCreates a model for transcription.\n */\n transcription(): TranscriptionModelV2;\n}\n\nexport interface GladiaProviderSettings {\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\n/**\nCreate a Gladia provider instance.\n */\nexport function createGladia(\n options: GladiaProviderSettings = {},\n): GladiaProvider {\n const getHeaders = () => ({\n 'x-gladia-key': loadApiKey({\n apiKey: options.apiKey,\n environmentVariableName: 'GLADIA_API_KEY',\n description: 'Gladia',\n }),\n ...options.headers,\n });\n\n const createTranscriptionModel = () =>\n new GladiaTranscriptionModel('default', {\n provider: `gladia.transcription`,\n url: ({ path }) => `https://api.gladia.io${path}`,\n headers: getHeaders,\n fetch: options.fetch,\n });\n\n const provider = function () {\n return {\n transcription: createTranscriptionModel(),\n };\n };\n\n provider.transcription = createTranscriptionModel;\n provider.transcriptionModel = createTranscriptionModel;\n\n // Required ProviderV2 methods that are not supported\n provider.languageModel = () => {\n throw new NoSuchModelError({\n modelId: 'unknown',\n modelType: 'languageModel',\n message: 'Gladia does not provide language models',\n });\n };\n\n provider.textEmbeddingModel = () => {\n throw new NoSuchModelError({\n modelId: 'unknown',\n modelType: 'textEmbeddingModel',\n message: 'Gladia does not provide text embedding models',\n });\n };\n\n provider.imageModel = () => {\n throw new NoSuchModelError({\n modelId: 'unknown',\n modelType: 'imageModel',\n message: 'Gladia does not provide image models',\n });\n };\n\n return provider as GladiaProvider;\n}\n\n/**\nDefault Gladia provider instance.\n */\nexport const gladia = createGladia();\n","import {\n AISDKError,\n TranscriptionModelV2,\n TranscriptionModelV2CallWarning,\n} from '@ai-sdk/provider';\nimport {\n combineHeaders,\n convertBase64ToUint8Array,\n createJsonResponseHandler,\n delay,\n getFromApi,\n parseProviderOptions,\n postFormDataToApi,\n postJsonToApi,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\nimport { GladiaConfig } from './gladia-config';\nimport { gladiaFailedResponseHandler } from './gladia-error';\nimport { GladiaTranscriptionInitiateAPITypes } from './gladia-api-types';\n\n// https://docs.gladia.io/api-reference/v2/pre-recorded/init\nconst gladiaProviderOptionsSchema = z.object({\n /**\n * Optional context prompt to guide the transcription.\n */\n contextPrompt: z.string().nullish(),\n\n /**\n * Custom vocabulary to improve transcription accuracy.\n * Can be a boolean or an array of custom terms.\n */\n customVocabulary: z.union([z.boolean(), z.array(z.any())]).nullish(),\n\n /**\n * Configuration for custom vocabulary.\n */\n customVocabularyConfig: z\n .object({\n /**\n * Array of vocabulary terms or objects with pronunciation details.\n */\n vocabulary: z.array(\n z.union([\n z.string(),\n z.object({\n /**\n * The vocabulary term.\n */\n value: z.string(),\n /**\n * Intensity of the term in recognition (optional).\n */\n intensity: z.number().nullish(),\n /**\n * Alternative pronunciations for the term (optional).\n */\n pronunciations: z.array(z.string()).nullish(),\n /**\n * Language of the term (optional).\n */\n language: z.string().nullish(),\n }),\n ]),\n ),\n /**\n * Default intensity for all vocabulary terms.\n */\n defaultIntensity: z.number().nullish(),\n })\n .nullish(),\n\n /**\n * Whether to automatically detect the language of the audio.\n */\n detectLanguage: z.boolean().nullish(),\n\n /**\n * Whether to enable code switching (multiple languages in the same audio).\n */\n enableCodeSwitching: z.boolean().nullish(),\n\n /**\n * Configuration for code switching.\n */\n codeSwitchingConfig: z\n .object({\n /**\n * Languages to consider for code switching.\n */\n languages: z.array(z.string()).nullish(),\n })\n .nullish(),\n\n /**\n * Specific language for transcription.\n */\n language: z.string().nullish(),\n\n /**\n * Whether to enable callback when transcription is complete.\n */\n callback: z.boolean().nullish(),\n\n /**\n * Configuration for callback.\n */\n callbackConfig: z\n .object({\n /**\n * URL to send the callback to.\n */\n url: z.string(),\n /**\n * HTTP method for the callback.\n */\n method: z.enum(['POST', 'PUT']).nullish(),\n })\n .nullish(),\n\n /**\n * Whether to generate subtitles.\n */\n subtitles: z.boolean().nullish(),\n\n /**\n * Configuration for subtitles generation.\n */\n subtitlesConfig: z\n .object({\n /**\n * Subtitle file formats to generate.\n */\n formats: z.array(z.enum(['srt', 'vtt'])).nullish(),\n /**\n * Minimum duration for subtitle segments.\n */\n minimumDuration: z.number().nullish(),\n /**\n * Maximum duration for subtitle segments.\n */\n maximumDuration: z.number().nullish(),\n /**\n * Maximum characters per row in subtitles.\n */\n maximumCharactersPerRow: z.number().nullish(),\n /**\n * Maximum rows per caption in subtitles.\n */\n maximumRowsPerCaption: z.number().nullish(),\n /**\n * Style of subtitles.\n */\n style: z.enum(['default', 'compliance']).nullish(),\n })\n .nullish(),\n\n /**\n * Whether to enable speaker diarization (speaker identification).\n */\n diarization: z.boolean().nullish(),\n\n /**\n * Configuration for diarization.\n */\n diarizationConfig: z\n .object({\n /**\n * Exact number of speakers to identify.\n */\n numberOfSpeakers: z.number().nullish(),\n /**\n * Minimum number of speakers to identify.\n */\n minSpeakers: z.number().nullish(),\n /**\n * Maximum number of speakers to identify.\n */\n maxSpeakers: z.number().nullish(),\n /**\n * Whether to use enhanced diarization.\n */\n enhanced: z.boolean().nullish(),\n })\n .nullish(),\n\n /**\n * Whether to translate the transcription.\n */\n translation: z.boolean().nullish(),\n\n /**\n * Configuration for translation.\n */\n translationConfig: z\n .object({\n /**\n * Target languages for translation.\n */\n targetLanguages: z.array(z.string()),\n /**\n * Translation model to use.\n */\n model: z.enum(['base', 'enhanced']).nullish(),\n /**\n * Whether to match original utterances in translation.\n */\n matchOriginalUtterances: z.boolean().nullish(),\n })\n .nullish(),\n\n /**\n * Whether to generate a summary of the transcription.\n */\n summarization: z.boolean().nullish(),\n\n /**\n * Configuration for summarization.\n */\n summarizationConfig: z\n .object({\n /**\n * Type of summary to generate.\n */\n type: z.enum(['general', 'bullet_points', 'concise']).nullish(),\n })\n .nullish(),\n\n /**\n * Whether to enable content moderation.\n */\n moderation: z.boolean().nullish(),\n\n /**\n * Whether to enable named entity recognition.\n */\n namedEntityRecognition: z.boolean().nullish(),\n\n /**\n * Whether to enable automatic chapter creation.\n */\n chapterization: z.boolean().nullish(),\n\n /**\n * Whether to ensure consistent naming of entities.\n */\n nameConsistency: z.boolean().nullish(),\n\n /**\n * Whether to enable custom spelling.\n */\n customSpelling: z.boolean().nullish(),\n\n /**\n * Configuration for custom spelling.\n */\n customSpellingConfig: z\n .object({\n /**\n * Dictionary of custom spellings.\n */\n spellingDictionary: z.record(z.string(), z.array(z.string())),\n })\n .nullish(),\n\n /**\n * Whether to extract structured data from the transcription.\n */\n structuredDataExtraction: z.boolean().nullish(),\n\n /**\n * Configuration for structured data extraction.\n */\n structuredDataExtractionConfig: z\n .object({\n /**\n * Classes of data to extract.\n */\n classes: z.array(z.string()),\n })\n .nullish(),\n\n /**\n * Whether to perform sentiment analysis on the transcription.\n */\n sentimentAnalysis: z.boolean().nullish(),\n\n /**\n * Whether to send audio to a language model for processing.\n */\n audioToLlm: z.boolean().nullish(),\n\n /**\n * Configuration for audio to language model processing.\n */\n audioToLlmConfig: z\n .object({\n /**\n * Prompts to send to the language model.\n */\n prompts: z.array(z.string()),\n })\n .nullish(),\n\n /**\n * Custom metadata to include with the transcription.\n */\n customMetadata: z.record(z.string(), z.any()).nullish(),\n\n /**\n * Whether to include sentence-level segmentation.\n */\n sentences: z.boolean().nullish(),\n\n /**\n * Whether to enable display mode.\n */\n displayMode: z.boolean().nullish(),\n\n /**\n * Whether to enhance punctuation in the transcription.\n */\n punctuationEnhanced: z.boolean().nullish(),\n});\n\nexport type GladiaTranscriptionCallOptions = z.infer<\n typeof gladiaProviderOptionsSchema\n>;\n\ninterface GladiaTranscriptionModelConfig extends GladiaConfig {\n _internal?: {\n currentDate?: () => Date;\n };\n}\n\nexport class GladiaTranscriptionModel implements TranscriptionModelV2 {\n readonly specificationVersion = 'v2';\n\n get provider(): string {\n return this.config.provider;\n }\n\n constructor(\n readonly modelId: 'default',\n private readonly config: GladiaTranscriptionModelConfig,\n ) {}\n\n private async getArgs({\n providerOptions,\n }: Parameters<TranscriptionModelV2['doGenerate']>[0]) {\n const warnings: TranscriptionModelV2CallWarning[] = [];\n\n // Parse provider options\n const gladiaOptions = await parseProviderOptions({\n provider: 'gladia',\n providerOptions,\n schema: gladiaProviderOptionsSchema,\n });\n\n const body: Omit<GladiaTranscriptionInitiateAPITypes, 'audio_url'> = {};\n\n // Add provider-specific options\n if (gladiaOptions) {\n body.context_prompt = gladiaOptions.contextPrompt ?? undefined;\n body.custom_vocabulary = gladiaOptions.customVocabulary ?? undefined;\n body.detect_language = gladiaOptions.detectLanguage ?? undefined;\n body.enable_code_switching =\n gladiaOptions.enableCodeSwitching ?? undefined;\n body.language = gladiaOptions.language ?? undefined;\n body.callback = gladiaOptions.callback ?? undefined;\n body.subtitles = gladiaOptions.subtitles ?? undefined;\n body.diarization = gladiaOptions.diarization ?? undefined;\n body.translation = gladiaOptions.translation ?? undefined;\n body.summarization = gladiaOptions.summarization ?? undefined;\n body.moderation = gladiaOptions.moderation ?? undefined;\n body.named_entity_recognition =\n gladiaOptions.namedEntityRecognition ?? undefined;\n body.chapterization = gladiaOptions.chapterization ?? undefined;\n body.name_consistency = gladiaOptions.nameConsistency ?? undefined;\n body.custom_spelling = gladiaOptions.customSpelling ?? undefined;\n body.structured_data_extraction =\n gladiaOptions.structuredDataExtraction ?? undefined;\n body.structured_data_extraction_config =\n gladiaOptions.structuredDataExtractionConfig ?? undefined;\n body.sentiment_analysis = gladiaOptions.sentimentAnalysis ?? undefined;\n body.audio_to_llm = gladiaOptions.audioToLlm ?? undefined;\n body.audio_to_llm_config = gladiaOptions.audioToLlmConfig ?? undefined;\n body.custom_metadata = gladiaOptions.customMetadata ?? undefined;\n body.sentences = gladiaOptions.sentences ?? undefined;\n body.display_mode = gladiaOptions.displayMode ?? undefined;\n body.punctuation_enhanced =\n gladiaOptions.punctuationEnhanced ?? undefined;\n\n if (gladiaOptions.customVocabularyConfig) {\n body.custom_vocabulary_config = {\n vocabulary: gladiaOptions.customVocabularyConfig.vocabulary.map(\n item => {\n if (typeof item === 'string') return item;\n return {\n value: item.value,\n intensity: item.intensity ?? undefined,\n pronunciations: item.pronunciations ?? undefined,\n language: item.language ?? undefined,\n };\n },\n ),\n default_intensity:\n gladiaOptions.customVocabularyConfig.defaultIntensity ?? undefined,\n };\n }\n\n // Handle code switching config\n if (gladiaOptions.codeSwitchingConfig) {\n body.code_switching_config = {\n languages: gladiaOptions.codeSwitchingConfig.languages ?? undefined,\n };\n }\n\n // Handle callback config\n if (gladiaOptions.callbackConfig) {\n body.callback_config = {\n url: gladiaOptions.callbackConfig.url,\n method: gladiaOptions.callbackConfig.method ?? undefined,\n };\n }\n\n // Handle subtitles config\n if (gladiaOptions.subtitlesConfig) {\n body.subtitles_config = {\n formats: gladiaOptions.subtitlesConfig.formats ?? undefined,\n minimum_duration:\n gladiaOptions.subtitlesConfig.minimumDuration ?? undefined,\n maximum_duration:\n gladiaOptions.subtitlesConfig.maximumDuration ?? undefined,\n maximum_characters_per_row:\n gladiaOptions.subtitlesConfig.maximumCharactersPerRow ?? undefined,\n maximum_rows_per_caption:\n gladiaOptions.subtitlesConfig.maximumRowsPerCaption ?? undefined,\n style: gladiaOptions.subtitlesConfig.style ?? undefined,\n };\n }\n\n // Handle diarization config\n if (gladiaOptions.diarizationConfig) {\n body.diarization_config = {\n number_of_speakers:\n gladiaOptions.diarizationConfig.numberOfSpeakers ?? undefined,\n min_speakers:\n gladiaOptions.diarizationConfig.minSpeakers ?? undefined,\n max_speakers:\n gladiaOptions.diarizationConfig.maxSpeakers ?? undefined,\n enhanced: gladiaOptions.diarizationConfig.enhanced ?? undefined,\n };\n }\n\n // Handle translation config\n if (gladiaOptions.translationConfig) {\n body.translation_config = {\n target_languages: gladiaOptions.translationConfig.targetLanguages,\n model: gladiaOptions.translationConfig.model ?? undefined,\n match_original_utterances:\n gladiaOptions.translationConfig.matchOriginalUtterances ??\n undefined,\n };\n }\n\n // Handle summarization config\n if (gladiaOptions.summarizationConfig) {\n body.summarization_config = {\n type: gladiaOptions.summarizationConfig.type ?? undefined,\n };\n }\n\n // Handle custom spelling config\n if (gladiaOptions.customSpellingConfig) {\n body.custom_spelling_config = {\n spelling_dictionary:\n gladiaOptions.customSpellingConfig.spellingDictionary,\n };\n }\n }\n\n return {\n body,\n warnings,\n };\n }\n\n async doGenerate(\n options: Parameters<TranscriptionModelV2['doGenerate']>[0],\n ): Promise<Awaited<ReturnType<TranscriptionModelV2['doGenerate']>>> {\n const currentDate = this.config._internal?.currentDate?.() ?? new Date();\n\n // Create form data with base fields\n const formData = new FormData();\n const blob =\n options.audio instanceof Uint8Array\n ? new Blob([options.audio])\n : new Blob([convertBase64ToUint8Array(options.audio)]);\n\n formData.append('model', this.modelId);\n formData.append(\n 'audio',\n new File([blob], 'audio', { type: options.mediaType }),\n );\n\n const { value: uploadResponse } = await postFormDataToApi({\n url: this.config.url({\n path: '/v2/upload',\n modelId: 'default',\n }),\n headers: combineHeaders(this.config.headers(), options.headers),\n formData,\n failedResponseHandler: gladiaFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler(\n gladiaUploadResponseSchema,\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch,\n });\n\n const { body, warnings } = await this.getArgs(options);\n\n const { value: transcriptionInitResponse } = await postJsonToApi({\n url: this.config.url({\n path: '/v2/pre-recorded',\n modelId: 'default',\n }),\n headers: combineHeaders(this.config.headers(), options.headers),\n body: {\n ...body,\n audio_url: uploadResponse.audio_url,\n },\n failedResponseHandler: gladiaFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler(\n gladiaTranscriptionInitializeResponseSchema,\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch,\n });\n\n // Poll the result URL until the transcription is done or an error occurs\n const resultUrl = transcriptionInitResponse.result_url;\n let transcriptionResult;\n let transcriptionResultHeaders;\n const timeoutMs = 60 * 1000; // 60 seconds timeout\n const startTime = Date.now();\n const pollingInterval = 1000;\n\n while (true) {\n // Check if we've exceeded the timeout\n if (Date.now() - startTime > timeoutMs) {\n throw new AISDKError({\n message: 'Transcription job polling timed out',\n name: 'TranscriptionJobPollingTimedOut',\n cause: transcriptionResult,\n });\n }\n\n const response = await getFromApi({\n url: resultUrl,\n headers: combineHeaders(this.config.headers(), options.headers),\n failedResponseHandler: gladiaFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler(\n gladiaTranscriptionResultResponseSchema,\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch,\n });\n\n transcriptionResult = response.value;\n transcriptionResultHeaders = response.responseHeaders;\n\n if (transcriptionResult.status === 'done') {\n break;\n }\n\n if (transcriptionResult.status === 'error') {\n throw new AISDKError({\n message: 'Transcription job failed',\n name: 'TranscriptionJobFailed',\n cause: transcriptionResult,\n });\n }\n\n // Wait for the configured polling interval before checking again\n await delay(pollingInterval);\n }\n\n if (!transcriptionResult.result) {\n throw new AISDKError({\n message: 'Transcription result is empty',\n name: 'TranscriptionResultEmpty',\n cause: transcriptionResult,\n });\n }\n\n // Process the successful result\n return {\n text: transcriptionResult.result.transcription.full_transcript,\n durationInSeconds: transcriptionResult.result.metadata.audio_duration,\n language: transcriptionResult.result.transcription.languages.at(0),\n segments: transcriptionResult.result.transcription.utterances.map(\n utterance => ({\n text: utterance.text,\n startSecond: utterance.start,\n endSecond: utterance.end,\n }),\n ),\n response: {\n timestamp: currentDate,\n modelId: 'default',\n headers: transcriptionResultHeaders,\n },\n providerMetadata: {\n gladia: transcriptionResult,\n },\n warnings,\n };\n }\n}\n\nconst gladiaUploadResponseSchema = z.object({\n audio_url: z.string(),\n});\n\nconst gladiaTranscriptionInitializeResponseSchema = z.object({\n result_url: z.string(),\n});\n\nconst gladiaTranscriptionResultResponseSchema = z.object({\n status: z.enum(['queued', 'processing', 'done', 'error']),\n result: z\n .object({\n metadata: z.object({\n audio_duration: z.number(),\n }),\n transcription: z.object({\n full_transcript: z.string(),\n languages: z.array(z.string()),\n utterances: z.array(\n z.object({\n start: z.number(),\n end: z.number(),\n text: z.string(),\n }),\n ),\n }),\n })\n .nullish(),\n});\n","import { z } from 'zod/v4';\nimport { createJsonErrorResponseHandler } from '@ai-sdk/provider-utils';\n\nexport const gladiaErrorDataSchema = z.object({\n error: z.object({\n message: z.string(),\n code: z.number(),\n }),\n});\n\nexport type GladiaErrorData = z.infer<typeof gladiaErrorDataSchema>;\n\nexport const gladiaFailedResponseHandler = createJsonErrorResponseHandler({\n errorSchema: gladiaErrorDataSchema,\n errorToMessage: data => data.error.message,\n});\n"],"mappings":"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","names":["import_provider","import_provider_utils","import_provider_utils","import_v4","_a","_b","_c"]}
|
package/dist/index.mjs
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
// src/gladia-provider.ts
|
|
2
|
+
import {
|
|
3
|
+
NoSuchModelError
|
|
4
|
+
} from "@ai-sdk/provider";
|
|
2
5
|
import { loadApiKey } from "@ai-sdk/provider-utils";
|
|
3
6
|
|
|
4
7
|
// src/gladia-transcription-model.ts
|
|
@@ -15,10 +18,10 @@ import {
|
|
|
15
18
|
postFormDataToApi,
|
|
16
19
|
postJsonToApi
|
|
17
20
|
} from "@ai-sdk/provider-utils";
|
|
18
|
-
import { z as z2 } from "zod";
|
|
21
|
+
import { z as z2 } from "zod/v4";
|
|
19
22
|
|
|
20
23
|
// src/gladia-error.ts
|
|
21
|
-
import { z } from "zod";
|
|
24
|
+
import { z } from "zod/v4";
|
|
22
25
|
import { createJsonErrorResponseHandler } from "@ai-sdk/provider-utils";
|
|
23
26
|
var gladiaErrorDataSchema = z.object({
|
|
24
27
|
error: z.object({
|
|
@@ -234,7 +237,7 @@ var gladiaProviderOptionsSchema = z2.object({
|
|
|
234
237
|
/**
|
|
235
238
|
* Dictionary of custom spellings.
|
|
236
239
|
*/
|
|
237
|
-
spellingDictionary: z2.record(z2.array(z2.string()))
|
|
240
|
+
spellingDictionary: z2.record(z2.string(), z2.array(z2.string()))
|
|
238
241
|
}).nullish(),
|
|
239
242
|
/**
|
|
240
243
|
* Whether to extract structured data from the transcription.
|
|
@@ -269,7 +272,7 @@ var gladiaProviderOptionsSchema = z2.object({
|
|
|
269
272
|
/**
|
|
270
273
|
* Custom metadata to include with the transcription.
|
|
271
274
|
*/
|
|
272
|
-
customMetadata: z2.record(z2.any()).nullish(),
|
|
275
|
+
customMetadata: z2.record(z2.string(), z2.any()).nullish(),
|
|
273
276
|
/**
|
|
274
277
|
* Whether to include sentence-level segmentation.
|
|
275
278
|
*/
|
|
@@ -287,7 +290,7 @@ var GladiaTranscriptionModel = class {
|
|
|
287
290
|
constructor(modelId, config) {
|
|
288
291
|
this.modelId = modelId;
|
|
289
292
|
this.config = config;
|
|
290
|
-
this.specificationVersion = "
|
|
293
|
+
this.specificationVersion = "v2";
|
|
291
294
|
}
|
|
292
295
|
get provider() {
|
|
293
296
|
return this.config.provider;
|
|
@@ -556,6 +559,27 @@ function createGladia(options = {}) {
|
|
|
556
559
|
};
|
|
557
560
|
provider.transcription = createTranscriptionModel;
|
|
558
561
|
provider.transcriptionModel = createTranscriptionModel;
|
|
562
|
+
provider.languageModel = () => {
|
|
563
|
+
throw new NoSuchModelError({
|
|
564
|
+
modelId: "unknown",
|
|
565
|
+
modelType: "languageModel",
|
|
566
|
+
message: "Gladia does not provide language models"
|
|
567
|
+
});
|
|
568
|
+
};
|
|
569
|
+
provider.textEmbeddingModel = () => {
|
|
570
|
+
throw new NoSuchModelError({
|
|
571
|
+
modelId: "unknown",
|
|
572
|
+
modelType: "textEmbeddingModel",
|
|
573
|
+
message: "Gladia does not provide text embedding models"
|
|
574
|
+
});
|
|
575
|
+
};
|
|
576
|
+
provider.imageModel = () => {
|
|
577
|
+
throw new NoSuchModelError({
|
|
578
|
+
modelId: "unknown",
|
|
579
|
+
modelType: "imageModel",
|
|
580
|
+
message: "Gladia does not provide image models"
|
|
581
|
+
});
|
|
582
|
+
};
|
|
559
583
|
return provider;
|
|
560
584
|
}
|
|
561
585
|
var gladia = createGladia();
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/gladia-provider.ts","../src/gladia-transcription-model.ts","../src/gladia-error.ts"],"sourcesContent":["import { TranscriptionModelV1, ProviderV1 } from '@ai-sdk/provider';\nimport { FetchFunction, loadApiKey } from '@ai-sdk/provider-utils';\nimport { GladiaTranscriptionModel } from './gladia-transcription-model';\n\nexport interface GladiaProvider extends Pick<ProviderV1, 'transcriptionModel'> {\n (): {\n transcription: GladiaTranscriptionModel;\n };\n\n /**\nCreates a model for transcription.\n */\n transcription(): TranscriptionModelV1;\n}\n\nexport interface GladiaProviderSettings {\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\n/**\nCreate a Gladia provider instance.\n */\nexport function createGladia(\n options: GladiaProviderSettings = {},\n): GladiaProvider {\n const getHeaders = () => ({\n 'x-gladia-key': loadApiKey({\n apiKey: options.apiKey,\n environmentVariableName: 'GLADIA_API_KEY',\n description: 'Gladia',\n }),\n ...options.headers,\n });\n\n const createTranscriptionModel = () =>\n new GladiaTranscriptionModel('default', {\n provider: `gladia.transcription`,\n url: ({ path }) => `https://api.gladia.io${path}`,\n headers: getHeaders,\n fetch: options.fetch,\n });\n\n const provider = function () {\n return {\n transcription: createTranscriptionModel(),\n };\n };\n\n provider.transcription = createTranscriptionModel;\n provider.transcriptionModel = createTranscriptionModel;\n\n return provider as GladiaProvider;\n}\n\n/**\nDefault Gladia provider instance.\n */\nexport const gladia = createGladia();\n","import {\n AISDKError,\n TranscriptionModelV1,\n TranscriptionModelV1CallWarning,\n} from '@ai-sdk/provider';\nimport {\n combineHeaders,\n convertBase64ToUint8Array,\n createJsonResponseHandler,\n delay,\n getFromApi,\n parseProviderOptions,\n postFormDataToApi,\n postJsonToApi,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod';\nimport { GladiaConfig } from './gladia-config';\nimport { gladiaFailedResponseHandler } from './gladia-error';\nimport { GladiaTranscriptionInitiateAPITypes } from './gladia-api-types';\n\n// https://docs.gladia.io/api-reference/v2/pre-recorded/init\nconst gladiaProviderOptionsSchema = z.object({\n /**\n * Optional context prompt to guide the transcription.\n */\n contextPrompt: z.string().nullish(),\n\n /**\n * Custom vocabulary to improve transcription accuracy.\n * Can be a boolean or an array of custom terms.\n */\n customVocabulary: z.union([z.boolean(), z.array(z.any())]).nullish(),\n\n /**\n * Configuration for custom vocabulary.\n */\n customVocabularyConfig: z\n .object({\n /**\n * Array of vocabulary terms or objects with pronunciation details.\n */\n vocabulary: z.array(\n z.union([\n z.string(),\n z.object({\n /**\n * The vocabulary term.\n */\n value: z.string(),\n /**\n * Intensity of the term in recognition (optional).\n */\n intensity: z.number().nullish(),\n /**\n * Alternative pronunciations for the term (optional).\n */\n pronunciations: z.array(z.string()).nullish(),\n /**\n * Language of the term (optional).\n */\n language: z.string().nullish(),\n }),\n ]),\n ),\n /**\n * Default intensity for all vocabulary terms.\n */\n defaultIntensity: z.number().nullish(),\n })\n .nullish(),\n\n /**\n * Whether to automatically detect the language of the audio.\n */\n detectLanguage: z.boolean().nullish(),\n\n /**\n * Whether to enable code switching (multiple languages in the same audio).\n */\n enableCodeSwitching: z.boolean().nullish(),\n\n /**\n * Configuration for code switching.\n */\n codeSwitchingConfig: z\n .object({\n /**\n * Languages to consider for code switching.\n */\n languages: z.array(z.string()).nullish(),\n })\n .nullish(),\n\n /**\n * Specific language for transcription.\n */\n language: z.string().nullish(),\n\n /**\n * Whether to enable callback when transcription is complete.\n */\n callback: z.boolean().nullish(),\n\n /**\n * Configuration for callback.\n */\n callbackConfig: z\n .object({\n /**\n * URL to send the callback to.\n */\n url: z.string(),\n /**\n * HTTP method for the callback.\n */\n method: z.enum(['POST', 'PUT']).nullish(),\n })\n .nullish(),\n\n /**\n * Whether to generate subtitles.\n */\n subtitles: z.boolean().nullish(),\n\n /**\n * Configuration for subtitles generation.\n */\n subtitlesConfig: z\n .object({\n /**\n * Subtitle file formats to generate.\n */\n formats: z.array(z.enum(['srt', 'vtt'])).nullish(),\n /**\n * Minimum duration for subtitle segments.\n */\n minimumDuration: z.number().nullish(),\n /**\n * Maximum duration for subtitle segments.\n */\n maximumDuration: z.number().nullish(),\n /**\n * Maximum characters per row in subtitles.\n */\n maximumCharactersPerRow: z.number().nullish(),\n /**\n * Maximum rows per caption in subtitles.\n */\n maximumRowsPerCaption: z.number().nullish(),\n /**\n * Style of subtitles.\n */\n style: z.enum(['default', 'compliance']).nullish(),\n })\n .nullish(),\n\n /**\n * Whether to enable speaker diarization (speaker identification).\n */\n diarization: z.boolean().nullish(),\n\n /**\n * Configuration for diarization.\n */\n diarizationConfig: z\n .object({\n /**\n * Exact number of speakers to identify.\n */\n numberOfSpeakers: z.number().nullish(),\n /**\n * Minimum number of speakers to identify.\n */\n minSpeakers: z.number().nullish(),\n /**\n * Maximum number of speakers to identify.\n */\n maxSpeakers: z.number().nullish(),\n /**\n * Whether to use enhanced diarization.\n */\n enhanced: z.boolean().nullish(),\n })\n .nullish(),\n\n /**\n * Whether to translate the transcription.\n */\n translation: z.boolean().nullish(),\n\n /**\n * Configuration for translation.\n */\n translationConfig: z\n .object({\n /**\n * Target languages for translation.\n */\n targetLanguages: z.array(z.string()),\n /**\n * Translation model to use.\n */\n model: z.enum(['base', 'enhanced']).nullish(),\n /**\n * Whether to match original utterances in translation.\n */\n matchOriginalUtterances: z.boolean().nullish(),\n })\n .nullish(),\n\n /**\n * Whether to generate a summary of the transcription.\n */\n summarization: z.boolean().nullish(),\n\n /**\n * Configuration for summarization.\n */\n summarizationConfig: z\n .object({\n /**\n * Type of summary to generate.\n */\n type: z.enum(['general', 'bullet_points', 'concise']).nullish(),\n })\n .nullish(),\n\n /**\n * Whether to enable content moderation.\n */\n moderation: z.boolean().nullish(),\n\n /**\n * Whether to enable named entity recognition.\n */\n namedEntityRecognition: z.boolean().nullish(),\n\n /**\n * Whether to enable automatic chapter creation.\n */\n chapterization: z.boolean().nullish(),\n\n /**\n * Whether to ensure consistent naming of entities.\n */\n nameConsistency: z.boolean().nullish(),\n\n /**\n * Whether to enable custom spelling.\n */\n customSpelling: z.boolean().nullish(),\n\n /**\n * Configuration for custom spelling.\n */\n customSpellingConfig: z\n .object({\n /**\n * Dictionary of custom spellings.\n */\n spellingDictionary: z.record(z.array(z.string())),\n })\n .nullish(),\n\n /**\n * Whether to extract structured data from the transcription.\n */\n structuredDataExtraction: z.boolean().nullish(),\n\n /**\n * Configuration for structured data extraction.\n */\n structuredDataExtractionConfig: z\n .object({\n /**\n * Classes of data to extract.\n */\n classes: z.array(z.string()),\n })\n .nullish(),\n\n /**\n * Whether to perform sentiment analysis on the transcription.\n */\n sentimentAnalysis: z.boolean().nullish(),\n\n /**\n * Whether to send audio to a language model for processing.\n */\n audioToLlm: z.boolean().nullish(),\n\n /**\n * Configuration for audio to language model processing.\n */\n audioToLlmConfig: z\n .object({\n /**\n * Prompts to send to the language model.\n */\n prompts: z.array(z.string()),\n })\n .nullish(),\n\n /**\n * Custom metadata to include with the transcription.\n */\n customMetadata: z.record(z.any()).nullish(),\n\n /**\n * Whether to include sentence-level segmentation.\n */\n sentences: z.boolean().nullish(),\n\n /**\n * Whether to enable display mode.\n */\n displayMode: z.boolean().nullish(),\n\n /**\n * Whether to enhance punctuation in the transcription.\n */\n punctuationEnhanced: z.boolean().nullish(),\n});\n\nexport type GladiaTranscriptionCallOptions = z.infer<\n typeof gladiaProviderOptionsSchema\n>;\n\ninterface GladiaTranscriptionModelConfig extends GladiaConfig {\n _internal?: {\n currentDate?: () => Date;\n };\n}\n\nexport class GladiaTranscriptionModel implements TranscriptionModelV1 {\n readonly specificationVersion = 'v1';\n\n get provider(): string {\n return this.config.provider;\n }\n\n constructor(\n readonly modelId: 'default',\n private readonly config: GladiaTranscriptionModelConfig,\n ) {}\n\n private async getArgs({\n providerOptions,\n }: Parameters<TranscriptionModelV1['doGenerate']>[0]) {\n const warnings: TranscriptionModelV1CallWarning[] = [];\n\n // Parse provider options\n const gladiaOptions = await parseProviderOptions({\n provider: 'gladia',\n providerOptions,\n schema: gladiaProviderOptionsSchema,\n });\n\n const body: Omit<GladiaTranscriptionInitiateAPITypes, 'audio_url'> = {};\n\n // Add provider-specific options\n if (gladiaOptions) {\n body.context_prompt = gladiaOptions.contextPrompt ?? undefined;\n body.custom_vocabulary = gladiaOptions.customVocabulary ?? undefined;\n body.detect_language = gladiaOptions.detectLanguage ?? undefined;\n body.enable_code_switching =\n gladiaOptions.enableCodeSwitching ?? undefined;\n body.language = gladiaOptions.language ?? undefined;\n body.callback = gladiaOptions.callback ?? undefined;\n body.subtitles = gladiaOptions.subtitles ?? undefined;\n body.diarization = gladiaOptions.diarization ?? undefined;\n body.translation = gladiaOptions.translation ?? undefined;\n body.summarization = gladiaOptions.summarization ?? undefined;\n body.moderation = gladiaOptions.moderation ?? undefined;\n body.named_entity_recognition =\n gladiaOptions.namedEntityRecognition ?? undefined;\n body.chapterization = gladiaOptions.chapterization ?? undefined;\n body.name_consistency = gladiaOptions.nameConsistency ?? undefined;\n body.custom_spelling = gladiaOptions.customSpelling ?? undefined;\n body.structured_data_extraction =\n gladiaOptions.structuredDataExtraction ?? undefined;\n body.structured_data_extraction_config =\n gladiaOptions.structuredDataExtractionConfig ?? undefined;\n body.sentiment_analysis = gladiaOptions.sentimentAnalysis ?? undefined;\n body.audio_to_llm = gladiaOptions.audioToLlm ?? undefined;\n body.audio_to_llm_config = gladiaOptions.audioToLlmConfig ?? undefined;\n body.custom_metadata = gladiaOptions.customMetadata ?? undefined;\n body.sentences = gladiaOptions.sentences ?? undefined;\n body.display_mode = gladiaOptions.displayMode ?? undefined;\n body.punctuation_enhanced =\n gladiaOptions.punctuationEnhanced ?? undefined;\n\n if (gladiaOptions.customVocabularyConfig) {\n body.custom_vocabulary_config = {\n vocabulary: gladiaOptions.customVocabularyConfig.vocabulary.map(\n item => {\n if (typeof item === 'string') return item;\n return {\n value: item.value,\n intensity: item.intensity ?? undefined,\n pronunciations: item.pronunciations ?? undefined,\n language: item.language ?? undefined,\n };\n },\n ),\n default_intensity:\n gladiaOptions.customVocabularyConfig.defaultIntensity ?? undefined,\n };\n }\n\n // Handle code switching config\n if (gladiaOptions.codeSwitchingConfig) {\n body.code_switching_config = {\n languages: gladiaOptions.codeSwitchingConfig.languages ?? undefined,\n };\n }\n\n // Handle callback config\n if (gladiaOptions.callbackConfig) {\n body.callback_config = {\n url: gladiaOptions.callbackConfig.url,\n method: gladiaOptions.callbackConfig.method ?? undefined,\n };\n }\n\n // Handle subtitles config\n if (gladiaOptions.subtitlesConfig) {\n body.subtitles_config = {\n formats: gladiaOptions.subtitlesConfig.formats ?? undefined,\n minimum_duration:\n gladiaOptions.subtitlesConfig.minimumDuration ?? undefined,\n maximum_duration:\n gladiaOptions.subtitlesConfig.maximumDuration ?? undefined,\n maximum_characters_per_row:\n gladiaOptions.subtitlesConfig.maximumCharactersPerRow ?? undefined,\n maximum_rows_per_caption:\n gladiaOptions.subtitlesConfig.maximumRowsPerCaption ?? undefined,\n style: gladiaOptions.subtitlesConfig.style ?? undefined,\n };\n }\n\n // Handle diarization config\n if (gladiaOptions.diarizationConfig) {\n body.diarization_config = {\n number_of_speakers:\n gladiaOptions.diarizationConfig.numberOfSpeakers ?? undefined,\n min_speakers:\n gladiaOptions.diarizationConfig.minSpeakers ?? undefined,\n max_speakers:\n gladiaOptions.diarizationConfig.maxSpeakers ?? undefined,\n enhanced: gladiaOptions.diarizationConfig.enhanced ?? undefined,\n };\n }\n\n // Handle translation config\n if (gladiaOptions.translationConfig) {\n body.translation_config = {\n target_languages: gladiaOptions.translationConfig.targetLanguages,\n model: gladiaOptions.translationConfig.model ?? undefined,\n match_original_utterances:\n gladiaOptions.translationConfig.matchOriginalUtterances ??\n undefined,\n };\n }\n\n // Handle summarization config\n if (gladiaOptions.summarizationConfig) {\n body.summarization_config = {\n type: gladiaOptions.summarizationConfig.type ?? undefined,\n };\n }\n\n // Handle custom spelling config\n if (gladiaOptions.customSpellingConfig) {\n body.custom_spelling_config = {\n spelling_dictionary:\n gladiaOptions.customSpellingConfig.spellingDictionary,\n };\n }\n }\n\n return {\n body,\n warnings,\n };\n }\n\n async doGenerate(\n options: Parameters<TranscriptionModelV1['doGenerate']>[0],\n ): Promise<Awaited<ReturnType<TranscriptionModelV1['doGenerate']>>> {\n const currentDate = this.config._internal?.currentDate?.() ?? new Date();\n\n // Create form data with base fields\n const formData = new FormData();\n const blob =\n options.audio instanceof Uint8Array\n ? new Blob([options.audio])\n : new Blob([convertBase64ToUint8Array(options.audio)]);\n\n formData.append('model', this.modelId);\n formData.append(\n 'audio',\n new File([blob], 'audio', { type: options.mediaType }),\n );\n\n const { value: uploadResponse } = await postFormDataToApi({\n url: this.config.url({\n path: '/v2/upload',\n modelId: 'default',\n }),\n headers: combineHeaders(this.config.headers(), options.headers),\n formData,\n failedResponseHandler: gladiaFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler(\n gladiaUploadResponseSchema,\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch,\n });\n\n const { body, warnings } = await this.getArgs(options);\n\n const { value: transcriptionInitResponse } = await postJsonToApi({\n url: this.config.url({\n path: '/v2/pre-recorded',\n modelId: 'default',\n }),\n headers: combineHeaders(this.config.headers(), options.headers),\n body: {\n ...body,\n audio_url: uploadResponse.audio_url,\n },\n failedResponseHandler: gladiaFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler(\n gladiaTranscriptionInitializeResponseSchema,\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch,\n });\n\n // Poll the result URL until the transcription is done or an error occurs\n const resultUrl = transcriptionInitResponse.result_url;\n let transcriptionResult;\n let transcriptionResultHeaders;\n const timeoutMs = 60 * 1000; // 60 seconds timeout\n const startTime = Date.now();\n const pollingInterval = 1000;\n\n while (true) {\n // Check if we've exceeded the timeout\n if (Date.now() - startTime > timeoutMs) {\n throw new AISDKError({\n message: 'Transcription job polling timed out',\n name: 'TranscriptionJobPollingTimedOut',\n cause: transcriptionResult,\n });\n }\n\n const response = await getFromApi({\n url: resultUrl,\n headers: combineHeaders(this.config.headers(), options.headers),\n failedResponseHandler: gladiaFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler(\n gladiaTranscriptionResultResponseSchema,\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch,\n });\n\n transcriptionResult = response.value;\n transcriptionResultHeaders = response.responseHeaders;\n\n if (transcriptionResult.status === 'done') {\n break;\n }\n\n if (transcriptionResult.status === 'error') {\n throw new AISDKError({\n message: 'Transcription job failed',\n name: 'TranscriptionJobFailed',\n cause: transcriptionResult,\n });\n }\n\n // Wait for the configured polling interval before checking again\n await delay(pollingInterval);\n }\n\n if (!transcriptionResult.result) {\n throw new AISDKError({\n message: 'Transcription result is empty',\n name: 'TranscriptionResultEmpty',\n cause: transcriptionResult,\n });\n }\n\n // Process the successful result\n return {\n text: transcriptionResult.result.transcription.full_transcript,\n durationInSeconds: transcriptionResult.result.metadata.audio_duration,\n language: transcriptionResult.result.transcription.languages.at(0),\n segments: transcriptionResult.result.transcription.utterances.map(\n utterance => ({\n text: utterance.text,\n startSecond: utterance.start,\n endSecond: utterance.end,\n }),\n ),\n response: {\n timestamp: currentDate,\n modelId: 'default',\n headers: transcriptionResultHeaders,\n },\n providerMetadata: {\n gladia: transcriptionResult,\n },\n warnings,\n };\n }\n}\n\nconst gladiaUploadResponseSchema = z.object({\n audio_url: z.string(),\n});\n\nconst gladiaTranscriptionInitializeResponseSchema = z.object({\n result_url: z.string(),\n});\n\nconst gladiaTranscriptionResultResponseSchema = z.object({\n status: z.enum(['queued', 'processing', 'done', 'error']),\n result: z\n .object({\n metadata: z.object({\n audio_duration: z.number(),\n }),\n transcription: z.object({\n full_transcript: z.string(),\n languages: z.array(z.string()),\n utterances: z.array(\n z.object({\n start: z.number(),\n end: z.number(),\n text: z.string(),\n }),\n ),\n }),\n })\n .nullish(),\n});\n","import { z } from 'zod';\nimport { createJsonErrorResponseHandler } from '@ai-sdk/provider-utils';\n\nexport const gladiaErrorDataSchema = z.object({\n error: z.object({\n message: z.string(),\n code: z.number(),\n }),\n});\n\nexport type GladiaErrorData = z.infer<typeof gladiaErrorDataSchema>;\n\nexport const gladiaFailedResponseHandler = createJsonErrorResponseHandler({\n errorSchema: gladiaErrorDataSchema,\n errorToMessage: data => data.error.message,\n});\n"],"mappings":"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","names":["z","z","_a","_b","_c"]}
|
|
1
|
+
{"version":3,"sources":["../src/gladia-provider.ts","../src/gladia-transcription-model.ts","../src/gladia-error.ts"],"sourcesContent":["import {\n TranscriptionModelV2,\n ProviderV2,\n NoSuchModelError,\n} from '@ai-sdk/provider';\nimport { FetchFunction, loadApiKey } from '@ai-sdk/provider-utils';\nimport { GladiaTranscriptionModel } from './gladia-transcription-model';\n\nexport interface GladiaProvider extends ProviderV2 {\n (): {\n transcription: GladiaTranscriptionModel;\n };\n\n /**\nCreates a model for transcription.\n */\n transcription(): TranscriptionModelV2;\n}\n\nexport interface GladiaProviderSettings {\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\n/**\nCreate a Gladia provider instance.\n */\nexport function createGladia(\n options: GladiaProviderSettings = {},\n): GladiaProvider {\n const getHeaders = () => ({\n 'x-gladia-key': loadApiKey({\n apiKey: options.apiKey,\n environmentVariableName: 'GLADIA_API_KEY',\n description: 'Gladia',\n }),\n ...options.headers,\n });\n\n const createTranscriptionModel = () =>\n new GladiaTranscriptionModel('default', {\n provider: `gladia.transcription`,\n url: ({ path }) => `https://api.gladia.io${path}`,\n headers: getHeaders,\n fetch: options.fetch,\n });\n\n const provider = function () {\n return {\n transcription: createTranscriptionModel(),\n };\n };\n\n provider.transcription = createTranscriptionModel;\n provider.transcriptionModel = createTranscriptionModel;\n\n // Required ProviderV2 methods that are not supported\n provider.languageModel = () => {\n throw new NoSuchModelError({\n modelId: 'unknown',\n modelType: 'languageModel',\n message: 'Gladia does not provide language models',\n });\n };\n\n provider.textEmbeddingModel = () => {\n throw new NoSuchModelError({\n modelId: 'unknown',\n modelType: 'textEmbeddingModel',\n message: 'Gladia does not provide text embedding models',\n });\n };\n\n provider.imageModel = () => {\n throw new NoSuchModelError({\n modelId: 'unknown',\n modelType: 'imageModel',\n message: 'Gladia does not provide image models',\n });\n };\n\n return provider as GladiaProvider;\n}\n\n/**\nDefault Gladia provider instance.\n */\nexport const gladia = createGladia();\n","import {\n AISDKError,\n TranscriptionModelV2,\n TranscriptionModelV2CallWarning,\n} from '@ai-sdk/provider';\nimport {\n combineHeaders,\n convertBase64ToUint8Array,\n createJsonResponseHandler,\n delay,\n getFromApi,\n parseProviderOptions,\n postFormDataToApi,\n postJsonToApi,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\nimport { GladiaConfig } from './gladia-config';\nimport { gladiaFailedResponseHandler } from './gladia-error';\nimport { GladiaTranscriptionInitiateAPITypes } from './gladia-api-types';\n\n// https://docs.gladia.io/api-reference/v2/pre-recorded/init\nconst gladiaProviderOptionsSchema = z.object({\n /**\n * Optional context prompt to guide the transcription.\n */\n contextPrompt: z.string().nullish(),\n\n /**\n * Custom vocabulary to improve transcription accuracy.\n * Can be a boolean or an array of custom terms.\n */\n customVocabulary: z.union([z.boolean(), z.array(z.any())]).nullish(),\n\n /**\n * Configuration for custom vocabulary.\n */\n customVocabularyConfig: z\n .object({\n /**\n * Array of vocabulary terms or objects with pronunciation details.\n */\n vocabulary: z.array(\n z.union([\n z.string(),\n z.object({\n /**\n * The vocabulary term.\n */\n value: z.string(),\n /**\n * Intensity of the term in recognition (optional).\n */\n intensity: z.number().nullish(),\n /**\n * Alternative pronunciations for the term (optional).\n */\n pronunciations: z.array(z.string()).nullish(),\n /**\n * Language of the term (optional).\n */\n language: z.string().nullish(),\n }),\n ]),\n ),\n /**\n * Default intensity for all vocabulary terms.\n */\n defaultIntensity: z.number().nullish(),\n })\n .nullish(),\n\n /**\n * Whether to automatically detect the language of the audio.\n */\n detectLanguage: z.boolean().nullish(),\n\n /**\n * Whether to enable code switching (multiple languages in the same audio).\n */\n enableCodeSwitching: z.boolean().nullish(),\n\n /**\n * Configuration for code switching.\n */\n codeSwitchingConfig: z\n .object({\n /**\n * Languages to consider for code switching.\n */\n languages: z.array(z.string()).nullish(),\n })\n .nullish(),\n\n /**\n * Specific language for transcription.\n */\n language: z.string().nullish(),\n\n /**\n * Whether to enable callback when transcription is complete.\n */\n callback: z.boolean().nullish(),\n\n /**\n * Configuration for callback.\n */\n callbackConfig: z\n .object({\n /**\n * URL to send the callback to.\n */\n url: z.string(),\n /**\n * HTTP method for the callback.\n */\n method: z.enum(['POST', 'PUT']).nullish(),\n })\n .nullish(),\n\n /**\n * Whether to generate subtitles.\n */\n subtitles: z.boolean().nullish(),\n\n /**\n * Configuration for subtitles generation.\n */\n subtitlesConfig: z\n .object({\n /**\n * Subtitle file formats to generate.\n */\n formats: z.array(z.enum(['srt', 'vtt'])).nullish(),\n /**\n * Minimum duration for subtitle segments.\n */\n minimumDuration: z.number().nullish(),\n /**\n * Maximum duration for subtitle segments.\n */\n maximumDuration: z.number().nullish(),\n /**\n * Maximum characters per row in subtitles.\n */\n maximumCharactersPerRow: z.number().nullish(),\n /**\n * Maximum rows per caption in subtitles.\n */\n maximumRowsPerCaption: z.number().nullish(),\n /**\n * Style of subtitles.\n */\n style: z.enum(['default', 'compliance']).nullish(),\n })\n .nullish(),\n\n /**\n * Whether to enable speaker diarization (speaker identification).\n */\n diarization: z.boolean().nullish(),\n\n /**\n * Configuration for diarization.\n */\n diarizationConfig: z\n .object({\n /**\n * Exact number of speakers to identify.\n */\n numberOfSpeakers: z.number().nullish(),\n /**\n * Minimum number of speakers to identify.\n */\n minSpeakers: z.number().nullish(),\n /**\n * Maximum number of speakers to identify.\n */\n maxSpeakers: z.number().nullish(),\n /**\n * Whether to use enhanced diarization.\n */\n enhanced: z.boolean().nullish(),\n })\n .nullish(),\n\n /**\n * Whether to translate the transcription.\n */\n translation: z.boolean().nullish(),\n\n /**\n * Configuration for translation.\n */\n translationConfig: z\n .object({\n /**\n * Target languages for translation.\n */\n targetLanguages: z.array(z.string()),\n /**\n * Translation model to use.\n */\n model: z.enum(['base', 'enhanced']).nullish(),\n /**\n * Whether to match original utterances in translation.\n */\n matchOriginalUtterances: z.boolean().nullish(),\n })\n .nullish(),\n\n /**\n * Whether to generate a summary of the transcription.\n */\n summarization: z.boolean().nullish(),\n\n /**\n * Configuration for summarization.\n */\n summarizationConfig: z\n .object({\n /**\n * Type of summary to generate.\n */\n type: z.enum(['general', 'bullet_points', 'concise']).nullish(),\n })\n .nullish(),\n\n /**\n * Whether to enable content moderation.\n */\n moderation: z.boolean().nullish(),\n\n /**\n * Whether to enable named entity recognition.\n */\n namedEntityRecognition: z.boolean().nullish(),\n\n /**\n * Whether to enable automatic chapter creation.\n */\n chapterization: z.boolean().nullish(),\n\n /**\n * Whether to ensure consistent naming of entities.\n */\n nameConsistency: z.boolean().nullish(),\n\n /**\n * Whether to enable custom spelling.\n */\n customSpelling: z.boolean().nullish(),\n\n /**\n * Configuration for custom spelling.\n */\n customSpellingConfig: z\n .object({\n /**\n * Dictionary of custom spellings.\n */\n spellingDictionary: z.record(z.string(), z.array(z.string())),\n })\n .nullish(),\n\n /**\n * Whether to extract structured data from the transcription.\n */\n structuredDataExtraction: z.boolean().nullish(),\n\n /**\n * Configuration for structured data extraction.\n */\n structuredDataExtractionConfig: z\n .object({\n /**\n * Classes of data to extract.\n */\n classes: z.array(z.string()),\n })\n .nullish(),\n\n /**\n * Whether to perform sentiment analysis on the transcription.\n */\n sentimentAnalysis: z.boolean().nullish(),\n\n /**\n * Whether to send audio to a language model for processing.\n */\n audioToLlm: z.boolean().nullish(),\n\n /**\n * Configuration for audio to language model processing.\n */\n audioToLlmConfig: z\n .object({\n /**\n * Prompts to send to the language model.\n */\n prompts: z.array(z.string()),\n })\n .nullish(),\n\n /**\n * Custom metadata to include with the transcription.\n */\n customMetadata: z.record(z.string(), z.any()).nullish(),\n\n /**\n * Whether to include sentence-level segmentation.\n */\n sentences: z.boolean().nullish(),\n\n /**\n * Whether to enable display mode.\n */\n displayMode: z.boolean().nullish(),\n\n /**\n * Whether to enhance punctuation in the transcription.\n */\n punctuationEnhanced: z.boolean().nullish(),\n});\n\nexport type GladiaTranscriptionCallOptions = z.infer<\n typeof gladiaProviderOptionsSchema\n>;\n\ninterface GladiaTranscriptionModelConfig extends GladiaConfig {\n _internal?: {\n currentDate?: () => Date;\n };\n}\n\nexport class GladiaTranscriptionModel implements TranscriptionModelV2 {\n readonly specificationVersion = 'v2';\n\n get provider(): string {\n return this.config.provider;\n }\n\n constructor(\n readonly modelId: 'default',\n private readonly config: GladiaTranscriptionModelConfig,\n ) {}\n\n private async getArgs({\n providerOptions,\n }: Parameters<TranscriptionModelV2['doGenerate']>[0]) {\n const warnings: TranscriptionModelV2CallWarning[] = [];\n\n // Parse provider options\n const gladiaOptions = await parseProviderOptions({\n provider: 'gladia',\n providerOptions,\n schema: gladiaProviderOptionsSchema,\n });\n\n const body: Omit<GladiaTranscriptionInitiateAPITypes, 'audio_url'> = {};\n\n // Add provider-specific options\n if (gladiaOptions) {\n body.context_prompt = gladiaOptions.contextPrompt ?? undefined;\n body.custom_vocabulary = gladiaOptions.customVocabulary ?? undefined;\n body.detect_language = gladiaOptions.detectLanguage ?? undefined;\n body.enable_code_switching =\n gladiaOptions.enableCodeSwitching ?? undefined;\n body.language = gladiaOptions.language ?? undefined;\n body.callback = gladiaOptions.callback ?? undefined;\n body.subtitles = gladiaOptions.subtitles ?? undefined;\n body.diarization = gladiaOptions.diarization ?? undefined;\n body.translation = gladiaOptions.translation ?? undefined;\n body.summarization = gladiaOptions.summarization ?? undefined;\n body.moderation = gladiaOptions.moderation ?? undefined;\n body.named_entity_recognition =\n gladiaOptions.namedEntityRecognition ?? undefined;\n body.chapterization = gladiaOptions.chapterization ?? undefined;\n body.name_consistency = gladiaOptions.nameConsistency ?? undefined;\n body.custom_spelling = gladiaOptions.customSpelling ?? undefined;\n body.structured_data_extraction =\n gladiaOptions.structuredDataExtraction ?? undefined;\n body.structured_data_extraction_config =\n gladiaOptions.structuredDataExtractionConfig ?? undefined;\n body.sentiment_analysis = gladiaOptions.sentimentAnalysis ?? undefined;\n body.audio_to_llm = gladiaOptions.audioToLlm ?? undefined;\n body.audio_to_llm_config = gladiaOptions.audioToLlmConfig ?? undefined;\n body.custom_metadata = gladiaOptions.customMetadata ?? undefined;\n body.sentences = gladiaOptions.sentences ?? undefined;\n body.display_mode = gladiaOptions.displayMode ?? undefined;\n body.punctuation_enhanced =\n gladiaOptions.punctuationEnhanced ?? undefined;\n\n if (gladiaOptions.customVocabularyConfig) {\n body.custom_vocabulary_config = {\n vocabulary: gladiaOptions.customVocabularyConfig.vocabulary.map(\n item => {\n if (typeof item === 'string') return item;\n return {\n value: item.value,\n intensity: item.intensity ?? undefined,\n pronunciations: item.pronunciations ?? undefined,\n language: item.language ?? undefined,\n };\n },\n ),\n default_intensity:\n gladiaOptions.customVocabularyConfig.defaultIntensity ?? undefined,\n };\n }\n\n // Handle code switching config\n if (gladiaOptions.codeSwitchingConfig) {\n body.code_switching_config = {\n languages: gladiaOptions.codeSwitchingConfig.languages ?? undefined,\n };\n }\n\n // Handle callback config\n if (gladiaOptions.callbackConfig) {\n body.callback_config = {\n url: gladiaOptions.callbackConfig.url,\n method: gladiaOptions.callbackConfig.method ?? undefined,\n };\n }\n\n // Handle subtitles config\n if (gladiaOptions.subtitlesConfig) {\n body.subtitles_config = {\n formats: gladiaOptions.subtitlesConfig.formats ?? undefined,\n minimum_duration:\n gladiaOptions.subtitlesConfig.minimumDuration ?? undefined,\n maximum_duration:\n gladiaOptions.subtitlesConfig.maximumDuration ?? undefined,\n maximum_characters_per_row:\n gladiaOptions.subtitlesConfig.maximumCharactersPerRow ?? undefined,\n maximum_rows_per_caption:\n gladiaOptions.subtitlesConfig.maximumRowsPerCaption ?? undefined,\n style: gladiaOptions.subtitlesConfig.style ?? undefined,\n };\n }\n\n // Handle diarization config\n if (gladiaOptions.diarizationConfig) {\n body.diarization_config = {\n number_of_speakers:\n gladiaOptions.diarizationConfig.numberOfSpeakers ?? undefined,\n min_speakers:\n gladiaOptions.diarizationConfig.minSpeakers ?? undefined,\n max_speakers:\n gladiaOptions.diarizationConfig.maxSpeakers ?? undefined,\n enhanced: gladiaOptions.diarizationConfig.enhanced ?? undefined,\n };\n }\n\n // Handle translation config\n if (gladiaOptions.translationConfig) {\n body.translation_config = {\n target_languages: gladiaOptions.translationConfig.targetLanguages,\n model: gladiaOptions.translationConfig.model ?? undefined,\n match_original_utterances:\n gladiaOptions.translationConfig.matchOriginalUtterances ??\n undefined,\n };\n }\n\n // Handle summarization config\n if (gladiaOptions.summarizationConfig) {\n body.summarization_config = {\n type: gladiaOptions.summarizationConfig.type ?? undefined,\n };\n }\n\n // Handle custom spelling config\n if (gladiaOptions.customSpellingConfig) {\n body.custom_spelling_config = {\n spelling_dictionary:\n gladiaOptions.customSpellingConfig.spellingDictionary,\n };\n }\n }\n\n return {\n body,\n warnings,\n };\n }\n\n async doGenerate(\n options: Parameters<TranscriptionModelV2['doGenerate']>[0],\n ): Promise<Awaited<ReturnType<TranscriptionModelV2['doGenerate']>>> {\n const currentDate = this.config._internal?.currentDate?.() ?? new Date();\n\n // Create form data with base fields\n const formData = new FormData();\n const blob =\n options.audio instanceof Uint8Array\n ? new Blob([options.audio])\n : new Blob([convertBase64ToUint8Array(options.audio)]);\n\n formData.append('model', this.modelId);\n formData.append(\n 'audio',\n new File([blob], 'audio', { type: options.mediaType }),\n );\n\n const { value: uploadResponse } = await postFormDataToApi({\n url: this.config.url({\n path: '/v2/upload',\n modelId: 'default',\n }),\n headers: combineHeaders(this.config.headers(), options.headers),\n formData,\n failedResponseHandler: gladiaFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler(\n gladiaUploadResponseSchema,\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch,\n });\n\n const { body, warnings } = await this.getArgs(options);\n\n const { value: transcriptionInitResponse } = await postJsonToApi({\n url: this.config.url({\n path: '/v2/pre-recorded',\n modelId: 'default',\n }),\n headers: combineHeaders(this.config.headers(), options.headers),\n body: {\n ...body,\n audio_url: uploadResponse.audio_url,\n },\n failedResponseHandler: gladiaFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler(\n gladiaTranscriptionInitializeResponseSchema,\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch,\n });\n\n // Poll the result URL until the transcription is done or an error occurs\n const resultUrl = transcriptionInitResponse.result_url;\n let transcriptionResult;\n let transcriptionResultHeaders;\n const timeoutMs = 60 * 1000; // 60 seconds timeout\n const startTime = Date.now();\n const pollingInterval = 1000;\n\n while (true) {\n // Check if we've exceeded the timeout\n if (Date.now() - startTime > timeoutMs) {\n throw new AISDKError({\n message: 'Transcription job polling timed out',\n name: 'TranscriptionJobPollingTimedOut',\n cause: transcriptionResult,\n });\n }\n\n const response = await getFromApi({\n url: resultUrl,\n headers: combineHeaders(this.config.headers(), options.headers),\n failedResponseHandler: gladiaFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler(\n gladiaTranscriptionResultResponseSchema,\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch,\n });\n\n transcriptionResult = response.value;\n transcriptionResultHeaders = response.responseHeaders;\n\n if (transcriptionResult.status === 'done') {\n break;\n }\n\n if (transcriptionResult.status === 'error') {\n throw new AISDKError({\n message: 'Transcription job failed',\n name: 'TranscriptionJobFailed',\n cause: transcriptionResult,\n });\n }\n\n // Wait for the configured polling interval before checking again\n await delay(pollingInterval);\n }\n\n if (!transcriptionResult.result) {\n throw new AISDKError({\n message: 'Transcription result is empty',\n name: 'TranscriptionResultEmpty',\n cause: transcriptionResult,\n });\n }\n\n // Process the successful result\n return {\n text: transcriptionResult.result.transcription.full_transcript,\n durationInSeconds: transcriptionResult.result.metadata.audio_duration,\n language: transcriptionResult.result.transcription.languages.at(0),\n segments: transcriptionResult.result.transcription.utterances.map(\n utterance => ({\n text: utterance.text,\n startSecond: utterance.start,\n endSecond: utterance.end,\n }),\n ),\n response: {\n timestamp: currentDate,\n modelId: 'default',\n headers: transcriptionResultHeaders,\n },\n providerMetadata: {\n gladia: transcriptionResult,\n },\n warnings,\n };\n }\n}\n\nconst gladiaUploadResponseSchema = z.object({\n audio_url: z.string(),\n});\n\nconst gladiaTranscriptionInitializeResponseSchema = z.object({\n result_url: z.string(),\n});\n\nconst gladiaTranscriptionResultResponseSchema = z.object({\n status: z.enum(['queued', 'processing', 'done', 'error']),\n result: z\n .object({\n metadata: z.object({\n audio_duration: z.number(),\n }),\n transcription: z.object({\n full_transcript: z.string(),\n languages: z.array(z.string()),\n utterances: z.array(\n z.object({\n start: z.number(),\n end: z.number(),\n text: z.string(),\n }),\n ),\n }),\n })\n .nullish(),\n});\n","import { z } from 'zod/v4';\nimport { createJsonErrorResponseHandler } from '@ai-sdk/provider-utils';\n\nexport const gladiaErrorDataSchema = z.object({\n error: z.object({\n message: z.string(),\n code: z.number(),\n }),\n});\n\nexport type GladiaErrorData = z.infer<typeof gladiaErrorDataSchema>;\n\nexport const gladiaFailedResponseHandler = createJsonErrorResponseHandler({\n errorSchema: gladiaErrorDataSchema,\n errorToMessage: data => data.error.message,\n});\n"],"mappings":"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","names":["z","z","_a","_b","_c"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ai-sdk/gladia",
|
|
3
|
-
"version": "1.0.0
|
|
3
|
+
"version": "1.0.0",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -19,18 +19,18 @@
|
|
|
19
19
|
}
|
|
20
20
|
},
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@ai-sdk/provider-utils": "3.0.0
|
|
23
|
-
"@ai-sdk/provider": "2.0.0
|
|
22
|
+
"@ai-sdk/provider-utils": "3.0.0",
|
|
23
|
+
"@ai-sdk/provider": "2.0.0"
|
|
24
24
|
},
|
|
25
25
|
"devDependencies": {
|
|
26
26
|
"@types/node": "20.17.24",
|
|
27
27
|
"tsup": "^8",
|
|
28
28
|
"typescript": "5.6.3",
|
|
29
|
-
"zod": "3.
|
|
29
|
+
"zod": "3.25.76",
|
|
30
30
|
"@vercel/ai-tsconfig": "0.0.0"
|
|
31
31
|
},
|
|
32
32
|
"peerDependencies": {
|
|
33
|
-
"zod": "^3.
|
|
33
|
+
"zod": "^3.25.76 || ^4"
|
|
34
34
|
},
|
|
35
35
|
"engines": {
|
|
36
36
|
"node": ">=18"
|