@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
@@ -0,0 +1,209 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GoogleGenerativeAIAssistanceService = void 0;
4
+ const uuid_1 = require("uuid");
5
+ const genai_1 = require("@google/genai");
6
+ const LLMService_typedefs_1 = require("../../../LLMService.typedefs");
7
+ const services_1 = require("../../../services");
8
+ const GoogleGenerativeAI_typedefs_1 = require("../GoogleGenerativeAI.typedefs");
9
+ const GoogleGenerativeAI_entity_1 = require("../GoogleGenerativeAI.entity");
10
+ const GoogleGenerativeAI_constants_1 = require("../GoogleGenerativeAI.constants");
11
+ class GoogleGenerativeAIAssistanceService extends services_1.LLMAssistanceService {
12
+ #instance = null;
13
+ cachedContent = new Map();
14
+ chatSessions = new Map();
15
+ uploadedFiles = new Map();
16
+ constructor(logger, options) {
17
+ super(LLMService_typedefs_1.LLMProviders.GoogleGenerativeAI, logger, options);
18
+ }
19
+ get instance() {
20
+ if (!this.#instance) {
21
+ this.#instance = new genai_1.GoogleGenAI({
22
+ apiKey: this.options.apiKey,
23
+ });
24
+ }
25
+ return this.#instance;
26
+ }
27
+ async uploadFile(file) {
28
+ try {
29
+ const { path, mimeType, name, } = file;
30
+ const existingFile = this.uploadedFiles.get(path);
31
+ if (existingFile) {
32
+ return existingFile;
33
+ }
34
+ const uploadResult = await this.instance.files.upload({
35
+ file: path,
36
+ config: {
37
+ mimeType,
38
+ displayName: name,
39
+ },
40
+ });
41
+ if (!uploadResult.name) {
42
+ throw new Error('Upload result did not return a name');
43
+ }
44
+ if (!uploadResult.uri) {
45
+ throw new Error('Upload result did not return a uri');
46
+ }
47
+ if (uploadResult.error) {
48
+ throw uploadResult.error;
49
+ }
50
+ const uploadedFile = {
51
+ ...file,
52
+ fileId: uploadResult.name,
53
+ path: uploadResult.uri,
54
+ };
55
+ this.uploadedFiles.set(path, uploadedFile);
56
+ return uploadedFile;
57
+ }
58
+ catch (error) {
59
+ this.logger
60
+ .child('uploadFile')
61
+ .error('Error uploading file', {
62
+ error,
63
+ file,
64
+ });
65
+ return { error };
66
+ }
67
+ }
68
+ async deleteFile(fileId) {
69
+ this.uploadedFiles.delete(fileId);
70
+ await this.instance.files.delete({
71
+ name: fileId,
72
+ });
73
+ }
74
+ async createFileStorage(options) {
75
+ const { uploadedFiles, model, instructions, } = options;
76
+ try {
77
+ const parts = GoogleGenerativeAI_entity_1.GoogleGenerativeAIEntity.getFileDataParts(uploadedFiles);
78
+ const countTokensFn = GoogleGenerativeAI_entity_1.GoogleGenerativeAIEntity
79
+ .getCountTokensFn(this.instance);
80
+ const tokenCount = await countTokensFn(parts, model);
81
+ if (tokenCount < GoogleGenerativeAI_constants_1.MIN_CACHE_CONTENT_LENGTH) {
82
+ return {
83
+ storageId: '',
84
+ };
85
+ }
86
+ const cacheResult = await this.instance.caches.create({
87
+ model: model.name,
88
+ config: {
89
+ contents: [
90
+ {
91
+ role: GoogleGenerativeAI_typedefs_1.GoogleGenerativeAIRoles.User,
92
+ parts,
93
+ },
94
+ ],
95
+ systemInstruction: instructions,
96
+ ttl: '1h',
97
+ },
98
+ });
99
+ if (!cacheResult.name) {
100
+ throw new Error('Cache result did not return a name');
101
+ }
102
+ this.cachedContent.set(cacheResult.name, cacheResult);
103
+ return {
104
+ storageId: cacheResult.name,
105
+ };
106
+ }
107
+ catch (error) {
108
+ this.logger
109
+ .child('createFileStorage')
110
+ .error('Error creating file storage', {
111
+ error,
112
+ uploadedFiles,
113
+ model,
114
+ });
115
+ return { error };
116
+ }
117
+ }
118
+ async deleteFileStorage(fileStorageId) {
119
+ if (fileStorageId === '') {
120
+ return;
121
+ }
122
+ this.cachedContent.delete(fileStorageId);
123
+ await this.instance.caches.delete({
124
+ name: fileStorageId,
125
+ });
126
+ }
127
+ createChat(options) {
128
+ try {
129
+ const { storageId, model, instructions, history: providedHistory, files, } = options;
130
+ const cachedContent = storageId
131
+ ? this.cachedContent.get(storageId)
132
+ : undefined;
133
+ const history = providedHistory
134
+ ? [
135
+ {
136
+ role: GoogleGenerativeAI_typedefs_1.GoogleGenerativeAIRoles.User,
137
+ parts: GoogleGenerativeAI_entity_1.GoogleGenerativeAIEntity.getTextParts(providedHistory),
138
+ },
139
+ ]
140
+ : [];
141
+ if (!cachedContent && files) {
142
+ const fileParts = GoogleGenerativeAI_entity_1.GoogleGenerativeAIEntity.getFileDataParts(files);
143
+ history.push({
144
+ role: GoogleGenerativeAI_typedefs_1.GoogleGenerativeAIRoles.User,
145
+ parts: fileParts,
146
+ });
147
+ }
148
+ const chatSession = this.instance.chats.create({
149
+ model: model.name,
150
+ history,
151
+ config: {
152
+ systemInstruction: instructions,
153
+ temperature: model.config.temperature,
154
+ ...(cachedContent && { cachedContent: cachedContent.name }),
155
+ },
156
+ });
157
+ const chatId = (0, uuid_1.v4)();
158
+ this.chatSessions.set(chatId, chatSession);
159
+ return Promise.resolve({ chatId });
160
+ }
161
+ catch (error) {
162
+ this.logger
163
+ .child('createChat')
164
+ .error('Error creating chat', {
165
+ error,
166
+ options,
167
+ });
168
+ return Promise.resolve({ error });
169
+ }
170
+ }
171
+ deleteChat(chatId) {
172
+ this.chatSessions.delete(chatId);
173
+ return Promise.resolve();
174
+ }
175
+ createAssistant() {
176
+ return Promise.resolve({
177
+ assistantId: '',
178
+ });
179
+ }
180
+ deleteAssistant() {
181
+ return Promise.resolve();
182
+ }
183
+ async assistInChat(options) {
184
+ try {
185
+ const { message, chatId, } = options;
186
+ const chatSession = this.chatSessions.get(chatId);
187
+ if (!chatSession) {
188
+ throw new Error('Chat session not found');
189
+ }
190
+ const chatResponse = await chatSession.sendMessage({
191
+ message: message.content,
192
+ });
193
+ return {
194
+ text: chatResponse.text ?? '',
195
+ };
196
+ }
197
+ catch (error) {
198
+ this.logger
199
+ .child('assistInChat')
200
+ .error('Error assisting in chat', {
201
+ error,
202
+ options,
203
+ });
204
+ return { error };
205
+ }
206
+ }
207
+ }
208
+ exports.GoogleGenerativeAIAssistanceService = GoogleGenerativeAIAssistanceService;
209
+ //# sourceMappingURL=GoogleGenerativeAIAssistance.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GoogleGenerativeAIAssistance.service.js","sourceRoot":"","sources":["../../../../src/providers/GoogleGenerativeAI/services/GoogleGenerativeAIAssistance.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { Logger } from '@mate-academy/core';
2
+ import { GoogleGenAI } from '@google/genai';
3
+ import { LLMCompletionResult, LLMInstanceOptions, LLMProviders, LLMSendMessageOptions } from '../../../LLMService.typedefs';
4
+ import { LLMCompletionService } from '../../../services';
5
+ export declare class GoogleGenerativeAICompletionService extends LLMCompletionService<LLMProviders.GoogleGenerativeAI> {
6
+ #private;
7
+ constructor(logger: Logger, options: LLMInstanceOptions[LLMProviders.GoogleGenerativeAI]);
8
+ protected get instance(): GoogleGenAI;
9
+ sendMessage(options: LLMSendMessageOptions<typeof this.provider>): Promise<LLMCompletionResult>;
10
+ }
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GoogleGenerativeAICompletionService = void 0;
4
+ const genai_1 = require("@google/genai");
5
+ const LLMService_typedefs_1 = require("../../../LLMService.typedefs");
6
+ const services_1 = require("../../../services");
7
+ const LLMService_entity_1 = require("../../../LLMService.entity");
8
+ const GoogleGenerativeAI_entity_1 = require("../GoogleGenerativeAI.entity");
9
+ class GoogleGenerativeAICompletionService extends services_1.LLMCompletionService {
10
+ #instance = null;
11
+ constructor(logger, options) {
12
+ super(LLMService_typedefs_1.LLMProviders.GoogleGenerativeAI, logger, options);
13
+ }
14
+ get instance() {
15
+ if (!this.#instance) {
16
+ this.#instance = new genai_1.GoogleGenAI({
17
+ apiKey: this.options.apiKey,
18
+ });
19
+ }
20
+ return this.#instance;
21
+ }
22
+ async sendMessage(options) {
23
+ try {
24
+ const { model, message, history = [], instructions, } = options;
25
+ const countTokensFn = GoogleGenerativeAI_entity_1.GoogleGenerativeAIEntity
26
+ .getCountTokensFn(this.instance);
27
+ const combinedMessages = await LLMService_entity_1.LLMServiceEntity.combineMessagesWithLimit({
28
+ history,
29
+ message: message.content,
30
+ model,
31
+ countTokensFn,
32
+ });
33
+ const result = await this.instance.models.generateContent(GoogleGenerativeAI_entity_1.GoogleGenerativeAIEntity.getContentParameters(model, combinedMessages, instructions));
34
+ return {
35
+ text: result.text ?? '',
36
+ };
37
+ }
38
+ catch (error) {
39
+ this.logger
40
+ .child('sendMessage')
41
+ .error('Error sending message', {
42
+ error,
43
+ options,
44
+ });
45
+ return { error };
46
+ }
47
+ }
48
+ }
49
+ exports.GoogleGenerativeAICompletionService = GoogleGenerativeAICompletionService;
50
+ //# sourceMappingURL=GoogleGenerativeAICompletion.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GoogleGenerativeAICompletion.service.js","sourceRoot":"","sources":["../../../../src/providers/GoogleGenerativeAI/services/GoogleGenerativeAICompletion.service.ts"],"names":[],"mappings":";;;AACA,yCAA4C;AAC5C,sEAKsC;AACtC,gDAE2B;AAC3B,kEAA8D;AAC9D,4EAAwE;AAExE,MAAa,mCACX,SAAQ,+BAAqD;IAC7D,SAAS,GAAuB,IAAI,CAAC;IAErC,YACE,MAAc,EACd,OAA4D;QAE5D,KAAK,CAAC,kCAAY,CAAC,kBAAkB,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1D,CAAC;IAED,IAAc,QAAQ;QACpB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,GAAG,IAAI,mBAAW,CAAC;gBAC/B,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;aAC5B,CAAC,CAAC;QACL,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,WAAW,CACf,OAAoD;QAEpD,IAAI,CAAC;YACH,MAAM,EACJ,KAAK,EACL,OAAO,EACP,OAAO,GAAG,EAAE,EACZ,YAAY,GACb,GAAG,OAAO,CAAC;YAEZ,MAAM,aAAa,GAAG,oDAAwB;iBAC3C,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAEnC,MAAM,gBAAgB,GAAG,MAAM,oCAAgB,CAAC,wBAAwB,CAAC;gBACvE,OAAO;gBACP,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,KAAK;gBACL,aAAa;aACd,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,eAAe,CACvD,oDAAwB,CAAC,oBAAoB,CAC3C,KAAK,EACL,gBAAgB,EAChB,YAAY,CACb,CACF,CAAC;YAEF,OAAO;gBACL,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE;aACxB,CAAC;QACJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,IAAI,CAAC,MAAM;iBACR,KAAK,CAAC,aAAa,CAAC;iBACpB,KAAK,CAAC,uBAAuB,EAAE;gBAC9B,KAAK;gBACL,OAAO;aACR,CAAC,CAAC;YAEL,OAAO,EAAE,KAAK,EAAE,CAAC;QACnB,CAAC;IACH,CAAC;CACF;AAhED,kFAgEC"}
@@ -0,0 +1,2 @@
1
+ export * from './GoogleGenerativeAICompletion.service';
2
+ export * from './GoogleGenerativeAIAssistance.service';
@@ -0,0 +1,19 @@
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("./GoogleGenerativeAICompletion.service"), exports);
18
+ __exportStar(require("./GoogleGenerativeAIAssistance.service"), exports);
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/providers/GoogleGenerativeAI/services/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yEAAuD;AACvD,yEAAuD"}
@@ -0,0 +1,5 @@
1
+ import { LLMProviderModelsByPurpose, LLMProviders, LLMPurposes, LLMServiceBuilder } from '../../LLMService.typedefs';
2
+ export declare const OPEN_AI_MODELS: LLMProviderModelsByPurpose<LLMPurposes, LLMProviders.OpenAI>;
3
+ export declare const OPEN_AI_SERVICE_BUILDERS: {
4
+ [purpose in LLMPurposes]: (LLMServiceBuilder<LLMProviders.OpenAI, purpose> | null);
5
+ };
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OPEN_AI_SERVICE_BUILDERS = exports.OPEN_AI_MODELS = void 0;
4
+ const LLMService_typedefs_1 = require("../../LLMService.typedefs");
5
+ const OpenAI_typedefs_1 = require("./OpenAI.typedefs");
6
+ const services_1 = require("./services");
7
+ const functional_utils_1 = require("../../functional.utils");
8
+ const OPEN_AI_AVAILABLE_MODELS = {
9
+ [OpenAI_typedefs_1.OpenAIModelNames.GPT_4_OMNI]: {
10
+ name: OpenAI_typedefs_1.OpenAIModelNames.GPT_4_OMNI,
11
+ limits: {
12
+ maxInputTokens: 128_000,
13
+ maxOutputTokens: 16_384,
14
+ },
15
+ config: {
16
+ temperature: 0.2,
17
+ },
18
+ },
19
+ [OpenAI_typedefs_1.OpenAIModelNames.GPT_4_1]: {
20
+ name: OpenAI_typedefs_1.OpenAIModelNames.GPT_4_1,
21
+ limits: {
22
+ maxInputTokens: 1_047_576,
23
+ maxOutputTokens: 32_768,
24
+ },
25
+ config: {
26
+ temperature: 0.2,
27
+ },
28
+ },
29
+ };
30
+ exports.OPEN_AI_MODELS = {
31
+ [LLMService_typedefs_1.LLMPurposes.Completion]: (0, functional_utils_1.pick)(OPEN_AI_AVAILABLE_MODELS, [
32
+ OpenAI_typedefs_1.OpenAIModelNames.GPT_4_OMNI,
33
+ OpenAI_typedefs_1.OpenAIModelNames.GPT_4_1,
34
+ ]),
35
+ [LLMService_typedefs_1.LLMPurposes.Assistance]: (0, functional_utils_1.pick)(OPEN_AI_AVAILABLE_MODELS, [
36
+ OpenAI_typedefs_1.OpenAIModelNames.GPT_4_OMNI,
37
+ OpenAI_typedefs_1.OpenAIModelNames.GPT_4_1,
38
+ ]),
39
+ };
40
+ exports.OPEN_AI_SERVICE_BUILDERS = {
41
+ [LLMService_typedefs_1.LLMPurposes.Completion]: (logger, options) => (new services_1.OpenAICompletionService(logger, options)),
42
+ [LLMService_typedefs_1.LLMPurposes.Assistance]: (logger, options) => (new services_1.OpenAIAssistanceService(logger, options)),
43
+ };
44
+ //# sourceMappingURL=OpenAI.constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OpenAI.constants.js","sourceRoot":"","sources":["../../../src/providers/OpenAI/OpenAI.constants.ts"],"names":[],"mappings":";;;AAAA,mEAMmC;AACnC,uDAAqD;AACrD,yCAGoB;AACpB,6DAA8C;AAE9C,MAAM,wBAAwB,GAE1B;IACF,CAAC,kCAAgB,CAAC,UAAU,CAAC,EAAE;QAC7B,IAAI,EAAE,kCAAgB,CAAC,UAAU;QACjC,MAAM,EAAE;YACN,cAAc,EAAE,OAAO;YACvB,eAAe,EAAE,MAAM;SACxB;QACD,MAAM,EAAE;YACN,WAAW,EAAE,GAAG;SACjB;KACF;IACD,CAAC,kCAAgB,CAAC,OAAO,CAAC,EAAE;QAC1B,IAAI,EAAE,kCAAgB,CAAC,OAAO;QAC9B,MAAM,EAAE;YACN,cAAc,EAAE,SAAS;YACzB,eAAe,EAAE,MAAM;SACxB;QACD,MAAM,EAAE;YACN,WAAW,EAAE,GAAG;SACjB;KACF;CACF,CAAC;AAEW,QAAA,cAAc,GAGvB;IACF,CAAC,iCAAW,CAAC,UAAU,CAAC,EAAE,IAAA,uBAAI,EAC5B,wBAAwB,EACxB;QACE,kCAAgB,CAAC,UAAU;QAC3B,kCAAgB,CAAC,OAAO;KACzB,CACF;IACD,CAAC,iCAAW,CAAC,UAAU,CAAC,EAAE,IAAA,uBAAI,EAC5B,wBAAwB,EACxB;QACE,kCAAgB,CAAC,UAAU;QAC3B,kCAAgB,CAAC,OAAO;KACzB,CACF;CACF,CAAC;AAEW,QAAA,wBAAwB,GAIjC;IACF,CAAC,iCAAW,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,CAC7C,IAAI,kCAAuB,CAAC,MAAM,EAAE,OAAO,CAAC,CAC7C;IACD,CAAC,iCAAW,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,CAC7C,IAAI,kCAAuB,CAAC,MAAM,EAAE,OAAO,CAAC,CAC7C;CACF,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare class OpenAIEntity {
2
+ static getCountTokensFn(): (messages: string[]) => Promise<number>;
3
+ }
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OpenAIEntity = void 0;
4
+ const js_tiktoken_1 = require("js-tiktoken");
5
+ class OpenAIEntity {
6
+ static getCountTokensFn() {
7
+ return (messages) => {
8
+ const encoder = (0, js_tiktoken_1.getEncoding)('o200k_base');
9
+ const tokens = messages.reduce((acc, message) => acc + encoder.encode(message).length, 0);
10
+ return Promise.resolve(tokens);
11
+ };
12
+ }
13
+ }
14
+ exports.OpenAIEntity = OpenAIEntity;
15
+ //# sourceMappingURL=OpenAI.entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OpenAI.entity.js","sourceRoot":"","sources":["../../../src/providers/OpenAI/OpenAI.entity.ts"],"names":[],"mappings":";;;AAAA,6CAA0C;AAE1C,MAAa,YAAY;IACvB,MAAM,CAAC,gBAAgB;QACrB,OAAO,CACL,QAAkB,EACD,EAAE;YACnB,MAAM,OAAO,GAAG,IAAA,yBAAW,EAAC,YAAY,CAAC,CAAC;YAC1C,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAC5B,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,EACtD,CAAC,CACF,CAAC;YAEF,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC,CAAC;IACJ,CAAC;CACF;AAdD,oCAcC"}
@@ -0,0 +1,8 @@
1
+ export declare enum OpenAIModelNames {
2
+ GPT_4_OMNI = "gpt-4o",
3
+ GPT_4_1 = "gpt-4.1"
4
+ }
5
+ export declare enum OpenAIRoles {
6
+ User = "user",
7
+ Assistant = "assistant"
8
+ }
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OpenAIRoles = exports.OpenAIModelNames = void 0;
4
+ var OpenAIModelNames;
5
+ (function (OpenAIModelNames) {
6
+ OpenAIModelNames["GPT_4_OMNI"] = "gpt-4o";
7
+ OpenAIModelNames["GPT_4_1"] = "gpt-4.1";
8
+ })(OpenAIModelNames || (exports.OpenAIModelNames = OpenAIModelNames = {}));
9
+ var OpenAIRoles;
10
+ (function (OpenAIRoles) {
11
+ OpenAIRoles["User"] = "user";
12
+ OpenAIRoles["Assistant"] = "assistant";
13
+ })(OpenAIRoles || (exports.OpenAIRoles = OpenAIRoles = {}));
14
+ //# sourceMappingURL=OpenAI.typedefs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OpenAI.typedefs.js","sourceRoot":"","sources":["../../../src/providers/OpenAI/OpenAI.typedefs.ts"],"names":[],"mappings":";;;AAAA,IAAY,gBAGX;AAHD,WAAY,gBAAgB;IAC1B,yCAAqB,CAAA;IACrB,uCAAmB,CAAA;AACrB,CAAC,EAHW,gBAAgB,gCAAhB,gBAAgB,QAG3B;AAED,IAAY,WAGX;AAHD,WAAY,WAAW;IACrB,4BAAa,CAAA;IACb,sCAAuB,CAAA;AACzB,CAAC,EAHW,WAAW,2BAAX,WAAW,QAGtB"}
@@ -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 OpenAIServiceFactory extends LLMServicePurposeFactory<LLMProviders.OpenAI> {
5
+ createService<Purpose extends LLMPurposes>(purpose: Purpose, logger: Logger, options: LLMInstanceOptions[LLMProviders.OpenAI]): LLMServiceByPurpose<LLMProviders.OpenAI>[Purpose];
6
+ }
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OpenAIServiceFactory = void 0;
4
+ const LLMService_typedefs_1 = require("../../LLMService.typedefs");
5
+ const services_1 = require("../../services");
6
+ const OpenAI_constants_1 = require("./OpenAI.constants");
7
+ class OpenAIServiceFactory extends services_1.LLMServicePurposeFactory {
8
+ createService(purpose, logger, options) {
9
+ const serviceBuilder = OpenAI_constants_1.OPEN_AI_SERVICE_BUILDERS[purpose];
10
+ if (!serviceBuilder) {
11
+ throw new Error(`Purpose [${purpose}] is not supported for [${LLMService_typedefs_1.LLMProviders.OpenAI}] service`);
12
+ }
13
+ return serviceBuilder(logger, options);
14
+ }
15
+ }
16
+ exports.OpenAIServiceFactory = OpenAIServiceFactory;
17
+ //# sourceMappingURL=OpenAIService.factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OpenAIService.factory.js","sourceRoot":"","sources":["../../../src/providers/OpenAI/OpenAIService.factory.ts"],"names":[],"mappings":";;;AACA,mEAKmC;AACnC,6CAA0D;AAC1D,yDAA8D;AAE9D,MAAa,oBAAqB,SAAQ,mCAEzC;IACC,aAAa,CAGX,OAAgB,EAChB,MAAc,EACd,OAAgD;QAEhD,MAAM,cAAc,GAAG,2CAAwB,CAAC,OAAO,CAAC,CAAC;QAEzD,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,YAAY,OAAO,2BAA2B,kCAAY,CAAC,MAAM,WAAW,CAAC,CAAC;QAChG,CAAC;QAED,OAAO,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC;CACF;AAlBD,oDAkBC"}
@@ -0,0 +1,19 @@
1
+ import { Logger } from '@mate-academy/core';
2
+ import { OpenAI } from 'openai';
3
+ import { LLMAssistanceOptions, LLMAssistanceResult, LLMCreateAssistantOptions, LLMCreateAssistantResult, LLMCreateChatOptions, LLMCreateChatResult, LLMCreateFileStorageOptions, LLMCreateFileStorageResult, LLMInstanceOptions, LLMProviders, LLMUploadFile, LLMUploadFileResult } from '../../../LLMService.typedefs';
4
+ import { LLMAssistanceService } from '../../../services';
5
+ export declare class OpenAIAssistanceService extends LLMAssistanceService<LLMProviders.OpenAI> {
6
+ #private;
7
+ private uploadedFiles;
8
+ constructor(logger: Logger, options: LLMInstanceOptions[LLMProviders.OpenAI]);
9
+ protected get instance(): OpenAI;
10
+ uploadFile(file: LLMUploadFile): Promise<LLMUploadFileResult>;
11
+ deleteFile(fileId: string): Promise<void>;
12
+ createFileStorage(options: LLMCreateFileStorageOptions<LLMProviders.OpenAI>): Promise<LLMCreateFileStorageResult>;
13
+ deleteFileStorage(fileStorageId: string): Promise<void>;
14
+ createChat(options: LLMCreateChatOptions<LLMProviders.OpenAI>): Promise<LLMCreateChatResult>;
15
+ deleteChat(chatId: string): Promise<void>;
16
+ createAssistant(options: LLMCreateAssistantOptions<LLMProviders.OpenAI>): Promise<LLMCreateAssistantResult>;
17
+ deleteAssistant(assistantId: string): Promise<void>;
18
+ assistInChat(options: LLMAssistanceOptions<LLMProviders.OpenAI>): Promise<LLMAssistanceResult>;
19
+ }