apexify.js 4.8.1 → 4.8.2
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/dist/cjs/ai/ApexAI.d.ts +0 -1
- package/dist/cjs/ai/ApexAI.js +56 -64
- package/dist/cjs/ai/ApexModules.d.ts +0 -1
- package/dist/cjs/ai/ApexModules.js +25 -33
- package/dist/cjs/ai/functions/readFiles.d.ts +0 -1
- package/dist/cjs/ai/functions/readFiles.js +11 -51
- package/dist/cjs/ai/functions/tokenizer.d.ts +0 -1
- package/dist/cjs/ai/functions/tokenizer.js +1 -5
- package/dist/cjs/ai/functions/validOptions.d.ts +0 -1
- package/dist/cjs/ai/functions/validOptions.js +13 -23
- package/dist/cjs/ai/modals/electronHub/chatmodels.d.ts +0 -1
- package/dist/cjs/ai/modals/electronHub/chatmodels.js +5 -12
- package/dist/cjs/ai/modals/electronHub/imageModels.d.ts +0 -1
- package/dist/cjs/ai/modals/electronHub/imageModels.js +10 -17
- package/dist/cjs/ai/modals/electronHub/songModels.d.ts +0 -1
- package/dist/cjs/ai/modals/electronHub/songModels.js +1 -3
- package/dist/cjs/ai/modals/electronHub/speechModels.d.ts +0 -1
- package/dist/cjs/ai/modals/electronHub/speechModels.js +7 -14
- package/dist/cjs/ai/modals/electronHub/videoModels.d.ts +0 -1
- package/dist/cjs/ai/modals/electronHub/videoModels.js +5 -12
- package/dist/cjs/ai/modals/groq/chatgroq.d.ts +0 -1
- package/dist/cjs/ai/modals/groq/chatgroq.js +4 -11
- package/dist/cjs/ai/modals/groq/imageAnalyzer.d.ts +0 -1
- package/dist/cjs/ai/modals/groq/imageAnalyzer.js +9 -16
- package/dist/cjs/ai/modals/groq/whisper.d.ts +0 -1
- package/dist/cjs/ai/modals/groq/whisper.js +20 -27
- package/dist/cjs/ai/modals/hercai/chatModels.d.ts +0 -1
- package/dist/cjs/ai/modals/hercai/chatModels.js +3 -7
- package/dist/cjs/ai/utils.d.ts +4 -6
- package/dist/cjs/ai/utils.js +4 -17
- package/dist/cjs/canvas/ApexPainter.d.ts +1 -2
- package/dist/cjs/canvas/ApexPainter.js +93 -101
- package/dist/cjs/canvas/utils/Background/bg.d.ts +1 -2
- package/dist/cjs/canvas/utils/Background/bg.js +8 -18
- package/dist/cjs/canvas/utils/Charts/charts.d.ts +1 -2
- package/dist/cjs/canvas/utils/Charts/charts.js +14 -23
- package/dist/cjs/canvas/utils/Custom/customLines.d.ts +1 -2
- package/dist/cjs/canvas/utils/Custom/customLines.js +4 -8
- package/dist/cjs/canvas/utils/General/conversion.d.ts +0 -1
- package/dist/cjs/canvas/utils/General/conversion.js +7 -15
- package/dist/cjs/canvas/utils/General/general functions.d.ts +1 -2
- package/dist/cjs/canvas/utils/General/general functions.js +48 -64
- package/dist/cjs/canvas/utils/Image/imageProperties.d.ts +1 -2
- package/dist/cjs/canvas/utils/Image/imageProperties.js +9 -21
- package/dist/cjs/canvas/utils/Texts/textProperties.d.ts +1 -2
- package/dist/cjs/canvas/utils/Texts/textProperties.js +3 -9
- package/dist/cjs/canvas/utils/types.d.ts +0 -1
- package/dist/cjs/canvas/utils/types.js +1 -3
- package/dist/cjs/canvas/utils/utils.d.ts +8 -9
- package/dist/cjs/canvas/utils/utils.js +8 -44
- package/dist/cjs/index.d.ts +5 -6
- package/dist/cjs/index.js +15 -65
- package/dist/cjs/utils.d.ts +3 -4
- package/dist/cjs/utils.js +4 -16
- package/dist/esm/ai/ApexAI.d.ts +0 -1
- package/dist/esm/ai/ApexAI.js +56 -64
- package/dist/esm/ai/ApexModules.d.ts +0 -1
- package/dist/esm/ai/ApexModules.js +25 -33
- package/dist/esm/ai/functions/readFiles.d.ts +0 -1
- package/dist/esm/ai/functions/readFiles.js +11 -51
- package/dist/esm/ai/functions/tokenizer.d.ts +0 -1
- package/dist/esm/ai/functions/tokenizer.js +1 -5
- package/dist/esm/ai/functions/validOptions.d.ts +0 -1
- package/dist/esm/ai/functions/validOptions.js +13 -23
- package/dist/esm/ai/modals/electronHub/chatmodels.d.ts +0 -1
- package/dist/esm/ai/modals/electronHub/chatmodels.js +5 -12
- package/dist/esm/ai/modals/electronHub/imageModels.d.ts +0 -1
- package/dist/esm/ai/modals/electronHub/imageModels.js +10 -17
- package/dist/esm/ai/modals/electronHub/songModels.d.ts +0 -1
- package/dist/esm/ai/modals/electronHub/songModels.js +1 -3
- package/dist/esm/ai/modals/electronHub/speechModels.d.ts +0 -1
- package/dist/esm/ai/modals/electronHub/speechModels.js +7 -14
- package/dist/esm/ai/modals/electronHub/videoModels.d.ts +0 -1
- package/dist/esm/ai/modals/electronHub/videoModels.js +5 -12
- package/dist/esm/ai/modals/groq/chatgroq.d.ts +0 -1
- package/dist/esm/ai/modals/groq/chatgroq.js +4 -11
- package/dist/esm/ai/modals/groq/imageAnalyzer.d.ts +0 -1
- package/dist/esm/ai/modals/groq/imageAnalyzer.js +9 -16
- package/dist/esm/ai/modals/groq/whisper.d.ts +0 -1
- package/dist/esm/ai/modals/groq/whisper.js +20 -27
- package/dist/esm/ai/modals/hercai/chatModels.d.ts +0 -1
- package/dist/esm/ai/modals/hercai/chatModels.js +3 -7
- package/dist/esm/ai/utils.d.ts +4 -6
- package/dist/esm/ai/utils.js +4 -17
- package/dist/esm/canvas/ApexPainter.d.ts +1 -2
- package/dist/esm/canvas/ApexPainter.js +93 -101
- package/dist/esm/canvas/utils/Background/bg.d.ts +1 -2
- package/dist/esm/canvas/utils/Background/bg.js +8 -18
- package/dist/esm/canvas/utils/Charts/charts.d.ts +1 -2
- package/dist/esm/canvas/utils/Charts/charts.js +14 -23
- package/dist/esm/canvas/utils/Custom/customLines.d.ts +1 -2
- package/dist/esm/canvas/utils/Custom/customLines.js +4 -8
- package/dist/esm/canvas/utils/General/conversion.d.ts +0 -1
- package/dist/esm/canvas/utils/General/conversion.js +7 -15
- package/dist/esm/canvas/utils/General/general functions.d.ts +1 -2
- package/dist/esm/canvas/utils/General/general functions.js +48 -64
- package/dist/esm/canvas/utils/Image/imageProperties.d.ts +1 -2
- package/dist/esm/canvas/utils/Image/imageProperties.js +9 -21
- package/dist/esm/canvas/utils/Texts/textProperties.d.ts +1 -2
- package/dist/esm/canvas/utils/Texts/textProperties.js +3 -9
- package/dist/esm/canvas/utils/types.d.ts +0 -1
- package/dist/esm/canvas/utils/types.js +1 -3
- package/dist/esm/canvas/utils/utils.d.ts +8 -9
- package/dist/esm/canvas/utils/utils.js +8 -44
- package/dist/esm/index.d.ts +5 -6
- package/dist/esm/index.js +15 -65
- package/dist/esm/utils.d.ts +3 -4
- package/dist/esm/utils.js +4 -16
- package/dist/tsconfig.cjs.tsbuildinfo +1 -0
- package/dist/tsconfig.esm.tsbuildinfo +1 -0
- package/lib/ai/ApexAI.ts +2 -2
- package/lib/ai/ApexModules.ts +8 -8
- package/lib/ai/modals/electronHub/chatmodels.ts +1 -1
- package/lib/ai/modals/electronHub/imageModels.ts +2 -2
- package/lib/ai/modals/electronHub/speechModels.ts +1 -1
- package/lib/ai/utils.ts +3 -5
- package/lib/canvas/ApexPainter.ts +4 -4
- package/lib/canvas/utils/Background/bg.ts +1 -1
- package/lib/canvas/utils/Charts/charts.ts +1 -1
- package/lib/canvas/utils/Custom/customLines.ts +2 -2
- package/lib/canvas/utils/General/general functions.ts +1 -1
- package/lib/canvas/utils/Image/imageProperties.ts +1 -1
- package/lib/canvas/utils/Texts/textProperties.ts +1 -1
- package/lib/canvas/utils/utils.ts +8 -8
- package/lib/index.ts +5 -5
- package/lib/utils.ts +3 -3
- package/package.json +7 -5
- package/dist/cjs/ai/ApexAI.d.ts.map +0 -1
- package/dist/cjs/ai/ApexAI.js.map +0 -1
- package/dist/cjs/ai/ApexModules.d.ts.map +0 -1
- package/dist/cjs/ai/ApexModules.js.map +0 -1
- package/dist/cjs/ai/functions/readFiles.d.ts.map +0 -1
- package/dist/cjs/ai/functions/readFiles.js.map +0 -1
- package/dist/cjs/ai/functions/tokenizer.d.ts.map +0 -1
- package/dist/cjs/ai/functions/tokenizer.js.map +0 -1
- package/dist/cjs/ai/functions/typeWriter.d.ts +0 -2
- package/dist/cjs/ai/functions/typeWriter.d.ts.map +0 -1
- package/dist/cjs/ai/functions/typeWriter.js +0 -24
- package/dist/cjs/ai/functions/typeWriter.js.map +0 -1
- package/dist/cjs/ai/functions/validOptions.d.ts.map +0 -1
- package/dist/cjs/ai/functions/validOptions.js.map +0 -1
- package/dist/cjs/ai/modals/electronHub/chatmodels.d.ts.map +0 -1
- package/dist/cjs/ai/modals/electronHub/chatmodels.js.map +0 -1
- package/dist/cjs/ai/modals/electronHub/imageModels.d.ts.map +0 -1
- package/dist/cjs/ai/modals/electronHub/imageModels.js.map +0 -1
- package/dist/cjs/ai/modals/electronHub/songModels.d.ts.map +0 -1
- package/dist/cjs/ai/modals/electronHub/songModels.js.map +0 -1
- package/dist/cjs/ai/modals/electronHub/speechModels.d.ts.map +0 -1
- package/dist/cjs/ai/modals/electronHub/speechModels.js.map +0 -1
- package/dist/cjs/ai/modals/electronHub/videoModels.d.ts.map +0 -1
- package/dist/cjs/ai/modals/electronHub/videoModels.js.map +0 -1
- package/dist/cjs/ai/modals/groq/chatgroq.d.ts.map +0 -1
- package/dist/cjs/ai/modals/groq/chatgroq.js.map +0 -1
- package/dist/cjs/ai/modals/groq/imageAnalyzer.d.ts.map +0 -1
- package/dist/cjs/ai/modals/groq/imageAnalyzer.js.map +0 -1
- package/dist/cjs/ai/modals/groq/whisper.d.ts.map +0 -1
- package/dist/cjs/ai/modals/groq/whisper.js.map +0 -1
- package/dist/cjs/ai/modals/hercai/chatModels.d.ts.map +0 -1
- package/dist/cjs/ai/modals/hercai/chatModels.js.map +0 -1
- package/dist/cjs/ai/utils.d.ts.map +0 -1
- package/dist/cjs/ai/utils.js.map +0 -1
- package/dist/cjs/canvas/ApexPainter.d.ts.map +0 -1
- package/dist/cjs/canvas/ApexPainter.js.map +0 -1
- package/dist/cjs/canvas/Themes/Level-Up/levelup.d.ts +0 -11
- package/dist/cjs/canvas/Themes/Level-Up/levelup.d.ts.map +0 -1
- package/dist/cjs/canvas/Themes/Level-Up/levelup.js +0 -163
- package/dist/cjs/canvas/Themes/Level-Up/levelup.js.map +0 -1
- package/dist/cjs/canvas/utils/Background/bg.d.ts.map +0 -1
- package/dist/cjs/canvas/utils/Background/bg.js.map +0 -1
- package/dist/cjs/canvas/utils/Charts/charts.d.ts.map +0 -1
- package/dist/cjs/canvas/utils/Charts/charts.js.map +0 -1
- package/dist/cjs/canvas/utils/Custom/customLines.d.ts.map +0 -1
- package/dist/cjs/canvas/utils/Custom/customLines.js.map +0 -1
- package/dist/cjs/canvas/utils/General/conversion.d.ts.map +0 -1
- package/dist/cjs/canvas/utils/General/conversion.js.map +0 -1
- package/dist/cjs/canvas/utils/General/general functions.d.ts.map +0 -1
- package/dist/cjs/canvas/utils/General/general functions.js.map +0 -1
- package/dist/cjs/canvas/utils/Image/imageProperties.d.ts.map +0 -1
- package/dist/cjs/canvas/utils/Image/imageProperties.js.map +0 -1
- package/dist/cjs/canvas/utils/Texts/textProperties.d.ts.map +0 -1
- package/dist/cjs/canvas/utils/Texts/textProperties.js.map +0 -1
- package/dist/cjs/canvas/utils/types.d.ts.map +0 -1
- package/dist/cjs/canvas/utils/types.js.map +0 -1
- package/dist/cjs/canvas/utils/utils.d.ts.map +0 -1
- package/dist/cjs/canvas/utils/utils.js.map +0 -1
- package/dist/cjs/index.d.ts.map +0 -1
- package/dist/cjs/index.js.map +0 -1
- package/dist/cjs/tsconfig.cjs.tsbuildinfo +0 -1
- package/dist/cjs/utils.d.ts.map +0 -1
- package/dist/cjs/utils.js.map +0 -1
- package/dist/esm/ai/ApexAI.d.ts.map +0 -1
- package/dist/esm/ai/ApexAI.js.map +0 -1
- package/dist/esm/ai/ApexModules.d.ts.map +0 -1
- package/dist/esm/ai/ApexModules.js.map +0 -1
- package/dist/esm/ai/functions/readFiles.d.ts.map +0 -1
- package/dist/esm/ai/functions/readFiles.js.map +0 -1
- package/dist/esm/ai/functions/tokenizer.d.ts.map +0 -1
- package/dist/esm/ai/functions/tokenizer.js.map +0 -1
- package/dist/esm/ai/functions/typeWriter.d.ts +0 -2
- package/dist/esm/ai/functions/typeWriter.d.ts.map +0 -1
- package/dist/esm/ai/functions/typeWriter.js +0 -24
- package/dist/esm/ai/functions/typeWriter.js.map +0 -1
- package/dist/esm/ai/functions/validOptions.d.ts.map +0 -1
- package/dist/esm/ai/functions/validOptions.js.map +0 -1
- package/dist/esm/ai/modals/electronHub/chatmodels.d.ts.map +0 -1
- package/dist/esm/ai/modals/electronHub/chatmodels.js.map +0 -1
- package/dist/esm/ai/modals/electronHub/imageModels.d.ts.map +0 -1
- package/dist/esm/ai/modals/electronHub/imageModels.js.map +0 -1
- package/dist/esm/ai/modals/electronHub/songModels.d.ts.map +0 -1
- package/dist/esm/ai/modals/electronHub/songModels.js.map +0 -1
- package/dist/esm/ai/modals/electronHub/speechModels.d.ts.map +0 -1
- package/dist/esm/ai/modals/electronHub/speechModels.js.map +0 -1
- package/dist/esm/ai/modals/electronHub/videoModels.d.ts.map +0 -1
- package/dist/esm/ai/modals/electronHub/videoModels.js.map +0 -1
- package/dist/esm/ai/modals/groq/chatgroq.d.ts.map +0 -1
- package/dist/esm/ai/modals/groq/chatgroq.js.map +0 -1
- package/dist/esm/ai/modals/groq/imageAnalyzer.d.ts.map +0 -1
- package/dist/esm/ai/modals/groq/imageAnalyzer.js.map +0 -1
- package/dist/esm/ai/modals/groq/whisper.d.ts.map +0 -1
- package/dist/esm/ai/modals/groq/whisper.js.map +0 -1
- package/dist/esm/ai/modals/hercai/chatModels.d.ts.map +0 -1
- package/dist/esm/ai/modals/hercai/chatModels.js.map +0 -1
- package/dist/esm/ai/utils.d.ts.map +0 -1
- package/dist/esm/ai/utils.js.map +0 -1
- package/dist/esm/canvas/ApexPainter.d.ts.map +0 -1
- package/dist/esm/canvas/ApexPainter.js.map +0 -1
- package/dist/esm/canvas/Themes/Level-Up/levelup.d.ts +0 -11
- package/dist/esm/canvas/Themes/Level-Up/levelup.d.ts.map +0 -1
- package/dist/esm/canvas/Themes/Level-Up/levelup.js +0 -163
- package/dist/esm/canvas/Themes/Level-Up/levelup.js.map +0 -1
- package/dist/esm/canvas/utils/Background/bg.d.ts.map +0 -1
- package/dist/esm/canvas/utils/Background/bg.js.map +0 -1
- package/dist/esm/canvas/utils/Charts/charts.d.ts.map +0 -1
- package/dist/esm/canvas/utils/Charts/charts.js.map +0 -1
- package/dist/esm/canvas/utils/Custom/customLines.d.ts.map +0 -1
- package/dist/esm/canvas/utils/Custom/customLines.js.map +0 -1
- package/dist/esm/canvas/utils/General/conversion.d.ts.map +0 -1
- package/dist/esm/canvas/utils/General/conversion.js.map +0 -1
- package/dist/esm/canvas/utils/General/general functions.d.ts.map +0 -1
- package/dist/esm/canvas/utils/General/general functions.js.map +0 -1
- package/dist/esm/canvas/utils/Image/imageProperties.d.ts.map +0 -1
- package/dist/esm/canvas/utils/Image/imageProperties.js.map +0 -1
- package/dist/esm/canvas/utils/Texts/textProperties.d.ts.map +0 -1
- package/dist/esm/canvas/utils/Texts/textProperties.js.map +0 -1
- package/dist/esm/canvas/utils/types.d.ts.map +0 -1
- package/dist/esm/canvas/utils/types.js.map +0 -1
- package/dist/esm/canvas/utils/utils.d.ts.map +0 -1
- package/dist/esm/canvas/utils/utils.js.map +0 -1
- package/dist/esm/index.d.ts.map +0 -1
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/tsconfig.esm.tsbuildinfo +0 -1
- package/dist/esm/utils.d.ts.map +0 -1
- package/dist/esm/utils.js.map +0 -1
- package/lib/ai/functions/typeWriter.ts +0 -24
- package/lib/canvas/Themes/Level-Up/levelup.ts +0 -183
package/dist/cjs/ai/ApexAI.d.ts
CHANGED
|
@@ -142,4 +142,3 @@ export interface Options {
|
|
|
142
142
|
}
|
|
143
143
|
export declare function ApexAI(message: Message, ApexOptions: Options): Promise<any>;
|
|
144
144
|
export declare function handleVoiceAI(message: any, voiceChannelId: string, chat: any, modelName?: string, personality?: string): Promise<any>;
|
|
145
|
-
//# sourceMappingURL=ApexAI.d.ts.map
|
package/dist/cjs/ai/ApexAI.js
CHANGED
|
@@ -1,39 +1,32 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
const voice_1 = require("@discordjs/voice");
|
|
11
|
-
const whisper_1 = require("./modals/groq/whisper");
|
|
12
|
-
const stream_1 = require("stream");
|
|
13
|
-
const prism_media_1 = __importDefault(require("prism-media"));
|
|
14
|
-
const path_1 = __importDefault(require("path"));
|
|
15
|
-
const fs_1 = __importDefault(require("fs"));
|
|
16
|
-
const child_process_1 = require("child_process");
|
|
1
|
+
import { groqAnalyzer, readFile, ApexImagine, ApexText2Speech, ApexListener, ApexChat } from "./utils.js";
|
|
2
|
+
import { ActionRowBuilder, EmbedBuilder, AttachmentBuilder, ButtonStyle, ButtonBuilder, PermissionFlagsBits } from "discord.js";
|
|
3
|
+
import { joinVoiceChannel, createAudioPlayer, createAudioResource, EndBehaviorType, AudioPlayerStatus } from "@discordjs/voice";
|
|
4
|
+
import { whisper } from "./modals/groq/whisper.js";
|
|
5
|
+
import { pipeline, Readable } from "stream";
|
|
6
|
+
import prism from "prism-media";
|
|
7
|
+
import path from "path";
|
|
8
|
+
import fs from "fs";
|
|
9
|
+
import { execSync } from "child_process";
|
|
17
10
|
function createButtonRows(buttons) {
|
|
18
11
|
if (!Array.isArray(buttons) || buttons.length === 0)
|
|
19
12
|
return [];
|
|
20
13
|
const buttonRows = [];
|
|
21
|
-
let currentRow = new
|
|
14
|
+
let currentRow = new ActionRowBuilder();
|
|
22
15
|
for (const button of buttons) {
|
|
23
16
|
if (!button.label || !button.style || !button.custom_id)
|
|
24
17
|
continue;
|
|
25
|
-
const buttonComponent = new
|
|
18
|
+
const buttonComponent = new ButtonBuilder()
|
|
26
19
|
.setLabel(button.label)
|
|
27
20
|
.setStyle(button.style)
|
|
28
21
|
.setCustomId(button.custom_id);
|
|
29
22
|
if (button.emoji)
|
|
30
23
|
buttonComponent.setEmoji(button.emoji);
|
|
31
|
-
if (button.url && button.style ===
|
|
24
|
+
if (button.url && button.style === ButtonStyle.Link)
|
|
32
25
|
buttonComponent.setURL(button.url);
|
|
33
26
|
currentRow.addComponents(buttonComponent);
|
|
34
27
|
if (currentRow.components.length === 5) {
|
|
35
28
|
buttonRows.push(currentRow);
|
|
36
|
-
currentRow = new
|
|
29
|
+
currentRow = new ActionRowBuilder();
|
|
37
30
|
}
|
|
38
31
|
}
|
|
39
32
|
if (currentRow.components.length > 0) {
|
|
@@ -41,7 +34,7 @@ function createButtonRows(buttons) {
|
|
|
41
34
|
}
|
|
42
35
|
return buttonRows.slice(0, 5);
|
|
43
36
|
}
|
|
44
|
-
async function ApexAI(message, ApexOptions) {
|
|
37
|
+
export async function ApexAI(message, ApexOptions) {
|
|
45
38
|
if (!message.guild || message.author.bot)
|
|
46
39
|
return;
|
|
47
40
|
let prompt = message.content || "";
|
|
@@ -87,18 +80,18 @@ async function ApexAI(message, ApexOptions) {
|
|
|
87
80
|
console.error("Audio file exceeds 25MB.");
|
|
88
81
|
continue;
|
|
89
82
|
}
|
|
90
|
-
prompt += `\n> Transcribed from audio:\n${await
|
|
83
|
+
prompt += `\n> Transcribed from audio:\n${await whisper(prompt, url)}`;
|
|
91
84
|
}
|
|
92
85
|
else if (["image/png", "image/jpeg", "image/jpg", "image/webp"].includes(contentType)) {
|
|
93
86
|
if (!Api_Keys?.groq_API) {
|
|
94
87
|
console.error("Missing Groq API Key.");
|
|
95
88
|
continue;
|
|
96
89
|
}
|
|
97
|
-
prompt += `\n> Image analysis:\n${await
|
|
90
|
+
prompt += `\n> Image analysis:\n${await groqAnalyzer({ img: url, ApiKey: Api_Keys.groq_API })}`;
|
|
98
91
|
}
|
|
99
92
|
else if (attachment.name.endsWith(".pdf") || attachment.name.endsWith(".txt")) {
|
|
100
93
|
const fileType = attachment.name.endsWith(".pdf") ? "pdf" : "txt";
|
|
101
|
-
const fileContent = await
|
|
94
|
+
const fileContent = await readFile(url, fileType);
|
|
102
95
|
prompt += `\n\n- 📜 ${attachment.name} content:\n${fileContent}`;
|
|
103
96
|
}
|
|
104
97
|
else {
|
|
@@ -120,7 +113,7 @@ async function ApexAI(message, ApexOptions) {
|
|
|
120
113
|
prevReply += fetchedMessage.content || "";
|
|
121
114
|
const firstAttachment = fetchedMessage.attachments?.first();
|
|
122
115
|
if (firstAttachment && /\.(png|jpg|jpeg|webp)$/i.test(firstAttachment.url)) {
|
|
123
|
-
prevReply += await
|
|
116
|
+
prevReply += await groqAnalyzer({
|
|
124
117
|
img: firstAttachment.url,
|
|
125
118
|
ApiKey: Api_Keys?.groq_API,
|
|
126
119
|
prompt,
|
|
@@ -167,14 +160,14 @@ async function ApexAI(message, ApexOptions) {
|
|
|
167
160
|
let tempEnhancer;
|
|
168
161
|
if (enhancer) {
|
|
169
162
|
const enhancementRequest = `Rewrite this text below in a more descriptive way, making it clearer to be visualized correctly by an AI image generator. Use stronger words and return only the enhanced prompt—nothing more, nothing less.\n\n`;
|
|
170
|
-
tempEnhancer = await
|
|
163
|
+
tempEnhancer = await ApexChat("gpt-4-turbo", prompt, { instruction: enhancementRequest });
|
|
171
164
|
}
|
|
172
|
-
genImage = await
|
|
165
|
+
genImage = await ApexImagine(imagine?.imageModel, tempEnhancer || prompt, { width: imagine?.enhancer?.width, height: imagine?.enhancer?.height, format: imagine?.enhancer?.format,
|
|
173
166
|
quality: imagine?.enhancer?.quality, negative_prompt: imagine?.enhancer?.negative_prompt, nsfw: imagine?.nsfw?.enable,
|
|
174
167
|
nsfwWords: imagine?.nsfw?.keywords, deepCheck: imagine?.nsfw?.deepCheck, count: imagine?.numOfImages });
|
|
175
168
|
instruction += `\n\nThe image has already been generated. Do not attempt to generate or describe another image. Instead, provide feedback, thoughts, or a critique based on the given prompt:\n\n`;
|
|
176
169
|
}
|
|
177
|
-
aiResponse = await
|
|
170
|
+
aiResponse = await ApexChat(chat?.chatModel, prompt, { instruction, memory: chat?.memory?.memoryOn, userId: chat?.memory?.id, limit: chat?.memory?.limit, threshold: chat?.memory?.threshold });
|
|
178
171
|
}
|
|
179
172
|
else if (voiceEnabled) {
|
|
180
173
|
let instruction = chat?.instruction;
|
|
@@ -183,24 +176,24 @@ async function ApexAI(message, ApexOptions) {
|
|
|
183
176
|
let tempEnhancer;
|
|
184
177
|
if (enhancer) {
|
|
185
178
|
const enhancementRequest = `Rewrite this text below in a more descriptive way, making it clearer to be visualized correctly by an AI image generator. Use stronger words and return only the enhanced prompt—nothing more, nothing less.\n\n`;
|
|
186
|
-
tempEnhancer = await
|
|
179
|
+
tempEnhancer = await ApexChat("gpt-4-turbo", prompt, { instruction: enhancementRequest });
|
|
187
180
|
}
|
|
188
|
-
genImage = await
|
|
181
|
+
genImage = await ApexImagine(imagine?.imageModel, tempEnhancer || prompt, { width: enhancer?.width, height: enhancer?.height, format: enhancer?.format,
|
|
189
182
|
quality: enhancer?.quality, negative_prompt: enhancer?.negative_prompt, nsfw: nsfw?.enable,
|
|
190
183
|
nsfwWords: nsfw?.keywords, deepCheck: nsfw?.deepCheck, count: imagine?.numOfImages });
|
|
191
184
|
instruction += `\n\nThe image has already been generated. Do not attempt to generate or describe another image. Instead, provide feedback, thoughts, or a critique based on the given prompt:\n\n`;
|
|
192
185
|
}
|
|
193
|
-
aiResponse = await
|
|
194
|
-
aiResponse = await
|
|
186
|
+
aiResponse = await ApexChat(chat?.chatModel, prompt, { instruction, memory: chat?.memory?.memoryOn, userId: chat?.memory?.id, limit: chat?.memory?.limit, threshold: chat?.memory?.threshold });
|
|
187
|
+
aiResponse = await ApexText2Speech({ modelName: voice?.voiceModel, inputText: aiResponse, personality: voice?.characterName });
|
|
195
188
|
}
|
|
196
189
|
else if (imageEnabled && drawTrigger) {
|
|
197
190
|
const enhancer = imagine?.enhancer?.enable ? imagine.enhancer : undefined;
|
|
198
191
|
let tempEnhancer;
|
|
199
192
|
if (enhancer) {
|
|
200
193
|
const enhancementRequest = `Rewrite this text below in a more descriptive way, making it clearer to be visualized correctly by an AI image generator. Use stronger words and return only the enhanced prompt—nothing more, nothing less.\n\n${prompt}`;
|
|
201
|
-
tempEnhancer = await
|
|
194
|
+
tempEnhancer = await ApexChat("gpt-4-turbo", prompt, { instruction: enhancementRequest });
|
|
202
195
|
}
|
|
203
|
-
genImage = await
|
|
196
|
+
genImage = await ApexImagine(imagine?.imageModel, tempEnhancer || prompt, { width: enhancer?.width, height: enhancer?.height, format: enhancer?.format,
|
|
204
197
|
quality: enhancer?.quality, negative_prompt: enhancer?.negative_prompt, nsfw: nsfw?.enable,
|
|
205
198
|
nsfwWords: nsfw?.keywords, deepCheck: nsfw?.deepCheck, count: imagine?.numOfImages });
|
|
206
199
|
}
|
|
@@ -214,12 +207,12 @@ async function ApexAI(message, ApexOptions) {
|
|
|
214
207
|
const imageAttachments = [];
|
|
215
208
|
if (genImage.length > 0) {
|
|
216
209
|
for (const imageUrl of genImage) {
|
|
217
|
-
imageAttachments.push(new
|
|
210
|
+
imageAttachments.push(new AttachmentBuilder(imageUrl, { name: `image-${Date.now()}.png` }));
|
|
218
211
|
}
|
|
219
212
|
}
|
|
220
213
|
let voiceAttachment = null;
|
|
221
214
|
if (voiceEnabled && aiResponse instanceof Buffer) {
|
|
222
|
-
voiceAttachment = new
|
|
215
|
+
voiceAttachment = new AttachmentBuilder(aiResponse, { name: "ai_voice.mp3" });
|
|
223
216
|
}
|
|
224
217
|
const chunkMessage = (text, maxLength = 2000) => {
|
|
225
218
|
const chunks = [];
|
|
@@ -241,7 +234,7 @@ async function ApexAI(message, ApexOptions) {
|
|
|
241
234
|
if (!content.trim())
|
|
242
235
|
return;
|
|
243
236
|
if (messageType?.sendAs === "embed") {
|
|
244
|
-
const embed = new
|
|
237
|
+
const embed = new EmbedBuilder()
|
|
245
238
|
.setColor(0x0099ff)
|
|
246
239
|
.setDescription(content)
|
|
247
240
|
.setFooter({ text: "AI Response" });
|
|
@@ -325,12 +318,12 @@ let voiceConnection = null;
|
|
|
325
318
|
let activeUser = null;
|
|
326
319
|
let isRecording = false;
|
|
327
320
|
let silenceTimer = null;
|
|
328
|
-
const recordingsDir =
|
|
329
|
-
if (!
|
|
330
|
-
|
|
321
|
+
const recordingsDir = path.join(process.cwd(), "recordings");
|
|
322
|
+
if (!fs.existsSync(recordingsDir)) {
|
|
323
|
+
fs.mkdirSync(recordingsDir, { recursive: true });
|
|
331
324
|
}
|
|
332
325
|
try {
|
|
333
|
-
|
|
326
|
+
execSync("ffmpeg -version > nul 2>&1");
|
|
334
327
|
}
|
|
335
328
|
catch (err) {
|
|
336
329
|
console.error("🚨 FFmpeg is NOT installed or not in PATH! Install it first.");
|
|
@@ -339,7 +332,7 @@ function resetSilenceTimer() {
|
|
|
339
332
|
if (silenceTimer)
|
|
340
333
|
clearTimeout(silenceTimer);
|
|
341
334
|
}
|
|
342
|
-
async function handleVoiceAI(message, voiceChannelId, chat, modelName, personality) {
|
|
335
|
+
export async function handleVoiceAI(message, voiceChannelId, chat, modelName, personality) {
|
|
343
336
|
const guild = message.guild;
|
|
344
337
|
if (!guild)
|
|
345
338
|
return;
|
|
@@ -351,16 +344,16 @@ async function handleVoiceAI(message, voiceChannelId, chat, modelName, personali
|
|
|
351
344
|
if (!botMember)
|
|
352
345
|
return;
|
|
353
346
|
const permissions = channel.permissionsFor(botMember);
|
|
354
|
-
if (!permissions?.has(
|
|
355
|
-
!permissions.has(
|
|
356
|
-
!permissions.has(
|
|
357
|
-
!permissions.has(
|
|
347
|
+
if (!permissions?.has(PermissionFlagsBits.Connect) ||
|
|
348
|
+
!permissions.has(PermissionFlagsBits.Speak) ||
|
|
349
|
+
!permissions.has(PermissionFlagsBits.Stream) ||
|
|
350
|
+
!permissions.has(PermissionFlagsBits.UseVAD)) {
|
|
358
351
|
return await message.reply("🚫 I don't have the required permissions to join and speak in this voice channel.");
|
|
359
352
|
}
|
|
360
353
|
if (voiceConnection) {
|
|
361
354
|
return await message.reply("⚠️ AI is already in a voice channel.");
|
|
362
355
|
}
|
|
363
|
-
voiceConnection =
|
|
356
|
+
voiceConnection = joinVoiceChannel({
|
|
364
357
|
channelId: channel.id,
|
|
365
358
|
guildId: guild.id,
|
|
366
359
|
adapterCreator: guild.voiceAdapterCreator,
|
|
@@ -378,18 +371,18 @@ function captureAudio(connection, chat, modelName, personality) {
|
|
|
378
371
|
isRecording = false;
|
|
379
372
|
}
|
|
380
373
|
resetSilenceTimer();
|
|
381
|
-
const rawFilePath =
|
|
382
|
-
const wavFilePath =
|
|
374
|
+
const rawFilePath = path.join(recordingsDir, `${userId}.pcm`);
|
|
375
|
+
const wavFilePath = path.join(recordingsDir, `${userId}.wav`);
|
|
383
376
|
const opusStream = receiver.subscribe(userId, {
|
|
384
|
-
end: { behavior:
|
|
377
|
+
end: { behavior: EndBehaviorType.AfterSilence, duration: 2000 }
|
|
385
378
|
});
|
|
386
|
-
const pcmStream = new
|
|
379
|
+
const pcmStream = new prism.opus.Decoder({
|
|
387
380
|
frameSize: 960,
|
|
388
381
|
channels: 1,
|
|
389
382
|
rate: 48000
|
|
390
383
|
});
|
|
391
|
-
const writeStream =
|
|
392
|
-
|
|
384
|
+
const writeStream = fs.createWriteStream(rawFilePath);
|
|
385
|
+
pipeline(opusStream, pcmStream, writeStream, (err) => {
|
|
393
386
|
if (err) {
|
|
394
387
|
console.error("❌ Error writing PCM file:", err);
|
|
395
388
|
return;
|
|
@@ -419,12 +412,12 @@ function startSilenceTimer(chat, modelName, personality) {
|
|
|
419
412
|
}, 5000);
|
|
420
413
|
}
|
|
421
414
|
function convertPCMtoWAV(inputPCM, outputWAV, chat, modelName, personality) {
|
|
422
|
-
if (!
|
|
415
|
+
if (!fs.existsSync(inputPCM) || fs.statSync(inputPCM).size === 0) {
|
|
423
416
|
return;
|
|
424
417
|
}
|
|
425
418
|
try {
|
|
426
|
-
|
|
427
|
-
if (
|
|
419
|
+
execSync(`ffmpeg -y -f s16le -ar 48000 -ac 1 -i "${inputPCM}" -acodec pcm_s16le "${outputWAV}" > nul 2>&1`);
|
|
420
|
+
if (fs.existsSync(outputWAV)) {
|
|
428
421
|
transcribeAudio(outputWAV, chat, modelName, personality);
|
|
429
422
|
}
|
|
430
423
|
}
|
|
@@ -434,7 +427,7 @@ function convertPCMtoWAV(inputPCM, outputWAV, chat, modelName, personality) {
|
|
|
434
427
|
}
|
|
435
428
|
async function transcribeAudio(filePath, chat, modelName, personality) {
|
|
436
429
|
try {
|
|
437
|
-
const transcribedText = await
|
|
430
|
+
const transcribedText = await ApexListener({
|
|
438
431
|
filepath: filePath,
|
|
439
432
|
prompt: "Transcribe what the user said in English.",
|
|
440
433
|
lang: "en"
|
|
@@ -443,7 +436,7 @@ async function transcribeAudio(filePath, chat, modelName, personality) {
|
|
|
443
436
|
voiceQueue.push({ userId: activeUser || "unknown", text: transcribedText.transcribe });
|
|
444
437
|
processQueue(chat, modelName, personality);
|
|
445
438
|
}
|
|
446
|
-
|
|
439
|
+
fs.unlinkSync(filePath);
|
|
447
440
|
}
|
|
448
441
|
catch (error) {
|
|
449
442
|
console.error("❌ Error in transcription:", error);
|
|
@@ -457,20 +450,20 @@ async function processQueue(chat, modelName, personality) {
|
|
|
457
450
|
activeUser = userId;
|
|
458
451
|
resetSilenceTimer();
|
|
459
452
|
try {
|
|
460
|
-
const aiResponse = await
|
|
453
|
+
const aiResponse = await ApexChat(chat?.chatModel || "gpt-4o", text, {
|
|
461
454
|
instruction: chat.instruction,
|
|
462
455
|
memory: chat?.memory?.memoryOn,
|
|
463
456
|
userId,
|
|
464
457
|
limit: chat?.memory?.limit,
|
|
465
458
|
threshold: chat?.memory?.threshold
|
|
466
459
|
});
|
|
467
|
-
const audioBuffer = await
|
|
460
|
+
const audioBuffer = await ApexText2Speech({ inputText: aiResponse, modelName, personality });
|
|
468
461
|
if (voiceConnection) {
|
|
469
|
-
const player =
|
|
470
|
-
const resource =
|
|
462
|
+
const player = createAudioPlayer();
|
|
463
|
+
const resource = createAudioResource(Readable.from(audioBuffer));
|
|
471
464
|
voiceConnection.subscribe(player);
|
|
472
465
|
player.play(resource);
|
|
473
|
-
player.on(
|
|
466
|
+
player.on(AudioPlayerStatus.Idle, () => {
|
|
474
467
|
isProcessing = false;
|
|
475
468
|
if (voiceQueue.length > 0) {
|
|
476
469
|
processQueue(chat, modelName, personality);
|
|
@@ -491,4 +484,3 @@ function leaveVoiceChannel() {
|
|
|
491
484
|
resetSilenceTimer();
|
|
492
485
|
}
|
|
493
486
|
}
|
|
494
|
-
//# sourceMappingURL=ApexAI.js.map
|
|
@@ -1,34 +1,26 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
const verse_db_1 = require("verse.db");
|
|
13
|
-
const chatgroq_1 = require("./modals/groq/chatgroq");
|
|
14
|
-
const utils_1 = require("./utils");
|
|
15
|
-
const imageModels_1 = require("./modals/electronHub/imageModels");
|
|
16
|
-
const chatmodels_1 = require("./modals/electronHub/chatmodels");
|
|
17
|
-
const speechModels_1 = require("./modals/electronHub/speechModels");
|
|
18
|
-
const videoModels_1 = require("./modals/electronHub/videoModels");
|
|
19
|
-
const generative_ai_1 = require("@google/generative-ai");
|
|
1
|
+
import { Hercai } from 'hercai';
|
|
2
|
+
import { validateModels } from "./functions/validOptions.js";
|
|
3
|
+
import { whisper } from './modals/groq/whisper.js';
|
|
4
|
+
import { connect } from 'verse.db';
|
|
5
|
+
import { chatGroq } from './modals/groq/chatgroq.js';
|
|
6
|
+
import { groqAnalyzer } from './utils.js';
|
|
7
|
+
import { electronImagine } from './modals/electronHub/imageModels.js';
|
|
8
|
+
import { electronChat } from './modals/electronHub/chatmodels.js';
|
|
9
|
+
import { electronSpeech } from './modals/electronHub/speechModels.js';
|
|
10
|
+
import { electronVideo } from './modals/electronHub/videoModels.js';
|
|
11
|
+
import { GoogleGenerativeAI } from "@google/generative-ai";
|
|
20
12
|
const dbConfig = {
|
|
21
13
|
adapter: 'json',
|
|
22
14
|
dataPath: 'Ai_Chat-History'
|
|
23
15
|
};
|
|
24
|
-
const db = new
|
|
25
|
-
const hercai = new
|
|
16
|
+
const db = new connect(dbConfig);
|
|
17
|
+
const hercai = new Hercai('6eZZOdDwm6Epdzn8mnhcX9SBDkxvoNYcNj9ILS0P44=');
|
|
26
18
|
async function ApexImagine(model, prompt, options) {
|
|
27
19
|
let imageURL = '';
|
|
28
20
|
let response = [];
|
|
29
|
-
const imageType = await
|
|
21
|
+
const imageType = await validateModels();
|
|
30
22
|
const { Api_Key = 'eaebff6e-c7b2-477c-8edd-9aa91becf1e3', nsfw = false, deepCheck = false, nsfwWords = [], count = 2, negative_prompt = "", sampler = "DPM++ 2M Karras", height = 1024, width = 1024, cfg_scale = 9, steps = 20, seed = -1, image_style = "cinematic" } = options ?? {};
|
|
31
|
-
const translatedText = await
|
|
23
|
+
const translatedText = await electronChat({ modelName: 'gpt-4o', prompt: `Translate The text below into english:\n\n${prompt}` });
|
|
32
24
|
if (count > 4 || count <= 0)
|
|
33
25
|
throw new Error("Inavlid usage. Count can't be less than 0 or more than 4.");
|
|
34
26
|
if ((width || height) <= 0)
|
|
@@ -56,7 +48,7 @@ async function ApexImagine(model, prompt, options) {
|
|
|
56
48
|
}
|
|
57
49
|
}
|
|
58
50
|
else if (imageType.validElectronModels.includes(model)) {
|
|
59
|
-
const gen = await
|
|
51
|
+
const gen = await electronImagine({ ApiKey: Api_Key, prompt: translatedText, modelName: model, resizeOptions: { height, width, format: options?.format, quality: options?.quality } });
|
|
60
52
|
if (gen === null)
|
|
61
53
|
throw new Error('this model reached rate limit. Provide your own api key from: "https://discord.gg/94qUZWhwFE"');
|
|
62
54
|
imageURL = gen;
|
|
@@ -553,7 +545,7 @@ async function ApexImagine(model, prompt, options) {
|
|
|
553
545
|
];
|
|
554
546
|
let shouldExclude = false;
|
|
555
547
|
if (nsfw === true) {
|
|
556
|
-
const caption = await
|
|
548
|
+
const caption = await groqAnalyzer({ img: imageURL, prompt });
|
|
557
549
|
if (!caption)
|
|
558
550
|
return;
|
|
559
551
|
shouldExclude = NSFWWORDS.some(word => caption.includes(word));
|
|
@@ -614,7 +606,7 @@ async function ApexChat(model, prompt, { userId, memory, limit, instruction, Api
|
|
|
614
606
|
return '';
|
|
615
607
|
}
|
|
616
608
|
}
|
|
617
|
-
const genAI = new
|
|
609
|
+
const genAI = new GoogleGenerativeAI('AIzaSyAdlBVg12yjqqGfBqxT5DLGMhP2jysG7Hk');
|
|
618
610
|
const model = genAI.getGenerativeModel({ model: "text-embedding-004" });
|
|
619
611
|
async function getRelevantHistoryAI(prompt, history, maxResults, threshold = 0.7) {
|
|
620
612
|
const trimmedPrompt = prompt.length > 20000 ? prompt.slice(0, 10000) + "..." + prompt.slice(-10000) : prompt;
|
|
@@ -714,7 +706,7 @@ async function resetHistory({ id, last }) {
|
|
|
714
706
|
}
|
|
715
707
|
}
|
|
716
708
|
async function processChunk(model, prompt, { ApiKey, personality }) {
|
|
717
|
-
const validOptions = await
|
|
709
|
+
const validOptions = await validateModels();
|
|
718
710
|
let response;
|
|
719
711
|
switch (true) {
|
|
720
712
|
case validOptions.validHercChatModels.includes(model):
|
|
@@ -725,7 +717,7 @@ async function processChunk(model, prompt, { ApiKey, personality }) {
|
|
|
725
717
|
})).reply;
|
|
726
718
|
break;
|
|
727
719
|
case validOptions.validGroqChatModels.includes(model):
|
|
728
|
-
response = await
|
|
720
|
+
response = await chatGroq({
|
|
729
721
|
API_KEY: ApiKey,
|
|
730
722
|
apiName: model,
|
|
731
723
|
prompt,
|
|
@@ -733,7 +725,7 @@ async function processChunk(model, prompt, { ApiKey, personality }) {
|
|
|
733
725
|
});
|
|
734
726
|
break;
|
|
735
727
|
case validOptions.validElectronModels.includes(model):
|
|
736
|
-
response = (await
|
|
728
|
+
response = (await electronChat({
|
|
737
729
|
ApiKey,
|
|
738
730
|
prompt,
|
|
739
731
|
instruction: personality,
|
|
@@ -751,7 +743,7 @@ async function ApexListener(options) {
|
|
|
751
743
|
if (!validatedLang) {
|
|
752
744
|
throw new Error(`Unsupported language: ${lang}. Please provide a valid ISO 639-1 language code or language name.`);
|
|
753
745
|
}
|
|
754
|
-
const transcribe = await
|
|
746
|
+
const transcribe = await whisper(prompt, filepath, validatedLang, apiKey);
|
|
755
747
|
const enhancer = `Below is the the speech/text that has been said in the voice/audio file.\n\n${transcribe}`;
|
|
756
748
|
let response = "";
|
|
757
749
|
if (model)
|
|
@@ -811,9 +803,9 @@ function validateLanguageInput(lang) {
|
|
|
811
803
|
async function ApexText2Speech({ ApiKey, inputText, modelName, personality }) {
|
|
812
804
|
const maxLength = 3000;
|
|
813
805
|
const trimmedInput = inputText.length > maxLength ? inputText.slice(0, maxLength) : inputText;
|
|
814
|
-
return await
|
|
806
|
+
return await electronSpeech({ ApiKey, inputText: trimmedInput, modelName, personality });
|
|
815
807
|
}
|
|
816
808
|
async function ApexVideo({ ApiKey, prompt, modelName }) {
|
|
817
|
-
return await
|
|
809
|
+
return await electronVideo({ ApiKey, prompt, modelName });
|
|
818
810
|
}
|
|
819
|
-
|
|
811
|
+
export { ApexImagine, ApexChat, ApexListener, ApexText2Speech, ApexVideo, resetHistory };
|
|
@@ -1,50 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
-
};
|
|
38
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports.readFile = readFile;
|
|
40
|
-
const pdf_parse_1 = __importDefault(require("pdf-parse"));
|
|
41
|
-
const fs = __importStar(require("fs"));
|
|
42
|
-
const https = __importStar(require("https"));
|
|
43
|
-
const fs_1 = require("fs");
|
|
44
|
-
const util_1 = require("util");
|
|
45
|
-
const path_1 = __importDefault(require("path"));
|
|
46
|
-
const readFileAsync = (0, util_1.promisify)(fs.readFile);
|
|
47
|
-
async function readFile(pathOrUrl, type) {
|
|
1
|
+
import pdf from "pdf-parse";
|
|
2
|
+
import * as fs from "fs";
|
|
3
|
+
import * as https from "https";
|
|
4
|
+
import { createWriteStream } from "fs";
|
|
5
|
+
import { promisify } from "util";
|
|
6
|
+
import path from "path";
|
|
7
|
+
const readFileAsync = promisify(fs.readFile);
|
|
8
|
+
export async function readFile(pathOrUrl, type) {
|
|
48
9
|
const buffer = await loadFile(pathOrUrl);
|
|
49
10
|
const ext = type || getFileExtension(pathOrUrl);
|
|
50
11
|
switch (ext) {
|
|
@@ -57,7 +18,7 @@ async function readFile(pathOrUrl, type) {
|
|
|
57
18
|
function getFileExtension(pathOrUrl) {
|
|
58
19
|
const parsedPath = new URL(pathOrUrl, "file://");
|
|
59
20
|
const pathname = parsedPath.pathname || pathOrUrl;
|
|
60
|
-
const ext =
|
|
21
|
+
const ext = path.extname(pathname).toLowerCase();
|
|
61
22
|
return ext ? ext.slice(1) : undefined;
|
|
62
23
|
}
|
|
63
24
|
async function loadFile(pathOrUrl) {
|
|
@@ -68,7 +29,7 @@ function isUrl(pathOrUrl) {
|
|
|
68
29
|
}
|
|
69
30
|
async function downloadFile(url) {
|
|
70
31
|
const tempFilePath = "temp";
|
|
71
|
-
const file =
|
|
32
|
+
const file = createWriteStream(tempFilePath);
|
|
72
33
|
await new Promise((resolve, reject) => {
|
|
73
34
|
https.get(url, (response) => {
|
|
74
35
|
// @ts-ignore
|
|
@@ -83,7 +44,7 @@ async function downloadFile(url) {
|
|
|
83
44
|
}
|
|
84
45
|
async function readPdf(buffer) {
|
|
85
46
|
try {
|
|
86
|
-
const data = await (
|
|
47
|
+
const data = await pdf(buffer);
|
|
87
48
|
console.log("PDF Metadata:", data.metadata);
|
|
88
49
|
console.log("PDF Text:", data.text);
|
|
89
50
|
return data.text || "No readable text found in PDF.";
|
|
@@ -93,4 +54,3 @@ async function readPdf(buffer) {
|
|
|
93
54
|
return "Failed to extract text from PDF.";
|
|
94
55
|
}
|
|
95
56
|
}
|
|
96
|
-
//# sourceMappingURL=readFiles.js.map
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.tokenLimit = tokenLimit;
|
|
4
1
|
/**
|
|
5
2
|
* Optimized tokenization function that processes characters in a single pass.
|
|
6
3
|
* - Splits words & punctuation efficiently.
|
|
@@ -40,7 +37,7 @@ function optimizedTokenCount(text) {
|
|
|
40
37
|
* - Keeps the full instruction intact.
|
|
41
38
|
* - Trims only the user’s prompt if needed.
|
|
42
39
|
*/
|
|
43
|
-
function tokenLimit(instruction, prompt, maxTokens = 3964) {
|
|
40
|
+
export function tokenLimit(instruction, prompt, maxTokens = 3964) {
|
|
44
41
|
const instructionTokens = optimizedTokenCount(instruction);
|
|
45
42
|
const remainingTokens = maxTokens - instructionTokens;
|
|
46
43
|
if (remainingTokens <= 0) {
|
|
@@ -61,4 +58,3 @@ function optimizedTrimText(text, maxTokens) {
|
|
|
61
58
|
}
|
|
62
59
|
return tokens.slice(0, maxTokens).join(' ');
|
|
63
60
|
}
|
|
64
|
-
//# sourceMappingURL=tokenizer.js.map
|
|
@@ -1,20 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.validateModels = exports.HERC_IMAGE_MODELS = exports.HERC_CHAT_MODELS = void 0;
|
|
7
|
-
exports.getElectronHubModels = getElectronHubModels;
|
|
8
|
-
exports.getGroqChatModels = getGroqChatModels;
|
|
9
|
-
const groq_sdk_1 = __importDefault(require("groq-sdk"));
|
|
10
|
-
const openai_1 = __importDefault(require("openai"));
|
|
1
|
+
import Groq from "groq-sdk";
|
|
2
|
+
import OpenAI from "openai";
|
|
11
3
|
// Define static models as readonly to prevent accidental modifications
|
|
12
|
-
|
|
4
|
+
export const HERC_CHAT_MODELS = Object.freeze([
|
|
13
5
|
"v3", "v3-32k", "turbo", "turbo-16k", "gemini",
|
|
14
6
|
"llama3-70b", "llama3-8b", "mixtral-8x7b",
|
|
15
7
|
"gemma-7b", "gemma2-9b",
|
|
16
8
|
]);
|
|
17
|
-
|
|
9
|
+
export const HERC_IMAGE_MODELS = Object.freeze([
|
|
18
10
|
"v3", "lexica", "prodia", "prodia-v2", "simurg",
|
|
19
11
|
"animefy", "raava", "shonin",
|
|
20
12
|
]);
|
|
@@ -24,13 +16,13 @@ const ELECTRON_HUB_API_KEY = "ek-3gmOPmvuljmrl4NQrohpnp1ryNXQG5bNn08zNuzhX6bcxBr
|
|
|
24
16
|
/**
|
|
25
17
|
* Initializes the Groq SDK instance.
|
|
26
18
|
*/
|
|
27
|
-
const initializeGroqInstance = () => new
|
|
19
|
+
const initializeGroqInstance = () => new Groq({ apiKey: GROQ_API_KEY });
|
|
28
20
|
/**
|
|
29
21
|
* Fetches available models from ElectronHub API.
|
|
30
22
|
*/
|
|
31
|
-
async function getElectronHubModels(apiKey) {
|
|
23
|
+
export async function getElectronHubModels(apiKey) {
|
|
32
24
|
try {
|
|
33
|
-
const openai = new
|
|
25
|
+
const openai = new OpenAI({
|
|
34
26
|
apiKey: apiKey ?? ELECTRON_HUB_API_KEY,
|
|
35
27
|
baseURL: "https://api.electronhub.top/v1",
|
|
36
28
|
});
|
|
@@ -50,7 +42,7 @@ async function getElectronHubModels(apiKey) {
|
|
|
50
42
|
/**
|
|
51
43
|
* Fetches available chat models from Groq API.
|
|
52
44
|
*/
|
|
53
|
-
async function getGroqChatModels(groqInstance) {
|
|
45
|
+
export async function getGroqChatModels(groqInstance) {
|
|
54
46
|
try {
|
|
55
47
|
const response = await groqInstance.models.list();
|
|
56
48
|
// Ensure response is valid
|
|
@@ -82,22 +74,20 @@ async function initializeValidOptions() {
|
|
|
82
74
|
]);
|
|
83
75
|
// Use Set to prevent duplicate entries in `allModels`
|
|
84
76
|
const allModelsSet = new Set([
|
|
85
|
-
...
|
|
86
|
-
...
|
|
77
|
+
...HERC_IMAGE_MODELS,
|
|
78
|
+
...HERC_CHAT_MODELS,
|
|
87
79
|
...groqModels,
|
|
88
80
|
...electronModels,
|
|
89
81
|
]);
|
|
90
82
|
return {
|
|
91
|
-
validHercChatModels:
|
|
83
|
+
validHercChatModels: HERC_CHAT_MODELS,
|
|
92
84
|
validGroqChatModels: groqModels,
|
|
93
85
|
validElectronModels: electronModels,
|
|
94
|
-
validHercImageModels:
|
|
86
|
+
validHercImageModels: HERC_IMAGE_MODELS,
|
|
95
87
|
allModels: Array.from(allModelsSet), // Convert Set to array for uniqueness
|
|
96
88
|
};
|
|
97
89
|
}
|
|
98
90
|
/**
|
|
99
91
|
* Returns all valid model lists asynchronously.
|
|
100
92
|
*/
|
|
101
|
-
const validateModels = async () => await initializeValidOptions();
|
|
102
|
-
exports.validateModels = validateModels;
|
|
103
|
-
//# sourceMappingURL=validOptions.js.map
|
|
93
|
+
export const validateModels = async () => await initializeValidOptions();
|