@mate-academy/llm-gateway 2.3.0 → 2.4.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 +159 -0
- package/dist/LLMService.typedefs.d.ts +9 -0
- package/dist/LLMService.typedefs.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/providers/GoogleGenerativeAI/GoogleGenerativeAI.constants.js +1 -1
- package/dist/providers/GoogleGenerativeAI/GoogleGenerativeAI.constants.js.map +1 -1
- package/dist/providers/GoogleGenerativeAI/GoogleGenerativeAI.entity.d.ts +4 -0
- package/dist/providers/GoogleGenerativeAI/GoogleGenerativeAI.entity.js +2 -1
- package/dist/providers/GoogleGenerativeAI/GoogleGenerativeAI.entity.js.map +1 -1
- package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAIAssistance.service.d.ts +7 -1
- package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAIAssistance.service.js +77 -1
- package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAIAssistance.service.js.map +1 -1
- package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAICompletion.service.d.ts +7 -1
- package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAICompletion.service.js +79 -2
- package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAICompletion.service.js.map +1 -1
- package/dist/providers/OpenAI/OpenAI.constants.js +1 -1
- package/dist/providers/OpenAI/OpenAI.constants.js.map +1 -1
- package/dist/providers/OpenAI/services/OpenAIAssistance.service.d.ts +7 -1
- package/dist/providers/OpenAI/services/OpenAIAssistance.service.js +117 -3
- package/dist/providers/OpenAI/services/OpenAIAssistance.service.js.map +1 -1
- package/dist/providers/OpenAI/services/OpenAICompletion.service.d.ts +7 -1
- package/dist/providers/OpenAI/services/OpenAICompletion.service.js +86 -2
- package/dist/providers/OpenAI/services/OpenAICompletion.service.js.map +1 -1
- package/dist/services/LLMAssistanceService.abstract.d.ts +8 -1
- package/dist/services/LLMAssistanceService.abstract.js.map +1 -1
- package/dist/services/LLMCompletionService.abstract.d.ts +8 -1
- package/dist/services/LLMCompletionService.abstract.js.map +1 -1
- package/dist/utilities/functional.utils.js.map +1 -0
- package/dist/utilities/index.d.ts +3 -0
- package/dist/utilities/index.js +22 -0
- package/dist/utilities/index.js.map +1 -0
- package/dist/utilities/promptBuilder.js.map +1 -0
- package/dist/utilities/schema/AbstractSchemaBuilder.d.ts +50 -0
- package/dist/utilities/schema/AbstractSchemaBuilder.js +11 -0
- package/dist/utilities/schema/AbstractSchemaBuilder.js.map +1 -0
- package/dist/utilities/schema/LLMSchema.d.ts +119 -0
- package/dist/utilities/schema/LLMSchema.js +286 -0
- package/dist/utilities/schema/LLMSchema.js.map +1 -0
- package/dist/utilities/schema/LLMSchemaInterface.d.ts +47 -0
- package/dist/utilities/schema/LLMSchemaInterface.js +3 -0
- package/dist/utilities/schema/LLMSchemaInterface.js.map +1 -0
- package/dist/utilities/schema/index.d.ts +3 -0
- package/dist/utilities/schema/index.js +11 -0
- package/dist/utilities/schema/index.js.map +1 -0
- package/package.json +19 -11
- package/dist/functional.utils.js.map +0 -1
- package/dist/promptBuilder.js.map +0 -1
- /package/dist/{functional.utils.d.ts → utilities/functional.utils.d.ts} +0 -0
- /package/dist/{functional.utils.js → utilities/functional.utils.js} +0 -0
- /package/dist/{promptBuilder.d.ts → utilities/promptBuilder.d.ts} +0 -0
- /package/dist/{promptBuilder.js → utilities/promptBuilder.js} +0 -0
package/README.md
CHANGED
|
@@ -15,6 +15,7 @@ npm install @mate-academy/llm-gateway
|
|
|
15
15
|
## Features
|
|
16
16
|
|
|
17
17
|
- Support for multiple LLM providers (OpenAI, Google Generative AI)
|
|
18
|
+
- **Structured Output**: Type-safe JSON responses with schema validation
|
|
18
19
|
- Standardized completion service interface
|
|
19
20
|
- Standardized assistance service interface with file handling
|
|
20
21
|
- Speech-to-text transcription capabilities
|
|
@@ -25,6 +26,7 @@ npm install @mate-academy/llm-gateway
|
|
|
25
26
|
- Factory pattern for easy provider selection
|
|
26
27
|
- Consistent logging across all providers
|
|
27
28
|
- Comprehensive testing suite with integration tests
|
|
29
|
+
- Full backward compatibility
|
|
28
30
|
|
|
29
31
|
## Usage
|
|
30
32
|
|
|
@@ -43,6 +45,7 @@ import {
|
|
|
43
45
|
LLMUploadFileMimeTypes,
|
|
44
46
|
LLMCompletionMessage,
|
|
45
47
|
LLMModel,
|
|
48
|
+
LLMSchema,
|
|
46
49
|
createPromptTemplate,
|
|
47
50
|
} from '@mate-academy/llm-gateway';
|
|
48
51
|
|
|
@@ -221,6 +224,162 @@ const result = await completionService.sendMessage({
|
|
|
221
224
|
console.log(result.text); // AI response
|
|
222
225
|
```
|
|
223
226
|
|
|
227
|
+
### Structured Output
|
|
228
|
+
|
|
229
|
+
The LLM Gateway supports structured output, allowing you to request type-safe, validated JSON responses from LLM providers.
|
|
230
|
+
|
|
231
|
+
#### Basic Structured Output
|
|
232
|
+
|
|
233
|
+
```typescript
|
|
234
|
+
import { LLMSchema } from '@mate-academy/llm-gateway';
|
|
235
|
+
|
|
236
|
+
// Define your output schema
|
|
237
|
+
const personSchema = LLMSchema.object({
|
|
238
|
+
name: LLMSchema.string(),
|
|
239
|
+
age: LLMSchema.number().min(1),
|
|
240
|
+
email: LLMSchema.string().email(),
|
|
241
|
+
isActive: LLMSchema.boolean(),
|
|
242
|
+
});
|
|
243
|
+
|
|
244
|
+
// Request structured output
|
|
245
|
+
const result = await completionService.sendMessage({
|
|
246
|
+
message: {
|
|
247
|
+
role: LLMRoles.User,
|
|
248
|
+
content: [{
|
|
249
|
+
type: LLMMessageContentType.TEXT,
|
|
250
|
+
text: 'Create a person profile for John Smith, 30 years old, email john@example.com'
|
|
251
|
+
}]
|
|
252
|
+
},
|
|
253
|
+
model: preferredModel,
|
|
254
|
+
schema: personSchema // Add schema for structured output
|
|
255
|
+
});
|
|
256
|
+
|
|
257
|
+
// Type-safe access to structured data
|
|
258
|
+
if (result.data) {
|
|
259
|
+
console.log(result.data.name); // string
|
|
260
|
+
console.log(result.data.age); // number
|
|
261
|
+
console.log(result.data.email); // string
|
|
262
|
+
console.log(result.data.isActive); // boolean
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
// Always available as text fallback
|
|
266
|
+
console.log(result.text);
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
#### Complex Schema Example
|
|
270
|
+
|
|
271
|
+
```typescript
|
|
272
|
+
const analysisSchema = LLMSchema.object({
|
|
273
|
+
sentiment: LLMSchema.enum(['positive', 'negative', 'neutral']),
|
|
274
|
+
confidence: LLMSchema.number().min(0).max(1),
|
|
275
|
+
keywords: LLMSchema.array(LLMSchema.string()),
|
|
276
|
+
summary: LLMSchema.string(),
|
|
277
|
+
metadata: LLMSchema.object({
|
|
278
|
+
processedAt: LLMSchema.string(),
|
|
279
|
+
modelVersion: LLMSchema.string(),
|
|
280
|
+
}),
|
|
281
|
+
});
|
|
282
|
+
|
|
283
|
+
const result = await completionService.sendMessage({
|
|
284
|
+
message: {
|
|
285
|
+
role: LLMRoles.User,
|
|
286
|
+
content: [{
|
|
287
|
+
type: LLMMessageContentType.TEXT,
|
|
288
|
+
text: 'Analyze this text: "I love this new feature!"'
|
|
289
|
+
}]
|
|
290
|
+
},
|
|
291
|
+
model: preferredModel,
|
|
292
|
+
schema: analysisSchema
|
|
293
|
+
});
|
|
294
|
+
|
|
295
|
+
// Fully type-safe access
|
|
296
|
+
if (result.data) {
|
|
297
|
+
console.log(result.data.sentiment); // 'positive' | 'negative' | 'neutral'
|
|
298
|
+
console.log(result.data.confidence); // number (0-1)
|
|
299
|
+
console.log(result.data.keywords); // string[]
|
|
300
|
+
console.log(result.data.summary); // string
|
|
301
|
+
console.log(result.data.metadata.processedAt); // string
|
|
302
|
+
}
|
|
303
|
+
```
|
|
304
|
+
|
|
305
|
+
#### Schema API Reference
|
|
306
|
+
|
|
307
|
+
The `LLMSchema` builder provides a fluent API for defining output schemas:
|
|
308
|
+
|
|
309
|
+
**Basic Types:**
|
|
310
|
+
- `LLMSchema.string()` - String values
|
|
311
|
+
- `LLMSchema.number()` - Numeric values
|
|
312
|
+
- `LLMSchema.boolean()` - Boolean values
|
|
313
|
+
- `LLMSchema.array(itemSchema)` - Arrays of items
|
|
314
|
+
- `LLMSchema.object({ ... })` - Object with specified properties
|
|
315
|
+
- `LLMSchema.enum(['option1', 'option2'])` - Enumerated values
|
|
316
|
+
- `LLMSchema.literal('exact_value')` - Exact literal values
|
|
317
|
+
|
|
318
|
+
**Modifiers:**
|
|
319
|
+
- `.optional()` - Makes field optional (Note: OpenAI strict mode requires all fields)
|
|
320
|
+
- `.nullable()` - Allows null values
|
|
321
|
+
- `.default(value)` - Sets default value
|
|
322
|
+
- `.describe(text)` - Adds description
|
|
323
|
+
|
|
324
|
+
**String Modifiers:**
|
|
325
|
+
- `.min(length)` - Minimum string length
|
|
326
|
+
- `.max(length)` - Maximum string length
|
|
327
|
+
- `.email()` - Email validation
|
|
328
|
+
- `.url()` - URL validation
|
|
329
|
+
- `.uuid()` - UUID validation
|
|
330
|
+
|
|
331
|
+
**Number Modifiers:**
|
|
332
|
+
- `.int()` - Integer values only
|
|
333
|
+
- `.positive()` - Positive numbers (Note: Use `.min(1)` for better OpenAI compatibility)
|
|
334
|
+
- `.negative()` - Negative numbers
|
|
335
|
+
- `.min(value)` - Minimum value
|
|
336
|
+
- `.max(value)` - Maximum value
|
|
337
|
+
|
|
338
|
+
#### Error Handling
|
|
339
|
+
|
|
340
|
+
```typescript
|
|
341
|
+
const result = await completionService.sendMessage({
|
|
342
|
+
message: { /* ... */ },
|
|
343
|
+
model: preferredModel,
|
|
344
|
+
schema: mySchema
|
|
345
|
+
});
|
|
346
|
+
|
|
347
|
+
if (result.data) {
|
|
348
|
+
// Successfully parsed structured output
|
|
349
|
+
console.log('Structured data:', result.data);
|
|
350
|
+
} else if (result.parseError) {
|
|
351
|
+
// Parsing failed, but text is still available
|
|
352
|
+
console.error('Parse error:', result.parseError);
|
|
353
|
+
console.log('Raw text:', result.text);
|
|
354
|
+
} else if (result.error) {
|
|
355
|
+
// Request failed entirely
|
|
356
|
+
console.error('Request error:', result.error);
|
|
357
|
+
}
|
|
358
|
+
```
|
|
359
|
+
|
|
360
|
+
#### Provider Support
|
|
361
|
+
|
|
362
|
+
- **OpenAI**: Uses native `response_format` with `json_schema` for optimal performance
|
|
363
|
+
- **Google Generative AI**: Uses native `responseSchema` parameter for structured output
|
|
364
|
+
- **Backward Compatibility**: All existing code continues to work unchanged
|
|
365
|
+
|
|
366
|
+
#### Provider Compatibility Notes
|
|
367
|
+
|
|
368
|
+
**OpenAI Structured Output Requirements:**
|
|
369
|
+
- All properties must be required (no truly optional fields in strict mode)
|
|
370
|
+
- Use `.min(1)` instead of `.positive()` for better compatibility
|
|
371
|
+
- Nested objects and arrays are fully supported
|
|
372
|
+
|
|
373
|
+
**Google Generative AI:**
|
|
374
|
+
- Supports optional fields correctly
|
|
375
|
+
- Handles all schema types and modifiers
|
|
376
|
+
- More flexible with schema variations
|
|
377
|
+
|
|
378
|
+
**Best Practices for Cross-Provider Compatibility:**
|
|
379
|
+
- Make all fields required when possible
|
|
380
|
+
- Use `.min()` and `.max()` instead of `.positive()`, `.negative()`
|
|
381
|
+
- Test schemas with both providers if cross-compatibility is important
|
|
382
|
+
|
|
224
383
|
#### File-based Assistance
|
|
225
384
|
|
|
226
385
|
```typescript
|
|
@@ -206,6 +206,15 @@ export interface LLMSendMessageOptions<Provider extends LLMProviders> extends LL
|
|
|
206
206
|
history?: LLMCompletionMessage[];
|
|
207
207
|
instructions?: string;
|
|
208
208
|
}
|
|
209
|
+
/**
|
|
210
|
+
* Result type for structured output from LLM providers.
|
|
211
|
+
* @template T - The type of the structured data
|
|
212
|
+
*/
|
|
213
|
+
export type LLMStructuredResult<T = any> = LLMRequestResult<{
|
|
214
|
+
text: string;
|
|
215
|
+
data?: T;
|
|
216
|
+
parseError?: string;
|
|
217
|
+
}>;
|
|
209
218
|
/**
|
|
210
219
|
* Limits for files that can be uploaded to LLM services.
|
|
211
220
|
*/
|
|
@@ -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,qBAKX;AALD,WAAY,qBAAqB;IAC/B,sCAAa,CAAA;IACb,gDAAuB,CAAA;IACvB,kDAAyB,CAAA;IACzB,kDAAyB,CAAA;AAC3B,CAAC,EALW,qBAAqB,qCAArB,qBAAqB,QAKhC;
|
|
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;AA4HD;;GAEG;AACH,IAAY,sBAeX;AAfD,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;IACzB,iDAAuB,CAAA;AACzB,CAAC,EAfW,sBAAsB,sCAAtB,sBAAsB,QAejC"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -19,5 +19,5 @@ __exportStar(require("./LLMService.factory"), exports);
|
|
|
19
19
|
__exportStar(require("./LLMService.typedefs"), exports);
|
|
20
20
|
__exportStar(require("./providers"), exports);
|
|
21
21
|
__exportStar(require("./services"), exports);
|
|
22
|
-
__exportStar(require("./
|
|
22
|
+
__exportStar(require("./utilities"), exports);
|
|
23
23
|
//# sourceMappingURL=index.js.map
|
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;AAC3B,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yDAAuC;AACvC,uDAAqC;AACrC,wDAAsC;AACtC,8CAA4B;AAC5B,6CAA2B;AAC3B,8CAA4B"}
|
|
@@ -4,7 +4,7 @@ exports.GOOGLE_AI_SERVICE_BUILDERS = exports.GOOGLE_AI_MODELS = exports.MIN_CACH
|
|
|
4
4
|
const LLMService_typedefs_1 = require("../../LLMService.typedefs");
|
|
5
5
|
const GoogleGenerativeAI_typedefs_1 = require("./GoogleGenerativeAI.typedefs");
|
|
6
6
|
const services_1 = require("../../providers/GoogleGenerativeAI/services");
|
|
7
|
-
const functional_utils_1 = require("../../functional.utils");
|
|
7
|
+
const functional_utils_1 = require("../../utilities/functional.utils");
|
|
8
8
|
exports.MIN_CACHE_CONTENT_LENGTH = 32_768;
|
|
9
9
|
const GOOGLE_AI_AVAILABLE_MODELS = {
|
|
10
10
|
[GoogleGenerativeAI_typedefs_1.GoogleGenerativeAIModelNames.GEMINI_1_5_FLASH]: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GoogleGenerativeAI.constants.js","sourceRoot":"","sources":["../../../src/providers/GoogleGenerativeAI/GoogleGenerativeAI.constants.ts"],"names":[],"mappings":";;;AAAA,+DAM+B;AAC/B,+EAA6E;AAC7E,sEAKiD;AACjD,
|
|
1
|
+
{"version":3,"file":"GoogleGenerativeAI.constants.js","sourceRoot":"","sources":["../../../src/providers/GoogleGenerativeAI/GoogleGenerativeAI.constants.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,10 @@ export declare class GoogleGenerativeAIEntity {
|
|
|
7
7
|
messages: Content[];
|
|
8
8
|
instructions?: string;
|
|
9
9
|
abortSignal?: AbortSignal;
|
|
10
|
+
responseConfig?: {
|
|
11
|
+
responseMimeType?: string;
|
|
12
|
+
responseSchema?: any;
|
|
13
|
+
};
|
|
10
14
|
}): GenerateContentParameters;
|
|
11
15
|
static getFileDataParts(uploadedFiles: LLMUploadedFile[]): Pick<Part, 'fileData'>[];
|
|
12
16
|
static getTextParts(messages: string[]): Pick<Part, 'text'>[];
|
|
@@ -8,7 +8,7 @@ const axios_1 = __importDefault(require("axios"));
|
|
|
8
8
|
const LLMService_typedefs_1 = require("../../LLMService.typedefs");
|
|
9
9
|
class GoogleGenerativeAIEntity {
|
|
10
10
|
static getContentParameters(options) {
|
|
11
|
-
const { model, messages, instructions, abortSignal, } = options;
|
|
11
|
+
const { model, messages, instructions, abortSignal, responseConfig, } = options;
|
|
12
12
|
return {
|
|
13
13
|
model: model.name,
|
|
14
14
|
contents: messages,
|
|
@@ -16,6 +16,7 @@ class GoogleGenerativeAIEntity {
|
|
|
16
16
|
systemInstruction: instructions,
|
|
17
17
|
temperature: model.config.temperature,
|
|
18
18
|
abortSignal,
|
|
19
|
+
...responseConfig,
|
|
19
20
|
},
|
|
20
21
|
};
|
|
21
22
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GoogleGenerativeAI.entity.js","sourceRoot":"","sources":["../../../src/providers/GoogleGenerativeAI/GoogleGenerativeAI.entity.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAU1B,+DAY+B;AAE/B,MAAa,wBAAwB;IACnC,MAAM,CAAC,oBAAoB,CAAC,
|
|
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,7 +1,8 @@
|
|
|
1
1
|
import { type Logger } from '@mate-academy/core';
|
|
2
2
|
import { GoogleGenAI } from '@google/genai';
|
|
3
|
-
import { type LLMAssistanceOptions, type LLMAssistanceResult, type LLMAssistanceMessage, type LLMCreateAssistantOptions, type LLMCreateAssistantResult, type LLMCreateChatOptions, type LLMCreateChatResult, type LLMCreateFileStorageOptions, type LLMCreateFileStorageResult, type LLMInstanceOptions, type LLMModel, LLMProviders, type LLMUploadFileOptions, type LLMUploadFileResult } from '../../../LLMService.typedefs';
|
|
3
|
+
import { type LLMAssistanceOptions, type LLMAssistanceResult, type LLMAssistanceMessage, type LLMCreateAssistantOptions, type LLMCreateAssistantResult, type LLMCreateChatOptions, type LLMCreateChatResult, type LLMCreateFileStorageOptions, type LLMCreateFileStorageResult, type LLMInstanceOptions, type LLMModel, LLMProviders, type LLMUploadFileOptions, type LLMUploadFileResult, type LLMStructuredResult } from '../../../LLMService.typedefs';
|
|
4
4
|
import { LLMAssistanceService } from '../../../services';
|
|
5
|
+
import { type LLMSchemaInterface, type InferSchema } from '../../../utilities/schema';
|
|
5
6
|
export declare class GoogleGenerativeAIAssistanceService extends LLMAssistanceService<LLMProviders.GoogleGenerativeAI> {
|
|
6
7
|
#private;
|
|
7
8
|
private cachedContent;
|
|
@@ -18,6 +19,11 @@ export declare class GoogleGenerativeAIAssistanceService extends LLMAssistanceSe
|
|
|
18
19
|
deleteChat(chatId: string): Promise<void>;
|
|
19
20
|
createAssistant(options: LLMCreateAssistantOptions<LLMProviders.GoogleGenerativeAI>): Promise<LLMCreateAssistantResult>;
|
|
20
21
|
deleteAssistant(): Promise<void>;
|
|
22
|
+
assistInChat<S extends LLMSchemaInterface>(options: LLMAssistanceOptions & {
|
|
23
|
+
schema: S;
|
|
24
|
+
}): Promise<LLMStructuredResult<InferSchema<S>>>;
|
|
21
25
|
assistInChat(options: LLMAssistanceOptions): Promise<LLMAssistanceResult>;
|
|
26
|
+
private assistInChatText;
|
|
27
|
+
private assistInChatStructured;
|
|
22
28
|
countTokens(messages: LLMAssistanceMessage[], model: LLMModel<LLMProviders.GoogleGenerativeAI>): Promise<number>;
|
|
23
29
|
}
|
|
@@ -240,6 +240,12 @@ class GoogleGenerativeAIAssistanceService extends services_1.LLMAssistanceServic
|
|
|
240
240
|
return Promise.resolve();
|
|
241
241
|
}
|
|
242
242
|
async assistInChat(options) {
|
|
243
|
+
if (options.schema) {
|
|
244
|
+
return this.assistInChatStructured(options);
|
|
245
|
+
}
|
|
246
|
+
return this.assistInChatText(options);
|
|
247
|
+
}
|
|
248
|
+
async assistInChatText(options) {
|
|
243
249
|
try {
|
|
244
250
|
const { message, chatId, abortSignal, } = options;
|
|
245
251
|
const chatSession = this.chatSessions.get(chatId);
|
|
@@ -267,7 +273,7 @@ class GoogleGenerativeAIAssistanceService extends services_1.LLMAssistanceServic
|
|
|
267
273
|
}
|
|
268
274
|
catch (error) {
|
|
269
275
|
this.logger
|
|
270
|
-
.child('
|
|
276
|
+
.child('assistInChatText')
|
|
271
277
|
.error('Error assisting in chat', {
|
|
272
278
|
error,
|
|
273
279
|
options,
|
|
@@ -275,6 +281,76 @@ class GoogleGenerativeAIAssistanceService extends services_1.LLMAssistanceServic
|
|
|
275
281
|
return { error };
|
|
276
282
|
}
|
|
277
283
|
}
|
|
284
|
+
async assistInChatStructured(options) {
|
|
285
|
+
try {
|
|
286
|
+
const { message, chatId, abortSignal, schema, } = options;
|
|
287
|
+
const chatSession = this.chatSessions.get(chatId);
|
|
288
|
+
if (!chatSession) {
|
|
289
|
+
throw new Error('Chat session not found');
|
|
290
|
+
}
|
|
291
|
+
abortSignal?.throwIfAborted();
|
|
292
|
+
const messageContent = await GoogleGenerativeAI_entity_1.GoogleGenerativeAIEntity.getContent(message, this.instance, this.logger);
|
|
293
|
+
abortSignal?.throwIfAborted();
|
|
294
|
+
if (!messageContent.parts) {
|
|
295
|
+
return {
|
|
296
|
+
text: '',
|
|
297
|
+
parseError: 'No message parts available',
|
|
298
|
+
};
|
|
299
|
+
}
|
|
300
|
+
// Convert schema to Google format for structured output
|
|
301
|
+
const googleSchema = schema._toGoogleSchema();
|
|
302
|
+
const chatResponse = await chatSession.sendMessage({
|
|
303
|
+
message: messageContent.parts,
|
|
304
|
+
config: {
|
|
305
|
+
abortSignal,
|
|
306
|
+
responseMimeType: 'application/json',
|
|
307
|
+
responseSchema: googleSchema,
|
|
308
|
+
},
|
|
309
|
+
});
|
|
310
|
+
abortSignal?.throwIfAborted();
|
|
311
|
+
const content = chatResponse.text ?? '';
|
|
312
|
+
if (!content) {
|
|
313
|
+
return {
|
|
314
|
+
text: '',
|
|
315
|
+
parseError: 'Empty response from Google Generative AI Assistant',
|
|
316
|
+
};
|
|
317
|
+
}
|
|
318
|
+
try {
|
|
319
|
+
const parsed = JSON.parse(content);
|
|
320
|
+
const validation = schema._parse(parsed);
|
|
321
|
+
return {
|
|
322
|
+
text: content,
|
|
323
|
+
data: validation.data,
|
|
324
|
+
parseError: validation.error,
|
|
325
|
+
};
|
|
326
|
+
}
|
|
327
|
+
catch (parseError) {
|
|
328
|
+
this.logger
|
|
329
|
+
.child('assistInChatStructured')
|
|
330
|
+
.warn('Failed to parse JSON response', {
|
|
331
|
+
content,
|
|
332
|
+
parseError: parseError.message,
|
|
333
|
+
});
|
|
334
|
+
return {
|
|
335
|
+
text: content,
|
|
336
|
+
parseError: `JSON parsing failed: ${parseError.message}`,
|
|
337
|
+
};
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
catch (error) {
|
|
341
|
+
this.logger
|
|
342
|
+
.child('assistInChatStructured')
|
|
343
|
+
.error('Error assisting in chat with structured output', {
|
|
344
|
+
error,
|
|
345
|
+
options,
|
|
346
|
+
});
|
|
347
|
+
return {
|
|
348
|
+
text: '',
|
|
349
|
+
error,
|
|
350
|
+
parseError: 'Failed to get structured response from Google Generative AI Assistant',
|
|
351
|
+
};
|
|
352
|
+
}
|
|
353
|
+
}
|
|
278
354
|
async countTokens(messages, model) {
|
|
279
355
|
const countTokensFn = GoogleGenerativeAI_entity_1.GoogleGenerativeAIEntity
|
|
280
356
|
.getCountTokensFn(this.instance);
|
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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"}
|
package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAICompletion.service.d.ts
CHANGED
|
@@ -1,10 +1,16 @@
|
|
|
1
1
|
import { type Logger } from '@mate-academy/core';
|
|
2
2
|
import { GoogleGenAI } from '@google/genai';
|
|
3
|
-
import { type LLMCompletionResult, type LLMInstanceOptions, LLMProviders, type LLMSendMessageOptions } from '../../../LLMService.typedefs';
|
|
3
|
+
import { type LLMCompletionResult, type LLMInstanceOptions, LLMProviders, type LLMSendMessageOptions, type LLMStructuredResult } from '../../../LLMService.typedefs';
|
|
4
4
|
import { LLMCompletionService } from '../../../services';
|
|
5
|
+
import { type LLMSchemaInterface, type InferSchema } from '../../../utilities/schema';
|
|
5
6
|
export declare class GoogleGenerativeAICompletionService extends LLMCompletionService<LLMProviders.GoogleGenerativeAI> {
|
|
6
7
|
#private;
|
|
7
8
|
constructor(logger: Logger, options: LLMInstanceOptions[LLMProviders.GoogleGenerativeAI]);
|
|
8
9
|
get instance(): GoogleGenAI;
|
|
10
|
+
sendMessage<S extends LLMSchemaInterface>(options: LLMSendMessageOptions<typeof this.provider> & {
|
|
11
|
+
schema: S;
|
|
12
|
+
}): Promise<LLMStructuredResult<InferSchema<S>>>;
|
|
9
13
|
sendMessage(options: LLMSendMessageOptions<typeof this.provider>): Promise<LLMCompletionResult>;
|
|
14
|
+
private sendTextMessage;
|
|
15
|
+
private sendStructuredMessage;
|
|
10
16
|
}
|
|
@@ -19,6 +19,12 @@ class GoogleGenerativeAICompletionService extends services_1.LLMCompletionServic
|
|
|
19
19
|
return this.#instance;
|
|
20
20
|
}
|
|
21
21
|
async sendMessage(options) {
|
|
22
|
+
if (options.schema) {
|
|
23
|
+
return this.sendStructuredMessage(options);
|
|
24
|
+
}
|
|
25
|
+
return this.sendTextMessage(options);
|
|
26
|
+
}
|
|
27
|
+
async sendTextMessage(options) {
|
|
22
28
|
try {
|
|
23
29
|
const { model, message, history = [], instructions, abortSignal, } = options;
|
|
24
30
|
const countTokensFn = GoogleGenerativeAI_entity_1.GoogleGenerativeAIEntity
|
|
@@ -46,14 +52,85 @@ class GoogleGenerativeAICompletionService extends services_1.LLMCompletionServic
|
|
|
46
52
|
}
|
|
47
53
|
catch (error) {
|
|
48
54
|
this.logger
|
|
49
|
-
.child('
|
|
50
|
-
.error('Error sending message', {
|
|
55
|
+
.child('sendTextMessage')
|
|
56
|
+
.error('Error sending text message', {
|
|
51
57
|
error,
|
|
52
58
|
options,
|
|
53
59
|
});
|
|
54
60
|
return { error };
|
|
55
61
|
}
|
|
56
62
|
}
|
|
63
|
+
async sendStructuredMessage(options) {
|
|
64
|
+
try {
|
|
65
|
+
const { model, message, history = [], instructions, abortSignal, schema, } = options;
|
|
66
|
+
const countTokensFn = GoogleGenerativeAI_entity_1.GoogleGenerativeAIEntity
|
|
67
|
+
.getCountTokensFn(this.instance);
|
|
68
|
+
abortSignal?.throwIfAborted();
|
|
69
|
+
const combinedMessages = await GoogleGenerativeAI_entity_1.GoogleGenerativeAIEntity.combineMessagesWithLimit({
|
|
70
|
+
history,
|
|
71
|
+
message,
|
|
72
|
+
model,
|
|
73
|
+
countTokensFn,
|
|
74
|
+
instance: this.instance,
|
|
75
|
+
logger: this.logger,
|
|
76
|
+
});
|
|
77
|
+
abortSignal?.throwIfAborted();
|
|
78
|
+
// Convert schema to Google's format
|
|
79
|
+
const googleSchema = schema._toGoogleSchema();
|
|
80
|
+
const result = await this.instance.models.generateContent(GoogleGenerativeAI_entity_1.GoogleGenerativeAIEntity.getContentParameters({
|
|
81
|
+
model,
|
|
82
|
+
messages: combinedMessages,
|
|
83
|
+
instructions,
|
|
84
|
+
abortSignal,
|
|
85
|
+
responseConfig: {
|
|
86
|
+
responseMimeType: 'application/json',
|
|
87
|
+
responseSchema: googleSchema,
|
|
88
|
+
},
|
|
89
|
+
}));
|
|
90
|
+
abortSignal?.throwIfAborted();
|
|
91
|
+
const content = result.text ?? '';
|
|
92
|
+
if (!content) {
|
|
93
|
+
return {
|
|
94
|
+
text: '',
|
|
95
|
+
parseError: 'Empty response from Google Generative AI',
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
try {
|
|
99
|
+
const parsed = JSON.parse(content);
|
|
100
|
+
const validation = schema._parse(parsed);
|
|
101
|
+
return {
|
|
102
|
+
text: content,
|
|
103
|
+
data: validation.data,
|
|
104
|
+
parseError: validation.error,
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
catch (parseError) {
|
|
108
|
+
this.logger
|
|
109
|
+
.child('sendStructuredMessage')
|
|
110
|
+
.warn('Failed to parse JSON response', {
|
|
111
|
+
content,
|
|
112
|
+
parseError: parseError.message,
|
|
113
|
+
});
|
|
114
|
+
return {
|
|
115
|
+
text: content,
|
|
116
|
+
parseError: `JSON parsing failed: ${parseError.message}`,
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
catch (error) {
|
|
121
|
+
this.logger
|
|
122
|
+
.child('sendStructuredMessage')
|
|
123
|
+
.error('Error sending structured message', {
|
|
124
|
+
error,
|
|
125
|
+
options,
|
|
126
|
+
});
|
|
127
|
+
return {
|
|
128
|
+
text: '',
|
|
129
|
+
error,
|
|
130
|
+
parseError: 'Failed to get structured response from Google Generative AI',
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
}
|
|
57
134
|
}
|
|
58
135
|
exports.GoogleGenerativeAICompletionService = GoogleGenerativeAICompletionService;
|
|
59
136
|
//# sourceMappingURL=GoogleGenerativeAICompletion.service.js.map
|
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,+
|
|
1
|
+
{"version":3,"file":"GoogleGenerativeAICompletion.service.js","sourceRoot":"","sources":["../../../../src/providers/GoogleGenerativeAI/services/GoogleGenerativeAICompletion.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ exports.OPEN_AI_SERVICE_BUILDERS = exports.OPEN_AI_MODELS = void 0;
|
|
|
4
4
|
const LLMService_typedefs_1 = require("../../LLMService.typedefs");
|
|
5
5
|
const OpenAI_typedefs_1 = require("../../providers/OpenAI/OpenAI.typedefs");
|
|
6
6
|
const services_1 = require("./services");
|
|
7
|
-
const functional_utils_1 = require("../../functional.utils");
|
|
7
|
+
const functional_utils_1 = require("../../utilities/functional.utils");
|
|
8
8
|
const OPEN_AI_AVAILABLE_MODELS = {
|
|
9
9
|
[OpenAI_typedefs_1.OpenAIModelNames.GPT_4_OMNI]: {
|
|
10
10
|
name: OpenAI_typedefs_1.OpenAIModelNames.GPT_4_OMNI,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenAI.constants.js","sourceRoot":"","sources":["../../../src/providers/OpenAI/OpenAI.constants.ts"],"names":[],"mappings":";;;AAAA,+DAM+B;AAC/B,wEAAsE;AACtE,yCAKoB;AACpB,
|
|
1
|
+
{"version":3,"file":"OpenAI.constants.js","sourceRoot":"","sources":["../../../src/providers/OpenAI/OpenAI.constants.ts"],"names":[],"mappings":"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"}
|