@drax/ai-back 3.0.0 → 3.17.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 (87) hide show
  1. package/dist/config/OpenAiConfig.js +1 -0
  2. package/dist/controllers/AIController.js +150 -0
  3. package/dist/controllers/AICrudController.js +150 -0
  4. package/dist/controllers/AIGenericController.js +83 -0
  5. package/dist/controllers/AILogController.js +18 -0
  6. package/dist/factory/AiProviderFactory.js +1 -1
  7. package/dist/factory/OpenAiProviderFactory.js +2 -1
  8. package/dist/factory/services/AILogServiceFactory.js +30 -0
  9. package/dist/index.js +14 -1
  10. package/dist/interfaces/IAILog.js +1 -0
  11. package/dist/interfaces/IAILogRepository.js +1 -0
  12. package/dist/models/AILogModel.js +50 -0
  13. package/dist/permissions/AILogPermissions.js +10 -0
  14. package/dist/permissions/AIPermissions.js +7 -0
  15. package/dist/providers/OpenAiProvider.js +176 -26
  16. package/dist/repository/mongo/AILogMongoRepository.js +13 -0
  17. package/dist/repository/sqlite/AILogSqliteRepository.js +45 -0
  18. package/dist/routes/AILogRoutes.js +21 -0
  19. package/dist/routes/AIRoutes.js +10 -0
  20. package/dist/schemas/AILogSchema.js +44 -0
  21. package/dist/services/AILogService.js +9 -0
  22. package/package.json +8 -2
  23. package/src/config/OpenAiConfig.ts +1 -0
  24. package/src/controllers/AICrudController.ts +168 -0
  25. package/src/controllers/AIGenericController.ts +97 -0
  26. package/src/controllers/AILogController.ts +29 -0
  27. package/src/factory/AiProviderFactory.ts +1 -1
  28. package/src/factory/OpenAiProviderFactory.ts +4 -2
  29. package/src/factory/services/AILogServiceFactory.ts +41 -0
  30. package/src/index.ts +47 -1
  31. package/src/interfaces/IAILogRepository.ts +11 -0
  32. package/src/interfaces/IAIProvider.ts +48 -2
  33. package/src/models/AILogModel.ts +65 -0
  34. package/src/permissions/AILogPermissions.ts +14 -0
  35. package/src/permissions/AIPermissions.ts +11 -0
  36. package/src/providers/OpenAiProvider.ts +231 -29
  37. package/src/repository/mongo/AILogMongoRepository.ts +22 -0
  38. package/src/repository/sqlite/AILogSqliteRepository.ts +53 -0
  39. package/src/routes/AILogRoutes.ts +38 -0
  40. package/src/routes/AIRoutes.ts +18 -0
  41. package/src/schemas/AILogSchema.ts +52 -0
  42. package/src/services/AILogService.ts +20 -0
  43. package/test/OpenAiProvider.test.ts +91 -0
  44. package/tsconfig.tsbuildinfo +1 -1
  45. package/types/config/OpenAiConfig.d.ts +2 -1
  46. package/types/config/OpenAiConfig.d.ts.map +1 -1
  47. package/types/controllers/AIController.d.ts +25 -0
  48. package/types/controllers/AIController.d.ts.map +1 -0
  49. package/types/controllers/AICrudController.d.ts +25 -0
  50. package/types/controllers/AICrudController.d.ts.map +1 -0
  51. package/types/controllers/AIGenericController.d.ts +7 -0
  52. package/types/controllers/AIGenericController.d.ts.map +1 -0
  53. package/types/controllers/AILogController.d.ts +8 -0
  54. package/types/controllers/AILogController.d.ts.map +1 -0
  55. package/types/factory/AiProviderFactory.d.ts +1 -1
  56. package/types/factory/AiProviderFactory.d.ts.map +1 -1
  57. package/types/factory/OpenAiProviderFactory.d.ts.map +1 -1
  58. package/types/factory/services/AILogServiceFactory.d.ts +8 -0
  59. package/types/factory/services/AILogServiceFactory.d.ts.map +1 -0
  60. package/types/index.d.ts +17 -3
  61. package/types/index.d.ts.map +1 -1
  62. package/types/interfaces/IAILog.d.ts +77 -0
  63. package/types/interfaces/IAILog.d.ts.map +1 -0
  64. package/types/interfaces/IAILogRepository.d.ts +6 -0
  65. package/types/interfaces/IAILogRepository.d.ts.map +1 -0
  66. package/types/interfaces/IAIProvider.d.ts +32 -2
  67. package/types/interfaces/IAIProvider.d.ts.map +1 -1
  68. package/types/models/AILogModel.d.ts +15 -0
  69. package/types/models/AILogModel.d.ts.map +1 -0
  70. package/types/permissions/AILogPermissions.d.ts +10 -0
  71. package/types/permissions/AILogPermissions.d.ts.map +1 -0
  72. package/types/permissions/AIPermissions.d.ts +7 -0
  73. package/types/permissions/AIPermissions.d.ts.map +1 -0
  74. package/types/providers/OpenAiProvider.d.ts +71 -2
  75. package/types/providers/OpenAiProvider.d.ts.map +1 -1
  76. package/types/repository/mongo/AILogMongoRepository.d.ts +9 -0
  77. package/types/repository/mongo/AILogMongoRepository.d.ts.map +1 -0
  78. package/types/repository/sqlite/AILogSqliteRepository.d.ts +23 -0
  79. package/types/repository/sqlite/AILogSqliteRepository.d.ts.map +1 -0
  80. package/types/routes/AILogRoutes.d.ts +4 -0
  81. package/types/routes/AILogRoutes.d.ts.map +1 -0
  82. package/types/routes/AIRoutes.d.ts +4 -0
  83. package/types/routes/AIRoutes.d.ts.map +1 -0
  84. package/types/schemas/AILogSchema.d.ts +81 -0
  85. package/types/schemas/AILogSchema.d.ts.map +1 -0
  86. package/types/services/AILogService.d.ts +10 -0
  87. package/types/services/AILogService.d.ts.map +1 -0
@@ -1,6 +1,7 @@
1
1
  declare enum OpenAiConfig {
2
2
  OpenAiApiKey = "OPENAI_API_KEY",
3
- OpenAiModel = "OPENAI_MODEL"
3
+ OpenAiModel = "OPENAI_MODEL",
4
+ OpenAiVisionModel = "OPENAI_VISION_MODEL"
4
5
  }
5
6
  export default OpenAiConfig;
6
7
  export { OpenAiConfig };
