@mate-academy/llm-gateway 0.0.1-canary.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.
Files changed (109) hide show
  1. package/.lintstagedrc +5 -0
  2. package/.nvmrc +1 -0
  3. package/dist/LLMService.constants.d.ts +8 -0
  4. package/dist/LLMService.constants.js +16 -0
  5. package/dist/LLMService.constants.js.map +1 -0
  6. package/dist/LLMService.entity.d.ts +13 -0
  7. package/dist/LLMService.entity.js +38 -0
  8. package/dist/LLMService.entity.js.map +1 -0
  9. package/dist/LLMService.factory.d.ts +8 -0
  10. package/dist/LLMService.factory.js +28 -0
  11. package/dist/LLMService.factory.js.map +1 -0
  12. package/dist/LLMService.typedefs.d.ts +126 -0
  13. package/dist/LLMService.typedefs.js +24 -0
  14. package/dist/LLMService.typedefs.js.map +1 -0
  15. package/dist/functional.utils.d.ts +1 -0
  16. package/dist/functional.utils.js +9 -0
  17. package/dist/functional.utils.js.map +1 -0
  18. package/dist/index.d.ts +6 -0
  19. package/dist/index.js +23 -0
  20. package/dist/index.js.map +1 -0
  21. package/dist/providers/GoogleGenerativeAI/GoogleGenerativeAI.constants.d.ts +6 -0
  22. package/dist/providers/GoogleGenerativeAI/GoogleGenerativeAI.constants.js +98 -0
  23. package/dist/providers/GoogleGenerativeAI/GoogleGenerativeAI.constants.js.map +1 -0
  24. package/dist/providers/GoogleGenerativeAI/GoogleGenerativeAI.entity.d.ts +8 -0
  25. package/dist/providers/GoogleGenerativeAI/GoogleGenerativeAI.entity.js +42 -0
  26. package/dist/providers/GoogleGenerativeAI/GoogleGenerativeAI.entity.js.map +1 -0
  27. package/dist/providers/GoogleGenerativeAI/GoogleGenerativeAI.typedefs.d.ts +13 -0
  28. package/dist/providers/GoogleGenerativeAI/GoogleGenerativeAI.typedefs.js +19 -0
  29. package/dist/providers/GoogleGenerativeAI/GoogleGenerativeAI.typedefs.js.map +1 -0
  30. package/dist/providers/GoogleGenerativeAI/GoogleGenerativeAIService.factory.d.ts +6 -0
  31. package/dist/providers/GoogleGenerativeAI/GoogleGenerativeAIService.factory.js +17 -0
  32. package/dist/providers/GoogleGenerativeAI/GoogleGenerativeAIService.factory.js.map +1 -0
  33. package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAIAssistance.service.d.ts +21 -0
  34. package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAIAssistance.service.js +209 -0
  35. package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAIAssistance.service.js.map +1 -0
  36. package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAICompletion.service.d.ts +10 -0
  37. package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAICompletion.service.js +50 -0
  38. package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAICompletion.service.js.map +1 -0
  39. package/dist/providers/GoogleGenerativeAI/services/index.d.ts +2 -0
  40. package/dist/providers/GoogleGenerativeAI/services/index.js +19 -0
  41. package/dist/providers/GoogleGenerativeAI/services/index.js.map +1 -0
  42. package/dist/providers/OpenAI/OpenAI.constants.d.ts +5 -0
  43. package/dist/providers/OpenAI/OpenAI.constants.js +44 -0
  44. package/dist/providers/OpenAI/OpenAI.constants.js.map +1 -0
  45. package/dist/providers/OpenAI/OpenAI.entity.d.ts +3 -0
  46. package/dist/providers/OpenAI/OpenAI.entity.js +15 -0
  47. package/dist/providers/OpenAI/OpenAI.entity.js.map +1 -0
  48. package/dist/providers/OpenAI/OpenAI.typedefs.d.ts +8 -0
  49. package/dist/providers/OpenAI/OpenAI.typedefs.js +14 -0
  50. package/dist/providers/OpenAI/OpenAI.typedefs.js.map +1 -0
  51. package/dist/providers/OpenAI/OpenAIService.factory.d.ts +6 -0
  52. package/dist/providers/OpenAI/OpenAIService.factory.js +17 -0
  53. package/dist/providers/OpenAI/OpenAIService.factory.js.map +1 -0
  54. package/dist/providers/OpenAI/services/OpenAIAssistance.service.d.ts +19 -0
  55. package/dist/providers/OpenAI/services/OpenAIAssistance.service.js +200 -0
  56. package/dist/providers/OpenAI/services/OpenAIAssistance.service.js.map +1 -0
  57. package/dist/providers/OpenAI/services/OpenAICompletion.service.d.ts +10 -0
  58. package/dist/providers/OpenAI/services/OpenAICompletion.service.js +52 -0
  59. package/dist/providers/OpenAI/services/OpenAICompletion.service.js.map +1 -0
  60. package/dist/providers/OpenAI/services/index.d.ts +2 -0
  61. package/dist/providers/OpenAI/services/index.js +19 -0
  62. package/dist/providers/OpenAI/services/index.js.map +1 -0
  63. package/dist/providers/index.d.ts +2 -0
  64. package/dist/providers/index.js +19 -0
  65. package/dist/providers/index.js.map +1 -0
  66. package/dist/services/LLMAssistanceService.abstract.d.ts +15 -0
  67. package/dist/services/LLMAssistanceService.abstract.js +12 -0
  68. package/dist/services/LLMAssistanceService.abstract.js.map +1 -0
  69. package/dist/services/LLMBaseService.abstract.d.ts +13 -0
  70. package/dist/services/LLMBaseService.abstract.js +27 -0
  71. package/dist/services/LLMBaseService.abstract.js.map +1 -0
  72. package/dist/services/LLMCompletionService.abstract.d.ts +7 -0
  73. package/dist/services/LLMCompletionService.abstract.js +12 -0
  74. package/dist/services/LLMCompletionService.abstract.js.map +1 -0
  75. package/dist/services/LLMServicePurposeFactory.abstract.d.ts +5 -0
  76. package/dist/services/LLMServicePurposeFactory.abstract.js +7 -0
  77. package/dist/services/LLMServicePurposeFactory.abstract.js.map +1 -0
  78. package/dist/services/index.d.ts +4 -0
  79. package/dist/services/index.js +21 -0
  80. package/dist/services/index.js.map +1 -0
  81. package/eslint.config.mjs +39 -0
  82. package/package.json +35 -0
  83. package/src/LLMService.constants.ts +19 -0
  84. package/src/LLMService.entity.ts +71 -0
  85. package/src/LLMService.factory.ts +57 -0
  86. package/src/LLMService.typedefs.ts +174 -0
  87. package/src/functional.utils.ts +7 -0
  88. package/src/index.ts +6 -0
  89. package/src/providers/GoogleGenerativeAI/GoogleGenerativeAI.constants.ts +127 -0
  90. package/src/providers/GoogleGenerativeAI/GoogleGenerativeAI.entity.ts +67 -0
  91. package/src/providers/GoogleGenerativeAI/GoogleGenerativeAI.typedefs.ts +14 -0
  92. package/src/providers/GoogleGenerativeAI/GoogleGenerativeAIService.factory.ts +29 -0
  93. package/src/providers/GoogleGenerativeAI/services/GoogleGenerativeAIAssistance.service.ts +307 -0
  94. package/src/providers/GoogleGenerativeAI/services/GoogleGenerativeAICompletion.service.ts +79 -0
  95. package/src/providers/GoogleGenerativeAI/services/index.ts +2 -0
  96. package/src/providers/OpenAI/OpenAI.constants.ts +71 -0
  97. package/src/providers/OpenAI/OpenAI.entity.ts +17 -0
  98. package/src/providers/OpenAI/OpenAI.typedefs.ts +9 -0
  99. package/src/providers/OpenAI/OpenAIService.factory.ts +29 -0
  100. package/src/providers/OpenAI/services/OpenAIAssistance.service.ts +304 -0
  101. package/src/providers/OpenAI/services/OpenAICompletion.service.ts +74 -0
  102. package/src/providers/OpenAI/services/index.ts +2 -0
  103. package/src/providers/index.ts +2 -0
  104. package/src/services/LLMAssistanceService.abstract.ts +73 -0
  105. package/src/services/LLMBaseService.abstract.ts +34 -0
  106. package/src/services/LLMCompletionService.abstract.ts +32 -0
  107. package/src/services/LLMServicePurposeFactory.abstract.ts +15 -0
  108. package/src/services/index.ts +4 -0
  109. package/tsconfig.json +23 -0
