@drax/ai-back 3.41.0 → 3.43.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.
Files changed (117) hide show
  1. package/dist/agents/DraxAgent.js +3 -1
  2. package/dist/config/ElevenLabsTTSConfig.js +10 -0
  3. package/dist/controllers/AICrudController.js +1 -1
  4. package/dist/controllers/AIGenericController.js +23 -1
  5. package/dist/controllers/DraxAgentController.js +22 -0
  6. package/dist/controllers/TTSGenericController.js +61 -0
  7. package/dist/factory/ElevenLabsTTSProviderFactory.js +13 -0
  8. package/dist/factory/TTSProviderFactory.js +27 -0
  9. package/dist/factory/ai/AiProviderFactory.js +30 -0
  10. package/dist/factory/ai/DeepSeekAiProviderFactory.js +14 -0
  11. package/dist/factory/ai/GoogleAiProviderFactory.js +14 -0
  12. package/dist/factory/ai/OllamaAiProviderFactory.js +14 -0
  13. package/dist/factory/ai/OpenAiProviderFactory.js +14 -0
  14. package/dist/factory/tts/ElevenLabsTTSProviderFactory.js +13 -0
  15. package/dist/factory/tts/TTSProviderFactory.js +27 -0
  16. package/dist/index.js +23 -13
  17. package/dist/interfaces/ITTSProvider.js +1 -0
  18. package/dist/permissions/TTSPermissions.js +6 -0
  19. package/dist/providers/ElevenLabsTTSProvider.js +108 -0
  20. package/dist/providers/ai/DeepSeekAiProvider.js +34 -0
  21. package/dist/providers/ai/GoogleAiProvider.js +370 -0
  22. package/dist/providers/ai/OllamaAiProvider.js +345 -0
  23. package/dist/providers/ai/OpenAiProvider.js +305 -0
  24. package/dist/providers/tts/ElevenLabsTTSProvider.js +108 -0
  25. package/dist/routes/TTSRoutes.js +8 -0
  26. package/dist/schemas/TTSRequestSchema.js +24 -0
  27. package/dist/services/PromptAudioService.js +68 -0
  28. package/dist/services/TTSGenericService.js +21 -0
  29. package/package.json +3 -3
  30. package/src/agents/DraxAgent.ts +3 -1
  31. package/src/config/ElevenLabsTTSConfig.ts +13 -0
  32. package/src/controllers/AICrudController.ts +1 -1
  33. package/src/controllers/AIGenericController.ts +25 -1
  34. package/src/controllers/DraxAgentController.ts +24 -0
  35. package/src/controllers/TTSGenericController.ts +70 -0
  36. package/src/factory/{AiProviderFactory.ts → ai/AiProviderFactory.ts} +3 -3
  37. package/src/factory/ai/DeepSeekAiProviderFactory.ts +27 -0
  38. package/src/factory/{GoogleAiProviderFactory.ts → ai/GoogleAiProviderFactory.ts} +4 -4
  39. package/src/factory/{OllamaAiProviderFactory.ts → ai/OllamaAiProviderFactory.ts} +4 -4
  40. package/src/factory/{OpenAiProviderFactory.ts → ai/OpenAiProviderFactory.ts} +4 -4
  41. package/src/factory/tts/ElevenLabsTTSProviderFactory.ts +26 -0
  42. package/src/factory/tts/TTSProviderFactory.ts +42 -0
  43. package/src/index.ts +60 -11
  44. package/src/interfaces/IAIProvider.ts +38 -1
  45. package/src/interfaces/IDraxAgent.ts +4 -0
  46. package/src/interfaces/ITTSProvider.ts +47 -0
  47. package/src/permissions/AIPermissions.ts +0 -1
  48. package/src/permissions/TTSPermissions.ts +8 -0
  49. package/src/providers/{DeepSeekProvider.ts → ai/DeepSeekAiProvider.ts} +5 -5
  50. package/src/providers/{GoogleAiProvider.ts → ai/GoogleAiProvider.ts} +6 -3
  51. package/src/providers/{OllamaAiProvider.ts → ai/OllamaAiProvider.ts} +6 -3
  52. package/src/providers/{OpenAiProvider.ts → ai/OpenAiProvider.ts} +6 -3
  53. package/src/providers/tts/ElevenLabsTTSProvider.ts +132 -0
  54. package/src/routes/TTSRoutes.ts +13 -0
  55. package/src/schemas/TTSRequestSchema.ts +38 -0
  56. package/src/services/PromptAudioService.ts +87 -0
  57. package/src/services/TTSGenericService.ts +41 -0
  58. package/test/DeepSeekProvider.test.ts +4 -4
  59. package/test/DraxAgent.test.ts +64 -0
  60. package/test/PromptAudioService.test.ts +115 -0
  61. package/tsconfig.tsbuildinfo +1 -1
  62. package/types/agents/DraxAgent.d.ts.map +1 -1
  63. package/types/config/ElevenLabsTTSConfig.d.ts +10 -0
  64. package/types/config/ElevenLabsTTSConfig.d.ts.map +1 -0
  65. package/types/controllers/AIGenericController.d.ts.map +1 -1
  66. package/types/controllers/DraxAgentController.d.ts.map +1 -1
  67. package/types/controllers/TTSGenericController.d.ts +11 -0
  68. package/types/controllers/TTSGenericController.d.ts.map +1 -0
  69. package/types/factory/ElevenLabsTTSProviderFactory.d.ts +8 -0
  70. package/types/factory/ElevenLabsTTSProviderFactory.d.ts.map +1 -0
  71. package/types/factory/TTSProviderFactory.d.ts +15 -0
  72. package/types/factory/TTSProviderFactory.d.ts.map +1 -0
  73. package/types/factory/ai/AiProviderFactory.d.ts +8 -0
  74. package/types/factory/ai/AiProviderFactory.d.ts.map +1 -0
  75. package/types/factory/ai/DeepSeekAiProviderFactory.d.ts +8 -0
  76. package/types/factory/ai/DeepSeekAiProviderFactory.d.ts.map +1 -0
  77. package/types/factory/ai/GoogleAiProviderFactory.d.ts +8 -0
  78. package/types/factory/ai/GoogleAiProviderFactory.d.ts.map +1 -0
  79. package/types/factory/ai/OllamaAiProviderFactory.d.ts +8 -0
  80. package/types/factory/ai/OllamaAiProviderFactory.d.ts.map +1 -0
  81. package/types/factory/ai/OpenAiProviderFactory.d.ts +8 -0
  82. package/types/factory/ai/OpenAiProviderFactory.d.ts.map +1 -0
  83. package/types/factory/tts/ElevenLabsTTSProviderFactory.d.ts +8 -0
  84. package/types/factory/tts/ElevenLabsTTSProviderFactory.d.ts.map +1 -0
  85. package/types/factory/tts/TTSProviderFactory.d.ts +15 -0
  86. package/types/factory/tts/TTSProviderFactory.d.ts.map +1 -0
  87. package/types/index.d.ts +26 -12
  88. package/types/index.d.ts.map +1 -1
  89. package/types/interfaces/IAIProvider.d.ts +32 -1
  90. package/types/interfaces/IAIProvider.d.ts.map +1 -1
  91. package/types/interfaces/IDraxAgent.d.ts +3 -1
  92. package/types/interfaces/IDraxAgent.d.ts.map +1 -1
  93. package/types/interfaces/ITTSProvider.d.ts +39 -0
  94. package/types/interfaces/ITTSProvider.d.ts.map +1 -0
  95. package/types/permissions/TTSPermissions.d.ts +6 -0
  96. package/types/permissions/TTSPermissions.d.ts.map +1 -0
  97. package/types/providers/ElevenLabsTTSProvider.d.ts +38 -0
  98. package/types/providers/ElevenLabsTTSProvider.d.ts.map +1 -0
  99. package/types/providers/ai/DeepSeekAiProvider.d.ts +24 -0
  100. package/types/providers/ai/DeepSeekAiProvider.d.ts.map +1 -0
  101. package/types/providers/ai/GoogleAiProvider.d.ts +63 -0
  102. package/types/providers/ai/GoogleAiProvider.d.ts.map +1 -0
  103. package/types/providers/ai/OllamaAiProvider.d.ts +78 -0
  104. package/types/providers/ai/OllamaAiProvider.d.ts.map +1 -0
  105. package/types/providers/ai/OpenAiProvider.d.ts +97 -0
  106. package/types/providers/ai/OpenAiProvider.d.ts.map +1 -0
  107. package/types/providers/tts/ElevenLabsTTSProvider.d.ts +38 -0
  108. package/types/providers/tts/ElevenLabsTTSProvider.d.ts.map +1 -0
  109. package/types/routes/TTSRoutes.d.ts +4 -0
  110. package/types/routes/TTSRoutes.d.ts.map +1 -0
  111. package/types/schemas/TTSRequestSchema.d.ts +37 -0
  112. package/types/schemas/TTSRequestSchema.d.ts.map +1 -0
  113. package/types/services/PromptAudioService.d.ts +9 -0
  114. package/types/services/PromptAudioService.d.ts.map +1 -0
  115. package/types/services/TTSGenericService.d.ts +17 -0
  116. package/types/services/TTSGenericService.d.ts.map +1 -0
  117. package/src/factory/DeepSeekProviderFactory.ts +0 -27
