@ai-sdk/mistral 3.0.74 → 3.0.76
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 +15 -0
- package/dist/index.d.mts +19 -20
- package/dist/index.d.ts +19 -20
- package/dist/index.js +175 -130
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +167 -106
- package/dist/index.mjs.map +1 -1
- package/docs/20-mistral.mdx +36 -5
- package/package.json +4 -4
- package/src/mistral-chat-language-model.ts +102 -85
- package/src/mistral-chat-options.ts +46 -37
- package/src/mistral-embedding-model.ts +10 -4
- package/src/mistral-error.ts +18 -9
- package/src/mistral-speech-model-options.ts +38 -10
- package/src/mistral-speech-model.ts +11 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
# @ai-sdk/mistral
|
|
2
2
|
|
|
3
|
+
## 3.0.76
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- fa49238: Add Voxtral 3 speech model IDs and support speech expressiveness and pronunciation hints in the Mistral provider.
|
|
8
|
+
|
|
9
|
+
## 3.0.75
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- 640a118: Defer validation schema construction until first use to reduce provider import time.
|
|
14
|
+
- Updated dependencies [1183cc4]
|
|
15
|
+
- Updated dependencies [d726591]
|
|
16
|
+
- @ai-sdk/provider-utils@4.0.62
|
|
17
|
+
|
|
3
18
|
## 3.0.74
|
|
4
19
|
|
|
5
20
|
### Patch Changes
|
package/dist/index.d.mts
CHANGED
|
@@ -1,29 +1,28 @@
|
|
|
1
1
|
import { ProviderV3, LanguageModelV3, EmbeddingModelV3, SpeechModelV3 } from '@ai-sdk/provider';
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
2
|
+
import * as _ai_sdk_provider_utils from '@ai-sdk/provider-utils';
|
|
3
|
+
import { InferSchema, FetchFunction } from '@ai-sdk/provider-utils';
|
|
4
4
|
|
|
5
5
|
type MistralChatModelId = 'ministral-3b-latest' | 'ministral-8b-latest' | 'ministral-14b-latest' | 'mistral-large-latest' | 'mistral-medium-latest' | 'mistral-medium-3' | 'mistral-large-2512' | 'mistral-medium-2508' | 'mistral-medium-2505' | 'mistral-small-2506' | 'pixtral-large-latest' | 'mistral-medium-3.5' | 'mistral-small-latest' | 'mistral-small-2603' | 'magistral-medium-latest' | 'magistral-small-latest' | 'magistral-medium-2509' | 'magistral-small-2509' | (string & {});
|
|
6
|
-
declare const mistralLanguageModelOptions:
|
|
7
|
-
safePrompt
|
|
8
|
-
documentImageLimit
|
|
9
|
-
documentPageLimit
|
|
10
|
-
structuredOutputs
|
|
11
|
-
strictJsonSchema
|
|
12
|
-
parallelToolCalls
|
|
13
|
-
reasoningEffort
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
}>>;
|
|
17
|
-
}, z.core.$strip>;
|
|
18
|
-
type MistralLanguageModelOptions = z.infer<typeof mistralLanguageModelOptions>;
|
|
6
|
+
declare const mistralLanguageModelOptions: _ai_sdk_provider_utils.LazySchema<{
|
|
7
|
+
safePrompt?: boolean | undefined;
|
|
8
|
+
documentImageLimit?: number | undefined;
|
|
9
|
+
documentPageLimit?: number | undefined;
|
|
10
|
+
structuredOutputs?: boolean | undefined;
|
|
11
|
+
strictJsonSchema?: boolean | undefined;
|
|
12
|
+
parallelToolCalls?: boolean | undefined;
|
|
13
|
+
reasoningEffort?: "none" | "high" | undefined;
|
|
14
|
+
}>;
|
|
15
|
+
type MistralLanguageModelOptions = InferSchema<typeof mistralLanguageModelOptions>;
|
|
19
16
|
|
|
20
17
|
type MistralEmbeddingModelId = 'mistral-embed' | (string & {});
|
|
21
18
|
|
|
22
|
-
type MistralSpeechModelId = 'voxtral-mini-tts-2603' | (string & {});
|
|
23
|
-
declare const mistralSpeechModelOptions:
|
|
24
|
-
refAudio
|
|
25
|
-
|
|
26
|
-
|
|
19
|
+
type MistralSpeechModelId = 'voxtral-mini-tts-2603' | 'voxtral-mini-tts-3-0' | 'voxtral-mini-tts-3' | 'voxtral-mini-tts-latest' | (string & {});
|
|
20
|
+
declare const mistralSpeechModelOptions: _ai_sdk_provider_utils.LazySchema<{
|
|
21
|
+
refAudio?: string | undefined;
|
|
22
|
+
expressiveness?: number | undefined;
|
|
23
|
+
phonemeHints?: Record<string, string[]> | undefined;
|
|
24
|
+
}>;
|
|
25
|
+
type MistralSpeechModelOptions = InferSchema<typeof mistralSpeechModelOptions>;
|
|
27
26
|
|
|
28
27
|
interface MistralProvider extends ProviderV3 {
|
|
29
28
|
(modelId: MistralChatModelId): LanguageModelV3;
|
package/dist/index.d.ts
CHANGED
|
@@ -1,29 +1,28 @@
|
|
|
1
1
|
import { ProviderV3, LanguageModelV3, EmbeddingModelV3, SpeechModelV3 } from '@ai-sdk/provider';
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
2
|
+
import * as _ai_sdk_provider_utils from '@ai-sdk/provider-utils';
|
|
3
|
+
import { InferSchema, FetchFunction } from '@ai-sdk/provider-utils';
|
|
4
4
|
|
|
5
5
|
type MistralChatModelId = 'ministral-3b-latest' | 'ministral-8b-latest' | 'ministral-14b-latest' | 'mistral-large-latest' | 'mistral-medium-latest' | 'mistral-medium-3' | 'mistral-large-2512' | 'mistral-medium-2508' | 'mistral-medium-2505' | 'mistral-small-2506' | 'pixtral-large-latest' | 'mistral-medium-3.5' | 'mistral-small-latest' | 'mistral-small-2603' | 'magistral-medium-latest' | 'magistral-small-latest' | 'magistral-medium-2509' | 'magistral-small-2509' | (string & {});
|
|
6
|
-
declare const mistralLanguageModelOptions:
|
|
7
|
-
safePrompt
|
|
8
|
-
documentImageLimit
|
|
9
|
-
documentPageLimit
|
|
10
|
-
structuredOutputs
|
|
11
|
-
strictJsonSchema
|
|
12
|
-
parallelToolCalls
|
|
13
|
-
reasoningEffort
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
}>>;
|
|
17
|
-
}, z.core.$strip>;
|
|
18
|
-
type MistralLanguageModelOptions = z.infer<typeof mistralLanguageModelOptions>;
|
|
6
|
+
declare const mistralLanguageModelOptions: _ai_sdk_provider_utils.LazySchema<{
|
|
7
|
+
safePrompt?: boolean | undefined;
|
|
8
|
+
documentImageLimit?: number | undefined;
|
|
9
|
+
documentPageLimit?: number | undefined;
|
|
10
|
+
structuredOutputs?: boolean | undefined;
|
|
11
|
+
strictJsonSchema?: boolean | undefined;
|
|
12
|
+
parallelToolCalls?: boolean | undefined;
|
|
13
|
+
reasoningEffort?: "none" | "high" | undefined;
|
|
14
|
+
}>;
|
|
15
|
+
type MistralLanguageModelOptions = InferSchema<typeof mistralLanguageModelOptions>;
|
|
19
16
|
|
|
20
17
|
type MistralEmbeddingModelId = 'mistral-embed' | (string & {});
|
|
21
18
|
|
|
22
|
-
type MistralSpeechModelId = 'voxtral-mini-tts-2603' | (string & {});
|
|
23
|
-
declare const mistralSpeechModelOptions:
|
|
24
|
-
refAudio
|
|
25
|
-
|
|
26
|
-
|
|
19
|
+
type MistralSpeechModelId = 'voxtral-mini-tts-2603' | 'voxtral-mini-tts-3-0' | 'voxtral-mini-tts-3' | 'voxtral-mini-tts-latest' | (string & {});
|
|
20
|
+
declare const mistralSpeechModelOptions: _ai_sdk_provider_utils.LazySchema<{
|
|
21
|
+
refAudio?: string | undefined;
|
|
22
|
+
expressiveness?: number | undefined;
|
|
23
|
+
phonemeHints?: Record<string, string[]> | undefined;
|
|
24
|
+
}>;
|
|
25
|
+
type MistralSpeechModelOptions = InferSchema<typeof mistralSpeechModelOptions>;
|
|
27
26
|
|
|
28
27
|
interface MistralProvider extends ProviderV3 {
|
|
29
28
|
(modelId: MistralChatModelId): LanguageModelV3;
|
package/dist/index.js
CHANGED
|
@@ -28,11 +28,11 @@ module.exports = __toCommonJS(index_exports);
|
|
|
28
28
|
|
|
29
29
|
// src/mistral-provider.ts
|
|
30
30
|
var import_provider5 = require("@ai-sdk/provider");
|
|
31
|
-
var
|
|
31
|
+
var import_provider_utils8 = require("@ai-sdk/provider-utils");
|
|
32
32
|
|
|
33
33
|
// src/mistral-chat-language-model.ts
|
|
34
34
|
var import_provider3 = require("@ai-sdk/provider");
|
|
35
|
-
var
|
|
35
|
+
var import_provider_utils4 = require("@ai-sdk/provider-utils");
|
|
36
36
|
var import_v44 = require("zod/v4");
|
|
37
37
|
|
|
38
38
|
// src/convert-mistral-usage.ts
|
|
@@ -263,55 +263,64 @@ function mapMistralFinishReason(finishReason) {
|
|
|
263
263
|
}
|
|
264
264
|
|
|
265
265
|
// src/mistral-chat-options.ts
|
|
266
|
+
var import_provider_utils2 = require("@ai-sdk/provider-utils");
|
|
266
267
|
var import_v42 = require("zod/v4");
|
|
267
|
-
var mistralLanguageModelOptions =
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
268
|
+
var mistralLanguageModelOptions = (0, import_provider_utils2.lazySchema)(
|
|
269
|
+
() => (0, import_provider_utils2.zodSchema)(
|
|
270
|
+
import_v42.z.object({
|
|
271
|
+
/**
|
|
272
|
+
* Whether to inject a safety prompt before all conversations.
|
|
273
|
+
*
|
|
274
|
+
* Defaults to `false`.
|
|
275
|
+
*/
|
|
276
|
+
safePrompt: import_v42.z.boolean().optional(),
|
|
277
|
+
documentImageLimit: import_v42.z.number().optional(),
|
|
278
|
+
documentPageLimit: import_v42.z.number().optional(),
|
|
279
|
+
/**
|
|
280
|
+
* Whether to use structured outputs.
|
|
281
|
+
*
|
|
282
|
+
* @default true
|
|
283
|
+
*/
|
|
284
|
+
structuredOutputs: import_v42.z.boolean().optional(),
|
|
285
|
+
/**
|
|
286
|
+
* Whether to use strict JSON schema validation.
|
|
287
|
+
*
|
|
288
|
+
* @default false
|
|
289
|
+
*/
|
|
290
|
+
strictJsonSchema: import_v42.z.boolean().optional(),
|
|
291
|
+
/**
|
|
292
|
+
* Whether to enable parallel function calling during tool use.
|
|
293
|
+
* When set to false, the model will use at most one tool per response.
|
|
294
|
+
*
|
|
295
|
+
* @default true
|
|
296
|
+
*/
|
|
297
|
+
parallelToolCalls: import_v42.z.boolean().optional(),
|
|
298
|
+
/**
|
|
299
|
+
* Controls the reasoning effort for models that support adjustable reasoning.
|
|
300
|
+
*
|
|
301
|
+
* - `'high'`: Enable reasoning
|
|
302
|
+
* - `'none'`: Disable reasoning
|
|
303
|
+
*/
|
|
304
|
+
reasoningEffort: import_v42.z.enum(["high", "none"]).optional()
|
|
305
|
+
})
|
|
306
|
+
)
|
|
307
|
+
);
|
|
303
308
|
|
|
304
309
|
// src/mistral-error.ts
|
|
305
|
-
var
|
|
310
|
+
var import_provider_utils3 = require("@ai-sdk/provider-utils");
|
|
306
311
|
var import_v43 = require("zod/v4");
|
|
307
|
-
var mistralErrorDataSchema =
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
312
|
+
var mistralErrorDataSchema = (0, import_provider_utils3.lazySchema)(
|
|
313
|
+
() => (0, import_provider_utils3.zodSchema)(
|
|
314
|
+
import_v43.z.object({
|
|
315
|
+
object: import_v43.z.literal("error"),
|
|
316
|
+
message: import_v43.z.string(),
|
|
317
|
+
type: import_v43.z.string(),
|
|
318
|
+
param: import_v43.z.string().nullable(),
|
|
319
|
+
code: import_v43.z.string().nullable()
|
|
320
|
+
})
|
|
321
|
+
)
|
|
322
|
+
);
|
|
323
|
+
var mistralFailedResponseHandler = (0, import_provider_utils3.createJsonErrorResponseHandler)({
|
|
315
324
|
errorSchema: mistralErrorDataSchema,
|
|
316
325
|
errorToMessage: (data) => data.message
|
|
317
326
|
});
|
|
@@ -385,7 +394,7 @@ var MistralChatLanguageModel = class {
|
|
|
385
394
|
var _a;
|
|
386
395
|
this.modelId = modelId;
|
|
387
396
|
this.config = config;
|
|
388
|
-
this.generateId = (_a = config.generateId) != null ? _a :
|
|
397
|
+
this.generateId = (_a = config.generateId) != null ? _a : import_provider_utils4.generateId;
|
|
389
398
|
}
|
|
390
399
|
get provider() {
|
|
391
400
|
return this.config.provider;
|
|
@@ -407,7 +416,7 @@ var MistralChatLanguageModel = class {
|
|
|
407
416
|
}) {
|
|
408
417
|
var _a, _b, _c, _d;
|
|
409
418
|
const warnings = [];
|
|
410
|
-
const options = (_a = await (0,
|
|
419
|
+
const options = (_a = await (0, import_provider_utils4.parseProviderOptions)({
|
|
411
420
|
provider: "mistral",
|
|
412
421
|
providerOptions,
|
|
413
422
|
schema: mistralLanguageModelOptions
|
|
@@ -418,7 +427,7 @@ var MistralChatLanguageModel = class {
|
|
|
418
427
|
const structuredOutputs = (_b = options.structuredOutputs) != null ? _b : true;
|
|
419
428
|
const strictJsonSchema = (_c = options.strictJsonSchema) != null ? _c : false;
|
|
420
429
|
if ((responseFormat == null ? void 0 : responseFormat.type) === "json" && !(responseFormat == null ? void 0 : responseFormat.schema)) {
|
|
421
|
-
prompt = (0,
|
|
430
|
+
prompt = (0, import_provider_utils4.injectJsonInstructionIntoMessages)({
|
|
422
431
|
messages: prompt,
|
|
423
432
|
schema: responseFormat.schema
|
|
424
433
|
});
|
|
@@ -478,12 +487,12 @@ var MistralChatLanguageModel = class {
|
|
|
478
487
|
responseHeaders,
|
|
479
488
|
value: response,
|
|
480
489
|
rawValue: rawResponse
|
|
481
|
-
} = await (0,
|
|
490
|
+
} = await (0, import_provider_utils4.postJsonToApi)({
|
|
482
491
|
url: `${this.config.baseURL}/chat/completions`,
|
|
483
|
-
headers: (0,
|
|
492
|
+
headers: (0, import_provider_utils4.combineHeaders)(this.config.headers(), options.headers),
|
|
484
493
|
body,
|
|
485
494
|
failedResponseHandler: mistralFailedResponseHandler,
|
|
486
|
-
successfulResponseHandler: (0,
|
|
495
|
+
successfulResponseHandler: (0, import_provider_utils4.createJsonResponseHandler)(
|
|
487
496
|
mistralChatResponseSchema
|
|
488
497
|
),
|
|
489
498
|
abortSignal: options.abortSignal,
|
|
@@ -539,12 +548,12 @@ var MistralChatLanguageModel = class {
|
|
|
539
548
|
async doStream(options) {
|
|
540
549
|
const { args, warnings } = await this.getArgs(options);
|
|
541
550
|
const body = { ...args, stream: true };
|
|
542
|
-
const { responseHeaders, value: response } = await (0,
|
|
551
|
+
const { responseHeaders, value: response } = await (0, import_provider_utils4.postJsonToApi)({
|
|
543
552
|
url: `${this.config.baseURL}/chat/completions`,
|
|
544
|
-
headers: (0,
|
|
553
|
+
headers: (0, import_provider_utils4.combineHeaders)(this.config.headers(), options.headers),
|
|
545
554
|
body,
|
|
546
555
|
failedResponseHandler: mistralFailedResponseHandler,
|
|
547
|
-
successfulResponseHandler: (0,
|
|
556
|
+
successfulResponseHandler: (0, import_provider_utils4.createEventSourceResponseHandler)(
|
|
548
557
|
mistralChatChunkSchema
|
|
549
558
|
),
|
|
550
559
|
abortSignal: options.abortSignal,
|
|
@@ -758,7 +767,7 @@ function extractTextContent(content) {
|
|
|
758
767
|
}
|
|
759
768
|
return textContent.length ? textContent.join("") : void 0;
|
|
760
769
|
}
|
|
761
|
-
var mistralContentSchema = import_v44.z.union([
|
|
770
|
+
var mistralContentSchema = () => import_v44.z.union([
|
|
762
771
|
import_v44.z.string(),
|
|
763
772
|
import_v44.z.array(
|
|
764
773
|
import_v44.z.discriminatedUnion("type", [
|
|
@@ -792,59 +801,70 @@ var mistralContentSchema = import_v44.z.union([
|
|
|
792
801
|
])
|
|
793
802
|
)
|
|
794
803
|
]).nullish();
|
|
795
|
-
var mistralChatResponseSchema =
|
|
796
|
-
|
|
797
|
-
created: import_v44.z.number().nullish(),
|
|
798
|
-
model: import_v44.z.string().nullish(),
|
|
799
|
-
choices: import_v44.z.array(
|
|
804
|
+
var mistralChatResponseSchema = (0, import_provider_utils4.lazySchema)(
|
|
805
|
+
() => (0, import_provider_utils4.zodSchema)(
|
|
800
806
|
import_v44.z.object({
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
807
|
+
id: import_v44.z.string().nullish(),
|
|
808
|
+
created: import_v44.z.number().nullish(),
|
|
809
|
+
model: import_v44.z.string().nullish(),
|
|
810
|
+
choices: import_v44.z.array(
|
|
811
|
+
import_v44.z.object({
|
|
812
|
+
message: import_v44.z.object({
|
|
813
|
+
role: import_v44.z.literal("assistant"),
|
|
814
|
+
content: mistralContentSchema(),
|
|
815
|
+
tool_calls: import_v44.z.array(
|
|
816
|
+
import_v44.z.object({
|
|
817
|
+
id: import_v44.z.string(),
|
|
818
|
+
function: import_v44.z.object({
|
|
819
|
+
name: import_v44.z.string(),
|
|
820
|
+
arguments: import_v44.z.string()
|
|
821
|
+
})
|
|
822
|
+
})
|
|
823
|
+
).nullish()
|
|
824
|
+
}),
|
|
825
|
+
index: import_v44.z.number(),
|
|
826
|
+
finish_reason: import_v44.z.string().nullish()
|
|
827
|
+
})
|
|
828
|
+
),
|
|
829
|
+
object: import_v44.z.literal("chat.completion"),
|
|
830
|
+
usage: mistralUsageSchema
|
|
813
831
|
})
|
|
814
|
-
)
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
var mistralChatChunkSchema = import_v44.z.object({
|
|
819
|
-
id: import_v44.z.string().nullish(),
|
|
820
|
-
created: import_v44.z.number().nullish(),
|
|
821
|
-
model: import_v44.z.string().nullish(),
|
|
822
|
-
choices: import_v44.z.array(
|
|
832
|
+
)
|
|
833
|
+
);
|
|
834
|
+
var mistralChatChunkSchema = (0, import_provider_utils4.lazySchema)(
|
|
835
|
+
() => (0, import_provider_utils4.zodSchema)(
|
|
823
836
|
import_v44.z.object({
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
837
|
+
id: import_v44.z.string().nullish(),
|
|
838
|
+
created: import_v44.z.number().nullish(),
|
|
839
|
+
model: import_v44.z.string().nullish(),
|
|
840
|
+
choices: import_v44.z.array(
|
|
841
|
+
import_v44.z.object({
|
|
842
|
+
delta: import_v44.z.object({
|
|
843
|
+
role: import_v44.z.enum(["assistant"]).optional(),
|
|
844
|
+
content: mistralContentSchema(),
|
|
845
|
+
tool_calls: import_v44.z.array(
|
|
846
|
+
import_v44.z.object({
|
|
847
|
+
index: import_v44.z.number().nullish(),
|
|
848
|
+
id: import_v44.z.string().nullish(),
|
|
849
|
+
function: import_v44.z.object({
|
|
850
|
+
name: import_v44.z.string().nullish(),
|
|
851
|
+
arguments: import_v44.z.string().nullish()
|
|
852
|
+
})
|
|
853
|
+
})
|
|
854
|
+
).nullish()
|
|
855
|
+
}),
|
|
856
|
+
finish_reason: import_v44.z.string().nullish(),
|
|
857
|
+
index: import_v44.z.number()
|
|
858
|
+
})
|
|
859
|
+
),
|
|
860
|
+
usage: mistralUsageSchema.nullish()
|
|
840
861
|
})
|
|
841
|
-
)
|
|
842
|
-
|
|
843
|
-
});
|
|
862
|
+
)
|
|
863
|
+
);
|
|
844
864
|
|
|
845
865
|
// src/mistral-embedding-model.ts
|
|
846
866
|
var import_provider4 = require("@ai-sdk/provider");
|
|
847
|
-
var
|
|
867
|
+
var import_provider_utils5 = require("@ai-sdk/provider-utils");
|
|
848
868
|
var import_v45 = require("zod/v4");
|
|
849
869
|
var MistralEmbeddingModel = class {
|
|
850
870
|
constructor(modelId, config) {
|
|
@@ -874,16 +894,16 @@ var MistralEmbeddingModel = class {
|
|
|
874
894
|
responseHeaders,
|
|
875
895
|
value: response,
|
|
876
896
|
rawValue
|
|
877
|
-
} = await (0,
|
|
897
|
+
} = await (0, import_provider_utils5.postJsonToApi)({
|
|
878
898
|
url: `${this.config.baseURL}/embeddings`,
|
|
879
|
-
headers: (0,
|
|
899
|
+
headers: (0, import_provider_utils5.combineHeaders)(this.config.headers(), headers),
|
|
880
900
|
body: {
|
|
881
901
|
model: this.modelId,
|
|
882
902
|
input: values,
|
|
883
903
|
encoding_format: "float"
|
|
884
904
|
},
|
|
885
905
|
failedResponseHandler: mistralFailedResponseHandler,
|
|
886
|
-
successfulResponseHandler: (0,
|
|
906
|
+
successfulResponseHandler: (0, import_provider_utils5.createJsonResponseHandler)(
|
|
887
907
|
MistralTextEmbeddingResponseSchema
|
|
888
908
|
),
|
|
889
909
|
abortSignal,
|
|
@@ -897,25 +917,44 @@ var MistralEmbeddingModel = class {
|
|
|
897
917
|
};
|
|
898
918
|
}
|
|
899
919
|
};
|
|
900
|
-
var MistralTextEmbeddingResponseSchema =
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
})
|
|
920
|
+
var MistralTextEmbeddingResponseSchema = (0, import_provider_utils5.lazySchema)(
|
|
921
|
+
() => (0, import_provider_utils5.zodSchema)(
|
|
922
|
+
import_v45.z.object({
|
|
923
|
+
data: import_v45.z.array(import_v45.z.object({ embedding: import_v45.z.array(import_v45.z.number()) })),
|
|
924
|
+
usage: import_v45.z.object({ prompt_tokens: import_v45.z.number() }).nullish()
|
|
925
|
+
})
|
|
926
|
+
)
|
|
927
|
+
);
|
|
904
928
|
|
|
905
929
|
// src/mistral-speech-model.ts
|
|
906
|
-
var
|
|
930
|
+
var import_provider_utils7 = require("@ai-sdk/provider-utils");
|
|
907
931
|
var import_v47 = require("zod/v4");
|
|
908
932
|
|
|
909
933
|
// src/mistral-speech-model-options.ts
|
|
934
|
+
var import_provider_utils6 = require("@ai-sdk/provider-utils");
|
|
910
935
|
var import_v46 = require("zod/v4");
|
|
911
|
-
var mistralSpeechModelOptions =
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
936
|
+
var mistralSpeechModelOptions = (0, import_provider_utils6.lazySchema)(
|
|
937
|
+
() => (0, import_provider_utils6.zodSchema)(
|
|
938
|
+
import_v46.z.object({
|
|
939
|
+
/**
|
|
940
|
+
* Base64-encoded reference audio for one-off voice cloning.
|
|
941
|
+
*
|
|
942
|
+
* When provided, this takes precedence over the standard `voice` option.
|
|
943
|
+
*/
|
|
944
|
+
refAudio: import_v46.z.string().min(1).optional(),
|
|
945
|
+
/**
|
|
946
|
+
* How expressive the speech is, from 1 to 5. Higher values trade voice
|
|
947
|
+
* similarity and stability for stronger delivery. Supported by Voxtral 3.
|
|
948
|
+
*/
|
|
949
|
+
expressiveness: import_v46.z.number().min(1).max(5).optional(),
|
|
950
|
+
/**
|
|
951
|
+
* Pronunciation hints mapping words to lists of IPA phonemes.
|
|
952
|
+
* Supported by Voxtral 3.
|
|
953
|
+
*/
|
|
954
|
+
phonemeHints: import_v46.z.record(import_v46.z.string().min(1), import_v46.z.array(import_v46.z.string().min(1)).min(1)).optional()
|
|
955
|
+
})
|
|
956
|
+
)
|
|
957
|
+
);
|
|
919
958
|
|
|
920
959
|
// src/mistral-speech-model.ts
|
|
921
960
|
var MistralSpeechModel = class {
|
|
@@ -937,7 +976,7 @@ var MistralSpeechModel = class {
|
|
|
937
976
|
providerOptions
|
|
938
977
|
}) {
|
|
939
978
|
const warnings = [];
|
|
940
|
-
const mistralOptions = await (0,
|
|
979
|
+
const mistralOptions = await (0, import_provider_utils7.parseProviderOptions)({
|
|
941
980
|
provider: "mistral",
|
|
942
981
|
providerOptions,
|
|
943
982
|
schema: mistralSpeechModelOptions
|
|
@@ -979,6 +1018,8 @@ var MistralSpeechModel = class {
|
|
|
979
1018
|
input: text,
|
|
980
1019
|
voice_id: refAudio == null ? voice : void 0,
|
|
981
1020
|
ref_audio: refAudio,
|
|
1021
|
+
expressiveness: mistralOptions == null ? void 0 : mistralOptions.expressiveness,
|
|
1022
|
+
phoneme_hints: mistralOptions == null ? void 0 : mistralOptions.phonemeHints,
|
|
982
1023
|
response_format: responseFormat,
|
|
983
1024
|
stream: false
|
|
984
1025
|
};
|
|
@@ -996,9 +1037,9 @@ var MistralSpeechModel = class {
|
|
|
996
1037
|
value: response,
|
|
997
1038
|
responseHeaders,
|
|
998
1039
|
rawValue: rawResponse
|
|
999
|
-
} = await (0,
|
|
1040
|
+
} = await (0, import_provider_utils7.postToApi)({
|
|
1000
1041
|
url: `${this.config.baseURL}/audio/speech`,
|
|
1001
|
-
headers: (0,
|
|
1042
|
+
headers: (0, import_provider_utils7.combineHeaders)(
|
|
1002
1043
|
{ "Content-Type": "application/json" },
|
|
1003
1044
|
(_e = (_d = this.config).headers) == null ? void 0 : _e.call(_d),
|
|
1004
1045
|
options.headers
|
|
@@ -1008,7 +1049,7 @@ var MistralSpeechModel = class {
|
|
|
1008
1049
|
values: requestBodyValues
|
|
1009
1050
|
},
|
|
1010
1051
|
failedResponseHandler: mistralFailedResponseHandler,
|
|
1011
|
-
successfulResponseHandler: (0,
|
|
1052
|
+
successfulResponseHandler: (0, import_provider_utils7.createJsonResponseHandler)(
|
|
1012
1053
|
mistralSpeechResponseSchema
|
|
1013
1054
|
),
|
|
1014
1055
|
abortSignal: options.abortSignal,
|
|
@@ -1029,20 +1070,24 @@ var MistralSpeechModel = class {
|
|
|
1029
1070
|
};
|
|
1030
1071
|
}
|
|
1031
1072
|
};
|
|
1032
|
-
var mistralSpeechResponseSchema =
|
|
1033
|
-
|
|
1034
|
-
|
|
1073
|
+
var mistralSpeechResponseSchema = (0, import_provider_utils7.lazySchema)(
|
|
1074
|
+
() => (0, import_provider_utils7.zodSchema)(
|
|
1075
|
+
import_v47.z.object({
|
|
1076
|
+
audio_data: import_v47.z.string()
|
|
1077
|
+
})
|
|
1078
|
+
)
|
|
1079
|
+
);
|
|
1035
1080
|
|
|
1036
1081
|
// src/version.ts
|
|
1037
|
-
var VERSION = true ? "3.0.
|
|
1082
|
+
var VERSION = true ? "3.0.76" : "0.0.0-test";
|
|
1038
1083
|
|
|
1039
1084
|
// src/mistral-provider.ts
|
|
1040
1085
|
function createMistral(options = {}) {
|
|
1041
1086
|
var _a;
|
|
1042
|
-
const baseURL = (_a = (0,
|
|
1043
|
-
const getHeaders = () => (0,
|
|
1087
|
+
const baseURL = (_a = (0, import_provider_utils8.withoutTrailingSlash)(options.baseURL)) != null ? _a : "https://api.mistral.ai/v1";
|
|
1088
|
+
const getHeaders = () => (0, import_provider_utils8.withUserAgentSuffix)(
|
|
1044
1089
|
{
|
|
1045
|
-
Authorization: `Bearer ${(0,
|
|
1090
|
+
Authorization: `Bearer ${(0, import_provider_utils8.loadApiKey)({
|
|
1046
1091
|
apiKey: options.apiKey,
|
|
1047
1092
|
environmentVariableName: "MISTRAL_API_KEY",
|
|
1048
1093
|
description: "Mistral"
|