@mate-academy/llm-gateway 1.3.1 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +40 -24
- package/dist/LLMService.typedefs.d.ts +31 -12
- package/dist/LLMService.typedefs.js +1 -1
- package/dist/LLMService.typedefs.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/promptBuilder.d.ts +28 -0
- package/dist/promptBuilder.js +1 -0
- package/dist/promptBuilder.js.map +1 -0
- package/dist/providers/GoogleGenerativeAI/GoogleGenerativeAI.entity.d.ts +2 -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 +2 -1
- package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAIAssistance.service.js +1 -1
- package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAIAssistance.service.js.map +1 -1
- 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 +1 -1
- package/dist/providers/OpenAI/services/OpenAIAssistance.service.js +1 -1
- package/dist/providers/OpenAI/services/OpenAIAssistance.service.js.map +1 -1
- package/dist/services/LLMAssistanceService.abstract.d.ts +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -35,6 +35,9 @@ import {
|
|
|
35
35
|
LLMAssistanceService,
|
|
36
36
|
LLMSpeechToTextService,
|
|
37
37
|
LLMTextToSpeechService,
|
|
38
|
+
LLMRoles,
|
|
39
|
+
LLMMessageContentType,
|
|
40
|
+
LLMUploadFileMimeTypes,
|
|
38
41
|
} from '@mate-academy/llm-gateway';
|
|
39
42
|
|
|
40
43
|
// Define provider options
|
|
@@ -145,8 +148,8 @@ class MyUseCase {
|
|
|
145
148
|
// Use completion service
|
|
146
149
|
const completion = await this.llmCompletionService.sendMessage({
|
|
147
150
|
message: {
|
|
148
|
-
role:
|
|
149
|
-
content: { type:
|
|
151
|
+
role: LLMRoles.User,
|
|
152
|
+
content: { type: LLMMessageContentType.TEXT, text: prompt }
|
|
150
153
|
},
|
|
151
154
|
model: this.getPreferredModel(),
|
|
152
155
|
});
|
|
@@ -167,9 +170,12 @@ class MyUseCase {
|
|
|
167
170
|
async generateSpeech(text) {
|
|
168
171
|
// Use text-to-speech service
|
|
169
172
|
const speech = await this.llmTextToSpeechService.createSpeech({
|
|
170
|
-
|
|
173
|
+
text: text,
|
|
171
174
|
model: this.getPreferredModel(),
|
|
172
|
-
|
|
175
|
+
speechOptions: {
|
|
176
|
+
voice: 'alloy', // OpenAI voice option
|
|
177
|
+
response_format: 'mp3',
|
|
178
|
+
},
|
|
173
179
|
});
|
|
174
180
|
|
|
175
181
|
return speech;
|
|
@@ -183,13 +189,6 @@ class MyUseCase {
|
|
|
183
189
|
}
|
|
184
190
|
```
|
|
185
191
|
|
|
186
|
-
this.llmAssistanceService = LLMServiceFactory.getAssistanceService(
|
|
187
|
-
config.llmProvider,
|
|
188
|
-
logger,
|
|
189
|
-
llmProviderOptions,
|
|
190
|
-
);
|
|
191
|
-
}
|
|
192
|
-
|
|
193
192
|
### Usage Examples
|
|
194
193
|
|
|
195
194
|
#### Basic Text Completion
|
|
@@ -197,8 +196,8 @@ class MyUseCase {
|
|
|
197
196
|
```typescript
|
|
198
197
|
const result = await completionService.sendMessage({
|
|
199
198
|
message: {
|
|
200
|
-
role:
|
|
201
|
-
content: { type:
|
|
199
|
+
role: LLMRoles.User,
|
|
200
|
+
content: { type: LLMMessageContentType.TEXT, text: 'Hello, how are you?' }
|
|
202
201
|
},
|
|
203
202
|
model: preferredModel,
|
|
204
203
|
});
|
|
@@ -211,9 +210,9 @@ console.log(result.text); // AI response
|
|
|
211
210
|
```typescript
|
|
212
211
|
// Upload files for context
|
|
213
212
|
const uploadedFile = await assistanceService.uploadFile({
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
mimeType:
|
|
213
|
+
name: 'document.txt',
|
|
214
|
+
path: '/path/to/document.txt',
|
|
215
|
+
mimeType: LLMUploadFileMimeTypes.PLAIN_TEXT,
|
|
217
216
|
});
|
|
218
217
|
|
|
219
218
|
// Create file storage
|
|
@@ -239,7 +238,6 @@ const chat = await assistanceService.createChat({
|
|
|
239
238
|
const transcription = await speechToTextService.transcribe({
|
|
240
239
|
pathToAudio: '/path/to/audio.mp3',
|
|
241
240
|
model: preferredModel,
|
|
242
|
-
language: 'en', // optional
|
|
243
241
|
});
|
|
244
242
|
|
|
245
243
|
console.log(transcription.text); // Transcribed text
|
|
@@ -249,14 +247,16 @@ console.log(transcription.text); // Transcribed text
|
|
|
249
247
|
|
|
250
248
|
```typescript
|
|
251
249
|
const speech = await textToSpeechService.createSpeech({
|
|
252
|
-
|
|
250
|
+
text: 'Hello, this will be converted to speech',
|
|
253
251
|
model: preferredModel,
|
|
254
|
-
|
|
255
|
-
|
|
252
|
+
speechOptions: {
|
|
253
|
+
voice: 'alloy', // OpenAI voice option
|
|
254
|
+
response_format: 'mp3',
|
|
255
|
+
},
|
|
256
256
|
});
|
|
257
257
|
|
|
258
258
|
// Save audio buffer to file
|
|
259
|
-
fs.writeFileSync('output.mp3', speech.
|
|
259
|
+
fs.writeFileSync('output.mp3', speech.audio);
|
|
260
260
|
```
|
|
261
261
|
|
|
262
262
|
## API Reference
|
|
@@ -313,9 +313,24 @@ Interface for chat/assistance services with file handling capabilities.
|
|
|
313
313
|
#### Methods
|
|
314
314
|
|
|
315
315
|
- `uploadFile(file)`: Upload a file to the LLM service
|
|
316
|
+
- Parameters: `LLMUploadFile` with `name`, `path`, and `mimeType`
|
|
317
|
+
- Returns: `Promise<LLMUploadFileResult>`
|
|
318
|
+
- `deleteFile(fileId)`: Delete a file from the LLM service
|
|
316
319
|
- `createFileStorage(options)`: Create a file storage for organizing files
|
|
320
|
+
- Parameters: `LLMCreateFileStorageOptions` with `uploadedFiles`, `model`, and optional `instructions`
|
|
321
|
+
- Returns: `Promise<LLMCreateFileStorageResult>`
|
|
322
|
+
- `deleteFileStorage(fileStorageId)`: Delete a file storage
|
|
323
|
+
- `createAssistant(options)`: Create an AI assistant with specific instructions
|
|
324
|
+
- Parameters: `LLMCreateAssistantOptions` with `model`, optional `instructions` and `storageIds`
|
|
325
|
+
- Returns: `Promise<LLMCreateAssistantResult>`
|
|
326
|
+
- `deleteAssistant(assistantId)`: Delete an assistant
|
|
317
327
|
- `createChat(options)`: Create a new chat/conversation
|
|
328
|
+
- Parameters: `LLMCreateChatOptions` with `model`, optional `instructions`, `history`, `files`, and `storageId`
|
|
329
|
+
- Returns: `Promise<LLMCreateChatResult>`
|
|
330
|
+
- `deleteChat(chatId)`: Delete a chat
|
|
318
331
|
- `assistInChat(options)`: Send a message in an existing chat and get an assistant response
|
|
332
|
+
- Parameters: `LLMAssistanceOptions` with `model`, `message`, `chatId`, and `assistantId`
|
|
333
|
+
- Returns: `Promise<LLMAssistanceResult>`
|
|
319
334
|
|
|
320
335
|
### LLMSpeechToTextService
|
|
321
336
|
|
|
@@ -341,7 +356,8 @@ Supports all service types: completion, assistance, speech-to-text, and text-to-
|
|
|
341
356
|
|
|
342
357
|
**Available Models:**
|
|
343
358
|
- GPT-4 models for completion and assistance
|
|
344
|
-
-
|
|
359
|
+
- Whisper models for speech-to-text transcription
|
|
360
|
+
- TTS models for text-to-speech generation
|
|
345
361
|
|
|
346
362
|
### Google Generative AI
|
|
347
363
|
|
|
@@ -823,8 +839,8 @@ export class YourProviderTextToSpeechService extends LLMTextToSpeechService<LLMP
|
|
|
823
839
|
try {
|
|
824
840
|
// Implement provider-specific speech creation logic
|
|
825
841
|
return {
|
|
826
|
-
|
|
827
|
-
|
|
842
|
+
audio: Buffer.from('audio data'),
|
|
843
|
+
mimeType: 'audio/mp3',
|
|
828
844
|
};
|
|
829
845
|
} catch (error) {
|
|
830
846
|
this.logger.error('Error in YourProvider speech creation', { error });
|
|
@@ -112,35 +112,48 @@ export declare enum LLMRoles {
|
|
|
112
112
|
*/
|
|
113
113
|
export declare enum LLMMessageContentType {
|
|
114
114
|
TEXT = "text",
|
|
115
|
-
IMAGE_URL = "image_url"
|
|
115
|
+
IMAGE_URL = "image_url",
|
|
116
|
+
IMAGE_FILE = "image_file"
|
|
116
117
|
}
|
|
117
118
|
/**
|
|
118
|
-
* Represents a text message in an LLM conversation.
|
|
119
|
+
* Represents a text part in a message in an LLM conversation.
|
|
119
120
|
*/
|
|
120
121
|
export interface LLMMessageTextContent {
|
|
121
122
|
type: LLMMessageContentType.TEXT;
|
|
122
123
|
text: string;
|
|
123
124
|
}
|
|
124
125
|
/**
|
|
125
|
-
* Represents an image message in an LLM conversation.
|
|
126
|
+
* Represents an image part (by url) in a message in an LLM conversation.
|
|
126
127
|
*/
|
|
127
128
|
export interface LLMMessageImageUrlContent {
|
|
128
129
|
type: LLMMessageContentType.IMAGE_URL;
|
|
129
130
|
image_url: {
|
|
130
131
|
url: string;
|
|
132
|
+
detail?: 'auto' | 'low' | 'high';
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Represents an image (uploaded in advance) part in a message in an LLM conversation.
|
|
137
|
+
*/
|
|
138
|
+
export interface LLMMessageImageFileContent {
|
|
139
|
+
type: LLMMessageContentType.IMAGE_FILE;
|
|
140
|
+
image_file: {
|
|
141
|
+
file_id: string;
|
|
142
|
+
path: string;
|
|
143
|
+
mime_type: LLMImageMimeType;
|
|
144
|
+
detail?: 'auto' | 'low' | 'high';
|
|
131
145
|
};
|
|
132
|
-
detail?: 'auto' | 'low' | 'high';
|
|
133
146
|
}
|
|
134
147
|
/**
|
|
135
148
|
* Union type for all possible message content types in an LLM conversation.
|
|
136
149
|
*/
|
|
137
|
-
export type LLMMessageContent = LLMMessageTextContent | LLMMessageImageUrlContent;
|
|
150
|
+
export type LLMMessageContent = LLMMessageTextContent | LLMMessageImageUrlContent | LLMMessageImageFileContent;
|
|
138
151
|
/**
|
|
139
152
|
* Represents a message in an LLM conversation.
|
|
140
153
|
*/
|
|
141
154
|
export interface LLMCompletionMessage {
|
|
142
155
|
role: LLMRoles;
|
|
143
|
-
content: LLMMessageContent;
|
|
156
|
+
content: LLMMessageContent[];
|
|
144
157
|
}
|
|
145
158
|
/**
|
|
146
159
|
* Represents an error that occurred during an LLM request.
|
|
@@ -181,11 +194,18 @@ export type LLMFileLimits = {
|
|
|
181
194
|
*/
|
|
182
195
|
export declare enum LLMUploadFileMimeTypes {
|
|
183
196
|
IMAGE_PNG = "image/png",
|
|
197
|
+
IMAGE_JPEG = "image/jpeg",
|
|
198
|
+
IMAGE_JPG = "image/jpg",
|
|
199
|
+
IMAGE_GIF = "image/gif",
|
|
200
|
+
IMAGE_WEBP = "image/webp",
|
|
201
|
+
IMAGE_SVG_XML = "image/svg+xml",
|
|
202
|
+
IMAGE_BMP = "image/bmp",
|
|
184
203
|
PLAIN_TEXT = "text/plain",
|
|
185
204
|
AUDIO_MP3 = "audio/mp3",
|
|
186
205
|
AUDIO_MPEG = "audio/mpeg",
|
|
187
206
|
AUDIO_WAV = "audio/wav"
|
|
188
207
|
}
|
|
208
|
+
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;
|
|
189
209
|
/**
|
|
190
210
|
* Represents a file to be uploaded to an LLM service.
|
|
191
211
|
*/
|
|
@@ -231,6 +251,7 @@ export interface LLMCreateAssistantOptions<Provider extends LLMProviders> {
|
|
|
231
251
|
model: LLMModel<Provider>;
|
|
232
252
|
instructions?: string;
|
|
233
253
|
storageIds?: string[];
|
|
254
|
+
name?: string;
|
|
234
255
|
}
|
|
235
256
|
/**
|
|
236
257
|
* Represents a created assistant in an LLM service.
|
|
@@ -249,7 +270,7 @@ export type LLMCreateAssistantResult = LLMRequestResult<LLMCreatedAssistant>;
|
|
|
249
270
|
export interface LLMCreateChatOptions<Provider extends LLMProviders> {
|
|
250
271
|
model: LLMModel<Provider>;
|
|
251
272
|
instructions?: string;
|
|
252
|
-
history?:
|
|
273
|
+
history?: LLMCompletionMessage[];
|
|
253
274
|
files?: LLMUploadedFile[];
|
|
254
275
|
storageId?: string;
|
|
255
276
|
}
|
|
@@ -264,18 +285,16 @@ export interface LLMCreatedChat {
|
|
|
264
285
|
*/
|
|
265
286
|
export type LLMCreateChatResult = LLMRequestResult<LLMCreatedChat>;
|
|
266
287
|
/**
|
|
267
|
-
* Extends LLMMessage with
|
|
288
|
+
* Extends LLMMessage with optional attachments
|
|
268
289
|
*/
|
|
269
290
|
export interface LLMAssistanceMessage extends LLMCompletionMessage {
|
|
270
|
-
|
|
271
|
-
instructions?: string;
|
|
291
|
+
attachments?: LLMUploadedFile[];
|
|
272
292
|
}
|
|
273
293
|
/**
|
|
274
294
|
* Options for using an assistant with a specific LLM provider.
|
|
275
295
|
* @template Provider - The LLM provider type
|
|
276
296
|
*/
|
|
277
|
-
export interface LLMAssistanceOptions
|
|
278
|
-
model: LLMModel<Provider>;
|
|
297
|
+
export interface LLMAssistanceOptions {
|
|
279
298
|
message: LLMAssistanceMessage;
|
|
280
299
|
chatId: string;
|
|
281
300
|
assistantId: 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"}(LLMMessageContentType||(exports.LLMMessageContentType=LLMMessageContentType={})),function(e){e.IMAGE_PNG="image/png",e.PLAIN_TEXT="text/plain",e.AUDIO_MP3="audio/mp3",e.AUDIO_MPEG="audio/mpeg",e.AUDIO_WAV="audio/wav"}(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"}(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.AUDIO_MP3="audio/mp3",e.AUDIO_MPEG="audio/mpeg",e.AUDIO_WAV="audio/wav"}(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,qBAIX;AAJD,WAAY,qBAAqB;IAC/B,sCAAa,CAAA;IACb,gDAAuB,CAAA;IACvB,kDAAyB,CAAA;AAC3B,CAAC,EAJW,qBAAqB,qCAArB,qBAAqB,QAIhC;AAqFD;;GAEG;AACH,IAAY,sBAYX;AAZD,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,iDAAuB,CAAA;IACvB,mDAAyB,CAAA;IACzB,iDAAuB,CAAA;AACzB,CAAC,EAZW,sBAAsB,sCAAtB,sBAAsB,QAYjC"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,r,t,i){void 0===i&&(i=t);var o=Object.getOwnPropertyDescriptor(r,t);o&&!("get"in o?!r.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return r[t]}}),Object.defineProperty(e,i,o)}:function(e,r,t,i){void 0===i&&(i=t),e[i]=r[t]}),__exportStar=this&&this.__exportStar||function(e,r){for(var t in e)"default"===t||Object.prototype.hasOwnProperty.call(r,t)||__createBinding(r,e,t)};Object.defineProperty(exports,"__esModule",{value:!0}),__exportStar(require("./LLMService.constants"),exports),__exportStar(require("./LLMService.factory"),exports),__exportStar(require("./LLMService.typedefs"),exports),__exportStar(require("./providers"),exports),__exportStar(require("./services"),exports);
|
|
1
|
+
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,r,t,i){void 0===i&&(i=t);var o=Object.getOwnPropertyDescriptor(r,t);o&&!("get"in o?!r.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return r[t]}}),Object.defineProperty(e,i,o)}:function(e,r,t,i){void 0===i&&(i=t),e[i]=r[t]}),__exportStar=this&&this.__exportStar||function(e,r){for(var t in e)"default"===t||Object.prototype.hasOwnProperty.call(r,t)||__createBinding(r,e,t)};Object.defineProperty(exports,"__esModule",{value:!0}),__exportStar(require("./LLMService.constants"),exports),__exportStar(require("./LLMService.factory"),exports),__exportStar(require("./LLMService.typedefs"),exports),__exportStar(require("./providers"),exports),__exportStar(require("./services"),exports),__exportStar(require("./promptBuilder"),exports);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yDAAuC;AACvC,uDAAqC;AACrC,wDAAsC;AACtC,8CAA4B;AAC5B,6CAA2B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yDAAuC;AACvC,uDAAqC;AACrC,wDAAsC;AACtC,8CAA4B;AAC5B,6CAA2B;AAC3B,kDAAgC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utility types and functions for handling prompts with dynamic replacements.
|
|
3
|
+
* This allows for type-safe string templates with placeholders that can be replaced with actual values.
|
|
4
|
+
* The `createPromptTemplate` function helps create typed prompts with automatic extraction of replacement keys.
|
|
5
|
+
*
|
|
6
|
+
* @module promptBuilder
|
|
7
|
+
* @example
|
|
8
|
+
* // Example usage:
|
|
9
|
+
* const PROMPTS = {
|
|
10
|
+
* welcomeMessage: createPromptTemplate(`
|
|
11
|
+
* Generate a welcome message for a user who has just started their auto tech check attempt on {{topicTitle}}.
|
|
12
|
+
* `),
|
|
13
|
+
* };
|
|
14
|
+
*
|
|
15
|
+
* const instruction = PROMPTS.welcomeMessage({ topicTitle: 'JavaScript Basics' });
|
|
16
|
+
*
|
|
17
|
+
* // This will generate a prompt:
|
|
18
|
+
* // "Generate a welcome message for a user who has just started their auto tech check attempt on JavaScript Basics."
|
|
19
|
+
*/
|
|
20
|
+
type ExtractReplacements<T extends string> = T extends `${string}{{${infer Key}}}${infer Rest}` ? Key extends `${infer CleanKey}` ? CleanKey | ExtractReplacements<Rest> : never : never;
|
|
21
|
+
/**
|
|
22
|
+
* Creates a prompt template function that can be used to generate prompts with dynamic replacements.
|
|
23
|
+
* @template T The type of the template string. Inferred from the provided template.
|
|
24
|
+
* @param {T} template The template string with placeholders for dynamic values (e.g., `{{topicTitle}}`).
|
|
25
|
+
* @returns A function that takes the dynamic values and returns the generated prompt.
|
|
26
|
+
*/
|
|
27
|
+
export declare function createPromptTemplate<T extends string>(template: T): (...args: ExtractReplacements<T> extends never ? [] : [variables: Record<ExtractReplacements<T>, string | number>]) => string;
|
|
28
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";function promptBuilder(e,t){return t?Object.entries(t).reduce(((e,[t,r])=>e.replace(new RegExp(`{{\\s*${t}\\s*}}`,"g"),String(r))),e):e}function createPromptTemplate(e){const t=e.trim();return(...e)=>promptBuilder(t,...e)}Object.defineProperty(exports,"__esModule",{value:!0}),exports.createPromptTemplate=createPromptTemplate;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"promptBuilder.js","sourceRoot":"","sources":["../src/promptBuilder.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;GAkBG;;AA2CH,oDAQC;AA1BD,SAAS,aAAa,CACpB,MAAc,EACd,SAA2C;IAE3C,OAAO,SAAS;QACd,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,CAChC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,SAAS,GAAG,QAAQ,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,EACxF,MAAM,CACP;QACD,CAAC,CAAC,MAAM,CAAC;AACb,CAAC;AAED;;;;;GAKG;AACH,SAAgB,oBAAoB,CAAmB,QAAW;IAChE,MAAM,eAAe,GAAG,QAAQ,CAAC,IAAI,EAAO,CAAC;IAE7C,OAAO,CACL,GAAG,IAE6D,EACxD,EAAE,CAAC,aAAa,CAAC,eAAe,EAAE,GAAG,IAAI,CAAC,CAAC;AACvD,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type Part, type GoogleGenAI, type GenerateContentParameters, type Content, type ContentListUnion } from '@google/genai';
|
|
2
|
-
import { type CombineMessagesOptions, type LLMCountTokensFunction, type LLMCompletionMessage, type LLMModel, type LLMProviders, type LLMUploadedFile, type LLMFileLimits } from '../../LLMService.typedefs';
|
|
2
|
+
import { type CombineMessagesOptions, type LLMCountTokensFunction, type LLMCompletionMessage, type LLMModel, type LLMProviders, type LLMUploadedFile, type LLMFileLimits, type LLMAssistanceMessage } from '../../LLMService.typedefs';
|
|
3
3
|
export declare class GoogleGenerativeAIEntity {
|
|
4
4
|
static getContentParameters(options: {
|
|
5
5
|
model: LLMModel<LLMProviders.GoogleGenerativeAI>;
|
|
@@ -8,7 +8,7 @@ export declare class GoogleGenerativeAIEntity {
|
|
|
8
8
|
}): GenerateContentParameters;
|
|
9
9
|
static getFileDataParts(uploadedFiles: LLMUploadedFile[]): Pick<Part, 'fileData'>[];
|
|
10
10
|
static getTextParts(messages: string[]): Pick<Part, 'text'>[];
|
|
11
|
-
static getContent(message: LLMCompletionMessage, instance: GoogleGenAI
|
|
11
|
+
static getContent(message: LLMCompletionMessage | LLMAssistanceMessage, instance: GoogleGenAI): Promise<Content>;
|
|
12
12
|
static getCountTokensFn(instance: GoogleGenAI): LLMCountTokensFunction<LLMProviders.GoogleGenerativeAI, ContentListUnion>;
|
|
13
13
|
static combineMessagesWithLimit({ modelContext, history, message, model, countTokensFn, instance, }: CombineMessagesOptions<LLMProviders.GoogleGenerativeAI, LLMCountTokensFunction<LLMProviders.GoogleGenerativeAI, ContentListUnion>>): Promise<Content[]>;
|
|
14
14
|
static get transcribeLimits(): LLMFileLimits;
|
|
@@ -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")
|
|
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:s,temperature:t.config.temperature}}}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){const i=e.role===LLMService_typedefs_1.LLMRoles.Assistant?"model":e.role,s=[];for(const i of e.content)switch(i.type){case LLMService_typedefs_1.LLMMessageContentType.TEXT:s.push({text:i.text});break;case LLMService_typedefs_1.LLMMessageContentType.IMAGE_URL:{const e=await axios_1.default.head(i.image_url.url),a=e.headers["content-type"]?.split(";")[0]??LLMService_typedefs_1.LLMUploadFileMimeTypes.IMAGE_PNG,r=await axios_1.default.get(i.image_url.url,{responseType:"arraybuffer"}),n=new Uint8Array(r.data),o=new Blob([n],{type:a}),l=await t.files.upload({file:o});s.push({fileData:{fileUri:l.uri,mimeType:a}});break}case LLMService_typedefs_1.LLMMessageContentType.IMAGE_FILE:s.push({fileData:{fileUri:i.image_file.path,mimeType:i.image_file.mime_type}})}return"attachments"in e&&e.attachments&&s.push(...this.getFileDataParts(e.attachments)),{role:i,parts:s}}static getCountTokensFn(e){const t=e=>Boolean(e&&"object"==typeof e&&"role"in e&&"parts"in e);return async(i,s)=>{if(!i)return 0;const a=[];Array.isArray(i)?a.push(...i.filter(t)):t(i)&&a.push(i);const r=a.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:s.name,contents:r});return n??0}}static async combineMessagesWithLimit({modelContext:e=[],history:t=[],message:i,model:s,countTokensFn:a,instance:r}){const n=await Promise.all(e.map((e=>GoogleGenerativeAIEntity.getContent(e,r)))),o=await Promise.all(t.map((e=>GoogleGenerativeAIEntity.getContent(e,r)))),l={role:LLMService_typedefs_1.LLMRoles.User,content:i.content},c=[...n,await GoogleGenerativeAIEntity.getContent(l,r)],p=[...o].reverse();let m=await a(c,s)??0,u=0;for(const e of p){const t=await a(e,s)??0;if(!(m+t<=s.limits.maxInputTokens))break;u+=1,c.splice(-u,0,e),m+=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]}}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;AAS1B,+
|
|
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
|
@@ -7,6 +7,7 @@ export declare class GoogleGenerativeAIAssistanceService extends LLMAssistanceSe
|
|
|
7
7
|
private cachedContent;
|
|
8
8
|
private chatSessions;
|
|
9
9
|
private uploadedFiles;
|
|
10
|
+
private uncachedFileStorages;
|
|
10
11
|
constructor(logger: Logger, options: LLMInstanceOptions[LLMProviders.GoogleGenerativeAI]);
|
|
11
12
|
protected get instance(): GoogleGenAI;
|
|
12
13
|
uploadFile(file: LLMUploadFile): Promise<LLMUploadFileResult>;
|
|
@@ -17,5 +18,5 @@ export declare class GoogleGenerativeAIAssistanceService extends LLMAssistanceSe
|
|
|
17
18
|
deleteChat(chatId: string): Promise<void>;
|
|
18
19
|
createAssistant(): Promise<LLMCreateAssistantResult>;
|
|
19
20
|
deleteAssistant(): Promise<void>;
|
|
20
|
-
assistInChat(options: LLMAssistanceOptions
|
|
21
|
+
assistInChat(options: LLMAssistanceOptions): Promise<LLMAssistanceResult>;
|
|
21
22
|
}
|
|
@@ -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;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:
|
|
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,s=this.uploadedFiles.get(t);if(s)return s;const o=await this.instance.files.upload({file:t,config:{mimeType:r,displayName:i}});if(!o.name)throw new Error("Upload result did not return a name");if(!o.uri)throw new Error("Upload result did not return a uri");if(o.error)throw o.error;const n={...e,fileId:o.name,path:o.uri};return this.uploadedFiles.set(t,n),n}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:i}=e;try{const e=GoogleGenerativeAI_entity_1.GoogleGenerativeAIEntity.getFileDataParts(t),s=GoogleGenerativeAI_entity_1.GoogleGenerativeAIEntity.getCountTokensFn(this.instance),o=await s(e,r);if(o<GoogleGenerativeAI_constants_1.MIN_CACHE_CONTENT_LENGTH){const e=(0,uuid_1.v4)();return this.uncachedFileStorages.set(e,t),this.logger.child("createFileStorage").info("File storage created without caching (content too small)",{storageId:e,tokenCount:o,minRequired:GoogleGenerativeAI_constants_1.MIN_CACHE_CONTENT_LENGTH}),{storageId:e}}const n=await this.instance.caches.create({model:r.name,config:{contents:[{role:GoogleGenerativeAI_typedefs_1.GoogleGenerativeAIRoles.User,parts:e}],systemInstruction:i,ttl:"1h"}});if(!n.name)throw new Error("Cache result did not return a name");return this.cachedContent.set(n.name,n),{storageId:n.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:i,history:s,files:o}=e,n=t?this.cachedContent.get(t):void 0,a=t?this.uncachedFileStorages.get(t):void 0,c=s?await Promise.all(s.map((e=>GoogleGenerativeAI_entity_1.GoogleGenerativeAIEntity.getContent(e,this.instance)))):[];if(!n&&o){const e=GoogleGenerativeAI_entity_1.GoogleGenerativeAIEntity.getFileDataParts(o);c.push({role:GoogleGenerativeAI_typedefs_1.GoogleGenerativeAIRoles.User,parts:e})}if(!n&&a){const e=GoogleGenerativeAI_entity_1.GoogleGenerativeAIEntity.getFileDataParts(a);c.push({role:GoogleGenerativeAI_typedefs_1.GoogleGenerativeAIRoles.User,parts:e})}const l=this.instance.chats.create({model:r.name,history:c,config:{systemInstruction:i,temperature:r.config.temperature,...n&&{cachedContent:n.name}}}),d=(0,uuid_1.v4)();return this.chatSessions.set(d,l),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(){return Promise.resolve({assistantId:""})}deleteAssistant(){return Promise.resolve()}async assistInChat(e){try{const{message:t,chatId:r}=e,i=this.chatSessions.get(r);if(!i)throw new Error("Chat session not found");const s=await GoogleGenerativeAI_entity_1.GoogleGenerativeAIEntity.getContent(t,this.instance);if(!s.parts)return{text:""};return{text:(await i.sendMessage({message:s.parts})).text??""}}catch(t){return this.logger.child("assistInChat").error("Error assisting in chat",{error:t,options:e}),{error: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,+DAa+B;AAC/B,yCAAkD;AAClD,4GAAqG;AACrG,wGAAoG;AACpG,8GAAuG;AAEvG,MAAa,mCACX,SAAQ,+BAAqD;IAC7D,SAAS,GAAuB,IAAI,CAAC;IAE7B,aAAa,GAA+B,IAAI,GAAG,EAAE,CAAC;IAEtD,YAAY,GAAsB,IAAI,GAAG,EAAE,CAAC;IAE5C,aAAa,GAAiC,IAAI,GAAG,EAAE,CAAC;
|
|
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.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)=>s.type
|
|
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:r}){const i=[...e];if(t[0]){const e=t[0];i.push(e)}const o=[{role:LLMService_typedefs_1.LLMRoles.User,content:s.content},...t.slice(1).reverse()],p=i.flatMap((e=>e.content));let c=await(r?.(p,n))??0;for(const e of o){const t=c+(await(r?.(e.content,n))??0);if(!(t<=n.limits.maxInputTokens))break;i.push(e),c=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]}}}exports.OpenAIEntity=OpenAIEntity;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenAI.entity.js","sourceRoot":"","sources":["../../../src/providers/OpenAI/OpenAI.entity.ts"],"names":[],"mappings":";;;AAAA,iEAA2E;AAC3E,+DAU+B;AAC/B,wEAAiE;AACjE,6CAA0C;AAG1C,MAAa,YAAY;IACvB,MAAM,CAAC,gBAAgB;QACrB,OAAO,CACL,gBAAqC,EACpB,EAAE;YACnB,MAAM,OAAO,GAAG,IAAA,yBAAW,EAAC,YAAY,CAAC,CAAC;YAC1C,MAAM,MAAM,GAAG,gBAAgB,CAAC,MAAM,CACpC,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE;gBAChB,
|
|
1
|
+
{"version":3,"file":"OpenAI.entity.js","sourceRoot":"","sources":["../../../src/providers/OpenAI/OpenAI.entity.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,5 +15,5 @@ export declare class OpenAIAssistanceService extends LLMAssistanceService<LLMPro
|
|
|
15
15
|
deleteChat(chatId: string): Promise<void>;
|
|
16
16
|
createAssistant(options: LLMCreateAssistantOptions<LLMProviders.OpenAI>): Promise<LLMCreateAssistantResult>;
|
|
17
17
|
deleteAssistant(assistantId: string): Promise<void>;
|
|
18
|
-
assistInChat(options: LLMAssistanceOptions
|
|
18
|
+
assistInChat(options: LLMAssistanceOptions): Promise<LLMAssistanceResult>;
|
|
19
19
|
}
|
|
@@ -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");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,s=this.uploadedFiles.get(t);if(s){if((await this.instance.files.retrieve(s)).id)return{...e,fileId:s}}const r=(0,fs_1.createReadStream)(t),i=await this.instance.files.create({purpose:"assistants",file:r});return await this.instance.files.waitForProcessing(i.id),this.uploadedFiles.set(t,i.id),{...e,fileId:i.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}=e;try{const e=await this.instance.vectorStores.create({expires_after:{anchor:"last_active_at",days:1}});return await this.instance.vectorStores.fileBatches.createAndPoll(e.id,{file_ids:t.map((({fileId:e})=>e))}),{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}=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");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,s=this.uploadedFiles.get(t);if(s){if((await this.instance.files.retrieve(s)).id)return{...e,fileId:s}}const r=(0,fs_1.createReadStream)(t),i=await this.instance.files.create({purpose:"assistants",file:r});return await this.instance.files.waitForProcessing(i.id),this.uploadedFiles.set(t,i.id),{...e,fileId:i.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}=e;try{const e=await this.instance.vectorStores.create({expires_after:{anchor:"last_active_at",days:1}});return await this.instance.vectorStores.fileBatches.createAndPoll(e.id,{file_ids:t.map((({fileId:e})=>e))}),{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}=e,i=t?{tool_resources:{file_search:{vector_store_ids:[t]}}}:{},a=s?.map((e=>({...e,content:e.content,role:e.role===LLMService_typedefs_1.LLMRoles.User?OpenAI_typedefs_1.OpenAIRoles.User:OpenAI_typedefs_1.OpenAIRoles.Assistant})))??[];r&&a.push({role:OpenAI_typedefs_1.OpenAIRoles.User,content:r.map((e=>({type:LLMService_typedefs_1.LLMMessageContentType.IMAGE_FILE,image_file:{file_id:e.fileId,detail:"high"}})))});return{chatId:(await this.instance.beta.threads.create({messages:a,...i})).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}=e,a=r?.length?{tools:[{type:"file_search"}],tool_resources:{file_search:{vector_store_ids:r}}}:{};return{assistantId:(await this.instance.beta.assistants.create({model:t.name,instructions:s,temperature:t.config.temperature,top_p:t.config.top_p,name:i,...a})).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}=e,{attachments:i,content:a,role:n}=t,o=[];i&&i.forEach((e=>{o.push({type:"image_file",image_file:{file_id:e.fileId,detail:"high"}})})),o.push(...a);const c={role:n===LLMService_typedefs_1.LLMRoles.User?OpenAI_typedefs_1.OpenAIRoles.User:OpenAI_typedefs_1.OpenAIRoles.Assistant,content:o};await this.instance.beta.threads.messages.create(s,c);const l=await this.instance.beta.threads.runs.createAndPoll(s,{assistant_id:r}),{status:d}=l;if("completed"!==d)throw new Error(`Thread run did not complete for message, status: ${d}`);const p=(await this.instance.beta.threads.messages.list(s,{run_id:l.id})).data.find((e=>e.role===OpenAI_typedefs_1.OpenAIRoles.Assistant)),h=p?.content.find((e=>"text"===e.type&&"text"in e));return{text:h?.text?.value??""}}catch(t){return this.logger.child("assistInChat").error("Error assisting in chat",{error:t,options:e}),{error:t}}}}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,+
|
|
1
|
+
{"version":3,"file":"OpenAIAssistance.service.js","sourceRoot":"","sources":["../../../../src/providers/OpenAI/services/OpenAIAssistance.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,5 +11,5 @@ export declare abstract class LLMAssistanceService<Provider extends LLMProviders
|
|
|
11
11
|
abstract deleteAssistant(assistantId: string): Promise<void>;
|
|
12
12
|
abstract createChat(options: LLMCreateChatOptions<Provider>): Promise<LLMCreateChatResult>;
|
|
13
13
|
abstract deleteChat(chatId: string): Promise<void>;
|
|
14
|
-
abstract assistInChat(options: LLMAssistanceOptions
|
|
14
|
+
abstract assistInChat(options: LLMAssistanceOptions): Promise<LLMAssistanceResult>;
|
|
15
15
|
}
|