@mate-academy/llm-gateway 6.0.0 → 6.2.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.
Files changed (103) hide show
  1. package/dist/LLMError.d.ts +12 -0
  2. package/dist/LLMError.js +36 -0
  3. package/dist/LLMError.js.map +1 -0
  4. package/dist/LLMService.constants.d.ts +792 -2
  5. package/dist/LLMService.constants.js +5 -1
  6. package/dist/LLMService.constants.js.map +1 -1
  7. package/dist/LLMService.typedefs.d.ts +24 -2
  8. package/dist/LLMService.typedefs.js +1 -0
  9. package/dist/LLMService.typedefs.js.map +1 -1
  10. package/dist/index.d.ts +1 -0
  11. package/dist/index.js +1 -0
  12. package/dist/index.js.map +1 -1
  13. package/dist/providers/GoogleGenerativeAI/GoogleGenerativeAI.constants.d.ts +72 -0
  14. package/dist/providers/GoogleGenerativeAI/GoogleGenerativeAI.constants.js +6 -0
  15. package/dist/providers/GoogleGenerativeAI/GoogleGenerativeAI.constants.js.map +1 -1
  16. package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAIAssistance.service.d.ts +8 -7
  17. package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAIAssistance.service.js +217 -31
  18. package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAIAssistance.service.js.map +1 -1
  19. package/dist/providers/LLMAPI/LLMAPI.constants.d.ts +884 -0
  20. package/dist/providers/LLMAPI/LLMAPI.constants.js +282 -0
  21. package/dist/providers/LLMAPI/LLMAPI.constants.js.map +1 -0
  22. package/dist/providers/LLMAPI/LLMAPI.entity.d.ts +6 -0
  23. package/dist/providers/LLMAPI/LLMAPI.entity.js +49 -0
  24. package/dist/providers/LLMAPI/LLMAPI.entity.js.map +1 -0
  25. package/dist/providers/LLMAPI/LLMAPI.typedefs.d.ts +48 -0
  26. package/dist/providers/LLMAPI/LLMAPI.typedefs.js +46 -0
  27. package/dist/providers/LLMAPI/LLMAPI.typedefs.js.map +1 -0
  28. package/dist/providers/LLMAPI/LLMAPIService.factory.d.ts +6 -0
  29. package/dist/providers/LLMAPI/LLMAPIService.factory.js +19 -0
  30. package/dist/providers/LLMAPI/LLMAPIService.factory.js.map +1 -0
  31. package/dist/providers/LLMAPI/index.d.ts +6 -0
  32. package/dist/providers/LLMAPI/index.js +23 -0
  33. package/dist/providers/LLMAPI/index.js.map +1 -0
  34. package/dist/providers/LLMAPI/schemas/LLMAPISchemaAdapter.d.ts +3 -0
  35. package/dist/providers/LLMAPI/schemas/LLMAPISchemaAdapter.js +8 -0
  36. package/dist/providers/LLMAPI/schemas/LLMAPISchemaAdapter.js.map +1 -0
  37. package/dist/providers/LLMAPI/services/LLMAPIAssistance.service.d.ts +34 -0
  38. package/dist/providers/LLMAPI/services/LLMAPIAssistance.service.js +497 -0
  39. package/dist/providers/LLMAPI/services/LLMAPIAssistance.service.js.map +1 -0
  40. package/dist/providers/LLMAPI/services/LLMAPICompletion.service.d.ts +18 -0
  41. package/dist/providers/LLMAPI/services/LLMAPICompletion.service.js +138 -0
  42. package/dist/providers/LLMAPI/services/LLMAPICompletion.service.js.map +1 -0
  43. package/dist/providers/LLMAPI/services/index.d.ts +2 -0
  44. package/dist/providers/LLMAPI/services/index.js +19 -0
  45. package/dist/providers/LLMAPI/services/index.js.map +1 -0
  46. package/dist/providers/LLMAPI/utilities/LLMAPIJsonFixer.d.ts +22 -0
  47. package/dist/providers/LLMAPI/utilities/LLMAPIJsonFixer.js +228 -0
  48. package/dist/providers/LLMAPI/utilities/LLMAPIJsonFixer.js.map +1 -0
  49. package/dist/providers/LLMAPI/utilities/index.d.ts +1 -0
  50. package/dist/providers/LLMAPI/utilities/index.js +7 -0
  51. package/dist/providers/LLMAPI/utilities/index.js.map +1 -0
  52. package/dist/providers/OpenAI/OpenAI.constants.d.ts +165 -0
  53. package/dist/providers/OpenAI/OpenAI.constants.js +11 -0
  54. package/dist/providers/OpenAI/OpenAI.constants.js.map +1 -1
  55. package/dist/providers/OpenAI/OpenAI.typedefs.d.ts +6 -0
  56. package/dist/providers/OpenAI/OpenAI.typedefs.js +9 -1
  57. package/dist/providers/OpenAI/OpenAI.typedefs.js.map +1 -1
  58. package/dist/providers/OpenAI/services/OpenAIAssistance.service.d.ts +9 -7
  59. package/dist/providers/OpenAI/services/OpenAIAssistance.service.js +209 -40
  60. package/dist/providers/OpenAI/services/OpenAIAssistance.service.js.map +1 -1
  61. package/dist/providers/OpenAI/services/OpenAICompletion.service.d.ts +3 -13
  62. package/dist/providers/OpenAI/services/OpenAICompletion.service.js +2 -181
  63. package/dist/providers/OpenAI/services/OpenAICompletion.service.js.map +1 -1
  64. package/dist/providers/OpenAICompatible/OpenAICompatibleCompletion.service.d.ts +21 -0
  65. package/dist/providers/OpenAICompatible/OpenAICompatibleCompletion.service.js +204 -0
  66. package/dist/providers/OpenAICompatible/OpenAICompatibleCompletion.service.js.map +1 -0
  67. package/dist/providers/index.d.ts +1 -0
  68. package/dist/providers/index.js +1 -0
  69. package/dist/providers/index.js.map +1 -1
  70. package/dist/services/LLMAssistanceService.abstract.d.ts +8 -6
  71. package/dist/services/LLMAssistanceService.abstract.js +20 -0
  72. package/dist/services/LLMAssistanceService.abstract.js.map +1 -1
  73. package/dist/services/chatState/CompletionsChatState.d.ts +19 -0
  74. package/dist/services/chatState/CompletionsChatState.js +80 -0
  75. package/dist/services/chatState/CompletionsChatState.js.map +1 -0
  76. package/dist/services/chatState/index.d.ts +1 -0
  77. package/dist/services/chatState/index.js +6 -0
  78. package/dist/services/chatState/index.js.map +1 -0
  79. package/dist/services/fileStorage/FileStorageToolExecutor.d.ts +15 -0
  80. package/dist/services/fileStorage/FileStorageToolExecutor.js +172 -0
  81. package/dist/services/fileStorage/FileStorageToolExecutor.js.map +1 -0
  82. package/dist/services/fileStorage/InMemoryFileStorage.d.ts +20 -0
  83. package/dist/services/fileStorage/InMemoryFileStorage.js +67 -0
  84. package/dist/services/fileStorage/InMemoryFileStorage.js.map +1 -0
  85. package/dist/services/fileStorage/fileStorageTools.d.ts +26 -0
  86. package/dist/services/fileStorage/fileStorageTools.js +67 -0
  87. package/dist/services/fileStorage/fileStorageTools.js.map +1 -0
  88. package/dist/services/fileStorage/index.d.ts +4 -0
  89. package/dist/services/fileStorage/index.js +11 -0
  90. package/dist/services/fileStorage/index.js.map +1 -0
  91. package/dist/utilities/index.d.ts +1 -0
  92. package/dist/utilities/index.js +1 -0
  93. package/dist/utilities/index.js.map +1 -1
  94. package/dist/utilities/schema/SchemaAdapterRegistry.d.ts +2 -0
  95. package/dist/utilities/schema/SchemaAdapterRegistry.js +2 -0
  96. package/dist/utilities/schema/SchemaAdapterRegistry.js.map +1 -1
  97. package/dist/utilities/tools/LLMTool.d.ts +10 -0
  98. package/dist/utilities/tools/LLMTool.js +10 -0
  99. package/dist/utilities/tools/LLMTool.js.map +1 -0
  100. package/dist/utilities/tools/index.d.ts +1 -0
  101. package/dist/utilities/tools/index.js +6 -0
  102. package/dist/utilities/tools/index.js.map +1 -0
  103. package/package.json +1 -1
