krutrim-ai-sdk 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +24 -0
- package/LICENSE +21 -0
- package/README.md +365 -0
- package/dist/index.cjs +1594 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +442 -0
- package/dist/index.d.ts +442 -0
- package/dist/index.js +1572 -0
- package/dist/index.js.map +1 -0
- package/package.json +100 -0
package/dist/index.d.cts
ADDED
|
@@ -0,0 +1,442 @@
|
|
|
1
|
+
import * as _ai_sdk_provider_utils from '@ai-sdk/provider-utils';
|
|
2
|
+
import { FetchFunction } from '@ai-sdk/provider-utils';
|
|
3
|
+
import * as _ai_sdk_provider from '@ai-sdk/provider';
|
|
4
|
+
import { LanguageModelV3, EmbeddingModelV3, SpeechModelV3, TranscriptionModelV3 } from '@ai-sdk/provider';
|
|
5
|
+
import { z } from 'zod';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Default OpenAI-compatible base URL for Krutrim Cloud chat, embeddings, etc.
|
|
9
|
+
* @see https://docs.cloud.olakrutrim.com/basics/ai-studio/ai-jobs/inferencing
|
|
10
|
+
*/
|
|
11
|
+
declare const KRUTRIM_DEFAULT_BASE_URL = "https://cloud.olakrutrim.com/v1";
|
|
12
|
+
/**
|
|
13
|
+
* Base host used for Language Labs / Bhashik endpoints
|
|
14
|
+
* (`/api/v1/languagelabs/*`).
|
|
15
|
+
*/
|
|
16
|
+
declare const KRUTRIM_DEFAULT_API_HOST = "https://cloud.olakrutrim.com";
|
|
17
|
+
/**
|
|
18
|
+
* Internal configuration shared by model implementations.
|
|
19
|
+
*/
|
|
20
|
+
type KrutrimConfig = {
|
|
21
|
+
provider: string;
|
|
22
|
+
/**
|
|
23
|
+
* Build a full request URL for the OpenAI-compatible API.
|
|
24
|
+
*/
|
|
25
|
+
url: (options: {
|
|
26
|
+
modelId: string;
|
|
27
|
+
path: string;
|
|
28
|
+
}) => string;
|
|
29
|
+
/**
|
|
30
|
+
* Build a full request URL for Language Labs endpoints.
|
|
31
|
+
*/
|
|
32
|
+
languageLabsUrl: (path: string) => string;
|
|
33
|
+
headers: () => Record<string, string | undefined>;
|
|
34
|
+
fetch?: FetchFunction;
|
|
35
|
+
generateId?: () => string;
|
|
36
|
+
};
|
|
37
|
+
/**
|
|
38
|
+
* Options for {@link createKrutrim}.
|
|
39
|
+
*/
|
|
40
|
+
interface KrutrimProviderSettings {
|
|
41
|
+
/**
|
|
42
|
+
* Base URL for OpenAI-compatible API calls (`/chat/completions`, `/embeddings`).
|
|
43
|
+
* @default "https://cloud.olakrutrim.com/v1"
|
|
44
|
+
*/
|
|
45
|
+
baseURL?: string;
|
|
46
|
+
/**
|
|
47
|
+
* Root host for Language Labs / Bhashik endpoints.
|
|
48
|
+
* @default "https://cloud.olakrutrim.com"
|
|
49
|
+
*/
|
|
50
|
+
apiHost?: string;
|
|
51
|
+
/**
|
|
52
|
+
* API key for authenticating requests.
|
|
53
|
+
* Defaults to `process.env.KRUTRIM_API_KEY` or
|
|
54
|
+
* `process.env.KRUTRIM_CLOUD_API_KEY`.
|
|
55
|
+
*/
|
|
56
|
+
apiKey?: string;
|
|
57
|
+
/**
|
|
58
|
+
* Custom headers merged into every request (can override defaults).
|
|
59
|
+
*/
|
|
60
|
+
headers?: Record<string, string>;
|
|
61
|
+
/**
|
|
62
|
+
* Custom `fetch` implementation for middleware, testing, or edge runtimes.
|
|
63
|
+
*/
|
|
64
|
+
fetch?: FetchFunction;
|
|
65
|
+
/**
|
|
66
|
+
* Optional ID generator used for tool call IDs when the API omits them.
|
|
67
|
+
*/
|
|
68
|
+
generateId?: () => string;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Resolve the Krutrim API key from options or environment variables.
|
|
72
|
+
*
|
|
73
|
+
* Checks (in order):
|
|
74
|
+
* 1. Explicit `apiKey` option
|
|
75
|
+
* 2. `KRUTRIM_API_KEY`
|
|
76
|
+
* 3. `KRUTRIM_CLOUD_API_KEY` (official Krutrim Cloud SDK name)
|
|
77
|
+
*/
|
|
78
|
+
declare function resolveKrutrimApiKey(apiKey: string | undefined): string | undefined;
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* ISO / BCP-47 style Indian language codes used across helpers.
|
|
82
|
+
*/
|
|
83
|
+
type IndicLanguageCode = 'hi-IN' | 'bn-IN' | 'kn-IN' | 'ml-IN' | 'mr-IN' | 'or-IN' | 'pa-IN' | 'ta-IN' | 'te-IN' | 'gu-IN' | 'as-IN' | 'ur-IN' | 'en-IN' | 'sa-IN' | 'ne-IN';
|
|
84
|
+
/**
|
|
85
|
+
* Short ISO-639-3 style codes used by Bhashik / Language Labs.
|
|
86
|
+
*/
|
|
87
|
+
type BhashikLanguageCode = 'eng' | 'hin' | 'ben' | 'mar' | 'tam' | 'tel' | 'kan' | 'mal' | 'pan' | 'guj';
|
|
88
|
+
/**
|
|
89
|
+
* Translation API uses script-aware codes like `hin_Deva`, `eng_Latn`.
|
|
90
|
+
*/
|
|
91
|
+
type TranslationLanguageCode = string;
|
|
92
|
+
declare const INDIC_LANGUAGES: ReadonlyArray<{
|
|
93
|
+
code: IndicLanguageCode;
|
|
94
|
+
bhashik: BhashikLanguageCode | null;
|
|
95
|
+
name: string;
|
|
96
|
+
nativeName: string;
|
|
97
|
+
script: string;
|
|
98
|
+
notes?: string;
|
|
99
|
+
}>;
|
|
100
|
+
/**
|
|
101
|
+
* Map BCP-47 Indic codes to Bhashik short codes when available.
|
|
102
|
+
*/
|
|
103
|
+
declare function toBhashikLanguageCode(code: IndicLanguageCode | string): BhashikLanguageCode | null;
|
|
104
|
+
/**
|
|
105
|
+
* Build a translation-style language tag, e.g. `hin_Deva`, `eng_Latn`.
|
|
106
|
+
*/
|
|
107
|
+
declare function toTranslationLanguageCode(code: IndicLanguageCode | string): TranslationLanguageCode;
|
|
108
|
+
|
|
109
|
+
type KrutrimSpeechSettings = {
|
|
110
|
+
/**
|
|
111
|
+
* Speaker voice.
|
|
112
|
+
* @default "female"
|
|
113
|
+
*/
|
|
114
|
+
speaker?: 'female' | 'male';
|
|
115
|
+
};
|
|
116
|
+
|
|
117
|
+
type TranslationSettings = {
|
|
118
|
+
/**
|
|
119
|
+
* Source language (BCP-47 like `hi-IN`, short `hin`, or `hin_Deva`).
|
|
120
|
+
*/
|
|
121
|
+
from: IndicLanguageCode | string;
|
|
122
|
+
/**
|
|
123
|
+
* Target language (BCP-47 like `en-IN`, short `eng`, or `eng_Latn`).
|
|
124
|
+
*/
|
|
125
|
+
to: IndicLanguageCode | string;
|
|
126
|
+
/**
|
|
127
|
+
* Translation model.
|
|
128
|
+
* @default "krutrim-translate-v1.0"
|
|
129
|
+
*/
|
|
130
|
+
model?: string;
|
|
131
|
+
};
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* Popular chat / text-generation model IDs on Krutrim Cloud.
|
|
135
|
+
*
|
|
136
|
+
* Exact IDs can change as the catalogue is updated — always confirm in the
|
|
137
|
+
* [Model Catalogue](https://cloud.olakrutrim.com) if a call fails with
|
|
138
|
+
* "invalid model".
|
|
139
|
+
*
|
|
140
|
+
* Free-form strings are still accepted via `ChatModelId`.
|
|
141
|
+
*/
|
|
142
|
+
declare const KRUTRIM_CHAT_MODELS: {
|
|
143
|
+
/** Krutrim's flagship Indic-capable model (v1). */
|
|
144
|
+
readonly krutrim1: "Krutrim-1";
|
|
145
|
+
/** Krutrim's next-generation text model. */
|
|
146
|
+
readonly krutrim2: "Krutrim-2";
|
|
147
|
+
/** Lowercase alias accepted by many OpenAI-compatible samples. */
|
|
148
|
+
readonly krutrim1Lower: "krutrim-1";
|
|
149
|
+
readonly krutrim2Lower: "krutrim-2";
|
|
150
|
+
readonly llama33_70b: "Llama-3.3-70B-Instruct";
|
|
151
|
+
readonly llama32_11b_vision: "Llama-3.2-11B-Vision-Instruct";
|
|
152
|
+
readonly llama4_maverick: "Llama-4-Maverick-17B-128E-Instruct";
|
|
153
|
+
readonly llama3_8b: "Meta-Llama-3-8B-Instruct";
|
|
154
|
+
readonly mistral7b: "Mistral-7B-v0.2";
|
|
155
|
+
readonly mistral7bInstruct: "Mistral-7B-Instruct";
|
|
156
|
+
readonly qwen3_32b: "Qwen3-32B";
|
|
157
|
+
readonly qwen3_30b: "Qwen3-30B-A3B";
|
|
158
|
+
readonly phi4_reasoning: "Phi-4-reasoning-plus";
|
|
159
|
+
readonly deepseekR1: "DeepSeek-R1";
|
|
160
|
+
readonly deepseekR1_70b: "DeepSeek-R1-Distill-Llama-70B";
|
|
161
|
+
readonly deepseekR1_8b: "DeepSeek-R1-Distill-Llama-8B";
|
|
162
|
+
readonly gemma3_27b: "gemma-3-27b-it";
|
|
163
|
+
readonly spectreV2: "Krutrim-spectre-v2";
|
|
164
|
+
};
|
|
165
|
+
/**
|
|
166
|
+
* Embedding model IDs (text-to-embedding).
|
|
167
|
+
*/
|
|
168
|
+
declare const KRUTRIM_EMBEDDING_MODELS: {
|
|
169
|
+
/** Krutrim embedding model. */
|
|
170
|
+
readonly vyakyarth: "Vyakyarth";
|
|
171
|
+
/** Alternative Krutrim embedding model. */
|
|
172
|
+
readonly bhasantarit: "Bhasantarit";
|
|
173
|
+
};
|
|
174
|
+
/**
|
|
175
|
+
* Speech model IDs.
|
|
176
|
+
*/
|
|
177
|
+
declare const KRUTRIM_SPEECH_MODELS: {
|
|
178
|
+
/** Krutrim Speech-to-Text. */
|
|
179
|
+
readonly dhwani: "Krutrim-Dhwani";
|
|
180
|
+
/** Krutrim Text-to-Speech. */
|
|
181
|
+
readonly tts: "Krutrim-TTS";
|
|
182
|
+
};
|
|
183
|
+
/**
|
|
184
|
+
* Multimodal / vision model IDs.
|
|
185
|
+
*/
|
|
186
|
+
declare const KRUTRIM_VISION_MODELS: {
|
|
187
|
+
readonly chitrapathak: "chitrapathak";
|
|
188
|
+
readonly llama32_11b_vision: "Llama-3.2-11B-Vision-Instruct";
|
|
189
|
+
readonly llama4_maverick: "Llama-4-Maverick-17B-128E-Instruct";
|
|
190
|
+
readonly gemma3_27b: "gemma-3-27b-it";
|
|
191
|
+
};
|
|
192
|
+
/**
|
|
193
|
+
* Friendly aliases → canonical catalogue model IDs.
|
|
194
|
+
*
|
|
195
|
+
* Use {@link resolveModelId} so `krutrim('krutrim-2')` and
|
|
196
|
+
* `krutrim('Krutrim-2')` both work.
|
|
197
|
+
*/
|
|
198
|
+
declare const MODEL_ALIASES: Record<string, string>;
|
|
199
|
+
/**
|
|
200
|
+
* Resolve a friendly alias or passthrough an exact catalogue ID.
|
|
201
|
+
*/
|
|
202
|
+
declare function resolveModelId(modelId: string): string;
|
|
203
|
+
/**
|
|
204
|
+
* Typed chat model IDs with autocomplete for popular models.
|
|
205
|
+
*/
|
|
206
|
+
type ChatModelId = (typeof KRUTRIM_CHAT_MODELS)[keyof typeof KRUTRIM_CHAT_MODELS] | keyof typeof MODEL_ALIASES | (string & {});
|
|
207
|
+
/**
|
|
208
|
+
* Typed embedding model IDs.
|
|
209
|
+
*/
|
|
210
|
+
type EmbeddingModelId = (typeof KRUTRIM_EMBEDDING_MODELS)[keyof typeof KRUTRIM_EMBEDDING_MODELS] | (string & {});
|
|
211
|
+
/**
|
|
212
|
+
* Typed speech model IDs.
|
|
213
|
+
*/
|
|
214
|
+
type SpeechModelId = (typeof KRUTRIM_SPEECH_MODELS)[keyof typeof KRUTRIM_SPEECH_MODELS] | (string & {});
|
|
215
|
+
|
|
216
|
+
/**
|
|
217
|
+
* Optional provider-side chat settings (also via `providerOptions.krutrim`).
|
|
218
|
+
*/
|
|
219
|
+
type ChatSettings = {
|
|
220
|
+
/**
|
|
221
|
+
* How many chat completion choices to generate per input message.
|
|
222
|
+
* You are billed for all generated tokens — keep `n` at `1` when possible.
|
|
223
|
+
*/
|
|
224
|
+
n?: number;
|
|
225
|
+
/**
|
|
226
|
+
* Unique end-user identifier for abuse monitoring (OpenAI-compatible `user`).
|
|
227
|
+
*/
|
|
228
|
+
user?: string;
|
|
229
|
+
/**
|
|
230
|
+
* Reasoning effort for reasoning models (provider-dependent).
|
|
231
|
+
*/
|
|
232
|
+
reasoningEffort?: 'low' | 'medium' | 'high';
|
|
233
|
+
};
|
|
234
|
+
|
|
235
|
+
/**
|
|
236
|
+
* Krutrim provider interface — callable + factory methods.
|
|
237
|
+
*
|
|
238
|
+
* @example
|
|
239
|
+
* ```ts
|
|
240
|
+
* import { krutrim } from 'krutrim-ai-sdk';
|
|
241
|
+
* import { generateText } from 'ai';
|
|
242
|
+
*
|
|
243
|
+
* const { text } = await generateText({
|
|
244
|
+
* model: krutrim('Krutrim-2'),
|
|
245
|
+
* prompt: 'नमस्ते! आज मौसम कैसा है?',
|
|
246
|
+
* });
|
|
247
|
+
* ```
|
|
248
|
+
*/
|
|
249
|
+
type KrutrimProvider = {
|
|
250
|
+
/**
|
|
251
|
+
* Create a chat / text-generation model.
|
|
252
|
+
*/
|
|
253
|
+
(modelId: ChatModelId, settings?: ChatSettings): LanguageModelV3;
|
|
254
|
+
/**
|
|
255
|
+
* Create a chat language model (alias of the call signature).
|
|
256
|
+
*/
|
|
257
|
+
languageModel(modelId: ChatModelId, settings?: ChatSettings): LanguageModelV3;
|
|
258
|
+
/**
|
|
259
|
+
* Create a chat model (alias of `languageModel`).
|
|
260
|
+
*/
|
|
261
|
+
chat(modelId: ChatModelId, settings?: ChatSettings): LanguageModelV3;
|
|
262
|
+
/**
|
|
263
|
+
* Create an embedding model (e.g. Vyakyarth, Bhasantarit).
|
|
264
|
+
*/
|
|
265
|
+
embedding(modelId: EmbeddingModelId): EmbeddingModelV3;
|
|
266
|
+
/**
|
|
267
|
+
* Alias for {@link KrutrimProvider.embedding}.
|
|
268
|
+
*/
|
|
269
|
+
embeddingModel(modelId: EmbeddingModelId): EmbeddingModelV3;
|
|
270
|
+
/**
|
|
271
|
+
* Create a text-embedding model (AI SDK naming).
|
|
272
|
+
*/
|
|
273
|
+
textEmbeddingModel(modelId: EmbeddingModelId): EmbeddingModelV3;
|
|
274
|
+
/**
|
|
275
|
+
* Bhashik Text-to-Speech.
|
|
276
|
+
*
|
|
277
|
+
* @example
|
|
278
|
+
* ```ts
|
|
279
|
+
* import { experimental_generateSpeech as generateSpeech } from 'ai';
|
|
280
|
+
* const { audio } = await generateSpeech({
|
|
281
|
+
* model: krutrim.speech('hi-IN'),
|
|
282
|
+
* text: 'नमस्ते, भारत!',
|
|
283
|
+
* });
|
|
284
|
+
* ```
|
|
285
|
+
*/
|
|
286
|
+
speech(language: IndicLanguageCode | BhashikLanguageCode | string, settings?: KrutrimSpeechSettings): SpeechModelV3;
|
|
287
|
+
/**
|
|
288
|
+
* Bhashik Speech-to-Text (Krutrim-Dhwani family).
|
|
289
|
+
*
|
|
290
|
+
* @example
|
|
291
|
+
* ```ts
|
|
292
|
+
* import { experimental_transcribe as transcribe } from 'ai';
|
|
293
|
+
* const { text } = await transcribe({
|
|
294
|
+
* model: krutrim.transcription('hi-IN'),
|
|
295
|
+
* audio: await readFile('./clip.wav'),
|
|
296
|
+
* });
|
|
297
|
+
* ```
|
|
298
|
+
*/
|
|
299
|
+
transcription(language: IndicLanguageCode | BhashikLanguageCode | string): TranscriptionModelV3;
|
|
300
|
+
/**
|
|
301
|
+
* Bhashik language detection (works with `generateText`).
|
|
302
|
+
*/
|
|
303
|
+
languageDetection(): LanguageModelV3;
|
|
304
|
+
/**
|
|
305
|
+
* Bhashik text translation (works with `generateText`).
|
|
306
|
+
*
|
|
307
|
+
* @example
|
|
308
|
+
* ```ts
|
|
309
|
+
* const { text } = await generateText({
|
|
310
|
+
* model: krutrim.translation({ from: 'hi-IN', to: 'en-IN' }),
|
|
311
|
+
* prompt: 'आज मौसम बहुत सुहाना है।',
|
|
312
|
+
* });
|
|
313
|
+
* ```
|
|
314
|
+
*/
|
|
315
|
+
translation(settings: TranslationSettings): LanguageModelV3;
|
|
316
|
+
};
|
|
317
|
+
|
|
318
|
+
/**
|
|
319
|
+
* Create a Krutrim Cloud provider instance.
|
|
320
|
+
*
|
|
321
|
+
* @example
|
|
322
|
+
* ```ts
|
|
323
|
+
* import { createKrutrim } from 'krutrim-ai-sdk';
|
|
324
|
+
*
|
|
325
|
+
* const krutrim = createKrutrim({
|
|
326
|
+
* apiKey: process.env.KRUTRIM_API_KEY,
|
|
327
|
+
* // baseURL: 'https://cloud.olakrutrim.com/v1',
|
|
328
|
+
* });
|
|
329
|
+
* ```
|
|
330
|
+
*/
|
|
331
|
+
declare function createKrutrim(options?: KrutrimProviderSettings): KrutrimProvider;
|
|
332
|
+
/**
|
|
333
|
+
* Default Krutrim provider instance.
|
|
334
|
+
*
|
|
335
|
+
* Reads `KRUTRIM_API_KEY` or `KRUTRIM_CLOUD_API_KEY` from the environment.
|
|
336
|
+
*
|
|
337
|
+
* @example
|
|
338
|
+
* ```ts
|
|
339
|
+
* import { krutrim } from 'krutrim-ai-sdk';
|
|
340
|
+
* import { generateText } from 'ai';
|
|
341
|
+
*
|
|
342
|
+
* const { text } = await generateText({
|
|
343
|
+
* model: krutrim('Krutrim-2'),
|
|
344
|
+
* prompt: 'Write a haiku about monsoons in Kerala.',
|
|
345
|
+
* });
|
|
346
|
+
* ```
|
|
347
|
+
*/
|
|
348
|
+
declare const krutrim: KrutrimProvider;
|
|
349
|
+
|
|
350
|
+
/**
|
|
351
|
+
* Flexible error payload — Krutrim surfaces both OpenAI-style and
|
|
352
|
+
* Language Labs-style error bodies.
|
|
353
|
+
*/
|
|
354
|
+
declare const krutrimErrorDataSchema: z.ZodObject<{
|
|
355
|
+
error: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodObject<{
|
|
356
|
+
message: z.ZodOptional<z.ZodString>;
|
|
357
|
+
type: z.ZodOptional<z.ZodString>;
|
|
358
|
+
code: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNumber]>>;
|
|
359
|
+
param: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
360
|
+
}, "strip", z.ZodTypeAny, {
|
|
361
|
+
code?: string | number | undefined;
|
|
362
|
+
message?: string | undefined;
|
|
363
|
+
type?: string | undefined;
|
|
364
|
+
param?: string | null | undefined;
|
|
365
|
+
}, {
|
|
366
|
+
code?: string | number | undefined;
|
|
367
|
+
message?: string | undefined;
|
|
368
|
+
type?: string | undefined;
|
|
369
|
+
param?: string | null | undefined;
|
|
370
|
+
}>]>>;
|
|
371
|
+
message: z.ZodOptional<z.ZodString>;
|
|
372
|
+
status: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNumber]>>;
|
|
373
|
+
detail: z.ZodOptional<z.ZodObject<{
|
|
374
|
+
info: z.ZodOptional<z.ZodString>;
|
|
375
|
+
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
|
|
376
|
+
info: z.ZodOptional<z.ZodString>;
|
|
377
|
+
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
378
|
+
info: z.ZodOptional<z.ZodString>;
|
|
379
|
+
}, z.ZodTypeAny, "passthrough">>>;
|
|
380
|
+
code: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNumber]>>;
|
|
381
|
+
}, "strip", z.ZodTypeAny, {
|
|
382
|
+
code?: string | number | undefined;
|
|
383
|
+
message?: string | undefined;
|
|
384
|
+
status?: string | number | undefined;
|
|
385
|
+
error?: string | {
|
|
386
|
+
code?: string | number | undefined;
|
|
387
|
+
message?: string | undefined;
|
|
388
|
+
type?: string | undefined;
|
|
389
|
+
param?: string | null | undefined;
|
|
390
|
+
} | undefined;
|
|
391
|
+
detail?: z.objectOutputType<{
|
|
392
|
+
info: z.ZodOptional<z.ZodString>;
|
|
393
|
+
}, z.ZodTypeAny, "passthrough"> | undefined;
|
|
394
|
+
}, {
|
|
395
|
+
code?: string | number | undefined;
|
|
396
|
+
message?: string | undefined;
|
|
397
|
+
status?: string | number | undefined;
|
|
398
|
+
error?: string | {
|
|
399
|
+
code?: string | number | undefined;
|
|
400
|
+
message?: string | undefined;
|
|
401
|
+
type?: string | undefined;
|
|
402
|
+
param?: string | null | undefined;
|
|
403
|
+
} | undefined;
|
|
404
|
+
detail?: z.objectInputType<{
|
|
405
|
+
info: z.ZodOptional<z.ZodString>;
|
|
406
|
+
}, z.ZodTypeAny, "passthrough"> | undefined;
|
|
407
|
+
}>;
|
|
408
|
+
type KrutrimErrorData = z.infer<typeof krutrimErrorDataSchema>;
|
|
409
|
+
/**
|
|
410
|
+
* Enrich raw API errors with India / Krutrim-specific guidance.
|
|
411
|
+
*/
|
|
412
|
+
declare function enhanceKrutrimErrorMessage(rawMessage: string, statusCode?: number): string;
|
|
413
|
+
declare const krutrimFailedResponseHandler: _ai_sdk_provider_utils.ResponseHandler<_ai_sdk_provider.APICallError>;
|
|
414
|
+
|
|
415
|
+
/**
|
|
416
|
+
* System prompt that steers the model to respond in a target Indian language.
|
|
417
|
+
*/
|
|
418
|
+
declare function indicResponsePrompt(language: IndicLanguageCode | string, options?: {
|
|
419
|
+
/** Prefer native script over Latin transliteration. @default true */
|
|
420
|
+
nativeScript?: boolean;
|
|
421
|
+
/** Allow code-mixing (Hinglish, Tanglish, etc.). @default false */
|
|
422
|
+
allowCodeMix?: boolean;
|
|
423
|
+
}): string;
|
|
424
|
+
/**
|
|
425
|
+
* Prompt fragment for language identification via a chat model.
|
|
426
|
+
* Prefer {@link krutrim.languageDetection} (Bhashik API) when available.
|
|
427
|
+
*/
|
|
428
|
+
declare function languageDetectionPrompt(): string;
|
|
429
|
+
/**
|
|
430
|
+
* Notes for apps that accept Romanized Indic input (Hinglish, etc.).
|
|
431
|
+
* Attach as a system hint when users type in Latin script.
|
|
432
|
+
*/
|
|
433
|
+
declare function transliterationNotes(targetLanguage?: IndicLanguageCode | string): string;
|
|
434
|
+
/**
|
|
435
|
+
* Lightweight system prompt for multilingual Indian customer-support agents.
|
|
436
|
+
*/
|
|
437
|
+
declare function indicSupportAgentPrompt(options?: {
|
|
438
|
+
brandName?: string;
|
|
439
|
+
languages?: Array<IndicLanguageCode | string>;
|
|
440
|
+
}): string;
|
|
441
|
+
|
|
442
|
+
export { type BhashikLanguageCode, type ChatModelId, type ChatSettings, type EmbeddingModelId, INDIC_LANGUAGES, type IndicLanguageCode, KRUTRIM_CHAT_MODELS, KRUTRIM_DEFAULT_API_HOST, KRUTRIM_DEFAULT_BASE_URL, KRUTRIM_EMBEDDING_MODELS, KRUTRIM_SPEECH_MODELS, KRUTRIM_VISION_MODELS, type KrutrimConfig, type KrutrimErrorData, type KrutrimProvider, type KrutrimProviderSettings, type KrutrimSpeechSettings, MODEL_ALIASES, type SpeechModelId, type TranslationLanguageCode, type TranslationSettings, createKrutrim, enhanceKrutrimErrorMessage, indicResponsePrompt, indicSupportAgentPrompt, krutrim, krutrimErrorDataSchema, krutrimFailedResponseHandler, languageDetectionPrompt, resolveKrutrimApiKey, resolveModelId, toBhashikLanguageCode, toTranslationLanguageCode, transliterationNotes };
|