@carlonicora/nestjs-neo4jsonapi 2.7.2 → 2.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/config/base.config.d.ts.map +1 -1
- package/dist/config/base.config.js +4 -0
- package/dist/config/base.config.js.map +1 -1
- package/dist/config/interfaces/config.ai.interface.d.ts +5 -0
- package/dist/config/interfaces/config.ai.interface.d.ts.map +1 -1
- package/dist/core/llm/index.d.ts +2 -0
- package/dist/core/llm/index.d.ts.map +1 -1
- package/dist/core/llm/index.js +2 -0
- package/dist/core/llm/index.js.map +1 -1
- package/dist/core/llm/interfaces/ai-candidate.interface.d.ts +32 -0
- package/dist/core/llm/interfaces/ai-candidate.interface.d.ts.map +1 -0
- package/dist/core/llm/interfaces/ai-candidate.interface.js +15 -0
- package/dist/core/llm/interfaces/ai-candidate.interface.js.map +1 -0
- package/dist/core/llm/llm.module.d.ts.map +1 -1
- package/dist/core/llm/llm.module.js +6 -1
- package/dist/core/llm/llm.module.js.map +1 -1
- package/dist/core/llm/services/ai-connection-resolver.service.d.ts +107 -0
- package/dist/core/llm/services/ai-connection-resolver.service.d.ts.map +1 -0
- package/dist/core/llm/services/ai-connection-resolver.service.js +329 -0
- package/dist/core/llm/services/ai-connection-resolver.service.js.map +1 -0
- package/dist/core/llm/services/embedder.service.d.ts +21 -0
- package/dist/core/llm/services/embedder.service.d.ts.map +1 -1
- package/dist/core/llm/services/embedder.service.js +52 -3
- package/dist/core/llm/services/embedder.service.js.map +1 -1
- package/dist/core/llm/services/llm.service.d.ts +65 -18
- package/dist/core/llm/services/llm.service.d.ts.map +1 -1
- package/dist/core/llm/services/llm.service.js +214 -70
- package/dist/core/llm/services/llm.service.js.map +1 -1
- package/dist/core/llm/services/model.service.d.ts +79 -2
- package/dist/core/llm/services/model.service.d.ts.map +1 -1
- package/dist/core/llm/services/model.service.js +289 -31
- package/dist/core/llm/services/model.service.js.map +1 -1
- package/dist/core/llm/services/vision.llm.service.d.ts +25 -1
- package/dist/core/llm/services/vision.llm.service.d.ts.map +1 -1
- package/dist/core/llm/services/vision.llm.service.js +74 -33
- package/dist/core/llm/services/vision.llm.service.js.map +1 -1
- package/dist/foundations/ai-connection/ai-connection.module.d.ts +5 -0
- package/dist/foundations/ai-connection/ai-connection.module.d.ts.map +1 -0
- package/dist/foundations/ai-connection/ai-connection.module.js +37 -0
- package/dist/foundations/ai-connection/ai-connection.module.js.map +1 -0
- package/dist/foundations/ai-connection/controllers/ai-connection.controller.d.ts +32 -0
- package/dist/foundations/ai-connection/controllers/ai-connection.controller.d.ts.map +1 -0
- package/dist/foundations/ai-connection/controllers/ai-connection.controller.js +162 -0
- package/dist/foundations/ai-connection/controllers/ai-connection.controller.js.map +1 -0
- package/dist/foundations/ai-connection/dtos/ai-connection.post.dto.d.ts +41 -0
- package/dist/foundations/ai-connection/dtos/ai-connection.post.dto.d.ts.map +1 -0
- package/dist/foundations/ai-connection/dtos/ai-connection.post.dto.js +189 -0
- package/dist/foundations/ai-connection/dtos/ai-connection.post.dto.js.map +1 -0
- package/dist/foundations/ai-connection/dtos/ai-connection.put.dto.d.ts +42 -0
- package/dist/foundations/ai-connection/dtos/ai-connection.put.dto.d.ts.map +1 -0
- package/dist/foundations/ai-connection/dtos/ai-connection.put.dto.js +179 -0
- package/dist/foundations/ai-connection/dtos/ai-connection.put.dto.js.map +1 -0
- package/dist/foundations/ai-connection/dtos/ai-connection.reorder.dto.d.ts +8 -0
- package/dist/foundations/ai-connection/dtos/ai-connection.reorder.dto.d.ts.map +1 -0
- package/dist/foundations/ai-connection/dtos/ai-connection.reorder.dto.js +38 -0
- package/dist/foundations/ai-connection/dtos/ai-connection.reorder.dto.js.map +1 -0
- package/dist/foundations/ai-connection/entities/ai-connection.d.ts +57 -0
- package/dist/foundations/ai-connection/entities/ai-connection.d.ts.map +1 -0
- package/dist/foundations/ai-connection/entities/ai-connection.js +73 -0
- package/dist/foundations/ai-connection/entities/ai-connection.js.map +1 -0
- package/dist/foundations/ai-connection/entities/ai-connection.meta.d.ts +3 -0
- package/dist/foundations/ai-connection/entities/ai-connection.meta.d.ts.map +1 -0
- package/dist/foundations/ai-connection/entities/ai-connection.meta.js +10 -0
- package/dist/foundations/ai-connection/entities/ai-connection.meta.js.map +1 -0
- package/dist/foundations/ai-connection/index.d.ts +12 -0
- package/dist/foundations/ai-connection/index.d.ts.map +1 -0
- package/dist/foundations/ai-connection/index.js +35 -0
- package/dist/foundations/ai-connection/index.js.map +1 -0
- package/dist/foundations/ai-connection/registry/ai-provider.registry.d.ts +54 -0
- package/dist/foundations/ai-connection/registry/ai-provider.registry.d.ts.map +1 -0
- package/dist/foundations/ai-connection/registry/ai-provider.registry.js +255 -0
- package/dist/foundations/ai-connection/registry/ai-provider.registry.js.map +1 -0
- package/dist/foundations/ai-connection/repositories/ai-connection.repository.d.ts +52 -0
- package/dist/foundations/ai-connection/repositories/ai-connection.repository.d.ts.map +1 -0
- package/dist/foundations/ai-connection/repositories/ai-connection.repository.js +85 -0
- package/dist/foundations/ai-connection/repositories/ai-connection.repository.js.map +1 -0
- package/dist/foundations/ai-connection/services/ai-connection-encryption.service.d.ts +52 -0
- package/dist/foundations/ai-connection/services/ai-connection-encryption.service.d.ts.map +1 -0
- package/dist/foundations/ai-connection/services/ai-connection-encryption.service.js +148 -0
- package/dist/foundations/ai-connection/services/ai-connection-encryption.service.js.map +1 -0
- package/dist/foundations/ai-connection/services/ai-connection.service.d.ts +79 -0
- package/dist/foundations/ai-connection/services/ai-connection.service.d.ts.map +1 -0
- package/dist/foundations/ai-connection/services/ai-connection.service.js +184 -0
- package/dist/foundations/ai-connection/services/ai-connection.service.js.map +1 -0
- package/dist/foundations/foundations.modules.d.ts.map +1 -1
- package/dist/foundations/foundations.modules.js +2 -0
- package/dist/foundations/foundations.modules.js.map +1 -1
- package/dist/foundations/index.d.ts +1 -0
- package/dist/foundations/index.d.ts.map +1 -1
- package/dist/foundations/index.js +1 -0
- package/dist/foundations/index.js.map +1 -1
- package/dist/foundations/tokenusage/services/tokenusage.service.d.ts +29 -0
- package/dist/foundations/tokenusage/services/tokenusage.service.d.ts.map +1 -1
- package/dist/foundations/tokenusage/services/tokenusage.service.js +15 -3
- package/dist/foundations/tokenusage/services/tokenusage.service.js.map +1 -1
- package/package.json +1 -1
|
@@ -64,6 +64,7 @@ const openai_2 = __importStar(require("openai"));
|
|
|
64
64
|
const logging_service_1 = require("../../logging/services/logging.service");
|
|
65
65
|
const model_weight_1 = require("../enums/model.weight");
|
|
66
66
|
const vertex_utils_1 = require("../utils/vertex.utils");
|
|
67
|
+
const ai_connection_resolver_service_1 = require("./ai-connection-resolver.service");
|
|
67
68
|
const embedder_token_bucket_service_1 = require("./embedder-token-bucket.service");
|
|
68
69
|
const openrouter_fetch_1 = require("./openrouter-fetch");
|
|
69
70
|
const rate_limited_embedder_1 = require("./rate-limited-embedder");
|
|
@@ -182,12 +183,28 @@ function normaliseConfiguredReasoningEffort(value) {
|
|
|
182
183
|
* emptied and the anomaly is logged rather than silently retained.
|
|
183
184
|
*/
|
|
184
185
|
const LLM_CACHE_MAX_ENTRIES = 100;
|
|
186
|
+
/**
|
|
187
|
+
* Copies only the DEFINED entries of an object.
|
|
188
|
+
*
|
|
189
|
+
* Used when a resolved candidate is merged over an env config block: spreading
|
|
190
|
+
* the candidate wholesale would let its absent optionals (`region: undefined`,
|
|
191
|
+
* …) erase perfectly good env values, and would drop fields the candidate shape
|
|
192
|
+
* has no room for at all (`secret`).
|
|
193
|
+
*/
|
|
194
|
+
function definedFieldsOnly(source) {
|
|
195
|
+
const result = {};
|
|
196
|
+
for (const [key, value] of Object.entries(source))
|
|
197
|
+
if (value !== undefined)
|
|
198
|
+
result[key] = value;
|
|
199
|
+
return result;
|
|
200
|
+
}
|
|
185
201
|
let ModelService = ModelService_1 = class ModelService {
|
|
186
|
-
constructor(clsService, configService, bucket, logger) {
|
|
202
|
+
constructor(clsService, configService, bucket, logger, aiConnectionResolver) {
|
|
187
203
|
this.clsService = clsService;
|
|
188
204
|
this.configService = configService;
|
|
189
205
|
this.bucket = bucket;
|
|
190
206
|
this.logger = logger;
|
|
207
|
+
this.aiConnectionResolver = aiConnectionResolver;
|
|
191
208
|
/**
|
|
192
209
|
* Chat models built by {@link getLLM}, keyed on every parameter that is BAKED
|
|
193
210
|
* INTO the instance (see the key built there).
|
|
@@ -232,10 +249,13 @@ let ModelService = ModelService_1 = class ModelService {
|
|
|
232
249
|
return this.aiConfig.audio;
|
|
233
250
|
}
|
|
234
251
|
/**
|
|
235
|
-
* Resolves the AI config block for a model weight.
|
|
252
|
+
* Resolves the `.env` AI config block for a model weight.
|
|
236
253
|
* Undefined / Normal → `ai`; Lite → `aiLite`; Large → `aiLarge`.
|
|
254
|
+
*
|
|
255
|
+
* This is the FINAL fallback of every chat chain — {@link getResolvedConfig}
|
|
256
|
+
* layers the resolved (DB-first) candidate over it.
|
|
237
257
|
*/
|
|
238
|
-
|
|
258
|
+
envTierConfig(weight) {
|
|
239
259
|
switch (weight) {
|
|
240
260
|
case model_weight_1.ModelWeight.Lite:
|
|
241
261
|
return this.aiConfig.aiLite;
|
|
@@ -245,6 +265,215 @@ let ModelService = ModelService_1 = class ModelService {
|
|
|
245
265
|
return this.aiConfig.ai;
|
|
246
266
|
}
|
|
247
267
|
}
|
|
268
|
+
/** Chat tier → AI connection type. Undefined / Normal → `ai`. */
|
|
269
|
+
weightToType(weight) {
|
|
270
|
+
switch (weight) {
|
|
271
|
+
case model_weight_1.ModelWeight.Lite:
|
|
272
|
+
return "aiLite";
|
|
273
|
+
case model_weight_1.ModelWeight.Large:
|
|
274
|
+
return "aiLarge";
|
|
275
|
+
default:
|
|
276
|
+
return "ai";
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
/**
|
|
280
|
+
* Ordered fallback candidates for a chat tier, healthiest first.
|
|
281
|
+
*
|
|
282
|
+
* Without a resolver (tests, minimal harnesses, an app that never registered
|
|
283
|
+
* the AI-connection feature) this is exactly one `.env` candidate — today's
|
|
284
|
+
* behaviour.
|
|
285
|
+
*/
|
|
286
|
+
getCandidates(weight) {
|
|
287
|
+
return this.getCandidatesForType(this.weightToType(weight));
|
|
288
|
+
}
|
|
289
|
+
/**
|
|
290
|
+
* Ordered fallback candidates for any AI connection type.
|
|
291
|
+
*
|
|
292
|
+
* Never throws: a resolver failure degrades to the `.env` candidate rather
|
|
293
|
+
* than to "no AI" (spec § 5), because this sits on the hot path of every
|
|
294
|
+
* single model construction.
|
|
295
|
+
*/
|
|
296
|
+
getCandidatesForType(type) {
|
|
297
|
+
if (this.aiConnectionResolver) {
|
|
298
|
+
try {
|
|
299
|
+
const candidates = this.aiConnectionResolver.resolve(type);
|
|
300
|
+
if (candidates.length > 0)
|
|
301
|
+
return candidates;
|
|
302
|
+
}
|
|
303
|
+
catch (error) {
|
|
304
|
+
const warning = `[ModelService] AI connection resolver failed for "${type}" — falling back to the .env connection: ${error instanceof Error ? error.message : String(error)}`;
|
|
305
|
+
if (this.logger)
|
|
306
|
+
this.logger.warn(warning, ModelService_1.name);
|
|
307
|
+
else
|
|
308
|
+
console.warn(warning);
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
return [this.envCandidate(type)];
|
|
312
|
+
}
|
|
313
|
+
/** Reports a transient failure so the resolver cools that connection down. */
|
|
314
|
+
notifyCandidateFailure(candidate) {
|
|
315
|
+
this.aiConnectionResolver?.markFailure(candidate.connectionId);
|
|
316
|
+
}
|
|
317
|
+
/**
|
|
318
|
+
* Picks one link out of a chain. Out-of-range indexes clamp to the last
|
|
319
|
+
* candidate, so a retry loop that outruns the chain simply keeps hammering
|
|
320
|
+
* the final (`.env`) link instead of crashing.
|
|
321
|
+
*/
|
|
322
|
+
pickCandidate(type, candidateIndex) {
|
|
323
|
+
const candidates = this.getCandidatesForType(type);
|
|
324
|
+
if (candidates.length === 0)
|
|
325
|
+
return this.envCandidate(type);
|
|
326
|
+
const index = Math.min(Math.max(candidateIndex ?? 0, 0), candidates.length - 1);
|
|
327
|
+
return candidates[index];
|
|
328
|
+
}
|
|
329
|
+
/**
|
|
330
|
+
* The `.env` block of one connection type, normalised to a candidate.
|
|
331
|
+
*
|
|
332
|
+
* Used when no resolver is wired. A resolver appends its own env candidate as
|
|
333
|
+
* the last link of every chain, so this is the no-resolver twin of that entry
|
|
334
|
+
* and MUST stay field-for-field identical to it.
|
|
335
|
+
*
|
|
336
|
+
* Tolerates missing config blocks (a harness that only configures the chat
|
|
337
|
+
* tiers must not explode when something asks for the vision chain).
|
|
338
|
+
*/
|
|
339
|
+
envCandidate(type) {
|
|
340
|
+
const cfg = this.aiConfig ?? {};
|
|
341
|
+
const identity = { source: "env", connectionId: `env:${type}`, connectionType: type };
|
|
342
|
+
switch (type) {
|
|
343
|
+
case "vision": {
|
|
344
|
+
const vision = cfg.vision;
|
|
345
|
+
return {
|
|
346
|
+
...identity,
|
|
347
|
+
provider: vision?.provider ?? "",
|
|
348
|
+
apiKey: vision?.apiKey ?? "",
|
|
349
|
+
model: vision?.model ?? "",
|
|
350
|
+
url: vision?.url ?? "",
|
|
351
|
+
region: vision?.region,
|
|
352
|
+
instance: vision?.instance,
|
|
353
|
+
apiVersion: vision?.apiVersion,
|
|
354
|
+
googleCredentialsBase64: vision?.googleCredentialsBase64,
|
|
355
|
+
reasoningEffort: vision?.reasoningEffort,
|
|
356
|
+
inputCostPer1MTokens: vision?.inputCostPer1MTokens,
|
|
357
|
+
outputCostPer1MTokens: vision?.outputCostPer1MTokens,
|
|
358
|
+
};
|
|
359
|
+
}
|
|
360
|
+
case "audio": {
|
|
361
|
+
const audio = cfg.audio;
|
|
362
|
+
return {
|
|
363
|
+
...identity,
|
|
364
|
+
provider: audio?.provider ?? "",
|
|
365
|
+
apiKey: audio?.apiKey ?? "",
|
|
366
|
+
model: audio?.model ?? "",
|
|
367
|
+
url: audio?.url ?? "",
|
|
368
|
+
region: audio?.region,
|
|
369
|
+
instance: audio?.instance,
|
|
370
|
+
apiVersion: audio?.apiVersion,
|
|
371
|
+
googleCredentialsBase64: audio?.googleCredentialsBase64,
|
|
372
|
+
inputCostPer1MTokens: audio?.inputCostPer1MTokens,
|
|
373
|
+
outputCostPer1MTokens: audio?.outputCostPer1MTokens,
|
|
374
|
+
costPerMinute: audio?.costPerMinute,
|
|
375
|
+
directUrl: audio?.directUrl,
|
|
376
|
+
language: audio?.language,
|
|
377
|
+
directFormat: audio?.directFormat,
|
|
378
|
+
directProvider: audio?.directProvider,
|
|
379
|
+
};
|
|
380
|
+
}
|
|
381
|
+
case "embedder": {
|
|
382
|
+
const embedder = cfg.embedder;
|
|
383
|
+
return {
|
|
384
|
+
...identity,
|
|
385
|
+
provider: embedder?.provider ?? "",
|
|
386
|
+
apiKey: embedder?.apiKey ?? "",
|
|
387
|
+
model: embedder?.model ?? "",
|
|
388
|
+
url: embedder?.url ?? "",
|
|
389
|
+
region: embedder?.region,
|
|
390
|
+
instance: embedder?.instance,
|
|
391
|
+
apiVersion: embedder?.apiVersion,
|
|
392
|
+
googleCredentialsBase64: embedder?.googleCredentialsBase64,
|
|
393
|
+
dimensions: embedder?.dimensions,
|
|
394
|
+
inputCostPer1MTokens: embedder?.inputCostPer1MTokens,
|
|
395
|
+
};
|
|
396
|
+
}
|
|
397
|
+
case "transcriber": {
|
|
398
|
+
const transcriber = cfg.transcriber;
|
|
399
|
+
return {
|
|
400
|
+
...identity,
|
|
401
|
+
provider: transcriber?.provider ?? "",
|
|
402
|
+
apiKey: transcriber?.apiKey ?? "",
|
|
403
|
+
model: transcriber?.model ?? "",
|
|
404
|
+
url: transcriber?.url ?? "",
|
|
405
|
+
apiVersion: transcriber?.apiVersion,
|
|
406
|
+
};
|
|
407
|
+
}
|
|
408
|
+
case "documentAi": {
|
|
409
|
+
const documentAi = cfg.documentAi;
|
|
410
|
+
return {
|
|
411
|
+
...identity,
|
|
412
|
+
provider: documentAi?.provider ?? "",
|
|
413
|
+
apiKey: documentAi?.apiKey ?? "",
|
|
414
|
+
model: documentAi?.model ?? "",
|
|
415
|
+
url: documentAi?.url ?? "",
|
|
416
|
+
apiVersion: documentAi?.apiVersion,
|
|
417
|
+
costPerPage: documentAi?.costPerPage,
|
|
418
|
+
};
|
|
419
|
+
}
|
|
420
|
+
default: {
|
|
421
|
+
const tier = type === "aiLite" ? cfg.aiLite : type === "aiLarge" ? cfg.aiLarge : cfg.ai;
|
|
422
|
+
return {
|
|
423
|
+
...identity,
|
|
424
|
+
provider: tier?.provider ?? "",
|
|
425
|
+
apiKey: tier?.apiKey ?? "",
|
|
426
|
+
model: tier?.model ?? "",
|
|
427
|
+
url: tier?.url ?? "",
|
|
428
|
+
region: tier?.region,
|
|
429
|
+
instance: tier?.instance,
|
|
430
|
+
apiVersion: tier?.apiVersion,
|
|
431
|
+
googleCredentialsBase64: tier?.googleCredentialsBase64,
|
|
432
|
+
allowFallbacks: tier?.allowFallbacks,
|
|
433
|
+
reasoningEffort: tier?.reasoningEffort,
|
|
434
|
+
maxOutputTokens: tier?.maxOutputTokens,
|
|
435
|
+
inputCostPer1MTokens: tier?.inputCostPer1MTokens,
|
|
436
|
+
outputCostPer1MTokens: tier?.outputCostPer1MTokens,
|
|
437
|
+
cachedInputCostPer1MTokens: tier?.cachedInputCostPer1MTokens,
|
|
438
|
+
};
|
|
439
|
+
}
|
|
440
|
+
}
|
|
441
|
+
}
|
|
442
|
+
/**
|
|
443
|
+
* Resolves the effective AI config block for a model weight: the first
|
|
444
|
+
* healthy candidate of that chat tier, expressed in the `.env` block's shape.
|
|
445
|
+
*
|
|
446
|
+
* The signature is deliberately unchanged, so every existing caller
|
|
447
|
+
* (`LLMService` cost lookups, {@link supportsStrictStructuredOutput}, …)
|
|
448
|
+
* transparently reads the DB-first configuration. Only DEFINED candidate
|
|
449
|
+
* fields are layered over the env block, so fields the candidate shape does
|
|
450
|
+
* not carry (`secret`) survive.
|
|
451
|
+
*/
|
|
452
|
+
getResolvedConfig(weight) {
|
|
453
|
+
const envBlock = this.envTierConfig(weight);
|
|
454
|
+
const candidate = this.pickCandidate(this.weightToType(weight));
|
|
455
|
+
if (candidate.source === "env")
|
|
456
|
+
return envBlock;
|
|
457
|
+
return {
|
|
458
|
+
...envBlock,
|
|
459
|
+
...definedFieldsOnly({
|
|
460
|
+
provider: candidate.provider,
|
|
461
|
+
apiKey: candidate.apiKey,
|
|
462
|
+
model: candidate.model,
|
|
463
|
+
url: candidate.url,
|
|
464
|
+
region: candidate.region,
|
|
465
|
+
instance: candidate.instance,
|
|
466
|
+
apiVersion: candidate.apiVersion,
|
|
467
|
+
googleCredentialsBase64: candidate.googleCredentialsBase64,
|
|
468
|
+
allowFallbacks: candidate.allowFallbacks,
|
|
469
|
+
reasoningEffort: candidate.reasoningEffort,
|
|
470
|
+
maxOutputTokens: candidate.maxOutputTokens,
|
|
471
|
+
inputCostPer1MTokens: candidate.inputCostPer1MTokens,
|
|
472
|
+
outputCostPer1MTokens: candidate.outputCostPer1MTokens,
|
|
473
|
+
cachedInputCostPer1MTokens: candidate.cachedInputCostPer1MTokens,
|
|
474
|
+
}),
|
|
475
|
+
};
|
|
476
|
+
}
|
|
248
477
|
/**
|
|
249
478
|
* Whether this tier's provider honours OpenAI's STRICT structured-output mode.
|
|
250
479
|
*
|
|
@@ -286,6 +515,8 @@ let ModelService = ModelService_1 = class ModelService {
|
|
|
286
515
|
* Lower = more deterministic, Higher = more creative
|
|
287
516
|
* @param params.maxOutputTokens - Maximum output tokens (default from config)
|
|
288
517
|
* @param params.modelWeight - Which AI tier to use (undefined → Normal)
|
|
518
|
+
* @param params.candidateIndex - Which link of the tier's fallback chain to
|
|
519
|
+
* build (default 0 = first healthy candidate)
|
|
289
520
|
* @returns Configured BaseChatModel instance from LangChain
|
|
290
521
|
* @throws {Error} If the configured LLM type is not supported
|
|
291
522
|
*/
|
|
@@ -294,7 +525,7 @@ let ModelService = ModelService_1 = class ModelService {
|
|
|
294
525
|
return new testing_1.FakeListChatModel({ responses: ["mock summary"] });
|
|
295
526
|
}
|
|
296
527
|
const temperature = params?.temperature ?? 0.2;
|
|
297
|
-
const cfg = this.
|
|
528
|
+
const cfg = this.pickCandidate(this.weightToType(params?.modelWeight), params?.candidateIndex);
|
|
298
529
|
const maxOutputTokens = params?.maxOutputTokens ?? cfg.maxOutputTokens;
|
|
299
530
|
// Precedence (Shared Contracts, plan 2026-07-31-llm-latency-and-structured-output):
|
|
300
531
|
// an explicit per-call `reasoningEffort` wins; failing that, the equally
|
|
@@ -314,7 +545,11 @@ let ModelService = ModelService_1 = class ModelService {
|
|
|
314
545
|
// pair — two different spellings of the same effort must hit the same entry.
|
|
315
546
|
// `timeoutMs` and `frequencyPenalty` are part of the key because both are
|
|
316
547
|
// baked into the constructed client, not passed per invocation.
|
|
548
|
+
// The connection id leads the key: two links of the same chain may agree on
|
|
549
|
+
// every other resolved parameter yet be different deployments (and carry
|
|
550
|
+
// different credentials), so each one caches its own client.
|
|
317
551
|
const cacheKey = [
|
|
552
|
+
cfg.connectionId,
|
|
318
553
|
cfg.provider,
|
|
319
554
|
cfg.instance ?? cfg.url,
|
|
320
555
|
cfg.model,
|
|
@@ -364,6 +599,8 @@ let ModelService = ModelService_1 = class ModelService {
|
|
|
364
599
|
*
|
|
365
600
|
* @param params - Optional parameters
|
|
366
601
|
* @param params.temperature - Temperature for text generation (0-2, default: 0.1)
|
|
602
|
+
* @param params.candidateIndex - Which link of the vision fallback chain to
|
|
603
|
+
* build (default 0 = first healthy candidate)
|
|
367
604
|
* @returns Configured BaseChatModel instance from LangChain
|
|
368
605
|
* @throws {Error} If the configured LLM type is not supported
|
|
369
606
|
*/
|
|
@@ -372,7 +609,7 @@ let ModelService = ModelService_1 = class ModelService {
|
|
|
372
609
|
return new testing_1.FakeListChatModel({ responses: ["mock summary"] });
|
|
373
610
|
}
|
|
374
611
|
const temperature = params?.temperature ?? 0.1;
|
|
375
|
-
const visionConfig = this.
|
|
612
|
+
const visionConfig = this.pickCandidate("vision", params?.candidateIndex);
|
|
376
613
|
// Reasoning models (gpt-5 / o-series) accept `reasoning_effort` on the chat-completions
|
|
377
614
|
// call. Lower effort = far fewer reasoning tokens = much faster. Passed via modelKwargs
|
|
378
615
|
// (raw param) because the LangChain `reasoning` object is rejected by Azure chat-completions
|
|
@@ -383,7 +620,14 @@ let ModelService = ModelService_1 = class ModelService {
|
|
|
383
620
|
// block reads its own `VISION_REASONING_EFFORT` and is just as typo-prone.
|
|
384
621
|
const visionEffort = normaliseConfiguredReasoningEffort(visionConfig.reasoningEffort);
|
|
385
622
|
const modelKwargs = isReasoningVisionModel && visionEffort ? { reasoning_effort: visionEffort } : undefined;
|
|
386
|
-
return this.buildChatModel(visionConfig, {
|
|
623
|
+
return this.buildChatModel(visionConfig, {
|
|
624
|
+
temperature,
|
|
625
|
+
credentialFileTag: "vision",
|
|
626
|
+
modelKwargs,
|
|
627
|
+
// Absent on the `.env` vision block (it has no such field), so this stays
|
|
628
|
+
// undefined — and today's behaviour — until a DB connection sets it.
|
|
629
|
+
maxOutputTokens: visionConfig.maxOutputTokens,
|
|
630
|
+
});
|
|
387
631
|
}
|
|
388
632
|
/**
|
|
389
633
|
* Gets a configured LLM instance for audio operations based on the current config.
|
|
@@ -397,7 +641,7 @@ let ModelService = ModelService_1 = class ModelService {
|
|
|
397
641
|
*/
|
|
398
642
|
getAudioLLM(params) {
|
|
399
643
|
const temperature = params?.temperature ?? 0.1;
|
|
400
|
-
return this.buildChatModel(this.
|
|
644
|
+
return this.buildChatModel(this.pickCandidate("audio"), { temperature, credentialFileTag: "audio" });
|
|
401
645
|
}
|
|
402
646
|
/**
|
|
403
647
|
* Builds a LangChain chat model from a resolved config block.
|
|
@@ -570,51 +814,62 @@ let ModelService = ModelService_1 = class ModelService {
|
|
|
570
814
|
};
|
|
571
815
|
}
|
|
572
816
|
const rateLimit = this.aiConfig.embedder.rateLimit;
|
|
817
|
+
const candidate = this.pickCandidate("embedder");
|
|
573
818
|
if (rateLimit && this.bucket && this.logger) {
|
|
574
|
-
|
|
819
|
+
// Memoised per CONNECTION: an admin editing the embedder connection must
|
|
820
|
+
// take effect on the next call, not on the next process restart.
|
|
821
|
+
if (this.cachedEmbedder && this.cachedEmbedderConnectionId === candidate.connectionId)
|
|
575
822
|
return this.cachedEmbedder;
|
|
576
|
-
const inner = this.buildInnerEmbedder();
|
|
823
|
+
const inner = this.buildInnerEmbedder(candidate);
|
|
577
824
|
this.cachedEmbedder = new rate_limited_embedder_1.RateLimitedEmbedder(inner, this.bucket, rateLimit, this.logger);
|
|
825
|
+
this.cachedEmbedderConnectionId = candidate.connectionId;
|
|
578
826
|
return this.cachedEmbedder;
|
|
579
827
|
}
|
|
580
|
-
return this.buildInnerEmbedder();
|
|
828
|
+
return this.buildInnerEmbedder(candidate);
|
|
581
829
|
}
|
|
582
|
-
|
|
830
|
+
/**
|
|
831
|
+
* Builds the raw provider embedder for one resolved candidate. `dimensions`
|
|
832
|
+
* falls back to the `.env` embedder block when the candidate does not carry
|
|
833
|
+
* one, so a DB connection that omits it keeps today's vector size.
|
|
834
|
+
*/
|
|
835
|
+
buildInnerEmbedder(candidate) {
|
|
583
836
|
let response;
|
|
584
|
-
|
|
837
|
+
const embedderConfig = candidate ?? this.pickCandidate("embedder");
|
|
838
|
+
const dimensions = embedderConfig.dimensions ?? this.aiConfig.embedder?.dimensions;
|
|
839
|
+
switch (embedderConfig.provider) {
|
|
585
840
|
case "local":
|
|
586
841
|
throw new Error("Local embedder is not supported");
|
|
587
842
|
case "openrouter":
|
|
588
843
|
response = new openai_1.OpenAIEmbeddings({
|
|
589
|
-
openAIApiKey:
|
|
590
|
-
model:
|
|
844
|
+
openAIApiKey: embedderConfig.apiKey,
|
|
845
|
+
model: embedderConfig.model,
|
|
591
846
|
configuration: {
|
|
592
|
-
baseURL:
|
|
847
|
+
baseURL: embedderConfig.url,
|
|
593
848
|
},
|
|
594
849
|
});
|
|
595
850
|
break;
|
|
596
851
|
case "requesty":
|
|
597
852
|
response = new openai_1.OpenAIEmbeddings({
|
|
598
|
-
openAIApiKey:
|
|
599
|
-
model:
|
|
600
|
-
dimensions:
|
|
853
|
+
openAIApiKey: embedderConfig.apiKey,
|
|
854
|
+
model: embedderConfig.model,
|
|
855
|
+
dimensions: dimensions,
|
|
601
856
|
configuration: {
|
|
602
|
-
baseURL:
|
|
857
|
+
baseURL: embedderConfig.url,
|
|
603
858
|
},
|
|
604
859
|
});
|
|
605
860
|
break;
|
|
606
861
|
case "openai":
|
|
607
862
|
response = new openai_1.OpenAIEmbeddings({
|
|
608
|
-
openAIApiKey:
|
|
609
|
-
model:
|
|
863
|
+
openAIApiKey: embedderConfig.apiKey,
|
|
864
|
+
model: embedderConfig.model,
|
|
610
865
|
});
|
|
611
866
|
break;
|
|
612
867
|
case "azure":
|
|
613
868
|
response = new openai_1.AzureOpenAIEmbeddings({
|
|
614
|
-
azureOpenAIApiKey:
|
|
615
|
-
azureOpenAIApiInstanceName:
|
|
616
|
-
azureOpenAIApiDeploymentName:
|
|
617
|
-
azureOpenAIApiVersion:
|
|
869
|
+
azureOpenAIApiKey: embedderConfig.apiKey,
|
|
870
|
+
azureOpenAIApiInstanceName: embedderConfig.instance,
|
|
871
|
+
azureOpenAIApiDeploymentName: embedderConfig.model,
|
|
872
|
+
azureOpenAIApiVersion: embedderConfig.apiVersion,
|
|
618
873
|
batchSize: 100,
|
|
619
874
|
});
|
|
620
875
|
break;
|
|
@@ -622,7 +877,6 @@ let ModelService = ModelService_1 = class ModelService {
|
|
|
622
877
|
// Google Vertex AI Embeddings (uses embedder-specific credentials).
|
|
623
878
|
// Match app-local behaviour: set GOOGLE_APPLICATION_CREDENTIALS and LEAVE it set
|
|
624
879
|
// (the project id is resolved lazily at request time — do NOT restore/delete it).
|
|
625
|
-
const embedderConfig = this.aiConfig.embedder;
|
|
626
880
|
if (embedderConfig.googleCredentialsBase64) {
|
|
627
881
|
const credentialsJson = Buffer.from(embedderConfig.googleCredentialsBase64, "base64").toString("utf-8");
|
|
628
882
|
const credsPath = writeGcpCredentials(credentialsJson, "embedder");
|
|
@@ -633,7 +887,7 @@ let ModelService = ModelService_1 = class ModelService {
|
|
|
633
887
|
location: embedderConfig.region,
|
|
634
888
|
// EMBEDDER_REGION accepts a region or a multi-region, same as AI_REGION.
|
|
635
889
|
...(0, vertex_utils_1.vertexLocationParams)(embedderConfig.region),
|
|
636
|
-
dimensions:
|
|
890
|
+
dimensions: dimensions,
|
|
637
891
|
});
|
|
638
892
|
break;
|
|
639
893
|
}
|
|
@@ -641,7 +895,7 @@ let ModelService = ModelService_1 = class ModelService {
|
|
|
641
895
|
return response;
|
|
642
896
|
}
|
|
643
897
|
getEmbedderDimensions() {
|
|
644
|
-
return this.aiConfig.embedder.dimensions;
|
|
898
|
+
return this.pickCandidate("embedder").dimensions ?? this.aiConfig.embedder.dimensions;
|
|
645
899
|
}
|
|
646
900
|
/**
|
|
647
901
|
* Builds an OpenAI / Azure OpenAI SDK client for audio transcription. This is
|
|
@@ -650,7 +904,7 @@ let ModelService = ModelService_1 = class ModelService {
|
|
|
650
904
|
* by the `transcriber` config block (TRANSCRIBER_* env vars).
|
|
651
905
|
*/
|
|
652
906
|
getTranscriber() {
|
|
653
|
-
const transcriber = this.
|
|
907
|
+
const transcriber = this.pickCandidate("transcriber");
|
|
654
908
|
switch (transcriber.provider) {
|
|
655
909
|
case "openai":
|
|
656
910
|
return new openai_2.default({ apiKey: transcriber.apiKey });
|
|
@@ -666,9 +920,11 @@ let ModelService = ModelService_1 = class ModelService {
|
|
|
666
920
|
}
|
|
667
921
|
}
|
|
668
922
|
async transcribeAudio(params) {
|
|
923
|
+
// Same candidate the client above was built from — reading the model from
|
|
924
|
+
// config while the client came from a DB connection would mix two chains.
|
|
669
925
|
return await this.getTranscriber().audio.transcriptions.create({
|
|
670
926
|
file: fs.createReadStream(params.filePath),
|
|
671
|
-
model: this.
|
|
927
|
+
model: this.pickCandidate("transcriber").model,
|
|
672
928
|
prompt: params.prompt,
|
|
673
929
|
response_format: "json",
|
|
674
930
|
});
|
|
@@ -679,9 +935,11 @@ exports.ModelService = ModelService = ModelService_1 = __decorate([
|
|
|
679
935
|
(0, common_1.Injectable)(),
|
|
680
936
|
__param(2, (0, common_1.Optional)()),
|
|
681
937
|
__param(3, (0, common_1.Optional)()),
|
|
938
|
+
__param(4, (0, common_1.Optional)()),
|
|
682
939
|
__metadata("design:paramtypes", [nestjs_cls_1.ClsService,
|
|
683
940
|
config_1.ConfigService,
|
|
684
941
|
embedder_token_bucket_service_1.EmbedderTokenBucketService,
|
|
685
|
-
logging_service_1.AppLoggingService
|
|
942
|
+
logging_service_1.AppLoggingService,
|
|
943
|
+
ai_connection_resolver_service_1.AiConnectionResolverService])
|
|
686
944
|
], ModelService);
|
|
687
945
|
//# sourceMappingURL=model.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.service.js","sourceRoot":"","sources":["../../../../src/core/llm/services/model.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8CA,kDAiBC;AAcD,sCAsBC;AAoBD,gFAQC;AA7HD,2DAAkE;AAClE,gEAA8E;AAC9E,8CAAyG;AACzG,2CAAoE;AACpE,2CAA+C;AAC/C,+CAAiC;AACjC,uCAAyB;AACzB,uCAAyB;AACzB,2CAA6B;AAC7B,2CAAwC;AACxC,iDAA6C;AAE7C,4EAA2E;AAC3E,wDAAoD;AAEpD,wDAA6D;AAC7D,mFAA6E;AAC7E,yDAA+D;AAC/D,mEAA8D;AAC9D,uEAAkE;AAElE;;;GAGG;AACH,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAU,CAAC;AAC5C,IAAI,oBAAoB,GAAG,KAAK,CAAC;AAEjC;;;;;;;;;;;;;;;GAeG;AACH,SAAgB,mBAAmB,CAAC,kBAA0B,EAAE,GAAW;IACzE,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,aAAa,GAAG,IAAI,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACzF,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE,kBAAkB,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACjE,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACjC,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC1B,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;YACtB,KAAK,MAAM,CAAC,IAAI,iBAAiB,EAAE,CAAC;gBAClC,IAAI,CAAC;oBACH,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gBACnB,CAAC;gBAAC,MAAM,CAAC;oBACP,iBAAiB;gBACnB,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;QACH,oBAAoB,GAAG,IAAI,CAAC;IAC9B,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAgB,aAAa,CAAC,GAAW,EAAE,QAAgB;IACzD,IAAI,CAAC,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,QAAQ,6BAA6B,CAAC,CAAC;IAClF,IAAI,MAAW,CAAC;IAChB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,8BAA8B,GAAG,EAAE,CAAC,CAAC;IACvD,CAAC;IACD,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,KAAK,WAAW,IAAI,MAAM,CAAC,QAAQ,KAAK,WAAW,IAAI,MAAM,CAAC,QAAQ,KAAK,KAAK,CAAC;IACpH,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACtD,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,WAAW,IAAI,CAAC,UAAU,EAAE,CAAC;QAChE,MAAM,IAAI,KAAK,CAAC,uEAAuE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC5G,CAAC;IACD,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;IAClD,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,SAAS,GAAG,YAAY;aAC3B,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aACpB,MAAM,CAAC,OAAO,CAAC,CAAC;QACnB,MAAM,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,KAAK,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;QACtG,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,MAAM,CAAC,QAAQ,oBAAoB,CAAC,CAAC;IACpF,CAAC;AACH,CAAC;AAED,iEAAiE;AACjE,MAAM,iBAAiB,GAAwB,IAAI,GAAG,CAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;AAEtH;;;;;;;;;;;;;;GAcG;AACH,SAAgB,kCAAkC,CAAC,KAAc;IAC/D,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE;QAAE,OAAO,SAAS,CAAC;IAC5E,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC;QAAE,OAAO,KAAwB,CAAC;IAC/F,OAAO,CAAC,IAAI,CACV,yDAAyD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK;QACjF,mBAAmB,CAAC,GAAG,iBAAiB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACzD,CAAC;IACF,OAAO,SAAS,CAAC;AACnB,CAAC;AAgBD;;;;;;;GAOG;AACH,MAAM,qBAAqB,GAAG,GAAG,CAAC;AAG3B,IAAM,YAAY,oBAAlB,MAAM,YAAY;IAwBvB,YACmB,UAAsB,EACtB,aAAiD,EAKtD,MAAoD,EACpD,MAA2C;QAPtC,eAAU,GAAV,UAAU,CAAY;QACtB,kBAAa,GAAb,aAAa,CAAoC;QAKrC,WAAM,GAAN,MAAM,CAA6B;QACnC,WAAM,GAAN,MAAM,CAAoB;QA7BzD;;;;;;;;;;;;;;;;;;WAkBG;QACc,aAAQ,GAAG,IAAI,GAAG,EAAyB,CAAC;IAW1D,CAAC;IAEJ;;;;;;;OAOG;IACH,YAAY;QACV,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,YAAY,EAAE,CAAC;YAC3D,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;QAC/E,CAAC;IACH,CAAC;IAED,IAAY,QAAQ;QAClB,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAoB,IAAI,CAAC,CAAC;IACzD,CAAC;IAED,IAAY,YAAY;QACtB,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;IAC9B,CAAC;IAED,IAAY,WAAW;QACrB,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;IAC7B,CAAC;IAED;;;OAGG;IACH,iBAAiB,CAAC,MAAoB;QACpC,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,0BAAW,CAAC,IAAI;gBACnB,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;YAC9B,KAAK,0BAAW,CAAC,KAAK;gBACpB,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;YAC/B;gBACE,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,8BAA8B,CAAC,MAAoB;QACjD,OAAO,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC;IAC9D,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,MAAM,CAAC,MAaN;QACC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACvB,OAAO,IAAI,2BAAiB,CAAC,EAAE,SAAS,EAAE,CAAC,cAAc,CAAC,EAAE,CAA6B,CAAC;QAC5F,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,EAAE,WAAW,IAAI,GAAG,CAAC;QAC/C,MAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QACxD,MAAM,eAAe,GAAG,MAAM,EAAE,eAAe,IAAI,GAAG,CAAC,eAAe,CAAC;QACvE,oFAAoF;QACpF,yEAAyE;QACzE,6EAA6E;QAC7E,wEAAwE;QACxE,8EAA8E;QAC9E,8EAA8E;QAC9E,MAAM,uBAAuB,GAC3B,MAAM,EAAE,eAAe;YACvB,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;YAC9C,kCAAkC,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAC1D,MAAM,SAAS,GAAG,MAAM,EAAE,SAAS,IAAI,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QAEtE,4EAA4E;QAC5E,2EAA2E;QAC3E,uEAAuE;QACvE,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;QACjE,8EAA8E;QAC9E,6EAA6E;QAC7E,0EAA0E;QAC1E,gEAAgE;QAChE,MAAM,QAAQ,GAAG;YACf,GAAG,CAAC,QAAQ;YACZ,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,GAAG;YACvB,GAAG,CAAC,KAAK;YACT,WAAW;YACX,eAAe,IAAI,EAAE;YACrB,MAAM,EAAE,gBAAgB,IAAI,EAAE;YAC9B,uBAAuB,IAAI,EAAE;YAC7B,SAAS;SACV,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEZ,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC3C,IAAI,MAAM;gBAAE,OAAO,MAAM,CAAC;QAC5B,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE;YACrC,WAAW;YACX,eAAe;YACf,gBAAgB,EAAE,MAAM,EAAE,gBAAgB;YAC1C,iBAAiB,EAAE,KAAK;YACxB,eAAe,EAAE,MAAM,EAAE,eAAe;YACxC,eAAe,EAAE,uBAAuB;YACxC,SAAS;SACV,CAAC,CAAC;QAEH,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YACnC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,qBAAqB,EAAE,CAAC;gBAC/C,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;gBACtB,MAAM,OAAO,GACX,4CAA4C,qBAAqB,6BAA6B;oBAC9F,gHAAgH,CAAC;gBACnH,IAAI,IAAI,CAAC,MAAM;oBAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,cAAY,CAAC,IAAI,CAAC,CAAC;;oBACzD,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,YAAY,CAAC,MAAiC;QAC5C,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACvB,OAAO,IAAI,2BAAiB,CAAC,EAAE,SAAS,EAAE,CAAC,cAAc,CAAC,EAAE,CAA6B,CAAC;QAC5F,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,EAAE,WAAW,IAAI,GAAG,CAAC;QAC/C,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QAEvC,wFAAwF;QACxF,wFAAwF;QACxF,6FAA6F;QAC7F,iDAAiD;QACjD,MAAM,gBAAgB,GAAG,CAAC,YAAY,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QAClE,MAAM,sBAAsB,GAAG,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACxG,gFAAgF;QAChF,2EAA2E;QAC3E,MAAM,YAAY,GAAG,kCAAkC,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;QACtF,MAAM,WAAW,GAAG,sBAAsB,IAAI,YAAY,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAE5G,OAAO,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,EAAE,WAAW,EAAE,iBAAiB,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,CAAC;IACtG,CAAC;IAED;;;;;;;;;OASG;IACH,WAAW,CAAC,MAAiC;QAC3C,MAAM,WAAW,GAAG,MAAM,EAAE,WAAW,IAAI,GAAG,CAAC;QAC/C,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,WAAW,EAAE,iBAAiB,EAAE,OAAO,EAAE,CAAC,CAAC;IAC5F,CAAC;IAED;;;;;OAKG;IACK,cAAc,CACpB,GAUC,EACD,IAsBC;QAED,MAAM,EAAE,WAAW,EAAE,eAAe,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAC;QAChE,yEAAyE;QACzE,yEAAyE;QACzE,2CAA2C;QAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ,EAAE,gBAAgB,CAAC;QACpE,mEAAmE;QACnE,6EAA6E;QAC7E,qDAAqD;QACrD,MAAM,QAAQ,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAE9F,8EAA8E;QAC9E,mCAAmC;QACnC,EAAE;QACF,8EAA8E;QAC9E,8EAA8E;QAC9E,8EAA8E;QAC9E,4EAA4E;QAC5E,2EAA2E;QAC3E,4EAA4E;QAC5E,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACnF,MAAM,WAAW,GAAG;YAClB,GAAG,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC;YAC3B,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAChD,CAAC;QAEF,MAAM,SAAS,GAAkB;YAC/B,MAAM,EAAE,GAAG,CAAC,MAAM,IAAI,YAAY;YAClC,WAAW;YACX,KAAK,EAAE,GAAG,CAAC,KAAK,IAAI,aAAa;YACjC,aAAa,EAAE;gBACb,OAAO,EAAE,GAAG,CAAC,GAAG,IAAI,0BAA0B;aAC/C;YACD,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/D,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC7C,CAAC;QAEF,QAAQ,GAAG,CAAC,QAAQ,EAAE,CAAC;YACrB,KAAK,UAAU,CAAC,CAAC,CAAC;gBAChB,SAAS,CAAC,MAAM,GAAG,YAAY,CAAC;gBAChC,SAAS,CAAC,KAAK,GAAG,aAAa,CAAC;gBAChC,MAAM,WAAW,GAAG,GAAG,CAAC,GAAG,IAAI,0BAA0B,CAAC;gBAC1D,aAAa,CAAC,WAAW,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACzC,SAAS,CAAC,aAAa,CAAC,OAAO,GAAG,WAAW,CAAC;gBAC9C,MAAM;YACR,CAAC;YAED,KAAK,YAAY,CAAC,CAAC,CAAC;gBAClB,MAAM,aAAa,GAAG,GAAG,CAAC,GAAG,IAAI,8BAA8B,CAAC;gBAChE,aAAa,CAAC,aAAa,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAC3C,SAAS,CAAC,aAAa,CAAC,OAAO,GAAG,aAAa,CAAC;gBAChD,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;oBACf,iFAAiF;oBACjF,4FAA4F;oBAC5F,0CAA0C;oBAC1C,SAAS,CAAC,aAAa,CAAC,KAAK,GAAG,IAAA,4CAAyB,EAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,cAAc,IAAI,IAAI,CAAC,CAAC;gBACpG,CAAC;gBACD,MAAM;YACR,CAAC;YAED,KAAK,UAAU;gBACb,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACrC,SAAS,CAAC,aAAa,CAAC,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC;gBAC1C,MAAM;YAER,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,wEAAwE;gBACxE,sEAAsE;gBACtE,+DAA+D;gBAC/D,SAAS,CAAC,MAAM,GAAG,YAAY,CAAC;gBAChC,MAAM,SAAS,GAAG,GAAG,CAAC,GAAG,IAAI,2BAA2B,CAAC;gBACzD,aAAa,CAAC,SAAS,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACvC,SAAS,CAAC,aAAa,CAAC,OAAO,GAAG,SAAS,CAAC;gBAC5C,MAAM;YACR,CAAC;YAED,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,0FAA0F;gBAC1F,uFAAuF;gBACvF,kFAAkF;gBAClF,iFAAiF;gBACjF,IAAI,GAAG,CAAC,uBAAuB,EAAE,CAAC;oBAChC,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,uBAAuB,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;oBAC7F,MAAM,SAAS,GAAG,mBAAmB,CAAC,eAAe,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;oBAC/E,OAAO,CAAC,GAAG,CAAC,8BAA8B,GAAG,SAAS,CAAC;gBACzD,CAAC;gBACD,OAAO,IAAI,8BAAY,CAAC;oBACtB,KAAK,EAAE,GAAG,CAAC,KAAK;oBAChB,WAAW;oBACX,QAAQ,EAAE,GAAG,CAAC,MAAM;oBACpB,+DAA+D;oBAC/D,mEAAmE;oBACnE,wDAAwD;oBACxD,GAAG,IAAA,mCAAoB,EAAC,GAAG,CAAC,MAAM,CAAC;oBACnC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAChD,CAAC,CAAC;YACL,CAAC;YAED,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,MAAM,eAAe,GAAQ;oBAC3B,iBAAiB,EAAE,GAAG,CAAC,MAAM;oBAC7B,0BAA0B,EAAE,GAAG,CAAC,QAAQ;oBACxC,4BAA4B,EAAE,GAAG,CAAC,KAAK;oBACvC,qBAAqB,EAAE,GAAG,CAAC,UAAU;oBACrC,sEAAsE;oBACtE,uEAAuE;oBACvE,sEAAsE;oBACtE,uEAAuE;oBACvE,oEAAoE;oBACpE,2DAA2D;oBAC3D,KAAK,EAAE,GAAG,CAAC,KAAK;oBAChB,WAAW;oBACX,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC5C,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC1D,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACxE,oEAAoE;oBACpE,wDAAwD;oBACxD,aAAa,EAAE,EAAE,KAAK,EAAE,IAAA,+CAAqB,EAAC,QAAQ,CAAC,EAAE;iBAC1D,CAAC;gBACF,OAAO,IAAI,wBAAe,CAAC,eAAe,CAAC,CAAC;YAC9C,CAAC;YAED;gBACE,oEAAoE;gBACpE,qEAAqE;gBACrE,wEAAwE;gBACxE,kEAAkE;gBAClE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;oBACb,MAAM,IAAI,KAAK,CACb,6BAA6B,GAAG,CAAC,QAAQ,8FAA8F,CACxI,CAAC;gBACJ,CAAC;gBACD,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACrC,SAAS,CAAC,aAAa,CAAC,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC;gBAC1C,MAAM;QACV,CAAC;QAED,OAAO,IAAI,mBAAU,CAAC;YACpB,GAAG,SAAS;YACZ,aAAa,EAAE;gBACb,GAAG,SAAS,CAAC,aAAa;gBAC1B,mEAAmE;gBACnE,sCAAsC;gBACtC,KAAK,EAAE,IAAA,+CAAqB,EAAC,QAAQ,EAAE,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC;aACtE;YACD,uEAAuE;YACvE,6EAA6E;YAC7E,UAAU,EAAE,CAAC;YACb,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1D,4EAA4E;YAC5E,yEAAyE;YACzE,0EAA0E;YAC1E,+EAA+E;YAC/E,GAAG,CAAC,OAAO,gBAAgB,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACtE,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;OAUG;IACH,WAAW;QACT,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACvB,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC;YAC9C,MAAM,IAAI,GAAG,GAAa,EAAE,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACpD,OAAO;gBACL,cAAc,EAAE,KAAK,EAAE,KAAe,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;gBAC1D,UAAU,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI,EAAE;aAC/B,CAAC;QACJ,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC;QACnD,IAAI,SAAS,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAC5C,IAAI,IAAI,CAAC,cAAc;gBAAE,OAAO,IAAI,CAAC,cAAc,CAAC;YACpD,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,EAAgB,CAAC;YACtD,IAAI,CAAC,cAAc,GAAG,IAAI,2CAAmB,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAC1F,OAAO,IAAI,CAAC,cAAc,CAAC;QAC7B,CAAC;QAED,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAC;IACnC,CAAC;IAEO,kBAAkB;QACxB,IAAI,QAA6B,CAAC;QAElC,QAAQ,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACxC,KAAK,OAAO;gBACV,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;YACrD,KAAK,YAAY;gBACf,QAAQ,GAAG,IAAI,yBAAgB,CAAC;oBAC9B,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM;oBAC3C,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK;oBACnC,aAAa,EAAE;wBACb,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG;qBACpC;iBACF,CAAC,CAAC;gBACH,MAAM;YACR,KAAK,UAAU;gBACb,QAAQ,GAAG,IAAI,yBAAgB,CAAC;oBAC9B,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM;oBAC3C,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK;oBACnC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU;oBAC7C,aAAa,EAAE;wBACb,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG;qBACpC;iBACF,CAAC,CAAC;gBACH,MAAM;YACR,KAAK,QAAQ;gBACX,QAAQ,GAAG,IAAI,yBAAgB,CAAC;oBAC9B,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM;oBAC3C,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK;iBACpC,CAAC,CAAC;gBACH,MAAM;YACR,KAAK,OAAO;gBACV,QAAQ,GAAG,IAAI,8BAAqB,CAAC;oBACnC,iBAAiB,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM;oBAChD,0BAA0B,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ;oBAC3D,4BAA4B,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK;oBAC1D,qBAAqB,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU;oBACxD,SAAS,EAAE,GAAG;iBACf,CAAC,CAAC;gBACH,MAAM;YACR,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,oEAAoE;gBACpE,iFAAiF;gBACjF,kFAAkF;gBAClF,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBAE9C,IAAI,cAAc,CAAC,uBAAuB,EAAE,CAAC;oBAC3C,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,uBAAuB,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;oBACxG,MAAM,SAAS,GAAG,mBAAmB,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;oBACnE,OAAO,CAAC,GAAG,CAAC,8BAA8B,GAAG,SAAS,CAAC;gBACzD,CAAC;gBAED,QAAQ,GAAG,IAAI,oCAAkB,CAAC;oBAChC,KAAK,EAAE,cAAc,CAAC,KAAK;oBAC3B,QAAQ,EAAE,cAAc,CAAC,MAAM;oBAC/B,yEAAyE;oBACzE,GAAG,IAAA,mCAAoB,EAAC,cAAc,CAAC,MAAM,CAAC;oBAC9C,UAAU,EAAE,cAAc,CAAC,UAAU;iBACtC,CAAC,CAAC;gBACH,MAAM;YACR,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,qBAAqB;QACnB,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC;IAC3C,CAAC;IAED;;;;;OAKG;IACH,cAAc;QACZ,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;QAC9C,QAAQ,WAAW,CAAC,QAAQ,EAAE,CAAC;YAC7B,KAAK,QAAQ;gBACX,OAAO,IAAI,gBAAM,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;YACpD,KAAK,OAAO;gBACV,OAAO,IAAI,oBAAW,CAAC;oBACrB,MAAM,EAAE,WAAW,CAAC,MAAM;oBAC1B,UAAU,EAAE,WAAW,CAAC,UAAU;oBAClC,QAAQ,EAAE,WAAW,CAAC,GAAG;oBACzB,UAAU,EAAE,WAAW,CAAC,KAAK;iBAC9B,CAAC,CAAC;YACL;gBACE,MAAM,IAAI,KAAK,CAAC,qCAAqC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;QACjF,CAAC;IACH,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,MAA+D;QACnF,OAAO,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC;YAC7D,IAAI,EAAE,EAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC;YAC1C,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK;YACtC,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,eAAe,EAAE,MAAM;SACxB,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AA1kBY,oCAAY;uBAAZ,YAAY;IADxB,IAAA,mBAAU,GAAE;IAgCR,WAAA,IAAA,iBAAQ,GAAE,CAAA;IACV,WAAA,IAAA,iBAAQ,GAAE,CAAA;qCAPkB,uBAAU;QACP,sBAAa;QAKP,0DAA0B;QAC1B,mCAAiB;GAhC9C,YAAY,CA0kBxB"}
|
|
1
|
+
{"version":3,"file":"model.service.js","sourceRoot":"","sources":["../../../../src/core/llm/services/model.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -38,7 +38,22 @@ export declare class VisionLLMService {
|
|
|
38
38
|
*/
|
|
39
39
|
private withTimeout;
|
|
40
40
|
/**
|
|
41
|
-
*
|
|
41
|
+
* Puts the vision candidate that just rate-limited into its cooldown window,
|
|
42
|
+
* so the next resolution reaches for the next link of the chain instead.
|
|
43
|
+
*
|
|
44
|
+
* Best-effort in every direction — no candidate-aware `ModelService`, an empty
|
|
45
|
+
* chain, or a throwing registry all leave the retry exactly as it was.
|
|
46
|
+
* Failover bookkeeping must never turn a retryable 429 into a hard failure.
|
|
47
|
+
*/
|
|
48
|
+
private markCandidateFailure;
|
|
49
|
+
/**
|
|
50
|
+
* Execute a function with exponential backoff retry on rate limit errors.
|
|
51
|
+
*
|
|
52
|
+
* `fn` receives the ATTEMPT INDEX so it can rebuild its model against the
|
|
53
|
+
* n-th connection of the vision chain — that is what makes a 429 move to a
|
|
54
|
+
* different provider rather than knocking on the same closed door. With no
|
|
55
|
+
* DB-backed connections every index resolves the same `.env` connection, i.e.
|
|
56
|
+
* today's behaviour.
|
|
42
57
|
*/
|
|
43
58
|
private withRetry;
|
|
44
59
|
/**
|
|
@@ -72,6 +87,15 @@ export declare class VisionLLMService {
|
|
|
72
87
|
* @returns Promise with parsed response and raw content
|
|
73
88
|
*/
|
|
74
89
|
private callWithoutStructuredOutput;
|
|
90
|
+
/**
|
|
91
|
+
* Builds the structured-output vision model for ONE attempt, from the
|
|
92
|
+
* `candidateIndex`-th link of the vision fallback chain.
|
|
93
|
+
*
|
|
94
|
+
* Extracted from {@link call} so each retry can rebuild against a different
|
|
95
|
+
* connection; the provider-shaped schema handling (Gemini sanitization,
|
|
96
|
+
* pre-converted JSON Schema for Azure/GPT-5, raw Zod elsewhere) is unchanged.
|
|
97
|
+
*/
|
|
98
|
+
private buildStructuredVisionModel;
|
|
75
99
|
/**
|
|
76
100
|
* Calls the LLM with an image for vision analysis using structured output.
|
|
77
101
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vision.llm.service.d.ts","sourceRoot":"","sources":["../../../../src/core/llm/services/vision.llm.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AAC9B,OAAO,EAAE,mBAAmB,EAAqB,MAAM,4BAA4B,CAAC;AACpF,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"vision.llm.service.d.ts","sourceRoot":"","sources":["../../../../src/core/llm/services/vision.llm.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AAC9B,OAAO,EAAE,mBAAmB,EAAqB,MAAM,4BAA4B,CAAC;AACpF,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAgBhE;;;GAGG;AACH,qBAAa,sBAAuB,SAAQ,KAAK;gBACnC,OAAO,EAAE,MAAM;CAI5B;AAED;;GAEG;AACH,UAAU,gBAAgB,CAAC,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,qBACa,gBAAgB;IAMzB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM;IANzB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAK;IACjC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAQ;IACzC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAU;gBAGvB,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,aAAa,CAAC,mBAAmB,CAAC;IAG7D;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAaxB;;OAEG;IACH,OAAO,CAAC,KAAK;IAIb;;OAEG;IACH,OAAO,CAAC,WAAW;IAOnB;;;;;;;OAOG;IACH,OAAO,CAAC,oBAAoB;IAa5B;;;;;;;;OAQG;YACW,SAAS;IA6BvB;;;OAGG;YACW,kBAAkB;IAahC;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAM3B;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAK1B;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAMzB;;;;;;;;OAQG;YACW,2BAA2B;IAmDzC;;;;;;;OAOG;IACH,OAAO,CAAC,0BAA0B;IAyBlC;;;;;;;;;;;;;;;;;;;OAmBG;IACG,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG;QAAE,UAAU,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;CAkG3G"}
|