@@ -9,6 +9,7 @@ const services_1 = require("../../../services");
9
9
  const GoogleGenerativeAI_typedefs_1 = require("../../../providers/GoogleGenerativeAI/GoogleGenerativeAI.typedefs");
10
10
  const GoogleGenerativeAI_entity_1 = require("../../../providers/GoogleGenerativeAI/GoogleGenerativeAI.entity");
11
11
  const GoogleGenerativeAI_constants_1 = require("../../../providers/GoogleGenerativeAI/GoogleGenerativeAI.constants");
12
+ const LLMService_constants_1 = require("../../../LLMService.constants");
12
13
  class GoogleGenerativeAIAssistanceService extends services_1.LLMAssistanceService {
13
14
  cachedContent = new Map();
14
15
  chatSessions = new Map();
@@ -254,12 +255,6 @@ class GoogleGenerativeAIAssistanceService extends services_1.LLMAssistanceServic
254
255
  this.chatInstructions.delete(chatId);
255
256
  return Promise.resolve();
256
257
  }
257
- async assistInChat(options) {
258
- if (options.schema) {
259
- return this.assistInChatStructured(options);
260
- }
261
- return this.assistInChatText(options);
262
- }
263
258
  getStorageFileParts(storageId) {
264
259
  if (!storageId) {
265
260
  return [];
@@ -285,30 +280,72 @@ class GoogleGenerativeAIAssistanceService extends services_1.LLMAssistanceServic
285
280
  throw new Error('No message parts available');
286
281
  }
287
282
  const storageFileParts = this.getStorageFileParts(storageId);
283
+ if (options.tools?.length) {
284
+ this.validateToolDefinitions(options.tools);
285
+ }
286
+ const googleTools = options.tools?.length
287
+ ? this.convertCustomToolsToGoogle(options.tools)
288
+ : undefined;
289
+ const sendMessageConfig = {
290
+ systemInstruction: this.chatInstructions.get(chatId),
291
+ abortSignal,
292
+ ...(googleTools && { tools: googleTools }),
293
+ };
288
294
  const chatResponse = await chatSession.sendMessage({
289
- message: [...storageFileParts, ...messageContent.parts],
290
- config: {
291
- systemInstruction: this.chatInstructions.get(chatId),
292
- abortSignal,
293
- },
295
+ message: [
296
+ ...storageFileParts,
297
+ ...messageContent.parts,
298
+ ],
299
+ config: sendMessageConfig,
294
300
  });
295
301
  abortSignal?.throwIfAborted();
296
- const promptTokens = chatResponse.usageMetadata?.promptTokenCount ?? 0;
297
- const cachedTokens = chatResponse.usageMetadata?.cachedContentTokenCount ?? 0;
302
+ let responseText;
303
+ let promptTokens;
304
+ let cachedTokens;
305
+ let candidatesTokens;
306
+ if (options.tools?.length) {
307
+ const toolLoopResult = await this.executeGoogleToolLoop({
308
+ chatSession,
309
+ response: chatResponse,
310
+ tools: options.tools,
311
+ maxIterations: options.maxToolIterations
312
+ ?? LLMService_constants_1.DEFAULT_MAX_TOOL_ITERATIONS,
313
+ abortSignal,
314
+ config: sendMessageConfig,
315
+ });
316
+ responseText =
317
+ toolLoopResult.response.text ?? '';
318
+ promptTokens =
319
+ toolLoopResult.totalUsage.promptTokens;
320
+ cachedTokens =
321
+ toolLoopResult.totalUsage.cachedTokens;
322
+ candidatesTokens =
323
+ toolLoopResult.totalUsage
324
+ .candidatesTokens;
325
+ }
326
+ else {
327
+ responseText = chatResponse.text ?? '';
328
+ promptTokens = chatResponse.usageMetadata
329
+ ?.promptTokenCount ?? 0;
330
+ cachedTokens = chatResponse.usageMetadata
331
+ ?.cachedContentTokenCount ?? 0;
332
+ candidatesTokens =
333
+ chatResponse.usageMetadata
334
+ ?.candidatesTokenCount ?? 0;
335
+ }
298
336
  const regularInputTokens = promptTokens - cachedTokens;
299
- const outputTokens = chatResponse.usageMetadata?.candidatesTokenCount ?? 0;
300
337
  await this.writeSuccessMetrics({
301
338
  method: this.getMethodName(this.assistInChatText),
302
339
  model,
303
340
  usage: {
304
341
  inputTextTokens: regularInputTokens,
305
342
  inputCachedTextTokens: cachedTokens,
306
- outputTextTokens: outputTokens,
343
+ outputTextTokens: candidatesTokens,
307
344
  },
308
345
  writeMetrics,
309
346
  });
310
347
  return {
311
- text: chatResponse.text ?? '',
348
+ text: responseText,
312
349
  };
313
350
  }
