@mate-academy/llm-gateway 8.16.1 → 8.17.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +28 -6
- package/dist/client/LLMAgent.d.ts +3 -0
- package/dist/client/LLMAgent.js +2 -0
- package/dist/client/LLMAgent.js.map +1 -1
- package/dist/client/LLMClientEngine.d.ts +7 -4
- package/dist/client/LLMClientEngine.js +92 -30
- package/dist/client/LLMClientEngine.js.map +1 -1
- package/dist/client/agentRunner.d.ts +1 -0
- package/dist/client/agentRunner.js +15 -4
- package/dist/client/agentRunner.js.map +1 -1
- package/dist/client/createLLMClient.js +3 -3
- package/dist/client/createLLMClient.js.map +1 -1
- package/dist/client/defineLLMPrompts.d.ts +5 -5
- package/dist/client/errors.d.ts +2 -2
- package/dist/client/errors.js +2 -2
- package/dist/client/index.d.ts +1 -0
- package/dist/client/index.js +1 -0
- package/dist/client/index.js.map +1 -1
- package/dist/client/llmClient.typedefs.d.ts +50 -3
- package/dist/client/llmClient.typedefs.js.map +1 -1
- package/dist/client/llmConfig.schema.d.ts +20 -0
- package/dist/client/llmConfig.schema.js +12 -1
- package/dist/client/llmConfig.schema.js.map +1 -1
- package/dist/client/promptRegistry.runtime.d.ts +1 -0
- package/dist/client/promptRegistry.runtime.js +15 -2
- package/dist/client/promptRegistry.runtime.js.map +1 -1
- package/dist/client/speechOptions.d.ts +3 -0
- package/dist/client/speechOptions.js +31 -0
- package/dist/client/speechOptions.js.map +1 -0
- package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAITextToSpeech.service.js +22 -4
- package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAITextToSpeech.service.js.map +1 -1
- package/dist/providers/OpenAICompatible/OpenAICompatibleTextToSpeech.service.js +22 -4
- package/dist/providers/OpenAICompatible/OpenAICompatibleTextToSpeech.service.js.map +1 -1
- package/package.json +1 -1
|
@@ -12,7 +12,6 @@ const llmClient_typedefs_1 = require("../client/llmClient.typedefs");
|
|
|
12
12
|
* reporter.
|
|
13
13
|
*/
|
|
14
14
|
function createLLMClient(config) {
|
|
15
|
-
const mode = config.mode ?? 'production';
|
|
16
15
|
const reporting = config.reporting === llmClient_typedefs_1.ReportingDisabled
|
|
17
16
|
? undefined
|
|
18
17
|
: config.reporting;
|
|
@@ -33,15 +32,16 @@ function createLLMClient(config) {
|
|
|
33
32
|
buildReporterContext: reporting?.buildContext,
|
|
34
33
|
logger: config.logger,
|
|
35
34
|
staticContext: config.context ?? {},
|
|
36
|
-
mode,
|
|
37
35
|
normalizeToolResult: config.normalizeToolResult,
|
|
38
36
|
});
|
|
39
37
|
return {
|
|
40
38
|
generate: (prompt, options) => engine.generate(prompt, options),
|
|
39
|
+
generateSpeech: (prompt, options) => engine.generateSpeech(prompt, options),
|
|
40
|
+
generateTranscript: (prompt, options) => (engine.generateTranscript(prompt, options)),
|
|
41
41
|
countTokens: (prompt, options) => engine.countTokens(prompt, options),
|
|
42
42
|
defineAgent: (definition) => engine.defineAgent(definition),
|
|
43
43
|
runAgent: (promptOrAgent, options) => engine.runAgent(promptOrAgent, options),
|
|
44
|
-
describePrompt: (prompt) => engine.describePrompt(prompt),
|
|
44
|
+
describePrompt: (prompt, options) => engine.describePrompt(prompt, options),
|
|
45
45
|
compilePrompt: (prompt, options) => engine.compilePrompt(prompt, options),
|
|
46
46
|
};
|
|
47
47
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createLLMClient.js","sourceRoot":"","sources":["../../src/client/createLLMClient.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"createLLMClient.js","sourceRoot":"","sources":["../../src/client/createLLMClient.ts"],"names":[],"mappings":";;AAiBA,0CA8CC;AA9DD,8DAA2D;AAC3D,4EAAwE;AACxE,oEAKqC;AAErC;;;;;;GAMG;AACH,SAAgB,eAAe,CAK7B,MAAwD;IAExD,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,KAAK,sCAAiB;QACtD,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC;IAErB,MAAM,OAAO,GAAG,IAAI,8CAAqB,CAAC;QACxC,qBAAqB,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,CACrC,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAC9C;QACD,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,YAAY,EAAE,MAAM,CAAC,YAAY,IAAI,YAAY;QACjD,eAAe,EAAE,MAAM,CAAC,eAAe;QACvC,MAAM,EAAE,MAAM,CAAC,MAAM;KACtB,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,IAAI,iCAAe,CAAC;QACjC,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,OAAO;QACP,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,QAAQ,EAAE,SAAS,EAAE,QAAQ;QAC7B,oBAAoB,EAAE,SAAS,EAAE,YAAY;QAC7C,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,aAAa,EAAE,MAAM,CAAC,OAAO,IAAI,EAAE;QACnC,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;KAChD,CAAC,CAAC;IAEH,OAAO;QACL,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;QAC/D,cAAc,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC;QAC3E,kBAAkB,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,CACvC,MAAM,CAAC,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,CAC3C;QACD,WAAW,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC;QACrE,WAAW,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC;QAC3D,QAAQ,EAAE,CAAC,aAAa,EAAE,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;QAC7E,cAAc,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC;QAC3E,aAAa,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC;KACtC,CAAC;AACxC,CAAC"}
|
|
@@ -12,16 +12,16 @@ export type LLMCapabilityRequirement = keyof Pick<LLMModelCapabilities, 'vision'
|
|
|
12
12
|
* the `generate` return type; `toolSchemas` carry tool name+parameter shapes for
|
|
13
13
|
* typing/capability validation (executable tools are always passed per call);
|
|
14
14
|
* `requires` lists capabilities the resolved model must satisfy; `kind`
|
|
15
|
-
*
|
|
16
|
-
* of required input names for this prompt. The client derives
|
|
17
|
-
* `variables` type from this list, independently of the prompt
|
|
18
|
-
* Langfuse.
|
|
15
|
+
* selects the stored prompt shape (`text` or `chat`); `variables` is the
|
|
16
|
+
* code-owned list of required input names for this prompt. The client derives
|
|
17
|
+
* each call site's `variables` type from this list, independently of the prompt
|
|
18
|
+
* body stored in Langfuse.
|
|
19
19
|
*/
|
|
20
20
|
export interface LLMPromptBinding<Schema extends LLMSchemaInterface = LLMSchemaInterface> {
|
|
21
21
|
schema?: Schema;
|
|
22
22
|
toolSchemas?: Record<string, LLMSchemaInterface>;
|
|
23
23
|
requires?: LLMCapabilityRequirement[];
|
|
24
|
-
kind?: LLMPromptKind
|
|
24
|
+
kind?: LLMPromptKind;
|
|
25
25
|
variables?: readonly string[];
|
|
26
26
|
}
|
|
27
27
|
export type LLMPromptRegistry = Record<string, LLMPromptBinding>;
|
package/dist/client/errors.d.ts
CHANGED
|
@@ -49,8 +49,8 @@ export declare class LLMAbortedError extends LLMGatewayError {
|
|
|
49
49
|
}
|
|
50
50
|
/**
|
|
51
51
|
* Configuration could not be resolved into a usable call: live config and the
|
|
52
|
-
* fallback snapshot are both unusable, or
|
|
53
|
-
*
|
|
52
|
+
* fallback snapshot are both unusable, or neither satisfies the purpose and
|
|
53
|
+
* capabilities the call requires.
|
|
54
54
|
*/
|
|
55
55
|
export declare class LLMConfigError extends LLMGatewayError {
|
|
56
56
|
}
|
package/dist/client/errors.js
CHANGED
|
@@ -59,8 +59,8 @@ class LLMAbortedError extends LLMGatewayError {
|
|
|
59
59
|
exports.LLMAbortedError = LLMAbortedError;
|
|
60
60
|
/**
|
|
61
61
|
* Configuration could not be resolved into a usable call: live config and the
|
|
62
|
-
* fallback snapshot are both unusable, or
|
|
63
|
-
*
|
|
62
|
+
* fallback snapshot are both unusable, or neither satisfies the purpose and
|
|
63
|
+
* capabilities the call requires.
|
|
64
64
|
*/
|
|
65
65
|
class LLMConfigError extends LLMGatewayError {
|
|
66
66
|
}
|
package/dist/client/index.d.ts
CHANGED
|
@@ -8,6 +8,7 @@ export * from './defineLLMPrompts';
|
|
|
8
8
|
export * from './validationGate';
|
|
9
9
|
export * from './promptRegistry.runtime';
|
|
10
10
|
export * from './llmClient.typedefs';
|
|
11
|
+
export * from './speechOptions';
|
|
11
12
|
export * from './createLLMClient';
|
|
12
13
|
export * from './agentRun.typedefs';
|
|
13
14
|
export * from './LLMAgent';
|
package/dist/client/index.js
CHANGED
|
@@ -24,6 +24,7 @@ __exportStar(require("./defineLLMPrompts"), exports);
|
|
|
24
24
|
__exportStar(require("./validationGate"), exports);
|
|
25
25
|
__exportStar(require("./promptRegistry.runtime"), exports);
|
|
26
26
|
__exportStar(require("./llmClient.typedefs"), exports);
|
|
27
|
+
__exportStar(require("./speechOptions"), exports);
|
|
27
28
|
__exportStar(require("./createLLMClient"), exports);
|
|
28
29
|
__exportStar(require("./agentRun.typedefs"), exports);
|
|
29
30
|
__exportStar(require("./LLMAgent"), exports);
|
package/dist/client/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,qDAAmC;AACnC,4DAA0C;AAC1C,6DAA2C;AAC3C,oDAAkC;AAClC,8DAA4C;AAC5C,qDAAmC;AACnC,mDAAiC;AACjC,2DAAyC;AACzC,uDAAqC;AACrC,oDAAkC;AAClC,sDAAoC;AACpC,6CAA2B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,qDAAmC;AACnC,4DAA0C;AAC1C,6DAA2C;AAC3C,oDAAkC;AAClC,8DAA4C;AAC5C,qDAAmC;AACnC,mDAAiC;AACjC,2DAAyC;AACzC,uDAAqC;AACrC,kDAAgC;AAChC,oDAAkC;AAClC,sDAAoC;AACpC,6CAA2B"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import { type LLMHistoryContextEntry, type LLMHistoryEntryTypes, type LLMHistoryToolCallEntry, type LLMHistoryToolResultEntry, type LLMInstanceOptions, type LLMProviders, type LLMPurposes, type LLMToolGateResult, type LLMToolResult } from '../LLMService.typedefs';
|
|
1
|
+
import { type LLMAudioMimeType, type LLMCallTraceContext, type LLMCreateSpeechResult, type LLMHistoryContextEntry, type LLMHistoryEntryTypes, type LLMHistoryToolCallEntry, type LLMHistoryToolResultEntry, type LLMInstanceOptions, type LLMProviders, type LLMPurposes, type LLMToolGateResult, type LLMToolResult, type LLMTranscribeResult } from '../LLMService.typedefs';
|
|
2
2
|
import { type LLMGateway } from '../LLMGateway';
|
|
3
3
|
import { type LLMLoggerInterface } from '../utilities/logger';
|
|
4
4
|
import { type LLMReporterInterface } from '../utilities/reporter';
|
|
5
5
|
import { type InferSchema, type LLMSchemaInterface } from '../utilities/schema';
|
|
6
6
|
import { type LLMTraceContext } from '../utilities/llmTracing/llmTracing.typedefs';
|
|
7
7
|
import { type LLMGatewayPromptClient } from '../client/promptClientPort.typedefs';
|
|
8
|
+
import { type LLMPromptSpeechParams } from '../client/llmConfig.schema';
|
|
8
9
|
import { type LLMPromptBinding, type LLMPromptRegistry } from '../client/defineLLMPrompts';
|
|
9
10
|
import { type LLMPromptSnapshot, type LLMVariableValue } from '../client/promptSnapshot.typedefs';
|
|
10
11
|
import { type PromptRegistryRuntime, type ResolvedPrompt } from '../client/promptRegistry.runtime';
|
|
@@ -77,6 +78,15 @@ export interface LLMReporterContextScope {
|
|
|
77
78
|
* What building the per-call trace context needs: the resolved prompt, the
|
|
78
79
|
* per-call context, and the typed Langfuse trace fields the call site supplied.
|
|
79
80
|
*/
|
|
81
|
+
export interface LLMCallScope {
|
|
82
|
+
context?: LLMClientCallContext;
|
|
83
|
+
sessionId?: string;
|
|
84
|
+
traceTags?: string[];
|
|
85
|
+
}
|
|
86
|
+
export interface LLMCallContexts {
|
|
87
|
+
reporterContext: unknown;
|
|
88
|
+
traceContext: LLMCallTraceContext;
|
|
89
|
+
}
|
|
80
90
|
export interface LLMTraceContextScope {
|
|
81
91
|
resolved: ResolvedPrompt;
|
|
82
92
|
callContext: LLMClientCallContext | undefined;
|
|
@@ -204,7 +214,6 @@ export interface LLMClientEngineConfig<Registry extends LLMPromptRegistry> {
|
|
|
204
214
|
buildReporterContext: ((scope: LLMReporterContextScope) => unknown) | undefined;
|
|
205
215
|
logger: LLMLoggerInterface | undefined;
|
|
206
216
|
staticContext: LLMClientStaticContext;
|
|
207
|
-
mode: LLMClientMode;
|
|
208
217
|
normalizeToolResult: LLMToolResultNormalizer | undefined;
|
|
209
218
|
}
|
|
210
219
|
/**
|
|
@@ -264,6 +273,42 @@ export interface LLMGenerateOptions<Variables extends Record<string, LLMVariable
|
|
|
264
273
|
*/
|
|
265
274
|
schema?: Schema;
|
|
266
275
|
}
|
|
276
|
+
export interface LLMDescribePromptOptions {
|
|
277
|
+
purpose?: LLMPurposes;
|
|
278
|
+
}
|
|
279
|
+
export interface LLMProviderSpeechScope {
|
|
280
|
+
provider: LLMProviders;
|
|
281
|
+
speech: LLMPromptSpeechParams | undefined;
|
|
282
|
+
}
|
|
283
|
+
export interface LLMTranscriptAudio {
|
|
284
|
+
pathToAudio: string;
|
|
285
|
+
mimeType?: LLMAudioMimeType;
|
|
286
|
+
language?: string;
|
|
287
|
+
}
|
|
288
|
+
export interface LLMGenerateSpeechOptions<Variables extends Record<string, LLMVariableValue>> {
|
|
289
|
+
text: string;
|
|
290
|
+
variables: Variables;
|
|
291
|
+
context?: LLMClientCallContext;
|
|
292
|
+
abortSignal?: AbortSignal;
|
|
293
|
+
overrides?: LLMCallOverrides;
|
|
294
|
+
sessionId?: string;
|
|
295
|
+
traceTags?: string[];
|
|
296
|
+
}
|
|
297
|
+
export interface LLMGenerateTranscriptOptions<Variables extends Record<string, LLMVariableValue>> {
|
|
298
|
+
audio: LLMTranscriptAudio;
|
|
299
|
+
variables: Variables;
|
|
300
|
+
context?: LLMClientCallContext;
|
|
301
|
+
abortSignal?: AbortSignal;
|
|
302
|
+
overrides?: LLMCallOverrides;
|
|
303
|
+
sessionId?: string;
|
|
304
|
+
traceTags?: string[];
|
|
305
|
+
}
|
|
306
|
+
export type LLMGeneratedSpeech = Extract<LLMCreateSpeechResult, {
|
|
307
|
+
audio: Buffer<ArrayBuffer>;
|
|
308
|
+
}>;
|
|
309
|
+
export type LLMGeneratedTranscript = Extract<LLMTranscribeResult, {
|
|
310
|
+
text: string;
|
|
311
|
+
}>;
|
|
267
312
|
export interface LLMCallOverrides {
|
|
268
313
|
model?: string;
|
|
269
314
|
provider?: LLMProviders;
|
|
@@ -316,6 +361,8 @@ export interface LLMClient<Registry extends LLMPromptRegistry, VariableMap exten
|
|
|
316
361
|
generate<Key extends keyof Registry, Schema extends LLMSchemaInterface = never>(prompt: Key, options: LLMGenerateOptions<Record<VariableMap[Key], LLMVariableValue> & Record<string, LLMVariableValue>, Schema>): Promise<[
|
|
317
362
|
Schema
|
|
318
363
|
] extends [never] ? LLMGenerateResult<Registry[Key]> : InferSchema<Schema>>;
|
|
364
|
+
generateSpeech<Key extends keyof Registry>(prompt: Key, options: LLMGenerateSpeechOptions<LLMPromptVariables<VariableMap[Key]>>): Promise<LLMGeneratedSpeech>;
|
|
365
|
+
generateTranscript<Key extends keyof Registry>(prompt: Key, options: LLMGenerateTranscriptOptions<LLMPromptVariables<VariableMap[Key]>>): Promise<LLMGeneratedTranscript>;
|
|
319
366
|
countTokens<Key extends keyof Registry>(prompt: Key, options: {
|
|
320
367
|
variables: Record<string, LLMVariableValue>;
|
|
321
368
|
history?: LLMPlainMessage[];
|
|
@@ -323,7 +370,7 @@ export interface LLMClient<Registry extends LLMPromptRegistry, VariableMap exten
|
|
|
323
370
|
defineAgent<Key extends keyof Registry>(definition: LLMAgentDefinition<Registry, VariableMap, Key>): LLMAgent<Registry, VariableMap, Key>;
|
|
324
371
|
runAgent<Key extends keyof Registry>(prompt: Key, options: LLMAgentInlineRunOptions<Record<VariableMap[Key], LLMVariableValue> & Record<string, LLMVariableValue>, Registry, VariableMap>): Promise<LLMAgentRunResult<LLMGenerateResult<Registry[Key]>>>;
|
|
325
372
|
runAgent<Key extends keyof Registry>(agent: LLMAgent<Registry, VariableMap, Key>, options: LLMAgentRunOptions<Record<VariableMap[Key], LLMVariableValue> & Record<string, LLMVariableValue>>): Promise<LLMAgentRunResult<LLMGenerateResult<Registry[Key]>>>;
|
|
326
|
-
describePrompt<Key extends keyof Registry>(prompt: Key): Promise<LLMPromptDescription>;
|
|
373
|
+
describePrompt<Key extends keyof Registry>(prompt: Key, options?: LLMDescribePromptOptions): Promise<LLMPromptDescription>;
|
|
327
374
|
compilePrompt<Key extends keyof Registry>(prompt: Key, options: LLMCompilePromptOptions<Record<VariableMap[Key], LLMVariableValue> & Record<string, LLMVariableValue>>): Promise<string>;
|
|
328
375
|
}
|
|
329
376
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llmClient.typedefs.js","sourceRoot":"","sources":["../../src/client/llmClient.typedefs.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"llmClient.typedefs.js","sourceRoot":"","sources":["../../src/client/llmClient.typedefs.ts"],"names":[],"mappings":";;;AA2CA;;;;;GAKG;AACU,QAAA,iBAAiB,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAC"}
|
|
@@ -15,12 +15,26 @@ export declare const LLM_CONFIG_PARAM_CEILINGS: {
|
|
|
15
15
|
readonly min: 0;
|
|
16
16
|
readonly max: 1;
|
|
17
17
|
};
|
|
18
|
+
readonly speechSpeed: {
|
|
19
|
+
readonly min: 0.25;
|
|
20
|
+
readonly max: 4;
|
|
21
|
+
};
|
|
18
22
|
};
|
|
23
|
+
export declare const llmSpeechParamsSchema: z.ZodObject<{
|
|
24
|
+
voice: z.ZodOptional<z.ZodString>;
|
|
25
|
+
speed: z.ZodOptional<z.ZodNumber>;
|
|
26
|
+
format: z.ZodOptional<z.ZodString>;
|
|
27
|
+
}, z.core.$strip>;
|
|
19
28
|
export declare const llmConfigParamsSchema: z.ZodObject<{
|
|
20
29
|
temperature: z.ZodOptional<z.ZodNumber>;
|
|
21
30
|
topP: z.ZodOptional<z.ZodNumber>;
|
|
22
31
|
maxOutputTokens: z.ZodOptional<z.ZodNumber>;
|
|
23
32
|
reasoningEffort: z.ZodOptional<z.ZodEnum<typeof LLMReasoningEffort>>;
|
|
33
|
+
speech: z.ZodOptional<z.ZodObject<{
|
|
34
|
+
voice: z.ZodOptional<z.ZodString>;
|
|
35
|
+
speed: z.ZodOptional<z.ZodNumber>;
|
|
36
|
+
format: z.ZodOptional<z.ZodString>;
|
|
37
|
+
}, z.core.$strip>>;
|
|
24
38
|
}, z.core.$loose>;
|
|
25
39
|
/**
|
|
26
40
|
* The gateway-owned shape of a prompt's `config`. The provider routes the call;
|
|
@@ -36,7 +50,13 @@ export declare const llmPromptConfigSchema: z.ZodObject<{
|
|
|
36
50
|
topP: z.ZodOptional<z.ZodNumber>;
|
|
37
51
|
maxOutputTokens: z.ZodOptional<z.ZodNumber>;
|
|
38
52
|
reasoningEffort: z.ZodOptional<z.ZodEnum<typeof LLMReasoningEffort>>;
|
|
53
|
+
speech: z.ZodOptional<z.ZodObject<{
|
|
54
|
+
voice: z.ZodOptional<z.ZodString>;
|
|
55
|
+
speed: z.ZodOptional<z.ZodNumber>;
|
|
56
|
+
format: z.ZodOptional<z.ZodString>;
|
|
57
|
+
}, z.core.$strip>>;
|
|
39
58
|
}, z.core.$loose>>;
|
|
40
59
|
}, z.core.$strip>;
|
|
41
60
|
export type LLMPromptConfig = z.infer<typeof llmPromptConfigSchema>;
|
|
42
61
|
export type LLMPromptConfigParams = z.infer<typeof llmConfigParamsSchema>;
|
|
62
|
+
export type LLMPromptSpeechParams = z.infer<typeof llmSpeechParamsSchema>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.llmPromptConfigSchema = exports.llmConfigParamsSchema = exports.LLM_CONFIG_PARAM_CEILINGS = void 0;
|
|
3
|
+
exports.llmPromptConfigSchema = exports.llmConfigParamsSchema = exports.llmSpeechParamsSchema = exports.LLM_CONFIG_PARAM_CEILINGS = void 0;
|
|
4
4
|
const zod_1 = require("zod");
|
|
5
5
|
const LLMService_typedefs_1 = require("../LLMService.typedefs");
|
|
6
6
|
/**
|
|
@@ -12,7 +12,17 @@ exports.LLM_CONFIG_PARAM_CEILINGS = {
|
|
|
12
12
|
maxOutputTokens: 32_768,
|
|
13
13
|
temperature: { min: 0, max: 2 },
|
|
14
14
|
topP: { min: 0, max: 1 },
|
|
15
|
+
speechSpeed: { min: 0.25, max: 4 },
|
|
15
16
|
};
|
|
17
|
+
exports.llmSpeechParamsSchema = zod_1.z.object({
|
|
18
|
+
voice: zod_1.z.string().min(1).optional(),
|
|
19
|
+
speed: zod_1.z
|
|
20
|
+
.number()
|
|
21
|
+
.min(exports.LLM_CONFIG_PARAM_CEILINGS.speechSpeed.min)
|
|
22
|
+
.max(exports.LLM_CONFIG_PARAM_CEILINGS.speechSpeed.max)
|
|
23
|
+
.optional(),
|
|
24
|
+
format: zod_1.z.string().min(1).optional(),
|
|
25
|
+
});
|
|
16
26
|
exports.llmConfigParamsSchema = zod_1.z
|
|
17
27
|
.object({
|
|
18
28
|
temperature: zod_1.z
|
|
@@ -32,6 +42,7 @@ exports.llmConfigParamsSchema = zod_1.z
|
|
|
32
42
|
.max(exports.LLM_CONFIG_PARAM_CEILINGS.maxOutputTokens)
|
|
33
43
|
.optional(),
|
|
34
44
|
reasoningEffort: zod_1.z.nativeEnum(LLMService_typedefs_1.LLMReasoningEffort).optional(),
|
|
45
|
+
speech: exports.llmSpeechParamsSchema.optional(),
|
|
35
46
|
})
|
|
36
47
|
.passthrough();
|
|
37
48
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llmConfig.schema.js","sourceRoot":"","sources":["../../src/client/llmConfig.schema.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AACxB,+DAAyE;AAEzE;;;;GAIG;AACU,QAAA,yBAAyB,GAAG;IACvC,eAAe,EAAE,MAAM;IACvB,WAAW,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE;IAC/B,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE;
|
|
1
|
+
{"version":3,"file":"llmConfig.schema.js","sourceRoot":"","sources":["../../src/client/llmConfig.schema.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AACxB,+DAAyE;AAEzE;;;;GAIG;AACU,QAAA,yBAAyB,GAAG;IACvC,eAAe,EAAE,MAAM;IACvB,WAAW,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE;IAC/B,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE;IACxB,WAAW,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE;CAC1B,CAAC;AAEE,QAAA,qBAAqB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC5C,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACnC,KAAK,EAAE,OAAC;SACL,MAAM,EAAE;SACR,GAAG,CAAC,iCAAyB,CAAC,WAAW,CAAC,GAAG,CAAC;SAC9C,GAAG,CAAC,iCAAyB,CAAC,WAAW,CAAC,GAAG,CAAC;SAC9C,QAAQ,EAAE;IACb,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;CACrC,CAAC,CAAC;AAEU,QAAA,qBAAqB,GAAG,OAAC;KACnC,MAAM,CAAC;IACN,WAAW,EAAE,OAAC;SACX,MAAM,EAAE;SACR,GAAG,CAAC,iCAAyB,CAAC,WAAW,CAAC,GAAG,CAAC;SAC9C,GAAG,CAAC,iCAAyB,CAAC,WAAW,CAAC,GAAG,CAAC;SAC9C,QAAQ,EAAE;IACb,IAAI,EAAE,OAAC;SACJ,MAAM,EAAE;SACR,GAAG,CAAC,iCAAyB,CAAC,IAAI,CAAC,GAAG,CAAC;SACvC,GAAG,CAAC,iCAAyB,CAAC,IAAI,CAAC,GAAG,CAAC;SACvC,QAAQ,EAAE;IACb,eAAe,EAAE,OAAC;SACf,MAAM,EAAE;SACR,GAAG,EAAE;SACL,QAAQ,EAAE;SACV,GAAG,CAAC,iCAAyB,CAAC,eAAe,CAAC;SAC9C,QAAQ,EAAE;IACb,eAAe,EAAE,OAAC,CAAC,UAAU,CAAC,wCAAkB,CAAC,CAAC,QAAQ,EAAE;IAC5D,MAAM,EAAE,6BAAqB,CAAC,QAAQ,EAAE;CACzC,CAAC;KACD,WAAW,EAAE,CAAC;AAEjB;;;;;GAKG;AACU,QAAA,qBAAqB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC5C,QAAQ,EAAE,OAAC,CAAC,UAAU,CAAC,kCAAY,CAAC;IACpC,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,MAAM,EAAE,6BAAqB,CAAC,QAAQ,EAAE;CACzC,CAAC,CAAC"}
|
|
@@ -12,6 +12,7 @@ const CHAT_MESSAGE_ROLES = [
|
|
|
12
12
|
];
|
|
13
13
|
const DEFAULT_CACHE_TTL_SECONDS = 60;
|
|
14
14
|
const PROMPT_FETCH_WARN_PREFIX = 'Langfuse prompt fetch degraded';
|
|
15
|
+
const PROMPT_GATE_WARN_PREFIX = 'Langfuse prompt config rejected by the gate';
|
|
15
16
|
/**
|
|
16
17
|
* Owns prompt resolution at runtime: a live SDK fetch (cached 60s,
|
|
17
18
|
* stale-while-revalidate) gated on every read, with the build-time snapshot as
|
|
@@ -83,7 +84,7 @@ class PromptRegistryRuntime {
|
|
|
83
84
|
isFallback: false,
|
|
84
85
|
};
|
|
85
86
|
}
|
|
86
|
-
this.
|
|
87
|
+
this.emitGateRejection(input, gate, 'live');
|
|
87
88
|
}
|
|
88
89
|
return this.describeFromSnapshot(input);
|
|
89
90
|
}
|
|
@@ -94,6 +95,7 @@ class PromptRegistryRuntime {
|
|
|
94
95
|
}
|
|
95
96
|
const gate = this.gateConfig(entry.config, input);
|
|
96
97
|
if (!gate.valid) {
|
|
98
|
+
this.emitGateRejection(input, gate, 'snapshot');
|
|
97
99
|
return undefined;
|
|
98
100
|
}
|
|
99
101
|
return {
|
|
@@ -123,7 +125,7 @@ class PromptRegistryRuntime {
|
|
|
123
125
|
purpose: input.purpose,
|
|
124
126
|
});
|
|
125
127
|
if (!gate.valid) {
|
|
126
|
-
this.
|
|
128
|
+
this.emitGateRejection(input, gate, 'live');
|
|
127
129
|
return undefined;
|
|
128
130
|
}
|
|
129
131
|
return {
|
|
@@ -149,6 +151,7 @@ class PromptRegistryRuntime {
|
|
|
149
151
|
purpose: input.purpose,
|
|
150
152
|
});
|
|
151
153
|
if (!gate.valid) {
|
|
154
|
+
this.emitGateRejection(input, gate, 'snapshot');
|
|
152
155
|
return undefined;
|
|
153
156
|
}
|
|
154
157
|
this.emitFallback(input, 'snapshot-served');
|
|
@@ -235,6 +238,16 @@ class PromptRegistryRuntime {
|
|
|
235
238
|
emitFallback(input, reason) {
|
|
236
239
|
this.fallbackMetricEmitter({ promptName: input.name, reason });
|
|
237
240
|
}
|
|
241
|
+
emitGateRejection(input, gate, source) {
|
|
242
|
+
this.emitFallback(input, `${source}-${gate.reason}`);
|
|
243
|
+
this.logger?.warn(PROMPT_GATE_WARN_PREFIX, {
|
|
244
|
+
promptName: input.name,
|
|
245
|
+
purpose: input.purpose,
|
|
246
|
+
source,
|
|
247
|
+
reason: gate.reason,
|
|
248
|
+
detail: gate.detail,
|
|
249
|
+
});
|
|
250
|
+
}
|
|
238
251
|
warnOnce(name, error) {
|
|
239
252
|
if (this.hasWarnedThisProcess) {
|
|
240
253
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"promptRegistry.runtime.js","sourceRoot":"","sources":["../../src/client/promptRegistry.runtime.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"promptRegistry.runtime.js","sourceRoot":"","sources":["../../src/client/promptRegistry.runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { LLMProviders, type LLMSpeechOptions } from '../LLMService.typedefs';
|
|
2
|
+
import { type LLMProviderSpeechScope } from '../client/llmClient.typedefs';
|
|
3
|
+
export declare function toProviderSpeechOptions(scope: LLMProviderSpeechScope): LLMSpeechOptions[LLMProviders] | undefined;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.toProviderSpeechOptions = toProviderSpeechOptions;
|
|
4
|
+
const LLMService_typedefs_1 = require("../LLMService.typedefs");
|
|
5
|
+
function toProviderSpeechOptions(scope) {
|
|
6
|
+
const { provider, speech } = scope;
|
|
7
|
+
if (!speech) {
|
|
8
|
+
return undefined;
|
|
9
|
+
}
|
|
10
|
+
if (provider === LLMService_typedefs_1.LLMProviders.GoogleGenerativeAI) {
|
|
11
|
+
return toGoogleSpeechOptions(speech);
|
|
12
|
+
}
|
|
13
|
+
return {
|
|
14
|
+
voice: speech.voice,
|
|
15
|
+
speed: speech.speed,
|
|
16
|
+
response_format: speech.format,
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
function toGoogleSpeechOptions(speech) {
|
|
20
|
+
if (!speech.voice) {
|
|
21
|
+
return undefined;
|
|
22
|
+
}
|
|
23
|
+
return {
|
|
24
|
+
speechConfig: {
|
|
25
|
+
voiceConfig: {
|
|
26
|
+
prebuiltVoiceConfig: { voiceName: speech.voice },
|
|
27
|
+
},
|
|
28
|
+
},
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=speechOptions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"speechOptions.js","sourceRoot":"","sources":["../../src/client/speechOptions.ts"],"names":[],"mappings":";;AAIA,0DAkBC;AAtBD,+DAA4E;AAI5E,SAAgB,uBAAuB,CACrC,KAA6B;IAE7B,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAEnC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,QAAQ,KAAK,kCAAY,CAAC,kBAAkB,EAAE,CAAC;QACjD,OAAO,qBAAqB,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;IAED,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,eAAe,EAAE,MAAM,CAAC,MAAM;KAC/B,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAC5B,MAA6B;IAE7B,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAClB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO;QACL,YAAY,EAAE;YACZ,WAAW,EAAE;gBACX,mBAAmB,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,KAAK,EAAE;aACjD;SACF;KACF,CAAC;AACJ,CAAC"}
|
package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAITextToSpeech.service.js
CHANGED
|
@@ -12,8 +12,10 @@ class GoogleGenerativeAITextToSpeechService extends services_1.LLMTextToSpeechSe
|
|
|
12
12
|
return this.getOrCreateInstance(() => new genai_1.GoogleGenAI(this.options ?? {}));
|
|
13
13
|
}
|
|
14
14
|
async createSpeech(options) {
|
|
15
|
-
const { text, model, instructions, speechOptions, abortSignal, reporterContext, } = options;
|
|
15
|
+
const { text, model, instructions, speechOptions, abortSignal, reporterContext, traceContext, } = options;
|
|
16
16
|
const writeMetrics = this.reporter?.initWriter(reporterContext);
|
|
17
|
+
const method = this.getMethodName(this.createSpeech);
|
|
18
|
+
const generationStartedAt = Date.now();
|
|
17
19
|
try {
|
|
18
20
|
const contents = `${instructions ?? ''} <text_input>${text}</text_input>`;
|
|
19
21
|
abortSignal?.throwIfAborted();
|
|
@@ -41,7 +43,7 @@ class GoogleGenerativeAITextToSpeechService extends services_1.LLMTextToSpeechSe
|
|
|
41
43
|
const regularInputTokens = promptTokens - cachedTokens;
|
|
42
44
|
const outputAudioTokens = audioResponse.usageMetadata?.candidatesTokenCount ?? 0;
|
|
43
45
|
await this.writeSuccessMetrics({
|
|
44
|
-
method
|
|
46
|
+
method,
|
|
45
47
|
model,
|
|
46
48
|
usage: {
|
|
47
49
|
inputTextTokens: regularInputTokens,
|
|
@@ -49,6 +51,14 @@ class GoogleGenerativeAITextToSpeechService extends services_1.LLMTextToSpeechSe
|
|
|
49
51
|
outputAudioTokens: outputAudioTokens,
|
|
50
52
|
},
|
|
51
53
|
writeMetrics,
|
|
54
|
+
generationTrace: this.buildGenerationTrace({
|
|
55
|
+
method,
|
|
56
|
+
traceContext,
|
|
57
|
+
input: { text, instructions },
|
|
58
|
+
output: { mimeType: LLMService_typedefs_1.LLMUploadFileMimeTypes.AUDIO_WAV },
|
|
59
|
+
modelParameters: model.config,
|
|
60
|
+
startedAt: generationStartedAt,
|
|
61
|
+
}),
|
|
52
62
|
});
|
|
53
63
|
return {
|
|
54
64
|
audio: wavBuffer,
|
|
@@ -57,13 +67,21 @@ class GoogleGenerativeAITextToSpeechService extends services_1.LLMTextToSpeechSe
|
|
|
57
67
|
}
|
|
58
68
|
catch (error) {
|
|
59
69
|
await this.writeErrorMetrics({
|
|
60
|
-
method
|
|
70
|
+
method,
|
|
61
71
|
model,
|
|
62
72
|
isAborted: abortSignal?.aborted,
|
|
63
73
|
writeMetrics,
|
|
74
|
+
error,
|
|
75
|
+
generationTrace: this.buildGenerationTrace({
|
|
76
|
+
method,
|
|
77
|
+
traceContext,
|
|
78
|
+
input: { text, instructions },
|
|
79
|
+
modelParameters: model.config,
|
|
80
|
+
startedAt: generationStartedAt,
|
|
81
|
+
}),
|
|
64
82
|
});
|
|
65
83
|
this.logRequestFailure({
|
|
66
|
-
method
|
|
84
|
+
method,
|
|
67
85
|
message: 'Error creating speech',
|
|
68
86
|
error,
|
|
69
87
|
isAborted: abortSignal?.aborted,
|
package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAITextToSpeech.service.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GoogleGenerativeAITextToSpeech.service.js","sourceRoot":"","sources":["../../../../src/providers/GoogleGenerativeAI/services/GoogleGenerativeAITextToSpeech.service.ts"],"names":[],"mappings":";;;AAAA,yCAA4C;AAC5C,+DAM+B;AAG/B,yCAAoD;AAEpD,MAAa,qCAEX,SAAQ,iCAAiE;IACzE,YACE,MAAsC,EACtC,QAAkB,EAClB,OAA6D;QAE7D,KAAK,CAAC,kCAAY,CAAC,kBAAkB,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IACpE,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,CAAC,IAAI,mBAAW,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC;IAC7E,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,OAA+D;QAE/D,MAAM,EACJ,IAAI,EACJ,KAAK,EACL,YAAY,EACZ,aAAa,EACb,WAAW,EACX,eAAe,
|
|
1
|
+
{"version":3,"file":"GoogleGenerativeAITextToSpeech.service.js","sourceRoot":"","sources":["../../../../src/providers/GoogleGenerativeAI/services/GoogleGenerativeAITextToSpeech.service.ts"],"names":[],"mappings":";;;AAAA,yCAA4C;AAC5C,+DAM+B;AAG/B,yCAAoD;AAEpD,MAAa,qCAEX,SAAQ,iCAAiE;IACzE,YACE,MAAsC,EACtC,QAAkB,EAClB,OAA6D;QAE7D,KAAK,CAAC,kCAAY,CAAC,kBAAkB,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IACpE,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,CAAC,IAAI,mBAAW,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC;IAC7E,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,OAA+D;QAE/D,MAAM,EACJ,IAAI,EACJ,KAAK,EACL,YAAY,EACZ,aAAa,EACb,WAAW,EACX,eAAe,EACf,YAAY,GACb,GAAG,OAAO,CAAC;QAEZ,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,eAAe,CAAC,CAAC;QAChE,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACrD,MAAM,mBAAmB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,GAAG,YAAY,IAAI,EAAE,gBAAgB,IAAI,eAAe,CAAC;YAE1E,WAAW,EAAE,cAAc,EAAE,CAAC;YAE9B,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,eAAe,CAAC;gBAC/D,KAAK,EAAE,KAAK,CAAC,IAAI;gBACjB,QAAQ;gBACR,MAAM,EAAE;oBACN,GAAG,KAAK,CAAC,MAAM;oBACf,kBAAkB,EAAE,CAAC,OAAO,CAAC;oBAC7B,YAAY,EAAE,aAAa,EAAE,YAAY;oBACzC,WAAW;iBACZ;aACF,CAAC,CAAC;YAEH,WAAW,EAAE,cAAc,EAAE,CAAC;YAE9B,MAAM,UAAU,GAAG,aAAa,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC;YAClF,MAAM,IAAI,GAAG,UAAU,EAAE,IAAI,CAAC;YAE9B,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;YAC3D,CAAC;YAED,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YAE9C,WAAW,EAAE,cAAc,EAAE,CAAC;YAE9B,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;YAElD,MAAM,YAAY,GAAG,aAAa,CAAC,aAAa,EAAE,gBAAgB,IAAI,CAAC,CAAC;YACxE,MAAM,YAAY,GAAG,aAAa,CAAC,aAAa,EAAE,uBAAuB,IAAI,CAAC,CAAC;YAC/E,MAAM,kBAAkB,GAAG,YAAY,GAAG,YAAY,CAAC;YACvD,MAAM,iBAAiB,GAAG,aAAa,CAAC,aAAa,EAAE,oBAAoB,IAAI,CAAC,CAAC;YAEjF,MAAM,IAAI,CAAC,mBAAmB,CAAC;gBAC7B,MAAM;gBACN,KAAK;gBACL,KAAK,EAAE;oBACL,eAAe,EAAE,kBAAkB;oBACnC,qBAAqB,EAAE,YAAY;oBACnC,iBAAiB,EAAE,iBAAiB;iBACrC;gBACD,YAAY;gBACZ,eAAe,EAAE,IAAI,CAAC,oBAAoB,CAAC;oBACzC,MAAM;oBACN,YAAY;oBACZ,KAAK,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE;oBAC7B,MAAM,EAAE,EAAE,QAAQ,EAAE,4CAAsB,CAAC,SAAS,EAAE;oBACtD,eAAe,EAAE,KAAK,CAAC,MAAM;oBAC7B,SAAS,EAAE,mBAAmB;iBAC/B,CAAC;aACH,CAAC,CAAC;YAEH,OAAO;gBACL,KAAK,EAAE,SAAS;gBAChB,QAAQ,EAAE,4CAAsB,CAAC,SAAS;aAC3C,CAAC;QACJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,CAAC,iBAAiB,CAAC;gBAC3B,MAAM;gBACN,KAAK;gBACL,SAAS,EAAE,WAAW,EAAE,OAAO;gBAC/B,YAAY;gBACZ,KAAK;gBACL,eAAe,EAAE,IAAI,CAAC,oBAAoB,CAAC;oBACzC,MAAM;oBACN,YAAY;oBACZ,KAAK,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE;oBAC7B,eAAe,EAAE,KAAK,CAAC,MAAM;oBAC7B,SAAS,EAAE,mBAAmB;iBAC/B,CAAC;aACH,CAAC,CAAC;YAEH,IAAI,CAAC,iBAAiB,CAAC;gBACrB,MAAM;gBACN,OAAO,EAAE,uBAAuB;gBAChC,KAAK;gBACL,SAAS,EAAE,WAAW,EAAE,OAAO;gBAC/B,IAAI,EAAE,EAAE,OAAO,EAAE;aAClB,CAAC,CAAC;YAEH,OAAO,EAAE,KAAK,EAAE,CAAC;QACnB,CAAC;IACH,CAAC;IAEO,eAAe,CAAC,OAAe;QACrC,MAAM,UAAU,GAAG,KAAK,CAAC;QACzB,MAAM,QAAQ,GAAG,CAAC,CAAC;QACnB,MAAM,aAAa,GAAG,EAAE,CAAC;QAEzB,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAEnC,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC3B,SAAS,CAAC,aAAa,CAAC,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAChD,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC3B,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC5B,SAAS,CAAC,aAAa,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAChC,SAAS,CAAC,aAAa,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC/B,SAAS,CAAC,aAAa,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QACtC,SAAS,CAAC,aAAa,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QACxC,SAAS,CAAC,aAAa,CAAC,UAAU,GAAG,QAAQ,GAAG,aAAa,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;QACvE,SAAS,CAAC,aAAa,CAAC,QAAQ,GAAG,aAAa,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;QAC1D,SAAS,CAAC,aAAa,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;QAC3C,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC5B,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAE5C,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;IAC7C,CAAC;CACF;AA9ID,sFA8IC"}
|
|
@@ -17,8 +17,10 @@ class OpenAICompatibleTextToSpeechService extends services_1.LLMTextToSpeechServ
|
|
|
17
17
|
return { signal: abortSignal };
|
|
18
18
|
}
|
|
19
19
|
async createSpeech(options) {
|
|
20
|
-
const { text, model, instructions, speechOptions, abortSignal, reporterContext, } = options;
|
|
20
|
+
const { text, model, instructions, speechOptions, abortSignal, reporterContext, traceContext, } = options;
|
|
21
21
|
const writeMetrics = this.reporter?.initWriter(reporterContext);
|
|
22
|
+
const method = this.getMethodName(this.createSpeech);
|
|
23
|
+
const generationStartedAt = Date.now();
|
|
22
24
|
try {
|
|
23
25
|
abortSignal?.throwIfAborted();
|
|
24
26
|
const audioResponse = await this.instance.audio.speech.create({
|
|
@@ -35,10 +37,18 @@ class OpenAICompatibleTextToSpeechService extends services_1.LLMTextToSpeechServ
|
|
|
35
37
|
abortSignal?.throwIfAborted();
|
|
36
38
|
const usage = await this.extractUsage(audioBuffer, text, model);
|
|
37
39
|
await this.writeSuccessMetrics({
|
|
38
|
-
method
|
|
40
|
+
method,
|
|
39
41
|
model,
|
|
40
42
|
usage,
|
|
41
43
|
writeMetrics,
|
|
44
|
+
generationTrace: this.buildGenerationTrace({
|
|
45
|
+
method,
|
|
46
|
+
traceContext,
|
|
47
|
+
input: { text, instructions },
|
|
48
|
+
output: { mimeType: audioResponse.headers.get('Content-Type') },
|
|
49
|
+
modelParameters: model.config,
|
|
50
|
+
startedAt: generationStartedAt,
|
|
51
|
+
}),
|
|
42
52
|
});
|
|
43
53
|
return {
|
|
44
54
|
audio: audioBuffer,
|
|
@@ -47,13 +57,21 @@ class OpenAICompatibleTextToSpeechService extends services_1.LLMTextToSpeechServ
|
|
|
47
57
|
}
|
|
48
58
|
catch (error) {
|
|
49
59
|
await this.writeErrorMetrics({
|
|
50
|
-
method
|
|
60
|
+
method,
|
|
51
61
|
model,
|
|
52
62
|
isAborted: abortSignal?.aborted,
|
|
53
63
|
writeMetrics,
|
|
64
|
+
error,
|
|
65
|
+
generationTrace: this.buildGenerationTrace({
|
|
66
|
+
method,
|
|
67
|
+
traceContext,
|
|
68
|
+
input: { text, instructions },
|
|
69
|
+
modelParameters: model.config,
|
|
70
|
+
startedAt: generationStartedAt,
|
|
71
|
+
}),
|
|
54
72
|
});
|
|
55
73
|
this.logRequestFailure({
|
|
56
|
-
method
|
|
74
|
+
method,
|
|
57
75
|
message: 'Error creating speech',
|
|
58
76
|
error,
|
|
59
77
|
isAborted: abortSignal?.aborted,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenAICompatibleTextToSpeech.service.js","sourceRoot":"","sources":["../../../src/providers/OpenAICompatible/OpenAICompatibleTextToSpeech.service.ts"],"names":[],"mappings":";;;AAAA,mCAAgC;AAUhC,yCAAoD;AASpD,MAAsB,mCAGpB,SAAQ,iCAA0C;IAClD,YACE,QAAkB,EAClB,MAAsC,EACtC,QAAkB,EAClB,OAAsC;QAEtC,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,mBAAmB,CAC7B,GAAG,EAAE,CAAC,IAAI,eAAM,CAAC,IAAI,CAAC,OAAO,CAAsB,CACpD,CAAC;IACJ,CAAC;IAES,eAAe,CAAC,UAAkB;QAC1C,OAAO,OAAO,CAAC;IACjB,CAAC;IAES,iBAAiB,CAAC,WAAyB;QACnD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;IACjC,CAAC;IAQD,KAAK,CAAC,YAAY,CAChB,OAA+D;QAE/D,MAAM,EACJ,IAAI,EACJ,KAAK,EACL,YAAY,EACZ,aAAa,EACb,WAAW,EACX,eAAe,
|
|
1
|
+
{"version":3,"file":"OpenAICompatibleTextToSpeech.service.js","sourceRoot":"","sources":["../../../src/providers/OpenAICompatible/OpenAICompatibleTextToSpeech.service.ts"],"names":[],"mappings":"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"}
|