@mate-academy/llm-gateway 2.5.3 → 3.0.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 +411 -117
- package/dist/LLMService.factory.d.ts +10 -19
- package/dist/LLMService.factory.js +22 -22
- package/dist/LLMService.factory.js.map +1 -1
- package/dist/LLMService.typedefs.d.ts +51 -4
- package/dist/LLMService.typedefs.js.map +1 -1
- package/dist/providers/GoogleGenerativeAI/GoogleGenerativeAI.entity.d.ts +2 -3
- package/dist/providers/GoogleGenerativeAI/GoogleGenerativeAI.entity.js +1 -1
- package/dist/providers/GoogleGenerativeAI/GoogleGenerativeAI.entity.js.map +1 -1
- package/dist/providers/GoogleGenerativeAI/GoogleGenerativeAIService.factory.d.ts +3 -4
- package/dist/providers/GoogleGenerativeAI/GoogleGenerativeAIService.factory.js +2 -1
- package/dist/providers/GoogleGenerativeAI/GoogleGenerativeAIService.factory.js.map +1 -1
- package/dist/providers/GoogleGenerativeAI/schemas/GoogleSchemaAdapter.d.ts +12 -0
- package/dist/providers/GoogleGenerativeAI/schemas/GoogleSchemaAdapter.js +72 -0
- package/dist/providers/GoogleGenerativeAI/schemas/GoogleSchemaAdapter.js.map +1 -0
- package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAIAssistance.service.d.ts +2 -3
- package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAIAssistance.service.js +9 -9
- package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAIAssistance.service.js.map +1 -1
- package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAICompletion.service.d.ts +2 -3
- package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAICompletion.service.js +4 -4
- package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAICompletion.service.js.map +1 -1
- package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAISpeechToText.service.d.ts +2 -3
- 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.d.ts +2 -3
- 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 +3 -4
- package/dist/providers/OpenAI/OpenAI.entity.js +1 -1
- package/dist/providers/OpenAI/OpenAI.entity.js.map +1 -1
- package/dist/providers/OpenAI/OpenAIService.factory.d.ts +3 -4
- package/dist/providers/OpenAI/OpenAIService.factory.js +2 -1
- package/dist/providers/OpenAI/OpenAIService.factory.js.map +1 -1
- package/dist/providers/OpenAI/schemas/OpenAISchemaAdapter.d.ts +14 -0
- package/dist/providers/OpenAI/schemas/OpenAISchemaAdapter.js +87 -0
- package/dist/providers/OpenAI/schemas/OpenAISchemaAdapter.js.map +1 -0
- package/dist/providers/OpenAI/services/OpenAIAssistance.service.d.ts +2 -3
- package/dist/providers/OpenAI/services/OpenAIAssistance.service.js +8 -8
- package/dist/providers/OpenAI/services/OpenAIAssistance.service.js.map +1 -1
- package/dist/providers/OpenAI/services/OpenAICompletion.service.d.ts +2 -3
- package/dist/providers/OpenAI/services/OpenAICompletion.service.js +4 -4
- package/dist/providers/OpenAI/services/OpenAICompletion.service.js.map +1 -1
- package/dist/providers/OpenAI/services/OpenAISpeechToText.service.d.ts +2 -3
- 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.d.ts +2 -3
- 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 +2 -3
- package/dist/services/LLMAssistanceService.abstract.js.map +1 -1
- package/dist/services/LLMBaseService.abstract.d.ts +3 -4
- package/dist/services/LLMBaseService.abstract.js +1 -1
- package/dist/services/LLMBaseService.abstract.js.map +1 -1
- package/dist/services/LLMCompletionService.abstract.d.ts +2 -3
- package/dist/services/LLMCompletionService.abstract.js.map +1 -1
- package/dist/services/LLMServicePurposeFactory.abstract.d.ts +7 -3
- package/dist/services/LLMServicePurposeFactory.abstract.js.map +1 -1
- package/dist/services/LLMSpeechToTextService.abstract.d.ts +2 -3
- package/dist/services/LLMSpeechToTextService.abstract.js.map +1 -1
- package/dist/services/LLMTextToSpeechService.abstract.d.ts +2 -3
- package/dist/services/LLMTextToSpeechService.abstract.js.map +1 -1
- package/dist/utilities/schema/LLMSchema.d.ts +4 -20
- package/dist/utilities/schema/LLMSchema.js +8 -147
- package/dist/utilities/schema/LLMSchema.js.map +1 -1
- package/dist/utilities/schema/LLMSchemaInterface.d.ts +3 -7
- package/dist/utilities/schema/adapters/SchemaAdapterInterface.d.ts +12 -0
- package/dist/utilities/schema/adapters/SchemaAdapterInterface.js +3 -0
- package/dist/utilities/schema/adapters/SchemaAdapterInterface.js.map +1 -0
- package/dist/utilities/schema/adapters/SchemaAdapterRegistry.d.ts +28 -0
- package/dist/utilities/schema/adapters/SchemaAdapterRegistry.js +36 -0
- package/dist/utilities/schema/adapters/SchemaAdapterRegistry.js.map +1 -0
- package/package.json +8 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenAITextToSpeech.service.js","sourceRoot":"","sources":["../../../../src/providers/OpenAI/services/OpenAITextToSpeech.service.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"OpenAITextToSpeech.service.js","sourceRoot":"","sources":["../../../../src/providers/OpenAI/services/OpenAITextToSpeech.service.ts"],"names":[],"mappings":";;;AAAA,mCAAgC;AAChC,+DAM+B;AAC/B,yCAAoD;AAEpD,MAAa,yBACX,SAAQ,iCAA2C;IACnD,SAAS,GAAkB,IAAI,CAAC;IAEhC,YACE,MAA6B,EAC7B,OAAgD;QAEhD,KAAK,CAAC,kCAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;IAED,IAAI,QAAQ;QACV,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,WAAW,EAAE,cAAc,EAAE,CAAC;YAE9B,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;YAEH,WAAW,EAAE,cAAc,EAAE,CAAC;YAE9B,MAAM,gBAAgB,GAAG,MAAM,aAAa,CAAC,WAAW,EAAE,CAAC;YAC3D,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAElD,WAAW,EAAE,cAAc,EAAE,CAAC;YAE9B,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;gBACT,EAAE,KAAK,CAAC,cAAc,CAAC;iBACtB,KAAK,CAAC,uBAAuB,EAAE;gBAC9B,KAAK;gBACL,OAAO;aACR,CAAC,CAAC;YAEL,OAAO,EAAE,KAAK,EAAE,CAAC;QACnB,CAAC;IACH,CAAC;CACF;AAlED,8DAkEC"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import { type
|
|
2
|
-
import { type LLMAssistanceOptions, type LLMAssistanceResult, type LLMAssistanceMessage, type LLMCreateAssistantOptions, type LLMCreateAssistantResult, type LLMCreateChatOptions, type LLMCreateChatResult, type LLMCreateFileStorageOptions, type LLMCreateFileStorageResult, type LLMInstanceOptions, type LLMModel, type LLMProviders, LLMPurposes, type LLMUploadFileOptions, type LLMUploadFileResult, type LLMStructuredResult } from '../LLMService.typedefs';
|
|
1
|
+
import { type LLMLogger, type LLMAssistanceOptions, type LLMAssistanceResult, type LLMAssistanceMessage, type LLMCreateAssistantOptions, type LLMCreateAssistantResult, type LLMCreateChatOptions, type LLMCreateChatResult, type LLMCreateFileStorageOptions, type LLMCreateFileStorageResult, type LLMInstanceOptions, type LLMModel, type LLMProviders, LLMPurposes, type LLMUploadFileOptions, type LLMUploadFileResult, type LLMStructuredResult } from '../LLMService.typedefs';
|
|
3
2
|
import { LLMBaseService } from '../services';
|
|
4
3
|
import { type LLMSchemaInterface, type InferSchema } from '../utilities/schema';
|
|
5
4
|
export declare abstract class LLMAssistanceService<Provider extends LLMProviders> extends LLMBaseService<LLMPurposes.Assistance, Provider> {
|
|
6
|
-
constructor(provider: Provider, logger:
|
|
5
|
+
constructor(provider: Provider, logger: LLMLogger | undefined, options: LLMInstanceOptions[Provider]);
|
|
7
6
|
abstract uploadFile(options: LLMUploadFileOptions): Promise<LLMUploadFileResult>;
|
|
8
7
|
abstract deleteFile(fileId: string): Promise<void>;
|
|
9
8
|
abstract createFileStorage(options: LLMCreateFileStorageOptions<Provider>): Promise<LLMCreateFileStorageResult>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LLMAssistanceService.abstract.js","sourceRoot":"","sources":["../../src/services/LLMAssistanceService.abstract.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"LLMAssistanceService.abstract.js","sourceRoot":"","sources":["../../src/services/LLMAssistanceService.abstract.ts"],"names":[],"mappings":";;;AAAA,+DAkB+B;AAC/B,yCAA4C;AAC5C,iEAA8D;AAG9D,MAAsB,oBACpB,SAAQ,yBAGP;IACD,YACE,QAAkB,EAClB,MAA6B,EAC7B,OAAqC;QAErC,KAAK,CACH,QAAQ,EACR,mBAAmB,EACnB,iCAAW,CAAC,UAAU,EACtB,MAAM,EACN,OAAO,CACR,CAAC;IACJ,CAAC;IAmDS,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;AA3ED,oDA2EC"}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
import { type
|
|
2
|
-
import { type LLMInstanceOptions, type LLMInstances, type LLMProviderAvailableModels, type LLMProviders, type LLMPurposes } from '../LLMService.typedefs';
|
|
1
|
+
import { type LLMLogger, type LLMInstanceOptions, type LLMInstances, type LLMProviderAvailableModels, type LLMProviders, type LLMPurposes } from '../LLMService.typedefs';
|
|
3
2
|
export declare abstract class LLMBaseService<Purpose extends LLMPurposes, Provider extends LLMProviders> {
|
|
4
3
|
readonly provider: Provider;
|
|
5
4
|
readonly serviceName: string;
|
|
6
5
|
readonly purpose: Purpose;
|
|
7
|
-
logger:
|
|
6
|
+
logger: LLMLogger | undefined;
|
|
8
7
|
options: LLMInstanceOptions[Provider];
|
|
9
|
-
constructor(provider: Provider, serviceName: string, purpose: Purpose, logger:
|
|
8
|
+
constructor(provider: Provider, serviceName: string, purpose: Purpose, logger: LLMLogger | undefined, options: LLMInstanceOptions[Provider]);
|
|
10
9
|
abstract get instance(): LLMInstances[Provider];
|
|
11
10
|
get models(): Partial<LLMProviderAvailableModels<Provider>>;
|
|
12
11
|
protected initLogger(): void;
|
|
@@ -20,7 +20,7 @@ class LLMBaseService {
|
|
|
20
20
|
return LLMService_constants_1.LLM_SERVICE_MODELS[this.provider][this.purpose];
|
|
21
21
|
}
|
|
22
22
|
initLogger() {
|
|
23
|
-
this.logger = this.logger
|
|
23
|
+
this.logger = this.logger?.child(`${this.provider}:${this.serviceName}`);
|
|
24
24
|
}
|
|
25
25
|
}
|
|
26
26
|
exports.LLMBaseService = LLMBaseService;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LLMBaseService.abstract.js","sourceRoot":"","sources":["../../src/services/LLMBaseService.abstract.ts"],"names":[],"mappings":";;;AAQA,iEAA4D;AAE5D,MAAsB,cAAc;IAKhB;IACA;IACA;IACT;IACA;IALT,YACkB,QAAkB,EAClB,WAAmB,EACnB,OAAgB,EACzB,
|
|
1
|
+
{"version":3,"file":"LLMBaseService.abstract.js","sourceRoot":"","sources":["../../src/services/LLMBaseService.abstract.ts"],"names":[],"mappings":";;;AAQA,iEAA4D;AAE5D,MAAsB,cAAc;IAKhB;IACA;IACA;IACT;IACA;IALT,YACkB,QAAkB,EAClB,WAAmB,EACnB,OAAgB,EACzB,MAA6B,EAC7B,OAAqC;QAJ5B,aAAQ,GAAR,QAAQ,CAAU;QAClB,gBAAW,GAAX,WAAW,CAAQ;QACnB,YAAO,GAAP,OAAO,CAAS;QACzB,WAAM,GAAN,MAAM,CAAuB;QAC7B,YAAO,GAAP,OAAO,CAA8B;QAE5C,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAID,IAAW,MAAM;QACf,OAAO,yCAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzD,CAAC;IAES,UAAU;QAClB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IAC3E,CAAC;CACF;AAvBD,wCAuBC"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import { type
|
|
2
|
-
import { LLMPurposes, type LLMProviders, type LLMSendMessageOptions, type LLMCompletionResult, type LLMInstanceOptions, type LLMStructuredResult } from '../LLMService.typedefs';
|
|
1
|
+
import { type LLMLogger, LLMPurposes, type LLMProviders, type LLMSendMessageOptions, type LLMCompletionResult, type LLMInstanceOptions, type LLMStructuredResult } from '../LLMService.typedefs';
|
|
3
2
|
import { LLMBaseService } from '../services';
|
|
4
3
|
import { type LLMSchemaInterface, type InferSchema } from '../utilities/schema';
|
|
5
4
|
export declare abstract class LLMCompletionService<Provider extends LLMProviders> extends LLMBaseService<LLMPurposes.Completion, Provider> {
|
|
6
|
-
constructor(provider: Provider, logger:
|
|
5
|
+
constructor(provider: Provider, logger: LLMLogger | undefined, options: LLMInstanceOptions[Provider]);
|
|
7
6
|
abstract sendMessage<S extends LLMSchemaInterface>(options: LLMSendMessageOptions<Provider> & {
|
|
8
7
|
schema: S;
|
|
9
8
|
}): Promise<LLMStructuredResult<InferSchema<S>>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LLMCompletionService.abstract.js","sourceRoot":"","sources":["../../src/services/LLMCompletionService.abstract.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"LLMCompletionService.abstract.js","sourceRoot":"","sources":["../../src/services/LLMCompletionService.abstract.ts"],"names":[],"mappings":";;;AAAA,+DAQ+B;AAC/B,yCAA4C;AAG5C,MAAsB,oBAGpB,SAAQ,yBAAgD;IACxD,YACE,QAAkB,EAClB,MAA6B,EAC7B,OAAqC;QAErC,KAAK,CACH,QAAQ,EACR,mBAAmB,EACnB,iCAAW,CAAC,UAAU,EACtB,MAAM,EACN,OAAO,CACR,CAAC;IACJ,CAAC;CAaF;AA7BD,oDA6BC"}
|
|
@@ -1,5 +1,9 @@
|
|
|
1
|
-
import { type
|
|
2
|
-
|
|
1
|
+
import { type LLMLogger, type LLMInstanceOptions, type LLMProviders, type LLMPurposes, type LLMServiceByPurpose } from '../LLMService.typedefs';
|
|
2
|
+
export interface LLMCreateServiceOptions<Provider extends LLMProviders, Purpose extends LLMPurposes> {
|
|
3
|
+
purpose: Purpose;
|
|
4
|
+
logger?: LLMLogger;
|
|
5
|
+
options: LLMInstanceOptions[Provider];
|
|
6
|
+
}
|
|
3
7
|
export declare abstract class LLMServicePurposeFactory<Provider extends LLMProviders> {
|
|
4
|
-
abstract createService<Purpose extends LLMPurposes>(
|
|
8
|
+
abstract createService<Purpose extends LLMPurposes>(options: LLMCreateServiceOptions<Provider, Purpose>): LLMServiceByPurpose<Provider>[Purpose];
|
|
5
9
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LLMServicePurposeFactory.abstract.js","sourceRoot":"","sources":["../../src/services/LLMServicePurposeFactory.abstract.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"LLMServicePurposeFactory.abstract.js","sourceRoot":"","sources":["../../src/services/LLMServicePurposeFactory.abstract.ts"],"names":[],"mappings":";;;AAiBA,MAAsB,wBAAwB;CAI7C;AAJD,4DAIC"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import { type
|
|
2
|
-
import { LLMPurposes, type LLMProviders, type LLMTranscribeOptions, type LLMTranscribeResult, type LLMInstanceOptions } from '../LLMService.typedefs';
|
|
1
|
+
import { type LLMLogger, LLMPurposes, type LLMProviders, type LLMTranscribeOptions, type LLMTranscribeResult, type LLMInstanceOptions } from '../LLMService.typedefs';
|
|
3
2
|
import { LLMBaseService } from '../services';
|
|
4
3
|
export declare abstract class LLMSpeechToTextService<Provider extends LLMProviders> extends LLMBaseService<LLMPurposes.SpeechToText, Provider> {
|
|
5
|
-
constructor(provider: Provider, logger:
|
|
4
|
+
constructor(provider: Provider, logger: LLMLogger | undefined, options: LLMInstanceOptions[Provider]);
|
|
6
5
|
abstract transcribe(options: LLMTranscribeOptions<Provider>): Promise<LLMTranscribeResult>;
|
|
7
6
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LLMSpeechToTextService.abstract.js","sourceRoot":"","sources":["../../src/services/LLMSpeechToTextService.abstract.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"LLMSpeechToTextService.abstract.js","sourceRoot":"","sources":["../../src/services/LLMSpeechToTextService.abstract.ts"],"names":[],"mappings":";;;AAAA,+DAO+B;AAC/B,yCAA4C;AAE5C,MAAsB,sBAGpB,SAAQ,yBAAkD;IAC1D,YACE,QAAkB,EAClB,MAA6B,EAC7B,OAAqC;QAErC,KAAK,CACH,QAAQ,EACR,qBAAqB,EACrB,iCAAW,CAAC,YAAY,EACxB,MAAM,EACN,OAAO,CACR,CAAC;IACJ,CAAC;CAKF;AArBD,wDAqBC"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import { type
|
|
2
|
-
import { LLMPurposes, type LLMProviders, type LLMCreateSpeechOptions, type LLMCreateSpeechResult, type LLMInstanceOptions } from '../LLMService.typedefs';
|
|
1
|
+
import { type LLMLogger, LLMPurposes, type LLMProviders, type LLMCreateSpeechOptions, type LLMCreateSpeechResult, type LLMInstanceOptions } from '../LLMService.typedefs';
|
|
3
2
|
import { LLMBaseService } from '../services';
|
|
4
3
|
export declare abstract class LLMTextToSpeechService<Provider extends LLMProviders> extends LLMBaseService<LLMPurposes.TextToSpeech, Provider> {
|
|
5
|
-
constructor(provider: Provider, logger:
|
|
4
|
+
constructor(provider: Provider, logger: LLMLogger | undefined, options: LLMInstanceOptions[Provider]);
|
|
6
5
|
abstract createSpeech(options: LLMCreateSpeechOptions<Provider>): Promise<LLMCreateSpeechResult>;
|
|
7
6
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LLMTextToSpeechService.abstract.js","sourceRoot":"","sources":["../../src/services/LLMTextToSpeechService.abstract.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"LLMTextToSpeechService.abstract.js","sourceRoot":"","sources":["../../src/services/LLMTextToSpeechService.abstract.ts"],"names":[],"mappings":";;;AAAA,+DAO+B;AAC/B,yCAA4C;AAE5C,MAAsB,sBAGpB,SAAQ,yBAAkD;IAC1D,YACE,QAAkB,EAClB,MAA6B,EAC7B,OAAqC;QAErC,KAAK,CACH,QAAQ,EACR,qBAAqB,EACrB,iCAAW,CAAC,YAAY,EACxB,MAAM,EACN,OAAO,CACR,CAAC;IACJ,CAAC;CAKF;AArBD,wDAqBC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import
|
|
1
|
+
import type { LLMProviders } from '../../LLMService.typedefs';
|
|
2
|
+
import type { LLMSchemaInterface, ParseResult, InferSchema } from './LLMSchemaInterface';
|
|
2
3
|
/**
|
|
3
4
|
* Concrete implementation of schema builder using Zod as the underlying validator.
|
|
4
5
|
* This implementation can be replaced with another validator without changing the public API.
|
|
@@ -103,24 +104,7 @@ export declare class LLMSchema<T = any> implements LLMSchemaInterface<T> {
|
|
|
103
104
|
_parse(data: unknown): ParseResult<T>;
|
|
104
105
|
/**
|
|
105
106
|
* @internal
|
|
106
|
-
* Converts schema to
|
|
107
|
+
* Converts schema to provider-specific format using the adapter registry
|
|
107
108
|
*/
|
|
108
|
-
|
|
109
|
-
/**
|
|
110
|
-
* @internal
|
|
111
|
-
* Converts schema to Google Generative AI format
|
|
112
|
-
*/
|
|
113
|
-
_toGoogleSchema(): any;
|
|
114
|
-
/**
|
|
115
|
-
* @internal
|
|
116
|
-
* Converts JSON Schema to Google's Type-based format
|
|
117
|
-
*/
|
|
118
|
-
private _convertJsonSchemaToGoogleFormat;
|
|
119
|
-
/**
|
|
120
|
-
* @internal
|
|
121
|
-
* Normalizes JSON Schema for OpenAI structured_response:
|
|
122
|
-
* - For each object, sets required to all property keys.
|
|
123
|
-
* - Any property that was optional becomes nullable.
|
|
124
|
-
*/
|
|
125
|
-
private _normalizeForOpenAIStructuredResponse;
|
|
109
|
+
_toProviderSchema(provider: LLMProviders): any;
|
|
126
110
|
}
|
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.LLMSchema = void 0;
|
|
4
4
|
const zod_1 = require("zod");
|
|
5
5
|
const zod_to_json_schema_1 = require("zod-to-json-schema");
|
|
6
|
-
const
|
|
6
|
+
const SchemaAdapterRegistry_1 = require("./adapters/SchemaAdapterRegistry");
|
|
7
7
|
/**
|
|
8
8
|
* Concrete implementation of schema builder using Zod as the underlying validator.
|
|
9
9
|
* This implementation can be replaced with another validator without changing the public API.
|
|
@@ -204,157 +204,18 @@ class LLMSchema {
|
|
|
204
204
|
}
|
|
205
205
|
/**
|
|
206
206
|
* @internal
|
|
207
|
-
* Converts schema to
|
|
207
|
+
* Converts schema to provider-specific format using the adapter registry
|
|
208
208
|
*/
|
|
209
|
-
|
|
210
|
-
const
|
|
211
|
-
|
|
212
|
-
$
|
|
213
|
-
}
|
|
214
|
-
return this._normalizeForOpenAIStructuredResponse(raw);
|
|
215
|
-
}
|
|
216
|
-
/**
|
|
217
|
-
* @internal
|
|
218
|
-
* Converts schema to Google Generative AI format
|
|
219
|
-
*/
|
|
220
|
-
_toGoogleSchema() {
|
|
209
|
+
_toProviderSchema(provider) {
|
|
210
|
+
const adapter = (0, SchemaAdapterRegistry_1.getSchemaAdapter)(provider);
|
|
211
|
+
if (!adapter) {
|
|
212
|
+
throw new Error(`Provider ${provider} does not support structured output`);
|
|
213
|
+
}
|
|
221
214
|
const jsonSchema = (0, zod_to_json_schema_1.zodToJsonSchema)(this.zodSchema, {
|
|
222
215
|
target: 'jsonSchema7',
|
|
223
216
|
$refStrategy: 'none',
|
|
224
217
|
});
|
|
225
|
-
return
|
|
226
|
-
}
|
|
227
|
-
/**
|
|
228
|
-
* @internal
|
|
229
|
-
* Converts JSON Schema to Google's Type-based format
|
|
230
|
-
*/
|
|
231
|
-
_convertJsonSchemaToGoogleFormat(jsonSchema) {
|
|
232
|
-
// Handle null type
|
|
233
|
-
if (jsonSchema.type === 'null') {
|
|
234
|
-
return { type: genai_1.Type.STRING, nullable: true };
|
|
235
|
-
}
|
|
236
|
-
// Handle arrays with anyOf (for unions)
|
|
237
|
-
if (jsonSchema.anyOf) {
|
|
238
|
-
// For now, we'll use the first type in the union
|
|
239
|
-
// This is a simplification - full union support would be more complex
|
|
240
|
-
return this._convertJsonSchemaToGoogleFormat(jsonSchema.anyOf[0]);
|
|
241
|
-
}
|
|
242
|
-
// Handle objects
|
|
243
|
-
if (jsonSchema.type === 'object') {
|
|
244
|
-
const properties = {};
|
|
245
|
-
const required = jsonSchema.required || [];
|
|
246
|
-
for (const [key, value] of Object.entries(jsonSchema.properties || {})) {
|
|
247
|
-
const convertedProperty = this._convertJsonSchemaToGoogleFormat(value);
|
|
248
|
-
properties[key] = convertedProperty;
|
|
249
|
-
}
|
|
250
|
-
return {
|
|
251
|
-
type: genai_1.Type.OBJECT,
|
|
252
|
-
properties,
|
|
253
|
-
required,
|
|
254
|
-
propertyOrdering: Object.keys(properties),
|
|
255
|
-
};
|
|
256
|
-
}
|
|
257
|
-
// Handle arrays
|
|
258
|
-
if (jsonSchema.type === 'array') {
|
|
259
|
-
return {
|
|
260
|
-
type: genai_1.Type.ARRAY,
|
|
261
|
-
items: this._convertJsonSchemaToGoogleFormat(jsonSchema.items || {}),
|
|
262
|
-
};
|
|
263
|
-
}
|
|
264
|
-
// Handle strings
|
|
265
|
-
if (jsonSchema.type === 'string') {
|
|
266
|
-
if (jsonSchema.enum) {
|
|
267
|
-
return {
|
|
268
|
-
type: genai_1.Type.STRING,
|
|
269
|
-
enum: jsonSchema.enum,
|
|
270
|
-
};
|
|
271
|
-
}
|
|
272
|
-
return { type: genai_1.Type.STRING };
|
|
273
|
-
}
|
|
274
|
-
// Handle numbers
|
|
275
|
-
if (jsonSchema.type === 'number' || jsonSchema.type === 'integer') {
|
|
276
|
-
return { type: genai_1.Type.NUMBER };
|
|
277
|
-
}
|
|
278
|
-
// Handle booleans
|
|
279
|
-
if (jsonSchema.type === 'boolean') {
|
|
280
|
-
return { type: genai_1.Type.BOOLEAN };
|
|
281
|
-
}
|
|
282
|
-
// Default fallback
|
|
283
|
-
return { type: genai_1.Type.STRING };
|
|
284
|
-
}
|
|
285
|
-
/**
|
|
286
|
-
* @internal
|
|
287
|
-
* Normalizes JSON Schema for OpenAI structured_response:
|
|
288
|
-
* - For each object, sets required to all property keys.
|
|
289
|
-
* - Any property that was optional becomes nullable.
|
|
290
|
-
*/
|
|
291
|
-
_normalizeForOpenAIStructuredResponse(schema) {
|
|
292
|
-
const copy = JSON.parse(JSON.stringify(schema));
|
|
293
|
-
const allowsNull = (node) => {
|
|
294
|
-
if (!node || typeof node !== 'object') {
|
|
295
|
-
return false;
|
|
296
|
-
}
|
|
297
|
-
if (node.nullable === true) {
|
|
298
|
-
return true;
|
|
299
|
-
}
|
|
300
|
-
if (node.type === 'null') {
|
|
301
|
-
return true;
|
|
302
|
-
}
|
|
303
|
-
if (Array.isArray(node.type) && node.type.includes('null')) {
|
|
304
|
-
return true;
|
|
305
|
-
}
|
|
306
|
-
const list = node.anyOf || node.oneOf;
|
|
307
|
-
return Array.isArray(list)
|
|
308
|
-
? list.some((node) => node?.type === 'null' || node?.nullable === true)
|
|
309
|
-
: false;
|
|
310
|
-
};
|
|
311
|
-
const makeNullable = (node) => {
|
|
312
|
-
if (!node
|
|
313
|
-
|| typeof node !== 'object'
|
|
314
|
-
|| allowsNull(node)) {
|
|
315
|
-
return;
|
|
316
|
-
}
|
|
317
|
-
if (node.anyOf) {
|
|
318
|
-
node.anyOf = [...node.anyOf, { type: 'null' }];
|
|
319
|
-
}
|
|
320
|
-
else if (node.oneOf) {
|
|
321
|
-
node.oneOf = [...node.oneOf, { type: 'null' }];
|
|
322
|
-
}
|
|
323
|
-
else {
|
|
324
|
-
node.nullable = true; // OpenAPI 3 nullable flag
|
|
325
|
-
}
|
|
326
|
-
};
|
|
327
|
-
const visit = (node) => {
|
|
328
|
-
if (!node || typeof node !== 'object') {
|
|
329
|
-
return;
|
|
330
|
-
}
|
|
331
|
-
// Handle composition
|
|
332
|
-
for (const key of ['anyOf', 'oneOf', 'allOf']) {
|
|
333
|
-
if (Array.isArray(node[key])) {
|
|
334
|
-
node[key].forEach(visit);
|
|
335
|
-
}
|
|
336
|
-
}
|
|
337
|
-
// Recurse arrays
|
|
338
|
-
if (node.type === 'array' && node.items) {
|
|
339
|
-
visit(node.items);
|
|
340
|
-
}
|
|
341
|
-
// Objects: enforce required includes all properties
|
|
342
|
-
if (node.type === 'object' && node.properties) {
|
|
343
|
-
const props = node.properties;
|
|
344
|
-
const originalRequired = new Set(node.required || []);
|
|
345
|
-
const keys = Object.keys(props);
|
|
346
|
-
// Previously optional -> make nullable
|
|
347
|
-
for (const key of keys) {
|
|
348
|
-
if (!originalRequired.has(key)) {
|
|
349
|
-
makeNullable(props[key]);
|
|
350
|
-
}
|
|
351
|
-
visit(props[key]);
|
|
352
|
-
}
|
|
353
|
-
node.required = keys; // all properties required
|
|
354
|
-
}
|
|
355
|
-
};
|
|
356
|
-
visit(copy);
|
|
357
|
-
return copy;
|
|
218
|
+
return adapter.convertSchema(jsonSchema);
|
|
358
219
|
}
|
|
359
220
|
}
|
|
360
221
|
exports.LLMSchema = LLMSchema;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LLMSchema.js","sourceRoot":"","sources":["../../../src/utilities/schema/LLMSchema.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AACxB,2DAAqD;
|
|
1
|
+
{"version":3,"file":"LLMSchema.js","sourceRoot":"","sources":["../../../src/utilities/schema/LLMSchema.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { LLMProviders } from '../../LLMService.typedefs';
|
|
1
2
|
/**
|
|
2
3
|
* Result of parsing data against a schema
|
|
3
4
|
*/
|
|
@@ -17,15 +18,10 @@ export interface LLMSchemaInterface<T = any> {
|
|
|
17
18
|
*/
|
|
18
19
|
_parse(data: unknown): ParseResult<T>;
|
|
19
20
|
/**
|
|
20
|
-
* Convert schema to
|
|
21
|
+
* Convert schema to provider-specific format using registered adapters
|
|
21
22
|
* @internal - Used internally by the package
|
|
22
23
|
*/
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
* Convert schema to Google Generative AI format
|
|
26
|
-
* @internal - Used internally by the package
|
|
27
|
-
*/
|
|
28
|
-
_toGoogleSchema(): any;
|
|
24
|
+
_toProviderSchema(provider: LLMProviders): any;
|
|
29
25
|
optional(): LLMSchemaInterface<T | undefined>;
|
|
30
26
|
nullable(): LLMSchemaInterface<T | null>;
|
|
31
27
|
default(value: any): LLMSchemaInterface<T>;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Interface for schema adapters that convert generic JSON Schema
|
|
3
|
+
* to provider-specific formats
|
|
4
|
+
*/
|
|
5
|
+
export interface SchemaAdapterInterface {
|
|
6
|
+
/**
|
|
7
|
+
* Converts a JSON Schema to provider-specific format
|
|
8
|
+
* @param jsonSchema - The JSON Schema to convert
|
|
9
|
+
* @returns The provider-specific schema format
|
|
10
|
+
*/
|
|
11
|
+
convertSchema(jsonSchema: any): any;
|
|
12
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SchemaAdapterInterface.js","sourceRoot":"","sources":["../../../../src/utilities/schema/adapters/SchemaAdapterInterface.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { LLMProviders } from '../../../LLMService.typedefs';
|
|
2
|
+
import type { SchemaAdapterInterface } from './SchemaAdapterInterface';
|
|
3
|
+
import { OpenAISchemaAdapter } from '../../../providers/OpenAI/schemas/OpenAISchemaAdapter';
|
|
4
|
+
import { GoogleSchemaAdapter } from '../../../providers/GoogleGenerativeAI/schemas/GoogleSchemaAdapter';
|
|
5
|
+
/**
|
|
6
|
+
* Type-safe registry of schema adapters for all supported providers.
|
|
7
|
+
*
|
|
8
|
+
* When adding a new provider:
|
|
9
|
+
* 1. Add the provider to LLMProviders enum
|
|
10
|
+
* 2. Create the schema adapter implementing SchemaAdapterInterface
|
|
11
|
+
* 3. Add the adapter to this registry (TypeScript will enforce this)
|
|
12
|
+
* 4. Set to `null` if the provider doesn't support structured output
|
|
13
|
+
*
|
|
14
|
+
* This ensures compile-time safety and forces developers to handle all providers.
|
|
15
|
+
*/
|
|
16
|
+
export declare const SCHEMA_ADAPTER_REGISTRY: {
|
|
17
|
+
readonly OpenAI: OpenAISchemaAdapter;
|
|
18
|
+
readonly GoogleGenerativeAI: GoogleSchemaAdapter;
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Type-safe helper to get a schema adapter for a provider.
|
|
22
|
+
* Returns null if the provider doesn't support structured output.
|
|
23
|
+
*/
|
|
24
|
+
export declare function getSchemaAdapter(provider: LLMProviders): SchemaAdapterInterface | null;
|
|
25
|
+
/**
|
|
26
|
+
* Type-safe helper to check if a provider supports structured output.
|
|
27
|
+
*/
|
|
28
|
+
export declare function providerSupportsStructuredOutput(provider: LLMProviders): boolean;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SCHEMA_ADAPTER_REGISTRY = void 0;
|
|
4
|
+
exports.getSchemaAdapter = getSchemaAdapter;
|
|
5
|
+
exports.providerSupportsStructuredOutput = providerSupportsStructuredOutput;
|
|
6
|
+
const OpenAISchemaAdapter_1 = require("../../../providers/OpenAI/schemas/OpenAISchemaAdapter");
|
|
7
|
+
const GoogleSchemaAdapter_1 = require("../../../providers/GoogleGenerativeAI/schemas/GoogleSchemaAdapter");
|
|
8
|
+
/**
|
|
9
|
+
* Type-safe registry of schema adapters for all supported providers.
|
|
10
|
+
*
|
|
11
|
+
* When adding a new provider:
|
|
12
|
+
* 1. Add the provider to LLMProviders enum
|
|
13
|
+
* 2. Create the schema adapter implementing SchemaAdapterInterface
|
|
14
|
+
* 3. Add the adapter to this registry (TypeScript will enforce this)
|
|
15
|
+
* 4. Set to `null` if the provider doesn't support structured output
|
|
16
|
+
*
|
|
17
|
+
* This ensures compile-time safety and forces developers to handle all providers.
|
|
18
|
+
*/
|
|
19
|
+
exports.SCHEMA_ADAPTER_REGISTRY = {
|
|
20
|
+
OpenAI: new OpenAISchemaAdapter_1.OpenAISchemaAdapter(),
|
|
21
|
+
GoogleGenerativeAI: new GoogleSchemaAdapter_1.GoogleSchemaAdapter(),
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Type-safe helper to get a schema adapter for a provider.
|
|
25
|
+
* Returns null if the provider doesn't support structured output.
|
|
26
|
+
*/
|
|
27
|
+
function getSchemaAdapter(provider) {
|
|
28
|
+
return exports.SCHEMA_ADAPTER_REGISTRY[provider];
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Type-safe helper to check if a provider supports structured output.
|
|
32
|
+
*/
|
|
33
|
+
function providerSupportsStructuredOutput(provider) {
|
|
34
|
+
return exports.SCHEMA_ADAPTER_REGISTRY[provider] !== null;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=SchemaAdapterRegistry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SchemaAdapterRegistry.js","sourceRoot":"","sources":["../../../../src/utilities/schema/adapters/SchemaAdapterRegistry.ts"],"names":[],"mappings":";;;AAyBA,4CAEC;AAKD,4EAEC;AAhCD,wFAAqF;AACrF,oGAAiG;AAEjG;;;;;;;;;;GAUG;AACU,QAAA,uBAAuB,GAAG;IACrC,MAAM,EAAE,IAAI,yCAAmB,EAAE;IACjC,kBAAkB,EAAE,IAAI,yCAAmB,EAAE;CACyB,CAAC;AAEzE;;;GAGG;AACH,SAAgB,gBAAgB,CAAC,QAAsB;IACrD,OAAO,+BAAuB,CAAC,QAAQ,CAAC,CAAC;AAC3C,CAAC;AAED;;GAEG;AACH,SAAgB,gCAAgC,CAAC,QAAsB;IACrE,OAAO,+BAAuB,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC;AACpD,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mate-academy/llm-gateway",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.1",
|
|
4
4
|
"description": "A gateway package for LLM services.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -60,26 +60,25 @@
|
|
|
60
60
|
"@types/inquirer": "^9.0.9",
|
|
61
61
|
"@types/jest": "^30.0.0",
|
|
62
62
|
"@types/mime-types": "^3.0.1",
|
|
63
|
-
"@typescript-eslint/eslint-plugin": "^8.
|
|
63
|
+
"@typescript-eslint/eslint-plugin": "^8.41.0",
|
|
64
64
|
"dotenv": "^17.2.1",
|
|
65
|
-
"eslint": "^9.
|
|
65
|
+
"eslint": "^9.34.0",
|
|
66
66
|
"eslint-plugin-no-only-tests": "^3.3.0",
|
|
67
67
|
"glob": "^11.0.3",
|
|
68
|
-
"inquirer": "^12.9.
|
|
69
|
-
"jest": "^30.
|
|
68
|
+
"inquirer": "^12.9.4",
|
|
69
|
+
"jest": "^30.1.1",
|
|
70
70
|
"terser": "^5.43.1",
|
|
71
71
|
"ts-jest": "^29.4.1",
|
|
72
72
|
"tsc-alias": "^1.8.16",
|
|
73
73
|
"typescript": "^5.9.2",
|
|
74
|
-
"typescript-eslint": "^8.
|
|
74
|
+
"typescript-eslint": "^8.41.0"
|
|
75
75
|
},
|
|
76
76
|
"dependencies": {
|
|
77
|
-
"@google/genai": "^1.
|
|
78
|
-
"@mate-academy/core": "^1.10.6",
|
|
77
|
+
"@google/genai": "^1.16.0",
|
|
79
78
|
"axios": "^1.11.0",
|
|
80
79
|
"js-tiktoken": "^1.0.21",
|
|
81
80
|
"mime-types": "^3.0.1",
|
|
82
|
-
"openai": "^5.
|
|
81
|
+
"openai": "^5.16.0",
|
|
83
82
|
"uuid": "^11.1.0",
|
|
84
83
|
"zod": "^3.25.76",
|
|
85
84
|
"zod-to-json-schema": "^3.24.6"
|