314
351
  catch (error) {
@@ -343,39 +380,108 @@ class GoogleGenerativeAIAssistanceService extends services_1.LLMAssistanceServic
343
380
  }
344
381
  const storageFileParts = this.getStorageFileParts(storageId);
345
382
  const googleSchema = schema._toProviderSchema(LLMService_typedefs_1.LLMProviders.GoogleGenerativeAI);
383
+ if (options.tools?.length) {
384
+ this.validateToolDefinitions(options.tools);
385
+ }
386
+ const googleTools = options.tools?.length
387
+ ? this.convertCustomToolsToGoogle(options.tools)
388
+ : undefined;
389
+ const sendMessageConfig = {
390
+ systemInstruction: this.chatInstructions.get(chatId),
391
+ ...(!googleTools && {
392
+ responseMimeType: 'application/json',
393
+ }),
394
+ responseSchema: googleSchema,
395
+ abortSignal,
396
+ ...(googleTools && {
397
+ tools: googleTools,
398
+ }),
399
+ };
346
400
  const chatResponse = await chatSession.sendMessage({
347
- message: [...storageFileParts, ...messageContent.parts],
348
- config: {
401
+ message: [
402
+ ...storageFileParts,
403
+ ...messageContent.parts,
404
+ ],
405
+ config: sendMessageConfig,
406
+ });
407
+ abortSignal?.throwIfAborted();
408
+ let finalResponseText;
409
+ let promptTokens;
410
+ let cachedTokens;
411
+ let candidatesTokens;
412
+ if (options.tools?.length) {
413
+ const toolLoopResult = await this.executeGoogleToolLoop({
414
+ chatSession,
415
+ response: chatResponse,
416
+ tools: options.tools,
417
+ maxIterations: options.maxToolIterations
418
+ ?? LLMService_constants_1.DEFAULT_MAX_TOOL_ITERATIONS,
419
+ abortSignal,
420
+ config: sendMessageConfig,
421
+ });
422
+ const structuredConfig = {
349
423
  systemInstruction: this.chatInstructions.get(chatId),
350
424
  responseMimeType: 'application/json',
351
425
  responseSchema: googleSchema,
352
426
  abortSignal,
353
- },
354
- });
355
- abortSignal?.throwIfAborted();
356
- const content = chatResponse.text ?? '';
357
- if (!content) {
358
- throw new Error('Empty response from Google Generative AI Assistant');
427
+ };
428
+ const structuredResponse = await chatSession.sendMessage({
429
+ message: [
430
+ {
431
+ text: 'Now respond with the structured'
432
+ + ' JSON output based on the'
433
+ + ' information gathered.',
434
+ },
435
+ ],
436
+ config: structuredConfig,
437
+ });
438
+ finalResponseText =
439
+ structuredResponse.text ?? '';
440
+ promptTokens =
441
+ toolLoopResult.totalUsage.promptTokens
442
+ + (structuredResponse.usageMetadata
443
+ ?.promptTokenCount ?? 0);
444
+ cachedTokens =
445
+ toolLoopResult.totalUsage.cachedTokens
446
+ + (structuredResponse.usageMetadata
447
+ ?.cachedContentTokenCount ?? 0);
448
+ candidatesTokens =
449
+ toolLoopResult.totalUsage
450
+ .candidatesTokens
451
+ + (structuredResponse.usageMetadata
452
+ ?.candidatesTokenCount ?? 0);
453
+ }
454
+ else {
455
+ finalResponseText =
456
+ chatResponse.text ?? '';
457
+ promptTokens = chatResponse.usageMetadata
458
+ ?.promptTokenCount ?? 0;
459
+ cachedTokens = chatResponse.usageMetadata
460
+ ?.cachedContentTokenCount ?? 0;
461
+ candidatesTokens =
462
+ chatResponse.usageMetadata
463
+ ?.candidatesTokenCount ?? 0;
464
+ }
465
+ if (!finalResponseText) {
466
+ throw new Error('Empty response from Google'
467
+ + ' Generative AI Assistant');
359
468
  }
