@ai-sdk/gladia 2.0.18 → 2.0.19
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 +6 -0
- package/dist/index.d.mts +90 -1
- package/dist/index.d.ts +90 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +3 -3
- package/dist/index.mjs.map +1 -1
- package/docs/120-gladia.mdx +7 -2
- package/package.json +1 -1
- package/src/gladia-transcription-model.ts +4 -4
- package/src/index.ts +1 -0
package/CHANGELOG.md
CHANGED
package/dist/index.d.mts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { TranscriptionModelV3, ProviderV3 } from '@ai-sdk/provider';
|
|
2
2
|
import { FetchFunction } from '@ai-sdk/provider-utils';
|
|
3
|
+
import { z } from 'zod/v4';
|
|
3
4
|
|
|
4
5
|
type GladiaConfig = {
|
|
5
6
|
provider: string;
|
|
@@ -12,6 +13,94 @@ type GladiaConfig = {
|
|
|
12
13
|
generateId?: () => string;
|
|
13
14
|
};
|
|
14
15
|
|
|
16
|
+
declare const gladiaTranscriptionModelOptionsSchema: z.ZodObject<{
|
|
17
|
+
contextPrompt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
18
|
+
customVocabulary: z.ZodOptional<z.ZodNullable<z.ZodUnion<readonly [z.ZodBoolean, z.ZodArray<z.ZodAny>]>>>;
|
|
19
|
+
customVocabularyConfig: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
20
|
+
vocabulary: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
|
|
21
|
+
value: z.ZodString;
|
|
22
|
+
intensity: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
23
|
+
pronunciations: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString>>>;
|
|
24
|
+
language: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
25
|
+
}, z.core.$strip>]>>;
|
|
26
|
+
defaultIntensity: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
27
|
+
}, z.core.$strip>>>;
|
|
28
|
+
detectLanguage: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
|
|
29
|
+
enableCodeSwitching: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
|
|
30
|
+
codeSwitchingConfig: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
31
|
+
languages: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString>>>;
|
|
32
|
+
}, z.core.$strip>>>;
|
|
33
|
+
language: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
34
|
+
callback: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
|
|
35
|
+
callbackConfig: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
36
|
+
url: z.ZodString;
|
|
37
|
+
method: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
|
|
38
|
+
POST: "POST";
|
|
39
|
+
PUT: "PUT";
|
|
40
|
+
}>>>;
|
|
41
|
+
}, z.core.$strip>>>;
|
|
42
|
+
subtitles: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
|
|
43
|
+
subtitlesConfig: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
44
|
+
formats: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodEnum<{
|
|
45
|
+
srt: "srt";
|
|
46
|
+
vtt: "vtt";
|
|
47
|
+
}>>>>;
|
|
48
|
+
minimumDuration: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
49
|
+
maximumDuration: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
50
|
+
maximumCharactersPerRow: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
51
|
+
maximumRowsPerCaption: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
52
|
+
style: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
|
|
53
|
+
default: "default";
|
|
54
|
+
compliance: "compliance";
|
|
55
|
+
}>>>;
|
|
56
|
+
}, z.core.$strip>>>;
|
|
57
|
+
diarization: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
|
|
58
|
+
diarizationConfig: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
59
|
+
numberOfSpeakers: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
60
|
+
minSpeakers: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
61
|
+
maxSpeakers: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
62
|
+
enhanced: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
|
|
63
|
+
}, z.core.$strip>>>;
|
|
64
|
+
translation: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
|
|
65
|
+
translationConfig: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
66
|
+
targetLanguages: z.ZodArray<z.ZodString>;
|
|
67
|
+
model: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
|
|
68
|
+
base: "base";
|
|
69
|
+
enhanced: "enhanced";
|
|
70
|
+
}>>>;
|
|
71
|
+
matchOriginalUtterances: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
|
|
72
|
+
}, z.core.$strip>>>;
|
|
73
|
+
summarization: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
|
|
74
|
+
summarizationConfig: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
75
|
+
type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
|
|
76
|
+
general: "general";
|
|
77
|
+
bullet_points: "bullet_points";
|
|
78
|
+
concise: "concise";
|
|
79
|
+
}>>>;
|
|
80
|
+
}, z.core.$strip>>>;
|
|
81
|
+
moderation: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
|
|
82
|
+
namedEntityRecognition: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
|
|
83
|
+
chapterization: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
|
|
84
|
+
nameConsistency: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
|
|
85
|
+
customSpelling: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
|
|
86
|
+
customSpellingConfig: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
87
|
+
spellingDictionary: z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString>>;
|
|
88
|
+
}, z.core.$strip>>>;
|
|
89
|
+
structuredDataExtraction: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
|
|
90
|
+
structuredDataExtractionConfig: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
91
|
+
classes: z.ZodArray<z.ZodString>;
|
|
92
|
+
}, z.core.$strip>>>;
|
|
93
|
+
sentimentAnalysis: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
|
|
94
|
+
audioToLlm: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
|
|
95
|
+
audioToLlmConfig: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
96
|
+
prompts: z.ZodArray<z.ZodString>;
|
|
97
|
+
}, z.core.$strip>>>;
|
|
98
|
+
customMetadata: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodAny>>>;
|
|
99
|
+
sentences: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
|
|
100
|
+
displayMode: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
|
|
101
|
+
punctuationEnhanced: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
|
|
102
|
+
}, z.core.$strip>;
|
|
103
|
+
type GladiaTranscriptionModelOptions = z.infer<typeof gladiaTranscriptionModelOptionsSchema>;
|
|
15
104
|
interface GladiaTranscriptionModelConfig extends GladiaConfig {
|
|
16
105
|
_internal?: {
|
|
17
106
|
currentDate?: () => Date;
|
|
@@ -66,4 +155,4 @@ declare const gladia: GladiaProvider;
|
|
|
66
155
|
|
|
67
156
|
declare const VERSION: string;
|
|
68
157
|
|
|
69
|
-
export { type GladiaProvider, type GladiaProviderSettings, VERSION, createGladia, gladia };
|
|
158
|
+
export { type GladiaProvider, type GladiaProviderSettings, type GladiaTranscriptionModelOptions, VERSION, createGladia, gladia };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { TranscriptionModelV3, ProviderV3 } from '@ai-sdk/provider';
|
|
2
2
|
import { FetchFunction } from '@ai-sdk/provider-utils';
|
|
3
|
+
import { z } from 'zod/v4';
|
|
3
4
|
|
|
4
5
|
type GladiaConfig = {
|
|
5
6
|
provider: string;
|
|
@@ -12,6 +13,94 @@ type GladiaConfig = {
|
|
|
12
13
|
generateId?: () => string;
|
|
13
14
|
};
|
|
14
15
|
|
|
16
|
+
declare const gladiaTranscriptionModelOptionsSchema: z.ZodObject<{
|
|
17
|
+
contextPrompt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
18
|
+
customVocabulary: z.ZodOptional<z.ZodNullable<z.ZodUnion<readonly [z.ZodBoolean, z.ZodArray<z.ZodAny>]>>>;
|
|
19
|
+
customVocabularyConfig: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
20
|
+
vocabulary: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
|
|
21
|
+
value: z.ZodString;
|
|
22
|
+
intensity: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
23
|
+
pronunciations: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString>>>;
|
|
24
|
+
language: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
25
|
+
}, z.core.$strip>]>>;
|
|
26
|
+
defaultIntensity: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
27
|
+
}, z.core.$strip>>>;
|
|
28
|
+
detectLanguage: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
|
|
29
|
+
enableCodeSwitching: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
|
|
30
|
+
codeSwitchingConfig: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
31
|
+
languages: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString>>>;
|
|
32
|
+
}, z.core.$strip>>>;
|
|
33
|
+
language: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
34
|
+
callback: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
|
|
35
|
+
callbackConfig: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
36
|
+
url: z.ZodString;
|
|
37
|
+
method: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
|
|
38
|
+
POST: "POST";
|
|
39
|
+
PUT: "PUT";
|
|
40
|
+
}>>>;
|
|
41
|
+
}, z.core.$strip>>>;
|
|
42
|
+
subtitles: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
|
|
43
|
+
subtitlesConfig: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
44
|
+
formats: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodEnum<{
|
|
45
|
+
srt: "srt";
|
|
46
|
+
vtt: "vtt";
|
|
47
|
+
}>>>>;
|
|
48
|
+
minimumDuration: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
49
|
+
maximumDuration: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
50
|
+
maximumCharactersPerRow: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
51
|
+
maximumRowsPerCaption: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
52
|
+
style: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
|
|
53
|
+
default: "default";
|
|
54
|
+
compliance: "compliance";
|
|
55
|
+
}>>>;
|
|
56
|
+
}, z.core.$strip>>>;
|
|
57
|
+
diarization: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
|
|
58
|
+
diarizationConfig: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
59
|
+
numberOfSpeakers: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
60
|
+
minSpeakers: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
61
|
+
maxSpeakers: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
62
|
+
enhanced: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
|
|
63
|
+
}, z.core.$strip>>>;
|
|
64
|
+
translation: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
|
|
65
|
+
translationConfig: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
66
|
+
targetLanguages: z.ZodArray<z.ZodString>;
|
|
67
|
+
model: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
|
|
68
|
+
base: "base";
|
|
69
|
+
enhanced: "enhanced";
|
|
70
|
+
}>>>;
|
|
71
|
+
matchOriginalUtterances: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
|
|
72
|
+
}, z.core.$strip>>>;
|
|
73
|
+
summarization: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
|
|
74
|
+
summarizationConfig: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
75
|
+
type: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
|
|
76
|
+
general: "general";
|
|
77
|
+
bullet_points: "bullet_points";
|
|
78
|
+
concise: "concise";
|
|
79
|
+
}>>>;
|
|
80
|
+
}, z.core.$strip>>>;
|
|
81
|
+
moderation: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
|
|
82
|
+
namedEntityRecognition: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
|
|
83
|
+
chapterization: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
|
|
84
|
+
nameConsistency: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
|
|
85
|
+
customSpelling: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
|
|
86
|
+
customSpellingConfig: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
87
|
+
spellingDictionary: z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString>>;
|
|
88
|
+
}, z.core.$strip>>>;
|
|
89
|
+
structuredDataExtraction: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
|
|
90
|
+
structuredDataExtractionConfig: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
91
|
+
classes: z.ZodArray<z.ZodString>;
|
|
92
|
+
}, z.core.$strip>>>;
|
|
93
|
+
sentimentAnalysis: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
|
|
94
|
+
audioToLlm: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
|
|
95
|
+
audioToLlmConfig: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
96
|
+
prompts: z.ZodArray<z.ZodString>;
|
|
97
|
+
}, z.core.$strip>>>;
|
|
98
|
+
customMetadata: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodAny>>>;
|
|
99
|
+
sentences: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
|
|
100
|
+
displayMode: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
|
|
101
|
+
punctuationEnhanced: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
|
|
102
|
+
}, z.core.$strip>;
|
|
103
|
+
type GladiaTranscriptionModelOptions = z.infer<typeof gladiaTranscriptionModelOptionsSchema>;
|
|
15
104
|
interface GladiaTranscriptionModelConfig extends GladiaConfig {
|
|
16
105
|
_internal?: {
|
|
17
106
|
currentDate?: () => Date;
|
|
@@ -66,4 +155,4 @@ declare const gladia: GladiaProvider;
|
|
|
66
155
|
|
|
67
156
|
declare const VERSION: string;
|
|
68
157
|
|
|
69
|
-
export { type GladiaProvider, type GladiaProviderSettings, VERSION, createGladia, gladia };
|
|
158
|
+
export { type GladiaProvider, type GladiaProviderSettings, type GladiaTranscriptionModelOptions, VERSION, createGladia, gladia };
|
package/dist/index.js
CHANGED
|
@@ -50,7 +50,7 @@ var gladiaFailedResponseHandler = (0, import_provider_utils.createJsonErrorRespo
|
|
|
50
50
|
});
|
|
51
51
|
|
|
52
52
|
// src/gladia-transcription-model.ts
|
|
53
|
-
var
|
|
53
|
+
var gladiaTranscriptionModelOptionsSchema = import_v42.z.object({
|
|
54
54
|
/**
|
|
55
55
|
* Optional context prompt to guide the transcription.
|
|
56
56
|
*/
|
|
@@ -318,7 +318,7 @@ var GladiaTranscriptionModel = class {
|
|
|
318
318
|
const gladiaOptions = await (0, import_provider_utils2.parseProviderOptions)({
|
|
319
319
|
provider: "gladia",
|
|
320
320
|
providerOptions,
|
|
321
|
-
schema:
|
|
321
|
+
schema: gladiaTranscriptionModelOptionsSchema
|
|
322
322
|
});
|
|
323
323
|
const body = {};
|
|
324
324
|
if (gladiaOptions) {
|
|
@@ -553,7 +553,7 @@ var gladiaTranscriptionResultResponseSchema = import_v42.z.object({
|
|
|
553
553
|
});
|
|
554
554
|
|
|
555
555
|
// src/version.ts
|
|
556
|
-
var VERSION = true ? "2.0.
|
|
556
|
+
var VERSION = true ? "2.0.19" : "0.0.0-test";
|
|
557
557
|
|
|
558
558
|
// src/gladia-provider.ts
|
|
559
559
|
function createGladia(options = {}) {
|
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","../src/version.ts"],"sourcesContent":["export { createGladia, gladia } from './gladia-provider';\nexport type { GladiaProvider, GladiaProviderSettings } from './gladia-provider';\nexport { VERSION } from './version';\n","import {\n TranscriptionModelV3,\n ProviderV3,\n NoSuchModelError,\n} from '@ai-sdk/provider';\nimport {\n FetchFunction,\n loadApiKey,\n withUserAgentSuffix,\n} from '@ai-sdk/provider-utils';\nimport { GladiaTranscriptionModel } from './gladia-transcription-model';\nimport { VERSION } from './version';\n\nexport interface GladiaProvider extends ProviderV3 {\n (): {\n transcription: GladiaTranscriptionModel;\n };\n\n /**\n * Creates a model for transcription.\n */\n transcription(): TranscriptionModelV3;\n\n /**\n * @deprecated Use `embeddingModel` instead.\n */\n textEmbeddingModel(modelId: string): never;\n}\n\nexport interface GladiaProviderSettings {\n /**\n * API key for authenticating requests.\n */\n apiKey?: string;\n\n /**\n * Custom headers to include in the requests.\n */\n headers?: Record<string, string>;\n\n /**\n * Custom fetch implementation. You can use it as a middleware to intercept requests,\n * or to provide a custom fetch implementation for e.g. testing.\n */\n fetch?: FetchFunction;\n}\n\n/**\n * Create a Gladia provider instance.\n */\nexport function createGladia(\n options: GladiaProviderSettings = {},\n): GladiaProvider {\n const getHeaders = () =>\n withUserAgentSuffix(\n {\n 'x-gladia-key': loadApiKey({\n apiKey: options.apiKey,\n environmentVariableName: 'GLADIA_API_KEY',\n description: 'Gladia',\n }),\n ...options.headers,\n },\n `ai-sdk/gladia/${VERSION}`,\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.specificationVersion = 'v3' as const;\n provider.transcription = createTranscriptionModel;\n provider.transcriptionModel = createTranscriptionModel;\n\n // Required ProviderV3 methods that are not supported\n provider.languageModel = (modelId: string) => {\n throw new NoSuchModelError({\n modelId,\n modelType: 'languageModel',\n message: 'Gladia does not provide language models',\n });\n };\n\n provider.embeddingModel = (modelId: string) => {\n throw new NoSuchModelError({\n modelId,\n modelType: 'embeddingModel',\n message: 'Gladia does not provide embedding models',\n });\n };\n provider.textEmbeddingModel = provider.embeddingModel;\n\n provider.imageModel = (modelId: string) => {\n throw new NoSuchModelError({\n modelId,\n modelType: 'imageModel',\n message: 'Gladia does not provide image models',\n });\n };\n\n return provider as GladiaProvider;\n}\n\n/**\n * Default Gladia provider instance.\n */\nexport const gladia = createGladia();\n","import {\n AISDKError,\n TranscriptionModelV3,\n SharedV3Warning,\n} from '@ai-sdk/provider';\nimport {\n combineHeaders,\n convertBase64ToUint8Array,\n createJsonResponseHandler,\n mediaTypeToExtension,\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 TranscriptionModelV3 {\n readonly specificationVersion = 'v3';\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<TranscriptionModelV3['doGenerate']>[0]) {\n const warnings: SharedV3Warning[] = [];\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<TranscriptionModelV3['doGenerate']>[0],\n ): Promise<Awaited<ReturnType<TranscriptionModelV3['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 const fileExtension = mediaTypeToExtension(options.mediaType);\n formData.append(\n 'audio',\n new File([blob], 'audio', { type: options.mediaType }),\n `audio.${fileExtension}`,\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","// Version string of this package injected at build time.\ndeclare const __PACKAGE_VERSION__: string | undefined;\nexport const VERSION: string =\n typeof __PACKAGE_VERSION__ !== 'undefined'\n ? __PACKAGE_VERSION__\n : '0.0.0-test';\n"],"mappings":"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","names":["import_provider","import_provider_utils","import_provider_utils","import_v4","_a","_b","_c"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/gladia-provider.ts","../src/gladia-transcription-model.ts","../src/gladia-error.ts","../src/version.ts"],"sourcesContent":["export { createGladia, gladia } from './gladia-provider';\nexport type { GladiaProvider, GladiaProviderSettings } from './gladia-provider';\nexport type { GladiaTranscriptionModelOptions } from './gladia-transcription-model';\nexport { VERSION } from './version';\n","import {\n TranscriptionModelV3,\n ProviderV3,\n NoSuchModelError,\n} from '@ai-sdk/provider';\nimport {\n FetchFunction,\n loadApiKey,\n withUserAgentSuffix,\n} from '@ai-sdk/provider-utils';\nimport { GladiaTranscriptionModel } from './gladia-transcription-model';\nimport { VERSION } from './version';\n\nexport interface GladiaProvider extends ProviderV3 {\n (): {\n transcription: GladiaTranscriptionModel;\n };\n\n /**\n * Creates a model for transcription.\n */\n transcription(): TranscriptionModelV3;\n\n /**\n * @deprecated Use `embeddingModel` instead.\n */\n textEmbeddingModel(modelId: string): never;\n}\n\nexport interface GladiaProviderSettings {\n /**\n * API key for authenticating requests.\n */\n apiKey?: string;\n\n /**\n * Custom headers to include in the requests.\n */\n headers?: Record<string, string>;\n\n /**\n * Custom fetch implementation. You can use it as a middleware to intercept requests,\n * or to provide a custom fetch implementation for e.g. testing.\n */\n fetch?: FetchFunction;\n}\n\n/**\n * Create a Gladia provider instance.\n */\nexport function createGladia(\n options: GladiaProviderSettings = {},\n): GladiaProvider {\n const getHeaders = () =>\n withUserAgentSuffix(\n {\n 'x-gladia-key': loadApiKey({\n apiKey: options.apiKey,\n environmentVariableName: 'GLADIA_API_KEY',\n description: 'Gladia',\n }),\n ...options.headers,\n },\n `ai-sdk/gladia/${VERSION}`,\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.specificationVersion = 'v3' as const;\n provider.transcription = createTranscriptionModel;\n provider.transcriptionModel = createTranscriptionModel;\n\n // Required ProviderV3 methods that are not supported\n provider.languageModel = (modelId: string) => {\n throw new NoSuchModelError({\n modelId,\n modelType: 'languageModel',\n message: 'Gladia does not provide language models',\n });\n };\n\n provider.embeddingModel = (modelId: string) => {\n throw new NoSuchModelError({\n modelId,\n modelType: 'embeddingModel',\n message: 'Gladia does not provide embedding models',\n });\n };\n provider.textEmbeddingModel = provider.embeddingModel;\n\n provider.imageModel = (modelId: string) => {\n throw new NoSuchModelError({\n modelId,\n modelType: 'imageModel',\n message: 'Gladia does not provide image models',\n });\n };\n\n return provider as GladiaProvider;\n}\n\n/**\n * Default Gladia provider instance.\n */\nexport const gladia = createGladia();\n","import {\n AISDKError,\n TranscriptionModelV3,\n SharedV3Warning,\n} from '@ai-sdk/provider';\nimport {\n combineHeaders,\n convertBase64ToUint8Array,\n createJsonResponseHandler,\n mediaTypeToExtension,\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 gladiaTranscriptionModelOptionsSchema = 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 GladiaTranscriptionModelOptions = z.infer<\n typeof gladiaTranscriptionModelOptionsSchema\n>;\n\ninterface GladiaTranscriptionModelConfig extends GladiaConfig {\n _internal?: {\n currentDate?: () => Date;\n };\n}\n\nexport class GladiaTranscriptionModel implements TranscriptionModelV3 {\n readonly specificationVersion = 'v3';\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<TranscriptionModelV3['doGenerate']>[0]) {\n const warnings: SharedV3Warning[] = [];\n\n // Parse provider options\n const gladiaOptions = await parseProviderOptions({\n provider: 'gladia',\n providerOptions,\n schema: gladiaTranscriptionModelOptionsSchema,\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<TranscriptionModelV3['doGenerate']>[0],\n ): Promise<Awaited<ReturnType<TranscriptionModelV3['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 const fileExtension = mediaTypeToExtension(options.mediaType);\n formData.append(\n 'audio',\n new File([blob], 'audio', { type: options.mediaType }),\n `audio.${fileExtension}`,\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","// Version string of this package injected at build time.\ndeclare const __PACKAGE_VERSION__: string | undefined;\nexport const VERSION: string =\n typeof __PACKAGE_VERSION__ !== 'undefined'\n ? __PACKAGE_VERSION__\n : '0.0.0-test';\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
|
@@ -39,7 +39,7 @@ var gladiaFailedResponseHandler = createJsonErrorResponseHandler({
|
|
|
39
39
|
});
|
|
40
40
|
|
|
41
41
|
// src/gladia-transcription-model.ts
|
|
42
|
-
var
|
|
42
|
+
var gladiaTranscriptionModelOptionsSchema = z2.object({
|
|
43
43
|
/**
|
|
44
44
|
* Optional context prompt to guide the transcription.
|
|
45
45
|
*/
|
|
@@ -307,7 +307,7 @@ var GladiaTranscriptionModel = class {
|
|
|
307
307
|
const gladiaOptions = await parseProviderOptions({
|
|
308
308
|
provider: "gladia",
|
|
309
309
|
providerOptions,
|
|
310
|
-
schema:
|
|
310
|
+
schema: gladiaTranscriptionModelOptionsSchema
|
|
311
311
|
});
|
|
312
312
|
const body = {};
|
|
313
313
|
if (gladiaOptions) {
|
|
@@ -542,7 +542,7 @@ var gladiaTranscriptionResultResponseSchema = z2.object({
|
|
|
542
542
|
});
|
|
543
543
|
|
|
544
544
|
// src/version.ts
|
|
545
|
-
var VERSION = true ? "2.0.
|
|
545
|
+
var VERSION = true ? "2.0.19" : "0.0.0-test";
|
|
546
546
|
|
|
547
547
|
// src/gladia-provider.ts
|
|
548
548
|
function createGladia(options = {}) {
|
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","../src/version.ts"],"sourcesContent":["import {\n TranscriptionModelV3,\n ProviderV3,\n NoSuchModelError,\n} from '@ai-sdk/provider';\nimport {\n FetchFunction,\n loadApiKey,\n withUserAgentSuffix,\n} from '@ai-sdk/provider-utils';\nimport { GladiaTranscriptionModel } from './gladia-transcription-model';\nimport { VERSION } from './version';\n\nexport interface GladiaProvider extends ProviderV3 {\n (): {\n transcription: GladiaTranscriptionModel;\n };\n\n /**\n * Creates a model for transcription.\n */\n transcription(): TranscriptionModelV3;\n\n /**\n * @deprecated Use `embeddingModel` instead.\n */\n textEmbeddingModel(modelId: string): never;\n}\n\nexport interface GladiaProviderSettings {\n /**\n * API key for authenticating requests.\n */\n apiKey?: string;\n\n /**\n * Custom headers to include in the requests.\n */\n headers?: Record<string, string>;\n\n /**\n * Custom fetch implementation. You can use it as a middleware to intercept requests,\n * or to provide a custom fetch implementation for e.g. testing.\n */\n fetch?: FetchFunction;\n}\n\n/**\n * Create a Gladia provider instance.\n */\nexport function createGladia(\n options: GladiaProviderSettings = {},\n): GladiaProvider {\n const getHeaders = () =>\n withUserAgentSuffix(\n {\n 'x-gladia-key': loadApiKey({\n apiKey: options.apiKey,\n environmentVariableName: 'GLADIA_API_KEY',\n description: 'Gladia',\n }),\n ...options.headers,\n },\n `ai-sdk/gladia/${VERSION}`,\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.specificationVersion = 'v3' as const;\n provider.transcription = createTranscriptionModel;\n provider.transcriptionModel = createTranscriptionModel;\n\n // Required ProviderV3 methods that are not supported\n provider.languageModel = (modelId: string) => {\n throw new NoSuchModelError({\n modelId,\n modelType: 'languageModel',\n message: 'Gladia does not provide language models',\n });\n };\n\n provider.embeddingModel = (modelId: string) => {\n throw new NoSuchModelError({\n modelId,\n modelType: 'embeddingModel',\n message: 'Gladia does not provide embedding models',\n });\n };\n provider.textEmbeddingModel = provider.embeddingModel;\n\n provider.imageModel = (modelId: string) => {\n throw new NoSuchModelError({\n modelId,\n modelType: 'imageModel',\n message: 'Gladia does not provide image models',\n });\n };\n\n return provider as GladiaProvider;\n}\n\n/**\n * Default Gladia provider instance.\n */\nexport const gladia = createGladia();\n","import {\n AISDKError,\n TranscriptionModelV3,\n SharedV3Warning,\n} from '@ai-sdk/provider';\nimport {\n combineHeaders,\n convertBase64ToUint8Array,\n createJsonResponseHandler,\n mediaTypeToExtension,\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 TranscriptionModelV3 {\n readonly specificationVersion = 'v3';\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<TranscriptionModelV3['doGenerate']>[0]) {\n const warnings: SharedV3Warning[] = [];\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<TranscriptionModelV3['doGenerate']>[0],\n ): Promise<Awaited<ReturnType<TranscriptionModelV3['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 const fileExtension = mediaTypeToExtension(options.mediaType);\n formData.append(\n 'audio',\n new File([blob], 'audio', { type: options.mediaType }),\n `audio.${fileExtension}`,\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","// Version string of this package injected at build time.\ndeclare const __PACKAGE_VERSION__: string | undefined;\nexport const VERSION: string =\n typeof __PACKAGE_VERSION__ !== 'undefined'\n ? __PACKAGE_VERSION__\n : '0.0.0-test';\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","../src/version.ts"],"sourcesContent":["import {\n TranscriptionModelV3,\n ProviderV3,\n NoSuchModelError,\n} from '@ai-sdk/provider';\nimport {\n FetchFunction,\n loadApiKey,\n withUserAgentSuffix,\n} from '@ai-sdk/provider-utils';\nimport { GladiaTranscriptionModel } from './gladia-transcription-model';\nimport { VERSION } from './version';\n\nexport interface GladiaProvider extends ProviderV3 {\n (): {\n transcription: GladiaTranscriptionModel;\n };\n\n /**\n * Creates a model for transcription.\n */\n transcription(): TranscriptionModelV3;\n\n /**\n * @deprecated Use `embeddingModel` instead.\n */\n textEmbeddingModel(modelId: string): never;\n}\n\nexport interface GladiaProviderSettings {\n /**\n * API key for authenticating requests.\n */\n apiKey?: string;\n\n /**\n * Custom headers to include in the requests.\n */\n headers?: Record<string, string>;\n\n /**\n * Custom fetch implementation. You can use it as a middleware to intercept requests,\n * or to provide a custom fetch implementation for e.g. testing.\n */\n fetch?: FetchFunction;\n}\n\n/**\n * Create a Gladia provider instance.\n */\nexport function createGladia(\n options: GladiaProviderSettings = {},\n): GladiaProvider {\n const getHeaders = () =>\n withUserAgentSuffix(\n {\n 'x-gladia-key': loadApiKey({\n apiKey: options.apiKey,\n environmentVariableName: 'GLADIA_API_KEY',\n description: 'Gladia',\n }),\n ...options.headers,\n },\n `ai-sdk/gladia/${VERSION}`,\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.specificationVersion = 'v3' as const;\n provider.transcription = createTranscriptionModel;\n provider.transcriptionModel = createTranscriptionModel;\n\n // Required ProviderV3 methods that are not supported\n provider.languageModel = (modelId: string) => {\n throw new NoSuchModelError({\n modelId,\n modelType: 'languageModel',\n message: 'Gladia does not provide language models',\n });\n };\n\n provider.embeddingModel = (modelId: string) => {\n throw new NoSuchModelError({\n modelId,\n modelType: 'embeddingModel',\n message: 'Gladia does not provide embedding models',\n });\n };\n provider.textEmbeddingModel = provider.embeddingModel;\n\n provider.imageModel = (modelId: string) => {\n throw new NoSuchModelError({\n modelId,\n modelType: 'imageModel',\n message: 'Gladia does not provide image models',\n });\n };\n\n return provider as GladiaProvider;\n}\n\n/**\n * Default Gladia provider instance.\n */\nexport const gladia = createGladia();\n","import {\n AISDKError,\n TranscriptionModelV3,\n SharedV3Warning,\n} from '@ai-sdk/provider';\nimport {\n combineHeaders,\n convertBase64ToUint8Array,\n createJsonResponseHandler,\n mediaTypeToExtension,\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 gladiaTranscriptionModelOptionsSchema = 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 GladiaTranscriptionModelOptions = z.infer<\n typeof gladiaTranscriptionModelOptionsSchema\n>;\n\ninterface GladiaTranscriptionModelConfig extends GladiaConfig {\n _internal?: {\n currentDate?: () => Date;\n };\n}\n\nexport class GladiaTranscriptionModel implements TranscriptionModelV3 {\n readonly specificationVersion = 'v3';\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<TranscriptionModelV3['doGenerate']>[0]) {\n const warnings: SharedV3Warning[] = [];\n\n // Parse provider options\n const gladiaOptions = await parseProviderOptions({\n provider: 'gladia',\n providerOptions,\n schema: gladiaTranscriptionModelOptionsSchema,\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<TranscriptionModelV3['doGenerate']>[0],\n ): Promise<Awaited<ReturnType<TranscriptionModelV3['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 const fileExtension = mediaTypeToExtension(options.mediaType);\n formData.append(\n 'audio',\n new File([blob], 'audio', { type: options.mediaType }),\n `audio.${fileExtension}`,\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","// Version string of this package injected at build time.\ndeclare const __PACKAGE_VERSION__: string | undefined;\nexport const VERSION: string =\n typeof __PACKAGE_VERSION__ !== 'undefined'\n ? __PACKAGE_VERSION__\n : '0.0.0-test';\n"],"mappings":";AAAA;AAAA,EAGE;AAAA,OACK;AACP;AAAA,EAEE;AAAA,EACA;AAAA,OACK;;;ACTP;AAAA,EACE;AAAA,OAGK;AACP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,KAAAA,UAAS;;;AChBlB,SAAS,SAAS;AAClB,SAAS,sCAAsC;AAExC,IAAM,wBAAwB,EAAE,OAAO;AAAA,EAC5C,OAAO,EAAE,OAAO;AAAA,IACd,SAAS,EAAE,OAAO;AAAA,IAClB,MAAM,EAAE,OAAO;AAAA,EACjB,CAAC;AACH,CAAC;AAIM,IAAM,8BAA8B,+BAA+B;AAAA,EACxE,aAAa;AAAA,EACb,gBAAgB,UAAQ,KAAK,MAAM;AACrC,CAAC;;;ADOD,IAAM,wCAAwCC,GAAE,OAAO;AAAA;AAAA;AAAA;AAAA,EAIrD,eAAeA,GAAE,OAAO,EAAE,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA,EAMlC,kBAAkBA,GAAE,MAAM,CAACA,GAAE,QAAQ,GAAGA,GAAE,MAAMA,GAAE,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ;AAAA;AAAA;AAAA;AAAA,EAKnE,wBAAwBA,GACrB,OAAO;AAAA;AAAA;AAAA;AAAA,IAIN,YAAYA,GAAE;AAAA,MACZA,GAAE,MAAM;AAAA,QACNA,GAAE,OAAO;AAAA,QACTA,GAAE,OAAO;AAAA;AAAA;AAAA;AAAA,UAIP,OAAOA,GAAE,OAAO;AAAA;AAAA;AAAA;AAAA,UAIhB,WAAWA,GAAE,OAAO,EAAE,QAAQ;AAAA;AAAA;AAAA;AAAA,UAI9B,gBAAgBA,GAAE,MAAMA,GAAE,OAAO,CAAC,EAAE,QAAQ;AAAA;AAAA;AAAA;AAAA,UAI5C,UAAUA,GAAE,OAAO,EAAE,QAAQ;AAAA,QAC/B,CAAC;AAAA,MACH,CAAC;AAAA,IACH;AAAA;AAAA;AAAA;AAAA,IAIA,kBAAkBA,GAAE,OAAO,EAAE,QAAQ;AAAA,EACvC,CAAC,EACA,QAAQ;AAAA;AAAA;AAAA;AAAA,EAKX,gBAAgBA,GAAE,QAAQ,EAAE,QAAQ;AAAA;AAAA;AAAA;AAAA,EAKpC,qBAAqBA,GAAE,QAAQ,EAAE,QAAQ;AAAA;AAAA;AAAA;AAAA,EAKzC,qBAAqBA,GAClB,OAAO;AAAA;AAAA;AAAA;AAAA,IAIN,WAAWA,GAAE,MAAMA,GAAE,OAAO,CAAC,EAAE,QAAQ;AAAA,EACzC,CAAC,EACA,QAAQ;AAAA;AAAA;AAAA;AAAA,EAKX,UAAUA,GAAE,OAAO,EAAE,QAAQ;AAAA;AAAA;AAAA;AAAA,EAK7B,UAAUA,GAAE,QAAQ,EAAE,QAAQ;AAAA;AAAA;AAAA;AAAA,EAK9B,gBAAgBA,GACb,OAAO;AAAA;AAAA;AAAA;AAAA,IAIN,KAAKA,GAAE,OAAO;AAAA;AAAA;AAAA;AAAA,IAId,QAAQA,GAAE,KAAK,CAAC,QAAQ,KAAK,CAAC,EAAE,QAAQ;AAAA,EAC1C,CAAC,EACA,QAAQ;AAAA;AAAA;AAAA;AAAA,EAKX,WAAWA,GAAE,QAAQ,EAAE,QAAQ;AAAA;AAAA;AAAA;AAAA,EAK/B,iBAAiBA,GACd,OAAO;AAAA;AAAA;AAAA;AAAA,IAIN,SAASA,GAAE,MAAMA,GAAE,KAAK,CAAC,OAAO,KAAK,CAAC,CAAC,EAAE,QAAQ;AAAA;AAAA;AAAA;AAAA,IAIjD,iBAAiBA,GAAE,OAAO,EAAE,QAAQ;AAAA;AAAA;AAAA;AAAA,IAIpC,iBAAiBA,GAAE,OAAO,EAAE,QAAQ;AAAA;AAAA;AAAA;AAAA,IAIpC,yBAAyBA,GAAE,OAAO,EAAE,QAAQ;AAAA;AAAA;AAAA;AAAA,IAI5C,uBAAuBA,GAAE,OAAO,EAAE,QAAQ;AAAA;AAAA;AAAA;AAAA,IAI1C,OAAOA,GAAE,KAAK,CAAC,WAAW,YAAY,CAAC,EAAE,QAAQ;AAAA,EACnD,CAAC,EACA,QAAQ;AAAA;AAAA;AAAA;AAAA,EAKX,aAAaA,GAAE,QAAQ,EAAE,QAAQ;AAAA;AAAA;AAAA;AAAA,EAKjC,mBAAmBA,GAChB,OAAO;AAAA;AAAA;AAAA;AAAA,IAIN,kBAAkBA,GAAE,OAAO,EAAE,QAAQ;AAAA;AAAA;AAAA;AAAA,IAIrC,aAAaA,GAAE,OAAO,EAAE,QAAQ;AAAA;AAAA;AAAA;AAAA,IAIhC,aAAaA,GAAE,OAAO,EAAE,QAAQ;AAAA;AAAA;AAAA;AAAA,IAIhC,UAAUA,GAAE,QAAQ,EAAE,QAAQ;AAAA,EAChC,CAAC,EACA,QAAQ;AAAA;AAAA;AAAA;AAAA,EAKX,aAAaA,GAAE,QAAQ,EAAE,QAAQ;AAAA;AAAA;AAAA;AAAA,EAKjC,mBAAmBA,GAChB,OAAO;AAAA;AAAA;AAAA;AAAA,IAIN,iBAAiBA,GAAE,MAAMA,GAAE,OAAO,CAAC;AAAA;AAAA;AAAA;AAAA,IAInC,OAAOA,GAAE,KAAK,CAAC,QAAQ,UAAU,CAAC,EAAE,QAAQ;AAAA;AAAA;AAAA;AAAA,IAI5C,yBAAyBA,GAAE,QAAQ,EAAE,QAAQ;AAAA,EAC/C,CAAC,EACA,QAAQ;AAAA;AAAA;AAAA;AAAA,EAKX,eAAeA,GAAE,QAAQ,EAAE,QAAQ;AAAA;AAAA;AAAA;AAAA,EAKnC,qBAAqBA,GAClB,OAAO;AAAA;AAAA;AAAA;AAAA,IAIN,MAAMA,GAAE,KAAK,CAAC,WAAW,iBAAiB,SAAS,CAAC,EAAE,QAAQ;AAAA,EAChE,CAAC,EACA,QAAQ;AAAA;AAAA;AAAA;AAAA,EAKX,YAAYA,GAAE,QAAQ,EAAE,QAAQ;AAAA;AAAA;AAAA;AAAA,EAKhC,wBAAwBA,GAAE,QAAQ,EAAE,QAAQ;AAAA;AAAA;AAAA;AAAA,EAK5C,gBAAgBA,GAAE,QAAQ,EAAE,QAAQ;AAAA;AAAA;AAAA;AAAA,EAKpC,iBAAiBA,GAAE,QAAQ,EAAE,QAAQ;AAAA;AAAA;AAAA;AAAA,EAKrC,gBAAgBA,GAAE,QAAQ,EAAE,QAAQ;AAAA;AAAA;AAAA;AAAA,EAKpC,sBAAsBA,GACnB,OAAO;AAAA;AAAA;AAAA;AAAA,IAIN,oBAAoBA,GAAE,OAAOA,GAAE,OAAO,GAAGA,GAAE,MAAMA,GAAE,OAAO,CAAC,CAAC;AAAA,EAC9D,CAAC,EACA,QAAQ;AAAA;AAAA;AAAA;AAAA,EAKX,0BAA0BA,GAAE,QAAQ,EAAE,QAAQ;AAAA;AAAA;AAAA;AAAA,EAK9C,gCAAgCA,GAC7B,OAAO;AAAA;AAAA;AAAA;AAAA,IAIN,SAASA,GAAE,MAAMA,GAAE,OAAO,CAAC;AAAA,EAC7B,CAAC,EACA,QAAQ;AAAA;AAAA;AAAA;AAAA,EAKX,mBAAmBA,GAAE,QAAQ,EAAE,QAAQ;AAAA;AAAA;AAAA;AAAA,EAKvC,YAAYA,GAAE,QAAQ,EAAE,QAAQ;AAAA;AAAA;AAAA;AAAA,EAKhC,kBAAkBA,GACf,OAAO;AAAA;AAAA;AAAA;AAAA,IAIN,SAASA,GAAE,MAAMA,GAAE,OAAO,CAAC;AAAA,EAC7B,CAAC,EACA,QAAQ;AAAA;AAAA;AAAA;AAAA,EAKX,gBAAgBA,GAAE,OAAOA,GAAE,OAAO,GAAGA,GAAE,IAAI,CAAC,EAAE,QAAQ;AAAA;AAAA;AAAA;AAAA,EAKtD,WAAWA,GAAE,QAAQ,EAAE,QAAQ;AAAA;AAAA;AAAA;AAAA,EAK/B,aAAaA,GAAE,QAAQ,EAAE,QAAQ;AAAA;AAAA;AAAA;AAAA,EAKjC,qBAAqBA,GAAE,QAAQ,EAAE,QAAQ;AAC3C,CAAC;AAYM,IAAM,2BAAN,MAA+D;AAAA,EAOpE,YACW,SACQ,QACjB;AAFS;AACQ;AARnB,SAAS,uBAAuB;AAAA,EAS7B;AAAA,EAPH,IAAI,WAAmB;AACrB,WAAO,KAAK,OAAO;AAAA,EACrB;AAAA,EAOA,MAAc,QAAQ;AAAA,IACpB;AAAA,EACF,GAAsD;AA7VxD;AA8VI,UAAM,WAA8B,CAAC;AAGrC,UAAM,gBAAgB,MAAM,qBAAqB;AAAA,MAC/C,UAAU;AAAA,MACV;AAAA,MACA,QAAQ;AAAA,IACV,CAAC;AAED,UAAM,OAA+D,CAAC;AAGtE,QAAI,eAAe;AACjB,WAAK,kBAAiB,mBAAc,kBAAd,YAA+B;AACrD,WAAK,qBAAoB,mBAAc,qBAAd,YAAkC;AAC3D,WAAK,mBAAkB,mBAAc,mBAAd,YAAgC;AACvD,WAAK,yBACH,mBAAc,wBAAd,YAAqC;AACvC,WAAK,YAAW,mBAAc,aAAd,YAA0B;AAC1C,WAAK,YAAW,mBAAc,aAAd,YAA0B;AAC1C,WAAK,aAAY,mBAAc,cAAd,YAA2B;AAC5C,WAAK,eAAc,mBAAc,gBAAd,YAA6B;AAChD,WAAK,eAAc,mBAAc,gBAAd,YAA6B;AAChD,WAAK,iBAAgB,mBAAc,kBAAd,YAA+B;AACpD,WAAK,cAAa,mBAAc,eAAd,YAA4B;AAC9C,WAAK,4BACH,mBAAc,2BAAd,YAAwC;AAC1C,WAAK,kBAAiB,mBAAc,mBAAd,YAAgC;AACtD,WAAK,oBAAmB,mBAAc,oBAAd,YAAiC;AACzD,WAAK,mBAAkB,mBAAc,mBAAd,YAAgC;AACvD,WAAK,8BACH,mBAAc,6BAAd,YAA0C;AAC5C,WAAK,qCACH,mBAAc,mCAAd,YAAgD;AAClD,WAAK,sBAAqB,mBAAc,sBAAd,YAAmC;AAC7D,WAAK,gBAAe,mBAAc,eAAd,YAA4B;AAChD,WAAK,uBAAsB,mBAAc,qBAAd,YAAkC;AAC7D,WAAK,mBAAkB,mBAAc,mBAAd,YAAgC;AACvD,WAAK,aAAY,mBAAc,cAAd,YAA2B;AAC5C,WAAK,gBAAe,mBAAc,gBAAd,YAA6B;AACjD,WAAK,wBACH,mBAAc,wBAAd,YAAqC;AAEvC,UAAI,cAAc,wBAAwB;AACxC,aAAK,2BAA2B;AAAA,UAC9B,YAAY,cAAc,uBAAuB,WAAW;AAAA,YAC1D,UAAQ;AA5YpB,kBAAAC,KAAAC,KAAAC;AA6Yc,kBAAI,OAAO,SAAS,SAAU,QAAO;AACrC,qBAAO;AAAA,gBACL,OAAO,KAAK;AAAA,gBACZ,YAAWF,MAAA,KAAK,cAAL,OAAAA,MAAkB;AAAA,gBAC7B,iBAAgBC,MAAA,KAAK,mBAAL,OAAAA,MAAuB;AAAA,gBACvC,WAAUC,MAAA,KAAK,aAAL,OAAAA,MAAiB;AAAA,cAC7B;AAAA,YACF;AAAA,UACF;AAAA,UACA,oBACE,mBAAc,uBAAuB,qBAArC,YAAyD;AAAA,QAC7D;AAAA,MACF;AAGA,UAAI,cAAc,qBAAqB;AACrC,aAAK,wBAAwB;AAAA,UAC3B,YAAW,mBAAc,oBAAoB,cAAlC,YAA+C;AAAA,QAC5D;AAAA,MACF;AAGA,UAAI,cAAc,gBAAgB;AAChC,aAAK,kBAAkB;AAAA,UACrB,KAAK,cAAc,eAAe;AAAA,UAClC,SAAQ,mBAAc,eAAe,WAA7B,YAAuC;AAAA,QACjD;AAAA,MACF;AAGA,UAAI,cAAc,iBAAiB;AACjC,aAAK,mBAAmB;AAAA,UACtB,UAAS,mBAAc,gBAAgB,YAA9B,YAAyC;AAAA,UAClD,mBACE,mBAAc,gBAAgB,oBAA9B,YAAiD;AAAA,UACnD,mBACE,mBAAc,gBAAgB,oBAA9B,YAAiD;AAAA,UACnD,6BACE,mBAAc,gBAAgB,4BAA9B,YAAyD;AAAA,UAC3D,2BACE,mBAAc,gBAAgB,0BAA9B,YAAuD;AAAA,UACzD,QAAO,mBAAc,gBAAgB,UAA9B,YAAuC;AAAA,QAChD;AAAA,MACF;AAGA,UAAI,cAAc,mBAAmB;AACnC,aAAK,qBAAqB;AAAA,UACxB,qBACE,mBAAc,kBAAkB,qBAAhC,YAAoD;AAAA,UACtD,eACE,mBAAc,kBAAkB,gBAAhC,YAA+C;AAAA,UACjD,eACE,mBAAc,kBAAkB,gBAAhC,YAA+C;AAAA,UACjD,WAAU,mBAAc,kBAAkB,aAAhC,YAA4C;AAAA,QACxD;AAAA,MACF;AAGA,UAAI,cAAc,mBAAmB;AACnC,aAAK,qBAAqB;AAAA,UACxB,kBAAkB,cAAc,kBAAkB;AAAA,UAClD,QAAO,mBAAc,kBAAkB,UAAhC,YAAyC;AAAA,UAChD,4BACE,mBAAc,kBAAkB,4BAAhC,YACA;AAAA,QACJ;AAAA,MACF;AAGA,UAAI,cAAc,qBAAqB;AACrC,aAAK,uBAAuB;AAAA,UAC1B,OAAM,mBAAc,oBAAoB,SAAlC,YAA0C;AAAA,QAClD;AAAA,MACF;AAGA,UAAI,cAAc,sBAAsB;AACtC,aAAK,yBAAyB;AAAA,UAC5B,qBACE,cAAc,qBAAqB;AAAA,QACvC;AAAA,MACF;AAAA,IACF;AAEA,WAAO;AAAA,MACL;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA,EAEA,MAAM,WACJ,SACkE;AA1etE;AA2eI,UAAM,eAAc,sBAAK,OAAO,cAAZ,mBAAuB,gBAAvB,4CAA0C,oBAAI,KAAK;AAGvE,UAAM,WAAW,IAAI,SAAS;AAC9B,UAAM,OACJ,QAAQ,iBAAiB,aACrB,IAAI,KAAK,CAAC,QAAQ,KAAK,CAAC,IACxB,IAAI,KAAK,CAAC,0BAA0B,QAAQ,KAAK,CAAC,CAAC;AAEzD,UAAM,gBAAgB,qBAAqB,QAAQ,SAAS;AAC5D,aAAS;AAAA,MACP;AAAA,MACA,IAAI,KAAK,CAAC,IAAI,GAAG,SAAS,EAAE,MAAM,QAAQ,UAAU,CAAC;AAAA,MACrD,SAAS,aAAa;AAAA,IACxB;AAEA,UAAM,EAAE,OAAO,eAAe,IAAI,MAAM,kBAAkB;AAAA,MACxD,KAAK,KAAK,OAAO,IAAI;AAAA,QACnB,MAAM;AAAA,QACN,SAAS;AAAA,MACX,CAAC;AAAA,MACD,SAAS,eAAe,KAAK,OAAO,QAAQ,GAAG,QAAQ,OAAO;AAAA,MAC9D;AAAA,MACA,uBAAuB;AAAA,MACvB,2BAA2B;AAAA,QACzB;AAAA,MACF;AAAA,MACA,aAAa,QAAQ;AAAA,MACrB,OAAO,KAAK,OAAO;AAAA,IACrB,CAAC;AAED,UAAM,EAAE,MAAM,SAAS,IAAI,MAAM,KAAK,QAAQ,OAAO;AAErD,UAAM,EAAE,OAAO,0BAA0B,IAAI,MAAM,cAAc;AAAA,MAC/D,KAAK,KAAK,OAAO,IAAI;AAAA,QACnB,MAAM;AAAA,QACN,SAAS;AAAA,MACX,CAAC;AAAA,MACD,SAAS,eAAe,KAAK,OAAO,QAAQ,GAAG,QAAQ,OAAO;AAAA,MAC9D,MAAM;AAAA,QACJ,GAAG;AAAA,QACH,WAAW,eAAe;AAAA,MAC5B;AAAA,MACA,uBAAuB;AAAA,MACvB,2BAA2B;AAAA,QACzB;AAAA,MACF;AAAA,MACA,aAAa,QAAQ;AAAA,MACrB,OAAO,KAAK,OAAO;AAAA,IACrB,CAAC;AAGD,UAAM,YAAY,0BAA0B;AAC5C,QAAI;AACJ,QAAI;AACJ,UAAM,YAAY,KAAK;AACvB,UAAM,YAAY,KAAK,IAAI;AAC3B,UAAM,kBAAkB;AAExB,WAAO,MAAM;AAEX,UAAI,KAAK,IAAI,IAAI,YAAY,WAAW;AACtC,cAAM,IAAI,WAAW;AAAA,UACnB,SAAS;AAAA,UACT,MAAM;AAAA,UACN,OAAO;AAAA,QACT,CAAC;AAAA,MACH;AAEA,YAAM,WAAW,MAAM,WAAW;AAAA,QAChC,KAAK;AAAA,QACL,SAAS,eAAe,KAAK,OAAO,QAAQ,GAAG,QAAQ,OAAO;AAAA,QAC9D,uBAAuB;AAAA,QACvB,2BAA2B;AAAA,UACzB;AAAA,QACF;AAAA,QACA,aAAa,QAAQ;AAAA,QACrB,OAAO,KAAK,OAAO;AAAA,MACrB,CAAC;AAED,4BAAsB,SAAS;AAC/B,mCAA6B,SAAS;AAEtC,UAAI,oBAAoB,WAAW,QAAQ;AACzC;AAAA,MACF;AAEA,UAAI,oBAAoB,WAAW,SAAS;AAC1C,cAAM,IAAI,WAAW;AAAA,UACnB,SAAS;AAAA,UACT,MAAM;AAAA,UACN,OAAO;AAAA,QACT,CAAC;AAAA,MACH;AAGA,YAAM,MAAM,eAAe;AAAA,IAC7B;AAEA,QAAI,CAAC,oBAAoB,QAAQ;AAC/B,YAAM,IAAI,WAAW;AAAA,QACnB,SAAS;AAAA,QACT,MAAM;AAAA,QACN,OAAO;AAAA,MACT,CAAC;AAAA,IACH;AAGA,WAAO;AAAA,MACL,MAAM,oBAAoB,OAAO,cAAc;AAAA,MAC/C,mBAAmB,oBAAoB,OAAO,SAAS;AAAA,MACvD,UAAU,oBAAoB,OAAO,cAAc,UAAU,GAAG,CAAC;AAAA,MACjE,UAAU,oBAAoB,OAAO,cAAc,WAAW;AAAA,QAC5D,gBAAc;AAAA,UACZ,MAAM,UAAU;AAAA,UAChB,aAAa,UAAU;AAAA,UACvB,WAAW,UAAU;AAAA,QACvB;AAAA,MACF;AAAA,MACA,UAAU;AAAA,QACR,WAAW;AAAA,QACX,SAAS;AAAA,QACT,SAAS;AAAA,MACX;AAAA,MACA,kBAAkB;AAAA,QAChB,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,IACF;AAAA,EACF;AACF;AAEA,IAAM,6BAA6BH,GAAE,OAAO;AAAA,EAC1C,WAAWA,GAAE,OAAO;AACtB,CAAC;AAED,IAAM,8CAA8CA,GAAE,OAAO;AAAA,EAC3D,YAAYA,GAAE,OAAO;AACvB,CAAC;AAED,IAAM,0CAA0CA,GAAE,OAAO;AAAA,EACvD,QAAQA,GAAE,KAAK,CAAC,UAAU,cAAc,QAAQ,OAAO,CAAC;AAAA,EACxD,QAAQA,GACL,OAAO;AAAA,IACN,UAAUA,GAAE,OAAO;AAAA,MACjB,gBAAgBA,GAAE,OAAO;AAAA,IAC3B,CAAC;AAAA,IACD,eAAeA,GAAE,OAAO;AAAA,MACtB,iBAAiBA,GAAE,OAAO;AAAA,MAC1B,WAAWA,GAAE,MAAMA,GAAE,OAAO,CAAC;AAAA,MAC7B,YAAYA,GAAE;AAAA,QACZA,GAAE,OAAO;AAAA,UACP,OAAOA,GAAE,OAAO;AAAA,UAChB,KAAKA,GAAE,OAAO;AAAA,UACd,MAAMA,GAAE,OAAO;AAAA,QACjB,CAAC;AAAA,MACH;AAAA,IACF,CAAC;AAAA,EACH,CAAC,EACA,QAAQ;AACb,CAAC;;;AEzoBM,IAAM,UACX,OACI,WACA;;;AH6CC,SAAS,aACd,UAAkC,CAAC,GACnB;AAChB,QAAM,aAAa,MACjB;AAAA,IACE;AAAA,MACE,gBAAgB,WAAW;AAAA,QACzB,QAAQ,QAAQ;AAAA,QAChB,yBAAyB;AAAA,QACzB,aAAa;AAAA,MACf,CAAC;AAAA,MACD,GAAG,QAAQ;AAAA,IACb;AAAA,IACA,iBAAiB,OAAO;AAAA,EAC1B;AAEF,QAAM,2BAA2B,MAC/B,IAAI,yBAAyB,WAAW;AAAA,IACtC,UAAU;AAAA,IACV,KAAK,CAAC,EAAE,KAAK,MAAM,wBAAwB,IAAI;AAAA,IAC/C,SAAS;AAAA,IACT,OAAO,QAAQ;AAAA,EACjB,CAAC;AAEH,QAAM,WAAW,WAAY;AAC3B,WAAO;AAAA,MACL,eAAe,yBAAyB;AAAA,IAC1C;AAAA,EACF;AAEA,WAAS,uBAAuB;AAChC,WAAS,gBAAgB;AACzB,WAAS,qBAAqB;AAG9B,WAAS,gBAAgB,CAAC,YAAoB;AAC5C,UAAM,IAAI,iBAAiB;AAAA,MACzB;AAAA,MACA,WAAW;AAAA,MACX,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AAEA,WAAS,iBAAiB,CAAC,YAAoB;AAC7C,UAAM,IAAI,iBAAiB;AAAA,MACzB;AAAA,MACA,WAAW;AAAA,MACX,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACA,WAAS,qBAAqB,SAAS;AAEvC,WAAS,aAAa,CAAC,YAAoB;AACzC,UAAM,IAAI,iBAAiB;AAAA,MACzB;AAAA,MACA,WAAW;AAAA,MACX,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AAEA,SAAO;AACT;AAKO,IAAM,SAAS,aAAa;","names":["z","z","_a","_b","_c"]}
|
package/docs/120-gladia.mdx
CHANGED
|
@@ -75,15 +75,20 @@ const model = gladia.transcription();
|
|
|
75
75
|
|
|
76
76
|
You can also pass additional provider-specific options using the `providerOptions` argument. For example, supplying the `summarize` option will enable summaries for sections of content.
|
|
77
77
|
|
|
78
|
-
```ts highlight="
|
|
78
|
+
```ts highlight="7"
|
|
79
79
|
import { experimental_transcribe as transcribe } from 'ai';
|
|
80
80
|
import { gladia } from '@ai-sdk/gladia';
|
|
81
|
+
import { type GladiaTranscriptionModelOptions } from '@ai-sdk/gladia';
|
|
81
82
|
import { readFile } from 'fs/promises';
|
|
82
83
|
|
|
83
84
|
const result = await transcribe({
|
|
84
85
|
model: gladia.transcription(),
|
|
85
86
|
audio: await readFile('audio.mp3'),
|
|
86
|
-
providerOptions: {
|
|
87
|
+
providerOptions: {
|
|
88
|
+
gladia: {
|
|
89
|
+
summarization: true,
|
|
90
|
+
} satisfies GladiaTranscriptionModelOptions,
|
|
91
|
+
},
|
|
87
92
|
});
|
|
88
93
|
```
|
|
89
94
|
|
package/package.json
CHANGED
|
@@ -20,7 +20,7 @@ import { gladiaFailedResponseHandler } from './gladia-error';
|
|
|
20
20
|
import { GladiaTranscriptionInitiateAPITypes } from './gladia-api-types';
|
|
21
21
|
|
|
22
22
|
// https://docs.gladia.io/api-reference/v2/pre-recorded/init
|
|
23
|
-
const
|
|
23
|
+
const gladiaTranscriptionModelOptionsSchema = z.object({
|
|
24
24
|
/**
|
|
25
25
|
* Optional context prompt to guide the transcription.
|
|
26
26
|
*/
|
|
@@ -323,8 +323,8 @@ const gladiaProviderOptionsSchema = z.object({
|
|
|
323
323
|
punctuationEnhanced: z.boolean().nullish(),
|
|
324
324
|
});
|
|
325
325
|
|
|
326
|
-
export type
|
|
327
|
-
typeof
|
|
326
|
+
export type GladiaTranscriptionModelOptions = z.infer<
|
|
327
|
+
typeof gladiaTranscriptionModelOptionsSchema
|
|
328
328
|
>;
|
|
329
329
|
|
|
330
330
|
interface GladiaTranscriptionModelConfig extends GladiaConfig {
|
|
@@ -354,7 +354,7 @@ export class GladiaTranscriptionModel implements TranscriptionModelV3 {
|
|
|
354
354
|
const gladiaOptions = await parseProviderOptions({
|
|
355
355
|
provider: 'gladia',
|
|
356
356
|
providerOptions,
|
|
357
|
-
schema:
|
|
357
|
+
schema: gladiaTranscriptionModelOptionsSchema,
|
|
358
358
|
});
|
|
359
359
|
|
|
360
360
|
const body: Omit<GladiaTranscriptionInitiateAPITypes, 'audio_url'> = {};
|
package/src/index.ts
CHANGED