@@ -0,0 +1,78 @@
1
+ import type { IAIProvider, IPromptContentPart, IPromptMessage, IPromptParams, IPromptResponse, IPromptTool } from "../../interfaces/IAIProvider.js";
2
+ import type { AILogService } from "../../services/AILogService.js";
3
+ import type { IAILogBase } from "@drax/ai-share";
4
+ type OllamaMessage = {
5
+ role: "system" | "user" | "assistant" | "tool";
6
+ content: string;
7
+ images?: string[];
8
+ name?: string;
9
+ };
10
+ type OllamaToolCall = {
11
+ function?: {
12
+ name?: string;
13
+ arguments?: string | object;
14
+ };
15
+ };
16
+ declare class OllamaAiProvider implements IAIProvider {
17
+ protected _baseUrl: string;
18
+ protected _model: string;
19
+ protected _visionModel?: string;
20
+ protected _embeddingModel?: string;
21
+ protected _aiLogService?: AILogService;
22
+ constructor(baseUrl: string, model: string, visionModel?: string, embeddingModel?: string, aiLogService?: AILogService);
23
+ get model(): string;
24
+ protected get visionModel(): string;
25
+ protected get embeddingModel(): string;
26
+ protected post<T>(path: string, body: object): Promise<T>;
27
+ protected buildUserMessage(input: IPromptParams): Promise<OllamaMessage>;
28
+ protected mapContentPartsToMessage(content: IPromptContentPart[], role?: "user" | "assistant" | "system"): Promise<OllamaMessage>;
29
+ protected imageUrlToBase64(url: string): Promise<string>;
30
+ protected mapHistory(history?: IPromptMessage[]): Promise<OllamaMessage[]>;
31
+ protected hasImageInput(input: IPromptParams): boolean;
32
+ protected serializePromptInput(input: IPromptParams, systemPrompt: string): string;
33
+ protected serializePromptOutput(output: unknown): string;
34
+ protected buildLogPayload(input: IPromptParams, params: {
35
+ model: string;
36
+ systemPrompt: string;
37
+ startedAt: Date;
38
+ endedAt?: Date;
39
+ inputTokens?: number;
40
+ outputTokens?: number;
41
+ tokens?: number;
42
+ output?: unknown;
43
+ success: boolean;
44
+ errorMessage?: string;
45
+ }): IAILogBase;
46
+ protected registerPromptLog(input: IPromptParams, params: {
47
+ model: string;
48
+ systemPrompt: string;
49
+ startedAt: Date;
50
+ endedAt?: Date;
51
+ inputTokens?: number;
52
+ outputTokens?: number;
53
+ tokens?: number;
54
+ output?: unknown;
55
+ success: boolean;
56
+ errorMessage?: string;
57
+ }): Promise<void>;
58
+ generateEmbedding({ text, model }: {
59
+ text: string;
60
+ model?: string;
61
+ }): Promise<number[]>;
62
+ protected mapTools(tools?: IPromptTool[]): {
63
+ type: string;
64
+ function: {
65
+ name: string;
66
+ description: string;
67
+ parameters: object;
68
+ };
69
+ }[];
70
+ protected normalizeResponseFormat(input: IPromptParams): any;
71
+ protected parseToolArguments(args: string | object | undefined): any;
72
+ protected serializeToolOutput(output: unknown): string;
73
+ protected buildToolMessages(toolCalls?: OllamaToolCall[], tools?: IPromptTool[]): Promise<OllamaMessage[]>;
74
+ prompt(input: IPromptParams): Promise<IPromptResponse>;
75
+ }
76
+ export default OllamaAiProvider;
77
+ export { OllamaAiProvider };
78
+ //# sourceMappingURL=OllamaAiProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OllamaAiProvider.d.ts","sourceRoot":"","sources":["../../../src/providers/ai/OllamaAiProvider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,97 @@
1
+ import type { IAIProvider, IPromptContentPart, IPromptMessage, IPromptParams, IPromptResponse, IPromptTool } from "../../interfaces/IAIProvider.js";
2
+ import type { AILogService } from "../../services/AILogService.js";
3
+ import type { IAILogBase } from "@drax/ai-share";
4
+ declare class OpenAiProvider implements IAIProvider {
5
+ protected _apiKey: string;
6
+ protected _model: any;
7
+ protected _visionModel?: string;
8
+ protected _client: any;
9
+ protected _aiLogService?: AILogService;
10
+ constructor(apiKey: string, model: string, visionModel?: string, aiLogService?: AILogService);
11
+ get model(): any;
12
+ get client(): any;
13
+ protected get visionModel(): string;
14
+ protected buildUserContent(input: IPromptParams): string | Array<{
15
+ type: 'text';
16
+ text: string;
17
+ } | {
18
+ type: 'image_url';
19
+ image_url: {
20
+ url: string;
21
+ detail?: 'auto' | 'low' | 'high';
22
+ };
23
+ }>;
24
+ protected mapContentParts(content: IPromptContentPart[]): ({
25
+ type: "text";
26
+ text: string;
27
+ image_url?: undefined;
28
+ } | {
29
+ type: "image_url";
30
+ image_url: {
31
+ detail?: import("../../interfaces/IAIProvider.js").IPromptImageDetail;
32
+ url: string;
33
+ };
34
+ text?: undefined;
35
+ })[];
36
+ protected mapHistory(history?: IPromptMessage[]): {
37
+ role: "user" | "assistant" | "system";
38
+ content: string | ({
39
+ type: "text";
40
+ text: string;
41
+ image_url?: undefined;
42
+ } | {
43
+ type: "image_url";
44
+ image_url: {
45
+ detail?: import("../../interfaces/IAIProvider.js").IPromptImageDetail;
46
+ url: string;
47
+ };
48
+ text?: undefined;
49
+ })[];
50
+ }[];
51
+ protected hasImageInput(input: IPromptParams): boolean;
52
+ protected serializePromptInput(input: IPromptParams, systemPrompt: string): string;
53
+ protected serializePromptOutput(output: unknown): string;
54
+ protected buildLogPayload(input: IPromptParams, params: {
55
+ model: string;
56
+ systemPrompt: string;
57
+ startedAt: Date;
58
+ endedAt?: Date;
59
+ inputTokens?: number;
60
+ outputTokens?: number;
61
+ tokens?: number;
62
+ output?: unknown;
63
+ success: boolean;
64
+ errorMessage?: string;
65
+ }): IAILogBase;
66
+ protected registerPromptLog(input: IPromptParams, params: {
67
+ model: string;
68
+ systemPrompt: string;
69
+ startedAt: Date;
70
+ endedAt?: Date;
71
+ inputTokens?: number;
72
+ outputTokens?: number;
73
+ tokens?: number;
74
+ output?: unknown;
75
+ success: boolean;
76
+ errorMessage?: string;
77
+ }): Promise<void>;
78
+ generateEmbedding({ text, model }: {
79
+ text: string;
80
+ model: string;
81
+ }): Promise<number[]>;
82
+ protected mapTools(tools?: IPromptTool[]): {
83
+ type: "function";
84
+ function: {
85
+ name: string;
86
+ description: string;
87
+ parameters: object;
88
+ };
89
+ }[];
90
+ protected parseToolArguments(args: string | undefined): any;
91
+ protected serializeToolOutput(output: unknown): string;
92
+ protected buildToolMessages(toolCalls?: any[], tools?: IPromptTool[]): Promise<any[]>;
93
+ prompt(input: IPromptParams): Promise<IPromptResponse>;
94
+ }
95
+ export default OpenAiProvider;
96
+ export { OpenAiProvider };
97
+ //# sourceMappingURL=OpenAiProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OpenAiProvider.d.ts","sourceRoot":"","sources":["../../../src/providers/ai/OpenAiProvider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ import type { ITTSParams, ITTSProvider, ITTSResponse } from "../../interfaces/ITTSProvider.js";
2
+ declare class ElevenLabsTTSProvider implements ITTSProvider {
3
+ protected _apiKey: string;
4
+ protected _baseUrl: string;
5
+ protected _model: string;
6
+ protected _voiceId: string;
7
+ protected _outputFormat?: string;
8
+ constructor(apiKey: string, model: string, voiceId: string, baseUrl?: string, outputFormat?: string);
9
+ get model(): string;
10
+ get voiceId(): string;
11
+ protected mapContentType(outputFormat?: string): "audio/mpeg" | "audio/ogg" | "audio/wav" | "audio/basic" | "application/octet-stream";
12
+ protected mapVoiceSettings(voiceSettings: ITTSParams["voiceSettings"]): {
13
+ stability: number;
14
+ similarity_boost: number;
15
+ style: number;
16
+ use_speaker_boost: boolean;
17
+ speed: number;
18
+ };
19
+ protected buildBody(input: ITTSParams, model: string): {
20
+ seed?: number;
21
+ language_code?: string;
22
+ next_text?: string;
23
+ previous_text?: string;
24
+ voice_settings?: {
25
+ stability: number;
26
+ similarity_boost: number;
27
+ style: number;
28
+ use_speaker_boost: boolean;
29
+ speed: number;
30
+ };
31
+ text: string;
32
+ model_id: string;
33
+ };
34
+ textToSpeech(input: ITTSParams): Promise<ITTSResponse>;
35
+ }
36
+ export default ElevenLabsTTSProvider;
37
+ export { ElevenLabsTTSProvider };
38
+ //# sourceMappingURL=ElevenLabsTTSProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ElevenLabsTTSProvider.d.ts","sourceRoot":"","sources":["../../../src/providers/tts/ElevenLabsTTSProvider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,UAAU,EAAE,YAAY,EAAE,YAAY,EAAC,MAAM,kCAAkC,CAAC;AAE7F,cAAM,qBAAsB,YAAW,YAAY;IAC/C,SAAS,CAAC,OAAO,EAAE,MAAM,CAAA;IACzB,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAA;IAC1B,SAAS,CAAC,MAAM,EAAE,MAAM,CAAA;IACxB,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAA;IAC1B,SAAS,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;gBAEpB,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,MAAoC,EAAE,YAAY,CAAC,EAAE,MAAM;IAkBhI,IAAI,KAAK,WAKR;IAED,IAAI,OAAO,WAKV;IAED,SAAS,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE,MAAM;IAqB9C,SAAS,CAAC,gBAAgB,CAAC,aAAa,EAAE,UAAU,CAAC,eAAe,CAAC;;;;;;;IAcrE,SAAS,CAAC,SAAS,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM;;;;;;;;;;;;;;;IAY9C,YAAY,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC;CAwC/D;AAED,eAAe,qBAAqB,CAAC;AACrC,OAAO,EAAC,qBAAqB,EAAC,CAAA"}
@@ -0,0 +1,4 @@
1
+ declare function TTSFastifyRoutes(fastify: any, options: any): Promise<void>;
2
+ export default TTSFastifyRoutes;
3
+ export { TTSFastifyRoutes };
4
+ //# sourceMappingURL=TTSRoutes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TTSRoutes.d.ts","sourceRoot":"","sources":["../../src/routes/TTSRoutes.ts"],"names":[],"mappings":"AAEA,iBAAe,gBAAgB,CAAC,OAAO,KAAA,EAAE,OAAO,KAAA,iBAO/C;AAED,eAAe,gBAAgB,CAAC;AAChC,OAAO,EAAC,gBAAgB,EAAC,CAAA"}
@@ -0,0 +1,37 @@
1
+ import { z } from "zod";
2
+ declare const TTSVoiceSettingsSchema: z.ZodObject<{
3
+ stability: z.ZodOptional<z.ZodNumber>;
4
+ similarityBoost: z.ZodOptional<z.ZodNumber>;
5
+ style: z.ZodOptional<z.ZodNumber>;
6
+ useSpeakerBoost: z.ZodOptional<z.ZodBoolean>;
7
+ speed: z.ZodOptional<z.ZodNumber>;
8
+ }, z.core.$strip>;
9
+ declare const TTSRequestSchema: z.ZodObject<{
10
+ text: z.ZodString;
11
+ provider: z.ZodDefault<z.ZodString>;
12
+ voiceId: z.ZodOptional<z.ZodString>;
13
+ model: z.ZodOptional<z.ZodString>;
14
+ outputFormat: z.ZodOptional<z.ZodString>;
15
+ voiceSettings: z.ZodOptional<z.ZodObject<{
16
+ stability: z.ZodOptional<z.ZodNumber>;
17
+ similarityBoost: z.ZodOptional<z.ZodNumber>;
18
+ style: z.ZodOptional<z.ZodNumber>;
19
+ useSpeakerBoost: z.ZodOptional<z.ZodBoolean>;
20
+ speed: z.ZodOptional<z.ZodNumber>;
21
+ }, z.core.$strip>>;
22
+ previousText: z.ZodOptional<z.ZodString>;
23
+ nextText: z.ZodOptional<z.ZodString>;
24
+ languageCode: z.ZodOptional<z.ZodString>;
25
+ seed: z.ZodOptional<z.ZodNumber>;
26
+ responseFormat: z.ZodDefault<z.ZodEnum<{
27
+ audio: "audio";
28
+ base64: "base64";
29
+ }>>;
30
+ operationTitle: z.ZodOptional<z.ZodString>;
31
+ operationGroup: z.ZodOptional<z.ZodString>;
32
+ }, z.core.$strip>;
33
+ type TTSRequest = z.infer<typeof TTSRequestSchema>;
34
+ type TTSVoiceSettings = z.infer<typeof TTSVoiceSettingsSchema>;
35
+ export { TTSRequestSchema, TTSVoiceSettingsSchema, };
36
+ export type { TTSRequest, TTSVoiceSettings, };
37
+ //# sourceMappingURL=TTSRequestSchema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TTSRequestSchema.d.ts","sourceRoot":"","sources":["../../src/schemas/TTSRequestSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAEtB,QAAA,MAAM,sBAAsB;;;;;;iBAM1B,CAAA;AAEF,QAAA,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;iBAcpB,CAAA;AAEF,KAAK,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAA;AAClD,KAAK,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAE9D,OAAO,EACH,gBAAgB,EAChB,sBAAsB,GACzB,CAAA;AAED,YAAY,EACR,UAAU,EACV,gBAAgB,GACnB,CAAA"}
@@ -0,0 +1,9 @@
1
+ import type { IPromptAudioParams, IPromptAudioResponse, IPromptParams } from "../interfaces/IAIProvider.js";
2
+ declare class PromptAudioService {
3
+ static audioParams(input: IPromptParams): IPromptAudioParams | null;
4
+ static outputToText(output: unknown): string;
5
+ static build(input: IPromptParams, output: unknown): Promise<IPromptAudioResponse | undefined>;
6
+ }
7
+ export default PromptAudioService;
8
+ export { PromptAudioService, };
9
+ //# sourceMappingURL=PromptAudioService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PromptAudioService.d.ts","sourceRoot":"","sources":["../../src/services/PromptAudioService.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,kBAAkB,EAAE,oBAAoB,EAAE,aAAa,EAAC,MAAM,8BAA8B,CAAC;AAE1G,cAAM,kBAAkB;IAEpB,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,aAAa,GAAG,kBAAkB,GAAG,IAAI;IAgBnE,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM;WAY/B,KAAK,CAAC,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,oBAAoB,GAAG,SAAS,CAAC;CAgDvG;AAED,eAAe,kBAAkB,CAAA;AACjC,OAAO,EACH,kBAAkB,GACrB,CAAA"}
@@ -0,0 +1,17 @@
1
+ import type { TTSProviderInfo } from "../factory/tts/TTSProviderFactory.js";
2
+ import type { ITTSResponse } from "../interfaces/ITTSProvider.js";
3
+ import type { TTSRequest } from "../schemas/TTSRequestSchema.js";
4
+ type TTSRequestContext = {
5
+ ip?: string;
6
+ userAgent?: string;
7
+ tenant?: string | null;
8
+ user?: string | null;
9
+ };
10
+ declare class TTSGenericService {
11
+ availableProviders(): TTSProviderInfo[];
12
+ textToSpeech(input: TTSRequest, context?: TTSRequestContext): Promise<ITTSResponse>;
13
+ }
14
+ export default TTSGenericService;
15
+ export { TTSGenericService, };
16
+ export type { TTSRequestContext, };
17
+ //# sourceMappingURL=TTSGenericService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TTSGenericService.d.ts","sourceRoot":"","sources":["../../src/services/TTSGenericService.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,sCAAsC,CAAC;AAC1E,OAAO,KAAK,EAAa,YAAY,EAAC,MAAM,+BAA+B,CAAC;AAC5E,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,gCAAgC,CAAC;AAE/D,KAAK,iBAAiB,GAAG;IACrB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB,CAAA;AAED,cAAM,iBAAiB;IAEnB,kBAAkB,IAAI,eAAe,EAAE;IAIjC,YAAY,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC,YAAY,CAAC;CAchG;AAED,eAAe,iBAAiB,CAAC;AACjC,OAAO,EACH,iBAAiB,GACpB,CAAA;AACD,YAAY,EACR,iBAAiB,GACpB,CAAA"}
@@ -1,27 +0,0 @@
1
- import {DraxConfig} from "@drax/common-back";
2
- import DeepSeekConfig from "../config/DeepSeekConfig.js";
3
- import type {IAIProvider} from "../interfaces/IAIProvider"
4
- import DeepSeekProvider from "../providers/DeepSeekProvider.js";
5
- import AILogServiceFactory from "./services/AILogServiceFactory.js";
6
-
7
- class DeepSeekProviderFactory {
8
- private static singleton: IAIProvider;
9
-
10
- public static instance(): IAIProvider {
11
- if (!DeepSeekProviderFactory.singleton) {
12
- DeepSeekProviderFactory.singleton = new DeepSeekProvider(
13
- DraxConfig.getOrLoad(DeepSeekConfig.DeepSeekApiKey),
14
- DraxConfig.getOrLoad(DeepSeekConfig.DeepSeekModel),
15
- DraxConfig.getOrLoad(DeepSeekConfig.DeepSeekBaseUrl, "string", "https://api.deepseek.com"),
16
- DraxConfig.getOrLoad(DeepSeekConfig.DeepSeekVisionModel),
17
- AILogServiceFactory.instance
18
- );
19
- }
20
- return DeepSeekProviderFactory.singleton;
21
- }
22
- }
23
-
24
- export default DeepSeekProviderFactory
25
- export {
26
- DeepSeekProviderFactory
27
- }