@@ -1 +1 @@
1
- {"version":3,"file":"OpenAiConfig.d.ts","sourceRoot":"","sources":["../../src/config/OpenAiConfig.ts"],"names":[],"mappings":"AACA,aAAK,YAAY;IAEb,YAAY,mBAAmB;IAC/B,WAAW,iBAAiB;CAE/B;AAGD,eAAe,YAAY,CAAC;AAE5B,OAAO,EAAC,YAAY,EAAC,CAAA"}
1
+ {"version":3,"file":"OpenAiConfig.d.ts","sourceRoot":"","sources":["../../src/config/OpenAiConfig.ts"],"names":[],"mappings":"AACA,aAAK,YAAY;IAEb,YAAY,mBAAmB;IAC/B,WAAW,iBAAiB;IAC5B,iBAAiB,wBAAwB;CAE5C;AAGD,eAAe,YAAY,CAAC;AAE5B,OAAO,EAAC,YAAY,EAAC,CAAA"}
@@ -0,0 +1,25 @@
1
+ import { z } from "zod";
2
+ import { CommonController } from "@drax/common-back";
3
+ declare const PromptRequestSchema: z.ZodObject<{
4
+ prompt: z.ZodString;
5
+ operation: z.ZodDefault<z.ZodEnum<{
6
+ create: "create";
7
+ edit: "edit";
8
+ }>>;
9
+ entity: z.ZodObject<{
10
+ name: z.ZodString;
11
+ identifier: z.ZodNullable<z.ZodOptional<z.ZodString>>;
12
+ }, z.core.$strip>;
13
+ currentValues: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodAny>>;
14
+ fields: z.ZodArray<z.ZodType<any, unknown, z.core.$ZodTypeInternals<any, unknown>>>;
15
+ }, z.core.$strip>;
16
+ declare class AIController extends CommonController {
17
+ protected buildFieldValueSchema(field: any): z.ZodTypeAny;
18
+ protected buildFieldShape(fields: any[]): Record<string, z.ZodTypeAny>;
19
+ protected buildSystemPrompt(input: z.infer<typeof PromptRequestSchema>): string;
20
+ protected buildUserInput(input: z.infer<typeof PromptRequestSchema>): string;
21
+ prompt(req: any, rep: any): Promise<any>;
22
+ }
23
+ export default AIController;
24
+ export { AIController };
25
+ //# sourceMappingURL=AIController.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AIController.d.ts","sourceRoot":"","sources":["../../src/controllers/AIController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AACtB,OAAO,EAAC,gBAAgB,EAAC,MAAM,mBAAmB,CAAC;AAsBnD,QAAA,MAAM,mBAAmB;;;;;;;;;;;;iBASvB,CAAA;AAEF,cAAM,YAAa,SAAQ,gBAAgB;IAEvC,SAAS,CAAC,qBAAqB,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC,CAAC,UAAU;IAqCzD,SAAS,CAAC,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,UAAU,CAAC;IAOtE,SAAS,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC;IAgBtE,SAAS,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC;IAe7D,MAAM,CAAC,GAAG,KAAA,EAAE,GAAG,KAAA;CAqDxB;AAED,eAAe,YAAY,CAAC;AAC5B,OAAO,EAAC,YAAY,EAAC,CAAC"}
@@ -0,0 +1,25 @@
1
+ import { z } from "zod";
2
+ import { CommonController } from "@drax/common-back";
3
+ declare const PromptRequestSchema: z.ZodObject<{
4
+ prompt: z.ZodString;
5
+ operation: z.ZodDefault<z.ZodEnum<{
6
+ create: "create";
7
+ edit: "edit";
8
+ }>>;
9
+ entity: z.ZodObject<{
10
+ name: z.ZodString;
11
+ identifier: z.ZodNullable<z.ZodOptional<z.ZodString>>;
12
+ }, z.core.$strip>;
13
+ currentValues: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodAny>>;
14
+ fields: z.ZodArray<z.ZodType<any, unknown, z.core.$ZodTypeInternals<any, unknown>>>;
15
+ }, z.core.$strip>;
16
+ declare class AICrudController extends CommonController {
17
+ protected buildFieldValueSchema(field: any): z.ZodTypeAny;
18
+ protected buildFieldShape(fields: any[]): Record<string, z.ZodTypeAny>;
19
+ protected buildSystemPrompt(input: z.infer<typeof PromptRequestSchema>): string;
20
+ protected buildUserInput(input: z.infer<typeof PromptRequestSchema>): string;
21
+ prompt(req: any, rep: any): Promise<any>;
22
+ }
23
+ export default AICrudController;
24
+ export { AICrudController };
25
+ //# sourceMappingURL=AICrudController.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AICrudController.d.ts","sourceRoot":"","sources":["../../src/controllers/AICrudController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AACtB,OAAO,EAAC,gBAAgB,EAAC,MAAM,mBAAmB,CAAC;AAsBnD,QAAA,MAAM,mBAAmB;;;;;;;;;;;;iBASvB,CAAA;AAEF,cAAM,gBAAiB,SAAQ,gBAAgB;IAE3C,SAAS,CAAC,qBAAqB,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC,CAAC,UAAU;IAqCzD,SAAS,CAAC,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,UAAU,CAAC;IAOtE,SAAS,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC;IAgBtE,SAAS,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC;IAe7D,MAAM,CAAC,GAAG,KAAA,EAAE,GAAG,KAAA;CAqDxB;AAED,eAAe,gBAAgB,CAAC;AAChC,OAAO,EAAC,gBAAgB,EAAC,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { CommonController } from "@drax/common-back";
2
+ declare class AIGenericController extends CommonController {
3
+ prompt(request: any, reply: any): Promise<any>;
4
+ }
5
+ export default AIGenericController;
6
+ export { AIGenericController };
7
+ //# sourceMappingURL=AIGenericController.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AIGenericController.d.ts","sourceRoot":"","sources":["../../src/controllers/AIGenericController.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,gBAAgB,EAAC,MAAM,mBAAmB,CAAC;AA4DnD,cAAM,mBAAoB,SAAQ,gBAAgB;IAExC,MAAM,CAAC,OAAO,KAAA,EAAE,KAAK,KAAA;CA8B9B;AAED,eAAe,mBAAmB,CAAC;AACnC,OAAO,EAAC,mBAAmB,EAAC,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { AbstractFastifyController } from "@drax/crud-back";
2
+ import type { IAILog, IAILogBase } from "@drax/ai-share";
3
+ declare class AILogController extends AbstractFastifyController<IAILog, IAILogBase, IAILogBase> {
4
+ constructor();
5
+ }
6
+ export default AILogController;
7
+ export { AILogController };
8
+ //# sourceMappingURL=AILogController.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AILogController.d.ts","sourceRoot":"","sources":["../../src/controllers/AILogController.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,yBAAyB,EAAC,MAAM,iBAAiB,CAAC;AAE1D,OAAO,KAAK,EAAC,MAAM,EAAE,UAAU,EAAC,MAAM,gBAAgB,CAAC;AAEvD,cAAM,eAAgB,SAAQ,yBAAyB,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC;;CAgBtF;AAED,eAAe,eAAe,CAAC;AAC/B,OAAO,EACH,eAAe,EAClB,CAAA"}
@@ -1,7 +1,7 @@
1
1
  import type { IAIProvider } from "../interfaces/IAIProvider";
