apexify.js 4.2.4 → 4.2.5

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 (145) hide show
  1. package/README.md +5 -4
  2. package/dist/ai/ApexAI.d.ts +2 -0
  3. package/dist/ai/ApexAI.d.ts.map +1 -1
  4. package/dist/ai/ApexAI.js +31 -22
  5. package/dist/ai/ApexAI.js.map +1 -1
  6. package/dist/ai/ApexModules.d.ts +10 -1
  7. package/dist/ai/ApexModules.d.ts.map +1 -1
  8. package/dist/ai/ApexModules.js +79 -3
  9. package/dist/ai/ApexModules.js.map +1 -1
  10. package/dist/ai/buttons/drawMenu.js +1 -2
  11. package/dist/ai/buttons/drawMenu.js.map +1 -1
  12. package/dist/ai/buttons/tools.js +1 -2
  13. package/dist/ai/buttons/tools.js.map +1 -1
  14. package/dist/ai/functions/chunkString.js +1 -2
  15. package/dist/ai/functions/chunkString.js.map +1 -1
  16. package/dist/ai/functions/draw.js +9 -11
  17. package/dist/ai/functions/draw.js.map +1 -1
  18. package/dist/ai/functions/generateVoiceResponse.js +1 -2
  19. package/dist/ai/functions/generateVoiceResponse.js.map +1 -1
  20. package/dist/ai/functions/imageReader.js +1 -2
  21. package/dist/ai/functions/imageReader.js.map +1 -1
  22. package/dist/ai/functions/readFiles.d.ts.map +1 -1
  23. package/dist/ai/functions/readFiles.js +3 -3
  24. package/dist/ai/functions/readFiles.js.map +1 -1
  25. package/dist/ai/functions/readImagess.js +1 -2
  26. package/dist/ai/functions/readImagess.js.map +1 -1
  27. package/dist/ai/functions/shouldDrawImage.js +1 -2
  28. package/dist/ai/functions/shouldDrawImage.js.map +1 -1
  29. package/dist/ai/functions/typeWriter.js +1 -2
  30. package/dist/ai/functions/typeWriter.js.map +1 -1
  31. package/dist/ai/functions/validOptions.d.ts +2 -0
  32. package/dist/ai/functions/validOptions.d.ts.map +1 -1
  33. package/dist/ai/functions/validOptions.js +5 -1
  34. package/dist/ai/functions/validOptions.js.map +1 -1
  35. package/dist/ai/modals-chat/Gemini-flash.js +3 -5
  36. package/dist/ai/modals-chat/Gemini-flash.js.map +1 -1
  37. package/dist/ai/modals-chat/Gemini-pro.js +3 -5
  38. package/dist/ai/modals-chat/Gemini-pro.js.map +1 -1
  39. package/dist/ai/modals-chat/apexChat.js +1 -2
  40. package/dist/ai/modals-chat/apexChat.js.map +1 -1
  41. package/dist/ai/modals-chat/bard.d.ts.map +1 -1
  42. package/dist/ai/modals-chat/bard.js +24 -6
  43. package/dist/ai/modals-chat/bard.js.map +1 -1
  44. package/dist/ai/modals-chat/bing.d.ts.map +1 -1
  45. package/dist/ai/modals-chat/bing.js +24 -6
  46. package/dist/ai/modals-chat/bing.js.map +1 -1
  47. package/dist/ai/modals-chat/codellama.d.ts.map +1 -1
  48. package/dist/ai/modals-chat/codellama.js +23 -6
  49. package/dist/ai/modals-chat/codellama.js.map +1 -1
  50. package/dist/ai/modals-chat/facebook-ai.js +1 -2
  51. package/dist/ai/modals-chat/facebook-ai.js.map +1 -1
  52. package/dist/ai/modals-chat/geminiV2.d.ts.map +1 -1
  53. package/dist/ai/modals-chat/geminiV2.js +24 -6
  54. package/dist/ai/modals-chat/geminiV2.js.map +1 -1
  55. package/dist/ai/modals-chat/gemma.d.ts +1 -2
  56. package/dist/ai/modals-chat/gemma.d.ts.map +1 -1
  57. package/dist/ai/modals-chat/gemma.js +30 -41
  58. package/dist/ai/modals-chat/gemma.js.map +1 -1
  59. package/dist/ai/modals-chat/llama.d.ts.map +1 -1
  60. package/dist/ai/modals-chat/llama.js +24 -6
  61. package/dist/ai/modals-chat/llama.js.map +1 -1
  62. package/dist/ai/modals-chat/llamav2.d.ts +2 -0
  63. package/dist/ai/modals-chat/llamav2.d.ts.map +1 -0
  64. package/dist/ai/modals-chat/llamav2.js +43 -0
  65. package/dist/ai/modals-chat/llamav2.js.map +1 -0
  66. package/dist/ai/modals-chat/llamav3.d.ts +2 -0
  67. package/dist/ai/modals-chat/llamav3.d.ts.map +1 -0
  68. package/dist/ai/modals-chat/llamav3.js +43 -0
  69. package/dist/ai/modals-chat/llamav3.js.map +1 -0
  70. package/dist/ai/modals-chat/mixtral.d.ts.map +1 -1
  71. package/dist/ai/modals-chat/mixtral.js +24 -6
  72. package/dist/ai/modals-chat/mixtral.js.map +1 -1
  73. package/dist/ai/modals-chat/mixtralv2.d.ts +2 -0
  74. package/dist/ai/modals-chat/mixtralv2.d.ts.map +1 -0
  75. package/dist/ai/modals-chat/mixtralv2.js +43 -0
  76. package/dist/ai/modals-chat/mixtralv2.js.map +1 -0
  77. package/dist/ai/modals-chat/openChat.d.ts.map +1 -1
  78. package/dist/ai/modals-chat/openChat.js +24 -6
  79. package/dist/ai/modals-chat/openChat.js.map +1 -1
  80. package/dist/ai/modals-chat/starChat.js +1 -2
  81. package/dist/ai/modals-chat/starChat.js.map +1 -1
  82. package/dist/ai/modals-chat/v4.d.ts.map +1 -1
  83. package/dist/ai/modals-chat/v4.js +24 -6
  84. package/dist/ai/modals-chat/v4.js.map +1 -1
  85. package/dist/ai/modals-chat/whisper.d.ts +2 -0
  86. package/dist/ai/modals-chat/whisper.d.ts.map +1 -0
  87. package/dist/ai/modals-chat/whisper.js +101 -0
  88. package/dist/ai/modals-chat/whisper.js.map +1 -0
  89. package/dist/ai/modals-chat/yi-ai.js +1 -2
  90. package/dist/ai/modals-chat/yi-ai.js.map +1 -1
  91. package/dist/canvas/ApexPainter.d.ts +0 -1
  92. package/dist/canvas/ApexPainter.d.ts.map +1 -1
  93. package/dist/canvas/ApexPainter.js +5 -6
  94. package/dist/canvas/ApexPainter.js.map +1 -1
  95. package/dist/canvas/utils/bg.js +3 -4
  96. package/dist/canvas/utils/bg.js.map +1 -1
  97. package/dist/canvas/utils/charts.d.ts +0 -1
  98. package/dist/canvas/utils/charts.d.ts.map +1 -1
  99. package/dist/canvas/utils/charts.js +66 -75
  100. package/dist/canvas/utils/charts.js.map +1 -1
  101. package/dist/canvas/utils/circular.js +1 -2
  102. package/dist/canvas/utils/circular.js.map +1 -1
  103. package/dist/canvas/utils/conversion.d.ts +0 -1
  104. package/dist/canvas/utils/conversion.d.ts.map +1 -1
  105. package/dist/canvas/utils/conversion.js +5 -6
  106. package/dist/canvas/utils/conversion.js.map +1 -1
  107. package/dist/canvas/utils/customLines.js +1 -2
  108. package/dist/canvas/utils/customLines.js.map +1 -1
  109. package/dist/canvas/utils/general functions.d.ts +0 -1
  110. package/dist/canvas/utils/general functions.d.ts.map +1 -1
  111. package/dist/canvas/utils/general functions.js +12 -14
  112. package/dist/canvas/utils/general functions.js.map +1 -1
  113. package/dist/canvas/utils/imageProperties.js +7 -8
  114. package/dist/canvas/utils/imageProperties.js.map +1 -1
  115. package/dist/canvas/utils/radius.d.ts.map +1 -1
  116. package/dist/canvas/utils/radius.js +1 -2
  117. package/dist/canvas/utils/radius.js.map +1 -1
  118. package/dist/canvas/utils/textProperties.js +2 -3
  119. package/dist/canvas/utils/textProperties.js.map +1 -1
  120. package/dist/canvas/utils/types.d.ts +0 -2
  121. package/dist/canvas/utils/types.d.ts.map +1 -1
  122. package/dist/index.d.ts +1 -16
  123. package/dist/index.d.ts.map +1 -1
  124. package/dist/index.js +2 -3
  125. package/dist/index.js.map +1 -1
  126. package/lib/ai/ApexAI.ts +20 -10
  127. package/lib/ai/ApexModules.ts +87 -1
  128. package/lib/ai/functions/readFiles.ts +6 -4
  129. package/lib/ai/functions/validOptions.ts +7 -2
  130. package/lib/ai/modals-chat/bard.ts +20 -4
  131. package/lib/ai/modals-chat/bing.ts +20 -4
  132. package/lib/ai/modals-chat/codellama.ts +21 -6
  133. package/lib/ai/modals-chat/geminiV2.ts +20 -4
  134. package/lib/ai/modals-chat/gemma.ts +35 -0
  135. package/lib/ai/modals-chat/llama.ts +20 -4
  136. package/lib/ai/modals-chat/llamav2.ts +35 -0
  137. package/lib/ai/modals-chat/llamav3.ts +35 -0
  138. package/lib/ai/modals-chat/mixtral.ts +21 -4
  139. package/lib/ai/modals-chat/mixtralv2.ts +35 -0
  140. package/lib/ai/modals-chat/openChat.ts +20 -4
  141. package/lib/ai/modals-chat/v4.ts +20 -4
  142. package/lib/ai/modals-chat/whisper.ts +102 -0
  143. package/lib/canvas/ApexPainter.ts +3 -3
  144. package/lib/index.ts +3 -2
  145. package/package.json +6 -1