360
469
  try {
361
- const parsed = JSON.parse(content);
470
+ const parsed = JSON.parse(finalResponseText);
362
471
  const validation = schema._parse(parsed);
363
- const promptTokens = chatResponse.usageMetadata?.promptTokenCount ?? 0;
364
- const cachedTokens = chatResponse.usageMetadata?.cachedContentTokenCount ?? 0;
365
472
  const regularInputTokens = promptTokens - cachedTokens;
366
- const outputTokens = chatResponse.usageMetadata?.candidatesTokenCount ?? 0;
367
473
  await this.writeSuccessMetrics({
368
474
  method: this.getMethodName(this.assistInChatStructured),
369
475
  model,
370
476
  usage: {
371
477
  inputTextTokens: regularInputTokens,
372
478
  inputCachedTextTokens: cachedTokens,
373
- outputTextTokens: outputTokens,
479
+ outputTextTokens: candidatesTokens,
374
480
  },
375
481
  writeMetrics,
376
482
  });
377
483
  return {
378
- text: content,
484
+ text: finalResponseText,
379
485
  data: validation.data,
380
486
  parseError: validation.error,
381
487
  };
@@ -384,7 +490,7 @@ class GoogleGenerativeAIAssistanceService extends services_1.LLMAssistanceServic
384
490
  this.logger
385
491
  ?.child(this.getMethodName(this.assistInChatStructured))
386
492
  .warn('Failed to parse JSON response', {
387
- content,
493
+ content: finalResponseText,
388
494
  parseError: parseError.message,
389
495
  });
390
496
  throw parseError;
@@ -410,6 +516,86 @@ class GoogleGenerativeAIAssistanceService extends services_1.LLMAssistanceServic
410
516
  };