package/.lintstagedrc ADDED
@@ -0,0 +1,5 @@
1
+ {
2
+ "*.{js,ts}": [
3
+ "npx --no-install eslint --fix"
4
+ ]
5
+ }
package/.nvmrc ADDED
@@ -0,0 +1 @@
1
+ v20
@@ -0,0 +1,8 @@
1
+ import { LLMProviderModelsByPurpose, LLMProviders, LLMPurposes } from './LLMService.typedefs';
2
+ import { LLMServicePurposeFactory } from './services/LLMServicePurposeFactory.abstract';
3
+ export declare const LLM_SERVICE_FACTORIES: {
4
+ [provider in LLMProviders]: LLMServicePurposeFactory<provider>;
5
+ };
6
+ export declare const LLM_SERVICE_MODELS: {
7
+ [provider in LLMProviders]: LLMProviderModelsByPurpose<LLMPurposes, provider>;
8
+ };
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LLM_SERVICE_MODELS = exports.LLM_SERVICE_FACTORIES = void 0;
4
+ const LLMService_typedefs_1 = require("./LLMService.typedefs");
5
+ const providers_1 = require("./providers");
6
+ const GoogleGenerativeAI_constants_1 = require("./providers/GoogleGenerativeAI/GoogleGenerativeAI.constants");
7
+ const OpenAI_constants_1 = require("./providers/OpenAI/OpenAI.constants");
8
+ exports.LLM_SERVICE_FACTORIES = {
9
+ [LLMService_typedefs_1.LLMProviders.OpenAI]: new providers_1.OpenAIServiceFactory(),
10
+ [LLMService_typedefs_1.LLMProviders.GoogleGenerativeAI]: new providers_1.GoogleGenerativeAIServiceFactory(),
11
+ };
12
+ exports.LLM_SERVICE_MODELS = {
13
+ [LLMService_typedefs_1.LLMProviders.OpenAI]: OpenAI_constants_1.OPEN_AI_MODELS,
14
+ [LLMService_typedefs_1.LLMProviders.GoogleGenerativeAI]: GoogleGenerativeAI_constants_1.GOOGLE_AI_MODELS,
15
+ };
16
+ //# sourceMappingURL=LLMService.constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LLMService.constants.js","sourceRoot":"","sources":["../src/LLMService.constants.ts"],"names":[],"mappings":";;;AAAA,+DAA8F;AAC9F,2CAAqF;AACrF,8GAA+F;AAC/F,0EAAqE;AAGxD,QAAA,qBAAqB,GAE9B;IACF,CAAC,kCAAY,CAAC,MAAM,CAAC,EAAE,IAAI,gCAAoB,EAAE;IACjD,CAAC,kCAAY,CAAC,kBAAkB,CAAC,EAAE,IAAI,4CAAgC,EAAE;CAC1E,CAAC;AAEW,QAAA,kBAAkB,GAE3B;IACF,CAAC,kCAAY,CAAC,MAAM,CAAC,EAAE,iCAAc;IACrC,CAAC,kCAAY,CAAC,kBAAkB,CAAC,EAAE,+CAAgB;CACpD,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { LLMCountTokensFunction, LLMMessage, LLMModel, LLMProviders } from './LLMService.typedefs';
2
+ interface CombineMessagesOptions<Provider extends LLMProviders> {
3
+ modelContext?: LLMMessage[];
4
+ history?: LLMMessage[];
5
+ message: string;
6
+ model: LLMModel<Provider>;
7
+ countTokensFn?: LLMCountTokensFunction<Provider>;
8
+ }
9
+ export declare class LLMServiceEntity {
10
+ private static countTokensFallback;
11
+ static combineMessagesWithLimit<Provider extends LLMProviders>({ modelContext, history, message, model, countTokensFn, }: CombineMessagesOptions<Provider>): Promise<LLMMessage[]>;
12
+ }
13
+ export {};
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LLMServiceEntity = void 0;
4
+ const LLMService_typedefs_1 = require("./LLMService.typedefs");
5
+ class LLMServiceEntity {
6
+ static countTokensFallback(messages) {
7
+ const message = messages.join('');
8
+ const basicTokens = message.split(/[\s,.;!?(){}[\]<>%&]+/).filter(Boolean);
9
+ const subwordTokens = basicTokens.flatMap((token) => (token.split(/(?<=[a-z])(?=[A-Z])|(?<=[A-Z])(?=[A-Z][a-z])|(?<=[a-zA-Z])(?=\d)|(?<=[\d])(?=[a-zA-Z])/)));
10
+ return Promise.resolve(subwordTokens.length);
11
+ }
12
+ static async combineMessagesWithLimit({ modelContext = [], history = [], message, model, countTokensFn = this.countTokensFallback, }) {
13
+ const combinedMessages = [...modelContext];
14
+ if (history[0]) {
15
+ const firstHistoryMessage = history[0];
16
+ combinedMessages.push(firstHistoryMessage);
17
+ }
18
+ const messagesToConsider = [
19
+ { role: LLMService_typedefs_1.LLMRoles.User, content: message },
20
+ ...history.slice(1).reverse(),
21
+ ];
22
+ const messages = combinedMessages.map((combinedMessage) => combinedMessage.content);
23
+ let tokenCount = await countTokensFn(messages, model);
24
+ for (const msg of messagesToConsider) {
25
+ const tempTokenCount = tokenCount + (await countTokensFn([msg.content], model));
26
+ if (tempTokenCount <= model.limits.maxInputTokens) {
27
+ combinedMessages.push(msg);
28
+ tokenCount = tempTokenCount;
29
+ }
30
+ else {
31
+ break;
32
+ }
33
+ }
34
+ return combinedMessages;
35
+ }
36
+ }
37
+ exports.LLMServiceEntity = LLMServiceEntity;
38
+ //# sourceMappingURL=LLMService.entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LLMService.entity.js","sourceRoot":"","sources":["../src/LLMService.entity.ts"],"names":[],"mappings":";;;AAAA,+DAM+B;AAU/B,MAAa,gBAAgB;IACnB,MAAM,CAAC,mBAAmB,CAAC,QAAkB;QACnD,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAClC,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC3E,MAAM,aAAa,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CACnD,KAAK,CAAC,KAAK,CACT,wFAAwF,CACzF,CACF,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAgC,EACnE,YAAY,GAAG,EAAE,EACjB,OAAO,GAAG,EAAE,EACZ,OAAO,EACP,KAAK,EACL,aAAa,GAAG,IAAI,CAAC,mBAAmB,GACP;QACjC,MAAM,gBAAgB,GAAiB,CAAC,GAAG,YAAY,CAAC,CAAC;QAEzD,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YACf,MAAM,mBAAmB,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YAEvC,gBAAgB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAC7C,CAAC;QAED,MAAM,kBAAkB,GAAG;YACzB,EAAE,IAAI,EAAE,8BAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE;YACzC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE;SAC9B,CAAC;QAEF,MAAM,QAAQ,GAAG,gBAAgB,CAAC,GAAG,CACnC,CAAC,eAAe,EAAE,EAAE,CAAC,eAAe,CAAC,OAAO,CAC7C,CAAC;QAEF,IAAI,UAAU,GAAG,MAAM,aAAa,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAEtD,KAAK,MAAM,GAAG,IAAI,kBAAkB,EAAE,CAAC;YACrC,MAAM,cAAc,GAAG,UAAU,GAAG,CAClC,MAAM,aAAa,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,CAC1C,CAAC;YAEF,IAAI,cAAc,IAAI,KAAK,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;gBAClD,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC3B,UAAU,GAAG,cAAc,CAAC;YAC9B,CAAC;iBAAM,CAAC;gBACN,MAAM;YACR,CAAC;QACH,CAAC;QAED,OAAO,gBAAgB,CAAC;IAC1B,CAAC;CACF;AAtDD,4CAsDC"}
@@ -0,0 +1,8 @@
1
+ import { Logger } from '@mate-academy/core';
2
+ import { LLMInstanceOptions, LLMProviders, LLMPurposes, LLMServiceByPurpose } from './LLMService.typedefs';
3
+ export declare class LLMServiceFactory {
4
+ private static getService;
5
+ static getCompletionService<Provider extends LLMProviders>(provider: Provider, logger: Logger, options: LLMInstanceOptions[Provider]): LLMServiceByPurpose<Provider>[LLMPurposes.Completion];
6
+ static getAssistanceService<Provider extends LLMProviders>(provider: Provider, logger: Logger, options: LLMInstanceOptions[Provider]): LLMServiceByPurpose<Provider>[LLMPurposes.Assistance];
7
+ static resolveProviderOptions<Provider extends LLMProviders>(provider: Provider, options: Record<Provider, LLMInstanceOptions[Provider]>): LLMInstanceOptions[Provider];
8
+ }
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LLMServiceFactory = void 0;
4
+ const LLMService_typedefs_1 = require("./LLMService.typedefs");
5
+ const LLMService_constants_1 = require("./LLMService.constants");
6
+ class LLMServiceFactory {
7
+ static getService(purpose, provider, logger, options) {
8
+ switch (provider) {
9
+ case LLMService_typedefs_1.LLMProviders.OpenAI:
10
+ case LLMService_typedefs_1.LLMProviders.GoogleGenerativeAI:
11
+ return LLMService_constants_1.LLM_SERVICE_FACTORIES[provider]
12
+ .createService(purpose, logger, options);
13
+ default:
14
+ throw new Error(`Provider [${provider}] is not supported`);
15
+ }
16
+ }
17
+ static getCompletionService(provider, logger, options) {
18
+ return this.getService(LLMService_typedefs_1.LLMPurposes.Completion, provider, logger, options);
19
+ }
20
+ static getAssistanceService(provider, logger, options) {
21
+ return this.getService(LLMService_typedefs_1.LLMPurposes.Assistance, provider, logger, options);
22
+ }
23
+ static resolveProviderOptions(provider, options) {
24
+ return options[provider];
25
+ }
26
+ }
27
+ exports.LLMServiceFactory = LLMServiceFactory;
28
+ //# sourceMappingURL=LLMService.factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LLMService.factory.js","sourceRoot":"","sources":["../src/LLMService.factory.ts"],"names":[],"mappings":";;;AACA,+DAK+B;AAC/B,iEAA+D;AAE/D,MAAa,iBAAiB;IACpB,MAAM,CAAC,UAAU,CAIvB,OAAgB,EAChB,QAAkB,EAClB,MAAc,EACd,OAAyC;QAEzC,QAAQ,QAAQ,EAAE,CAAC;YACjB,KAAK,kCAAY,CAAC,MAAM,CAAC;YACzB,KAAK,kCAAY,CAAC,kBAAkB;gBAClC,OAAO,4CAAqB,CAAC,QAAQ,CAAC;qBACnC,aAAa,CACZ,OAAO,EACP,MAAM,EACN,OAAO,CACR,CAAC;YAEN;gBACE,MAAM,IAAI,KAAK,CAAC,aAAa,QAAQ,oBAAoB,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;IAED,MAAM,CAAC,oBAAoB,CACzB,QAAkB,EAClB,MAAc,EACd,OAAqC;QAErC,OAAO,IAAI,CAAC,UAAU,CAAC,iCAAW,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5E,CAAC;IAED,MAAM,CAAC,oBAAoB,CACzB,QAAkB,EAClB,MAAc,EACd,OAAqC;QAErC,OAAO,IAAI,CAAC,UAAU,CAAC,iCAAW,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5E,CAAC;IAED,MAAM,CAAC,sBAAsB,CAC3B,QAAkB,EAClB,OAAuD;QAEvD,OAAO,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC3B,CAAC;CACF;AA/CD,8CA+CC"}
@@ -0,0 +1,126 @@
1
+ import { Logger } from '@mate-academy/core';
2
+ import { ClientOptions, OpenAI } from 'openai';
3
+ import { GoogleGenAI } from '@google/genai';
4
+ import { OpenAIModelNames } from './providers/OpenAI/OpenAI.typedefs';
5
+ import { GoogleGenerativeAIModelNames } from './providers/GoogleGenerativeAI/GoogleGenerativeAI.typedefs';
6
+ import { LLMCompletionService } from './services/LLMCompletionService.abstract';
7
+ import { LLMAssistanceService } from './services/LLMAssistanceService.abstract';
8
+ export declare enum LLMProviders {
9
+ OpenAI = "OpenAI",
10
+ GoogleGenerativeAI = "GoogleGenerativeAI"
11
+ }
12
+ export type LLMInstances = {
13
+ [LLMProviders.OpenAI]: OpenAI;
14
+ [LLMProviders.GoogleGenerativeAI]: GoogleGenAI;
15
+ };
16
+ export type LLMInstanceOptions = {
17
+ [LLMProviders.OpenAI]: ClientOptions;
18
+ [LLMProviders.GoogleGenerativeAI]: {
19
+ apiKey: string;
20
+ };
21
+ };
22
+ export declare enum LLMPurposes {
23
+ Completion = "completion",
24
+ Assistance = "assistance"
25
+ }
26
+ export type LLMServiceByPurpose<Provider extends LLMProviders> = {
27
+ [LLMPurposes.Completion]: LLMCompletionService<Provider>;
28
+ [LLMPurposes.Assistance]: LLMAssistanceService<Provider>;
29
+ };
30
+ export type LLMServiceBuilder<Provider extends LLMProviders, Purpose extends LLMPurposes> = (logger: Logger, options: LLMInstanceOptions[Provider]) => LLMServiceByPurpose<Provider>[Purpose];
31
+ export interface LLMLimits {
32
+ maxInputTokens: number;
33
+ maxOutputTokens: number;
34
+ }
35
+ export interface LLMConfig {
36
+ temperature?: number;
37
+ top_p?: number | null;
38
+ }
39
+ export type LLMProviderAvailableModels<Provider extends LLMProviders> = Record<LLMModelName[Provider], LLMModel<Provider>>;
40
+ export type LLMProviderModelsByPurpose<Purpose extends LLMPurposes, Provider extends LLMProviders> = Record<Purpose, Partial<LLMProviderAvailableModels<Provider>>>;
41
+ export type LLMModelName = {
42
+ [LLMProviders.OpenAI]: OpenAIModelNames;
43
+ [LLMProviders.GoogleGenerativeAI]: GoogleGenerativeAIModelNames;
44
+ };
45
+ export interface LLMModel<Provider extends LLMProviders> {
46
+ name: LLMModelName[Provider];
47
+ limits: LLMLimits;
48
+ config: LLMConfig;
49
+ }
50
+ export declare enum LLMRoles {
51
+ User = "user",
52
+ Assistant = "assistant"
53
+ }
54
+ export interface LLMMessage {
55
+ role: LLMRoles;
56
+ content: string;
57
+ }
58
+ export type LLMRequestError = Error;
59
+ export type LLMRequestResult<Result> = Result | {
60
+ error: LLMRequestError;
61
+ };
62
+ export type LLMCompletionResult = LLMRequestResult<{
63
+ text: string;
64
+ }>;
65
+ export interface LLMSendMessageOptions<Provider extends LLMProviders> {
66
+ message: LLMMessage;
67
+ model: LLMModel<Provider>;
68
+ history?: LLMMessage[];
69
+ instructions?: string;
70
+ }
71
+ export declare enum LLMUploadFileMimeTypes {
72
+ PNG = "image/png",
73
+ PLAIN_TEXT = "text/plain"
74
+ }
75
+ export interface LLMUploadFile {
76
+ mimeType: LLMUploadFileMimeTypes;
77
+ name: string;
78
+ path: string;
79
+ }
80
+ export interface LLMUploadedFile extends LLMUploadFile {
81
+ fileId: string;
82
+ }
83
+ export type LLMUploadFileResult = LLMRequestResult<LLMUploadedFile>;
84
+ export interface LLMCreateFileStorageOptions<Provider extends LLMProviders> {
85
+ uploadedFiles: LLMUploadedFile[];
86
+ model: LLMModel<Provider>;
87
+ instructions?: string;
88
+ }
89
+ export interface LLMCreatedFileStorage {
90
+ storageId: string;
91
+ }
92
+ export type LLMCreateFileStorageResult = LLMRequestResult<LLMCreatedFileStorage>;
93
+ export interface LLMCreateAssistantOptions<Provider extends LLMProviders> {
94
+ model: LLMModel<Provider>;
95
+ instructions?: string;
96
+ storageIds?: string[];
97
+ }
98
+ export interface LLMCreatedAssistant {
99
+ assistantId: string;
100
+ }
101
+ export type LLMCreateAssistantResult = LLMRequestResult<LLMCreatedAssistant>;
102
+ export interface LLMCreateChatOptions<Provider extends LLMProviders> {
103
+ model: LLMModel<Provider>;
104
+ instructions?: string;
105
+ history?: string[];
106
+ files?: LLMUploadedFile[];
107
+ storageId?: string;
108
+ }
109
+ export interface LLMCreatedChat {
110
+ chatId: string;
111
+ }
112
+ export type LLMCreateChatResult = LLMRequestResult<LLMCreatedChat>;
113
+ export interface LLMAssistanceMessage extends LLMMessage {
114
+ attachment?: LLMUploadFileResult;
115
+ instructions?: string;
116
+ }
117
+ export interface LLMAssistanceOptions<Provider extends LLMProviders> {
118
+ model: LLMModel<Provider>;
119
+ message: LLMAssistanceMessage;
120
+ chatId: string;
121
+ assistantId: string;
122
+ }
123
+ export type LLMAssistanceResult = LLMRequestResult<{
124
+ text: string;
125
+ }>;
126
+ export type LLMCountTokensFunction<Provider extends LLMProviders> = (messages: string[], model: LLMModel<Provider>) => Promise<number>;
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LLMUploadFileMimeTypes = exports.LLMRoles = exports.LLMPurposes = exports.LLMProviders = void 0;
4
+ var LLMProviders;
5
+ (function (LLMProviders) {
6
+ LLMProviders["OpenAI"] = "OpenAI";
7
+ LLMProviders["GoogleGenerativeAI"] = "GoogleGenerativeAI";
8
+ })(LLMProviders || (exports.LLMProviders = LLMProviders = {}));
9
+ var LLMPurposes;
10
+ (function (LLMPurposes) {
11
+ LLMPurposes["Completion"] = "completion";
12
+ LLMPurposes["Assistance"] = "assistance";
13
+ })(LLMPurposes || (exports.LLMPurposes = LLMPurposes = {}));
14
+ var LLMRoles;
15
+ (function (LLMRoles) {
16
+ LLMRoles["User"] = "user";
17
+ LLMRoles["Assistant"] = "assistant";
18
+ })(LLMRoles || (exports.LLMRoles = LLMRoles = {}));
19
+ var LLMUploadFileMimeTypes;
20
+ (function (LLMUploadFileMimeTypes) {
21
+ LLMUploadFileMimeTypes["PNG"] = "image/png";
22
+ LLMUploadFileMimeTypes["PLAIN_TEXT"] = "text/plain";
23
+ })(LLMUploadFileMimeTypes || (exports.LLMUploadFileMimeTypes = LLMUploadFileMimeTypes = {}));
24
+ //# sourceMappingURL=LLMService.typedefs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LLMService.typedefs.js","sourceRoot":"","sources":["../src/LLMService.typedefs.ts"],"names":[],"mappings":";;;AAQA,IAAY,YAGX;AAHD,WAAY,YAAY;IACtB,iCAAiB,CAAA;IACjB,yDAAyC,CAAA;AAC3C,CAAC,EAHW,YAAY,4BAAZ,YAAY,QAGvB;AAYD,IAAY,WAGX;AAHD,WAAY,WAAW;IACrB,wCAAyB,CAAA;IACzB,wCAAyB,CAAA;AAC3B,CAAC,EAHW,WAAW,2BAAX,WAAW,QAGtB;AAmDD,IAAY,QAGX;AAHD,WAAY,QAAQ;IAClB,yBAAa,CAAA;IACb,mCAAuB,CAAA;AACzB,CAAC,EAHW,QAAQ,wBAAR,QAAQ,QAGnB;AAmBD,IAAY,sBAGX;AAHD,WAAY,sBAAsB;IAChC,2CAAiB,CAAA;IACjB,mDAAyB,CAAA;AAC3B,CAAC,EAHW,sBAAsB,sCAAtB,sBAAsB,QAGjC"}
@@ -0,0 +1 @@
1
+ export declare const pick: <T, K extends keyof T>(obj: T, keys: K[]) => Pick<T, K>;
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.pick = void 0;
4
+ const pick = (obj, keys) => (keys.reduce((acc, key) => {
5
+ Object.assign(acc, { [key]: obj[key] });
6
+ return acc;
7
+ }, {}));
8
+ exports.pick = pick;
9
+ //# sourceMappingURL=functional.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"functional.utils.js","sourceRoot":"","sources":["../src/functional.utils.ts"],"names":[],"mappings":";;;AAAO,MAAM,IAAI,GAAG,CAAuB,GAAM,EAAE,IAAS,EAAc,EAAE,CAAC,CAC3E,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;IACvB,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAExC,OAAO,GAAG,CAAC;AACb,CAAC,EAAE,EAAgB,CAAC,CACrB,CAAC;AANW,QAAA,IAAI,QAMf"}
@@ -0,0 +1,6 @@
1
+ export * from './LLMService.constants';
2
+ export * from './LLMService.entity';
3
+ export * from './LLMService.factory';
4
+ export * from './LLMService.typedefs';
5
+ export * from './providers';
6
+ export * from './services';
package/dist/index.js ADDED
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./LLMService.constants"), exports);
18
+ __exportStar(require("./LLMService.entity"), exports);
19
+ __exportStar(require("./LLMService.factory"), exports);
20
+ __exportStar(require("./LLMService.typedefs"), exports);
21
+ __exportStar(require("./providers"), exports);
22
+ __exportStar(require("./services"), exports);
23
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yDAAuC;AACvC,sDAAoC;AACpC,uDAAqC;AACrC,wDAAsC;AACtC,8CAA4B;AAC5B,6CAA2B"}
@@ -0,0 +1,6 @@
1
+ import { LLMProviderModelsByPurpose, LLMProviders, LLMPurposes, LLMServiceBuilder } from '../../LLMService.typedefs';
2
+ export declare const MIN_CACHE_CONTENT_LENGTH = 32768;
3
+ export declare const GOOGLE_AI_MODELS: LLMProviderModelsByPurpose<LLMPurposes, LLMProviders.GoogleGenerativeAI>;
4
+ export declare const GOOGLE_AI_SERVICE_BUILDERS: {
5
+ [purpose in LLMPurposes]: (LLMServiceBuilder<LLMProviders.GoogleGenerativeAI, purpose> | null);
6
+ };
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GOOGLE_AI_SERVICE_BUILDERS = exports.GOOGLE_AI_MODELS = exports.MIN_CACHE_CONTENT_LENGTH = void 0;
4
+ const LLMService_typedefs_1 = require("../../LLMService.typedefs");
5
+ const GoogleGenerativeAI_typedefs_1 = require("./GoogleGenerativeAI.typedefs");
6
+ const services_1 = require("../../providers/GoogleGenerativeAI/services");
7
+ const functional_utils_1 = require("../../functional.utils");
8
+ exports.MIN_CACHE_CONTENT_LENGTH = 32_768;
9
+ const GOOGLE_AI_AVAILABLE_MODELS = {
10
+ [GoogleGenerativeAI_typedefs_1.GoogleGenerativeAIModelNames.GEMINI_1_5_FLASH]: {
11
+ name: GoogleGenerativeAI_typedefs_1.GoogleGenerativeAIModelNames.GEMINI_1_5_FLASH,
12
+ limits: {
13
+ maxInputTokens: 1_048_576,
14
+ maxOutputTokens: 8_192,
15
+ },
16
+ config: {
17
+ temperature: 0.2,
18
+ },
19
+ },
20
+ [GoogleGenerativeAI_typedefs_1.GoogleGenerativeAIModelNames.GEMINI_1_5_FLASH_STABLE]: {
21
+ name: GoogleGenerativeAI_typedefs_1.GoogleGenerativeAIModelNames.GEMINI_1_5_FLASH_STABLE,
22
+ limits: {
23
+ maxInputTokens: 1_048_576,
24
+ maxOutputTokens: 8_192,
25
+ },
26
+ config: {
27
+ temperature: 0.2,
28
+ },
29
+ },
30
+ [GoogleGenerativeAI_typedefs_1.GoogleGenerativeAIModelNames.GEMINI_1_5_PRO]: {
31
+ name: GoogleGenerativeAI_typedefs_1.GoogleGenerativeAIModelNames.GEMINI_1_5_PRO,
32
+ limits: {
33
+ maxInputTokens: 2_097_152,
34
+ maxOutputTokens: 8_192,
35
+ },
36
+ config: {
37
+ temperature: 0.2,
38
+ },
39
+ },
40
+ [GoogleGenerativeAI_typedefs_1.GoogleGenerativeAIModelNames.GEMINI_1_5_PRO_STABLE]: {
41
+ name: GoogleGenerativeAI_typedefs_1.GoogleGenerativeAIModelNames.GEMINI_1_5_PRO_STABLE,
42
+ limits: {
43
+ maxInputTokens: 2_097_152,
44
+ maxOutputTokens: 8_192,
45
+ },
46
+ config: {
47
+ temperature: 0.2,
48
+ },
49
+ },
50
+ [GoogleGenerativeAI_typedefs_1.GoogleGenerativeAIModelNames.GEMINI_2_0_FLASH]: {
51
+ name: GoogleGenerativeAI_typedefs_1.GoogleGenerativeAIModelNames.GEMINI_2_0_FLASH,
52
+ limits: {
53
+ maxInputTokens: 1_048_576,
54
+ maxOutputTokens: 8_192,
55
+ },
56
+ config: {
57
+ temperature: 0.2,
58
+ },
59
+ },
60
+ [GoogleGenerativeAI_typedefs_1.GoogleGenerativeAIModelNames.GEMINI_2_0_FLASH_STABLE]: {
61
+ name: GoogleGenerativeAI_typedefs_1.GoogleGenerativeAIModelNames.GEMINI_2_0_FLASH_STABLE,
62
+ limits: {
63
+ maxInputTokens: 1_048_576,
64
+ maxOutputTokens: 8_192,
65
+ },
66
+ config: {
67
+ temperature: 0.2,
68
+ },
69
+ },
70
+ [GoogleGenerativeAI_typedefs_1.GoogleGenerativeAIModelNames.GEMINI_2_5_PRO_PREVIEW]: {
71
+ name: GoogleGenerativeAI_typedefs_1.GoogleGenerativeAIModelNames.GEMINI_2_5_PRO_PREVIEW,
72
+ limits: {
73
+ maxInputTokens: 1_048_576,
74
+ maxOutputTokens: 65_536,
75
+ },
76
+ config: {
77
+ temperature: 0.2,
78
+ },
79
+ },
80
+ };
81
+ exports.GOOGLE_AI_MODELS = {
82
+ [LLMService_typedefs_1.LLMPurposes.Completion]: (0, functional_utils_1.pick)(GOOGLE_AI_AVAILABLE_MODELS, [
83
+ GoogleGenerativeAI_typedefs_1.GoogleGenerativeAIModelNames.GEMINI_1_5_FLASH,
84
+ GoogleGenerativeAI_typedefs_1.GoogleGenerativeAIModelNames.GEMINI_1_5_PRO,
85
+ GoogleGenerativeAI_typedefs_1.GoogleGenerativeAIModelNames.GEMINI_2_0_FLASH,
86
+ GoogleGenerativeAI_typedefs_1.GoogleGenerativeAIModelNames.GEMINI_2_5_PRO_PREVIEW,
87
+ ]),
88
+ [LLMService_typedefs_1.LLMPurposes.Assistance]: (0, functional_utils_1.pick)(GOOGLE_AI_AVAILABLE_MODELS, [
89
+ GoogleGenerativeAI_typedefs_1.GoogleGenerativeAIModelNames.GEMINI_1_5_FLASH_STABLE,
90
+ GoogleGenerativeAI_typedefs_1.GoogleGenerativeAIModelNames.GEMINI_1_5_PRO_STABLE,
91
+ GoogleGenerativeAI_typedefs_1.GoogleGenerativeAIModelNames.GEMINI_2_0_FLASH_STABLE,
92
+ ]),
93
+ };
94
+ exports.GOOGLE_AI_SERVICE_BUILDERS = {
95
+ [LLMService_typedefs_1.LLMPurposes.Completion]: (logger, options) => (new services_1.GoogleGenerativeAICompletionService(logger, options)),
96
+ [LLMService_typedefs_1.LLMPurposes.Assistance]: (logger, options) => (new services_1.GoogleGenerativeAIAssistanceService(logger, options)),
97
+ };
98
+ //# sourceMappingURL=GoogleGenerativeAI.constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GoogleGenerativeAI.constants.js","sourceRoot":"","sources":["../../../src/providers/GoogleGenerativeAI/GoogleGenerativeAI.constants.ts"],"names":[],"mappings":";;;AAAA,mEAMmC;AACnC,+EAA6E;AAC7E,0EAGqD;AACrD,6DAA8C;AAEjC,QAAA,wBAAwB,GAAG,MAAM,CAAC;AAE/C,MAAM,0BAA0B,GAE5B;IACF,CAAC,0DAA4B,CAAC,gBAAgB,CAAC,EAAE;QAC/C,IAAI,EAAE,0DAA4B,CAAC,gBAAgB;QACnD,MAAM,EAAE;YACN,cAAc,EAAE,SAAS;YACzB,eAAe,EAAE,KAAK;SACvB;QACD,MAAM,EAAE;YACN,WAAW,EAAE,GAAG;SACjB;KACF;IACD,CAAC,0DAA4B,CAAC,uBAAuB,CAAC,EAAE;QACtD,IAAI,EAAE,0DAA4B,CAAC,uBAAuB;QAC1D,MAAM,EAAE;YACN,cAAc,EAAE,SAAS;YACzB,eAAe,EAAE,KAAK;SACvB;QACD,MAAM,EAAE;YACN,WAAW,EAAE,GAAG;SACjB;KACF;IACD,CAAC,0DAA4B,CAAC,cAAc,CAAC,EAAE;QAC7C,IAAI,EAAE,0DAA4B,CAAC,cAAc;QACjD,MAAM,EAAE;YACN,cAAc,EAAE,SAAS;YACzB,eAAe,EAAE,KAAK;SACvB;QACD,MAAM,EAAE;YACN,WAAW,EAAE,GAAG;SACjB;KACF;IACD,CAAC,0DAA4B,CAAC,qBAAqB,CAAC,EAAE;QACpD,IAAI,EAAE,0DAA4B,CAAC,qBAAqB;QACxD,MAAM,EAAE;YACN,cAAc,EAAE,SAAS;YACzB,eAAe,EAAE,KAAK;SACvB;QACD,MAAM,EAAE;YACN,WAAW,EAAE,GAAG;SACjB;KACF;IACD,CAAC,0DAA4B,CAAC,gBAAgB,CAAC,EAAE;QAC/C,IAAI,EAAE,0DAA4B,CAAC,gBAAgB;QACnD,MAAM,EAAE;YACN,cAAc,EAAE,SAAS;YACzB,eAAe,EAAE,KAAK;SACvB;QACD,MAAM,EAAE;YACN,WAAW,EAAE,GAAG;SACjB;KACF;IACD,CAAC,0DAA4B,CAAC,uBAAuB,CAAC,EAAE;QACtD,IAAI,EAAE,0DAA4B,CAAC,uBAAuB;QAC1D,MAAM,EAAE;YACN,cAAc,EAAE,SAAS;YACzB,eAAe,EAAE,KAAK;SACvB;QACD,MAAM,EAAE;YACN,WAAW,EAAE,GAAG;SACjB;KACF;IACD,CAAC,0DAA4B,CAAC,sBAAsB,CAAC,EAAE;QACrD,IAAI,EAAE,0DAA4B,CAAC,sBAAsB;QACzD,MAAM,EAAE;YACN,cAAc,EAAE,SAAS;YACzB,eAAe,EAAE,MAAM;SACxB;QACD,MAAM,EAAE;YACN,WAAW,EAAE,GAAG;SACjB;KACF;CACF,CAAC;AAEW,QAAA,gBAAgB,GAGzB;IACF,CAAC,iCAAW,CAAC,UAAU,CAAC,EAAE,IAAA,uBAAI,EAC5B,0BAA0B,EAC1B;QACE,0DAA4B,CAAC,gBAAgB;QAC7C,0DAA4B,CAAC,cAAc;QAC3C,0DAA4B,CAAC,gBAAgB;QAC7C,0DAA4B,CAAC,sBAAsB;KACpD,CACF;IAED,CAAC,iCAAW,CAAC,UAAU,CAAC,EAAE,IAAA,uBAAI,EAC5B,0BAA0B,EAC1B;QACE,0DAA4B,CAAC,uBAAuB;QACpD,0DAA4B,CAAC,qBAAqB;QAClD,0DAA4B,CAAC,uBAAuB;KACrD,CACF;CACF,CAAC;AAEW,QAAA,0BAA0B,GAInC;IACF,CAAC,iCAAW,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,CAC7C,IAAI,8CAAmC,CAAC,MAAM,EAAE,OAAO,CAAC,CACzD;IACD,CAAC,iCAAW,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,CAC7C,IAAI,8CAAmC,CAAC,MAAM,EAAE,OAAO,CAAC,CACzD;CACF,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { Part, GoogleGenAI, ContentListUnion, GenerateContentParameters } from '@google/genai';
2
+ import { LLMMessage, LLMModel, LLMProviders, LLMUploadedFile } from '../../LLMService.typedefs';
3
+ export declare class GoogleGenerativeAIEntity {
4
+ static getContentParameters(model: LLMModel<LLMProviders.GoogleGenerativeAI>, messages: LLMMessage[], instructions?: string): GenerateContentParameters;
5
+ static getFileDataParts(uploadedFiles: LLMUploadedFile[]): Pick<Part, 'fileData'>[];
6
+ static getTextParts(messages: string[]): Pick<Part, 'text'>[];
7
+ static getCountTokensFn(instance: GoogleGenAI): (contents: ContentListUnion, model: LLMModel<LLMProviders.GoogleGenerativeAI>) => Promise<number>;
8
+ }
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GoogleGenerativeAIEntity = void 0;
4
+ class GoogleGenerativeAIEntity {
5
+ static getContentParameters(model, messages, instructions) {
6
+ return {
7
+ model: model.name,
8
+ contents: messages.map((message) => ({
9
+ parts: [{
10
+ text: message.content,
11
+ }],
12
+ role: message.role,
13
+ })),
14
+ config: {
15
+ systemInstruction: instructions,
16
+ temperature: model.config.temperature,
17
+ },
18
+ };
19
+ }
20
+ static getFileDataParts(uploadedFiles) {
21
+ return uploadedFiles.map((file) => ({
22
+ fileData: {
23
+ fileUri: file.path,
24
+ mimeType: file.mimeType,
25
+ },
26
+ }));
27
+ }
28
+ static getTextParts(messages) {
29
+ return messages.map((message) => ({ text: message }));
30
+ }
31
+ static getCountTokensFn(instance) {
32
+ return async (contents, model) => {
33
+ const tokenCount = await instance.models.countTokens({
34
+ model: model.name,
35
+ contents,
36
+ });
37
+ return tokenCount.totalTokens ?? 0;
38
+ };
39
+ }
40
+ }
41
+ exports.GoogleGenerativeAIEntity = GoogleGenerativeAIEntity;
42
+ //# sourceMappingURL=GoogleGenerativeAI.entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GoogleGenerativeAI.entity.js","sourceRoot":"","sources":["../../../src/providers/GoogleGenerativeAI/GoogleGenerativeAI.entity.ts"],"names":[],"mappings":";;;AAaA,MAAa,wBAAwB;IACnC,MAAM,CAAC,oBAAoB,CACzB,KAAgD,EAChD,QAAsB,EACtB,YAAqB;QAErB,OAAO;YACL,KAAK,EAAE,KAAK,CAAC,IAAI;YACjB,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBACnC,KAAK,EAAE,CAAC;wBACN,IAAI,EAAE,OAAO,CAAC,OAAO;qBACtB,CAAC;gBACF,IAAI,EAAE,OAAO,CAAC,IAAI;aACnB,CAAC,CAAC;YACH,MAAM,EAAE;gBACN,iBAAiB,EAAE,YAAY;gBAC/B,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,WAAW;aACtC;SACF,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,gBAAgB,CACrB,aAAgC;QAEhC,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAClC,QAAQ,EAAE;gBACR,OAAO,EAAE,IAAI,CAAC,IAAI;gBAClB,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACxB;SACF,CAAC,CAAC,CAAC;IACN,CAAC;IAED,MAAM,CAAC,YAAY,CACjB,QAAkB;QAElB,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;IACxD,CAAC;IAED,MAAM,CAAC,gBAAgB,CACrB,QAAqB;QAErB,OAAO,KAAK,EACV,QAA0B,EAC1B,KAAgD,EAC/B,EAAE;YACnB,MAAM,UAAU,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC;gBACnD,KAAK,EAAE,KAAK,CAAC,IAAI;gBACjB,QAAQ;aACT,CAAC,CAAC;YAEH,OAAO,UAAU,CAAC,WAAW,IAAI,CAAC,CAAC;QACrC,CAAC,CAAC;IACJ,CAAC;CACF;AArDD,4DAqDC"}
@@ -0,0 +1,13 @@
1
+ export declare enum GoogleGenerativeAIModelNames {
2
+ GEMINI_1_5_FLASH = "gemini-1.5-flash",
3
+ GEMINI_1_5_FLASH_STABLE = "gemini-1.5-flash-001",
4
+ GEMINI_1_5_PRO = "gemini-1.5-pro",
5
+ GEMINI_1_5_PRO_STABLE = "gemini-1.5-pro-002",
6
+ GEMINI_2_0_FLASH = "gemini-2.0-flash",
7
+ GEMINI_2_0_FLASH_STABLE = "gemini-2.0-flash-001",
8
+ GEMINI_2_5_PRO_PREVIEW = "gemini-2.5-pro-preview-03-25"
9
+ }
10
+ export declare enum GoogleGenerativeAIRoles {
11
+ User = "user",
12
+ Model = "model"
13
+ }
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GoogleGenerativeAIRoles = exports.GoogleGenerativeAIModelNames = void 0;
4
+ var GoogleGenerativeAIModelNames;
5
+ (function (GoogleGenerativeAIModelNames) {
6
+ GoogleGenerativeAIModelNames["GEMINI_1_5_FLASH"] = "gemini-1.5-flash";
7
+ GoogleGenerativeAIModelNames["GEMINI_1_5_FLASH_STABLE"] = "gemini-1.5-flash-001";
8
+ GoogleGenerativeAIModelNames["GEMINI_1_5_PRO"] = "gemini-1.5-pro";
9
+ GoogleGenerativeAIModelNames["GEMINI_1_5_PRO_STABLE"] = "gemini-1.5-pro-002";
10
+ GoogleGenerativeAIModelNames["GEMINI_2_0_FLASH"] = "gemini-2.0-flash";
11
+ GoogleGenerativeAIModelNames["GEMINI_2_0_FLASH_STABLE"] = "gemini-2.0-flash-001";
12
+ GoogleGenerativeAIModelNames["GEMINI_2_5_PRO_PREVIEW"] = "gemini-2.5-pro-preview-03-25";
13
+ })(GoogleGenerativeAIModelNames || (exports.GoogleGenerativeAIModelNames = GoogleGenerativeAIModelNames = {}));
14
+ var GoogleGenerativeAIRoles;
15
+ (function (GoogleGenerativeAIRoles) {
16
+ GoogleGenerativeAIRoles["User"] = "user";
17
+ GoogleGenerativeAIRoles["Model"] = "model";
18
+ })(GoogleGenerativeAIRoles || (exports.GoogleGenerativeAIRoles = GoogleGenerativeAIRoles = {}));
19
+ //# sourceMappingURL=GoogleGenerativeAI.typedefs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GoogleGenerativeAI.typedefs.js","sourceRoot":"","sources":["../../../src/providers/GoogleGenerativeAI/GoogleGenerativeAI.typedefs.ts"],"names":[],"mappings":";;;AAAA,IAAY,4BAQX;AARD,WAAY,4BAA4B;IACtC,qEAAqC,CAAA;IACrC,gFAAgD,CAAA;IAChD,iEAAiC,CAAA;IACjC,4EAA4C,CAAA;IAC5C,qEAAqC,CAAA;IACrC,gFAAgD,CAAA;IAChD,uFAAuD,CAAA;AACzD,CAAC,EARW,4BAA4B,4CAA5B,4BAA4B,QAQvC;AAED,IAAY,uBAGX;AAHD,WAAY,uBAAuB;IACjC,wCAAa,CAAA;IACb,0CAAe,CAAA;AACjB,CAAC,EAHW,uBAAuB,uCAAvB,uBAAuB,QAGlC"}
@@ -0,0 +1,6 @@
1
+ import { Logger } from '@mate-academy/core';
2
+ import { LLMInstanceOptions, LLMProviders, LLMPurposes, LLMServiceByPurpose } from '../../LLMService.typedefs';
3
+ import { LLMServicePurposeFactory } from '../../services';
4
+ export declare class GoogleGenerativeAIServiceFactory extends LLMServicePurposeFactory<LLMProviders.GoogleGenerativeAI> {
5
+ createService<Purpose extends LLMPurposes>(purpose: Purpose, logger: Logger, options: LLMInstanceOptions[LLMProviders.GoogleGenerativeAI]): LLMServiceByPurpose<LLMProviders.GoogleGenerativeAI>[Purpose];
6
+ }
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GoogleGenerativeAIServiceFactory = void 0;
4
+ const LLMService_typedefs_1 = require("../../LLMService.typedefs");
5
+ const services_1 = require("../../services");
6
+ const GoogleGenerativeAI_constants_1 = require("./GoogleGenerativeAI.constants");
7
+ class GoogleGenerativeAIServiceFactory extends services_1.LLMServicePurposeFactory {
8
+ createService(purpose, logger, options) {
9
+ const serviceBuilder = GoogleGenerativeAI_constants_1.GOOGLE_AI_SERVICE_BUILDERS[purpose];
10
+ if (!serviceBuilder) {
11
+ throw new Error(`Purpose [${purpose}] is not supported for [${LLMService_typedefs_1.LLMProviders.GoogleGenerativeAI}] service`);
12
+ }
13
+ return serviceBuilder(logger, options);
14
+ }
15
+ }
16
+ exports.GoogleGenerativeAIServiceFactory = GoogleGenerativeAIServiceFactory;
17
+ //# sourceMappingURL=GoogleGenerativeAIService.factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GoogleGenerativeAIService.factory.js","sourceRoot":"","sources":["../../../src/providers/GoogleGenerativeAI/GoogleGenerativeAIService.factory.ts"],"names":[],"mappings":";;;AACA,mEAKmC;AACnC,6CAA0D;AAC1D,iFAA4E;AAE5E,MAAa,gCAAiC,SAAQ,mCAErD;IACC,aAAa,CAGX,OAAgB,EAChB,MAAc,EACd,OAA4D;QAE5D,MAAM,cAAc,GAAG,yDAA0B,CAAC,OAAO,CAAC,CAAC;QAE3D,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,YAAY,OAAO,2BAA2B,kCAAY,CAAC,kBAAkB,WAAW,CAAC,CAAC;QAC5G,CAAC;QAED,OAAO,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC;CACF;AAlBD,4EAkBC"}
@@ -0,0 +1,21 @@
1
+ import { Logger } from '@mate-academy/core';
2
+ import { GoogleGenAI } from '@google/genai';
3
+ import { LLMAssistanceOptions, LLMAssistanceResult, LLMCreateAssistantResult, LLMCreateChatOptions, LLMCreateChatResult, LLMCreateFileStorageOptions, LLMCreateFileStorageResult, LLMInstanceOptions, LLMProviders, LLMUploadFile, LLMUploadFileResult } from '../../../LLMService.typedefs';
4
+ import { LLMAssistanceService } from '../../../services';
5
+ export declare class GoogleGenerativeAIAssistanceService extends LLMAssistanceService<LLMProviders.GoogleGenerativeAI> {
6
+ #private;
7
+ private cachedContent;
8
+ private chatSessions;
9
+ private uploadedFiles;
10
+ constructor(logger: Logger, options: LLMInstanceOptions[LLMProviders.GoogleGenerativeAI]);
11
+ protected get instance(): GoogleGenAI;
12
+ uploadFile(file: LLMUploadFile): Promise<LLMUploadFileResult>;
13
+ deleteFile(fileId: string): Promise<void>;
14
+ createFileStorage(options: LLMCreateFileStorageOptions<LLMProviders.GoogleGenerativeAI>): Promise<LLMCreateFileStorageResult>;
15
+ deleteFileStorage(fileStorageId: string): Promise<void>;
16
+ createChat(options: LLMCreateChatOptions<LLMProviders.GoogleGenerativeAI>): Promise<LLMCreateChatResult>;
17
+ deleteChat(chatId: string): Promise<void>;
18
+ createAssistant(): Promise<LLMCreateAssistantResult>;
19
+ deleteAssistant(): Promise<void>;
20
+ assistInChat(options: LLMAssistanceOptions<LLMProviders.GoogleGenerativeAI>): Promise<LLMAssistanceResult>;
21
+ }