@@ -0,0 +1,102 @@
1
+ import Groq from 'groq-sdk';
2
+ import fs from 'fs';
3
+ import path from 'path';
4
+ import { URL } from 'url';
5
+ import https from 'https';
6
+
7
+ function getFileSize(filePath: string): number {
8
+ const stats = fs.statSync(filePath);
9
+ return stats.size;
10
+ }
11
+
12
+ async function createReadableStream(filepathOrUrl: string): Promise<NodeJS.ReadableStream | string> {
13
+ const maxFileSizeBytes = 25 * 1024 * 1024; // 25MB in bytes
14
+
15
+ if (filepathOrUrl.startsWith('http')) {
16
+ const parsedUrl = new URL(filepathOrUrl);
17
+ const fileExtension = path.extname(parsedUrl.pathname);
18
+ const tempFilePath = `temp-file-${Date.now()}${fileExtension}`;
19
+
20
+ return new Promise((resolve, reject) => {
21
+ const file = fs.createWriteStream(tempFilePath);
22
+
23
+ https.get(filepathOrUrl, (response) => {
24
+ let fileSize = 0;
25
+
26
+ response.on('data', (chunk) => {
27
+ fileSize += chunk.length;
28
+ if (fileSize > maxFileSizeBytes) {
29
+ file.close();
30
+ fs.unlink(tempFilePath, () => {
31
+ resolve('File size exceeds the limit (25MB)');
32
+ });
33
+ }
34
+ });
35
+
36
+ // @ts-ignore: Ignore type checking for this line
37
+ response.pipe(file);
38
+
39
+ file.on('finish', () => {
40
+ file.close(() => {
41
+ if (fileSize <= maxFileSizeBytes) {
42
+ // @ts-ignore: Ignore type checking for this line
43
+ resolve(fs.createReadStream(tempFilePath));
44
+ }
45
+ });
46
+ });
47
+ }).on('error', (err) => {
48
+ fs.unlink(tempFilePath, () => {
49
+ reject(err);
50
+ });
51
+ });
52
+ });
53
+ } else {
54
+ const fileSize = getFileSize(filepathOrUrl);
55
+ if (fileSize > maxFileSizeBytes) {
56
+ return 'File size exceeds the limit (25MB)';
57
+ }
58
+ // @ts-ignore: Ignore type checking for this line
59
+ return fs.createReadStream(filepathOrUrl);
60
+ }
61
+ }
62
+
63
+ export async function whisper(prompt: string, filepath: string, lang?: string, API_KEY?: string) {
64
+ try {
65
+ const groq = new Groq({
66
+ apiKey: API_KEY || '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',
67
+ });
68
+
69
+ const fileStream = await createReadableStream(filepath);
70
+
71
+ if (typeof fileStream === 'string') {
72
+ return fileStream;
73
+ }
74
+
75
+ const transcription = await groq.audio.transcriptions.create({
76
+ // @ts-ignore: Ignore type checking for this line
77
+ file: fileStream,
78
+ model: "whisper-large-v3",
79
+ prompt: prompt,
80
+ temperature: 1,
81
+ language: lang || 'eng',
82
+ response_format: "verbose_json",
83
+ });
84
+
85
+ return transcription.text;
86
+ } catch (err: any) {
87
+ if (err instanceof Groq.APIError) {
88
+ if (err.status === 400) {
89
+ return 'Bad request, try again after a minute please.';
90
+ } else if (err.status === 429) {
91
+ return 'Rate limit, try again after one minute or provide your own api-key.';
92
+ } else if (err.status === 401 || !err.status) {
93
+ return 'Invalid Api-Key provided.';
94
+ } else {
95
+ console.error(err);
96
+ return "Unknown error occurred.";
97
+ }
98
+ }
99
+ console.error(err);
100
+ return 'Unknown error occurred.';
101
+ }
102
+ }
@@ -173,9 +173,9 @@ export class ApexPainter {
173
173
  return canvas;
174
174
  }