411
517
  }
412
518
  }
519
+ convertCustomToolsToGoogle(tools) {
520
+ const functionDeclarations = tools.map((tool) => ({
521
+ name: tool.name,
522
+ description: tool.description,
523
+ parameters: tool.parameters._toProviderSchema(LLMService_typedefs_1.LLMProviders.GoogleGenerativeAI),
524
+ }));
525
+ return [{ functionDeclarations }];
526
+ }
527
+ async executeGoogleToolLoop(params) {
528
+ const { chatSession, tools, maxIterations, abortSignal, config, } = params;
529
+ let currentResponse = params.response;
530
+ const totalUsage = {
531
+ promptTokens: currentResponse.usageMetadata
532
+ ?.promptTokenCount ?? 0,
533
+ cachedTokens: currentResponse.usageMetadata
534
+ ?.cachedContentTokenCount ?? 0,
535
+ candidatesTokens: currentResponse.usageMetadata
536
+ ?.candidatesTokenCount ?? 0,
537
+ };
538
+ for (let iteration = 0; iteration < maxIterations; iteration++) {
539
+ const functionCallParts = (currentResponse.candidates?.[0]
540
+ ?.content?.parts ?? []).filter((part) => part.functionCall?.name);
541
+ if (functionCallParts.length === 0) {
542
+ break;
543
+ }
544
+ abortSignal?.throwIfAborted();
545
+ const calls = functionCallParts.map((part) => ({
546
+ name: part.functionCall?.name ?? '',
547
+ args: (part.functionCall?.args ?? {}),
548
+ }));
549
+ const functionResponseParts = await this.executeGoogleFunctionCalls(calls, tools);
550
+ abortSignal?.throwIfAborted();
551
+ currentResponse =
552
+ await chatSession.sendMessage({
553
+ message: functionResponseParts,
554
+ config,
555
+ });
556
+ totalUsage.promptTokens +=
557
+ currentResponse.usageMetadata
558
+ ?.promptTokenCount ?? 0;
559
+ totalUsage.cachedTokens +=
560
+ currentResponse.usageMetadata
561
+ ?.cachedContentTokenCount ?? 0;
562
+ totalUsage.candidatesTokens +=
563
+ currentResponse.usageMetadata
564
+ ?.candidatesTokenCount ?? 0;
565
+ }
566
+ return {
567
+ response: currentResponse,
568
+ totalUsage,
569
+ };
570
+ }
571
+ async executeGoogleFunctionCalls(calls, tools) {
572
+ const results = await Promise.all(calls.map(async (call) => {
573
+ const matchingTool = tools.find((tool) => tool.name === call.name);
574
+ let result;
575
+ if (!matchingTool) {
576
+ result =
577
+ `Error: Unknown tool "${call.name}"`;
578
+ }
579
+ else {
580
+ try {
581
+ result =
582
+ await matchingTool.execute(call.args);
583
+ }
584
+ catch (executionError) {
585
+ result =
586
+ `Error: ${executionError.message}`;
587
+ }
588
+ }
589
+ const responsePart = {
590
+ functionResponse: {
591
+ name: call.name,
592
+ response: { result },
593
+ },
594
+ };
595
+ return responsePart;
596
+ }));
597
+ return results;
598
+ }
413
599
  async countTokens(messages, model) {
414
600
  const countTokensFn = GoogleGenerativeAI_entity_1.GoogleGenerativeAIEntity
415
601
  .getCountTokensFn(this.instance);
@@ -1 +1 @@
1
- {"version":3,"file":"GoogleGenerativeAIAssistance.service.js","sourceRoot":"","sources":["../../../../src/providers/GoogleGenerativeAI/services/GoogleGenerativeAIAssistance.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GoogleGenerativeAIAssistance.service.js","sourceRoot":"","sources":["../../../../src/providers/GoogleGenerativeAI/services/GoogleGenerativeAIAssistance.service.ts"],"names":[],"mappings":"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"}