2
2
  declare class AiProviderFactory {
3
3
  private static singleton;
4
- static instance(provider: string): IAIProvider;
4
+ static instance(provider?: string): IAIProvider;
5
5
  }
6
6
  export default AiProviderFactory;
7
7
  export { AiProviderFactory };
@@ -1 +1 @@
1
- {"version":3,"file":"AiProviderFactory.d.ts","sourceRoot":"","sources":["../../src/factory/AiProviderFactory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,2BAA2B,CAAA;AAG1D,cAAM,iBAAiB;IACnB,OAAO,CAAC,MAAM,CAAC,SAAS,CAAc;WAExB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW;CAYxD;AAED,eAAe,iBAAiB,CAAA;AAChC,OAAO,EACH,iBAAiB,EACpB,CAAA"}
1
+ {"version":3,"file":"AiProviderFactory.d.ts","sourceRoot":"","sources":["../../src/factory/AiProviderFactory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,2BAA2B,CAAA;AAG1D,cAAM,iBAAiB;IACnB,OAAO,CAAC,MAAM,CAAC,SAAS,CAAc;WAExB,QAAQ,CAAC,QAAQ,GAAE,MAAiB,GAAG,WAAW;CAYnE;AAED,eAAe,iBAAiB,CAAA;AAChC,OAAO,EACH,iBAAiB,EACpB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"OpenAiProviderFactory.d.ts","sourceRoot":"","sources":["../../src/factory/OpenAiProviderFactory.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,2BAA2B,CAAA;AAG1D,cAAM,qBAAqB;IACvB,OAAO,CAAC,MAAM,CAAC,SAAS,CAAc;WAExB,QAAQ,IAAI,WAAW;CASxC;AAED,eAAe,qBAAqB,CAAA;AACpC,OAAO,EACH,qBAAqB,EACxB,CAAA"}
1
+ {"version":3,"file":"OpenAiProviderFactory.d.ts","sourceRoot":"","sources":["../../src/factory/OpenAiProviderFactory.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,2BAA2B,CAAA;AAI1D,cAAM,qBAAqB;IACvB,OAAO,CAAC,MAAM,CAAC,SAAS,CAAc;WAExB,QAAQ,IAAI,WAAW;CAWxC;AAED,eAAe,qBAAqB,CAAA;AACpC,OAAO,EACH,qBAAqB,EACxB,CAAA"}
@@ -0,0 +1,8 @@
1
+ import { AILogService } from '../../services/AILogService.js';
2
+ declare class AILogServiceFactory {
3
+ private static service;
4
+ static get instance(): AILogService;
5
+ }
6
+ export default AILogServiceFactory;
7
+ export { AILogServiceFactory };
8
+ //# sourceMappingURL=AILogServiceFactory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AILogServiceFactory.d.ts","sourceRoot":"","sources":["../../../src/factory/services/AILogServiceFactory.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,YAAY,EAAC,MAAM,gCAAgC,CAAA;AAI3D,cAAM,mBAAmB;IACrB,OAAO,CAAC,MAAM,CAAC,OAAO,CAAe;IAErC,WAAkB,QAAQ,IAAI,YAAY,CAsBzC;CACJ;AAED,eAAe,mBAAmB,CAAA;AAClC,OAAO,EACH,mBAAmB,EACtB,CAAA"}
package/types/index.d.ts CHANGED
@@ -1,8 +1,22 @@
1
1
  import { OpenAiConfig } from "./config/OpenAiConfig.js";
2
+ import { AILogSchema, AILogBaseSchema } from "./schemas/AILogSchema.js";
3
+ import AILogModel from "./models/AILogModel.js";
4
+ import AILogMongoRepository from "./repository/mongo/AILogMongoRepository.js";
5
+ import AILogSqliteRepository from "./repository/sqlite/AILogSqliteRepository.js";
2
6
  import { OpenAiProviderFactory } from "./factory/OpenAiProviderFactory.js";
7
+ import AILogServiceFactory from "./factory/services/AILogServiceFactory.js";
3
8
  import { OpenAiProvider } from "./providers/OpenAiProvider.js";
4
9
  import { KnowledgeService } from "./services/KnowledgeService.js";
5
- import type { IAIProvider, IPromptResponse, IPromptParams, IPromptMessage, IPromptMemory } from "./interfaces/IAIProvider.js";
6
- export type { IAIProvider, IPromptParams, IPromptMessage, IPromptMemory, IPromptResponse, };
7
- export { OpenAiConfig, OpenAiProviderFactory, OpenAiProvider, KnowledgeService, };
10
+ import { AILogService } from "./services/AILogService.js";
11
+ import AILogPermissions from "./permissions/AILogPermissions.js";
12
+ import AIPermissions from "./permissions/AIPermissions.js";
13
+ import AILogController from "./controllers/AILogController.js";
14
+ import AICrudController from "./controllers/AICrudController.js";
15
+ import AIGenericController from "./controllers/AIGenericController.js";
16
+ import AILogRoutes from "./routes/AILogRoutes.js";
17
+ import AIRoutes from "./routes/AIRoutes.js";
18
+ import type { IAILogRepository } from "./interfaces/IAILogRepository.js";
19
+ import type { IAIProvider, IPromptContentPart, IPromptContentPartImage, IPromptContentPartText, IPromptImage, IPromptImageDetail, IPromptMessage, IPromptMemory, IPromptParams, IPromptResponse } from "./interfaces/IAIProvider.js";
20
+ export type { IAILogRepository, IAIProvider, IPromptParams, IPromptMessage, IPromptMemory, IPromptImage, IPromptImageDetail, IPromptContentPart, IPromptContentPartImage, IPromptContentPartText, IPromptResponse, };
21
+ export { OpenAiConfig, AILogSchema, AILogBaseSchema, AILogModel, AILogMongoRepository, AILogSqliteRepository, OpenAiProviderFactory, AILogServiceFactory, OpenAiProvider, KnowledgeService, AILogService, AILogPermissions, AIPermissions, AILogController, AICrudController, AIGenericController, AILogRoutes, AIRoutes };
8
22
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAC,qBAAqB,EAAC,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAC,cAAc,EAAC,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAC,gBAAgB,EAAC,MAAM,gCAAgC,CAAC;AAChE,OAAO,KAAK,EAAC,WAAW,EAAE,eAAe,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,EAAC,MAAM,6BAA6B,CAAC;AAE5H,YAAY,EACR,WAAW,EACX,aAAa,EACb,cAAc,EACd,aAAa,EACb,eAAe,GAClB,CAAA;AAED,OAAO,EACH,YAAY,EACZ,qBAAqB,EACrB,cAAc,EACd,gBAAgB,GACnB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAC,WAAW,EAAE,eAAe,EAAC,MAAM,0BAA0B,CAAC;AACtE,OAAO,UAAU,MAAM,wBAAwB,CAAC;AAChD,OAAO,oBAAoB,MAAM,4CAA4C,CAAC;AAC9E,OAAO,qBAAqB,MAAM,8CAA8C,CAAC;AACjF,OAAO,EAAC,qBAAqB,EAAC,MAAM,oCAAoC,CAAC;AACzE,OAAO,mBAAmB,MAAM,2CAA2C,CAAC;AAC5E,OAAO,EAAC,cAAc,EAAC,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAC,gBAAgB,EAAC,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAC,YAAY,EAAC,MAAM,4BAA4B,CAAC;AACxD,OAAO,gBAAgB,MAAM,mCAAmC,CAAC;AACjE,OAAO,aAAa,MAAM,gCAAgC,CAAC;AAC3D,OAAO,eAAe,MAAM,kCAAkC,CAAC;AAC/D,OAAO,gBAAgB,MAAM,mCAAmC,CAAC;AACjE,OAAO,mBAAmB,MAAM,sCAAsC,CAAC;AACvE,OAAO,WAAW,MAAM,yBAAyB,CAAC;AAClD,OAAO,QAAQ,MAAM,sBAAsB,CAAC;AAC5C,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,kCAAkC,CAAC;AACvE,OAAO,KAAK,EACR,WAAW,EACX,kBAAkB,EAClB,uBAAuB,EACvB,sBAAsB,EACtB,YAAY,EACZ,kBAAkB,EAClB,cAAc,EACd,aAAa,EACb,aAAa,EACb,eAAe,EAClB,MAAM,6BAA6B,CAAC;AAErC,YAAY,EAER,gBAAgB,EAChB,WAAW,EACX,aAAa,EACb,cAAc,EACd,aAAa,EACb,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,EAClB,uBAAuB,EACvB,sBAAsB,EACtB,eAAe,GAClB,CAAA;AAED,OAAO,EACH,YAAY,EACZ,WAAW,EACX,eAAe,EACf,UAAU,EACV,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,EACrB,mBAAmB,EACnB,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,WAAW,EACX,QAAQ,EACX,CAAA"}
@@ -0,0 +1,77 @@
1
+ interface IAILogBase {
2
+ provider?: string;
3
+ model?: string;
4
+ operationTitle?: string;
5
+ operationGroup?: string;
6
+ ip?: string;
7
+ userAgent?: string;
8
+ input?: string;
9
+ inputImages?: Array<{
10
+ filename?: string;
11
+ filepath?: string;
12
+ size?: number;
13
+ mimetype?: string;
14
+ url?: string;
15
+ }>;
16
+ inputFiles?: Array<{
17
+ filename?: string;
18
+ filepath?: string;
19
+ size?: number;
20
+ mimetype?: string;
21
+ url?: string;
22
+ }>;
23
+ inputTokens?: number;
24
+ outputTokens?: number;
25
+ tokens?: number;
26
+ startedAt?: Date;
27
+ endedAt?: Date;
28
+ responseTime?: string;
29
+ output?: string;
30
+ success?: boolean;
31
+ statusCode?: number;
32
+ errorMessage?: string;
33
+ tenant?: any;
34
+ user?: any;
35
+ createdAt?: Date;
36
+ updatedAt?: Date;
37
+ }
38
+ interface IAILog {
39
+ _id: string;
40
+ provider?: string;
41
+ model?: string;
42
+ operationTitle?: string;
43
+ operationGroup?: string;
44
+ ip?: string;
45
+ userAgent?: string;
46
+ input?: string;
47
+ inputImages?: Array<{
48
+ filename?: string;
49
+ filepath?: string;
50
+ size?: number;
51
+ mimetype?: string;
52
+ url?: string;
53
+ }>;
54
+ inputFiles?: Array<{
55
+ filename?: string;
56
+ filepath?: string;
57
+ size?: number;
58
+ mimetype?: string;
59
+ url?: string;
60
+ }>;
61
+ inputTokens?: number;
62
+ outputTokens?: number;
63
+ tokens?: number;
64
+ startedAt?: Date;
65
+ endedAt?: Date;
66
+ responseTime?: string;
67
+ output?: string;
68
+ success?: boolean;
69
+ statusCode?: number;
70
+ errorMessage?: string;
71
+ tenant?: any;
72
+ user?: any;
73
+ createdAt?: Date;
74
+ updatedAt?: Date;
75
+ }
76
+ export type { IAILogBase, IAILog };
77
+ //# sourceMappingURL=IAILog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IAILog.d.ts","sourceRoot":"","sources":["../../src/interfaces/IAILog.ts"],"names":[],"mappings":"AACA,UAAU,UAAU;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,KAAK,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,GAAG,CAAC,EAAE,MAAM,CAAA;KACX,CAAC,CAAA;IACF,UAAU,CAAC,EAAE,KAAK,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,GAAG,CAAC,EAAE,MAAM,CAAA;KACX,CAAC,CAAA;IACF,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,IAAI,CAAA;IAChB,OAAO,CAAC,EAAE,IAAI,CAAA;IACd,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,MAAM,CAAC,EAAE,GAAG,CAAA;IACZ,IAAI,CAAC,EAAE,GAAG,CAAA;IACV,SAAS,CAAC,EAAE,IAAI,CAAA;IAChB,SAAS,CAAC,EAAE,IAAI,CAAA;CACnB;AAED,UAAU,MAAM;IACZ,GAAG,EAAE,MAAM,CAAA;IACX,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,KAAK,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,GAAG,CAAC,EAAE,MAAM,CAAA;KACX,CAAC,CAAA;IACF,UAAU,CAAC,EAAE,KAAK,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,GAAG,CAAC,EAAE,MAAM,CAAA;KACX,CAAC,CAAA;IACF,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,IAAI,CAAA;IAChB,OAAO,CAAC,EAAE,IAAI,CAAA;IACd,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,MAAM,CAAC,EAAE,GAAG,CAAA;IACZ,IAAI,CAAC,EAAE,GAAG,CAAA;IACV,SAAS,CAAC,EAAE,IAAI,CAAA;IAChB,SAAS,CAAC,EAAE,IAAI,CAAA;CACnB;AAED,YAAY,EACZ,UAAU,EACV,MAAM,EACL,CAAA"}
@@ -0,0 +1,6 @@
1
+ import type { IAILog, IAILogBase } from '@drax/ai-share';
2
+ import { IDraxCrudRepository } from "@drax/crud-share";
3
+ interface IAILogRepository extends IDraxCrudRepository<IAILog, IAILogBase, IAILogBase> {
4
+ }
5
+ export { IAILogRepository };
6
+ //# sourceMappingURL=IAILogRepository.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IAILogRepository.d.ts","sourceRoot":"","sources":["../../src/interfaces/IAILogRepository.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,MAAM,EAAE,UAAU,EAAC,MAAM,gBAAgB,CAAA;AACtD,OAAO,EAAC,mBAAmB,EAAC,MAAM,kBAAkB,CAAC;AAErD,UAAU,gBAAiB,SAAQ,mBAAmB,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC;CAErF;AAED,OAAO,EAAC,gBAAgB,EAAC,CAAA"}
@@ -1,8 +1,23 @@
1
1
  import { ZodSchema } from 'zod';
2
2
  type Role = 'user' | 'assistant' | 'system';
3
+ type IPromptImageDetail = 'auto' | 'low' | 'high';
4
+ interface IPromptImage {
5
+ url: string;
6
+ detail?: IPromptImageDetail;
7
+ }
8
+ interface IPromptContentPartText {
9
+ type: 'text';
10
+ text: string;
11
+ }
12
+ interface IPromptContentPartImage {
13
+ type: 'image';
14
+ imageUrl: string;
15
+ detail?: IPromptImageDetail;
16
+ }
17
+ type IPromptContentPart = IPromptContentPartText | IPromptContentPartImage;
3
18
  interface IPromptMessage {
4
19
  role: Role;
5
- content: string;
20
+ content: string | IPromptContentPart[];
6
21
  }
7
22
  interface IPromptMemory {
8
23
  key: string;
@@ -11,6 +26,15 @@ interface IPromptMemory {
11
26
  interface IPromptParams {
12
27
  systemPrompt: string;
13
28
  userInput?: string;
29
+ userImages?: IPromptImage[];
30
+ inputFiles?: Array<{
31
+ filename?: string;
32
+ filepath?: string;
33
+ size?: number | null;
34
+ mimetype?: string;
35
+ url?: string;
36
+ }>;
37
+ userContent?: IPromptContentPart[];
14
38
  history?: IPromptMessage[];
15
39
  memory?: IPromptMemory[];
16
40
  memoryHeader?: string | '[MEMORY]' | '[MEMORIA]';
@@ -19,6 +43,12 @@ interface IPromptParams {
19
43
  zodSchema?: ZodSchema<any>;
20
44
  jsonSchema?: object;
21
45
  model?: string;
46
+ operationTitle?: string;
47
+ operationGroup?: string;
48
+ ip?: string;
49
+ userAgent?: string;
50
+ tenant?: string | null;
51
+ user?: string | null;
22
52
  }
23
53
  interface IPromptResponse {
24
54
  output: any;
@@ -30,5 +60,5 @@ interface IPromptResponse {
30
60
  interface IAIProvider {
31
61
  prompt(input: IPromptParams): Promise<IPromptResponse>;
32
62
  }
33
- export type { IAIProvider, IPromptParams, IPromptResponse, IPromptMessage, IPromptMemory };
63
+ export type { IAIProvider, IPromptParams, IPromptResponse, IPromptMessage, IPromptMemory, IPromptImage, IPromptImageDetail, IPromptContentPart, IPromptContentPartImage, IPromptContentPartText, };
34
64
  //# sourceMappingURL=IAIProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"IAIProvider.d.ts","sourceRoot":"","sources":["../../src/interfaces/IAIProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,KAAK,CAAA;AAE/B,KAAK,IAAI,GAAG,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAC;AAE5C,UAAU,cAAc;IACpB,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,aAAa;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,aAAa;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC;IAC3B,MAAM,CAAC,EAAE,aAAa,EAAE,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,WAAW,CAAA;IAChD,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,mBAAmB,CAAC,EAAE,MAAM,GAAG,kBAAkB,GAAG,wBAAwB,CAAC;IAC7E,SAAS,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,eAAe;IACrB,MAAM,EAAE,GAAG,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAA;CACf;AAED,UAAU,WAAW;IACjB,MAAM,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,eAAe,CAAC,CAAA;CACzD;AAED,YAAY,EAAC,WAAW,EAAE,aAAa,EAAE,eAAe,EAAE,cAAc,EAAE,aAAa,EAAC,CAAA"}
1
+ {"version":3,"file":"IAIProvider.d.ts","sourceRoot":"","sources":["../../src/interfaces/IAIProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,KAAK,CAAA;AAE/B,KAAK,IAAI,GAAG,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAC;AAE5C,KAAK,kBAAkB,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;AAElD,UAAU,YAAY;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,kBAAkB,CAAC;CAC/B;AAED,UAAU,sBAAsB;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,uBAAuB;IAC7B,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,kBAAkB,CAAC;CAC/B;AAED,KAAK,kBAAkB,GAAG,sBAAsB,GAAG,uBAAuB,CAAC;AAE3E,UAAU,cAAc;IACpB,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,EAAE,MAAM,GAAG,kBAAkB,EAAE,CAAC;CAC1C;AAED,UAAU,aAAa;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,aAAa;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,YAAY,EAAE,CAAC;IAC5B,UAAU,CAAC,EAAE,KAAK,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,GAAG,CAAC,EAAE,MAAM,CAAA;KACf,CAAC,CAAC;IACH,WAAW,CAAC,EAAE,kBAAkB,EAAE,CAAC;IACnC,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC;IAC3B,MAAM,CAAC,EAAE,aAAa,EAAE,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,WAAW,CAAA;IAChD,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,mBAAmB,CAAC,EAAE,MAAM,GAAG,kBAAkB,GAAG,wBAAwB,CAAC;IAC7E,SAAS,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,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;AAED,UAAU,eAAe;IACrB,MAAM,EAAE,GAAG,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAA;CACf;AAED,UAAU,WAAW;IACjB,MAAM,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,eAAe,CAAC,CAAA;CACzD;AAED,YAAY,EACR,WAAW,EACX,aAAa,EACb,eAAe,EACf,cAAc,EACd,aAAa,EACb,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,EAClB,uBAAuB,EACvB,sBAAsB,GACzB,CAAA"}
@@ -0,0 +1,15 @@
1
+ import { mongoose } from '@drax/common-back';
2
+ import type { IAILog } from '@drax/ai-share';
3
+ declare const AILogSchema: mongoose.Schema<IAILog, mongoose.Model<IAILog, any, any, any, mongoose.Document<unknown, any, IAILog, any, {}> & IAILog & Required<{
4
+ _id: string;
5
+ }> & {
6
+ __v: number;
7
+ }, any>, {}, {}, {}, {}, mongoose.DefaultSchemaOptions, IAILog, mongoose.Document<unknown, {}, mongoose.FlatRecord<IAILog>, {}, mongoose.DefaultSchemaOptions> & mongoose.FlatRecord<IAILog> & Required<{
8
+ _id: string;
9
+ }> & {
10
+ __v: number;
11
+ }>;
12
+ declare const AILogModel: mongoose.PaginateModel<IAILog, {}, {}>;
13
+ export { AILogSchema, AILogModel };
14
+ export default AILogModel;
15
+ //# sourceMappingURL=AILogModel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AILogModel.d.ts","sourceRoot":"","sources":["../../src/models/AILogModel.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,QAAQ,EAAC,MAAM,mBAAmB,CAAC;AAI3C,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,gBAAgB,CAAA;AAE1C,QAAA,MAAM,WAAW;;;;;;;;EAkCK,CAAC;AAgBvB,QAAA,MAAM,UAAU,wCAAyF,CAAC;AAE1G,OAAO,EACH,WAAW,EACX,UAAU,EACb,CAAA;AAED,eAAe,UAAU,CAAA"}
@@ -0,0 +1,10 @@
1
+ declare enum AILogPermissions {
2
+ Create = "ailog:create",
3
+ Update = "ailog:update",
4
+ Delete = "ailog:delete",
5
+ View = "ailog:view",
6
+ Manage = "ailog:manage"
7
+ }
8
+ export { AILogPermissions };
9
+ export default AILogPermissions;
10
+ //# sourceMappingURL=AILogPermissions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AILogPermissions.d.ts","sourceRoot":"","sources":["../../src/permissions/AILogPermissions.ts"],"names":[],"mappings":"AACA,aAAK,gBAAgB;IAEjB,MAAM,iBAAiB;IACvB,MAAM,iBAAiB;IACvB,MAAM,iBAAiB;IACvB,IAAI,eAAe;IACnB,MAAM,iBAAiB;CAE1B;AAED,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAC5B,eAAe,gBAAgB,CAAC"}
@@ -0,0 +1,7 @@
1
+ declare enum AIPermissions {
2
+ Prompt = "ai:prompt",
3
+ PromptCrud = "ai:promptCrud"
4
+ }
5
+ export { AIPermissions };
6
+ export default AIPermissions;
7
+ //# sourceMappingURL=AIPermissions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AIPermissions.d.ts","sourceRoot":"","sources":["../../src/permissions/AIPermissions.ts"],"names":[],"mappings":"AACA,aAAK,aAAa;IAEd,MAAM,cAAc;IACpB,UAAU,kBAAkB;CAE/B;AAED,OAAO,EAAE,aAAa,EAAE,CAAC;AACzB,eAAe,aAAa,CAAC"}
@@ -1,11 +1,80 @@
1
- import type { IAIProvider, IPromptParams, IPromptResponse } from "../interfaces/IAIProvider";
1
+ import type { IAIProvider, IPromptContentPart, IPromptMessage, IPromptParams, IPromptResponse } from "../interfaces/IAIProvider";
2
+ import type { AILogService } from "../services/AILogService";
3
+ import type { IAILogBase } from "@drax/ai-share";
2
4
  declare class OpenAiProvider implements IAIProvider {
3
5
  protected _apiKey: string;
4
6
  protected _model: any;
7
+ protected _visionModel?: string;
5
8
  protected _client: any;
6
- constructor(apiKey: string, model: string);
9
+ protected _aiLogService?: AILogService;
10
+ constructor(apiKey: string, model: string, visionModel?: string, aiLogService?: AILogService);
7
11
  get model(): any;
8
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").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").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>;
9
78
  generateEmbedding({ text, model }: {
10
79
  text: string;
11
80
  model: string;
@@ -1 +1 @@
1
- {"version":3,"file":"OpenAiProvider.d.ts","sourceRoot":"","sources":["../../src/providers/OpenAiProvider.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,WAAW,EAAE,aAAa,EAAE,eAAe,EAAC,MAAM,2BAA2B,CAAC;AAE3F,cAAM,cAAe,YAAW,WAAW;IACvC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAA;IACzB,SAAS,CAAC,MAAM,EAAE,GAAG,CAAA;IACrB,SAAS,CAAC,OAAO,EAAE,GAAG,CAAA;gBAEV,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAazC,IAAI,KAAK,QAKR;IAED,IAAI,MAAM,QAQT;IAEK,iBAAiB,CAAC,EAAC,IAAI,EAAE,KAA8B,EAAC,EAAE;QAAC,IAAI,EAAC,MAAM,CAAC;QAAA,KAAK,EAAC,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAQzG,MAAM,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,eAAe,CAAC;CAqD/D;AAGD,eAAe,cAAc,CAAA;AAC7B,OAAO,EAAC,cAAc,EAAC,CAAA"}
1
+ {"version":3,"file":"OpenAiProvider.d.ts","sourceRoot":"","sources":["../../src/providers/OpenAiProvider.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACR,WAAW,EACX,kBAAkB,EAClB,cAAc,EACd,aAAa,EACb,eAAe,EAClB,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,gBAAgB,CAAC;AAE/C,cAAM,cAAe,YAAW,WAAW;IACvC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAA;IACzB,SAAS,CAAC,MAAM,EAAE,GAAG,CAAA;IACrB,SAAS,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;IAC/B,SAAS,CAAC,OAAO,EAAE,GAAG,CAAA;IACtB,SAAS,CAAC,aAAa,CAAC,EAAE,YAAY,CAAA;gBAE1B,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,YAAY;IAe5F,IAAI,KAAK,QAKR;IAED,IAAI,MAAM,QAQT;IAED,SAAS,KAAK,WAAW,WAExB;IAED,SAAS,CAAC,gBAAgB,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,GAAG,KAAK,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAC,GAAG;QAAC,IAAI,EAAE,WAAW,CAAC;QAAC,SAAS,EAAE;YAAC,GAAG,EAAE,MAAM,CAAC;YAAC,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,CAAA;SAAC,CAAA;KAAC,CAAC;IA0BhL,SAAS,CAAC,eAAe,CAAC,OAAO,EAAE,kBAAkB,EAAE;;;;;;;;;;;;IAmBvD,SAAS,CAAC,UAAU,CAAC,OAAO,GAAE,cAAc,EAAO;;;;;;;;;;;;;;;IASnD,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,aAAa;IAc5C,SAAS,CAAC,oBAAoB,CAAC,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM;IAWzE,SAAS,CAAC,qBAAqB,CAAC,MAAM,EAAE,OAAO;IAY/C,SAAS,CAAC,eAAe,CAAC,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE;QACpD,KAAK,EAAE,MAAM,CAAC;QACd,YAAY,EAAE,MAAM,CAAC;QACrB,SAAS,EAAE,IAAI,CAAC;QAChB,OAAO,CAAC,EAAE,IAAI,CAAC;QACf,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,OAAO,EAAE,OAAO,CAAC;QACjB,YAAY,CAAC,EAAE,MAAM,CAAC;KACzB,GAAG,UAAU;cA+BE,iBAAiB,CAAC,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE;QAC5D,KAAK,EAAE,MAAM,CAAC;QACd,YAAY,EAAE,MAAM,CAAC;QACrB,SAAS,EAAE,IAAI,CAAC;QAChB,OAAO,CAAC,EAAE,IAAI,CAAC;QACf,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,OAAO,EAAE,OAAO,CAAC;QACjB,YAAY,CAAC,EAAE,MAAM,CAAC;KACzB;IAgBK,iBAAiB,CAAC,EAAC,IAAI,EAAE,KAA8B,EAAC,EAAE;QAAC,IAAI,EAAC,MAAM,CAAC;QAAA,KAAK,EAAC,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAQzG,MAAM,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,eAAe,CAAC;CAgF/D;AAGD,eAAe,cAAc,CAAA;AAC7B,OAAO,EAAC,cAAc,EAAC,CAAA"}
@@ -0,0 +1,9 @@
1
+ import { AbstractMongoRepository } from "@drax/crud-back";
2
+ import type { IAILogRepository } from '../../interfaces/IAILogRepository';
3
+ import type { IAILog, IAILogBase } from "@drax/ai-share";
4
+ declare class AILogMongoRepository extends AbstractMongoRepository<IAILog, IAILogBase, IAILogBase> implements IAILogRepository {
5
+ constructor();
6
+ }
7
+ export default AILogMongoRepository;
8
+ export { AILogMongoRepository };
9
+ //# sourceMappingURL=AILogMongoRepository.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AILogMongoRepository.d.ts","sourceRoot":"","sources":["../../../src/repository/mongo/AILogMongoRepository.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,uBAAuB,EAAC,MAAM,iBAAiB,CAAC;AAExD,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,mCAAmC,CAAA;AACvE,OAAO,KAAK,EAAC,MAAM,EAAE,UAAU,EAAC,MAAM,gBAAgB,CAAC;AAGvD,cAAM,oBAAqB,SAAQ,uBAAuB,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,CAAE,YAAW,gBAAgB;;CAUrH;AAED,eAAe,oBAAoB,CAAA;AACnC,OAAO,EAAC,oBAAoB,EAAC,CAAA"}
@@ -0,0 +1,23 @@
1
+ import { AbstractSqliteRepository } from "@drax/crud-back";
2
+ import type { IAILogRepository } from '../../interfaces/IAILogRepository';
3
+ import type { IAILog, IAILogBase } from "@drax/ai-share";
4
+ import { SqliteTableField } from "@drax/common-back";
5
+ declare class AILogSqliteRepository extends AbstractSqliteRepository<IAILog, IAILogBase, IAILogBase> implements IAILogRepository {
6
+ protected db: any;
7
+ protected tableName: string;
8
+ protected dataBaseFile: string;
9
+ protected searchFields: string[];
10
+ protected booleanFields: string[];
11
+ protected jsonFields: string[];
12
+ protected identifier: string;
13
+ protected populateFields: {
14
+ field: string;
15
+ table: string;
16
+ identifier: string;
17
+ }[];
18
+ protected verbose: boolean;
19
+ protected tableFields: SqliteTableField[];
20
+ }
21
+ export default AILogSqliteRepository;
22
+ export { AILogSqliteRepository };
23
+ //# sourceMappingURL=AILogSqliteRepository.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AILogSqliteRepository.d.ts","sourceRoot":"","sources":["../../../src/repository/sqlite/AILogSqliteRepository.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,wBAAwB,EAAC,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,mCAAmC,CAAA;AACvE,OAAO,KAAK,EAAC,MAAM,EAAE,UAAU,EAAC,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAC,gBAAgB,EAAC,MAAM,mBAAmB,CAAC;AAEnD,cAAM,qBAAsB,SAAQ,wBAAwB,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,CAAE,YAAW,gBAAgB;IAEpH,SAAS,CAAC,EAAE,EAAE,GAAG,CAAC;IAClB,SAAS,CAAC,SAAS,EAAE,MAAM,CAAW;IACtC,SAAS,CAAC,YAAY,EAAE,MAAM,CAAC;IAC/B,SAAS,CAAC,YAAY,EAAE,MAAM,EAAE,CAAmH;IACnJ,SAAS,CAAC,aAAa,EAAE,MAAM,EAAE,CAAe;IAChD,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,CAAiC;IAC/D,SAAS,CAAC,UAAU,EAAE,MAAM,CAAS;IACrC,SAAS,CAAC,cAAc;;;;QAGvB;IACD,SAAS,CAAC,OAAO,EAAE,OAAO,CAAS;IACnC,SAAS,CAAC,WAAW,EAAE,gBAAgB,EAAE,CA0BxC;CAEJ;AAED,eAAe,qBAAqB,CAAA;AACpC,OAAO,EAAC,qBAAqB,EAAC,CAAA"}
@@ -0,0 +1,4 @@
1
+ declare function AILogFastifyRoutes(fastify: any, options: any): Promise<void>;
2
+ export default AILogFastifyRoutes;
3
+ export { AILogFastifyRoutes };
4
+ //# sourceMappingURL=AILogRoutes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AILogRoutes.d.ts","sourceRoot":"","sources":["../../src/routes/AILogRoutes.ts"],"names":[],"mappings":"AAKA,iBAAe,kBAAkB,CAAC,OAAO,KAAA,EAAE,OAAO,KAAA,iBA6BjD;AAED,eAAe,kBAAkB,CAAC;AAClC,OAAO,EAAC,kBAAkB,EAAC,CAAA"}
@@ -0,0 +1,4 @@
1
+ declare function AiFastifyRoutes(fastify: any, options: any): Promise<void>;
2
+ export default AiFastifyRoutes;
3
+ export { AiFastifyRoutes };
4
+ //# sourceMappingURL=AIRoutes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AIRoutes.d.ts","sourceRoot":"","sources":["../../src/routes/AIRoutes.ts"],"names":[],"mappings":"AAKA,iBAAe,eAAe,CAAC,OAAO,KAAA,EAAE,OAAO,KAAA,iBAS9C;AAED,eAAe,eAAe,CAAC;AAC/B,OAAO,EAAC,eAAe,EAAC,CAAA"}
@@ -0,0 +1,81 @@
1
+ import { z } from 'zod';
2
+ declare const AILogBaseSchema: z.ZodObject<{
3
+ provider: z.ZodOptional<z.ZodString>;
4
+ model: z.ZodOptional<z.ZodString>;
5
+ operationTitle: z.ZodOptional<z.ZodString>;
6
+ operationGroup: z.ZodOptional<z.ZodString>;
7
+ ip: z.ZodOptional<z.ZodString>;
8
+ userAgent: z.ZodOptional<z.ZodString>;
9
+ input: z.ZodOptional<z.ZodString>;
10
+ inputImages: z.ZodOptional<z.ZodArray<z.ZodObject<{
11
+ filename: z.ZodOptional<z.ZodString>;
12
+ filepath: z.ZodOptional<z.ZodString>;
13
+ size: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
14
+ mimetype: z.ZodOptional<z.ZodString>;
15
+ url: z.ZodOptional<z.ZodString>;
16
+ }, z.core.$strip>>>;
17
+ inputFiles: z.ZodOptional<z.ZodArray<z.ZodObject<{
18
+ filename: z.ZodOptional<z.ZodString>;
19
+ filepath: z.ZodOptional<z.ZodString>;
20
+ size: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
21
+ mimetype: z.ZodOptional<z.ZodString>;
22
+ url: z.ZodOptional<z.ZodString>;
23
+ }, z.core.$strip>>>;
24
+ inputTokens: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
25
+ outputTokens: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
26
+ tokens: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
27
+ startedAt: z.ZodOptional<z.ZodNullable<z.ZodCoercedDate<unknown>>>;
28
+ endedAt: z.ZodOptional<z.ZodNullable<z.ZodCoercedDate<unknown>>>;
29
+ responseTime: z.ZodOptional<z.ZodString>;
30
+ output: z.ZodOptional<z.ZodString>;
31
+ success: z.ZodOptional<z.ZodBoolean>;
32
+ statusCode: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
33
+ errorMessage: z.ZodOptional<z.ZodString>;
34
+ tenant: z.ZodNullable<z.ZodOptional<z.ZodCoercedString<unknown>>>;
35
+ user: z.ZodNullable<z.ZodOptional<z.ZodCoercedString<unknown>>>;
36
+ }, z.core.$strip>;
37
+ declare const AILogSchema: z.ZodObject<{
38
+ provider: z.ZodOptional<z.ZodString>;
39
+ model: z.ZodOptional<z.ZodString>;
40
+ operationTitle: z.ZodOptional<z.ZodString>;
41
+ operationGroup: z.ZodOptional<z.ZodString>;
42
+ ip: z.ZodOptional<z.ZodString>;
43
+ userAgent: z.ZodOptional<z.ZodString>;
44
+ input: z.ZodOptional<z.ZodString>;
45
+ inputImages: z.ZodOptional<z.ZodArray<z.ZodObject<{
46
+ filename: z.ZodOptional<z.ZodString>;
47
+ filepath: z.ZodOptional<z.ZodString>;
48
+ size: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
49
+ mimetype: z.ZodOptional<z.ZodString>;
50
+ url: z.ZodOptional<z.ZodString>;
51
+ }, z.core.$strip>>>;
52
+ inputFiles: z.ZodOptional<z.ZodArray<z.ZodObject<{
53
+ filename: z.ZodOptional<z.ZodString>;
54
+ filepath: z.ZodOptional<z.ZodString>;
55
+ size: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
56
+ mimetype: z.ZodOptional<z.ZodString>;
57
+ url: z.ZodOptional<z.ZodString>;
58
+ }, z.core.$strip>>>;
59
+ inputTokens: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
60
+ outputTokens: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
61
+ tokens: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
62
+ startedAt: z.ZodOptional<z.ZodNullable<z.ZodCoercedDate<unknown>>>;
63
+ endedAt: z.ZodOptional<z.ZodNullable<z.ZodCoercedDate<unknown>>>;
64
+ responseTime: z.ZodOptional<z.ZodString>;
65
+ output: z.ZodOptional<z.ZodString>;
66
+ success: z.ZodOptional<z.ZodBoolean>;
67
+ statusCode: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
68
+ errorMessage: z.ZodOptional<z.ZodString>;
69
+ _id: z.ZodCoercedString<unknown>;
70
+ tenant: z.ZodOptional<z.ZodNullable<z.ZodObject<{
71
+ _id: z.ZodCoercedString<unknown>;
72
+ name: z.ZodString;
73
+ }, z.core.$strip>>>;
74
+ user: z.ZodOptional<z.ZodNullable<z.ZodObject<{
75
+ _id: z.ZodCoercedString<unknown>;
76
+ username: z.ZodString;
77
+ }, z.core.$strip>>>;
78
+ }, z.core.$strip>;
79
+ export default AILogSchema;
80
+ export { AILogSchema, AILogBaseSchema };
81
+ //# sourceMappingURL=AILogSchema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AILogSchema.d.ts","sourceRoot":"","sources":["../../src/schemas/AILogSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAGtB,QAAA,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAsCnB,CAAC;AAEH,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAKX,CAAA;AAEN,eAAe,WAAW,CAAC;AAC3B,OAAO,EAAC,WAAW,EAAE,eAAe,EAAC,CAAA"}