175
175
 
176
- function createOutputStream(outputFile: any) {
176
+ function createOutputStream(outputFile: any): fs.WriteStream {
177
177
  return fs.createWriteStream(outputFile);
178
- }
178
+ }
179
179
 
180
180
  function createBufferStream(): Writable & { getBuffer: () => Buffer } {
181
181
  const bufferStream = new PassThrough();
@@ -190,7 +190,6 @@ export class ApexPainter {
190
190
  return Buffer.concat(chunks);
191
191
  };
192
192
 
193
- console.log(`buffer get: ${{customBufferStream}}`)
194
193
  return customBufferStream;
195
194
  }
196
195
 
@@ -344,6 +343,7 @@ export class ApexPainter {
344
343
  ? createOutputStream(options.outputFile)
345
344
  : createBufferStream();
346
345
 
346
+ // @ts-ignore: Ignore type checking for this line
347
347
  encoder.createReadStream().pipe(outputStream);
348
348
 
349
349
  encoder.start();
package/lib/index.ts CHANGED
@@ -30,6 +30,7 @@ fetch("https://registry.npmjs.com/-/v1/search?text=apexify.js")
30
30
 
31
31
  import { ApexAI, ApexChat, ApexImagine, ApexPainter } from "./utils";
32
32
  import { validOptions } from "./ai/functions/validOptions";
33
+ export * from './canvas/utils/utils';
33
34
  export * from './canvas/utils/types';
34
- export { ApexPainter, ApexAI, ApexImagine, ApexChat, validOptions };
35
- export default { ApexPainter, ApexAI, ApexImagine, ApexChat, validOptions };
35
+
36
+ export { ApexPainter, ApexAI, ApexImagine, ApexChat, validOptions };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "apexify.js",
3
- "version": "4.2.4",
3
+ "version": "4.2.5",
4
4
  "description": "Ai and Canvas library. Supports typescript and javascript",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -79,6 +79,10 @@
79
79
  "voice",
80
80
  "ai",
81
81
  "chat bot",
82
+ "speech recognition",
83
+ "voice message",
84
+ "trained ai",
85
+ "trained model",
82
86
  "image",
83
87
  "ai generator",
84
88
  "image generator",
@@ -157,6 +161,7 @@
157
161
  "@napi-rs/canvas": "^0.1.51",
158
162
  "api": "^6.1.1",
159
163
  "gifencoder": "^2.0.1",
164
+ "groq-sdk": "^0.5.0",
160
165
  "hercai": "^12.2.0",
161
166
  "imgur": "^2.4.2",
162
167
  "jimp": "^0.3.11",