@mate-academy/llm-gateway 2.1.8 → 2.2.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.
- package/README.md +28 -13
- package/dist/LLMService.typedefs.d.ts +44 -22
- package/dist/LLMService.typedefs.js +1 -1
- package/dist/LLMService.typedefs.js.map +1 -1
- package/dist/providers/GoogleGenerativeAI/GoogleGenerativeAI.entity.d.ts +4 -2
- package/dist/providers/GoogleGenerativeAI/GoogleGenerativeAI.entity.js +1 -1
- package/dist/providers/GoogleGenerativeAI/GoogleGenerativeAI.entity.js.map +1 -1
- package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAIAssistance.service.d.ts +3 -3
- package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAIAssistance.service.js +1 -1
- package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAIAssistance.service.js.map +1 -1
- package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAICompletion.service.js +1 -1
- package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAICompletion.service.js.map +1 -1
- package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAISpeechToText.service.js +1 -1
- package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAISpeechToText.service.js.map +1 -1
- package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAITextToSpeech.service.js +1 -1
- package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAITextToSpeech.service.js.map +1 -1
- package/dist/providers/OpenAI/OpenAI.entity.d.ts +11 -5
- package/dist/providers/OpenAI/OpenAI.entity.js +1 -1
- package/dist/providers/OpenAI/OpenAI.entity.js.map +1 -1
- package/dist/providers/OpenAI/services/OpenAIAssistance.service.d.ts +2 -2
- package/dist/providers/OpenAI/services/OpenAIAssistance.service.js +1 -1
- package/dist/providers/OpenAI/services/OpenAIAssistance.service.js.map +1 -1
- package/dist/providers/OpenAI/services/OpenAICompletion.service.js +1 -1
- package/dist/providers/OpenAI/services/OpenAICompletion.service.js.map +1 -1
- package/dist/providers/OpenAI/services/OpenAISpeechToText.service.js +1 -1
- package/dist/providers/OpenAI/services/OpenAISpeechToText.service.js.map +1 -1
- package/dist/providers/OpenAI/services/OpenAITextToSpeech.service.js +1 -1
- package/dist/providers/OpenAI/services/OpenAITextToSpeech.service.js.map +1 -1
- package/dist/services/LLMAssistanceService.abstract.d.ts +4 -4
- package/dist/services/LLMAssistanceService.abstract.js.map +1 -1
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -19,6 +19,7 @@ npm install @mate-academy/llm-gateway
|
|
|
19
19
|
- Standardized assistance service interface with file handling
|
|
20
20
|
- Speech-to-text transcription capabilities
|
|
21
21
|
- Text-to-speech generation capabilities
|
|
22
|
+
- Abort signal support for cancelling long-running operations
|
|
22
23
|
- Token counting functionality for precise context management
|
|
23
24
|
- Type-safe prompt templates with dynamic replacements
|
|
24
25
|
- Factory pattern for easy provider selection
|
|
@@ -330,6 +331,32 @@ if (tokenCount > 50000) {
|
|
|
330
331
|
}
|
|
331
332
|
```
|
|
332
333
|
|
|
334
|
+
#### Abort Signal Support
|
|
335
|
+
|
|
336
|
+
All operations support abort signals for cancellation:
|
|
337
|
+
|
|
338
|
+
```typescript
|
|
339
|
+
const controller = new AbortController();
|
|
340
|
+
|
|
341
|
+
// Cancel after 30 seconds
|
|
342
|
+
setTimeout(() => controller.abort(), 30000);
|
|
343
|
+
|
|
344
|
+
const result = await completionService.sendMessage({
|
|
345
|
+
message: {
|
|
346
|
+
role: LLMRoles.User,
|
|
347
|
+
content: [{ type: LLMMessageContentType.TEXT, text: 'Long request...' }],
|
|
348
|
+
},
|
|
349
|
+
model: preferredModel,
|
|
350
|
+
abortSignal: controller.signal,
|
|
351
|
+
});
|
|
352
|
+
|
|
353
|
+
if (result.error) {
|
|
354
|
+
console.error('Operation failed or was cancelled:', result.error);
|
|
355
|
+
} else {
|
|
356
|
+
console.log('Success:', result.text);
|
|
357
|
+
}
|
|
358
|
+
```
|
|
359
|
+
|
|
333
360
|
## API Reference
|
|
334
361
|
|
|
335
362
|
### LLMProviders
|
|
@@ -383,28 +410,16 @@ Interface for chat/assistance services with file handling capabilities.
|
|
|
383
410
|
|
|
384
411
|
#### Methods
|
|
385
412
|
|
|
386
|
-
- `uploadFile(
|
|
387
|
-
- Parameters: `LLMUploadFile` with `name`, `path`, and `mimeType`
|
|
388
|
-
- Returns: `Promise<LLMUploadFileResult>`
|
|
413
|
+
- `uploadFile(fileOptions)`: Upload a file to the LLM service
|
|
389
414
|
- `deleteFile(fileId)`: Delete a file from the LLM service
|
|
390
415
|
- `createFileStorage(options)`: Create a file storage for organizing files
|
|
391
|
-
- Parameters: `LLMCreateFileStorageOptions` with `uploadedFiles`, `model`, and optional `instructions`
|
|
392
|
-
- Returns: `Promise<LLMCreateFileStorageResult>`
|
|
393
416
|
- `deleteFileStorage(fileStorageId)`: Delete a file storage
|
|
394
417
|
- `createAssistant(options)`: Create an AI assistant with specific instructions
|
|
395
|
-
- Parameters: `LLMCreateAssistantOptions` with `model`, optional `instructions` and `storageIds`
|
|
396
|
-
- Returns: `Promise<LLMCreateAssistantResult>`
|
|
397
418
|
- `deleteAssistant(assistantId)`: Delete an assistant
|
|
398
419
|
- `createChat(options)`: Create a new chat/conversation
|
|
399
|
-
- Parameters: `LLMCreateChatOptions` with `model`, optional `instructions`, `history`, `files`, and `storageId`
|
|
400
|
-
- Returns: `Promise<LLMCreateChatResult>`
|
|
401
420
|
- `deleteChat(chatId)`: Delete a chat
|
|
402
421
|
- `assistInChat(options)`: Send a message in an existing chat and get an assistant response
|
|
403
|
-
- Parameters: `LLMAssistanceOptions` with `model`, `message`, `chatId`, and `assistantId`
|
|
404
|
-
- Returns: `Promise<LLMAssistanceResult>`
|
|
405
422
|
- `countTokens(messages, model)`: Count tokens in messages for context management
|
|
406
|
-
- Parameters: `messages` array of `LLMCompletionMessage`, `model` of type `LLMModel<Provider>`
|
|
407
|
-
- Returns: `Promise<number>` - Total number of tokens in the messages
|
|
408
423
|
|
|
409
424
|
### LLMSpeechToTextService
|
|
410
425
|
|
|
@@ -113,7 +113,8 @@ export declare enum LLMRoles {
|
|
|
113
113
|
export declare enum LLMMessageContentType {
|
|
114
114
|
TEXT = "text",
|
|
115
115
|
IMAGE_URL = "image_url",
|
|
116
|
-
IMAGE_FILE = "image_file"
|
|
116
|
+
IMAGE_FILE = "image_file",
|
|
117
|
+
AUDIO_FILE = "audio_file"
|
|
117
118
|
}
|
|
118
119
|
/**
|
|
119
120
|
* Represents a text part in a message in an LLM conversation.
|
|
@@ -145,15 +146,27 @@ export interface LLMMessageImageFileContent {
|
|
|
145
146
|
};
|
|
146
147
|
}
|
|
147
148
|
/**
|
|
148
|
-
* Union type for all possible message content types in an LLM
|
|
149
|
+
* Union type for all possible message content types in an LLM completion.
|
|
149
150
|
*/
|
|
150
|
-
export type
|
|
151
|
+
export type LLMCompletionsMessageContent = LLMMessageTextContent | LLMMessageImageUrlContent;
|
|
151
152
|
/**
|
|
152
|
-
*
|
|
153
|
+
* Union type for all possible message content types in an LLM assistance.
|
|
154
|
+
*/
|
|
155
|
+
export type LLMAssistanceMessageContent = LLMMessageTextContent | LLMMessageImageUrlContent | LLMMessageImageFileContent;
|
|
156
|
+
/**
|
|
157
|
+
* Represents a message in an LLM completion request.
|
|
153
158
|
*/
|
|
154
159
|
export interface LLMCompletionMessage {
|
|
155
160
|
role: LLMRoles;
|
|
156
|
-
content:
|
|
161
|
+
content: LLMCompletionsMessageContent[];
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Represents a message in an LLM assistance request.
|
|
165
|
+
*/
|
|
166
|
+
export interface LLMAssistanceMessage {
|
|
167
|
+
role: LLMRoles;
|
|
168
|
+
content: LLMAssistanceMessageContent[];
|
|
169
|
+
attachments?: LLMUploadedFile[];
|
|
157
170
|
}
|
|
158
171
|
/**
|
|
159
172
|
* Represents an error that occurred during an LLM request.
|
|
@@ -172,11 +185,18 @@ export type LLMRequestResult<ResponseType> = ResponseType | {
|
|
|
172
185
|
export type LLMCompletionResult = LLMRequestResult<{
|
|
173
186
|
text: string;
|
|
174
187
|
}>;
|
|
188
|
+
/**
|
|
189
|
+
* Base options for LLM methods that can be extended by specific method options.
|
|
190
|
+
* Contains common properties like abort signal for cancellation.
|
|
191
|
+
*/
|
|
192
|
+
export interface LLMMethodBaseOptions {
|
|
193
|
+
abortSignal?: AbortSignal;
|
|
194
|
+
}
|
|
175
195
|
/**
|
|
176
196
|
* Options for sending a message to an LLM service.
|
|
177
197
|
* @template Provider - The LLM provider type
|
|
178
198
|
*/
|
|
179
|
-
export interface LLMSendMessageOptions<Provider extends LLMProviders> {
|
|
199
|
+
export interface LLMSendMessageOptions<Provider extends LLMProviders> extends LLMMethodBaseOptions {
|
|
180
200
|
message: LLMCompletionMessage;
|
|
181
201
|
model: LLMModel<Provider>;
|
|
182
202
|
history?: LLMCompletionMessage[];
|
|
@@ -207,11 +227,18 @@ export declare enum LLMUploadFileMimeTypes {
|
|
|
207
227
|
AUDIO_WAV = "audio/wav",
|
|
208
228
|
AUDIO_WEBM = "audio/webm"
|
|
209
229
|
}
|
|
230
|
+
/**
|
|
231
|
+
* Represents the MIME types for images that can be uploaded to LLM services.
|
|
232
|
+
*/
|
|
210
233
|
export type LLMImageMimeType = LLMUploadFileMimeTypes.IMAGE_PNG | LLMUploadFileMimeTypes.IMAGE_JPEG | LLMUploadFileMimeTypes.IMAGE_JPG | LLMUploadFileMimeTypes.IMAGE_GIF | LLMUploadFileMimeTypes.IMAGE_WEBP | LLMUploadFileMimeTypes.IMAGE_SVG_XML | LLMUploadFileMimeTypes.IMAGE_BMP;
|
|
234
|
+
/**
|
|
235
|
+
* Represents the MIME types for audio files that can be uploaded to LLM services.
|
|
236
|
+
*/
|
|
237
|
+
export type LLMAudioMimeType = LLMUploadFileMimeTypes.AUDIO_MP3 | LLMUploadFileMimeTypes.AUDIO_MPEG | LLMUploadFileMimeTypes.AUDIO_WAV | LLMUploadFileMimeTypes.AUDIO_WEBM;
|
|
211
238
|
/**
|
|
212
239
|
* Represents a file to be uploaded to an LLM service.
|
|
213
240
|
*/
|
|
214
|
-
export interface
|
|
241
|
+
export interface LLMUploadFileOptions extends LLMMethodBaseOptions {
|
|
215
242
|
mimeType: LLMUploadFileMimeTypes;
|
|
216
243
|
name: string;
|
|
217
244
|
path: string;
|
|
@@ -219,7 +246,7 @@ export interface LLMUploadFile {
|
|
|
219
246
|
/**
|
|
220
247
|
* Represents a file that has been successfully uploaded to an LLM service.
|
|
221
248
|
*/
|
|
222
|
-
export interface LLMUploadedFile extends
|
|
249
|
+
export interface LLMUploadedFile extends LLMUploadFileOptions {
|
|
223
250
|
fileId: string;
|
|
224
251
|
}
|
|
225
252
|
/**
|
|
@@ -230,7 +257,7 @@ export type LLMUploadFileResult = LLMRequestResult<LLMUploadedFile>;
|
|
|
230
257
|
* Options for creating a file storage for a specific LLM provider.
|
|
231
258
|
* @template Provider - The LLM provider type
|
|
232
259
|
*/
|
|
233
|
-
export interface LLMCreateFileStorageOptions<Provider extends LLMProviders> {
|
|
260
|
+
export interface LLMCreateFileStorageOptions<Provider extends LLMProviders> extends LLMMethodBaseOptions {
|
|
234
261
|
uploadedFiles: LLMUploadedFile[];
|
|
235
262
|
model: LLMModel<Provider>;
|
|
236
263
|
instructions?: string;
|
|
@@ -249,7 +276,7 @@ export type LLMCreateFileStorageResult = LLMRequestResult<LLMCreatedFileStorage>
|
|
|
249
276
|
* Options for creating an assistant with a specific LLM provider.
|
|
250
277
|
* @template Provider - The LLM provider type
|
|
251
278
|
*/
|
|
252
|
-
export interface LLMCreateAssistantOptions<Provider extends LLMProviders> {
|
|
279
|
+
export interface LLMCreateAssistantOptions<Provider extends LLMProviders> extends LLMMethodBaseOptions {
|
|
253
280
|
model: LLMModel<Provider>;
|
|
254
281
|
instructions?: string;
|
|
255
282
|
storageIds?: string[];
|
|
@@ -269,10 +296,10 @@ export type LLMCreateAssistantResult = LLMRequestResult<LLMCreatedAssistant>;
|
|
|
269
296
|
* Options for creating a chat session with a specific LLM provider.
|
|
270
297
|
* @template Provider - The LLM provider type
|
|
271
298
|
*/
|
|
272
|
-
export interface LLMCreateChatOptions<Provider extends LLMProviders> {
|
|
299
|
+
export interface LLMCreateChatOptions<Provider extends LLMProviders> extends LLMMethodBaseOptions {
|
|
273
300
|
model: LLMModel<Provider>;
|
|
274
301
|
instructions?: string;
|
|
275
|
-
history?:
|
|
302
|
+
history?: LLMAssistanceMessage[];
|
|
276
303
|
files?: LLMUploadedFile[];
|
|
277
304
|
storageId?: string;
|
|
278
305
|
}
|
|
@@ -286,17 +313,11 @@ export interface LLMCreatedChat {
|
|
|
286
313
|
* Result type for chat creation operations.
|
|
287
314
|
*/
|
|
288
315
|
export type LLMCreateChatResult = LLMRequestResult<LLMCreatedChat>;
|
|
289
|
-
/**
|
|
290
|
-
* Extends LLMMessage with optional attachments
|
|
291
|
-
*/
|
|
292
|
-
export interface LLMAssistanceMessage extends LLMCompletionMessage {
|
|
293
|
-
attachments?: LLMUploadedFile[];
|
|
294
|
-
}
|
|
295
316
|
/**
|
|
296
317
|
* Options for using an assistant with a specific LLM provider.
|
|
297
318
|
* @template Provider - The LLM provider type
|
|
298
319
|
*/
|
|
299
|
-
export interface LLMAssistanceOptions {
|
|
320
|
+
export interface LLMAssistanceOptions extends LLMMethodBaseOptions {
|
|
300
321
|
message: LLMAssistanceMessage;
|
|
301
322
|
chatId: string;
|
|
302
323
|
assistantId: string;
|
|
@@ -327,15 +348,16 @@ export interface CombineMessagesOptions<Provider extends LLMProviders, TokenCoun
|
|
|
327
348
|
message: LLMCompletionMessage;
|
|
328
349
|
model: LLMModel<Provider>;
|
|
329
350
|
instance: LLMInstances[Provider];
|
|
351
|
+
logger: Logger;
|
|
330
352
|
countTokensFn: TokenCountFunction;
|
|
331
353
|
}
|
|
332
354
|
/**
|
|
333
355
|
* Options for transcribing audio to text using an LLM service.
|
|
334
356
|
* @template Provider - The LLM provider type
|
|
335
357
|
*/
|
|
336
|
-
export interface LLMTranscribeOptions<Provider extends LLMProviders> {
|
|
358
|
+
export interface LLMTranscribeOptions<Provider extends LLMProviders> extends LLMMethodBaseOptions {
|
|
337
359
|
pathToAudio: string;
|
|
338
|
-
mimeType?:
|
|
360
|
+
mimeType?: LLMAudioMimeType;
|
|
339
361
|
model: LLMModel<Provider>;
|
|
340
362
|
}
|
|
341
363
|
/**
|
|
@@ -355,7 +377,7 @@ export type LLMSpeechOptions = {
|
|
|
355
377
|
* Options for creating speech from text using an LLM service.
|
|
356
378
|
* @template Provider - The LLM provider type
|
|
357
379
|
*/
|
|
358
|
-
export interface LLMCreateSpeechOptions<Provider extends LLMProviders> {
|
|
380
|
+
export interface LLMCreateSpeechOptions<Provider extends LLMProviders> extends LLMMethodBaseOptions {
|
|
359
381
|
text: string;
|
|
360
382
|
model: LLMModel<Provider>;
|
|
361
383
|
instructions?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var LLMProviders,LLMPurposes,LLMRoles,LLMMessageContentType,LLMUploadFileMimeTypes;Object.defineProperty(exports,"__esModule",{value:!0}),exports.LLMUploadFileMimeTypes=exports.LLMMessageContentType=exports.LLMRoles=exports.LLMPurposes=exports.LLMProviders=void 0,function(e){e.OpenAI="OpenAI",e.GoogleGenerativeAI="GoogleGenerativeAI"}(LLMProviders||(exports.LLMProviders=LLMProviders={})),function(e){e.Completion="completion",e.Assistance="assistance",e.SpeechToText="speech_to_text",e.TextToSpeech="text_to_speech"}(LLMPurposes||(exports.LLMPurposes=LLMPurposes={})),function(e){e.User="user",e.Assistant="assistant"}(LLMRoles||(exports.LLMRoles=LLMRoles={})),function(e){e.TEXT="text",e.IMAGE_URL="image_url",e.IMAGE_FILE="image_file"}(LLMMessageContentType||(exports.LLMMessageContentType=LLMMessageContentType={})),function(e){e.IMAGE_PNG="image/png",e.IMAGE_JPEG="image/jpeg",e.IMAGE_JPG="image/jpg",e.IMAGE_GIF="image/gif",e.IMAGE_WEBP="image/webp",e.IMAGE_SVG_XML="image/svg+xml",e.IMAGE_BMP="image/bmp",e.PLAIN_TEXT="text/plain",e.MARKDOWN="text/markdown",e.AUDIO_MP3="audio/mp3",e.AUDIO_MPEG="audio/mpeg",e.AUDIO_WAV="audio/wav",e.AUDIO_WEBM="audio/webm"}(LLMUploadFileMimeTypes||(exports.LLMUploadFileMimeTypes=LLMUploadFileMimeTypes={}));
|
|
1
|
+
"use strict";var LLMProviders,LLMPurposes,LLMRoles,LLMMessageContentType,LLMUploadFileMimeTypes;Object.defineProperty(exports,"__esModule",{value:!0}),exports.LLMUploadFileMimeTypes=exports.LLMMessageContentType=exports.LLMRoles=exports.LLMPurposes=exports.LLMProviders=void 0,function(e){e.OpenAI="OpenAI",e.GoogleGenerativeAI="GoogleGenerativeAI"}(LLMProviders||(exports.LLMProviders=LLMProviders={})),function(e){e.Completion="completion",e.Assistance="assistance",e.SpeechToText="speech_to_text",e.TextToSpeech="text_to_speech"}(LLMPurposes||(exports.LLMPurposes=LLMPurposes={})),function(e){e.User="user",e.Assistant="assistant"}(LLMRoles||(exports.LLMRoles=LLMRoles={})),function(e){e.TEXT="text",e.IMAGE_URL="image_url",e.IMAGE_FILE="image_file",e.AUDIO_FILE="audio_file"}(LLMMessageContentType||(exports.LLMMessageContentType=LLMMessageContentType={})),function(e){e.IMAGE_PNG="image/png",e.IMAGE_JPEG="image/jpeg",e.IMAGE_JPG="image/jpg",e.IMAGE_GIF="image/gif",e.IMAGE_WEBP="image/webp",e.IMAGE_SVG_XML="image/svg+xml",e.IMAGE_BMP="image/bmp",e.PLAIN_TEXT="text/plain",e.MARKDOWN="text/markdown",e.AUDIO_MP3="audio/mp3",e.AUDIO_MPEG="audio/mpeg",e.AUDIO_WAV="audio/wav",e.AUDIO_WEBM="audio/webm"}(LLMUploadFileMimeTypes||(exports.LLMUploadFileMimeTypes=LLMUploadFileMimeTypes={}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LLMService.typedefs.js","sourceRoot":"","sources":["../src/LLMService.typedefs.ts"],"names":[],"mappings":";;;AAkBA;;GAEG;AACH,IAAY,YAGX;AAHD,WAAY,YAAY;IACtB,iCAAiB,CAAA;IACjB,yDAAyC,CAAA;AAC3C,CAAC,EAHW,YAAY,4BAAZ,YAAY,QAGvB;AAkBD;;GAEG;AACH,IAAY,WAKX;AALD,WAAY,WAAW;IACrB,wCAAyB,CAAA;IACzB,wCAAyB,CAAA;IACzB,8CAA+B,CAAA;IAC/B,8CAA+B,CAAA;AACjC,CAAC,EALW,WAAW,2BAAX,WAAW,QAKtB;AAyFD;;GAEG;AACH,IAAY,QAGX;AAHD,WAAY,QAAQ;IAClB,yBAAa,CAAA;IACb,mCAAuB,CAAA;AACzB,CAAC,EAHW,QAAQ,wBAAR,QAAQ,QAGnB;AAED;;GAEG;AACH,IAAY,
|
|
1
|
+
{"version":3,"file":"LLMService.typedefs.js","sourceRoot":"","sources":["../src/LLMService.typedefs.ts"],"names":[],"mappings":";;;AAkBA;;GAEG;AACH,IAAY,YAGX;AAHD,WAAY,YAAY;IACtB,iCAAiB,CAAA;IACjB,yDAAyC,CAAA;AAC3C,CAAC,EAHW,YAAY,4BAAZ,YAAY,QAGvB;AAkBD;;GAEG;AACH,IAAY,WAKX;AALD,WAAY,WAAW;IACrB,wCAAyB,CAAA;IACzB,wCAAyB,CAAA;IACzB,8CAA+B,CAAA;IAC/B,8CAA+B,CAAA;AACjC,CAAC,EALW,WAAW,2BAAX,WAAW,QAKtB;AAyFD;;GAEG;AACH,IAAY,QAGX;AAHD,WAAY,QAAQ;IAClB,yBAAa,CAAA;IACb,mCAAuB,CAAA;AACzB,CAAC,EAHW,QAAQ,wBAAR,QAAQ,QAGnB;AAED;;GAEG;AACH,IAAY,qBAKX;AALD,WAAY,qBAAqB;IAC/B,sCAAa,CAAA;IACb,gDAAuB,CAAA;IACvB,kDAAyB,CAAA;IACzB,kDAAyB,CAAA;AAC3B,CAAC,EALW,qBAAqB,qCAArB,qBAAqB,QAKhC;AA8GD;;GAEG;AACH,IAAY,sBAcX;AAdD,WAAY,sBAAsB;IAChC,iDAAuB,CAAA;IACvB,mDAAyB,CAAA;IACzB,iDAAuB,CAAA;IACvB,iDAAuB,CAAA;IACvB,mDAAyB,CAAA;IACzB,yDAA+B,CAAA;IAC/B,iDAAuB,CAAA;IACvB,mDAAyB,CAAA;IACzB,oDAA0B,CAAA;IAC1B,iDAAuB,CAAA;IACvB,mDAAyB,CAAA;IACzB,iDAAuB,CAAA;IACvB,mDAAyB,CAAA;AAC3B,CAAC,EAdW,sBAAsB,sCAAtB,sBAAsB,QAcjC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type Logger } from '@mate-academy/core';
|
|
1
2
|
import { type Part, type GoogleGenAI, type GenerateContentParameters, type Content, type ContentListUnion } from '@google/genai';
|
|
2
3
|
import { type CombineMessagesOptions, type LLMCountTokensFunction, type LLMCompletionMessage, type LLMModel, type LLMProviders, type LLMUploadedFile, type LLMFileLimits, type LLMAssistanceMessage } from '../../LLMService.typedefs';
|
|
3
4
|
export declare class GoogleGenerativeAIEntity {
|
|
@@ -5,12 +6,13 @@ export declare class GoogleGenerativeAIEntity {
|
|
|
5
6
|
model: LLMModel<LLMProviders.GoogleGenerativeAI>;
|
|
6
7
|
messages: Content[];
|
|
7
8
|
instructions?: string;
|
|
9
|
+
abortSignal?: AbortSignal;
|
|
8
10
|
}): GenerateContentParameters;
|
|
9
11
|
static getFileDataParts(uploadedFiles: LLMUploadedFile[]): Pick<Part, 'fileData'>[];
|
|
10
12
|
static getTextParts(messages: string[]): Pick<Part, 'text'>[];
|
|
11
|
-
static getContent(message: LLMCompletionMessage | LLMAssistanceMessage, instance: GoogleGenAI): Promise<Content>;
|
|
13
|
+
static getContent(message: LLMCompletionMessage | LLMAssistanceMessage, instance: GoogleGenAI, logger: Logger): Promise<Content>;
|
|
12
14
|
static getCountTokensFn(instance: GoogleGenAI): LLMCountTokensFunction<LLMProviders.GoogleGenerativeAI, ContentListUnion>;
|
|
13
|
-
static combineMessagesWithLimit({ modelContext, history, message, model, countTokensFn, instance, }: CombineMessagesOptions<LLMProviders.GoogleGenerativeAI, LLMCountTokensFunction<LLMProviders.GoogleGenerativeAI, ContentListUnion>>): Promise<Content[]>;
|
|
15
|
+
static combineMessagesWithLimit({ modelContext, history, message, model, countTokensFn, instance, logger, }: CombineMessagesOptions<LLMProviders.GoogleGenerativeAI, LLMCountTokensFunction<LLMProviders.GoogleGenerativeAI, ContentListUnion>>): Promise<Content[]>;
|
|
14
16
|
static get transcribeLimits(): LLMFileLimits;
|
|
15
17
|
static get transcribeInstructions(): string;
|
|
16
18
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.GoogleGenerativeAIEntity=void 0;const axios_1=__importDefault(require("axios")),LLMService_typedefs_1=require("../../LLMService.typedefs");class GoogleGenerativeAIEntity{static getContentParameters(e){const{model:t,messages:i,instructions:s}=e;return{model:t.name,contents:i,config:{systemInstruction:
|
|
1
|
+
"use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.GoogleGenerativeAIEntity=void 0;const axios_1=__importDefault(require("axios")),LLMService_typedefs_1=require("../../LLMService.typedefs");class GoogleGenerativeAIEntity{static getContentParameters(e){const{model:t,messages:i,instructions:a,abortSignal:s}=e;return{model:t.name,contents:i,config:{systemInstruction:a,temperature:t.config.temperature,abortSignal:s}}}static getFileDataParts(e){return e.map(e=>({fileData:{fileUri:e.path,mimeType:e.mimeType}}))}static getTextParts(e){return e.map(e=>({text:e}))}static async getContent(e,t,i){const a=e.role===LLMService_typedefs_1.LLMRoles.Assistant?"model":e.role,s=[];for(const a of e.content)switch(a.type){case LLMService_typedefs_1.LLMMessageContentType.TEXT:s.push({text:a.text});break;case LLMService_typedefs_1.LLMMessageContentType.IMAGE_URL:{const e=await axios_1.default.head(a.image_url.url),i=e.headers["content-type"]?.split(";")[0]??LLMService_typedefs_1.LLMUploadFileMimeTypes.IMAGE_PNG,r=await axios_1.default.get(a.image_url.url,{responseType:"arraybuffer"}),n=new Uint8Array(r.data),o=new Blob([n],{type:i}),l=await t.files.upload({file:o});s.push({fileData:{fileUri:l.uri,mimeType:i}});break}case LLMService_typedefs_1.LLMMessageContentType.IMAGE_FILE:s.push({fileData:{fileUri:a.image_file.path,mimeType:a.image_file.mime_type}});break;default:i.child("GoogleGenerativeAIEntity.getContent").warn("Unsupported content type in message item",{contentItem:a})}return"attachments"in e&&e.attachments&&s.push(...this.getFileDataParts(e.attachments)),{role:a,parts:s}}static getCountTokensFn(e){const t=e=>Boolean(e&&"object"==typeof e&&"role"in e&&"parts"in e);return async(i,a)=>{if(!i)return 0;const s=[];Array.isArray(i)?s.push(...i.filter(t)):t(i)&&s.push(i);const r=s.filter(e=>e&&"string"==typeof e.role&&Array.isArray(e.parts));if(0===r.length)return 0;const{totalTokens:n}=await e.models.countTokens({model:a.name,contents:r});return n??0}}static async combineMessagesWithLimit({modelContext:e=[],history:t=[],message:i,model:a,countTokensFn:s,instance:r,logger:n}){const o=await Promise.all(e.map(e=>GoogleGenerativeAIEntity.getContent(e,r,n))),l=await Promise.all(t.map(e=>GoogleGenerativeAIEntity.getContent(e,r,n))),p={role:LLMService_typedefs_1.LLMRoles.User,content:i.content},c=[...o,await GoogleGenerativeAIEntity.getContent(p,r,n)],m=[...l].reverse();let y=await s(c,a)??0,u=0;for(const e of m){const t=await s(e,a)??0;if(!(y+t<=a.limits.maxInputTokens))break;u+=1,c.splice(-u,0,e),y+=t}return c}static get transcribeLimits(){return{maxFileSize:2*1024**3,supportedMimeTypes:[LLMService_typedefs_1.LLMUploadFileMimeTypes.AUDIO_WAV,LLMService_typedefs_1.LLMUploadFileMimeTypes.AUDIO_MP3,LLMService_typedefs_1.LLMUploadFileMimeTypes.AUDIO_MPEG,LLMService_typedefs_1.LLMUploadFileMimeTypes.AUDIO_WEBM]}}static get transcribeInstructions(){return"Transcribe the audio file to text."}}exports.GoogleGenerativeAIEntity=GoogleGenerativeAIEntity;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GoogleGenerativeAI.entity.js","sourceRoot":"","sources":["../../../src/providers/GoogleGenerativeAI/GoogleGenerativeAI.entity.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;
|
|
1
|
+
{"version":3,"file":"GoogleGenerativeAI.entity.js","sourceRoot":"","sources":["../../../src/providers/GoogleGenerativeAI/GoogleGenerativeAI.entity.ts"],"names":[],"mappings":"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"}
|
package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAIAssistance.service.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type Logger } from '@mate-academy/core';
|
|
2
2
|
import { GoogleGenAI } from '@google/genai';
|
|
3
|
-
import { type LLMAssistanceOptions, type LLMAssistanceResult, type LLMCompletionMessage, type LLMCreateAssistantResult, type LLMCreateChatOptions, type LLMCreateChatResult, type LLMCreateFileStorageOptions, type LLMCreateFileStorageResult, type LLMInstanceOptions, type LLMModel, LLMProviders, type
|
|
3
|
+
import { type LLMAssistanceOptions, type LLMAssistanceResult, type LLMCompletionMessage, type LLMCreateAssistantOptions, type LLMCreateAssistantResult, type LLMCreateChatOptions, type LLMCreateChatResult, type LLMCreateFileStorageOptions, type LLMCreateFileStorageResult, type LLMInstanceOptions, type LLMModel, LLMProviders, type LLMUploadFileOptions, type LLMUploadFileResult } from '../../../LLMService.typedefs';
|
|
4
4
|
import { LLMAssistanceService } from '../../../services';
|
|
5
5
|
export declare class GoogleGenerativeAIAssistanceService extends LLMAssistanceService<LLMProviders.GoogleGenerativeAI> {
|
|
6
6
|
#private;
|
|
@@ -10,13 +10,13 @@ export declare class GoogleGenerativeAIAssistanceService extends LLMAssistanceSe
|
|
|
10
10
|
private uncachedFileStorages;
|
|
11
11
|
constructor(logger: Logger, options: LLMInstanceOptions[LLMProviders.GoogleGenerativeAI]);
|
|
12
12
|
protected get instance(): GoogleGenAI;
|
|
13
|
-
uploadFile(
|
|
13
|
+
uploadFile(fileOptions: LLMUploadFileOptions): Promise<LLMUploadFileResult>;
|
|
14
14
|
deleteFile(fileId: string): Promise<void>;
|
|
15
15
|
createFileStorage(options: LLMCreateFileStorageOptions<LLMProviders.GoogleGenerativeAI>): Promise<LLMCreateFileStorageResult>;
|
|
16
16
|
deleteFileStorage(fileStorageId: string): Promise<void>;
|
|
17
17
|
createChat(options: LLMCreateChatOptions<LLMProviders.GoogleGenerativeAI>): Promise<LLMCreateChatResult>;
|
|
18
18
|
deleteChat(chatId: string): Promise<void>;
|
|
19
|
-
createAssistant(): Promise<LLMCreateAssistantResult>;
|
|
19
|
+
createAssistant(options: LLMCreateAssistantOptions<LLMProviders.GoogleGenerativeAI>): Promise<LLMCreateAssistantResult>;
|
|
20
20
|
deleteAssistant(): Promise<void>;
|
|
21
21
|
assistInChat(options: LLMAssistanceOptions): Promise<LLMAssistanceResult>;
|
|
22
22
|
countTokens(messages: LLMCompletionMessage[], model: LLMModel<LLMProviders.GoogleGenerativeAI>): Promise<number>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.GoogleGenerativeAIAssistanceService=void 0;const uuid_1=require("uuid"),genai_1=require("@google/genai"),LLMService_typedefs_1=require("../../../LLMService.typedefs"),services_1=require("../../../services"),GoogleGenerativeAI_typedefs_1=require("../../../providers/GoogleGenerativeAI/GoogleGenerativeAI.typedefs"),GoogleGenerativeAI_entity_1=require("../../../providers/GoogleGenerativeAI/GoogleGenerativeAI.entity"),GoogleGenerativeAI_constants_1=require("../../../providers/GoogleGenerativeAI/GoogleGenerativeAI.constants");class GoogleGenerativeAIAssistanceService extends services_1.LLMAssistanceService{#e=null;cachedContent=new Map;chatSessions=new Map;uploadedFiles=new Map;uncachedFileStorages=new Map;constructor(e,t){super(LLMService_typedefs_1.LLMProviders.GoogleGenerativeAI,e,t)}get instance(){return this.#e||(this.#e=new genai_1.GoogleGenAI({apiKey:this.options.apiKey})),this.#e}async uploadFile(e){try{const{path:t,mimeType:r,name:i}=e,n=this.uploadedFiles.get(t);if(n)return n;const
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.GoogleGenerativeAIAssistanceService=void 0;const uuid_1=require("uuid"),genai_1=require("@google/genai"),LLMService_typedefs_1=require("../../../LLMService.typedefs"),services_1=require("../../../services"),GoogleGenerativeAI_typedefs_1=require("../../../providers/GoogleGenerativeAI/GoogleGenerativeAI.typedefs"),GoogleGenerativeAI_entity_1=require("../../../providers/GoogleGenerativeAI/GoogleGenerativeAI.entity"),GoogleGenerativeAI_constants_1=require("../../../providers/GoogleGenerativeAI/GoogleGenerativeAI.constants");class GoogleGenerativeAIAssistanceService extends services_1.LLMAssistanceService{#e=null;cachedContent=new Map;chatSessions=new Map;uploadedFiles=new Map;uncachedFileStorages=new Map;constructor(e,t){super(LLMService_typedefs_1.LLMProviders.GoogleGenerativeAI,e,t)}get instance(){return this.#e||(this.#e=new genai_1.GoogleGenAI({apiKey:this.options.apiKey})),this.#e}async uploadFile(e){try{const{path:t,mimeType:r,name:o,abortSignal:i}=e,n=this.uploadedFiles.get(t);if(n)return n;const a=await this.instance.files.upload({file:t,config:{mimeType:r,displayName:o,abortSignal:i}});if(!a.name)throw new Error("Upload result did not return a name");if(!a.uri)throw new Error("Upload result did not return a uri");if(a.error)throw a.error;const s={name:o,mimeType:r,fileId:a.name,path:a.uri};if(i?.aborted)throw new Error("File upload aborted");return this.uploadedFiles.set(t,s),s}catch(t){return this.logger.child("uploadFile").error("Error uploading file",{error:t,file:e}),{error:t}}}async deleteFile(e){this.uploadedFiles.delete(e),await this.instance.files.delete({name:e})}async createFileStorage(e){const{uploadedFiles:t,model:r,instructions:o,abortSignal:i}=e;try{const e=GoogleGenerativeAI_entity_1.GoogleGenerativeAIEntity.getFileDataParts(t),n=GoogleGenerativeAI_entity_1.GoogleGenerativeAIEntity.getCountTokensFn(this.instance),a=await n(e,r);if(a<GoogleGenerativeAI_constants_1.MIN_CACHE_CONTENT_LENGTH){const e=(0,uuid_1.v4)();if(this.uncachedFileStorages.set(e,t),this.logger.child("createFileStorage").info("File storage created without caching (content too small)",{storageId:e,tokenCount:a,minRequired:GoogleGenerativeAI_constants_1.MIN_CACHE_CONTENT_LENGTH}),i?.aborted)throw new Error("File storage creation aborted");return{storageId:e}}const s=await this.instance.caches.create({model:r.name,config:{contents:[{role:GoogleGenerativeAI_typedefs_1.GoogleGenerativeAIRoles.User,parts:e}],systemInstruction:o,ttl:"1h",abortSignal:i}});if(!s.name)throw new Error("Cache result did not return a name");if(i?.aborted)throw new Error("File storage creation aborted");return this.cachedContent.set(s.name,s),{storageId:s.name}}catch(e){return this.logger.child("createFileStorage").error("Error creating file storage",{error:e,uploadedFiles:t,model:r}),{error:e}}}async deleteFileStorage(e){if(""===e)return;this.cachedContent.get(e)&&(this.cachedContent.delete(e),await this.instance.caches.delete({name:e})),this.uncachedFileStorages.delete(e)}async createChat(e){try{const{storageId:t,model:r,instructions:o,history:i,files:n,abortSignal:a}=e,s=t?this.cachedContent.get(t):void 0,l=t?this.uncachedFileStorages.get(t):void 0,c=i?await Promise.all(i.map(e=>GoogleGenerativeAI_entity_1.GoogleGenerativeAIEntity.getContent(e,this.instance,this.logger))):[];if(!s&&n&&n.length>0){const e=GoogleGenerativeAI_entity_1.GoogleGenerativeAIEntity.getFileDataParts(n);c.push({role:GoogleGenerativeAI_typedefs_1.GoogleGenerativeAIRoles.User,parts:e})}if(!s&&l){const e=GoogleGenerativeAI_entity_1.GoogleGenerativeAIEntity.getFileDataParts(l);c.push({role:GoogleGenerativeAI_typedefs_1.GoogleGenerativeAIRoles.User,parts:e})}const g=this.instance.chats.create({model:r.name,history:c,config:{systemInstruction:o,temperature:r.config.temperature,abortSignal:a,...s&&{cachedContent:s.name}}}),d=(0,uuid_1.v4)();if(a?.aborted)throw new Error("Chat creation aborted");return this.chatSessions.set(d,g),Promise.resolve({chatId:d})}catch(t){return this.logger.child("createChat").error("Error creating chat",{error:t,options:e}),Promise.resolve({error:t})}}deleteChat(e){return this.chatSessions.delete(e),Promise.resolve()}createAssistant(e){const{abortSignal:t}=e;try{if(t?.aborted)throw new Error("Assistant creation aborted");return Promise.resolve({assistantId:""})}catch(t){return this.logger.child("createAssistant").error("Error creating assistant",{error:t,options:e}),Promise.resolve({error:t})}}deleteAssistant(){return Promise.resolve()}async assistInChat(e){try{const{message:t,chatId:r,abortSignal:o}=e,i=this.chatSessions.get(r);if(!i)throw new Error("Chat session not found");const n=await GoogleGenerativeAI_entity_1.GoogleGenerativeAIEntity.getContent(t,this.instance,this.logger);if(!n.parts)return{text:""};const a=await i.sendMessage({message:n.parts,config:{abortSignal:o}});if(o?.aborted)throw new Error("Chat assistance aborted");return{text:a.text??""}}catch(t){return this.logger.child("assistInChat").error("Error assisting in chat",{error:t,options:e}),{error:t}}}async countTokens(e,t){return GoogleGenerativeAI_entity_1.GoogleGenerativeAIEntity.getCountTokensFn(this.instance)(e,t)}}exports.GoogleGenerativeAIAssistanceService=GoogleGenerativeAIAssistanceService;
|
package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAIAssistance.service.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GoogleGenerativeAIAssistance.service.js","sourceRoot":"","sources":["../../../../src/providers/GoogleGenerativeAI/services/GoogleGenerativeAIAssistance.service.ts"],"names":[],"mappings":";;;AACA,+BAAoC;AACpC,yCAKuB;AACvB,+
|
|
1
|
+
{"version":3,"file":"GoogleGenerativeAIAssistance.service.js","sourceRoot":"","sources":["../../../../src/providers/GoogleGenerativeAI/services/GoogleGenerativeAIAssistance.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.GoogleGenerativeAICompletionService=void 0;const genai_1=require("@google/genai"),LLMService_typedefs_1=require("../../../LLMService.typedefs"),services_1=require("../../../services"),GoogleGenerativeAI_entity_1=require("../../../providers/GoogleGenerativeAI/GoogleGenerativeAI.entity");class GoogleGenerativeAICompletionService extends services_1.LLMCompletionService{#e=null;constructor(e,t){super(LLMService_typedefs_1.LLMProviders.GoogleGenerativeAI,e,t)}get instance(){return this.#e||(this.#e=new genai_1.GoogleGenAI({apiKey:this.options.apiKey})),this.#e}async sendMessage(e){try{const{model:t,message:i,history:n=[],instructions:o}=e,
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.GoogleGenerativeAICompletionService=void 0;const genai_1=require("@google/genai"),LLMService_typedefs_1=require("../../../LLMService.typedefs"),services_1=require("../../../services"),GoogleGenerativeAI_entity_1=require("../../../providers/GoogleGenerativeAI/GoogleGenerativeAI.entity");class GoogleGenerativeAICompletionService extends services_1.LLMCompletionService{#e=null;constructor(e,t){super(LLMService_typedefs_1.LLMProviders.GoogleGenerativeAI,e,t)}get instance(){return this.#e||(this.#e=new genai_1.GoogleGenAI({apiKey:this.options.apiKey})),this.#e}async sendMessage(e){try{const{model:t,message:i,history:n=[],instructions:o,abortSignal:r}=e,s=GoogleGenerativeAI_entity_1.GoogleGenerativeAIEntity.getCountTokensFn(this.instance),a=await GoogleGenerativeAI_entity_1.GoogleGenerativeAIEntity.combineMessagesWithLimit({history:n,message:i,model:t,countTokensFn:s,instance:this.instance,logger:this.logger}),g=await this.instance.models.generateContent(GoogleGenerativeAI_entity_1.GoogleGenerativeAIEntity.getContentParameters({model:t,messages:a,instructions:o,abortSignal:r}));if(r?.aborted)throw new Error("Message sending aborted");return{text:g.text??""}}catch(t){return this.logger.child("sendMessage").error("Error sending message",{error:t,options:e}),{error:t}}}}exports.GoogleGenerativeAICompletionService=GoogleGenerativeAICompletionService;
|
package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAICompletion.service.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GoogleGenerativeAICompletion.service.js","sourceRoot":"","sources":["../../../../src/providers/GoogleGenerativeAI/services/GoogleGenerativeAICompletion.service.ts"],"names":[],"mappings":";;;AACA,yCAA4C;AAC5C,+DAK+B;AAC/B,yCAEoB;AACpB,wGAAoG;AAEpG,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,
|
|
1
|
+
{"version":3,"file":"GoogleGenerativeAICompletion.service.js","sourceRoot":"","sources":["../../../../src/providers/GoogleGenerativeAI/services/GoogleGenerativeAICompletion.service.ts"],"names":[],"mappings":";;;AACA,yCAA4C;AAC5C,+DAK+B;AAC/B,yCAEoB;AACpB,wGAAoG;AAEpG,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,EACZ,WAAW,GACZ,GAAG,OAAO,CAAC;YAEZ,MAAM,aAAa,GAAG,oDAAwB;iBAC3C,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAEnC,MAAM,gBAAgB,GAAG,MAAM,oDAAwB,CAAC,wBAAwB,CAAC;gBAC/E,OAAO;gBACP,OAAO;gBACP,KAAK;gBACL,aAAa;gBACb,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,MAAM,EAAE,IAAI,CAAC,MAAM;aACpB,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,eAAe,CACvD,oDAAwB,CAAC,oBAAoB,CAAC;gBAC5C,KAAK;gBACL,QAAQ,EAAE,gBAAgB;gBAC1B,YAAY;gBACZ,WAAW;aACZ,CAAC,CACH,CAAC;YAEF,IAAI,WAAW,EAAE,OAAO,EAAE,CAAC;gBACzB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;YAC7C,CAAC;YAED,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;AAxED,kFAwEC"}
|
package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAISpeechToText.service.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.GoogleGenerativeAISpeechToTextService=void 0;const fs_1=require("fs"),genai_1=require("@google/genai"),LLMService_typedefs_1=require("../../../LLMService.typedefs"),services_1=require("../../../services"),GoogleGenerativeAI_entity_1=require("../../../providers/GoogleGenerativeAI/GoogleGenerativeAI.entity"),mime_types_1=__importDefault(require("mime-types"));class GoogleGenerativeAISpeechToTextService extends services_1.LLMSpeechToTextService{#e=null;constructor(e,t){super(LLMService_typedefs_1.LLMProviders.GoogleGenerativeAI,e,t)}get instance(){return this.#e||(this.#e=new genai_1.GoogleGenAI({apiKey:this.options.apiKey})),this.#e}async transcribe(e){try{const{model:t,pathToAudio:i,mimeType:r}=e,{maxFileSize:
|
|
1
|
+
"use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.GoogleGenerativeAISpeechToTextService=void 0;const fs_1=require("fs"),genai_1=require("@google/genai"),LLMService_typedefs_1=require("../../../LLMService.typedefs"),services_1=require("../../../services"),GoogleGenerativeAI_entity_1=require("../../../providers/GoogleGenerativeAI/GoogleGenerativeAI.entity"),mime_types_1=__importDefault(require("mime-types"));class GoogleGenerativeAISpeechToTextService extends services_1.LLMSpeechToTextService{#e=null;constructor(e,t){super(LLMService_typedefs_1.LLMProviders.GoogleGenerativeAI,e,t)}get instance(){return this.#e||(this.#e=new genai_1.GoogleGenAI({apiKey:this.options.apiKey})),this.#e}async transcribe(e){try{const{model:t,pathToAudio:i,mimeType:r,abortSignal:o}=e,{maxFileSize:n,supportedMimeTypes:s}=GoogleGenerativeAI_entity_1.GoogleGenerativeAIEntity.transcribeLimits;if((0,fs_1.statSync)(i).size>n)throw new Error(`File size exceeds the limit of ${n} bytes`);const a=r??mime_types_1.default.lookup(i);if(!a||!s.includes(a))throw new Error(`Unsupported audio file type: ${a}. Supported types are: ${s.join(", ")}`);const c=await this.instance.files.upload({file:i,config:{mimeType:r,abortSignal:o}});if(!c||!c.uri||!c.mimeType)throw new Error(`Failed to upload audio file, response: ${JSON.stringify(c)}`);const l=await this.instance.models.generateContent({model:t.name,contents:(0,genai_1.createUserContent)([(0,genai_1.createPartFromUri)(c.uri,c.mimeType),GoogleGenerativeAI_entity_1.GoogleGenerativeAIEntity.transcribeInstructions]),config:{...t.config,abortSignal:o}});if(o?.aborted)throw new Error("Transcription aborted");return{text:l.text??""}}catch(t){return this.logger.child("transcribe").error("Error transcribing audio",{error:t,options:e}),{error:t}}}}exports.GoogleGenerativeAISpeechToTextService=GoogleGenerativeAISpeechToTextService;
|
package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAISpeechToText.service.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GoogleGenerativeAISpeechToText.service.js","sourceRoot":"","sources":["../../../../src/providers/GoogleGenerativeAI/services/GoogleGenerativeAISpeechToText.service.ts"],"names":[],"mappings":";;;;;;AAAA,2BAA8B;AAE9B,yCAIuB;AACvB,+DAK+B;AAC/B,yCAEoB;AACpB,wGAAoG;AACpG,4DAA8B;AAE9B,MAAa,qCACX,SAAQ,iCAAuD;IAC/D,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,UAAU,CACd,OAAmD;QAEnD,IAAI,CAAC;YACH,MAAM,EACJ,KAAK,EACL,WAAW,EACX,QAAQ,
|
|
1
|
+
{"version":3,"file":"GoogleGenerativeAISpeechToText.service.js","sourceRoot":"","sources":["../../../../src/providers/GoogleGenerativeAI/services/GoogleGenerativeAISpeechToText.service.ts"],"names":[],"mappings":"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"}
|
package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAITextToSpeech.service.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.GoogleGenerativeAITextToSpeechService=void 0;const genai_1=require("@google/genai"),LLMService_typedefs_1=require("../../../LLMService.typedefs"),services_1=require("../../../services");class GoogleGenerativeAITextToSpeechService extends services_1.LLMTextToSpeechService{#e=null;constructor(e,
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.GoogleGenerativeAITextToSpeechService=void 0;const genai_1=require("@google/genai"),LLMService_typedefs_1=require("../../../LLMService.typedefs"),services_1=require("../../../services");class GoogleGenerativeAITextToSpeechService extends services_1.LLMTextToSpeechService{#e=null;constructor(e,r){super(LLMService_typedefs_1.LLMProviders.GoogleGenerativeAI,e,r)}get instance(){return this.#e||(this.#e=new genai_1.GoogleGenAI(this.options)),this.#e}async createSpeech(e){try{const{text:r,model:t,instructions:o,speechOptions:i,abortSignal:n}=e,s=await this.instance.models.generateContent({model:t.name,contents:r,config:{...t.config,systemInstruction:o,responseModalities:["AUDIO"],speechConfig:i?.speechConfig,abortSignal:n}}),c=s.candidates?.[0]?.content?.parts?.[0]?.inlineData?.data;if(!c)throw new Error("No audio data received from the model");const a=Buffer.from(c,"base64").buffer;if(n?.aborted)throw new Error("Speech creation aborted");return{audio:a,mimeType:LLMService_typedefs_1.LLMUploadFileMimeTypes.AUDIO_WAV}}catch(r){return this.logger.child("createSpeech").error("Error creating speech",{error:r,options:e}),{error:r}}}}exports.GoogleGenerativeAITextToSpeechService=GoogleGenerativeAITextToSpeechService;
|
package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAITextToSpeech.service.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GoogleGenerativeAITextToSpeech.service.js","sourceRoot":"","sources":["../../../../src/providers/GoogleGenerativeAI/services/GoogleGenerativeAITextToSpeech.service.ts"],"names":[],"mappings":";;;AACA,yCAA4C;AAC5C,+DAM+B;AAC/B,yCAAoD;AAEpD,MAAa,qCACX,SAAQ,iCAAuD;IAC/D,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,IAAI,CAAC,OAAO,CAAC,CAAC;QACjD,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,OAAqD;QAErD,IAAI,CAAC;YACH,MAAM,EACJ,IAAI,EACJ,KAAK,EACL,YAAY,EACZ,aAAa,
|
|
1
|
+
{"version":3,"file":"GoogleGenerativeAITextToSpeech.service.js","sourceRoot":"","sources":["../../../../src/providers/GoogleGenerativeAI/services/GoogleGenerativeAITextToSpeech.service.ts"],"names":[],"mappings":";;;AACA,yCAA4C;AAC5C,+DAM+B;AAC/B,yCAAoD;AAEpD,MAAa,qCACX,SAAQ,iCAAuD;IAC/D,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,IAAI,CAAC,OAAO,CAAC,CAAC;QACjD,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,OAAqD;QAErD,IAAI,CAAC;YACH,MAAM,EACJ,IAAI,EACJ,KAAK,EACL,YAAY,EACZ,aAAa,EACb,WAAW,GACZ,GAAG,OAAO,CAAC;YAEZ,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,eAAe,CAAC;gBAC/D,KAAK,EAAE,KAAK,CAAC,IAAI;gBACjB,QAAQ,EAAE,IAAI;gBACd,MAAM,EAAE;oBACN,GAAG,KAAK,CAAC,MAAM;oBACf,iBAAiB,EAAE,YAAY;oBAC/B,kBAAkB,EAAE,CAAC,OAAO,CAAC;oBAC7B,YAAY,EAAE,aAAa,EAAE,YAAY;oBACzC,WAAW;iBACZ;aACF,CAAC,CAAC;YAEH,MAAM,IAAI,GAAG,aAAa,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC;YAElF,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;YAC3D,CAAC;YAED,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,MAAM,CAAC;YAEvD,IAAI,WAAW,EAAE,OAAO,EAAE,CAAC;gBACzB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;YAC7C,CAAC;YAED,OAAO;gBACL,KAAK,EAAE,WAAW;gBAClB,QAAQ,EAAE,4CAAsB,CAAC,SAAS;aAC3C,CAAC;QAEJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,IAAI,CAAC,MAAM;iBACR,KAAK,CAAC,cAAc,CAAC;iBACrB,KAAK,CAAC,uBAAuB,EAAE;gBAC9B,KAAK;gBACL,OAAO;aACR,CAAC,CAAC;YAEL,OAAO,EAAE,KAAK,EAAE,CAAC;QACnB,CAAC;IACH,CAAC;CACF;AAvED,sFAuEC"}
|
|
@@ -1,8 +1,14 @@
|
|
|
1
|
-
import { type
|
|
2
|
-
import { type
|
|
1
|
+
import { type Logger } from '@mate-academy/core';
|
|
2
|
+
import { type CombineMessagesOptions, type LLMCompletionMessage, type LLMCountTokensFunction, type LLMCompletionsMessageContent, type LLMProviders, type LLMFileLimits, type LLMAssistanceMessageContent, type LLMAssistanceMessage } from '../../LLMService.typedefs';
|
|
3
|
+
import { type MessageContentPartParam } from 'openai/resources/beta/threads/messages';
|
|
4
|
+
import { type ThreadCreateParams } from 'openai/resources/beta/threads/threads';
|
|
5
|
+
import { type ChatCompletionAssistantMessageParam, type ChatCompletionUserMessageParam, type ChatCompletionContentPart } from 'openai/resources/chat';
|
|
3
6
|
export declare class OpenAIEntity {
|
|
4
|
-
static getCountTokensFn(): (messagesContents:
|
|
5
|
-
static getChatCompletionMessageParam(messages: LLMCompletionMessage[]):
|
|
6
|
-
static
|
|
7
|
+
static getCountTokensFn(): (messagesContents: (LLMCompletionsMessageContent | LLMAssistanceMessageContent)[]) => Promise<number>;
|
|
8
|
+
static getChatCompletionMessageParam(messages: LLMCompletionMessage[], logger: Logger): (ChatCompletionUserMessageParam | ChatCompletionAssistantMessageParam)[];
|
|
9
|
+
static getCompletionUserContentParameters(content: LLMCompletionsMessageContent[], logger: Logger): ChatCompletionContentPart[];
|
|
10
|
+
static getThreadAssistanceMessageParam(messages: LLMAssistanceMessage[]): ThreadCreateParams.Message[];
|
|
11
|
+
static getAssistanceContentParameters(content: LLMAssistanceMessageContent[]): MessageContentPartParam[];
|
|
12
|
+
static combineMessagesWithLimit({ modelContext, history, message, model, countTokensFn, }: CombineMessagesOptions<LLMProviders.OpenAI, LLMCountTokensFunction<LLMProviders.OpenAI, LLMCompletionsMessageContent[]>>): Promise<LLMCompletionMessage[]>;
|
|
7
13
|
static get transcribeLimits(): LLMFileLimits;
|
|
8
14
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.OpenAIEntity=void 0;const LLMService_constants_1=require("../../LLMService.constants"),LLMService_typedefs_1=require("../../LLMService.typedefs"),OpenAI_typedefs_1=require("../../providers/OpenAI/OpenAI.typedefs"),js_tiktoken_1=require("js-tiktoken");class OpenAIEntity{static getCountTokensFn(){return e=>{const t=(0,js_tiktoken_1.getEncoding)("o200k_base"),s=e.reduce((e,s)=>{switch(s.type){case LLMService_typedefs_1.LLMMessageContentType.IMAGE_URL:case LLMService_typedefs_1.LLMMessageContentType.IMAGE_FILE:return e+LLMService_constants_1.APPROXIMATE_TOKENS_COUNT_IN_IMAGE;case LLMService_typedefs_1.LLMMessageContentType.TEXT:return e+t.encode(s.text).length;default:return e}},0);return Promise.resolve(s)}}static getChatCompletionMessageParam(e){return e.map(e=>({role:e.role===LLMService_typedefs_1.LLMRoles.User?OpenAI_typedefs_1.OpenAIRoles.User:OpenAI_typedefs_1.OpenAIRoles.Assistant,content:e.content}))}static async combineMessagesWithLimit({modelContext:e=[],history:t=[],message:s,model:n,countTokensFn:
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.OpenAIEntity=void 0;const LLMService_constants_1=require("../../LLMService.constants"),LLMService_typedefs_1=require("../../LLMService.typedefs"),OpenAI_typedefs_1=require("../../providers/OpenAI/OpenAI.typedefs"),js_tiktoken_1=require("js-tiktoken");class OpenAIEntity{static getCountTokensFn(){return e=>{const t=(0,js_tiktoken_1.getEncoding)("o200k_base"),s=e.reduce((e,s)=>{switch(s.type){case LLMService_typedefs_1.LLMMessageContentType.IMAGE_URL:case LLMService_typedefs_1.LLMMessageContentType.IMAGE_FILE:return e+LLMService_constants_1.APPROXIMATE_TOKENS_COUNT_IN_IMAGE;case LLMService_typedefs_1.LLMMessageContentType.TEXT:return e+t.encode(s.text).length;default:return e}},0);return Promise.resolve(s)}}static getChatCompletionMessageParam(e,t){return e.map(e=>({role:e.role===LLMService_typedefs_1.LLMRoles.User?OpenAI_typedefs_1.OpenAIRoles.User:OpenAI_typedefs_1.OpenAIRoles.Assistant,content:OpenAIEntity.getCompletionUserContentParameters(e.content,t)}))}static getCompletionUserContentParameters(e,t){const s=[];for(const n of e)switch(n.type){case LLMService_typedefs_1.LLMMessageContentType.IMAGE_URL:{const e={type:"image_url",image_url:{url:n.image_url.url,detail:n.image_url.detail??"auto"}};s.push(e);break}case LLMService_typedefs_1.LLMMessageContentType.TEXT:{const e={type:"text",text:n.text};s.push(e);break}default:t.child("OpenAIEntity.getCompletionUserContentParameters").warn("Unsupported content type in message item",{contentItem:n})}return s}static getThreadAssistanceMessageParam(e){return e.map(e=>({role:e.role===LLMService_typedefs_1.LLMRoles.User?OpenAI_typedefs_1.OpenAIRoles.User:OpenAI_typedefs_1.OpenAIRoles.Assistant,content:OpenAIEntity.getAssistanceContentParameters(e.content)}))}static getAssistanceContentParameters(e){return e.map(e=>{if(e.type===LLMService_typedefs_1.LLMMessageContentType.IMAGE_URL){return{type:"image_url",image_url:{url:e.image_url.url,detail:e.image_url.detail??"auto"}}}if(e.type===LLMService_typedefs_1.LLMMessageContentType.IMAGE_FILE){return{type:"image_file",image_file:{file_id:e.image_file.file_id,detail:e.image_file.detail??"auto"}}}return{type:"text",text:e.text}})}static async combineMessagesWithLimit({modelContext:e=[],history:t=[],message:s,model:n,countTokensFn:r}){const i=[...e];if(t[0]){const e=t[0];i.push(e)}const a=[{role:LLMService_typedefs_1.LLMRoles.User,content:s.content},...t.slice(1).reverse()],o=i.flatMap(e=>e.content);let p=await(r?.(o,n))??0;for(const e of a){const t=p+(await(r?.(e.content,n))??0);if(!(t<=n.limits.maxInputTokens))break;i.push(e),p=t}return i}static get transcribeLimits(){return{maxFileSize:26214400,supportedMimeTypes:[LLMService_typedefs_1.LLMUploadFileMimeTypes.AUDIO_WAV,LLMService_typedefs_1.LLMUploadFileMimeTypes.AUDIO_MP3,LLMService_typedefs_1.LLMUploadFileMimeTypes.AUDIO_MPEG,LLMService_typedefs_1.LLMUploadFileMimeTypes.AUDIO_WEBM]}}}exports.OpenAIEntity=OpenAIEntity;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenAI.entity.js","sourceRoot":"","sources":["../../../src/providers/OpenAI/OpenAI.entity.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"OpenAI.entity.js","sourceRoot":"","sources":["../../../src/providers/OpenAI/OpenAI.entity.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { type Logger } from '@mate-academy/core';
|
|
2
2
|
import { OpenAI } from 'openai';
|
|
3
|
-
import { type LLMAssistanceOptions, type LLMAssistanceResult, type LLMCompletionMessage, type LLMCreateAssistantOptions, type LLMCreateAssistantResult, type LLMCreateChatOptions, type LLMCreateChatResult, type LLMCreateFileStorageOptions, type LLMCreateFileStorageResult, type LLMInstanceOptions, LLMProviders, type
|
|
3
|
+
import { type LLMAssistanceOptions, type LLMAssistanceResult, type LLMCompletionMessage, type LLMCreateAssistantOptions, type LLMCreateAssistantResult, type LLMCreateChatOptions, type LLMCreateChatResult, type LLMCreateFileStorageOptions, type LLMCreateFileStorageResult, type LLMInstanceOptions, LLMProviders, type LLMUploadFileOptions, type LLMUploadFileResult } from '../../../LLMService.typedefs';
|
|
4
4
|
import { LLMAssistanceService } from '../../../services';
|
|
5
5
|
export declare class OpenAIAssistanceService extends LLMAssistanceService<LLMProviders.OpenAI> {
|
|
6
6
|
#private;
|
|
7
7
|
private uploadedFiles;
|
|
8
8
|
constructor(logger: Logger, options: LLMInstanceOptions[LLMProviders.OpenAI]);
|
|
9
9
|
protected get instance(): OpenAI;
|
|
10
|
-
uploadFile(
|
|
10
|
+
uploadFile(fileOptions: LLMUploadFileOptions): Promise<LLMUploadFileResult>;
|
|
11
11
|
deleteFile(fileId: string): Promise<void>;
|
|
12
12
|
createFileStorage(options: LLMCreateFileStorageOptions<LLMProviders.OpenAI>): Promise<LLMCreateFileStorageResult>;
|
|
13
13
|
deleteFileStorage(fileStorageId: string): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.OpenAIAssistanceService=void 0;const fs_1=require("fs"),openai_1=require("openai"),LLMService_typedefs_1=require("../../../LLMService.typedefs"),services_1=require("../../../services"),OpenAI_typedefs_1=require("../../../providers/OpenAI/OpenAI.typedefs"),OpenAI_entity_1=require("../../../providers/OpenAI/OpenAI.entity");class OpenAIAssistanceService extends services_1.LLMAssistanceService{#e=null;uploadedFiles=new Map;constructor(e,t){super(LLMService_typedefs_1.LLMProviders.OpenAI,e,t)}get instance(){return this.#e||(this.#e=new openai_1.OpenAI(this.options)),this.#e}async uploadFile(e){try{const{path:t}=e,
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.OpenAIAssistanceService=void 0;const fs_1=require("fs"),openai_1=require("openai"),LLMService_typedefs_1=require("../../../LLMService.typedefs"),services_1=require("../../../services"),OpenAI_typedefs_1=require("../../../providers/OpenAI/OpenAI.typedefs"),OpenAI_entity_1=require("../../../providers/OpenAI/OpenAI.entity");class OpenAIAssistanceService extends services_1.LLMAssistanceService{#e=null;uploadedFiles=new Map;constructor(e,t){super(LLMService_typedefs_1.LLMProviders.OpenAI,e,t)}get instance(){return this.#e||(this.#e=new openai_1.OpenAI(this.options)),this.#e}async uploadFile(e){try{const{path:t,abortSignal:s}=e,r=this.uploadedFiles.get(t);if(r){if((await this.instance.files.retrieve(r)).id)return{name:e.name,path:e.path,mimeType:e.mimeType,fileId:r}}const i=(0,fs_1.createReadStream)(t,{signal:s}),a=await this.instance.files.create({purpose:"assistants",file:i},{signal:s});if(await this.instance.files.waitForProcessing(a.id),s?.aborted)throw new Error("File upload aborted");return this.uploadedFiles.set(t,a.id),{...e,fileId:a.id}}catch(t){return this.logger.child("uploadFile").error("Error uploading file",{error:t,file:e}),{error:t}}}async deleteFile(e){await this.instance.files.delete(e),this.uploadedFiles.delete(e)}async createFileStorage(e){const{uploadedFiles:t,abortSignal:s}=e;try{const e=await this.instance.vectorStores.create({expires_after:{anchor:"last_active_at",days:1}},{signal:s});if(await this.instance.vectorStores.fileBatches.createAndPoll(e.id,{file_ids:t.map(({fileId:e})=>e)}),s?.aborted)throw new Error("File storage creation aborted");return{storageId:e.id}}catch(e){return this.logger.child("createFileStorage").error("Error creating file storage",{error:e,uploadedFiles:t}),{error:e}}}async deleteFileStorage(e){await this.instance.vectorStores.delete(e)}async createChat(e){try{const{storageId:t,history:s=[],files:r,abortSignal:i}=e,a=t?{tool_resources:{file_search:{vector_store_ids:[t]}}}:{},n=OpenAI_entity_1.OpenAIEntity.getThreadAssistanceMessageParam(s);if(r&&r.length>0){const e=r.filter(this.isImageFile);e.length>0&&n.push({role:OpenAI_typedefs_1.OpenAIRoles.User,content:e.map(e=>({type:LLMService_typedefs_1.LLMMessageContentType.IMAGE_FILE,image_file:{file_id:e.fileId,detail:"high"}}))})}const o=await this.instance.beta.threads.create({messages:n,...a},{signal:i});if(i?.aborted)throw new Error("Chat creation aborted");return{chatId:o.id}}catch(t){return this.logger.child("createChat").error("Error creating chat",{error:t,options:e}),{error:t}}}async deleteChat(e){await this.instance.beta.threads.delete(e)}async createAssistant(e){try{const{model:t,instructions:s,storageIds:r,name:i,abortSignal:a}=e,n=r?.length?{tools:[{type:"file_search"}],tool_resources:{file_search:{vector_store_ids:r}}}:{},o=await this.instance.beta.assistants.create({model:t.name,instructions:s,temperature:t.config.temperature,top_p:t.config.top_p,name:i,...n},{signal:a});if(a?.aborted)throw new Error("Assistant creation aborted");return{assistantId:o.id}}catch(t){return this.logger.child("createAssistant").error("Error creating assistant",{error:t,options:e}),{error:t}}}async deleteAssistant(e){await this.instance.beta.assistants.delete(e)}async assistInChat(e){try{const{message:t,chatId:s,assistantId:r,storageId:i,abortSignal:a}=e,{attachments:n,content:o,role:c}=t,l=[];n&&n.filter(this.isImageFile).forEach(e=>{l.push({type:"image_file",image_file:{file_id:e.fileId,detail:"high"}})}),l.push(...o);const d={role:c===LLMService_typedefs_1.LLMRoles.User?OpenAI_typedefs_1.OpenAIRoles.User:OpenAI_typedefs_1.OpenAIRoles.Assistant,content:l,attachments:n?n.filter(this.isNotImageFile).map(({fileId:e})=>({file_id:e,tools:[{type:"file_search"}]})):void 0},p=n&&n.some(this.isNotImageFile);await this.instance.beta.threads.messages.create(s,d,{signal:a});const h=await this.instance.beta.threads.runs.createAndPoll(s,{assistant_id:r,...p&&i?{tool_choice:{type:"file_search"}}:{tool_choice:"auto"}},{signal:a}),{status:f}=h;if("completed"!==f)throw new Error(`Thread run did not complete for message, status: ${f}`);const g=(await this.instance.beta.threads.messages.list(s,{run_id:h.id},{signal:a})).data.find(e=>e.role===OpenAI_typedefs_1.OpenAIRoles.Assistant),_=g?.content.find(e=>"text"===e.type&&"text"in e);if(a?.aborted)throw new Error("Assistant response retrieval aborted");return{text:_?.text?.value??""}}catch(t){return this.logger.child("assistInChat").error("Error assisting in chat",{error:t,options:e}),{error:t}}}async countTokens(e){return OpenAI_entity_1.OpenAIEntity.getCountTokensFn()(e.flatMap(e=>e.content))}}exports.OpenAIAssistanceService=OpenAIAssistanceService;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenAIAssistance.service.js","sourceRoot":"","sources":["../../../../src/providers/OpenAI/services/OpenAIAssistance.service.ts"],"names":[],"mappings":";;;AAAA,2BAAsC;AAEtC,mCAAgC;AAChC,+DAgB+B;AAC/B,yCAAkD;AAClD,wEAAiE;AAEjE,oEAAgE;AAEhE,MAAa,uBACX,SAAQ,+BAAyC;IACjD,SAAS,GAAkB,IAAI,CAAC;IAExB,aAAa,GAAwB,IAAI,GAAG,EAAE,CAAC;IAEvD,YACE,MAAc,EACd,OAAgD;QAEhD,KAAK,CAAC,kCAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;IAED,IAAc,QAAQ;QACpB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,GAAG,IAAI,eAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5C,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,
|
|
1
|
+
{"version":3,"file":"OpenAIAssistance.service.js","sourceRoot":"","sources":["../../../../src/providers/OpenAI/services/OpenAIAssistance.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.OpenAICompletionService=void 0;const openai_1=require("openai"),LLMService_typedefs_1=require("../../../LLMService.typedefs"),services_1=require("../../../services"),OpenAI_entity_1=require("../../../providers/OpenAI/OpenAI.entity");class OpenAICompletionService extends services_1.LLMCompletionService{#e=null;constructor(e,
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.OpenAICompletionService=void 0;const openai_1=require("openai"),LLMService_typedefs_1=require("../../../LLMService.typedefs"),services_1=require("../../../services"),OpenAI_entity_1=require("../../../providers/OpenAI/OpenAI.entity");class OpenAICompletionService extends services_1.LLMCompletionService{#e=null;constructor(e,t){super(LLMService_typedefs_1.LLMProviders.OpenAI,e,t)}get instance(){return this.#e||(this.#e=new openai_1.OpenAI(this.options)),this.#e}async sendMessage(e){try{const{model:t,message:n,history:s=[],abortSignal:i}=e,r=OpenAI_entity_1.OpenAIEntity.getCountTokensFn(),o=await OpenAI_entity_1.OpenAIEntity.combineMessagesWithLimit({history:s,message:n,model:t,countTokensFn:r,instance:this.instance,logger:this.logger}),a=OpenAI_entity_1.OpenAIEntity.getChatCompletionMessageParam(o,this.logger),c=await this.instance.chat.completions.create({model:t.name,messages:a,n:1,...t.config},{signal:i});if(i?.aborted)throw new Error("Message sending aborted");return{text:c.choices[0]?.message.content??""}}catch(t){return this.logger.child("sendMessage").error("Error sending message",{error:t,options:e}),{error:t}}}}exports.OpenAICompletionService=OpenAICompletionService;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenAICompletion.service.js","sourceRoot":"","sources":["../../../../src/providers/OpenAI/services/OpenAICompletion.service.ts"],"names":[],"mappings":";;;AACA,mCAAgC;AAChC,+DAK+B;AAC/B,yCAEoB;AACpB,oEAAgE;AAEhE,MAAa,uBACX,SAAQ,+BAAyC;IACjD,SAAS,GAAkB,IAAI,CAAC;IAEhC,YACE,MAAc,EACd,OAAgD;QAEhD,KAAK,CAAC,kCAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;IAED,IAAc,QAAQ;QACpB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,GAAG,IAAI,eAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5C,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,
|
|
1
|
+
{"version":3,"file":"OpenAICompletion.service.js","sourceRoot":"","sources":["../../../../src/providers/OpenAI/services/OpenAICompletion.service.ts"],"names":[],"mappings":";;;AACA,mCAAgC;AAChC,+DAK+B;AAC/B,yCAEoB;AACpB,oEAAgE;AAEhE,MAAa,uBACX,SAAQ,+BAAyC;IACjD,SAAS,GAAkB,IAAI,CAAC;IAEhC,YACE,MAAc,EACd,OAAgD;QAEhD,KAAK,CAAC,kCAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;IAED,IAAc,QAAQ;QACpB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,GAAG,IAAI,eAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5C,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,WAAW,GACZ,GAAG,OAAO,CAAC;YAEZ,MAAM,aAAa,GAAG,4BAAY,CAAC,gBAAgB,EAAE,CAAC;YAEtD,MAAM,gBAAgB,GAAG,MAAM,4BAAY,CAAC,wBAAwB,CAAC;gBACnE,OAAO;gBACP,OAAO;gBACP,KAAK;gBACL,aAAa;gBACb,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,MAAM,EAAE,IAAI,CAAC,MAAM;aACpB,CAAC,CAAC;YAEH,MAAM,0BAA0B,GAAG,4BAAY;iBAC5C,6BAA6B,CAAC,gBAAgB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAEhE,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;gBAC7D,KAAK,EAAE,KAAK,CAAC,IAAI;gBACjB,QAAQ,EAAE,0BAA0B;gBACpC,CAAC,EAAE,CAAC;gBACJ,GAAG,KAAK,CAAC,MAAM;aAChB,EAAE;gBACD,MAAM,EAAE,WAAW;aACpB,CAAC,CAAC;YAEH,IAAI,WAAW,EAAE,OAAO,EAAE,CAAC;gBACzB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;YAC7C,CAAC;YAED,OAAO;gBACL,IAAI,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE;aACnD,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;AAvED,0DAuEC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.OpenAISpeechToTextService=void 0;const fs_1=require("fs"),openai_1=require("openai"),LLMService_typedefs_1=require("../../../LLMService.typedefs"),services_1=require("../../../services"),OpenAI_entity_1=require("../../../providers/OpenAI/OpenAI.entity"),mime_types_1=__importDefault(require("mime-types"));class OpenAISpeechToTextService extends services_1.LLMSpeechToTextService{#e=null;constructor(e,
|
|
1
|
+
"use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.OpenAISpeechToTextService=void 0;const fs_1=require("fs"),openai_1=require("openai"),LLMService_typedefs_1=require("../../../LLMService.typedefs"),services_1=require("../../../services"),OpenAI_entity_1=require("../../../providers/OpenAI/OpenAI.entity"),mime_types_1=__importDefault(require("mime-types"));class OpenAISpeechToTextService extends services_1.LLMSpeechToTextService{#e=null;constructor(e,r){super(LLMService_typedefs_1.LLMProviders.OpenAI,e,r)}get instance(){return this.#e||(this.#e=new openai_1.OpenAI(this.options)),this.#e}async transcribe(e){try{const{model:r,pathToAudio:t,mimeType:i,abortSignal:o}=e,{maxFileSize:s,supportedMimeTypes:n}=OpenAI_entity_1.OpenAIEntity.transcribeLimits,c=(0,fs_1.statSync)(t).size;if(console.log(`Transcribing audio file: ${t} with size: ${c} bytes`),c>s)throw new Error(`File size exceeds the limit of ${s} bytes`);const a=i??mime_types_1.default.lookup(t);if(console.log(`Resolved MIME type: ${a}`),!a||!n.includes(a))throw new Error(`Unsupported audio file type: ${a}. Supported types are: ${n.join(", ")}`);const p=(0,fs_1.createReadStream)(t,{signal:o});console.log(`Audio file stream created for: ${t}`,{audioFile:p});const l=await this.instance.audio.transcriptions.create({model:r.name,file:p,response_format:"text"},{signal:o});if(console.log(`Transcription completed for: ${t}`,{text:l}),o?.aborted)throw console.log(`Transcription aborted for: ${t}`),new Error("Transcription aborted");return{text:l}}catch(r){return this.logger.child("transcribe").error("Error transcribing audio",{error:r,options:e}),console.error(`Error transcribing audio file: ${e.pathToAudio}`,r),{error:r}}}}exports.OpenAISpeechToTextService=OpenAISpeechToTextService;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenAISpeechToText.service.js","sourceRoot":"","sources":["../../../../src/providers/OpenAI/services/OpenAISpeechToText.service.ts"],"names":[],"mappings":";;;;;;AAAA,2BAAgD;AAEhD,mCAAgC;AAChC,+DAK+B;AAC/B,yCAAoD;AACpD,oEAAgE;AAChE,4DAA8B;AAE9B,MAAa,yBACX,SAAQ,iCAA2C;IACnD,SAAS,GAAkB,IAAI,CAAC;IAEhC,YACE,MAAc,EACd,OAAgD;QAEhD,KAAK,CAAC,kCAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;IAED,IAAc,QAAQ;QACpB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,GAAG,IAAI,eAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5C,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,UAAU,CACd,OAAmD;QAEnD,IAAI,CAAC;YACH,MAAM,EACJ,KAAK,EACL,WAAW,EACX,QAAQ,
|
|
1
|
+
{"version":3,"file":"OpenAISpeechToText.service.js","sourceRoot":"","sources":["../../../../src/providers/OpenAI/services/OpenAISpeechToText.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.OpenAITextToSpeechService=void 0;const openai_1=require("openai"),LLMService_typedefs_1=require("../../../LLMService.typedefs"),services_1=require("../../../services");class OpenAITextToSpeechService extends services_1.LLMTextToSpeechService{#e=null;constructor(e,r){super(LLMService_typedefs_1.LLMProviders.OpenAI,e,r)}get instance(){return this.#e||(this.#e=new openai_1.OpenAI(this.options)),this.#e}async createSpeech(e){try{const{text:r,model:t,instructions:
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.OpenAITextToSpeechService=void 0;const openai_1=require("openai"),LLMService_typedefs_1=require("../../../LLMService.typedefs"),services_1=require("../../../services");class OpenAITextToSpeechService extends services_1.LLMTextToSpeechService{#e=null;constructor(e,r){super(LLMService_typedefs_1.LLMProviders.OpenAI,e,r)}get instance(){return this.#e||(this.#e=new openai_1.OpenAI(this.options)),this.#e}async createSpeech(e){try{const{text:r,model:t,instructions:i,speechOptions:s,abortSignal:n}=e,o=await this.instance.audio.speech.create({model:t.name,input:r,instructions:i,voice:s?.voice||"alloy",response_format:s?.response_format,speed:s?.speed},{signal:n});if(n?.aborted)throw new Error("Speech creation aborted");return{audio:await o.arrayBuffer(),mimeType:o.headers.get("Content-Type")}}catch(r){return this.logger.child("createSpeech").error("Error creating speech",{error:r,options:e}),{error:r}}}}exports.OpenAITextToSpeechService=OpenAITextToSpeechService;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenAITextToSpeech.service.js","sourceRoot":"","sources":["../../../../src/providers/OpenAI/services/OpenAITextToSpeech.service.ts"],"names":[],"mappings":";;;AACA,mCAAgC;AAChC,+DAK+B;AAC/B,yCAAoD;AAEpD,MAAa,yBACX,SAAQ,iCAA2C;IACnD,SAAS,GAAkB,IAAI,CAAC;IAEhC,YACE,MAAc,EACd,OAAgD;QAEhD,KAAK,CAAC,kCAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;IAED,IAAc,QAAQ;QACpB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,GAAG,IAAI,eAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5C,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,OAAqD;QAErD,IAAI,CAAC;YACH,MAAM,EACJ,IAAI,EACJ,KAAK,EACL,YAAY,EACZ,aAAa,
|
|
1
|
+
{"version":3,"file":"OpenAITextToSpeech.service.js","sourceRoot":"","sources":["../../../../src/providers/OpenAI/services/OpenAITextToSpeech.service.ts"],"names":[],"mappings":";;;AACA,mCAAgC;AAChC,+DAK+B;AAC/B,yCAAoD;AAEpD,MAAa,yBACX,SAAQ,iCAA2C;IACnD,SAAS,GAAkB,IAAI,CAAC;IAEhC,YACE,MAAc,EACd,OAAgD;QAEhD,KAAK,CAAC,kCAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;IAED,IAAc,QAAQ;QACpB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,GAAG,IAAI,eAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5C,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,OAAqD;QAErD,IAAI,CAAC;YACH,MAAM,EACJ,IAAI,EACJ,KAAK,EACL,YAAY,EACZ,aAAa,EACb,WAAW,GACZ,GAAG,OAAO,CAAC;YAEZ,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;gBAC5D,KAAK,EAAE,KAAK,CAAC,IAAI;gBACjB,KAAK,EAAE,IAAI;gBACX,YAAY;gBACZ,KAAK,EAAE,aAAa,EAAE,KAAK,IAAI,OAAO;gBACtC,eAAe,EAAE,aAAa,EAAE,eAAe;gBAC/C,KAAK,EAAE,aAAa,EAAE,KAAK;aAC5B,EAAE;gBACD,MAAM,EAAE,WAAW;aACpB,CAAC,CAAC;YAGH,IAAI,WAAW,EAAE,OAAO,EAAE,CAAC;gBACzB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;YAC7C,CAAC;YAED,MAAM,WAAW,GAAG,MAAM,aAAa,CAAC,WAAW,EAAE,CAAC;YAEtD,OAAO;gBACL,KAAK,EAAE,WAAW;gBAClB,QAAQ,EAAE,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;aACpD,CAAC;QACJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,IAAI,CAAC,MAAM;iBACR,KAAK,CAAC,cAAc,CAAC;iBACrB,KAAK,CAAC,uBAAuB,EAAE;gBAC9B,KAAK;gBACL,OAAO;aACR,CAAC,CAAC;YAEL,OAAO,EAAE,KAAK,EAAE,CAAC;QACnB,CAAC;IACH,CAAC;CACF;AAhED,8DAgEC"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { type Logger } from '@mate-academy/core';
|
|
2
|
-
import { type LLMAssistanceOptions, type LLMAssistanceResult, type LLMCompletionMessage, type LLMCreateAssistantOptions, type LLMCreateAssistantResult, type LLMCreateChatOptions, type LLMCreateChatResult, type LLMCreateFileStorageOptions, type LLMCreateFileStorageResult, type LLMInstanceOptions, type LLMModel, type LLMProviders, LLMPurposes, type
|
|
2
|
+
import { type LLMAssistanceOptions, type LLMAssistanceResult, type LLMCompletionMessage, type LLMCreateAssistantOptions, type LLMCreateAssistantResult, type LLMCreateChatOptions, type LLMCreateChatResult, type LLMCreateFileStorageOptions, type LLMCreateFileStorageResult, type LLMInstanceOptions, type LLMModel, type LLMProviders, LLMPurposes, type LLMUploadFileOptions, type LLMUploadFileResult } from '../LLMService.typedefs';
|
|
3
3
|
import { LLMBaseService } from '../services';
|
|
4
4
|
export declare abstract class LLMAssistanceService<Provider extends LLMProviders> extends LLMBaseService<LLMPurposes.Assistance, Provider> {
|
|
5
5
|
constructor(provider: Provider, logger: Logger, options: LLMInstanceOptions[Provider]);
|
|
6
|
-
abstract uploadFile(
|
|
6
|
+
abstract uploadFile(options: LLMUploadFileOptions): Promise<LLMUploadFileResult>;
|
|
7
7
|
abstract deleteFile(fileId: string): Promise<void>;
|
|
8
8
|
abstract createFileStorage(options: LLMCreateFileStorageOptions<Provider>): Promise<LLMCreateFileStorageResult>;
|
|
9
9
|
abstract deleteFileStorage(fileStorageId: string): Promise<void>;
|
|
@@ -13,6 +13,6 @@ export declare abstract class LLMAssistanceService<Provider extends LLMProviders
|
|
|
13
13
|
abstract deleteChat(chatId: string): Promise<void>;
|
|
14
14
|
abstract assistInChat(options: LLMAssistanceOptions): Promise<LLMAssistanceResult>;
|
|
15
15
|
abstract countTokens(messages: LLMCompletionMessage[], model: LLMModel<Provider>): Promise<number>;
|
|
16
|
-
protected isImageFile(file:
|
|
17
|
-
protected isNotImageFile: (file:
|
|
16
|
+
protected isImageFile(file: LLMUploadFileOptions): boolean;
|
|
17
|
+
protected isNotImageFile: (file: LLMUploadFileOptions) => boolean;
|
|
18
18
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LLMAssistanceService.abstract.js","sourceRoot":"","sources":["../../src/services/LLMAssistanceService.abstract.ts"],"names":[],"mappings":";;;AACA,+DAgB+B;AAC/B,yCAA4C;AAC5C,iEAA8D;AAE9D,MAAsB,oBACpB,SAAQ,yBAGP;IACD,YACE,QAAkB,EAClB,MAAc,EACd,OAAqC;QAErC,KAAK,CACH,QAAQ,EACR,mBAAmB,EACnB,iCAAW,CAAC,UAAU,EACtB,MAAM,EACN,OAAO,CACR,CAAC;IACJ,CAAC;IA2CS,WAAW,CAAC,
|
|
1
|
+
{"version":3,"file":"LLMAssistanceService.abstract.js","sourceRoot":"","sources":["../../src/services/LLMAssistanceService.abstract.ts"],"names":[],"mappings":";;;AACA,+DAgB+B;AAC/B,yCAA4C;AAC5C,iEAA8D;AAE9D,MAAsB,oBACpB,SAAQ,yBAGP;IACD,YACE,QAAkB,EAClB,MAAc,EACd,OAAqC;QAErC,KAAK,CACH,QAAQ,EACR,mBAAmB,EACnB,iCAAW,CAAC,UAAU,EACtB,MAAM,EACN,OAAO,CACR,CAAC;IACJ,CAAC;IA2CS,WAAW,CAAC,IAA0B;QAC9C,OAAO,2CAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtD,CAAC;IAES,cAAc,GAAG,CAAC,IAA0B,EAAW,EAAE;QACjE,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC,CAAA;CACF;AAnED,oDAmEC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mate-academy/llm-gateway",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.2.1-canary.1",
|
|
4
4
|
"description": "A gateway package for LLM services.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -54,7 +54,7 @@
|
|
|
54
54
|
"@types/jest": "^30.0.0",
|
|
55
55
|
"@types/mime-types": "^3.0.1",
|
|
56
56
|
"@typescript-eslint/eslint-plugin": "^8.36.0",
|
|
57
|
-
"dotenv": "^17.
|
|
57
|
+
"dotenv": "^17.2.0",
|
|
58
58
|
"eslint": "^9.30.1",
|
|
59
59
|
"eslint-plugin-no-only-tests": "^3.3.0",
|
|
60
60
|
"glob": "^11.0.3",
|
|
@@ -67,12 +67,12 @@
|
|
|
67
67
|
"typescript-eslint": "^8.36.0"
|
|
68
68
|
},
|
|
69
69
|
"dependencies": {
|
|
70
|
-
"@google/genai": "^1.
|
|
70
|
+
"@google/genai": "^1.9.0",
|
|
71
71
|
"@mate-academy/core": "^1.10.4",
|
|
72
72
|
"axios": "^1.10.0",
|
|
73
73
|
"js-tiktoken": "^1.0.20",
|
|
74
74
|
"mime-types": "^3.0.1",
|
|
75
|
-
"openai": "^5.
|
|
75
|
+
"openai": "^5.9.0",
|
|
76
76
|
"uuid": "^11.1.0"
|
|
77
77
|
}
|
|
78
78
|
}
|