@memberjunction/ai 6.2.0-edge.1 → 6.2.0-edge.2
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/dist/generic/apiKeyDictionary.d.ts +33 -0
- package/dist/generic/apiKeyDictionary.d.ts.map +1 -1
- package/dist/generic/apiKeyDictionary.js +19 -0
- package/dist/generic/apiKeyDictionary.js.map +1 -1
- package/dist/generic/baseAudio.d.ts +31 -14
- package/dist/generic/baseAudio.d.ts.map +1 -1
- package/dist/generic/baseAudio.js +20 -49
- package/dist/generic/baseAudio.js.map +1 -1
- package/dist/generic/baseEmbeddings.d.ts +8 -0
- package/dist/generic/baseEmbeddings.d.ts.map +1 -1
- package/dist/generic/baseEmbeddings.js +10 -0
- package/dist/generic/baseEmbeddings.js.map +1 -1
- package/dist/generic/baseSpeechToText.d.ts +47 -0
- package/dist/generic/baseSpeechToText.d.ts.map +1 -0
- package/dist/generic/baseSpeechToText.js +84 -0
- package/dist/generic/baseSpeechToText.js.map +1 -0
- package/dist/generic/baseTextToSpeech.d.ts +26 -0
- package/dist/generic/baseTextToSpeech.d.ts.map +1 -0
- package/dist/generic/baseTextToSpeech.js +12 -0
- package/dist/generic/baseTextToSpeech.js.map +1 -0
- package/dist/generic/baseVideo.d.ts +15 -1
- package/dist/generic/baseVideo.d.ts.map +1 -1
- package/dist/generic/baseVideo.js.map +1 -1
- package/dist/generic/decision.types.d.ts +24 -0
- package/dist/generic/decision.types.d.ts.map +1 -1
- package/dist/generic/decision.types.js +14 -0
- package/dist/generic/decision.types.js.map +1 -1
- package/dist/generic/reranker.types.d.ts +6 -0
- package/dist/generic/reranker.types.d.ts.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/readme.md +4 -2
|
@@ -36,4 +36,37 @@ export declare class AIAPIKeys {
|
|
|
36
36
|
*/
|
|
37
37
|
export declare function GetAIAPIKey(AIDriverName: string, apiKeys?: AIAPIKey[], verbose?: boolean): string;
|
|
38
38
|
export declare function GetAIAPIKeyGlobal(AIDriverName: string): string;
|
|
39
|
+
/**
|
|
40
|
+
* Resolves the API key to use for ONE AI driver class.
|
|
41
|
+
*
|
|
42
|
+
* A shape for handing a *scoped* key-resolution capability to code that spends an AI key without
|
|
43
|
+
* handing over the key list itself. A holder can ask for the one driver class it needs; it cannot
|
|
44
|
+
* enumerate the run's credentials, and whoever built the resolver decides whether to answer.
|
|
45
|
+
* Realtime uses it. `@memberjunction/actions-base` declares the same signature separately as
|
|
46
|
+
* `RuntimeAPIKeyResolver` (it does not depend on this package), and the prompt runner still takes
|
|
47
|
+
* the key list (`AIPromptParams.apiKeys`).
|
|
48
|
+
*
|
|
49
|
+
* `undefined` means "no key for that driver class" — which is also how a deliberate refusal reads,
|
|
50
|
+
* so a caller treats both the same way: fall back to the platform key, or skip that vendor.
|
|
51
|
+
*
|
|
52
|
+
* Build one with {@link MakeAIAPIKeyResolver}.
|
|
53
|
+
*/
|
|
54
|
+
export type AIAPIKeyResolver = (driverClass: string) => string | undefined;
|
|
55
|
+
/**
|
|
56
|
+
* Builds an {@link AIAPIKeyResolver} over a runtime key list: the list's key for the driver class
|
|
57
|
+
* first, then the platform (environment) key — the same precedence as `GetAIAPIKey`. For prompts
|
|
58
|
+
* that is only the legacy tier: `AIPromptRunner` tries MJ Credentials first (a per-request
|
|
59
|
+
* `credentialId`, then `AICredentialBinding`s, then the vendor's default credential) and reaches
|
|
60
|
+
* this order only when none of them resolves. This resolver never consults credentials.
|
|
61
|
+
*
|
|
62
|
+
* Pass the run's `apiKeys` and the resolver honours a customer's own credentials; pass nothing and
|
|
63
|
+
* it is exactly the platform lookup, so a caller never has to special-case "this run has no keys".
|
|
64
|
+
*
|
|
65
|
+
* A caller with its own platform-key seam should layer run keys over that seam rather than use this
|
|
66
|
+
* resolver, whose environment fallback would answer first and bypass the seam.
|
|
67
|
+
*
|
|
68
|
+
* @param apiKeys The runtime keys for a run, if any (`ExecuteAgentParams.apiKeys`).
|
|
69
|
+
* @param verbose Log which source answered — never the key itself.
|
|
70
|
+
*/
|
|
71
|
+
export declare function MakeAIAPIKeyResolver(apiKeys?: AIAPIKey[], verbose?: boolean): AIAPIKeyResolver;
|
|
39
72
|
//# sourceMappingURL=apiKeyDictionary.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apiKeyDictionary.d.ts","sourceRoot":"","sources":["../../src/generic/apiKeyDictionary.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,WAAW,QAAQ;IACrB;;;OAGG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,qBAAa,SAAS;IAClB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAyB;IAG9D,SAAS,CAAC,MAAM,CAAC,cAAc,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAM;IAChE,SAAS,CAAC,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM;IAKvD,SAAS,CAAC,eAAe,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAKtD,SAAS,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM;IA0B9C,SAAS,CAAC,6BAA6B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;CAK5E;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,EAAE,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,CAmBjG;AAED,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAM9D"}
|
|
1
|
+
{"version":3,"file":"apiKeyDictionary.d.ts","sourceRoot":"","sources":["../../src/generic/apiKeyDictionary.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,WAAW,QAAQ;IACrB;;;OAGG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,qBAAa,SAAS;IAClB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAyB;IAG9D,SAAS,CAAC,MAAM,CAAC,cAAc,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAM;IAChE,SAAS,CAAC,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM;IAKvD,SAAS,CAAC,eAAe,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAKtD,SAAS,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM;IA0B9C,SAAS,CAAC,6BAA6B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;CAK5E;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,EAAE,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,CAmBjG;AAED,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAM9D;AACD;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,WAAW,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;AAE3E;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,gBAAgB,CAE9F"}
|
|
@@ -82,4 +82,23 @@ export function GetAIAPIKeyGlobal(AIDriverName) {
|
|
|
82
82
|
else
|
|
83
83
|
throw new Error('Could not instantiate AIAPIKeys class');
|
|
84
84
|
}
|
|
85
|
+
/**
|
|
86
|
+
* Builds an {@link AIAPIKeyResolver} over a runtime key list: the list's key for the driver class
|
|
87
|
+
* first, then the platform (environment) key — the same precedence as `GetAIAPIKey`. For prompts
|
|
88
|
+
* that is only the legacy tier: `AIPromptRunner` tries MJ Credentials first (a per-request
|
|
89
|
+
* `credentialId`, then `AICredentialBinding`s, then the vendor's default credential) and reaches
|
|
90
|
+
* this order only when none of them resolves. This resolver never consults credentials.
|
|
91
|
+
*
|
|
92
|
+
* Pass the run's `apiKeys` and the resolver honours a customer's own credentials; pass nothing and
|
|
93
|
+
* it is exactly the platform lookup, so a caller never has to special-case "this run has no keys".
|
|
94
|
+
*
|
|
95
|
+
* A caller with its own platform-key seam should layer run keys over that seam rather than use this
|
|
96
|
+
* resolver, whose environment fallback would answer first and bypass the seam.
|
|
97
|
+
*
|
|
98
|
+
* @param apiKeys The runtime keys for a run, if any (`ExecuteAgentParams.apiKeys`).
|
|
99
|
+
* @param verbose Log which source answered — never the key itself.
|
|
100
|
+
*/
|
|
101
|
+
export function MakeAIAPIKeyResolver(apiKeys, verbose) {
|
|
102
|
+
return (driverClass) => GetAIAPIKey(driverClass, apiKeys, verbose) || undefined;
|
|
103
|
+
}
|
|
85
104
|
//# sourceMappingURL=apiKeyDictionary.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apiKeyDictionary.js","sourceRoot":"","sources":["../../src/generic/apiKeyDictionary.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"apiKeyDictionary.js","sourceRoot":"","sources":["../../src/generic/apiKeyDictionary.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import { BaseModel, BaseParams, ModelUsage } from "./baseModel.js";
|
|
2
|
+
import type { AIErrorInfo } from "./errorTypes.js";
|
|
3
|
+
import type { BaseSpeechToText } from "./baseSpeechToText.js";
|
|
4
|
+
import type { BaseTextToSpeech } from "./baseTextToSpeech.js";
|
|
2
5
|
/**
|
|
3
6
|
* One piece of a transcription: the text, plus the audio duration the provider reported for it.
|
|
4
7
|
*
|
|
@@ -11,11 +14,24 @@ export type TranscriptionPiece = {
|
|
|
11
14
|
durationSeconds?: number;
|
|
12
15
|
};
|
|
13
16
|
/**
|
|
14
|
-
* Base class for
|
|
15
|
-
* sub-classes
|
|
16
|
-
*
|
|
17
|
+
* Base class for audio models that carries both text-to-speech and speech-to-text. Not all
|
|
18
|
+
* sub-classes support all methods: an unsupported method throws, and `GetSupportedMethods` names
|
|
19
|
+
* the ones a sub-class implements.
|
|
20
|
+
*
|
|
21
|
+
* It spans two model types (`TTS` and `Speech to Text`), so it has been split. It stays, and keeps
|
|
22
|
+
* working, for drivers and callers that already use it: it implements both halves, so any of its
|
|
23
|
+
* drivers can be used where either new base class is expected. The drivers MemberJunction ships
|
|
24
|
+
* still extend it and are also registered against the new class or classes they implement, under
|
|
25
|
+
* the same keys.
|
|
26
|
+
*
|
|
27
|
+
* @deprecated Use {@link BaseTextToSpeech} for text-to-speech and {@link BaseSpeechToText} for
|
|
28
|
+
* speech-to-text. An application that overrides a shipped audio driver must also register the
|
|
29
|
+
* override against the new class or classes that driver implements, under the same key, for example
|
|
30
|
+
* `@RegisterClass(BaseTextToSpeech, 'OpenAIAudioGenerator')`. The ClassFactory keeps registrations
|
|
31
|
+
* per base class, and the text-to-speech and speech-to-text runners resolve drivers through the new
|
|
32
|
+
* classes, so an override registered only against `BaseAudioGenerator` is not used by them.
|
|
17
33
|
*/
|
|
18
|
-
export declare abstract class BaseAudioGenerator extends BaseModel {
|
|
34
|
+
export declare abstract class BaseAudioGenerator extends BaseModel implements BaseTextToSpeech, BaseSpeechToText {
|
|
19
35
|
abstract CreateSpeech(params: TextToSpeechParams): Promise<SpeechResult>;
|
|
20
36
|
abstract SpeechToText(params: SpeechToTextParams): Promise<SpeechResult>;
|
|
21
37
|
abstract GetVoices(): Promise<VoiceInfo[]>;
|
|
@@ -23,16 +39,8 @@ export declare abstract class BaseAudioGenerator extends BaseModel {
|
|
|
23
39
|
abstract GetPronounciationDictionaries(): Promise<PronounciationDictionary[]>;
|
|
24
40
|
abstract GetSupportedMethods(): Promise<string[]>;
|
|
25
41
|
/**
|
|
26
|
-
* Transcribes audio that may exceed the provider's upload ceiling, splitting it first when
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
* Pieces are transcribed **sequentially**, not in parallel: transcription providers rate limit
|
|
30
|
-
* by audio-seconds per minute, so firing an hour of audio at once buys nothing but 429s, and a
|
|
31
|
-
* partial failure mid-way would leave a transcript with an unmarked hole in it.
|
|
32
|
-
*
|
|
33
|
-
* The returned `durationSeconds` is the sum across pieces — which is what the provider bills —
|
|
34
|
-
* and is left undefined if ANY piece failed to report one, since a partial sum would understate
|
|
35
|
-
* the bill while looking like a complete answer.
|
|
42
|
+
* Transcribes audio that may exceed the provider's upload ceiling, splitting it first when it
|
|
43
|
+
* does. See {@link TranscribeAudioWithSplitting}, which this calls, for the behavior.
|
|
36
44
|
*
|
|
37
45
|
* @param audio The full audio to transcribe
|
|
38
46
|
* @param maxUploadBytes The provider's hard upload ceiling
|
|
@@ -70,6 +78,15 @@ export declare class SpeechResult {
|
|
|
70
78
|
* cost calculation declines rather than billing the request as free.
|
|
71
79
|
*/
|
|
72
80
|
usage?: ModelUsage;
|
|
81
|
+
/**
|
|
82
|
+
* How a failure is classified, when the request failed: `ErrorAnalyzer`'s reading of the error
|
|
83
|
+
* the provider's SDK threw, which keeps its HTTP status. A caller deciding whether to try another
|
|
84
|
+
* vendor reads this, as the failover loop reads `BaseResult.errorInfo`: a rate limit or an outage
|
|
85
|
+
* is worth another vendor, and a request the vendor rejected as invalid is not. The message alone
|
|
86
|
+
* cannot tell them apart. Undefined on success, and from a driver that reports only
|
|
87
|
+
* `errorMessage`.
|
|
88
|
+
*/
|
|
89
|
+
errorInfo?: AIErrorInfo;
|
|
73
90
|
}
|
|
74
91
|
export declare class SpeechToTextParams extends BaseParams {
|
|
75
92
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"baseAudio.d.ts","sourceRoot":"","sources":["../../src/generic/baseAudio.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"baseAudio.d.ts","sourceRoot":"","sources":["../../src/generic/baseAudio.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,21 +1,27 @@
|
|
|
1
1
|
import { BaseModel, BaseParams } from "./baseModel.js";
|
|
2
|
+
import { TranscribeAudioWithSplitting } from "./baseSpeechToText.js";
|
|
2
3
|
/**
|
|
3
|
-
* Base class for
|
|
4
|
-
* sub-classes
|
|
5
|
-
*
|
|
4
|
+
* Base class for audio models that carries both text-to-speech and speech-to-text. Not all
|
|
5
|
+
* sub-classes support all methods: an unsupported method throws, and `GetSupportedMethods` names
|
|
6
|
+
* the ones a sub-class implements.
|
|
7
|
+
*
|
|
8
|
+
* It spans two model types (`TTS` and `Speech to Text`), so it has been split. It stays, and keeps
|
|
9
|
+
* working, for drivers and callers that already use it: it implements both halves, so any of its
|
|
10
|
+
* drivers can be used where either new base class is expected. The drivers MemberJunction ships
|
|
11
|
+
* still extend it and are also registered against the new class or classes they implement, under
|
|
12
|
+
* the same keys.
|
|
13
|
+
*
|
|
14
|
+
* @deprecated Use {@link BaseTextToSpeech} for text-to-speech and {@link BaseSpeechToText} for
|
|
15
|
+
* speech-to-text. An application that overrides a shipped audio driver must also register the
|
|
16
|
+
* override against the new class or classes that driver implements, under the same key, for example
|
|
17
|
+
* `@RegisterClass(BaseTextToSpeech, 'OpenAIAudioGenerator')`. The ClassFactory keeps registrations
|
|
18
|
+
* per base class, and the text-to-speech and speech-to-text runners resolve drivers through the new
|
|
19
|
+
* classes, so an override registered only against `BaseAudioGenerator` is not used by them.
|
|
6
20
|
*/
|
|
7
21
|
export class BaseAudioGenerator extends BaseModel {
|
|
8
22
|
/**
|
|
9
|
-
* Transcribes audio that may exceed the provider's upload ceiling, splitting it first when
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
* Pieces are transcribed **sequentially**, not in parallel: transcription providers rate limit
|
|
13
|
-
* by audio-seconds per minute, so firing an hour of audio at once buys nothing but 429s, and a
|
|
14
|
-
* partial failure mid-way would leave a transcript with an unmarked hole in it.
|
|
15
|
-
*
|
|
16
|
-
* The returned `durationSeconds` is the sum across pieces — which is what the provider bills —
|
|
17
|
-
* and is left undefined if ANY piece failed to report one, since a partial sum would understate
|
|
18
|
-
* the bill while looking like a complete answer.
|
|
23
|
+
* Transcribes audio that may exceed the provider's upload ceiling, splitting it first when it
|
|
24
|
+
* does. See {@link TranscribeAudioWithSplitting}, which this calls, for the behavior.
|
|
19
25
|
*
|
|
20
26
|
* @param audio The full audio to transcribe
|
|
21
27
|
* @param maxUploadBytes The provider's hard upload ceiling
|
|
@@ -25,42 +31,7 @@ export class BaseAudioGenerator extends BaseModel {
|
|
|
25
31
|
* @param transcribeOne Transcribes a single piece already known to be within the ceiling
|
|
26
32
|
*/
|
|
27
33
|
async TranscribeWithSplitting(audio, maxUploadBytes, splitTargetBytes, splitter, providerLabel, transcribeOne) {
|
|
28
|
-
|
|
29
|
-
if (audio.byteLength <= maxUploadBytes) {
|
|
30
|
-
return await transcribeOne(audio);
|
|
31
|
-
}
|
|
32
|
-
if (!splitter) {
|
|
33
|
-
throw new Error(`Audio is ${(audio.byteLength / (1024 * 1024)).toFixed(1)}MB, above ${providerLabel}'s ${limitMB}MB ` +
|
|
34
|
-
`transcription limit. Assign an AudioSplitter to the Splitter property to transcribe ` +
|
|
35
|
-
`audio this size.`);
|
|
36
|
-
}
|
|
37
|
-
const pieces = await splitter.Split(audio, splitTargetBytes);
|
|
38
|
-
if (pieces.length === 0) {
|
|
39
|
-
throw new Error('The configured AudioSplitter returned no pieces');
|
|
40
|
-
}
|
|
41
|
-
const transcripts = [];
|
|
42
|
-
let totalDurationSeconds = 0;
|
|
43
|
-
let everyPieceReportedDuration = true;
|
|
44
|
-
for (const piece of pieces) {
|
|
45
|
-
// A piece the splitter left oversized would fail at the API with a size error naming
|
|
46
|
-
// neither the splitter nor which piece; say so here instead.
|
|
47
|
-
if (piece.byteLength > maxUploadBytes) {
|
|
48
|
-
throw new Error(`The configured AudioSplitter produced a ${(piece.byteLength / (1024 * 1024)).toFixed(1)}MB ` +
|
|
49
|
-
`piece, above ${providerLabel}'s ${limitMB}MB limit`);
|
|
50
|
-
}
|
|
51
|
-
const transcribed = await transcribeOne(piece);
|
|
52
|
-
transcripts.push(transcribed.text);
|
|
53
|
-
if (transcribed.durationSeconds == null) {
|
|
54
|
-
everyPieceReportedDuration = false;
|
|
55
|
-
}
|
|
56
|
-
else {
|
|
57
|
-
totalDurationSeconds += transcribed.durationSeconds;
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
return {
|
|
61
|
-
text: transcripts.filter((t) => t.length > 0).join(' '),
|
|
62
|
-
durationSeconds: everyPieceReportedDuration ? totalDurationSeconds : undefined,
|
|
63
|
-
};
|
|
34
|
+
return TranscribeAudioWithSplitting(audio, maxUploadBytes, splitTargetBytes, splitter, providerLabel, transcribeOne);
|
|
64
35
|
}
|
|
65
36
|
}
|
|
66
37
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"baseAudio.js","sourceRoot":"","sources":["../../src/generic/baseAudio.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAc,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"baseAudio.js","sourceRoot":"","sources":["../../src/generic/baseAudio.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAc,MAAM,aAAa,CAAC;AAGhE,OAAO,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAC;AAgBlE;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,OAAgB,kBAAmB,SAAQ,SAAS;IAQtD;;;;;;;;;;OAUG;IACO,KAAK,CAAC,uBAAuB,CACnC,KAAa,EACb,cAAsB,EACtB,gBAAwB,EACxB,QAA8B,EAC9B,aAAqB,EACrB,aAA6D;QAE7D,OAAO,4BAA4B,CAAC,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,QAAQ,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC;IACzH,CAAC;CACJ;AAED;;GAEG;AACH,MAAM,OAAO,YAAY;CAmCxB;AAED,MAAM,OAAO,kBAAmB,SAAQ,UAAU;CAmCjD;AAyED;;GAEG;AACH,MAAM,OAAO,SAAS;CAwCrB;AAED;;GAEG;AACH,MAAM,OAAO,WAAW;CAMvB;AAED,MAAM,OAAO,UAAU;CAmCtB;AAED,MAAM,OAAO,aAAa;CASzB;AAED;;GAEG;AACH,MAAM,OAAO,wBAAwB;CAOpC"}
|
|
@@ -61,6 +61,14 @@ export declare abstract class BaseEmbeddings extends BaseModel {
|
|
|
61
61
|
* and implement {@link embedBatch}. Providers without one inherit the safe per-text default below.
|
|
62
62
|
*/
|
|
63
63
|
get SupportsBatchEmbeddings(): boolean;
|
|
64
|
+
/**
|
|
65
|
+
* Whether this provider needs an API key to run. Defaults to `true`, because most embedding
|
|
66
|
+
* providers call a hosted API. A provider that runs in-process or against a local server (e.g.
|
|
67
|
+
* `LocalEmbedding`, which runs ONNX models in-process) overrides this to return `false`, so a
|
|
68
|
+
* caller that checks credentials before a call (such as `AIEmbeddingRunner`) does not reject it
|
|
69
|
+
* for having no key. Mirrors `VectorDBBase.RequiresAPIKey`.
|
|
70
|
+
*/
|
|
71
|
+
get RequiresAPIKey(): boolean;
|
|
64
72
|
/**
|
|
65
73
|
* Max in-flight `EmbedText` calls for the default (non-batch) path. Override to tune.
|
|
66
74
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"baseEmbeddings.d.ts","sourceRoot":"","sources":["../../src/generic/baseEmbeddings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAc,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAA2B,MAAM,cAAc,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,eAAe,EAAE,eAAe,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAE7I;;GAEG;AACH,8BAAsB,cAAe,SAAQ,SAAS;IAClD;;OAEG;IACH,SAAS,CAAC,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAM;IAExD;;OAEG;IACH,IAAW,kBAAkB,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAEnD;IAED;;;;OAIG;IACI,mBAAmB,IAAI,gBAAgB,GAAG,IAAI;IAIrD;;;OAGG;IACH,SAAS,CAAC,wBAAwB,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI;IAmBrE,+FAA+F;IAC/F,OAAO,CAAC,oBAAoB;IAW5B,8FAA8F;IAC9F,OAAO,CAAC,iBAAiB;IAUzB;;;;;OAKG;IACI,qBAAqB,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAIjE;;;;OAIG;IACI,uBAAuB,IAAI,IAAI;IAItC;;;;;;;;;OASG;aACa,SAAS,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;aAC5D,kBAAkB,IAAI,OAAO,CAAC,GAAG,CAAC;IAElD;;;;;OAKG;IACH,IAAW,uBAAuB,IAAI,OAAO,CAE5C;IAED;;;;;;OAMG;IACH,SAAS,KAAK,wBAAwB,IAAI,MAAM,CAE/C;IAED;;;;OAIG;IACH,SAAS,KAAK,oBAAoB,IAAI,MAAM,CAE3C;IAED,gGAAgG;IAChG,SAAS,KAAK,qBAAqB,IAAI,MAAM,CAE5C;IAED;;;;;;;;;;;;OAYG;IACU,UAAU,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAY5E;;;;OAIG;IACH,SAAS,CAAC,UAAU,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAO1E;;;;;;;;;;;;;OAaG;cACa,YAAY,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAiCjF,2GAA2G;IAC3G,OAAO,CAAC,qBAAqB;IAI7B;;;;OAIG;cACa,kBAAkB,CAAC,CAAC,EAChC,KAAK,EAAE,MAAM,EAAE,EACf,EAAE,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,EAC/C,cAAc,EAAE,MAAM,GACvB,OAAO,CAAC,CAAC,EAAE,CAAC;IAuBf;;;;;;;OAOG;cACa,cAAc,CAAC,OAAO,EAAE,MAAM,OAAO,CAAC,eAAe,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC;IAwBjG,mHAAmH;IACnH,SAAS,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1C;;;;;;OAMG;IACU,YAAY,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAQrF;AAED;;GAEG;AACH,8BAAsB,UAAW,SAAQ,cAAc;CAAG"}
|
|
1
|
+
{"version":3,"file":"baseEmbeddings.d.ts","sourceRoot":"","sources":["../../src/generic/baseEmbeddings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAc,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAA2B,MAAM,cAAc,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,eAAe,EAAE,eAAe,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAE7I;;GAEG;AACH,8BAAsB,cAAe,SAAQ,SAAS;IAClD;;OAEG;IACH,SAAS,CAAC,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAM;IAExD;;OAEG;IACH,IAAW,kBAAkB,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAEnD;IAED;;;;OAIG;IACI,mBAAmB,IAAI,gBAAgB,GAAG,IAAI;IAIrD;;;OAGG;IACH,SAAS,CAAC,wBAAwB,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI;IAmBrE,+FAA+F;IAC/F,OAAO,CAAC,oBAAoB;IAW5B,8FAA8F;IAC9F,OAAO,CAAC,iBAAiB;IAUzB;;;;;OAKG;IACI,qBAAqB,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAIjE;;;;OAIG;IACI,uBAAuB,IAAI,IAAI;IAItC;;;;;;;;;OASG;aACa,SAAS,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;aAC5D,kBAAkB,IAAI,OAAO,CAAC,GAAG,CAAC;IAElD;;;;;OAKG;IACH,IAAW,uBAAuB,IAAI,OAAO,CAE5C;IAED;;;;;;OAMG;IACH,IAAW,cAAc,IAAI,OAAO,CAEnC;IAED;;;;;;OAMG;IACH,SAAS,KAAK,wBAAwB,IAAI,MAAM,CAE/C;IAED;;;;OAIG;IACH,SAAS,KAAK,oBAAoB,IAAI,MAAM,CAE3C;IAED,gGAAgG;IAChG,SAAS,KAAK,qBAAqB,IAAI,MAAM,CAE5C;IAED;;;;;;;;;;;;OAYG;IACU,UAAU,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAY5E;;;;OAIG;IACH,SAAS,CAAC,UAAU,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAO1E;;;;;;;;;;;;;OAaG;cACa,YAAY,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAiCjF,2GAA2G;IAC3G,OAAO,CAAC,qBAAqB;IAI7B;;;;OAIG;cACa,kBAAkB,CAAC,CAAC,EAChC,KAAK,EAAE,MAAM,EAAE,EACf,EAAE,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,EAC/C,cAAc,EAAE,MAAM,GACvB,OAAO,CAAC,CAAC,EAAE,CAAC;IAuBf;;;;;;;OAOG;cACa,cAAc,CAAC,OAAO,EAAE,MAAM,OAAO,CAAC,eAAe,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC;IAwBjG,mHAAmH;IACnH,SAAS,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1C;;;;;;OAMG;IACU,YAAY,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAQrF;AAED;;GAEG;AACH,8BAAsB,UAAW,SAAQ,cAAc;CAAG"}
|
|
@@ -91,6 +91,16 @@ export class BaseEmbeddings extends BaseModel {
|
|
|
91
91
|
get SupportsBatchEmbeddings() {
|
|
92
92
|
return false;
|
|
93
93
|
}
|
|
94
|
+
/**
|
|
95
|
+
* Whether this provider needs an API key to run. Defaults to `true`, because most embedding
|
|
96
|
+
* providers call a hosted API. A provider that runs in-process or against a local server (e.g.
|
|
97
|
+
* `LocalEmbedding`, which runs ONNX models in-process) overrides this to return `false`, so a
|
|
98
|
+
* caller that checks credentials before a call (such as `AIEmbeddingRunner`) does not reject it
|
|
99
|
+
* for having no key. Mirrors `VectorDBBase.RequiresAPIKey`.
|
|
100
|
+
*/
|
|
101
|
+
get RequiresAPIKey() {
|
|
102
|
+
return true;
|
|
103
|
+
}
|
|
94
104
|
/**
|
|
95
105
|
* Max in-flight `EmbedText` calls for the default (non-batch) path. Override to tune.
|
|
96
106
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"baseEmbeddings.js","sourceRoot":"","sources":["../../src/generic/baseEmbeddings.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAIpD;;GAEG;AACH,MAAM,OAAgB,cAAe,SAAQ,SAAS;IAAtD;;QACI;;WAEG;QACO,wBAAmB,GAAwB,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"baseEmbeddings.js","sourceRoot":"","sources":["../../src/generic/baseEmbeddings.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { BaseModel } from "./baseModel.js";
|
|
2
|
+
import type { AudioModel, AudioSplitter, SpeechResult, SpeechToTextParams, TranscriptionPiece } from "./baseAudio.js";
|
|
3
|
+
/**
|
|
4
|
+
* Base class for speech-to-text models: recorded audio in, a transcript out. Drivers are resolved
|
|
5
|
+
* through the ClassFactory for `MJ: AI Models` of type `Speech to Text`, keyed by the model
|
|
6
|
+
* vendor's `DriverClass`, and are run by `AISpeechToTextRunner` in `@memberjunction/ai-prompts`.
|
|
7
|
+
*
|
|
8
|
+
* Split from `BaseAudioGenerator`, which also carries text-to-speech. A driver that does both
|
|
9
|
+
* registers against this class and `BaseTextToSpeech` under the same key. Drivers that split
|
|
10
|
+
* oversized audio call {@link TranscribeAudioWithSplitting}.
|
|
11
|
+
*/
|
|
12
|
+
export declare abstract class BaseSpeechToText extends BaseModel {
|
|
13
|
+
/**
|
|
14
|
+
* Transcribes the audio in `params.audioData` (or the base 64 `params.audioFile`). On success the
|
|
15
|
+
* transcript is in `SpeechResult.content`, and `SpeechResult.usage` carries the audio duration in
|
|
16
|
+
* `Seconds` when the provider reported one.
|
|
17
|
+
*/
|
|
18
|
+
abstract SpeechToText(params: SpeechToTextParams): Promise<SpeechResult>;
|
|
19
|
+
/** The driver's transcription models. */
|
|
20
|
+
abstract GetModels(): Promise<AudioModel[]>;
|
|
21
|
+
/** The names of the methods this driver implements. */
|
|
22
|
+
abstract GetSupportedMethods(): Promise<string[]>;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Transcribes audio that may exceed a provider's upload ceiling, splitting it first when it does,
|
|
26
|
+
* and joins the pieces back into one transcript and one duration.
|
|
27
|
+
*
|
|
28
|
+
* Pieces are transcribed **sequentially**, not in parallel: transcription providers rate limit by
|
|
29
|
+
* audio-seconds per minute, so firing an hour of audio at once buys nothing but 429s, and a partial
|
|
30
|
+
* failure mid-way would leave a transcript with an unmarked hole in it.
|
|
31
|
+
*
|
|
32
|
+
* The returned `durationSeconds` is the sum across pieces, which is what the provider bills, and is
|
|
33
|
+
* left undefined if ANY piece failed to report one, since a partial sum would understate the bill
|
|
34
|
+
* while looking like a complete answer.
|
|
35
|
+
*
|
|
36
|
+
* A free function rather than a protected method so that `BaseAudioGenerator` (which keeps it as
|
|
37
|
+
* one, for its drivers) can still be assigned to {@link BaseSpeechToText}.
|
|
38
|
+
*
|
|
39
|
+
* @param audio The full audio to transcribe
|
|
40
|
+
* @param maxUploadBytes The provider's hard upload ceiling
|
|
41
|
+
* @param splitTargetBytes Target piece size, below the ceiling to leave room for multipart framing
|
|
42
|
+
* @param splitter Splitter to use for oversized audio; may be null, in which case oversized audio fails
|
|
43
|
+
* @param providerLabel Provider name, used in the size-limit error messages
|
|
44
|
+
* @param transcribeOne Transcribes a single piece already known to be within the ceiling
|
|
45
|
+
*/
|
|
46
|
+
export declare function TranscribeAudioWithSplitting(audio: Buffer, maxUploadBytes: number, splitTargetBytes: number, splitter: AudioSplitter | null, providerLabel: string, transcribeOne: (piece: Buffer) => Promise<TranscriptionPiece>): Promise<TranscriptionPiece>;
|
|
47
|
+
//# sourceMappingURL=baseSpeechToText.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"baseSpeechToText.d.ts","sourceRoot":"","sources":["../../src/generic/baseSpeechToText.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEnH;;;;;;;;GAQG;AACH,8BAAsB,gBAAiB,SAAQ,SAAS;IACpD;;;;OAIG;aACa,YAAY,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,YAAY,CAAC;IAE/E,yCAAyC;aACzB,SAAS,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IAElD,uDAAuD;aACvC,mBAAmB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;CAC3D;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,4BAA4B,CAC9C,KAAK,EAAE,MAAM,EACb,cAAc,EAAE,MAAM,EACtB,gBAAgB,EAAE,MAAM,EACxB,QAAQ,EAAE,aAAa,GAAG,IAAI,EAC9B,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,kBAAkB,CAAC,GAC9D,OAAO,CAAC,kBAAkB,CAAC,CAgB7B"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { BaseModel } from "./baseModel.js";
|
|
2
|
+
/**
|
|
3
|
+
* Base class for speech-to-text models: recorded audio in, a transcript out. Drivers are resolved
|
|
4
|
+
* through the ClassFactory for `MJ: AI Models` of type `Speech to Text`, keyed by the model
|
|
5
|
+
* vendor's `DriverClass`, and are run by `AISpeechToTextRunner` in `@memberjunction/ai-prompts`.
|
|
6
|
+
*
|
|
7
|
+
* Split from `BaseAudioGenerator`, which also carries text-to-speech. A driver that does both
|
|
8
|
+
* registers against this class and `BaseTextToSpeech` under the same key. Drivers that split
|
|
9
|
+
* oversized audio call {@link TranscribeAudioWithSplitting}.
|
|
10
|
+
*/
|
|
11
|
+
export class BaseSpeechToText extends BaseModel {
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Transcribes audio that may exceed a provider's upload ceiling, splitting it first when it does,
|
|
15
|
+
* and joins the pieces back into one transcript and one duration.
|
|
16
|
+
*
|
|
17
|
+
* Pieces are transcribed **sequentially**, not in parallel: transcription providers rate limit by
|
|
18
|
+
* audio-seconds per minute, so firing an hour of audio at once buys nothing but 429s, and a partial
|
|
19
|
+
* failure mid-way would leave a transcript with an unmarked hole in it.
|
|
20
|
+
*
|
|
21
|
+
* The returned `durationSeconds` is the sum across pieces, which is what the provider bills, and is
|
|
22
|
+
* left undefined if ANY piece failed to report one, since a partial sum would understate the bill
|
|
23
|
+
* while looking like a complete answer.
|
|
24
|
+
*
|
|
25
|
+
* A free function rather than a protected method so that `BaseAudioGenerator` (which keeps it as
|
|
26
|
+
* one, for its drivers) can still be assigned to {@link BaseSpeechToText}.
|
|
27
|
+
*
|
|
28
|
+
* @param audio The full audio to transcribe
|
|
29
|
+
* @param maxUploadBytes The provider's hard upload ceiling
|
|
30
|
+
* @param splitTargetBytes Target piece size, below the ceiling to leave room for multipart framing
|
|
31
|
+
* @param splitter Splitter to use for oversized audio; may be null, in which case oversized audio fails
|
|
32
|
+
* @param providerLabel Provider name, used in the size-limit error messages
|
|
33
|
+
* @param transcribeOne Transcribes a single piece already known to be within the ceiling
|
|
34
|
+
*/
|
|
35
|
+
export async function TranscribeAudioWithSplitting(audio, maxUploadBytes, splitTargetBytes, splitter, providerLabel, transcribeOne) {
|
|
36
|
+
if (audio.byteLength <= maxUploadBytes) {
|
|
37
|
+
return await transcribeOne(audio);
|
|
38
|
+
}
|
|
39
|
+
if (!splitter) {
|
|
40
|
+
throw new Error(`Audio is ${toMB(audio.byteLength)}MB, above ${providerLabel}'s ${limitMB(maxUploadBytes)}MB ` +
|
|
41
|
+
`transcription limit. Assign an AudioSplitter to the Splitter property to transcribe ` +
|
|
42
|
+
`audio this size.`);
|
|
43
|
+
}
|
|
44
|
+
const pieces = await splitter.Split(audio, splitTargetBytes);
|
|
45
|
+
if (pieces.length === 0) {
|
|
46
|
+
throw new Error('The configured AudioSplitter returned no pieces');
|
|
47
|
+
}
|
|
48
|
+
return transcribePieces(pieces, maxUploadBytes, providerLabel, transcribeOne);
|
|
49
|
+
}
|
|
50
|
+
/** Transcribes split pieces in order and joins their text and durations. */
|
|
51
|
+
async function transcribePieces(pieces, maxUploadBytes, providerLabel, transcribeOne) {
|
|
52
|
+
const transcripts = [];
|
|
53
|
+
let totalDurationSeconds = 0;
|
|
54
|
+
let everyPieceReportedDuration = true;
|
|
55
|
+
for (const piece of pieces) {
|
|
56
|
+
// A piece the splitter left oversized would fail at the API with a size error naming
|
|
57
|
+
// neither the splitter nor which piece; say so here instead.
|
|
58
|
+
if (piece.byteLength > maxUploadBytes) {
|
|
59
|
+
throw new Error(`The configured AudioSplitter produced a ${toMB(piece.byteLength)}MB ` +
|
|
60
|
+
`piece, above ${providerLabel}'s ${limitMB(maxUploadBytes)}MB limit`);
|
|
61
|
+
}
|
|
62
|
+
const transcribed = await transcribeOne(piece);
|
|
63
|
+
transcripts.push(transcribed.text);
|
|
64
|
+
if (transcribed.durationSeconds == null) {
|
|
65
|
+
everyPieceReportedDuration = false;
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
totalDurationSeconds += transcribed.durationSeconds;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
return {
|
|
72
|
+
text: transcripts.filter((t) => t.length > 0).join(' '),
|
|
73
|
+
durationSeconds: everyPieceReportedDuration ? totalDurationSeconds : undefined,
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
/** A byte count in MB, to one decimal place, for error messages. */
|
|
77
|
+
function toMB(bytes) {
|
|
78
|
+
return (bytes / (1024 * 1024)).toFixed(1);
|
|
79
|
+
}
|
|
80
|
+
/** An upload ceiling in whole MB, for error messages. */
|
|
81
|
+
function limitMB(bytes) {
|
|
82
|
+
return (bytes / (1024 * 1024)).toFixed(0);
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=baseSpeechToText.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"baseSpeechToText.js","sourceRoot":"","sources":["../../src/generic/baseSpeechToText.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC;;;;;;;;GAQG;AACH,MAAM,OAAgB,gBAAiB,SAAQ,SAAS;CAavD;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAC9C,KAAa,EACb,cAAsB,EACtB,gBAAwB,EACxB,QAA8B,EAC9B,aAAqB,EACrB,aAA6D;IAE7D,IAAI,KAAK,CAAC,UAAU,IAAI,cAAc,EAAE,CAAC;QACrC,OAAO,MAAM,aAAa,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;IACD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CACX,YAAY,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,aAAa,aAAa,MAAM,OAAO,CAAC,cAAc,CAAC,KAAK;YAC1F,sFAAsF;YACtF,kBAAkB,CACzB,CAAC;IACN,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;IAC7D,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACvE,CAAC;IACD,OAAO,gBAAgB,CAAC,MAAM,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC;AAClF,CAAC;AAED,4EAA4E;AAC5E,KAAK,UAAU,gBAAgB,CAC3B,MAAgB,EAChB,cAAsB,EACtB,aAAqB,EACrB,aAA6D;IAE7D,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,IAAI,oBAAoB,GAAG,CAAC,CAAC;IAC7B,IAAI,0BAA0B,GAAG,IAAI,CAAC;IAEtC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QACzB,qFAAqF;QACrF,6DAA6D;QAC7D,IAAI,KAAK,CAAC,UAAU,GAAG,cAAc,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CACX,2CAA2C,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK;gBAClE,gBAAgB,aAAa,MAAM,OAAO,CAAC,cAAc,CAAC,UAAU,CAC3E,CAAC;QACN,CAAC;QACD,MAAM,WAAW,GAAG,MAAM,aAAa,CAAC,KAAK,CAAC,CAAC;QAC/C,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,WAAW,CAAC,eAAe,IAAI,IAAI,EAAE,CAAC;YACtC,0BAA0B,GAAG,KAAK,CAAC;QACvC,CAAC;aAAM,CAAC;YACJ,oBAAoB,IAAI,WAAW,CAAC,eAAe,CAAC;QACxD,CAAC;IACL,CAAC;IAED,OAAO;QACH,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;QACvD,eAAe,EAAE,0BAA0B,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,SAAS;KACjF,CAAC;AACN,CAAC;AAED,oEAAoE;AACpE,SAAS,IAAI,CAAC,KAAa;IACvB,OAAO,CAAC,KAAK,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAC9C,CAAC;AAED,yDAAyD;AACzD,SAAS,OAAO,CAAC,KAAa;IAC1B,OAAO,CAAC,KAAK,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAC9C,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { BaseModel } from "./baseModel.js";
|
|
2
|
+
import type { AudioModel, PronounciationDictionary, SpeechResult, TextToSpeechParams, VoiceInfo } from "./baseAudio.js";
|
|
3
|
+
/**
|
|
4
|
+
* Base class for text-to-speech models: text in, audio out. Drivers are resolved through the
|
|
5
|
+
* ClassFactory for `MJ: AI Models` of type `TTS`, keyed by the model vendor's `DriverClass`, and
|
|
6
|
+
* are run by `AITextToSpeechRunner` in `@memberjunction/ai-prompts`.
|
|
7
|
+
*
|
|
8
|
+
* Split from `BaseAudioGenerator`, which also carries speech-to-text. A driver that does both
|
|
9
|
+
* registers against this class and `BaseSpeechToText` under the same key.
|
|
10
|
+
*/
|
|
11
|
+
export declare abstract class BaseTextToSpeech extends BaseModel {
|
|
12
|
+
/**
|
|
13
|
+
* Speaks `params.text` in `params.voice`. On success the audio is in `SpeechResult.data`, and
|
|
14
|
+
* base 64 encoded in `SpeechResult.content`.
|
|
15
|
+
*/
|
|
16
|
+
abstract CreateSpeech(params: TextToSpeechParams): Promise<SpeechResult>;
|
|
17
|
+
/** The voices the driver can speak in. */
|
|
18
|
+
abstract GetVoices(): Promise<VoiceInfo[]>;
|
|
19
|
+
/** The driver's speech models. */
|
|
20
|
+
abstract GetModels(): Promise<AudioModel[]>;
|
|
21
|
+
/** The pronunciation dictionaries available to the driver; empty when it has none. */
|
|
22
|
+
abstract GetPronounciationDictionaries(): Promise<PronounciationDictionary[]>;
|
|
23
|
+
/** The names of the methods this driver implements. */
|
|
24
|
+
abstract GetSupportedMethods(): Promise<string[]>;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=baseTextToSpeech.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"baseTextToSpeech.d.ts","sourceRoot":"","sources":["../../src/generic/baseTextToSpeech.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,KAAK,EAAE,UAAU,EAAE,wBAAwB,EAAE,YAAY,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAErH;;;;;;;GAOG;AACH,8BAAsB,gBAAiB,SAAQ,SAAS;IACpD;;;OAGG;aACa,YAAY,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,YAAY,CAAC;IAE/E,0CAA0C;aAC1B,SAAS,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAEjD,kCAAkC;aAClB,SAAS,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IAElD,sFAAsF;aACtE,6BAA6B,IAAI,OAAO,CAAC,wBAAwB,EAAE,CAAC;IAEpF,uDAAuD;aACvC,mBAAmB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;CAC3D"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { BaseModel } from "./baseModel.js";
|
|
2
|
+
/**
|
|
3
|
+
* Base class for text-to-speech models: text in, audio out. Drivers are resolved through the
|
|
4
|
+
* ClassFactory for `MJ: AI Models` of type `TTS`, keyed by the model vendor's `DriverClass`, and
|
|
5
|
+
* are run by `AITextToSpeechRunner` in `@memberjunction/ai-prompts`.
|
|
6
|
+
*
|
|
7
|
+
* Split from `BaseAudioGenerator`, which also carries speech-to-text. A driver that does both
|
|
8
|
+
* registers against this class and `BaseSpeechToText` under the same key.
|
|
9
|
+
*/
|
|
10
|
+
export class BaseTextToSpeech extends BaseModel {
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=baseTextToSpeech.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"baseTextToSpeech.js","sourceRoot":"","sources":["../../src/generic/baseTextToSpeech.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC;;;;;;;GAOG;AACH,MAAM,OAAgB,gBAAiB,SAAQ,SAAS;CAkBvD"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { BaseModel } from "./baseModel.js";
|
|
1
|
+
import { BaseModel, ModelUsage } from "./baseModel.js";
|
|
2
|
+
import type { AIErrorInfo } from "./errorTypes.js";
|
|
2
3
|
/**
|
|
3
4
|
* Base class for all video generation models. Each AI model will have a sub-class implementing the abstract methods in this base class. Not all
|
|
4
5
|
* sub-classes will support all methods. If a method is not supported an exception will be thrown, use the GetSupportedMethods method to determine
|
|
@@ -20,6 +21,19 @@ export declare class VideoResult {
|
|
|
20
21
|
* Platform-specific video ID for the generated video when success == true
|
|
21
22
|
*/
|
|
22
23
|
videoId: string;
|
|
24
|
+
/**
|
|
25
|
+
* Usage for the request, when the provider reported it: normally the video's length as
|
|
26
|
+
* `ModelUsage.ForMedia('Seconds', 0, seconds)`, which per-second video pricing prices. Left
|
|
27
|
+
* undefined when the length is not known, as it is not for a provider that only accepts a render
|
|
28
|
+
* job (HeyGen's `CreateAvatarVideo` returns the job's ID before the video exists).
|
|
29
|
+
*/
|
|
30
|
+
usage?: ModelUsage;
|
|
31
|
+
/**
|
|
32
|
+
* How a failure is classified, when the request failed: `ErrorAnalyzer`'s reading of the error,
|
|
33
|
+
* with its HTTP status. See `SpeechResult.errorInfo`, which this mirrors. Undefined on success,
|
|
34
|
+
* and from a driver that reports only `errorMessage`.
|
|
35
|
+
*/
|
|
36
|
+
errorInfo?: AIErrorInfo;
|
|
23
37
|
}
|
|
24
38
|
export declare class AvatarInfo {
|
|
25
39
|
id: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"baseVideo.d.ts","sourceRoot":"","sources":["../../src/generic/baseVideo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"baseVideo.d.ts","sourceRoot":"","sources":["../../src/generic/baseVideo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD;;;;GAIG;AACH,8BAAsB,kBAAmB,SAAQ,SAAS;aACtC,iBAAiB,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,WAAW,CAAC;aAClE,sBAAsB,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,WAAW,CAAC;aAC5E,UAAU,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;aACnC,mBAAmB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;CAC3D;AAED,qBAAa,WAAW;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAA;IAEf;;;;;OAKG;IACH,KAAK,CAAC,EAAE,UAAU,CAAC;IAEnB;;;;OAIG;IACH,SAAS,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED,qBAAa,UAAU;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;CAC3B;AAED,qBAAa,sBAAsB;CAElC;AAED,qBAAa,iBAAiB;IAC1B;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB,QAAQ,EAAE,MAAM,CAAC;IAEjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACvB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"baseVideo.js","sourceRoot":"","sources":["../../src/generic/baseVideo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"baseVideo.js","sourceRoot":"","sources":["../../src/generic/baseVideo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAc,MAAM,aAAa,CAAC;AAGpD;;;;GAIG;AACH,MAAM,OAAgB,kBAAmB,SAAQ,SAAS;CAKzD;AAED,MAAM,OAAO,WAAW;CAyBvB;AAED,MAAM,OAAO,UAAU;CAOtB;AAED,MAAM,OAAO,sBAAsB;CAElC;AAED,MAAM,OAAO,iBAAiB;CA2B7B"}
|
|
@@ -198,4 +198,28 @@ export declare class DecisionResult extends BaseResult {
|
|
|
198
198
|
*/
|
|
199
199
|
constructor(success: boolean, startTime: Date, endTime: Date);
|
|
200
200
|
}
|
|
201
|
+
/**
|
|
202
|
+
* Platt scaling for one decision model's probabilities: `sigmoid(A · logit(p) + B)`.
|
|
203
|
+
*
|
|
204
|
+
* A decision model's raw probabilities are not calibrated. Among answers of 0.9, the share that is
|
|
205
|
+
* right is not 0.9, and the gap differs by model. So a consumer that acts on a threshold fits these
|
|
206
|
+
* two numbers per model and per question on labelled data, and applies them before comparing.
|
|
207
|
+
* `A > 1` sharpens and `A < 1` softens; `B` shifts the whole curve.
|
|
208
|
+
*/
|
|
209
|
+
export interface PlattCalibration {
|
|
210
|
+
/** The slope on logit(p). */
|
|
211
|
+
A: number;
|
|
212
|
+
/** The intercept. */
|
|
213
|
+
B: number;
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* How far a probability is clamped from 0 and 1 before its logit is taken, so the logit is finite.
|
|
217
|
+
* It must match the value the calibration was fitted with.
|
|
218
|
+
*/
|
|
219
|
+
export declare const PLATT_LOGIT_CLAMP = 0.000001;
|
|
220
|
+
/**
|
|
221
|
+
* Applies Platt scaling to a probability: `1 / (1 + exp(-(A · logit(p) + B)))`, with `p` clamped
|
|
222
|
+
* to `[PLATT_LOGIT_CLAMP, 1 - PLATT_LOGIT_CLAMP]`.
|
|
223
|
+
*/
|
|
224
|
+
export declare function ApplyPlattCalibration(p: number, calibration: PlattCalibration): number;
|
|
201
225
|
//# sourceMappingURL=decision.types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decision.types.d.ts","sourceRoot":"","sources":["../../src/generic/decision.types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAErD;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IAC/B;;OAEG;IACH,IAAI,EAAE,YAAY,CAAC;IAEnB;;;OAGG;IACH,YAAY,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IACzB;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;CACvB;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC3B;;OAEG;IACH,IAAI,EAAE,QAAQ,CAAC;IAEf;;;OAGG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,OAAO,EAAE,YAAY,EAAE,CAAC;CAC3B;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC1B;;OAEG;IACH,IAAI,EAAE,OAAO,CAAC;IAEd;;;OAGG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,MAAM,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,kBAAkB,GAAG,cAAc,GAAG,aAAa,CAAC;AAEnF;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;AAE5D;;GAEG;AACH,MAAM,WAAW,cAAc;IAC3B;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAExC;;;OAGG;IACH,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAE5C;;;;;;OAMG;IACH,iBAAiB,CAAC,EAAE,WAAW,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC7B;;OAEG;IACH,IAAI,EAAE,YAAY,CAAC;IAEnB;;;OAGG;IACH,WAAW,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IACzB;;OAEG;IACH,IAAI,EAAE,QAAQ,CAAC;IAEf;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEtC;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IACxB;;OAEG;IACH,IAAI,EAAE,OAAO,CAAC;IAEd;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEtC;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,gBAAgB,GAAG,YAAY,GAAG,WAAW,CAAC;AAE3E;;GAEG;AACH,qBAAa,cAAe,SAAQ,UAAU;IAC1C;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAM;IAE7C;;OAEG;IACH,KAAK,CAAC,EAAE,UAAU,CAAC;IAEnB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;;;OAKG;gBACS,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI;CAG/D"}
|
|
1
|
+
{"version":3,"file":"decision.types.d.ts","sourceRoot":"","sources":["../../src/generic/decision.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,4 +26,18 @@ export class DecisionResult extends BaseResult {
|
|
|
26
26
|
this.Answers = {};
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
|
+
/**
|
|
30
|
+
* How far a probability is clamped from 0 and 1 before its logit is taken, so the logit is finite.
|
|
31
|
+
* It must match the value the calibration was fitted with.
|
|
32
|
+
*/
|
|
33
|
+
export const PLATT_LOGIT_CLAMP = 1e-6;
|
|
34
|
+
/**
|
|
35
|
+
* Applies Platt scaling to a probability: `1 / (1 + exp(-(A · logit(p) + B)))`, with `p` clamped
|
|
36
|
+
* to `[PLATT_LOGIT_CLAMP, 1 - PLATT_LOGIT_CLAMP]`.
|
|
37
|
+
*/
|
|
38
|
+
export function ApplyPlattCalibration(p, calibration) {
|
|
39
|
+
const clamped = Math.min(1 - PLATT_LOGIT_CLAMP, Math.max(PLATT_LOGIT_CLAMP, p));
|
|
40
|
+
const logit = Math.log(clamped / (1 - clamped));
|
|
41
|
+
return 1 / (1 + Math.exp(-(calibration.A * logit + calibration.B)));
|
|
42
|
+
}
|
|
29
43
|
//# sourceMappingURL=decision.types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decision.types.js","sourceRoot":"","sources":["../../src/generic/decision.types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,UAAU,EAAc,MAAM,aAAa,CAAC;AAmMrD;;GAEG;AACH,MAAM,OAAO,cAAe,SAAQ,UAAU;IAiB1C;;;;;OAKG;IACH,YAAY,OAAgB,EAAE,SAAe,EAAE,OAAa;QACxD,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QAvBvC;;;WAGG;QACH,YAAO,GAAmC,EAAE,CAAC;IAoB7C,CAAC;CACJ"}
|
|
1
|
+
{"version":3,"file":"decision.types.js","sourceRoot":"","sources":["../../src/generic/decision.types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,UAAU,EAAc,MAAM,aAAa,CAAC;AAmMrD;;GAEG;AACH,MAAM,OAAO,cAAe,SAAQ,UAAU;IAiB1C;;;;;OAKG;IACH,YAAY,OAAgB,EAAE,SAAe,EAAE,OAAa;QACxD,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QAvBvC;;;WAGG;QACH,YAAO,GAAmC,EAAE,CAAC;IAoB7C,CAAC;CACJ;AAiBD;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,CAAC;AAEtC;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,CAAS,EAAE,WAA6B;IAC1E,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,iBAAiB,EAAE,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,CAAC;IAChF,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAChD,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxE,CAAC"}
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
* @module @memberjunction/ai
|
|
8
8
|
* @since 3.0.0
|
|
9
9
|
*/
|
|
10
|
+
import type { ModelUsage } from './baseModel.js';
|
|
10
11
|
/**
|
|
11
12
|
* A document to be reranked.
|
|
12
13
|
*/
|
|
@@ -96,5 +97,10 @@ export interface RerankResponse {
|
|
|
96
97
|
* Model name used for reranking (for logging/debugging)
|
|
97
98
|
*/
|
|
98
99
|
modelName?: string;
|
|
100
|
+
/**
|
|
101
|
+
* Optional token usage and cost of the call, for cost tracking. Set by a driver that knows
|
|
102
|
+
* them, such as one that reranks through a chat prompt; absent when the driver reports none.
|
|
103
|
+
*/
|
|
104
|
+
Usage?: ModelUsage;
|
|
99
105
|
}
|
|
100
106
|
//# sourceMappingURL=reranker.types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reranker.types.d.ts","sourceRoot":"","sources":["../../src/generic/reranker.types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;GAEG;AACH,MAAM,WAAW,cAAc;IAC3B;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEnC;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IACzB;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,cAAc,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,QAAQ,EAAE,cAAc,CAAC;IAEzB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IACzB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,SAAS,EAAE,cAAc,EAAE,CAAC;IAE5B;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC3B;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IAEjB;;OAEG;IACH,OAAO,EAAE,YAAY,EAAE,CAAC;IAExB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB"}
|
|
1
|
+
{"version":3,"file":"reranker.types.d.ts","sourceRoot":"","sources":["../../src/generic/reranker.types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C;;GAEG;AACH,MAAM,WAAW,cAAc;IAC3B;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEnC;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IACzB;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,cAAc,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,QAAQ,EAAE,cAAc,CAAC;IAEzB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IACzB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,SAAS,EAAE,cAAc,EAAE,CAAC;IAE5B;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC3B;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IAEjB;;OAEG;IACH,OAAO,EAAE,YAAY,EAAE,CAAC;IAExB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,KAAK,CAAC,EAAE,UAAU,CAAC;CACtB"}
|
package/dist/index.d.ts
CHANGED
|
@@ -14,6 +14,8 @@ export * from './generic/apiKeyDictionary.js';
|
|
|
14
14
|
export * from './generic/embed.types.js';
|
|
15
15
|
export * from './generic/baseEmbeddings.js';
|
|
16
16
|
export * from './generic/baseAudio.js';
|
|
17
|
+
export * from './generic/baseTextToSpeech.js';
|
|
18
|
+
export * from './generic/baseSpeechToText.js';
|
|
17
19
|
export * from './generic/baseVideo.js';
|
|
18
20
|
export * from './generic/baseRealtime.js';
|
|
19
21
|
export * from './generic/realtimeUsage.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iCAAiC,CAAC;AAChD,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kCAAkC,CAAC;AACjD,cAAc,iCAAiC,CAAC;AAChD,cAAc,qCAAqC,CAAC;AACpD,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oCAAoC,CAAC;AACnD,cAAc,0BAA0B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iCAAiC,CAAC;AAChD,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kCAAkC,CAAC;AACjD,cAAc,iCAAiC,CAAC;AAChD,cAAc,qCAAqC,CAAC;AACpD,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oCAAoC,CAAC;AACnD,cAAc,0BAA0B,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -14,6 +14,8 @@ export * from './generic/apiKeyDictionary.js';
|
|
|
14
14
|
export * from './generic/embed.types.js';
|
|
15
15
|
export * from './generic/baseEmbeddings.js';
|
|
16
16
|
export * from './generic/baseAudio.js';
|
|
17
|
+
export * from './generic/baseTextToSpeech.js';
|
|
18
|
+
export * from './generic/baseSpeechToText.js';
|
|
17
19
|
export * from './generic/baseVideo.js';
|
|
18
20
|
export * from './generic/baseRealtime.js';
|
|
19
21
|
export * from './generic/realtimeUsage.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iCAAiC,CAAC;AAChD,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kCAAkC,CAAC;AACjD,cAAc,iCAAiC,CAAC;AAChD,cAAc,qCAAqC,CAAC;AACpD,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oCAAoC,CAAC;AACnD,cAAc,0BAA0B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iCAAiC,CAAC;AAChD,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kCAAkC,CAAC;AACjD,cAAc,iCAAiC,CAAC;AAChD,cAAc,qCAAqC,CAAC;AACpD,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oCAAoC,CAAC;AACnD,cAAc,0BAA0B,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@memberjunction/ai",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "6.2.0-edge.
|
|
4
|
+
"version": "6.2.0-edge.2",
|
|
5
5
|
"description": "MemberJunction: AI - core components for abstracting LLMs and other AI model types that are usable anywhere without ANY other MJ dependencies past @memberjunction/global which itself has zero additional dependencies.",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"types": "dist/index.d.ts",
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"author": "MemberJunction.com",
|
|
12
12
|
"license": "BUSL-1.1",
|
|
13
13
|
"dependencies": {
|
|
14
|
-
"@memberjunction/global": "6.2.0-edge.
|
|
14
|
+
"@memberjunction/global": "6.2.0-edge.2",
|
|
15
15
|
"dotenv": "^17.2.4",
|
|
16
16
|
"rxjs": "^7.8.2"
|
|
17
17
|
},
|
package/readme.md
CHANGED
|
@@ -21,8 +21,10 @@ Every AI capability is represented by an abstract base class. Provider packages
|
|
|
21
21
|
| `BaseLLM` | Chat completions (text generation) | `ChatCompletion()`, `ChatCompletions()` (parallel batch), `GetFileCapabilities()` |
|
|
22
22
|
| `BaseEmbeddings` | Text & multimodal embeddings | `EmbedText()`, `EmbedTexts()`, `EmbedContent()`, `GetFileCapabilities()` |
|
|
23
23
|
| `BaseImageGenerator` | Image generation, editing, variations | `GenerateImage()`, `EditImage()`, `CreateVariation()` |
|
|
24
|
-
| `
|
|
25
|
-
| `
|
|
24
|
+
| `BaseTextToSpeech` | Text-to-speech (`TTS` models) | `CreateSpeech()`, `GetVoices()`, `GetModels()`, `GetPronounciationDictionaries()` |
|
|
25
|
+
| `BaseSpeechToText` | Speech-to-text (`Speech to Text` models) | `SpeechToText()`, `GetModels()`; oversized audio via `TranscribeAudioWithSplitting()` |
|
|
26
|
+
| `BaseAudioGenerator` | **Deprecated.** Both of the above on one class. Kept, and still working, for existing drivers and callers; it implements both new classes | `CreateSpeech()`, `SpeechToText()`, `GetVoices()` |
|
|
27
|
+
| `BaseVideoGenerator` | Avatar video generation (`Video` models) | `CreateAvatarVideo()`, `GetAvatars()` |
|
|
26
28
|
| `BaseReranker` | Document reranking for retrieval | `Rerank()` |
|
|
27
29
|
| `BaseDecision` | Typed decisions (Likelihood, Choice, Score) with a probability per answer | `Decide()` |
|
|
28
30
|
| `BaseRealtimeModel` | Live, full-duplex, tool-calling realtime sessions (voice) | `StartSession()`, `CreateClientSession()` |
|