sarvam-ai-sdk 0.2.0-beta → 0.3.0-beta
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/README.md +8 -4
- package/dist/index.d.mts +10 -10
- package/dist/index.d.ts +10 -10
- package/dist/index.js +108 -55
- package/dist/index.mjs +108 -55
- package/package.json +6 -6
package/README.md
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
|
+
<a href="https://github.com/rajatsandeepsen/sarvam-ai-sdk">
|
|
2
|
+
<img alt="cover" src="https://github.com/rajatsandeepsen/sarvam-ai-sdk/blob/master/cover.png?raw=true" />
|
|
3
|
+
</a>
|
|
4
|
+
|
|
1
5
|
# AI SDK - Sarvam Provider
|
|
2
6
|
|
|
3
|
-
The **[Sarvam provider](https://
|
|
7
|
+
The **[Sarvam provider](https://v6.ai-sdk.dev/providers/community-providers/sarvam)** for the [AI SDK](https://v6.ai-sdk.dev/docs)
|
|
4
8
|
contains language model support for the Sarvam chat completion, Text-to-Speech and Speech-to-Text APIs.
|
|
5
9
|
|
|
6
10
|
## Setup
|
|
@@ -8,11 +12,11 @@ contains language model support for the Sarvam chat completion, Text-to-Speech a
|
|
|
8
12
|
The **[Sarvam](http://sarvam.ai)** provider is available in the `sarvam-ai-sdk` module. You can install it with
|
|
9
13
|
|
|
10
14
|
```bash
|
|
11
|
-
npm i sarvam-ai-sdk ai@
|
|
15
|
+
npm i sarvam-ai-sdk ai@6
|
|
12
16
|
```
|
|
13
17
|
|
|
14
18
|
> [!WARNING]
|
|
15
|
-
> This package only works with Vercel AI-SDK
|
|
19
|
+
> This package only works with Vercel AI-SDK v6, not v7. Make sure to install `ai@6` in your project.
|
|
16
20
|
|
|
17
21
|
## Provider Instance
|
|
18
22
|
|
|
@@ -238,4 +242,4 @@ sarvam.speechTranslation("saaras:v3");
|
|
|
238
242
|
|
|
239
243
|
## Documentation
|
|
240
244
|
|
|
241
|
-
Please check out the **[Sarvam provider documentation](https://
|
|
245
|
+
Please check out the **[Sarvam provider documentation](https://v6.ai-sdk.dev/providers/community-providers/sarvam)** and **[Sarvam API documentation](https://docs.sarvam.ai)** for more information.
|
package/dist/index.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { FetchFunction } from "@ai-sdk/provider-utils";
|
|
2
|
-
import {
|
|
2
|
+
import { LanguageModelV3, SpeechModelV3, TranscriptionModelV3 } from "@ai-sdk/provider";
|
|
3
3
|
import z$1, { z } from "zod";
|
|
4
4
|
|
|
5
5
|
//#region src/config.d.ts
|
|
@@ -471,7 +471,7 @@ type SarvamProvider = {
|
|
|
471
471
|
* prompt: "Translate this to malayalam: 'Keep cooking, guys'",
|
|
472
472
|
* });
|
|
473
473
|
*/
|
|
474
|
-
(modelId: ChatModelId, settings?: ChatSettings):
|
|
474
|
+
(modelId: ChatModelId, settings?: ChatSettings): LanguageModelV3;
|
|
475
475
|
/**
|
|
476
476
|
* Creates an Sarvam chat model for text generation.
|
|
477
477
|
*
|
|
@@ -481,7 +481,7 @@ type SarvamProvider = {
|
|
|
481
481
|
* prompt: "Translate this to malayalam: 'Keep cooking, guys'",
|
|
482
482
|
* });
|
|
483
483
|
*/
|
|
484
|
-
languageModel(modelId: ChatModelId, settings?: ChatSettings):
|
|
484
|
+
languageModel(modelId: ChatModelId, settings?: ChatSettings): LanguageModelV3;
|
|
485
485
|
/**
|
|
486
486
|
* Creates a Sarvam model for chat.
|
|
487
487
|
*
|
|
@@ -491,7 +491,7 @@ type SarvamProvider = {
|
|
|
491
491
|
* prompt: "Translate this to malayalam: 'Keep cooking, guys'",
|
|
492
492
|
* });
|
|
493
493
|
*/
|
|
494
|
-
chat(modelId: ChatModelId, settings?: ChatSettings):
|
|
494
|
+
chat(modelId: ChatModelId, settings?: ChatSettings): LanguageModelV3;
|
|
495
495
|
/**
|
|
496
496
|
* Creates a Sarvam model for transcription.
|
|
497
497
|
*
|
|
@@ -508,7 +508,7 @@ type SarvamProvider = {
|
|
|
508
508
|
*
|
|
509
509
|
* @default unknown
|
|
510
510
|
*/
|
|
511
|
-
languageCode?: (T extends "saaras:v3" ? MoreSarvamLanguageCode : never) | SarvamLanguageCode | "unknown", settings?: TranscriptionSettings<T>):
|
|
511
|
+
languageCode?: (T extends "saaras:v3" ? MoreSarvamLanguageCode : never) | SarvamLanguageCode | "unknown", settings?: TranscriptionSettings<T>): TranscriptionModelV3;
|
|
512
512
|
/**
|
|
513
513
|
* Creates a Sarvam model for Speech translation.
|
|
514
514
|
*
|
|
@@ -518,7 +518,7 @@ type SarvamProvider = {
|
|
|
518
518
|
* audio: await readFile("./audio.wav"),
|
|
519
519
|
* });
|
|
520
520
|
*/
|
|
521
|
-
speechTranslation<T extends SpeechTranslationModelId>(modelId: T, settings?: SpeechTranslationSettings):
|
|
521
|
+
speechTranslation<T extends SpeechTranslationModelId>(modelId: T, settings?: SpeechTranslationSettings): TranscriptionModelV3;
|
|
522
522
|
/**
|
|
523
523
|
* Creates a Sarvam model for speech.
|
|
524
524
|
* @example
|
|
@@ -529,7 +529,7 @@ type SarvamProvider = {
|
|
|
529
529
|
*
|
|
530
530
|
* await writeFile("./audio.wav", Buffer.from(audio.base64, "base64"););
|
|
531
531
|
*/
|
|
532
|
-
speech<T extends SpeechModelId>(modelId: T, languageCode: SarvamLanguageCode, settings?: SpeechSettings<T>):
|
|
532
|
+
speech<T extends SpeechModelId>(modelId: T, languageCode: SarvamLanguageCode, settings?: SpeechSettings<T>): SpeechModelV3;
|
|
533
533
|
/**
|
|
534
534
|
* Creates an Sarvam model for transliterate.
|
|
535
535
|
*
|
|
@@ -542,7 +542,7 @@ type SarvamProvider = {
|
|
|
542
542
|
* prompt: "eda mone, happy alle?",
|
|
543
543
|
* });
|
|
544
544
|
*/
|
|
545
|
-
transliterate<T extends SarvamLanguageCode>(settings: TransliterateSettings<false, T>):
|
|
545
|
+
transliterate<T extends SarvamLanguageCode>(settings: TransliterateSettings<false, T>): LanguageModelV3;
|
|
546
546
|
/**
|
|
547
547
|
* Creates an Sarvam model for translation.
|
|
548
548
|
*
|
|
@@ -555,7 +555,7 @@ type SarvamProvider = {
|
|
|
555
555
|
* prompt: "ഇതൊക്കെ ശ്രദ്ധിക്കണ്ടേ അംബാനെ?",
|
|
556
556
|
* });
|
|
557
557
|
*/
|
|
558
|
-
translation<T extends TranslationModelId>(model: T, settings: TranslationSettings<T>):
|
|
558
|
+
translation<T extends TranslationModelId>(model: T, settings: TranslationSettings<T>): LanguageModelV3;
|
|
559
559
|
/**
|
|
560
560
|
* Creates an Sarvam model for language identification.
|
|
561
561
|
*
|
|
@@ -565,7 +565,7 @@ type SarvamProvider = {
|
|
|
565
565
|
* prompt: "ബുദ്ധിയാണ് സാറേ ഇവൻ്റെ മെയിൻ",
|
|
566
566
|
* });
|
|
567
567
|
*/
|
|
568
|
-
languageIdentification():
|
|
568
|
+
languageIdentification(): LanguageModelV3;
|
|
569
569
|
};
|
|
570
570
|
//#endregion
|
|
571
571
|
//#region src/provider.d.ts
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { FetchFunction } from "@ai-sdk/provider-utils";
|
|
2
2
|
import z$1, { z } from "zod";
|
|
3
|
-
import {
|
|
3
|
+
import { LanguageModelV3, SpeechModelV3, TranscriptionModelV3 } from "@ai-sdk/provider";
|
|
4
4
|
|
|
5
5
|
//#region src/config.d.ts
|
|
6
6
|
|
|
@@ -471,7 +471,7 @@ type SarvamProvider = {
|
|
|
471
471
|
* prompt: "Translate this to malayalam: 'Keep cooking, guys'",
|
|
472
472
|
* });
|
|
473
473
|
*/
|
|
474
|
-
(modelId: ChatModelId, settings?: ChatSettings):
|
|
474
|
+
(modelId: ChatModelId, settings?: ChatSettings): LanguageModelV3;
|
|
475
475
|
/**
|
|
476
476
|
* Creates an Sarvam chat model for text generation.
|
|
477
477
|
*
|
|
@@ -481,7 +481,7 @@ type SarvamProvider = {
|
|
|
481
481
|
* prompt: "Translate this to malayalam: 'Keep cooking, guys'",
|
|
482
482
|
* });
|
|
483
483
|
*/
|
|
484
|
-
languageModel(modelId: ChatModelId, settings?: ChatSettings):
|
|
484
|
+
languageModel(modelId: ChatModelId, settings?: ChatSettings): LanguageModelV3;
|
|
485
485
|
/**
|
|
486
486
|
* Creates a Sarvam model for chat.
|
|
487
487
|
*
|
|
@@ -491,7 +491,7 @@ type SarvamProvider = {
|
|
|
491
491
|
* prompt: "Translate this to malayalam: 'Keep cooking, guys'",
|
|
492
492
|
* });
|
|
493
493
|
*/
|
|
494
|
-
chat(modelId: ChatModelId, settings?: ChatSettings):
|
|
494
|
+
chat(modelId: ChatModelId, settings?: ChatSettings): LanguageModelV3;
|
|
495
495
|
/**
|
|
496
496
|
* Creates a Sarvam model for transcription.
|
|
497
497
|
*
|
|
@@ -508,7 +508,7 @@ type SarvamProvider = {
|
|
|
508
508
|
*
|
|
509
509
|
* @default unknown
|
|
510
510
|
*/
|
|
511
|
-
languageCode?: (T extends "saaras:v3" ? MoreSarvamLanguageCode : never) | SarvamLanguageCode | "unknown", settings?: TranscriptionSettings<T>):
|
|
511
|
+
languageCode?: (T extends "saaras:v3" ? MoreSarvamLanguageCode : never) | SarvamLanguageCode | "unknown", settings?: TranscriptionSettings<T>): TranscriptionModelV3;
|
|
512
512
|
/**
|
|
513
513
|
* Creates a Sarvam model for Speech translation.
|
|
514
514
|
*
|
|
@@ -518,7 +518,7 @@ type SarvamProvider = {
|
|
|
518
518
|
* audio: await readFile("./audio.wav"),
|
|
519
519
|
* });
|
|
520
520
|
*/
|
|
521
|
-
speechTranslation<T extends SpeechTranslationModelId>(modelId: T, settings?: SpeechTranslationSettings):
|
|
521
|
+
speechTranslation<T extends SpeechTranslationModelId>(modelId: T, settings?: SpeechTranslationSettings): TranscriptionModelV3;
|
|
522
522
|
/**
|
|
523
523
|
* Creates a Sarvam model for speech.
|
|
524
524
|
* @example
|
|
@@ -529,7 +529,7 @@ type SarvamProvider = {
|
|
|
529
529
|
*
|
|
530
530
|
* await writeFile("./audio.wav", Buffer.from(audio.base64, "base64"););
|
|
531
531
|
*/
|
|
532
|
-
speech<T extends SpeechModelId>(modelId: T, languageCode: SarvamLanguageCode, settings?: SpeechSettings<T>):
|
|
532
|
+
speech<T extends SpeechModelId>(modelId: T, languageCode: SarvamLanguageCode, settings?: SpeechSettings<T>): SpeechModelV3;
|
|
533
533
|
/**
|
|
534
534
|
* Creates an Sarvam model for transliterate.
|
|
535
535
|
*
|
|
@@ -542,7 +542,7 @@ type SarvamProvider = {
|
|
|
542
542
|
* prompt: "eda mone, happy alle?",
|
|
543
543
|
* });
|
|
544
544
|
*/
|
|
545
|
-
transliterate<T extends SarvamLanguageCode>(settings: TransliterateSettings<false, T>):
|
|
545
|
+
transliterate<T extends SarvamLanguageCode>(settings: TransliterateSettings<false, T>): LanguageModelV3;
|
|
546
546
|
/**
|
|
547
547
|
* Creates an Sarvam model for translation.
|
|
548
548
|
*
|
|
@@ -555,7 +555,7 @@ type SarvamProvider = {
|
|
|
555
555
|
* prompt: "ഇതൊക്കെ ശ്രദ്ധിക്കണ്ടേ അംബാനെ?",
|
|
556
556
|
* });
|
|
557
557
|
*/
|
|
558
|
-
translation<T extends TranslationModelId>(model: T, settings: TranslationSettings<T>):
|
|
558
|
+
translation<T extends TranslationModelId>(model: T, settings: TranslationSettings<T>): LanguageModelV3;
|
|
559
559
|
/**
|
|
560
560
|
* Creates an Sarvam model for language identification.
|
|
561
561
|
*
|
|
@@ -565,7 +565,7 @@ type SarvamProvider = {
|
|
|
565
565
|
* prompt: "ബുദ്ധിയാണ് സാറേ ഇവൻ്റെ മെയിൻ",
|
|
566
566
|
* });
|
|
567
567
|
*/
|
|
568
|
-
languageIdentification():
|
|
568
|
+
languageIdentification(): LanguageModelV3;
|
|
569
569
|
};
|
|
570
570
|
//#endregion
|
|
571
571
|
//#region src/provider.d.ts
|
package/dist/index.js
CHANGED
|
@@ -133,7 +133,7 @@ function prepareTools({ tools, toolChoice }) {
|
|
|
133
133
|
toolWarnings
|
|
134
134
|
};
|
|
135
135
|
const sarvamTools = [];
|
|
136
|
-
for (const tool of finalTools) if (tool.type === "provider
|
|
136
|
+
for (const tool of finalTools) if (tool.type === "provider") toolWarnings.push({
|
|
137
137
|
type: "unsupported-tool",
|
|
138
138
|
tool
|
|
139
139
|
});
|
|
@@ -243,14 +243,14 @@ const chatChunkSchema = zod.default.union([zod.default.object({
|
|
|
243
243
|
|
|
244
244
|
//#endregion
|
|
245
245
|
//#region src/chat/utils.ts
|
|
246
|
-
function
|
|
246
|
+
function mapFinishReason(finishReason) {
|
|
247
247
|
switch (finishReason) {
|
|
248
248
|
case "stop": return "stop";
|
|
249
249
|
case "length": return "length";
|
|
250
250
|
case "content_filter": return "content-filter";
|
|
251
251
|
case "function_call":
|
|
252
252
|
case "tool_calls": return "tool-calls";
|
|
253
|
-
default: return "
|
|
253
|
+
default: return "other";
|
|
254
254
|
}
|
|
255
255
|
}
|
|
256
256
|
function getResponseMetadata({ id, model, created }) {
|
|
@@ -265,7 +265,7 @@ function getResponseMetadata({ id, model, created }) {
|
|
|
265
265
|
//#region src/chat/language-model.ts
|
|
266
266
|
var SarvamChatLanguageModel = class {
|
|
267
267
|
constructor(modelId, settings, config) {
|
|
268
|
-
this.specificationVersion = "
|
|
268
|
+
this.specificationVersion = "v3";
|
|
269
269
|
this.modelId = modelId;
|
|
270
270
|
this.settings = settings;
|
|
271
271
|
this.config = config;
|
|
@@ -280,8 +280,8 @@ var SarvamChatLanguageModel = class {
|
|
|
280
280
|
const { prompt, maxOutputTokens, temperature, topP, topK, frequencyPenalty, presencePenalty, stopSequences, responseFormat, seed, tools, toolChoice, providerOptions, stream } = options;
|
|
281
281
|
const warnings = [];
|
|
282
282
|
if (topK) warnings.push({
|
|
283
|
-
type: "unsupported
|
|
284
|
-
|
|
283
|
+
type: "unsupported",
|
|
284
|
+
feature: "topK"
|
|
285
285
|
});
|
|
286
286
|
const sarvamOptions = await (0, __ai_sdk_provider_utils.parseProviderOptions)({
|
|
287
287
|
provider: "sarvam",
|
|
@@ -377,11 +377,19 @@ var SarvamChatLanguageModel = class {
|
|
|
377
377
|
}
|
|
378
378
|
return {
|
|
379
379
|
content,
|
|
380
|
-
finishReason:
|
|
380
|
+
finishReason: mapFinishReason(choice.finish_reason),
|
|
381
381
|
usage: {
|
|
382
|
-
inputTokens:
|
|
383
|
-
|
|
384
|
-
|
|
382
|
+
inputTokens: {
|
|
383
|
+
total: response.usage?.prompt_tokens ?? void 0,
|
|
384
|
+
noCache: void 0,
|
|
385
|
+
cacheRead: void 0,
|
|
386
|
+
cacheWrite: void 0
|
|
387
|
+
},
|
|
388
|
+
outputTokens: {
|
|
389
|
+
total: response.usage?.completion_tokens ?? void 0,
|
|
390
|
+
text: void 0,
|
|
391
|
+
reasoning: void 0
|
|
392
|
+
}
|
|
385
393
|
},
|
|
386
394
|
warnings,
|
|
387
395
|
request: { body },
|
|
@@ -392,7 +400,7 @@ var SarvamChatLanguageModel = class {
|
|
|
392
400
|
};
|
|
393
401
|
}
|
|
394
402
|
async doStream(options) {
|
|
395
|
-
const { args
|
|
403
|
+
const { args } = await this.getArgs({
|
|
396
404
|
...options,
|
|
397
405
|
stream: true
|
|
398
406
|
});
|
|
@@ -416,10 +424,22 @@ var SarvamChatLanguageModel = class {
|
|
|
416
424
|
fetch: this.config.fetch
|
|
417
425
|
});
|
|
418
426
|
const toolCalls = [];
|
|
419
|
-
let finishReason =
|
|
427
|
+
let finishReason = {
|
|
428
|
+
unified: "other",
|
|
429
|
+
raw: void 0
|
|
430
|
+
};
|
|
420
431
|
let usage = {
|
|
421
|
-
inputTokens:
|
|
422
|
-
|
|
432
|
+
inputTokens: {
|
|
433
|
+
total: void 0,
|
|
434
|
+
noCache: void 0,
|
|
435
|
+
cacheRead: void 0,
|
|
436
|
+
cacheWrite: void 0
|
|
437
|
+
},
|
|
438
|
+
outputTokens: {
|
|
439
|
+
total: void 0,
|
|
440
|
+
text: void 0,
|
|
441
|
+
reasoning: void 0
|
|
442
|
+
}
|
|
423
443
|
};
|
|
424
444
|
let isFirstChunk = true;
|
|
425
445
|
this.config;
|
|
@@ -427,7 +447,10 @@ var SarvamChatLanguageModel = class {
|
|
|
427
447
|
stream: response.pipeThrough(new TransformStream({
|
|
428
448
|
transform(chunk, controller) {
|
|
429
449
|
if (!chunk.success) {
|
|
430
|
-
finishReason =
|
|
450
|
+
finishReason = {
|
|
451
|
+
unified: "error",
|
|
452
|
+
raw: void 0
|
|
453
|
+
};
|
|
431
454
|
controller.enqueue({
|
|
432
455
|
type: "error",
|
|
433
456
|
error: chunk.error
|
|
@@ -436,7 +459,10 @@ var SarvamChatLanguageModel = class {
|
|
|
436
459
|
}
|
|
437
460
|
const value = chunk.value;
|
|
438
461
|
if ("error" in value) {
|
|
439
|
-
finishReason =
|
|
462
|
+
finishReason = {
|
|
463
|
+
unified: "error",
|
|
464
|
+
raw: void 0
|
|
465
|
+
};
|
|
440
466
|
controller.enqueue({
|
|
441
467
|
type: "error",
|
|
442
468
|
error: value.error
|
|
@@ -452,11 +478,23 @@ var SarvamChatLanguageModel = class {
|
|
|
452
478
|
});
|
|
453
479
|
}
|
|
454
480
|
if (value.x_sarvam?.usage != null) usage = {
|
|
455
|
-
inputTokens:
|
|
456
|
-
|
|
481
|
+
inputTokens: {
|
|
482
|
+
total: value.x_sarvam.usage.prompt_tokens ?? void 0,
|
|
483
|
+
noCache: void 0,
|
|
484
|
+
cacheRead: void 0,
|
|
485
|
+
cacheWrite: void 0
|
|
486
|
+
},
|
|
487
|
+
outputTokens: {
|
|
488
|
+
total: value.x_sarvam.usage.completion_tokens ?? void 0,
|
|
489
|
+
text: void 0,
|
|
490
|
+
reasoning: void 0
|
|
491
|
+
}
|
|
457
492
|
};
|
|
458
493
|
const choice = value.choices[0];
|
|
459
|
-
if (choice?.finish_reason != null) finishReason =
|
|
494
|
+
if (choice?.finish_reason != null) finishReason = {
|
|
495
|
+
unified: mapFinishReason(choice.finish_reason),
|
|
496
|
+
raw: choice.finish_reason
|
|
497
|
+
};
|
|
460
498
|
if (choice?.delta == null) return;
|
|
461
499
|
const delta = choice.delta;
|
|
462
500
|
if (delta.reasoning != null && delta.reasoning.length > 0) controller.enqueue({
|
|
@@ -532,11 +570,7 @@ var SarvamChatLanguageModel = class {
|
|
|
532
570
|
controller.enqueue({
|
|
533
571
|
type: "finish",
|
|
534
572
|
finishReason,
|
|
535
|
-
usage
|
|
536
|
-
inputTokens: usage.inputTokens ?? 0,
|
|
537
|
-
outputTokens: usage.outputTokens ?? 0,
|
|
538
|
-
totalTokens: (usage.inputTokens ?? 0) + (usage.outputTokens ?? 0)
|
|
539
|
-
}
|
|
573
|
+
usage
|
|
540
574
|
});
|
|
541
575
|
}
|
|
542
576
|
})),
|
|
@@ -596,7 +630,7 @@ var SarvamSpeechTranslationModel = class {
|
|
|
596
630
|
constructor(modelId, config) {
|
|
597
631
|
this.modelId = modelId;
|
|
598
632
|
this.config = config;
|
|
599
|
-
this.specificationVersion = "
|
|
633
|
+
this.specificationVersion = "v3";
|
|
600
634
|
}
|
|
601
635
|
get provider() {
|
|
602
636
|
return this.config.provider;
|
|
@@ -606,7 +640,6 @@ var SarvamSpeechTranslationModel = class {
|
|
|
606
640
|
}
|
|
607
641
|
async getArgs(options) {
|
|
608
642
|
const { audio, mediaType, providerOptions } = options;
|
|
609
|
-
const warnings = [];
|
|
610
643
|
const sarvamOptions = await (0, __ai_sdk_provider_utils.parseProviderOptions)({
|
|
611
644
|
provider: "sarvam",
|
|
612
645
|
providerOptions: { sarvam: {
|
|
@@ -624,7 +657,7 @@ var SarvamSpeechTranslationModel = class {
|
|
|
624
657
|
});
|
|
625
658
|
return {
|
|
626
659
|
formData,
|
|
627
|
-
warnings
|
|
660
|
+
warnings: []
|
|
628
661
|
};
|
|
629
662
|
}
|
|
630
663
|
async doGenerate(options) {
|
|
@@ -747,7 +780,7 @@ var SarvamTranscriptionModel = class {
|
|
|
747
780
|
this.modelId = modelId;
|
|
748
781
|
this.languageCode = languageCode;
|
|
749
782
|
this.config = config;
|
|
750
|
-
this.specificationVersion = "
|
|
783
|
+
this.specificationVersion = "v3";
|
|
751
784
|
}
|
|
752
785
|
get provider() {
|
|
753
786
|
return this.config.provider;
|
|
@@ -757,7 +790,6 @@ var SarvamTranscriptionModel = class {
|
|
|
757
790
|
}
|
|
758
791
|
async getArgs(options) {
|
|
759
792
|
const { audio, mediaType, providerOptions } = options;
|
|
760
|
-
const warnings = [];
|
|
761
793
|
const sarvamOptions = await (0, __ai_sdk_provider_utils.parseProviderOptions)({
|
|
762
794
|
provider: "sarvam",
|
|
763
795
|
providerOptions: { sarvam: {
|
|
@@ -780,7 +812,7 @@ var SarvamTranscriptionModel = class {
|
|
|
780
812
|
});
|
|
781
813
|
return {
|
|
782
814
|
formData,
|
|
783
|
-
warnings
|
|
815
|
+
warnings: []
|
|
784
816
|
};
|
|
785
817
|
}
|
|
786
818
|
async doGenerate(options) {
|
|
@@ -923,11 +955,10 @@ var SarvamSpeechModel = class {
|
|
|
923
955
|
this.modelId = modelId;
|
|
924
956
|
this.languageCode = languageCode;
|
|
925
957
|
this.config = config;
|
|
926
|
-
this.specificationVersion = "
|
|
958
|
+
this.specificationVersion = "v3";
|
|
927
959
|
}
|
|
928
960
|
async getArgs(options) {
|
|
929
961
|
const { text, voice, outputFormat = "wav", speed, providerOptions } = options;
|
|
930
|
-
const warnings = [];
|
|
931
962
|
const sarvamOptions = await (0, __ai_sdk_provider_utils.parseProviderOptions)({
|
|
932
963
|
provider: "sarvam",
|
|
933
964
|
providerOptions: { sarvam: {
|
|
@@ -949,7 +980,7 @@ var SarvamSpeechModel = class {
|
|
|
949
980
|
});
|
|
950
981
|
return {
|
|
951
982
|
requestBody,
|
|
952
|
-
warnings
|
|
983
|
+
warnings: []
|
|
953
984
|
};
|
|
954
985
|
}
|
|
955
986
|
async doGenerate(options) {
|
|
@@ -1002,7 +1033,7 @@ const convertPromptToInput = (prompt) => {
|
|
|
1002
1033
|
//#region src/ttt/lid-model.ts
|
|
1003
1034
|
var SarvamLidModel = class {
|
|
1004
1035
|
constructor(config) {
|
|
1005
|
-
this.specificationVersion = "
|
|
1036
|
+
this.specificationVersion = "v3";
|
|
1006
1037
|
this.modelId = "unknown";
|
|
1007
1038
|
this.config = config;
|
|
1008
1039
|
}
|
|
@@ -1020,7 +1051,7 @@ var SarvamLidModel = class {
|
|
|
1020
1051
|
};
|
|
1021
1052
|
}
|
|
1022
1053
|
async doGenerate(options) {
|
|
1023
|
-
const { args
|
|
1054
|
+
const { args } = this.getArgs({
|
|
1024
1055
|
...options,
|
|
1025
1056
|
stream: false
|
|
1026
1057
|
});
|
|
@@ -1043,11 +1074,19 @@ var SarvamLidModel = class {
|
|
|
1043
1074
|
}],
|
|
1044
1075
|
finishReason: "stop",
|
|
1045
1076
|
usage: {
|
|
1046
|
-
inputTokens:
|
|
1047
|
-
|
|
1048
|
-
|
|
1077
|
+
inputTokens: {
|
|
1078
|
+
total: void 0,
|
|
1079
|
+
noCache: void 0,
|
|
1080
|
+
cacheRead: void 0,
|
|
1081
|
+
cacheWrite: void 0
|
|
1082
|
+
},
|
|
1083
|
+
outputTokens: {
|
|
1084
|
+
total: void 0,
|
|
1085
|
+
text: void 0,
|
|
1086
|
+
reasoning: void 0
|
|
1087
|
+
}
|
|
1049
1088
|
},
|
|
1050
|
-
warnings
|
|
1089
|
+
warnings: []
|
|
1051
1090
|
};
|
|
1052
1091
|
}
|
|
1053
1092
|
async doStream(_options) {
|
|
@@ -1089,7 +1128,7 @@ const translationResponseSchema = zod.default.object({
|
|
|
1089
1128
|
//#region src/ttt/translation-model.ts
|
|
1090
1129
|
var SarvamTranslationModel = class {
|
|
1091
1130
|
constructor(modelId, settings, config) {
|
|
1092
|
-
this.specificationVersion = "
|
|
1131
|
+
this.specificationVersion = "v3";
|
|
1093
1132
|
this.modelId = modelId;
|
|
1094
1133
|
this.settings = settings;
|
|
1095
1134
|
this.config = config;
|
|
@@ -1102,7 +1141,6 @@ var SarvamTranslationModel = class {
|
|
|
1102
1141
|
}
|
|
1103
1142
|
async getArgs(options) {
|
|
1104
1143
|
const { prompt, providerOptions } = options;
|
|
1105
|
-
const warnings = [];
|
|
1106
1144
|
const sarvamOptions = await (0, __ai_sdk_provider_utils.parseProviderOptions)({
|
|
1107
1145
|
provider: "sarvam",
|
|
1108
1146
|
providerOptions: { sarvam: {
|
|
@@ -1127,11 +1165,11 @@ var SarvamTranslationModel = class {
|
|
|
1127
1165
|
source_language_code: from,
|
|
1128
1166
|
target_language_code: to
|
|
1129
1167
|
},
|
|
1130
|
-
warnings
|
|
1168
|
+
warnings: []
|
|
1131
1169
|
};
|
|
1132
1170
|
}
|
|
1133
1171
|
async doGenerate(options) {
|
|
1134
|
-
const { args
|
|
1172
|
+
const { args } = await this.getArgs({
|
|
1135
1173
|
...options,
|
|
1136
1174
|
stream: false
|
|
1137
1175
|
});
|
|
@@ -1154,11 +1192,19 @@ var SarvamTranslationModel = class {
|
|
|
1154
1192
|
}],
|
|
1155
1193
|
finishReason: "stop",
|
|
1156
1194
|
usage: {
|
|
1157
|
-
inputTokens:
|
|
1158
|
-
|
|
1159
|
-
|
|
1195
|
+
inputTokens: {
|
|
1196
|
+
total: void 0,
|
|
1197
|
+
noCache: void 0,
|
|
1198
|
+
cacheRead: void 0,
|
|
1199
|
+
cacheWrite: void 0
|
|
1200
|
+
},
|
|
1201
|
+
outputTokens: {
|
|
1202
|
+
total: void 0,
|
|
1203
|
+
text: void 0,
|
|
1204
|
+
reasoning: void 0
|
|
1205
|
+
}
|
|
1160
1206
|
},
|
|
1161
|
-
warnings
|
|
1207
|
+
warnings: []
|
|
1162
1208
|
};
|
|
1163
1209
|
}
|
|
1164
1210
|
async doStream(_options) {
|
|
@@ -1185,7 +1231,7 @@ const transliterateResponseSchema = zod.default.object({
|
|
|
1185
1231
|
//#region src/ttt/transliterate-model.ts
|
|
1186
1232
|
var SarvamTransliterateModel = class {
|
|
1187
1233
|
constructor(settings, config) {
|
|
1188
|
-
this.specificationVersion = "
|
|
1234
|
+
this.specificationVersion = "v3";
|
|
1189
1235
|
this.modelId = "unknown";
|
|
1190
1236
|
this.settings = settings;
|
|
1191
1237
|
this.config = config;
|
|
@@ -1198,7 +1244,6 @@ var SarvamTransliterateModel = class {
|
|
|
1198
1244
|
}
|
|
1199
1245
|
async getArgs(options) {
|
|
1200
1246
|
const { prompt, providerOptions } = options;
|
|
1201
|
-
const warnings = [];
|
|
1202
1247
|
const sarvamOptions = await (0, __ai_sdk_provider_utils.parseProviderOptions)({
|
|
1203
1248
|
provider: "sarvam",
|
|
1204
1249
|
providerOptions: { sarvam: {
|
|
@@ -1223,11 +1268,11 @@ var SarvamTransliterateModel = class {
|
|
|
1223
1268
|
target_language_code: to,
|
|
1224
1269
|
spoken_form_numerals_language: sarvamOptions.spoken_form ? sarvamOptions.spoken_form_numerals_language ?? "english" : void 0
|
|
1225
1270
|
},
|
|
1226
|
-
warnings
|
|
1271
|
+
warnings: []
|
|
1227
1272
|
};
|
|
1228
1273
|
}
|
|
1229
1274
|
async doGenerate(options) {
|
|
1230
|
-
const { args
|
|
1275
|
+
const { args } = await this.getArgs({
|
|
1231
1276
|
...options,
|
|
1232
1277
|
stream: false
|
|
1233
1278
|
});
|
|
@@ -1250,11 +1295,19 @@ var SarvamTransliterateModel = class {
|
|
|
1250
1295
|
}],
|
|
1251
1296
|
finishReason: "stop",
|
|
1252
1297
|
usage: {
|
|
1253
|
-
inputTokens:
|
|
1254
|
-
|
|
1255
|
-
|
|
1298
|
+
inputTokens: {
|
|
1299
|
+
total: void 0,
|
|
1300
|
+
noCache: void 0,
|
|
1301
|
+
cacheRead: void 0,
|
|
1302
|
+
cacheWrite: void 0
|
|
1303
|
+
},
|
|
1304
|
+
outputTokens: {
|
|
1305
|
+
total: void 0,
|
|
1306
|
+
text: void 0,
|
|
1307
|
+
reasoning: void 0
|
|
1308
|
+
}
|
|
1256
1309
|
},
|
|
1257
|
-
warnings
|
|
1310
|
+
warnings: []
|
|
1258
1311
|
};
|
|
1259
1312
|
}
|
|
1260
1313
|
async doStream(_options) {
|
package/dist/index.mjs
CHANGED
|
@@ -107,7 +107,7 @@ function prepareTools({ tools, toolChoice }) {
|
|
|
107
107
|
toolWarnings
|
|
108
108
|
};
|
|
109
109
|
const sarvamTools = [];
|
|
110
|
-
for (const tool of finalTools) if (tool.type === "provider
|
|
110
|
+
for (const tool of finalTools) if (tool.type === "provider") toolWarnings.push({
|
|
111
111
|
type: "unsupported-tool",
|
|
112
112
|
tool
|
|
113
113
|
});
|
|
@@ -217,14 +217,14 @@ const chatChunkSchema = z$1.union([z$1.object({
|
|
|
217
217
|
|
|
218
218
|
//#endregion
|
|
219
219
|
//#region src/chat/utils.ts
|
|
220
|
-
function
|
|
220
|
+
function mapFinishReason(finishReason) {
|
|
221
221
|
switch (finishReason) {
|
|
222
222
|
case "stop": return "stop";
|
|
223
223
|
case "length": return "length";
|
|
224
224
|
case "content_filter": return "content-filter";
|
|
225
225
|
case "function_call":
|
|
226
226
|
case "tool_calls": return "tool-calls";
|
|
227
|
-
default: return "
|
|
227
|
+
default: return "other";
|
|
228
228
|
}
|
|
229
229
|
}
|
|
230
230
|
function getResponseMetadata({ id, model, created }) {
|
|
@@ -239,7 +239,7 @@ function getResponseMetadata({ id, model, created }) {
|
|
|
239
239
|
//#region src/chat/language-model.ts
|
|
240
240
|
var SarvamChatLanguageModel = class {
|
|
241
241
|
constructor(modelId, settings, config) {
|
|
242
|
-
this.specificationVersion = "
|
|
242
|
+
this.specificationVersion = "v3";
|
|
243
243
|
this.modelId = modelId;
|
|
244
244
|
this.settings = settings;
|
|
245
245
|
this.config = config;
|
|
@@ -254,8 +254,8 @@ var SarvamChatLanguageModel = class {
|
|
|
254
254
|
const { prompt, maxOutputTokens, temperature, topP, topK, frequencyPenalty, presencePenalty, stopSequences, responseFormat, seed, tools, toolChoice, providerOptions, stream } = options;
|
|
255
255
|
const warnings = [];
|
|
256
256
|
if (topK) warnings.push({
|
|
257
|
-
type: "unsupported
|
|
258
|
-
|
|
257
|
+
type: "unsupported",
|
|
258
|
+
feature: "topK"
|
|
259
259
|
});
|
|
260
260
|
const sarvamOptions = await parseProviderOptions({
|
|
261
261
|
provider: "sarvam",
|
|
@@ -351,11 +351,19 @@ var SarvamChatLanguageModel = class {
|
|
|
351
351
|
}
|
|
352
352
|
return {
|
|
353
353
|
content,
|
|
354
|
-
finishReason:
|
|
354
|
+
finishReason: mapFinishReason(choice.finish_reason),
|
|
355
355
|
usage: {
|
|
356
|
-
inputTokens:
|
|
357
|
-
|
|
358
|
-
|
|
356
|
+
inputTokens: {
|
|
357
|
+
total: response.usage?.prompt_tokens ?? void 0,
|
|
358
|
+
noCache: void 0,
|
|
359
|
+
cacheRead: void 0,
|
|
360
|
+
cacheWrite: void 0
|
|
361
|
+
},
|
|
362
|
+
outputTokens: {
|
|
363
|
+
total: response.usage?.completion_tokens ?? void 0,
|
|
364
|
+
text: void 0,
|
|
365
|
+
reasoning: void 0
|
|
366
|
+
}
|
|
359
367
|
},
|
|
360
368
|
warnings,
|
|
361
369
|
request: { body },
|
|
@@ -366,7 +374,7 @@ var SarvamChatLanguageModel = class {
|
|
|
366
374
|
};
|
|
367
375
|
}
|
|
368
376
|
async doStream(options) {
|
|
369
|
-
const { args
|
|
377
|
+
const { args } = await this.getArgs({
|
|
370
378
|
...options,
|
|
371
379
|
stream: true
|
|
372
380
|
});
|
|
@@ -390,10 +398,22 @@ var SarvamChatLanguageModel = class {
|
|
|
390
398
|
fetch: this.config.fetch
|
|
391
399
|
});
|
|
392
400
|
const toolCalls = [];
|
|
393
|
-
let finishReason =
|
|
401
|
+
let finishReason = {
|
|
402
|
+
unified: "other",
|
|
403
|
+
raw: void 0
|
|
404
|
+
};
|
|
394
405
|
let usage = {
|
|
395
|
-
inputTokens:
|
|
396
|
-
|
|
406
|
+
inputTokens: {
|
|
407
|
+
total: void 0,
|
|
408
|
+
noCache: void 0,
|
|
409
|
+
cacheRead: void 0,
|
|
410
|
+
cacheWrite: void 0
|
|
411
|
+
},
|
|
412
|
+
outputTokens: {
|
|
413
|
+
total: void 0,
|
|
414
|
+
text: void 0,
|
|
415
|
+
reasoning: void 0
|
|
416
|
+
}
|
|
397
417
|
};
|
|
398
418
|
let isFirstChunk = true;
|
|
399
419
|
this.config;
|
|
@@ -401,7 +421,10 @@ var SarvamChatLanguageModel = class {
|
|
|
401
421
|
stream: response.pipeThrough(new TransformStream({
|
|
402
422
|
transform(chunk, controller) {
|
|
403
423
|
if (!chunk.success) {
|
|
404
|
-
finishReason =
|
|
424
|
+
finishReason = {
|
|
425
|
+
unified: "error",
|
|
426
|
+
raw: void 0
|
|
427
|
+
};
|
|
405
428
|
controller.enqueue({
|
|
406
429
|
type: "error",
|
|
407
430
|
error: chunk.error
|
|
@@ -410,7 +433,10 @@ var SarvamChatLanguageModel = class {
|
|
|
410
433
|
}
|
|
411
434
|
const value = chunk.value;
|
|
412
435
|
if ("error" in value) {
|
|
413
|
-
finishReason =
|
|
436
|
+
finishReason = {
|
|
437
|
+
unified: "error",
|
|
438
|
+
raw: void 0
|
|
439
|
+
};
|
|
414
440
|
controller.enqueue({
|
|
415
441
|
type: "error",
|
|
416
442
|
error: value.error
|
|
@@ -426,11 +452,23 @@ var SarvamChatLanguageModel = class {
|
|
|
426
452
|
});
|
|
427
453
|
}
|
|
428
454
|
if (value.x_sarvam?.usage != null) usage = {
|
|
429
|
-
inputTokens:
|
|
430
|
-
|
|
455
|
+
inputTokens: {
|
|
456
|
+
total: value.x_sarvam.usage.prompt_tokens ?? void 0,
|
|
457
|
+
noCache: void 0,
|
|
458
|
+
cacheRead: void 0,
|
|
459
|
+
cacheWrite: void 0
|
|
460
|
+
},
|
|
461
|
+
outputTokens: {
|
|
462
|
+
total: value.x_sarvam.usage.completion_tokens ?? void 0,
|
|
463
|
+
text: void 0,
|
|
464
|
+
reasoning: void 0
|
|
465
|
+
}
|
|
431
466
|
};
|
|
432
467
|
const choice = value.choices[0];
|
|
433
|
-
if (choice?.finish_reason != null) finishReason =
|
|
468
|
+
if (choice?.finish_reason != null) finishReason = {
|
|
469
|
+
unified: mapFinishReason(choice.finish_reason),
|
|
470
|
+
raw: choice.finish_reason
|
|
471
|
+
};
|
|
434
472
|
if (choice?.delta == null) return;
|
|
435
473
|
const delta = choice.delta;
|
|
436
474
|
if (delta.reasoning != null && delta.reasoning.length > 0) controller.enqueue({
|
|
@@ -506,11 +544,7 @@ var SarvamChatLanguageModel = class {
|
|
|
506
544
|
controller.enqueue({
|
|
507
545
|
type: "finish",
|
|
508
546
|
finishReason,
|
|
509
|
-
usage
|
|
510
|
-
inputTokens: usage.inputTokens ?? 0,
|
|
511
|
-
outputTokens: usage.outputTokens ?? 0,
|
|
512
|
-
totalTokens: (usage.inputTokens ?? 0) + (usage.outputTokens ?? 0)
|
|
513
|
-
}
|
|
547
|
+
usage
|
|
514
548
|
});
|
|
515
549
|
}
|
|
516
550
|
})),
|
|
@@ -570,7 +604,7 @@ var SarvamSpeechTranslationModel = class {
|
|
|
570
604
|
constructor(modelId, config) {
|
|
571
605
|
this.modelId = modelId;
|
|
572
606
|
this.config = config;
|
|
573
|
-
this.specificationVersion = "
|
|
607
|
+
this.specificationVersion = "v3";
|
|
574
608
|
}
|
|
575
609
|
get provider() {
|
|
576
610
|
return this.config.provider;
|
|
@@ -580,7 +614,6 @@ var SarvamSpeechTranslationModel = class {
|
|
|
580
614
|
}
|
|
581
615
|
async getArgs(options) {
|
|
582
616
|
const { audio, mediaType, providerOptions } = options;
|
|
583
|
-
const warnings = [];
|
|
584
617
|
const sarvamOptions = await parseProviderOptions({
|
|
585
618
|
provider: "sarvam",
|
|
586
619
|
providerOptions: { sarvam: {
|
|
@@ -598,7 +631,7 @@ var SarvamSpeechTranslationModel = class {
|
|
|
598
631
|
});
|
|
599
632
|
return {
|
|
600
633
|
formData,
|
|
601
|
-
warnings
|
|
634
|
+
warnings: []
|
|
602
635
|
};
|
|
603
636
|
}
|
|
604
637
|
async doGenerate(options) {
|
|
@@ -721,7 +754,7 @@ var SarvamTranscriptionModel = class {
|
|
|
721
754
|
this.modelId = modelId;
|
|
722
755
|
this.languageCode = languageCode;
|
|
723
756
|
this.config = config;
|
|
724
|
-
this.specificationVersion = "
|
|
757
|
+
this.specificationVersion = "v3";
|
|
725
758
|
}
|
|
726
759
|
get provider() {
|
|
727
760
|
return this.config.provider;
|
|
@@ -731,7 +764,6 @@ var SarvamTranscriptionModel = class {
|
|
|
731
764
|
}
|
|
732
765
|
async getArgs(options) {
|
|
733
766
|
const { audio, mediaType, providerOptions } = options;
|
|
734
|
-
const warnings = [];
|
|
735
767
|
const sarvamOptions = await parseProviderOptions({
|
|
736
768
|
provider: "sarvam",
|
|
737
769
|
providerOptions: { sarvam: {
|
|
@@ -754,7 +786,7 @@ var SarvamTranscriptionModel = class {
|
|
|
754
786
|
});
|
|
755
787
|
return {
|
|
756
788
|
formData,
|
|
757
|
-
warnings
|
|
789
|
+
warnings: []
|
|
758
790
|
};
|
|
759
791
|
}
|
|
760
792
|
async doGenerate(options) {
|
|
@@ -897,11 +929,10 @@ var SarvamSpeechModel = class {
|
|
|
897
929
|
this.modelId = modelId;
|
|
898
930
|
this.languageCode = languageCode;
|
|
899
931
|
this.config = config;
|
|
900
|
-
this.specificationVersion = "
|
|
932
|
+
this.specificationVersion = "v3";
|
|
901
933
|
}
|
|
902
934
|
async getArgs(options) {
|
|
903
935
|
const { text, voice, outputFormat = "wav", speed, providerOptions } = options;
|
|
904
|
-
const warnings = [];
|
|
905
936
|
const sarvamOptions = await parseProviderOptions({
|
|
906
937
|
provider: "sarvam",
|
|
907
938
|
providerOptions: { sarvam: {
|
|
@@ -923,7 +954,7 @@ var SarvamSpeechModel = class {
|
|
|
923
954
|
});
|
|
924
955
|
return {
|
|
925
956
|
requestBody,
|
|
926
|
-
warnings
|
|
957
|
+
warnings: []
|
|
927
958
|
};
|
|
928
959
|
}
|
|
929
960
|
async doGenerate(options) {
|
|
@@ -976,7 +1007,7 @@ const convertPromptToInput = (prompt) => {
|
|
|
976
1007
|
//#region src/ttt/lid-model.ts
|
|
977
1008
|
var SarvamLidModel = class {
|
|
978
1009
|
constructor(config) {
|
|
979
|
-
this.specificationVersion = "
|
|
1010
|
+
this.specificationVersion = "v3";
|
|
980
1011
|
this.modelId = "unknown";
|
|
981
1012
|
this.config = config;
|
|
982
1013
|
}
|
|
@@ -994,7 +1025,7 @@ var SarvamLidModel = class {
|
|
|
994
1025
|
};
|
|
995
1026
|
}
|
|
996
1027
|
async doGenerate(options) {
|
|
997
|
-
const { args
|
|
1028
|
+
const { args } = this.getArgs({
|
|
998
1029
|
...options,
|
|
999
1030
|
stream: false
|
|
1000
1031
|
});
|
|
@@ -1017,11 +1048,19 @@ var SarvamLidModel = class {
|
|
|
1017
1048
|
}],
|
|
1018
1049
|
finishReason: "stop",
|
|
1019
1050
|
usage: {
|
|
1020
|
-
inputTokens:
|
|
1021
|
-
|
|
1022
|
-
|
|
1051
|
+
inputTokens: {
|
|
1052
|
+
total: void 0,
|
|
1053
|
+
noCache: void 0,
|
|
1054
|
+
cacheRead: void 0,
|
|
1055
|
+
cacheWrite: void 0
|
|
1056
|
+
},
|
|
1057
|
+
outputTokens: {
|
|
1058
|
+
total: void 0,
|
|
1059
|
+
text: void 0,
|
|
1060
|
+
reasoning: void 0
|
|
1061
|
+
}
|
|
1023
1062
|
},
|
|
1024
|
-
warnings
|
|
1063
|
+
warnings: []
|
|
1025
1064
|
};
|
|
1026
1065
|
}
|
|
1027
1066
|
async doStream(_options) {
|
|
@@ -1063,7 +1102,7 @@ const translationResponseSchema = z$1.object({
|
|
|
1063
1102
|
//#region src/ttt/translation-model.ts
|
|
1064
1103
|
var SarvamTranslationModel = class {
|
|
1065
1104
|
constructor(modelId, settings, config) {
|
|
1066
|
-
this.specificationVersion = "
|
|
1105
|
+
this.specificationVersion = "v3";
|
|
1067
1106
|
this.modelId = modelId;
|
|
1068
1107
|
this.settings = settings;
|
|
1069
1108
|
this.config = config;
|
|
@@ -1076,7 +1115,6 @@ var SarvamTranslationModel = class {
|
|
|
1076
1115
|
}
|
|
1077
1116
|
async getArgs(options) {
|
|
1078
1117
|
const { prompt, providerOptions } = options;
|
|
1079
|
-
const warnings = [];
|
|
1080
1118
|
const sarvamOptions = await parseProviderOptions({
|
|
1081
1119
|
provider: "sarvam",
|
|
1082
1120
|
providerOptions: { sarvam: {
|
|
@@ -1101,11 +1139,11 @@ var SarvamTranslationModel = class {
|
|
|
1101
1139
|
source_language_code: from,
|
|
1102
1140
|
target_language_code: to
|
|
1103
1141
|
},
|
|
1104
|
-
warnings
|
|
1142
|
+
warnings: []
|
|
1105
1143
|
};
|
|
1106
1144
|
}
|
|
1107
1145
|
async doGenerate(options) {
|
|
1108
|
-
const { args
|
|
1146
|
+
const { args } = await this.getArgs({
|
|
1109
1147
|
...options,
|
|
1110
1148
|
stream: false
|
|
1111
1149
|
});
|
|
@@ -1128,11 +1166,19 @@ var SarvamTranslationModel = class {
|
|
|
1128
1166
|
}],
|
|
1129
1167
|
finishReason: "stop",
|
|
1130
1168
|
usage: {
|
|
1131
|
-
inputTokens:
|
|
1132
|
-
|
|
1133
|
-
|
|
1169
|
+
inputTokens: {
|
|
1170
|
+
total: void 0,
|
|
1171
|
+
noCache: void 0,
|
|
1172
|
+
cacheRead: void 0,
|
|
1173
|
+
cacheWrite: void 0
|
|
1174
|
+
},
|
|
1175
|
+
outputTokens: {
|
|
1176
|
+
total: void 0,
|
|
1177
|
+
text: void 0,
|
|
1178
|
+
reasoning: void 0
|
|
1179
|
+
}
|
|
1134
1180
|
},
|
|
1135
|
-
warnings
|
|
1181
|
+
warnings: []
|
|
1136
1182
|
};
|
|
1137
1183
|
}
|
|
1138
1184
|
async doStream(_options) {
|
|
@@ -1159,7 +1205,7 @@ const transliterateResponseSchema = z$1.object({
|
|
|
1159
1205
|
//#region src/ttt/transliterate-model.ts
|
|
1160
1206
|
var SarvamTransliterateModel = class {
|
|
1161
1207
|
constructor(settings, config) {
|
|
1162
|
-
this.specificationVersion = "
|
|
1208
|
+
this.specificationVersion = "v3";
|
|
1163
1209
|
this.modelId = "unknown";
|
|
1164
1210
|
this.settings = settings;
|
|
1165
1211
|
this.config = config;
|
|
@@ -1172,7 +1218,6 @@ var SarvamTransliterateModel = class {
|
|
|
1172
1218
|
}
|
|
1173
1219
|
async getArgs(options) {
|
|
1174
1220
|
const { prompt, providerOptions } = options;
|
|
1175
|
-
const warnings = [];
|
|
1176
1221
|
const sarvamOptions = await parseProviderOptions({
|
|
1177
1222
|
provider: "sarvam",
|
|
1178
1223
|
providerOptions: { sarvam: {
|
|
@@ -1197,11 +1242,11 @@ var SarvamTransliterateModel = class {
|
|
|
1197
1242
|
target_language_code: to,
|
|
1198
1243
|
spoken_form_numerals_language: sarvamOptions.spoken_form ? sarvamOptions.spoken_form_numerals_language ?? "english" : void 0
|
|
1199
1244
|
},
|
|
1200
|
-
warnings
|
|
1245
|
+
warnings: []
|
|
1201
1246
|
};
|
|
1202
1247
|
}
|
|
1203
1248
|
async doGenerate(options) {
|
|
1204
|
-
const { args
|
|
1249
|
+
const { args } = await this.getArgs({
|
|
1205
1250
|
...options,
|
|
1206
1251
|
stream: false
|
|
1207
1252
|
});
|
|
@@ -1224,11 +1269,19 @@ var SarvamTransliterateModel = class {
|
|
|
1224
1269
|
}],
|
|
1225
1270
|
finishReason: "stop",
|
|
1226
1271
|
usage: {
|
|
1227
|
-
inputTokens:
|
|
1228
|
-
|
|
1229
|
-
|
|
1272
|
+
inputTokens: {
|
|
1273
|
+
total: void 0,
|
|
1274
|
+
noCache: void 0,
|
|
1275
|
+
cacheRead: void 0,
|
|
1276
|
+
cacheWrite: void 0
|
|
1277
|
+
},
|
|
1278
|
+
outputTokens: {
|
|
1279
|
+
total: void 0,
|
|
1280
|
+
text: void 0,
|
|
1281
|
+
reasoning: void 0
|
|
1282
|
+
}
|
|
1230
1283
|
},
|
|
1231
|
-
warnings
|
|
1284
|
+
warnings: []
|
|
1232
1285
|
};
|
|
1233
1286
|
}
|
|
1234
1287
|
async doStream(_options) {
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sarvam-ai-sdk",
|
|
3
3
|
"description": "Sarvam provider support for Vercel's AI-SDK",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.3.0-beta",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"module": "./dist/index.mjs",
|
|
7
7
|
"types": "./dist/index.d.ts",
|
|
@@ -23,19 +23,19 @@
|
|
|
23
23
|
}
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
26
|
-
"@ai-sdk/provider": "
|
|
27
|
-
"@ai-sdk/provider-utils": "
|
|
26
|
+
"@ai-sdk/provider": "^3.0.0",
|
|
27
|
+
"@ai-sdk/provider-utils": "^4.0.0"
|
|
28
28
|
},
|
|
29
29
|
"devDependencies": {
|
|
30
30
|
"@biomejs/biome": "2.4.8",
|
|
31
31
|
"@types/node": "20.17.24",
|
|
32
|
-
"ai": "
|
|
32
|
+
"ai": "^6.0.0",
|
|
33
33
|
"tsdown": "^0.15.10",
|
|
34
34
|
"typescript": "5.6.3",
|
|
35
35
|
"zod": "^4.1.8"
|
|
36
36
|
},
|
|
37
37
|
"peerDependencies": {
|
|
38
|
-
"ai": "
|
|
38
|
+
"ai": "^6.0.0",
|
|
39
39
|
"zod": "^3.25.0 || ^4.0.0"
|
|
40
40
|
},
|
|
41
41
|
"engines": {
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
"bugs": {
|
|
52
52
|
"url": "https://github.com/rajatsandeepsen/sarvam-ai-sdk/issues"
|
|
53
53
|
},
|
|
54
|
-
"homepage": "https://
|
|
54
|
+
"homepage": "https://v6.ai-sdk.dev/docs",
|
|
55
55
|
"keywords": [
|
|
56
56
|
"ai",
|
|
57
57
|
"ai-sdk",
|