ai 7.0.21 → 7.0.23
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 +14 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +178 -166
- package/dist/index.js.map +1 -1
- package/dist/internal/index.d.ts +1 -1
- package/dist/internal/index.js +1 -1
- package/dist/internal/index.js.map +1 -1
- package/docs/03-ai-sdk-core/36-transcription.mdx +1 -0
- package/docs/03-ai-sdk-core/37-speech.mdx +4 -0
- package/package.json +2 -2
- package/src/embed/embed-many.ts +219 -207
- package/src/realtime/browser-realtime-transport.ts +10 -1
- package/src/telemetry/tracing-channel.ts +1 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# ai
|
|
2
2
|
|
|
3
|
+
## 7.0.23
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 930f949: feat(ai): wrap embedMany in tracing channel context
|
|
8
|
+
- Updated dependencies [867f80a]
|
|
9
|
+
- @ai-sdk/gateway@4.0.17
|
|
10
|
+
|
|
11
|
+
## 7.0.22
|
|
12
|
+
|
|
13
|
+
### Patch Changes
|
|
14
|
+
|
|
15
|
+
- 8f89c25: Add the Cartesia provider with Sonic 3.5 speech generation, Ink-Whisper batch transcription, and Ink 2 realtime transcription support.
|
|
16
|
+
|
|
3
17
|
## 7.0.21
|
|
4
18
|
|
|
5
19
|
### Patch Changes
|
package/dist/index.d.ts
CHANGED
|
@@ -4274,7 +4274,7 @@ type RerankingModelCallEndEvent = {
|
|
|
4274
4274
|
};
|
|
4275
4275
|
|
|
4276
4276
|
declare const AI_SDK_TELEMETRY_TRACING_CHANNEL = "ai:telemetry";
|
|
4277
|
-
type TelemetryTracingEventType = 'generateText' | 'streamText' | 'step' | 'languageModelCall' | 'executeTool' | 'embed' | 'rerank';
|
|
4277
|
+
type TelemetryTracingEventType = 'generateText' | 'streamText' | 'step' | 'languageModelCall' | 'executeTool' | 'embed' | 'embedMany' | 'rerank';
|
|
4278
4278
|
type TelemetryTracingChannelMessage<EVENT = unknown> = {
|
|
4279
4279
|
readonly type: TelemetryTracingEventType;
|
|
4280
4280
|
readonly event: EVENT;
|
package/dist/index.js
CHANGED
|
@@ -1089,7 +1089,7 @@ import {
|
|
|
1089
1089
|
} from "@ai-sdk/provider-utils";
|
|
1090
1090
|
|
|
1091
1091
|
// src/version.ts
|
|
1092
|
-
var VERSION = true ? "7.0.
|
|
1092
|
+
var VERSION = true ? "7.0.23" : "0.0.0-test";
|
|
1093
1093
|
|
|
1094
1094
|
// src/util/download/download.ts
|
|
1095
1095
|
var download = async ({
|
|
@@ -11301,7 +11301,7 @@ async function embedMany({
|
|
|
11301
11301
|
experimental_onEnd,
|
|
11302
11302
|
_internal: { generateCallId = originalGenerateCallId5 } = {}
|
|
11303
11303
|
}) {
|
|
11304
|
-
var _a22
|
|
11304
|
+
var _a22;
|
|
11305
11305
|
const model = resolveEmbeddingModel(modelArg);
|
|
11306
11306
|
const { maxRetries, retry } = prepareRetries({
|
|
11307
11307
|
maxRetries: maxRetriesArg,
|
|
@@ -11317,112 +11317,33 @@ async function embedMany({
|
|
|
11317
11317
|
const telemetryDispatcher = createTelemetryDispatcher({
|
|
11318
11318
|
telemetry
|
|
11319
11319
|
});
|
|
11320
|
-
await
|
|
11321
|
-
|
|
11322
|
-
|
|
11323
|
-
|
|
11324
|
-
|
|
11325
|
-
|
|
11326
|
-
|
|
11327
|
-
|
|
11328
|
-
|
|
11329
|
-
|
|
11330
|
-
|
|
11331
|
-
|
|
11332
|
-
|
|
11333
|
-
|
|
11334
|
-
|
|
11335
|
-
|
|
11336
|
-
model.supportsParallelCalls
|
|
11337
|
-
]);
|
|
11338
|
-
if (maxEmbeddingsPerCall == null || maxEmbeddingsPerCall === Infinity) {
|
|
11339
|
-
const { embeddings: embeddings2, usage, warnings: warnings2, response, providerMetadata: providerMetadata2 } = await retry(async () => {
|
|
11340
|
-
var _a23, _b2;
|
|
11341
|
-
const embedCallId = generateCallId();
|
|
11342
|
-
await notify({
|
|
11343
|
-
event: {
|
|
11344
|
-
callId,
|
|
11345
|
-
embedCallId,
|
|
11346
|
-
operationId: "ai.embedMany.doEmbed",
|
|
11347
|
-
provider: model.provider,
|
|
11348
|
-
modelId: model.modelId,
|
|
11349
|
-
values
|
|
11350
|
-
},
|
|
11351
|
-
callbacks: [telemetryDispatcher.onEmbedStart]
|
|
11352
|
-
});
|
|
11353
|
-
const modelResponse = await model.doEmbed({
|
|
11354
|
-
values,
|
|
11355
|
-
abortSignal,
|
|
11356
|
-
headers: headersWithUserAgent,
|
|
11357
|
-
providerOptions
|
|
11358
|
-
});
|
|
11359
|
-
const embeddings3 = modelResponse.embeddings;
|
|
11360
|
-
const usage2 = (_a23 = modelResponse.usage) != null ? _a23 : { tokens: NaN };
|
|
11361
|
-
await notify({
|
|
11362
|
-
event: {
|
|
11363
|
-
callId,
|
|
11364
|
-
embedCallId,
|
|
11365
|
-
operationId: "ai.embedMany.doEmbed",
|
|
11366
|
-
provider: model.provider,
|
|
11367
|
-
modelId: model.modelId,
|
|
11368
|
-
values,
|
|
11369
|
-
embeddings: embeddings3,
|
|
11370
|
-
usage: usage2
|
|
11371
|
-
},
|
|
11372
|
-
callbacks: [telemetryDispatcher.onEmbedEnd]
|
|
11373
|
-
});
|
|
11374
|
-
return {
|
|
11375
|
-
embeddings: embeddings3,
|
|
11376
|
-
usage: usage2,
|
|
11377
|
-
warnings: (_b2 = modelResponse.warnings) != null ? _b2 : [],
|
|
11378
|
-
providerMetadata: modelResponse.providerMetadata,
|
|
11379
|
-
response: modelResponse.response
|
|
11380
|
-
};
|
|
11381
|
-
});
|
|
11382
|
-
logWarnings({
|
|
11383
|
-
warnings: warnings2,
|
|
11384
|
-
provider: model.provider,
|
|
11385
|
-
model: model.modelId
|
|
11386
|
-
});
|
|
11320
|
+
const runInTracingChannelSpan = (_a22 = telemetryDispatcher.runInTracingChannelSpan) != null ? _a22 : async ({ execute }) => await execute();
|
|
11321
|
+
const startEvent = {
|
|
11322
|
+
callId,
|
|
11323
|
+
operationId: "ai.embedMany",
|
|
11324
|
+
provider: model.provider,
|
|
11325
|
+
modelId: model.modelId,
|
|
11326
|
+
value: values,
|
|
11327
|
+
maxRetries,
|
|
11328
|
+
headers: headersWithUserAgent,
|
|
11329
|
+
providerOptions
|
|
11330
|
+
};
|
|
11331
|
+
return await runInTracingChannelSpan({
|
|
11332
|
+
type: "embedMany",
|
|
11333
|
+
event: startEvent,
|
|
11334
|
+
execute: async () => {
|
|
11335
|
+
var _a23, _b;
|
|
11387
11336
|
await notify({
|
|
11388
|
-
event:
|
|
11389
|
-
|
|
11390
|
-
operationId: "ai.embedMany",
|
|
11391
|
-
provider: model.provider,
|
|
11392
|
-
modelId: model.modelId,
|
|
11393
|
-
value: values,
|
|
11394
|
-
embedding: embeddings2,
|
|
11395
|
-
usage,
|
|
11396
|
-
warnings: warnings2,
|
|
11397
|
-
providerMetadata: providerMetadata2,
|
|
11398
|
-
response: [response]
|
|
11399
|
-
},
|
|
11400
|
-
callbacks: [resolvedOnEnd, telemetryDispatcher.onEnd]
|
|
11401
|
-
});
|
|
11402
|
-
return new DefaultEmbedManyResult({
|
|
11403
|
-
values,
|
|
11404
|
-
embeddings: embeddings2,
|
|
11405
|
-
usage,
|
|
11406
|
-
warnings: warnings2,
|
|
11407
|
-
providerMetadata: providerMetadata2,
|
|
11408
|
-
responses: [response]
|
|
11337
|
+
event: startEvent,
|
|
11338
|
+
callbacks: [resolvedOnStart, telemetryDispatcher.onStart]
|
|
11409
11339
|
});
|
|
11410
|
-
|
|
11411
|
-
|
|
11412
|
-
|
|
11413
|
-
|
|
11414
|
-
|
|
11415
|
-
|
|
11416
|
-
|
|
11417
|
-
const parallelChunks = splitArray(
|
|
11418
|
-
valueChunks,
|
|
11419
|
-
supportsParallelCalls ? maxParallelCalls : 1
|
|
11420
|
-
);
|
|
11421
|
-
for (const parallelChunk of parallelChunks) {
|
|
11422
|
-
const results = await Promise.all(
|
|
11423
|
-
parallelChunk.map((chunk) => {
|
|
11424
|
-
return retry(async () => {
|
|
11425
|
-
var _a23, _b2;
|
|
11340
|
+
try {
|
|
11341
|
+
const [maxEmbeddingsPerCall, supportsParallelCalls] = await Promise.all(
|
|
11342
|
+
[model.maxEmbeddingsPerCall, model.supportsParallelCalls]
|
|
11343
|
+
);
|
|
11344
|
+
if (maxEmbeddingsPerCall == null || maxEmbeddingsPerCall === Infinity) {
|
|
11345
|
+
const { embeddings: embeddings2, usage, warnings: warnings2, response, providerMetadata: providerMetadata2 } = await retry(async () => {
|
|
11346
|
+
var _a24, _b2;
|
|
11426
11347
|
const embedCallId = generateCallId();
|
|
11427
11348
|
await notify({
|
|
11428
11349
|
event: {
|
|
@@ -11431,18 +11352,18 @@ async function embedMany({
|
|
|
11431
11352
|
operationId: "ai.embedMany.doEmbed",
|
|
11432
11353
|
provider: model.provider,
|
|
11433
11354
|
modelId: model.modelId,
|
|
11434
|
-
values
|
|
11355
|
+
values
|
|
11435
11356
|
},
|
|
11436
11357
|
callbacks: [telemetryDispatcher.onEmbedStart]
|
|
11437
11358
|
});
|
|
11438
11359
|
const modelResponse = await model.doEmbed({
|
|
11439
|
-
values
|
|
11360
|
+
values,
|
|
11440
11361
|
abortSignal,
|
|
11441
11362
|
headers: headersWithUserAgent,
|
|
11442
11363
|
providerOptions
|
|
11443
11364
|
});
|
|
11444
|
-
const
|
|
11445
|
-
const
|
|
11365
|
+
const embeddings3 = modelResponse.embeddings;
|
|
11366
|
+
const usage2 = (_a24 = modelResponse.usage) != null ? _a24 : { tokens: NaN };
|
|
11446
11367
|
await notify({
|
|
11447
11368
|
event: {
|
|
11448
11369
|
callId,
|
|
@@ -11450,75 +11371,162 @@ async function embedMany({
|
|
|
11450
11371
|
operationId: "ai.embedMany.doEmbed",
|
|
11451
11372
|
provider: model.provider,
|
|
11452
11373
|
modelId: model.modelId,
|
|
11453
|
-
values
|
|
11454
|
-
embeddings:
|
|
11455
|
-
usage
|
|
11374
|
+
values,
|
|
11375
|
+
embeddings: embeddings3,
|
|
11376
|
+
usage: usage2
|
|
11456
11377
|
},
|
|
11457
11378
|
callbacks: [telemetryDispatcher.onEmbedEnd]
|
|
11458
11379
|
});
|
|
11459
11380
|
return {
|
|
11460
|
-
embeddings:
|
|
11461
|
-
usage,
|
|
11381
|
+
embeddings: embeddings3,
|
|
11382
|
+
usage: usage2,
|
|
11462
11383
|
warnings: (_b2 = modelResponse.warnings) != null ? _b2 : [],
|
|
11463
11384
|
providerMetadata: modelResponse.providerMetadata,
|
|
11464
11385
|
response: modelResponse.response
|
|
11465
11386
|
};
|
|
11466
11387
|
});
|
|
11467
|
-
|
|
11468
|
-
|
|
11469
|
-
|
|
11470
|
-
|
|
11471
|
-
|
|
11472
|
-
|
|
11473
|
-
|
|
11474
|
-
|
|
11475
|
-
|
|
11476
|
-
|
|
11477
|
-
|
|
11478
|
-
|
|
11479
|
-
|
|
11480
|
-
|
|
11481
|
-
|
|
11482
|
-
|
|
11483
|
-
|
|
11484
|
-
|
|
11388
|
+
logWarnings({
|
|
11389
|
+
warnings: warnings2,
|
|
11390
|
+
provider: model.provider,
|
|
11391
|
+
model: model.modelId
|
|
11392
|
+
});
|
|
11393
|
+
await notify({
|
|
11394
|
+
event: {
|
|
11395
|
+
callId,
|
|
11396
|
+
operationId: "ai.embedMany",
|
|
11397
|
+
provider: model.provider,
|
|
11398
|
+
modelId: model.modelId,
|
|
11399
|
+
value: values,
|
|
11400
|
+
embedding: embeddings2,
|
|
11401
|
+
usage,
|
|
11402
|
+
warnings: warnings2,
|
|
11403
|
+
providerMetadata: providerMetadata2,
|
|
11404
|
+
response: [response]
|
|
11405
|
+
},
|
|
11406
|
+
callbacks: [resolvedOnEnd, telemetryDispatcher.onEnd]
|
|
11407
|
+
});
|
|
11408
|
+
return new DefaultEmbedManyResult({
|
|
11409
|
+
values,
|
|
11410
|
+
embeddings: embeddings2,
|
|
11411
|
+
usage,
|
|
11412
|
+
warnings: warnings2,
|
|
11413
|
+
providerMetadata: providerMetadata2,
|
|
11414
|
+
responses: [response]
|
|
11415
|
+
});
|
|
11416
|
+
}
|
|
11417
|
+
const valueChunks = splitArray(values, maxEmbeddingsPerCall);
|
|
11418
|
+
const embeddings = [];
|
|
11419
|
+
const warnings = [];
|
|
11420
|
+
const responses = [];
|
|
11421
|
+
let tokens = 0;
|
|
11422
|
+
let providerMetadata;
|
|
11423
|
+
const parallelChunks = splitArray(
|
|
11424
|
+
valueChunks,
|
|
11425
|
+
supportsParallelCalls ? maxParallelCalls : 1
|
|
11426
|
+
);
|
|
11427
|
+
for (const parallelChunk of parallelChunks) {
|
|
11428
|
+
const results = await Promise.all(
|
|
11429
|
+
parallelChunk.map((chunk) => {
|
|
11430
|
+
return retry(async () => {
|
|
11431
|
+
var _a24, _b2;
|
|
11432
|
+
const embedCallId = generateCallId();
|
|
11433
|
+
await notify({
|
|
11434
|
+
event: {
|
|
11435
|
+
callId,
|
|
11436
|
+
embedCallId,
|
|
11437
|
+
operationId: "ai.embedMany.doEmbed",
|
|
11438
|
+
provider: model.provider,
|
|
11439
|
+
modelId: model.modelId,
|
|
11440
|
+
values: chunk
|
|
11441
|
+
},
|
|
11442
|
+
callbacks: [telemetryDispatcher.onEmbedStart]
|
|
11443
|
+
});
|
|
11444
|
+
const modelResponse = await model.doEmbed({
|
|
11445
|
+
values: chunk,
|
|
11446
|
+
abortSignal,
|
|
11447
|
+
headers: headersWithUserAgent,
|
|
11448
|
+
providerOptions
|
|
11449
|
+
});
|
|
11450
|
+
const chunkEmbeddings = modelResponse.embeddings;
|
|
11451
|
+
const usage = (_a24 = modelResponse.usage) != null ? _a24 : { tokens: NaN };
|
|
11452
|
+
await notify({
|
|
11453
|
+
event: {
|
|
11454
|
+
callId,
|
|
11455
|
+
embedCallId,
|
|
11456
|
+
operationId: "ai.embedMany.doEmbed",
|
|
11457
|
+
provider: model.provider,
|
|
11458
|
+
modelId: model.modelId,
|
|
11459
|
+
values: chunk,
|
|
11460
|
+
embeddings: chunkEmbeddings,
|
|
11461
|
+
usage
|
|
11462
|
+
},
|
|
11463
|
+
callbacks: [telemetryDispatcher.onEmbedEnd]
|
|
11464
|
+
});
|
|
11465
|
+
return {
|
|
11466
|
+
embeddings: chunkEmbeddings,
|
|
11467
|
+
usage,
|
|
11468
|
+
warnings: (_b2 = modelResponse.warnings) != null ? _b2 : [],
|
|
11469
|
+
providerMetadata: modelResponse.providerMetadata,
|
|
11470
|
+
response: modelResponse.response
|
|
11471
|
+
};
|
|
11472
|
+
});
|
|
11473
|
+
})
|
|
11474
|
+
);
|
|
11475
|
+
for (const result of results) {
|
|
11476
|
+
embeddings.push(...result.embeddings);
|
|
11477
|
+
warnings.push(...result.warnings);
|
|
11478
|
+
responses.push(result.response);
|
|
11479
|
+
tokens += result.usage.tokens;
|
|
11480
|
+
if (result.providerMetadata) {
|
|
11481
|
+
if (!providerMetadata) {
|
|
11482
|
+
providerMetadata = { ...result.providerMetadata };
|
|
11483
|
+
} else {
|
|
11484
|
+
for (const [providerName, metadata] of Object.entries(
|
|
11485
|
+
result.providerMetadata
|
|
11486
|
+
)) {
|
|
11487
|
+
providerMetadata[providerName] = {
|
|
11488
|
+
...(_a23 = providerMetadata[providerName]) != null ? _a23 : {},
|
|
11489
|
+
...metadata
|
|
11490
|
+
};
|
|
11491
|
+
}
|
|
11492
|
+
}
|
|
11485
11493
|
}
|
|
11486
11494
|
}
|
|
11487
11495
|
}
|
|
11496
|
+
logWarnings({
|
|
11497
|
+
warnings,
|
|
11498
|
+
provider: model.provider,
|
|
11499
|
+
model: model.modelId
|
|
11500
|
+
});
|
|
11501
|
+
await notify({
|
|
11502
|
+
event: {
|
|
11503
|
+
callId,
|
|
11504
|
+
operationId: "ai.embedMany",
|
|
11505
|
+
provider: model.provider,
|
|
11506
|
+
modelId: model.modelId,
|
|
11507
|
+
value: values,
|
|
11508
|
+
embedding: embeddings,
|
|
11509
|
+
usage: { tokens },
|
|
11510
|
+
warnings,
|
|
11511
|
+
providerMetadata,
|
|
11512
|
+
response: responses
|
|
11513
|
+
},
|
|
11514
|
+
callbacks: [resolvedOnEnd, telemetryDispatcher.onEnd]
|
|
11515
|
+
});
|
|
11516
|
+
return new DefaultEmbedManyResult({
|
|
11517
|
+
values,
|
|
11518
|
+
embeddings,
|
|
11519
|
+
usage: { tokens },
|
|
11520
|
+
warnings,
|
|
11521
|
+
providerMetadata,
|
|
11522
|
+
responses
|
|
11523
|
+
});
|
|
11524
|
+
} catch (error) {
|
|
11525
|
+
await ((_b = telemetryDispatcher.onError) == null ? void 0 : _b.call(telemetryDispatcher, { callId, error }));
|
|
11526
|
+
throw error;
|
|
11488
11527
|
}
|
|
11489
11528
|
}
|
|
11490
|
-
|
|
11491
|
-
warnings,
|
|
11492
|
-
provider: model.provider,
|
|
11493
|
-
model: model.modelId
|
|
11494
|
-
});
|
|
11495
|
-
await notify({
|
|
11496
|
-
event: {
|
|
11497
|
-
callId,
|
|
11498
|
-
operationId: "ai.embedMany",
|
|
11499
|
-
provider: model.provider,
|
|
11500
|
-
modelId: model.modelId,
|
|
11501
|
-
value: values,
|
|
11502
|
-
embedding: embeddings,
|
|
11503
|
-
usage: { tokens },
|
|
11504
|
-
warnings,
|
|
11505
|
-
providerMetadata,
|
|
11506
|
-
response: responses
|
|
11507
|
-
},
|
|
11508
|
-
callbacks: [resolvedOnEnd, telemetryDispatcher.onEnd]
|
|
11509
|
-
});
|
|
11510
|
-
return new DefaultEmbedManyResult({
|
|
11511
|
-
values,
|
|
11512
|
-
embeddings,
|
|
11513
|
-
usage: { tokens },
|
|
11514
|
-
warnings,
|
|
11515
|
-
providerMetadata,
|
|
11516
|
-
responses
|
|
11517
|
-
});
|
|
11518
|
-
} catch (error) {
|
|
11519
|
-
await ((_b = telemetryDispatcher.onError) == null ? void 0 : _b.call(telemetryDispatcher, { callId, error }));
|
|
11520
|
-
throw error;
|
|
11521
|
-
}
|
|
11529
|
+
});
|
|
11522
11530
|
}
|
|
11523
11531
|
var DefaultEmbedManyResult = class {
|
|
11524
11532
|
constructor(options) {
|
|
@@ -14631,7 +14639,11 @@ var BrowserRealtimeTransport = class {
|
|
|
14631
14639
|
sendRaw(data) {
|
|
14632
14640
|
var _a22;
|
|
14633
14641
|
if (((_a22 = this.ws) == null ? void 0 : _a22.readyState) === WebSocket.OPEN) {
|
|
14634
|
-
|
|
14642
|
+
if (typeof data === "string" || data instanceof ArrayBuffer || ArrayBuffer.isView(data) || data instanceof Blob) {
|
|
14643
|
+
this.ws.send(data);
|
|
14644
|
+
} else {
|
|
14645
|
+
this.ws.send(JSON.stringify(data));
|
|
14646
|
+
}
|
|
14635
14647
|
}
|
|
14636
14648
|
}
|
|
14637
14649
|
dispose() {
|