apexify.js 4.9.23 → 4.9.25
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/canvas/ApexPainter.js +1 -1
- package/dist/cjs/canvas/ApexPainter.js.map +1 -1
- package/dist/cjs/index.d.ts +2 -22
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +2 -17
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/cjs/utils.d.ts +1 -3
- package/dist/cjs/utils.d.ts.map +1 -1
- package/dist/cjs/utils.js +1 -11
- package/dist/cjs/utils.js.map +1 -1
- package/dist/esm/canvas/ApexPainter.js +1 -1
- package/dist/esm/canvas/ApexPainter.js.map +1 -1
- package/dist/esm/index.d.ts +2 -22
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +2 -17
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/dist/esm/utils.d.ts +1 -3
- package/dist/esm/utils.d.ts.map +1 -1
- package/dist/esm/utils.js +1 -11
- package/dist/esm/utils.js.map +1 -1
- package/lib/canvas/ApexPainter.ts +3 -3
- package/lib/index.ts +4 -11
- package/lib/utils.ts +1 -3
- package/package.json +3 -12
- package/dist/cjs/ai/ApexAI.d.ts +0 -145
- package/dist/cjs/ai/ApexAI.d.ts.map +0 -1
- package/dist/cjs/ai/ApexAI.js +0 -494
- package/dist/cjs/ai/ApexAI.js.map +0 -1
- package/dist/cjs/ai/ApexModules.d.ts +0 -53
- package/dist/cjs/ai/ApexModules.d.ts.map +0 -1
- package/dist/cjs/ai/ApexModules.js +0 -824
- package/dist/cjs/ai/ApexModules.js.map +0 -1
- package/dist/cjs/ai/functions/readFiles.d.ts +0 -2
- package/dist/cjs/ai/functions/readFiles.d.ts.map +0 -1
- package/dist/cjs/ai/functions/readFiles.js +0 -96
- package/dist/cjs/ai/functions/readFiles.js.map +0 -1
- package/dist/cjs/ai/functions/tokenizer.d.ts +0 -10
- package/dist/cjs/ai/functions/tokenizer.d.ts.map +0 -1
- package/dist/cjs/ai/functions/tokenizer.js +0 -64
- package/dist/cjs/ai/functions/tokenizer.js.map +0 -1
- package/dist/cjs/ai/functions/validOptions.d.ts +0 -22
- package/dist/cjs/ai/functions/validOptions.d.ts.map +0 -1
- package/dist/cjs/ai/functions/validOptions.js +0 -103
- package/dist/cjs/ai/functions/validOptions.js.map +0 -1
- package/dist/cjs/ai/modals/electronHub/chatmodels.d.ts +0 -7
- package/dist/cjs/ai/modals/electronHub/chatmodels.d.ts.map +0 -1
- package/dist/cjs/ai/modals/electronHub/chatmodels.js +0 -51
- package/dist/cjs/ai/modals/electronHub/chatmodels.js.map +0 -1
- package/dist/cjs/ai/modals/electronHub/imageModels.d.ts +0 -12
- package/dist/cjs/ai/modals/electronHub/imageModels.d.ts.map +0 -1
- package/dist/cjs/ai/modals/electronHub/imageModels.js +0 -92
- package/dist/cjs/ai/modals/electronHub/imageModels.js.map +0 -1
- package/dist/cjs/ai/modals/electronHub/speechModels.d.ts +0 -7
- package/dist/cjs/ai/modals/electronHub/speechModels.d.ts.map +0 -1
- package/dist/cjs/ai/modals/electronHub/speechModels.js +0 -63
- package/dist/cjs/ai/modals/electronHub/speechModels.js.map +0 -1
- package/dist/cjs/ai/modals/electronHub/videoModels.d.ts +0 -6
- package/dist/cjs/ai/modals/electronHub/videoModels.d.ts.map +0 -1
- package/dist/cjs/ai/modals/electronHub/videoModels.js +0 -63
- package/dist/cjs/ai/modals/electronHub/videoModels.js.map +0 -1
- package/dist/cjs/ai/modals/groq/chatgroq.d.ts +0 -9
- package/dist/cjs/ai/modals/groq/chatgroq.d.ts.map +0 -1
- package/dist/cjs/ai/modals/groq/chatgroq.js +0 -64
- package/dist/cjs/ai/modals/groq/chatgroq.js.map +0 -1
- package/dist/cjs/ai/modals/groq/imageAnalyzer.d.ts +0 -8
- package/dist/cjs/ai/modals/groq/imageAnalyzer.d.ts.map +0 -1
- package/dist/cjs/ai/modals/groq/imageAnalyzer.js +0 -82
- package/dist/cjs/ai/modals/groq/imageAnalyzer.js.map +0 -1
- package/dist/cjs/ai/modals/groq/whisper.d.ts +0 -5
- package/dist/cjs/ai/modals/groq/whisper.d.ts.map +0 -1
- package/dist/cjs/ai/modals/groq/whisper.js +0 -108
- package/dist/cjs/ai/modals/groq/whisper.js.map +0 -1
- package/dist/cjs/ai/modals/hercai/chatModels.d.ts +0 -7
- package/dist/cjs/ai/modals/hercai/chatModels.d.ts.map +0 -1
- package/dist/cjs/ai/modals/hercai/chatModels.js +0 -23
- package/dist/cjs/ai/modals/hercai/chatModels.js.map +0 -1
- package/dist/cjs/ai/utils.d.ts +0 -5
- package/dist/cjs/ai/utils.d.ts.map +0 -1
- package/dist/cjs/ai/utils.js +0 -15
- package/dist/cjs/ai/utils.js.map +0 -1
- package/dist/esm/ai/ApexAI.d.ts +0 -145
- package/dist/esm/ai/ApexAI.d.ts.map +0 -1
- package/dist/esm/ai/ApexAI.js +0 -494
- package/dist/esm/ai/ApexAI.js.map +0 -1
- package/dist/esm/ai/ApexModules.d.ts +0 -53
- package/dist/esm/ai/ApexModules.d.ts.map +0 -1
- package/dist/esm/ai/ApexModules.js +0 -824
- package/dist/esm/ai/ApexModules.js.map +0 -1
- package/dist/esm/ai/functions/readFiles.d.ts +0 -2
- package/dist/esm/ai/functions/readFiles.d.ts.map +0 -1
- package/dist/esm/ai/functions/readFiles.js +0 -96
- package/dist/esm/ai/functions/readFiles.js.map +0 -1
- package/dist/esm/ai/functions/tokenizer.d.ts +0 -10
- package/dist/esm/ai/functions/tokenizer.d.ts.map +0 -1
- package/dist/esm/ai/functions/tokenizer.js +0 -64
- package/dist/esm/ai/functions/tokenizer.js.map +0 -1
- package/dist/esm/ai/functions/validOptions.d.ts +0 -22
- package/dist/esm/ai/functions/validOptions.d.ts.map +0 -1
- package/dist/esm/ai/functions/validOptions.js +0 -103
- package/dist/esm/ai/functions/validOptions.js.map +0 -1
- package/dist/esm/ai/modals/electronHub/chatmodels.d.ts +0 -7
- package/dist/esm/ai/modals/electronHub/chatmodels.d.ts.map +0 -1
- package/dist/esm/ai/modals/electronHub/chatmodels.js +0 -51
- package/dist/esm/ai/modals/electronHub/chatmodels.js.map +0 -1
- package/dist/esm/ai/modals/electronHub/imageModels.d.ts +0 -12
- package/dist/esm/ai/modals/electronHub/imageModels.d.ts.map +0 -1
- package/dist/esm/ai/modals/electronHub/imageModels.js +0 -92
- package/dist/esm/ai/modals/electronHub/imageModels.js.map +0 -1
- package/dist/esm/ai/modals/electronHub/speechModels.d.ts +0 -7
- package/dist/esm/ai/modals/electronHub/speechModels.d.ts.map +0 -1
- package/dist/esm/ai/modals/electronHub/speechModels.js +0 -63
- package/dist/esm/ai/modals/electronHub/speechModels.js.map +0 -1
- package/dist/esm/ai/modals/electronHub/videoModels.d.ts +0 -6
- package/dist/esm/ai/modals/electronHub/videoModels.d.ts.map +0 -1
- package/dist/esm/ai/modals/electronHub/videoModels.js +0 -63
- package/dist/esm/ai/modals/electronHub/videoModels.js.map +0 -1
- package/dist/esm/ai/modals/groq/chatgroq.d.ts +0 -9
- package/dist/esm/ai/modals/groq/chatgroq.d.ts.map +0 -1
- package/dist/esm/ai/modals/groq/chatgroq.js +0 -64
- package/dist/esm/ai/modals/groq/chatgroq.js.map +0 -1
- package/dist/esm/ai/modals/groq/imageAnalyzer.d.ts +0 -8
- package/dist/esm/ai/modals/groq/imageAnalyzer.d.ts.map +0 -1
- package/dist/esm/ai/modals/groq/imageAnalyzer.js +0 -82
- package/dist/esm/ai/modals/groq/imageAnalyzer.js.map +0 -1
- package/dist/esm/ai/modals/groq/whisper.d.ts +0 -5
- package/dist/esm/ai/modals/groq/whisper.d.ts.map +0 -1
- package/dist/esm/ai/modals/groq/whisper.js +0 -108
- package/dist/esm/ai/modals/groq/whisper.js.map +0 -1
- package/dist/esm/ai/modals/hercai/chatModels.d.ts +0 -7
- package/dist/esm/ai/modals/hercai/chatModels.d.ts.map +0 -1
- package/dist/esm/ai/modals/hercai/chatModels.js +0 -23
- package/dist/esm/ai/modals/hercai/chatModels.js.map +0 -1
- package/dist/esm/ai/utils.d.ts +0 -5
- package/dist/esm/ai/utils.d.ts.map +0 -1
- package/dist/esm/ai/utils.js +0 -15
- package/dist/esm/ai/utils.js.map +0 -1
- package/lib/ai/ApexAI.ts +0 -758
- package/lib/ai/ApexModules.ts +0 -916
- package/lib/ai/functions/readFiles.ts +0 -66
- package/lib/ai/functions/tokenizer.ts +0 -69
- package/lib/ai/functions/validOptions.ts +0 -116
- package/lib/ai/modals/electronHub/chatmodels.ts +0 -57
- package/lib/ai/modals/electronHub/imageModels.ts +0 -116
- package/lib/ai/modals/electronHub/speechModels.ts +0 -75
- package/lib/ai/modals/electronHub/videoModels.ts +0 -75
- package/lib/ai/modals/groq/chatgroq.ts +0 -78
- package/lib/ai/modals/groq/imageAnalyzer.ts +0 -83
- package/lib/ai/modals/groq/whisper.ts +0 -114
- package/lib/ai/modals/hercai/chatModels.ts +0 -20
- package/lib/ai/utils.ts +0 -15
|
@@ -1,824 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ApexImagine = ApexImagine;
|
|
4
|
-
exports.ApexChat = ApexChat;
|
|
5
|
-
exports.ApexListener = ApexListener;
|
|
6
|
-
exports.ApexText2Speech = ApexText2Speech;
|
|
7
|
-
exports.ApexVideo = ApexVideo;
|
|
8
|
-
exports.resetHistory = resetHistory;
|
|
9
|
-
const validOptions_1 = require("./functions/validOptions");
|
|
10
|
-
const whisper_1 = require("./modals/groq/whisper");
|
|
11
|
-
const verse_db_1 = require("verse.db");
|
|
12
|
-
const chatgroq_1 = require("./modals/groq/chatgroq");
|
|
13
|
-
const utils_1 = require("./utils");
|
|
14
|
-
const imageModels_1 = require("./modals/electronHub/imageModels");
|
|
15
|
-
const chatmodels_1 = require("./modals/electronHub/chatmodels");
|
|
16
|
-
const speechModels_1 = require("./modals/electronHub/speechModels");
|
|
17
|
-
const videoModels_1 = require("./modals/electronHub/videoModels");
|
|
18
|
-
const generative_ai_1 = require("@google/generative-ai");
|
|
19
|
-
const hercai_1 = require("hercai");
|
|
20
|
-
const dbConfig = {
|
|
21
|
-
adapter: 'json',
|
|
22
|
-
dataPath: 'Ai_Chat-History'
|
|
23
|
-
};
|
|
24
|
-
const db = new verse_db_1.connect(dbConfig);
|
|
25
|
-
const hercai = new hercai_1.Hercai('6eZZOdDwm6Epdzn8mnhcX9SBDkxvoNYcNj9ILS0P44=');
|
|
26
|
-
async function ApexImagine(model, prompt, options) {
|
|
27
|
-
let imageURL = '';
|
|
28
|
-
let response = [];
|
|
29
|
-
const imageType = await (0, validOptions_1.validateModels)();
|
|
30
|
-
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
|
-
if (!/^[a-zA-Z0-9\s.,;:'"?!\-]*$/.test(prompt)) {
|
|
32
|
-
prompt = await (0, chatmodels_1.electronChat)({
|
|
33
|
-
modelName: 'llama-3.1-405b',
|
|
34
|
-
prompt: `Translate the text below into English:\n\n${prompt}`
|
|
35
|
-
});
|
|
36
|
-
}
|
|
37
|
-
if (count > 4 || count <= 0)
|
|
38
|
-
throw new Error("Inavlid usage. Count can't be less than 0 or more than 4.");
|
|
39
|
-
if ((width || height) <= 0)
|
|
40
|
-
throw new Error("Inavlid usage. Image width/height can't be less than 0 or more than 1024.");
|
|
41
|
-
for (let i = 0; i < count; i++) {
|
|
42
|
-
if (imageType.validHercImageModels.includes(model)) {
|
|
43
|
-
if (model === 'prodia-v2') {
|
|
44
|
-
imageURL = (await hercai.betaDrawImage({
|
|
45
|
-
prompt: prompt,
|
|
46
|
-
negative_prompt: negative_prompt,
|
|
47
|
-
sampler: "DPM-Solver",
|
|
48
|
-
image_style: image_style,
|
|
49
|
-
width: width,
|
|
50
|
-
height: height,
|
|
51
|
-
scale: cfg_scale,
|
|
52
|
-
steps: steps
|
|
53
|
-
})).url;
|
|
54
|
-
}
|
|
55
|
-
else {
|
|
56
|
-
imageURL = (await hercai.drawImage({
|
|
57
|
-
model: model,
|
|
58
|
-
prompt: prompt,
|
|
59
|
-
negative_prompt: negative_prompt
|
|
60
|
-
})).url;
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
else if (imageType.validElectronModels.includes(model)) {
|
|
64
|
-
const gen = await (0, imageModels_1.electronImagine)({ ApiKey: Api_Key, prompt: prompt, modelName: model, resizeOptions: { height, width, format: options?.format, quality: options?.quality } });
|
|
65
|
-
if (gen === null)
|
|
66
|
-
throw new Error('this model reached rate limit. Provide your own api key from: "https://discord.gg/94qUZWhwFE"');
|
|
67
|
-
imageURL = gen;
|
|
68
|
-
}
|
|
69
|
-
else {
|
|
70
|
-
throw new Error("Invalid model provided. Please check docs/npm page for valid models.");
|
|
71
|
-
}
|
|
72
|
-
if (imageURL) {
|
|
73
|
-
if (nsfw === false && deepCheck === false) {
|
|
74
|
-
response.push(imageURL);
|
|
75
|
-
}
|
|
76
|
-
else {
|
|
77
|
-
const NSFWWORDS = [
|
|
78
|
-
"2g1c",
|
|
79
|
-
"2 girls 1 cup",
|
|
80
|
-
"acrotomophilia",
|
|
81
|
-
"alabama hot pocket",
|
|
82
|
-
"alaskan pipeline",
|
|
83
|
-
"anal",
|
|
84
|
-
"anilingus",
|
|
85
|
-
"anus",
|
|
86
|
-
"apeshit",
|
|
87
|
-
"arsehole",
|
|
88
|
-
"ass",
|
|
89
|
-
"asshole",
|
|
90
|
-
"assmunch",
|
|
91
|
-
"auto erotic",
|
|
92
|
-
"autoerotic",
|
|
93
|
-
"babeland",
|
|
94
|
-
"baby batter",
|
|
95
|
-
"baby juice",
|
|
96
|
-
"ball gag",
|
|
97
|
-
"ball gravy",
|
|
98
|
-
"ball kicking",
|
|
99
|
-
"ball licking",
|
|
100
|
-
"ball sack",
|
|
101
|
-
"ball sucking",
|
|
102
|
-
"bangbros",
|
|
103
|
-
"bangbus",
|
|
104
|
-
"bareback",
|
|
105
|
-
"barely legal",
|
|
106
|
-
"barenaked",
|
|
107
|
-
"bastard",
|
|
108
|
-
"bastardo",
|
|
109
|
-
"bastinado",
|
|
110
|
-
"bbw",
|
|
111
|
-
"bdsm",
|
|
112
|
-
"beaner",
|
|
113
|
-
"beaners",
|
|
114
|
-
"beaver cleaver",
|
|
115
|
-
"beaver lips",
|
|
116
|
-
"beastiality",
|
|
117
|
-
"bestiality",
|
|
118
|
-
"big black",
|
|
119
|
-
"big breasts",
|
|
120
|
-
"big knockers",
|
|
121
|
-
"big tits",
|
|
122
|
-
"bimbos",
|
|
123
|
-
"birdlock",
|
|
124
|
-
"bitch",
|
|
125
|
-
"bitches",
|
|
126
|
-
"black cock",
|
|
127
|
-
"blonde action",
|
|
128
|
-
"blonde on blonde action",
|
|
129
|
-
"blowjob",
|
|
130
|
-
"blow job",
|
|
131
|
-
"blow your load",
|
|
132
|
-
"blue waffle",
|
|
133
|
-
"blumpkin",
|
|
134
|
-
"bollocks",
|
|
135
|
-
"bondage",
|
|
136
|
-
"boner",
|
|
137
|
-
"boob",
|
|
138
|
-
"boobs",
|
|
139
|
-
"booty call",
|
|
140
|
-
"brown showers",
|
|
141
|
-
"brunette action",
|
|
142
|
-
"bukkake",
|
|
143
|
-
"bulldyke",
|
|
144
|
-
"bullet vibe",
|
|
145
|
-
"bullshit",
|
|
146
|
-
"bung hole",
|
|
147
|
-
"bunghole",
|
|
148
|
-
"busty",
|
|
149
|
-
"butt",
|
|
150
|
-
"buttcheeks",
|
|
151
|
-
"butthole",
|
|
152
|
-
"camel toe",
|
|
153
|
-
"camgirl",
|
|
154
|
-
"camslut",
|
|
155
|
-
"camwhore",
|
|
156
|
-
"carpet muncher",
|
|
157
|
-
"carpetmuncher",
|
|
158
|
-
"chocolate rosebuds",
|
|
159
|
-
"cialis",
|
|
160
|
-
"circlejerk",
|
|
161
|
-
"cleveland steamer",
|
|
162
|
-
"clit",
|
|
163
|
-
"clitoris",
|
|
164
|
-
"clover clamps",
|
|
165
|
-
"clusterfuck",
|
|
166
|
-
"cock",
|
|
167
|
-
"cocks",
|
|
168
|
-
"coprolagnia",
|
|
169
|
-
"coprophilia",
|
|
170
|
-
"cornhole",
|
|
171
|
-
"coon",
|
|
172
|
-
"coons",
|
|
173
|
-
"creampie",
|
|
174
|
-
"cum",
|
|
175
|
-
"cumming",
|
|
176
|
-
"cumshot",
|
|
177
|
-
"cumshots",
|
|
178
|
-
"cunnilingus",
|
|
179
|
-
"cunt",
|
|
180
|
-
"darkie",
|
|
181
|
-
"date rape",
|
|
182
|
-
"daterape",
|
|
183
|
-
"deep throat",
|
|
184
|
-
"deepthroat",
|
|
185
|
-
"dendrophilia",
|
|
186
|
-
"dick",
|
|
187
|
-
"dildo",
|
|
188
|
-
"dingleberry",
|
|
189
|
-
"dingleberries",
|
|
190
|
-
"dirty pillows",
|
|
191
|
-
"dirty sanchez",
|
|
192
|
-
"doggie style",
|
|
193
|
-
"doggiestyle",
|
|
194
|
-
"doggy style",
|
|
195
|
-
"doggystyle",
|
|
196
|
-
"dog style",
|
|
197
|
-
"dolcett",
|
|
198
|
-
"domination",
|
|
199
|
-
"dominatrix",
|
|
200
|
-
"dommes",
|
|
201
|
-
"donkey punch",
|
|
202
|
-
"double dong",
|
|
203
|
-
"double penetration",
|
|
204
|
-
"dp action",
|
|
205
|
-
"dry hump",
|
|
206
|
-
"dvda",
|
|
207
|
-
"eat my ass",
|
|
208
|
-
"ecchi",
|
|
209
|
-
"ejaculation",
|
|
210
|
-
"erotic",
|
|
211
|
-
"erotism",
|
|
212
|
-
"escort",
|
|
213
|
-
"eunuch",
|
|
214
|
-
"fag",
|
|
215
|
-
"faggot",
|
|
216
|
-
"fecal",
|
|
217
|
-
"felch",
|
|
218
|
-
"fellatio",
|
|
219
|
-
"feltch",
|
|
220
|
-
"female squirting",
|
|
221
|
-
"femdom",
|
|
222
|
-
"figging",
|
|
223
|
-
"fingerbang",
|
|
224
|
-
"fingering",
|
|
225
|
-
"fisting",
|
|
226
|
-
"foot fetish",
|
|
227
|
-
"footjob",
|
|
228
|
-
"frotting",
|
|
229
|
-
"fuck",
|
|
230
|
-
"fuck buttons",
|
|
231
|
-
"fuckin",
|
|
232
|
-
"fucking",
|
|
233
|
-
"fucktards",
|
|
234
|
-
"fudge packer",
|
|
235
|
-
"fudgepacker",
|
|
236
|
-
"futanari",
|
|
237
|
-
"gangbang",
|
|
238
|
-
"gang bang",
|
|
239
|
-
"gay sex",
|
|
240
|
-
"genitals",
|
|
241
|
-
"giant cock",
|
|
242
|
-
"girl on",
|
|
243
|
-
"girl on top",
|
|
244
|
-
"girls gone wild",
|
|
245
|
-
"goatcx",
|
|
246
|
-
"goatse",
|
|
247
|
-
"god damn",
|
|
248
|
-
"gokkun",
|
|
249
|
-
"golden shower",
|
|
250
|
-
"goodpoop",
|
|
251
|
-
"goo girl",
|
|
252
|
-
"goregasm",
|
|
253
|
-
"grope",
|
|
254
|
-
"group sex",
|
|
255
|
-
"g-spot",
|
|
256
|
-
"guro",
|
|
257
|
-
"hand job",
|
|
258
|
-
"handjob",
|
|
259
|
-
"hard core",
|
|
260
|
-
"hardcore",
|
|
261
|
-
"hentai",
|
|
262
|
-
"homoerotic",
|
|
263
|
-
"honkey",
|
|
264
|
-
"hooker",
|
|
265
|
-
"horny",
|
|
266
|
-
"hot carl",
|
|
267
|
-
"hot chick",
|
|
268
|
-
"how to kill",
|
|
269
|
-
"how to murder",
|
|
270
|
-
"huge fat",
|
|
271
|
-
"humping",
|
|
272
|
-
"incest",
|
|
273
|
-
"intercourse",
|
|
274
|
-
"jack off",
|
|
275
|
-
"jail bait",
|
|
276
|
-
"jailbait",
|
|
277
|
-
"jelly donut",
|
|
278
|
-
"jerk off",
|
|
279
|
-
"jigaboo",
|
|
280
|
-
"jiggaboo",
|
|
281
|
-
"jiggerboo",
|
|
282
|
-
"jizz",
|
|
283
|
-
"juggs",
|
|
284
|
-
"kike",
|
|
285
|
-
"kinbaku",
|
|
286
|
-
"kinkster",
|
|
287
|
-
"kinky",
|
|
288
|
-
"knobbing",
|
|
289
|
-
"leather restraint",
|
|
290
|
-
"leather straight jacket",
|
|
291
|
-
"lemon party",
|
|
292
|
-
"livesex",
|
|
293
|
-
"lolita",
|
|
294
|
-
"lovemaking",
|
|
295
|
-
"make me come",
|
|
296
|
-
"male squirting",
|
|
297
|
-
"masturbate",
|
|
298
|
-
"masturbating",
|
|
299
|
-
"masturbation",
|
|
300
|
-
"menage a trois",
|
|
301
|
-
"milf",
|
|
302
|
-
"missionary position",
|
|
303
|
-
"mong",
|
|
304
|
-
"motherfucker",
|
|
305
|
-
"mound of venus",
|
|
306
|
-
"mr hands",
|
|
307
|
-
"muff diver",
|
|
308
|
-
"muffdiving",
|
|
309
|
-
"nambla",
|
|
310
|
-
"nawashi",
|
|
311
|
-
"negro",
|
|
312
|
-
"neonazi",
|
|
313
|
-
"nigga",
|
|
314
|
-
"nigger",
|
|
315
|
-
"nig nog",
|
|
316
|
-
"nimphomania",
|
|
317
|
-
"nipple",
|
|
318
|
-
"nipples",
|
|
319
|
-
"nsfw",
|
|
320
|
-
'nsfw images',
|
|
321
|
-
"nude",
|
|
322
|
-
"nudity",
|
|
323
|
-
"nutten",
|
|
324
|
-
"nympho",
|
|
325
|
-
"nymphomania",
|
|
326
|
-
"octopussy",
|
|
327
|
-
"omorashi",
|
|
328
|
-
"one cup two girls",
|
|
329
|
-
'one guy one jar',
|
|
330
|
-
"orgasm",
|
|
331
|
-
"orgy",
|
|
332
|
-
'paedophile',
|
|
333
|
-
"paki",
|
|
334
|
-
"panties",
|
|
335
|
-
"panty",
|
|
336
|
-
"pedobear",
|
|
337
|
-
"pedophile",
|
|
338
|
-
'pegging',
|
|
339
|
-
'penis',
|
|
340
|
-
"phone sex",
|
|
341
|
-
'piece of shit',
|
|
342
|
-
"pikey",
|
|
343
|
-
"pissing",
|
|
344
|
-
"piss pig",
|
|
345
|
-
"pisspig",
|
|
346
|
-
"playboy",
|
|
347
|
-
"pleasure chest",
|
|
348
|
-
"pole smoker",
|
|
349
|
-
"ponyplay",
|
|
350
|
-
"poof",
|
|
351
|
-
"poon",
|
|
352
|
-
"poontang",
|
|
353
|
-
"punany",
|
|
354
|
-
"poop chute",
|
|
355
|
-
"poopchute",
|
|
356
|
-
"porn",
|
|
357
|
-
"porno",
|
|
358
|
-
"pornography",
|
|
359
|
-
"prince albert piercing",
|
|
360
|
-
"pthc",
|
|
361
|
-
"pubes",
|
|
362
|
-
"pussy",
|
|
363
|
-
"queaf",
|
|
364
|
-
"queef",
|
|
365
|
-
"quim",
|
|
366
|
-
"raghead",
|
|
367
|
-
"raging boner",
|
|
368
|
-
"rape",
|
|
369
|
-
"raping",
|
|
370
|
-
"rapist",
|
|
371
|
-
"rectum",
|
|
372
|
-
"reverse cowgirl",
|
|
373
|
-
"rimjob",
|
|
374
|
-
"rimming",
|
|
375
|
-
"rosy palm",
|
|
376
|
-
"rosy palm and her 5 sisters",
|
|
377
|
-
"rusty trombone",
|
|
378
|
-
"sadism",
|
|
379
|
-
"santorum",
|
|
380
|
-
"scat",
|
|
381
|
-
"schlong",
|
|
382
|
-
"scissoring",
|
|
383
|
-
"semen",
|
|
384
|
-
"sex",
|
|
385
|
-
"sexcam",
|
|
386
|
-
"sexo",
|
|
387
|
-
"sexy",
|
|
388
|
-
"sexual",
|
|
389
|
-
"sexually",
|
|
390
|
-
"sexuality",
|
|
391
|
-
"shaved beaver",
|
|
392
|
-
"shaved pussy",
|
|
393
|
-
"shemale",
|
|
394
|
-
"shibari",
|
|
395
|
-
"shit",
|
|
396
|
-
"shitblimp",
|
|
397
|
-
"shitty",
|
|
398
|
-
"shota",
|
|
399
|
-
"shrimping",
|
|
400
|
-
"skeet",
|
|
401
|
-
"slanteye",
|
|
402
|
-
"slut",
|
|
403
|
-
"s&m",
|
|
404
|
-
"smut",
|
|
405
|
-
"snatch",
|
|
406
|
-
"snowballing",
|
|
407
|
-
"sodomize",
|
|
408
|
-
"sodomy",
|
|
409
|
-
"spastic",
|
|
410
|
-
"spic",
|
|
411
|
-
"splooge",
|
|
412
|
-
"splooge moose",
|
|
413
|
-
"spooge",
|
|
414
|
-
"spread legs",
|
|
415
|
-
"spunk",
|
|
416
|
-
"strap on",
|
|
417
|
-
"strapon",
|
|
418
|
-
"strappado",
|
|
419
|
-
"strip club",
|
|
420
|
-
"style doggy",
|
|
421
|
-
"suck",
|
|
422
|
-
"sucks",
|
|
423
|
-
"suicide girls",
|
|
424
|
-
"sultry women",
|
|
425
|
-
"swastika",
|
|
426
|
-
"swinger",
|
|
427
|
-
"tainted love",
|
|
428
|
-
"taste my",
|
|
429
|
-
"tea bagging",
|
|
430
|
-
"threesome",
|
|
431
|
-
"throating",
|
|
432
|
-
"thumbzilla",
|
|
433
|
-
"tied up",
|
|
434
|
-
"tight white",
|
|
435
|
-
"tit",
|
|
436
|
-
"tits",
|
|
437
|
-
"titties",
|
|
438
|
-
"titty",
|
|
439
|
-
"topless",
|
|
440
|
-
"tosser",
|
|
441
|
-
"towelhead",
|
|
442
|
-
"tranny",
|
|
443
|
-
"tribadism",
|
|
444
|
-
"tub girl",
|
|
445
|
-
'tubgirl',
|
|
446
|
-
"tushy",
|
|
447
|
-
"twat",
|
|
448
|
-
"twink",
|
|
449
|
-
"twinkie",
|
|
450
|
-
"two girls one cup",
|
|
451
|
-
"undressing",
|
|
452
|
-
'upskirt',
|
|
453
|
-
"urethra play",
|
|
454
|
-
"urophilia",
|
|
455
|
-
"vagina",
|
|
456
|
-
"venus mound",
|
|
457
|
-
"viagra",
|
|
458
|
-
"vibrator",
|
|
459
|
-
"violet wand",
|
|
460
|
-
"vorarephilia",
|
|
461
|
-
"voyeur",
|
|
462
|
-
"voyeurweb",
|
|
463
|
-
"voyuer",
|
|
464
|
-
"vulva",
|
|
465
|
-
"wank",
|
|
466
|
-
"wetback",
|
|
467
|
-
"wet dream",
|
|
468
|
-
"white power",
|
|
469
|
-
"whore",
|
|
470
|
-
"worldsex",
|
|
471
|
-
"wrapping men",
|
|
472
|
-
"wrinkled starfish",
|
|
473
|
-
"xx",
|
|
474
|
-
"xxx",
|
|
475
|
-
"yaoi",
|
|
476
|
-
"yellow showers",
|
|
477
|
-
"yiffy",
|
|
478
|
-
"zoophilia",
|
|
479
|
-
"anal",
|
|
480
|
-
"arousal",
|
|
481
|
-
"balls",
|
|
482
|
-
"blowjob",
|
|
483
|
-
"busty",
|
|
484
|
-
"butt",
|
|
485
|
-
"cameltoe",
|
|
486
|
-
"climax",
|
|
487
|
-
"clitoris",
|
|
488
|
-
"cock",
|
|
489
|
-
"crotch",
|
|
490
|
-
"cum",
|
|
491
|
-
"cumshot",
|
|
492
|
-
"cunnilingus",
|
|
493
|
-
"dirty",
|
|
494
|
-
"dirtytalk",
|
|
495
|
-
"dildo",
|
|
496
|
-
"erect",
|
|
497
|
-
"erogenous",
|
|
498
|
-
"escort",
|
|
499
|
-
"explicit",
|
|
500
|
-
"facial",
|
|
501
|
-
"fetish",
|
|
502
|
-
"flirt",
|
|
503
|
-
"foreplay",
|
|
504
|
-
"genitals",
|
|
505
|
-
"groin",
|
|
506
|
-
"hardcore",
|
|
507
|
-
"hardon",
|
|
508
|
-
"horniness",
|
|
509
|
-
"horny",
|
|
510
|
-
"kamasutra",
|
|
511
|
-
"kinky",
|
|
512
|
-
"lewd",
|
|
513
|
-
"lingerie",
|
|
514
|
-
"lust",
|
|
515
|
-
"lustful",
|
|
516
|
-
"masturbate",
|
|
517
|
-
"mature",
|
|
518
|
-
"milf",
|
|
519
|
-
"naughty",
|
|
520
|
-
"naked",
|
|
521
|
-
"nipples",
|
|
522
|
-
"nude",
|
|
523
|
-
"obscene",
|
|
524
|
-
"oral",
|
|
525
|
-
"orgasm",
|
|
526
|
-
"penetration",
|
|
527
|
-
"penis",
|
|
528
|
-
"pleasure",
|
|
529
|
-
"porn",
|
|
530
|
-
"prostitute",
|
|
531
|
-
"provocative",
|
|
532
|
-
"pubic",
|
|
533
|
-
"pussy",
|
|
534
|
-
"seduce",
|
|
535
|
-
"seductive",
|
|
536
|
-
"sensual",
|
|
537
|
-
"sex",
|
|
538
|
-
"sexual",
|
|
539
|
-
"sperm",
|
|
540
|
-
"strip",
|
|
541
|
-
"striptease",
|
|
542
|
-
"swinger",
|
|
543
|
-
"testicles",
|
|
544
|
-
"thong",
|
|
545
|
-
"threesome",
|
|
546
|
-
"undies",
|
|
547
|
-
"undress",
|
|
548
|
-
"vagina",
|
|
549
|
-
"vibrator",
|
|
550
|
-
"wank",
|
|
551
|
-
"wet",
|
|
552
|
-
"hentai",
|
|
553
|
-
"bdsm",
|
|
554
|
-
"gay",
|
|
555
|
-
"lesbian",
|
|
556
|
-
"femboy",
|
|
557
|
-
"ass",
|
|
558
|
-
];
|
|
559
|
-
let shouldExclude = false;
|
|
560
|
-
if (nsfw === true) {
|
|
561
|
-
const caption = await (0, utils_1.groqAnalyzer)({ img: imageURL, prompt });
|
|
562
|
-
if (!caption)
|
|
563
|
-
return;
|
|
564
|
-
shouldExclude = NSFWWORDS.some(word => caption.includes(word));
|
|
565
|
-
shouldExclude = nsfwWords.some(word => caption.includes(word));
|
|
566
|
-
}
|
|
567
|
-
if (deepCheck === true) {
|
|
568
|
-
shouldExclude = shouldExclude || NSFWWORDS.some(word => prompt.includes(word));
|
|
569
|
-
shouldExclude = shouldExclude || NSFWWORDS.some(word => prompt.includes(word));
|
|
570
|
-
shouldExclude = shouldExclude || nsfwWords.some(word => prompt.includes(word));
|
|
571
|
-
shouldExclude = shouldExclude || nsfwWords.some(word => prompt.includes(word));
|
|
572
|
-
}
|
|
573
|
-
if (!shouldExclude) {
|
|
574
|
-
response.push(imageURL);
|
|
575
|
-
}
|
|
576
|
-
}
|
|
577
|
-
}
|
|
578
|
-
}
|
|
579
|
-
return response;
|
|
580
|
-
}
|
|
581
|
-
async function ApexChat(model, prompt, { userId, memory, limit, instruction, Api_key, threshold }) {
|
|
582
|
-
try {
|
|
583
|
-
let enhancedPrompt = prompt;
|
|
584
|
-
let historyChat = `- This is Previous chat history between you (System) and the user (User). Don't use the history or reply back anything related to it unless being mentioned in user's new prompt\n`;
|
|
585
|
-
if (memory && userId) {
|
|
586
|
-
const userHistoryResult = (await db.find(`${userId}`, { userId })).results?.history || [];
|
|
587
|
-
const historyItems = Array.isArray(userHistoryResult) ? userHistoryResult : [];
|
|
588
|
-
historyItems.sort((a, b) => b.currentTime - a.currentTime);
|
|
589
|
-
const relevantMessages = await getRelevantHistoryAI(prompt, historyItems, limit ?? 12, threshold);
|
|
590
|
-
let formattedHistory = '';
|
|
591
|
-
relevantMessages.forEach((item) => {
|
|
592
|
-
formattedHistory += `User: ${item.user}\nSystem: ${item.model}\n\n`;
|
|
593
|
-
});
|
|
594
|
-
historyChat += `${formattedHistory}\n\n`;
|
|
595
|
-
enhancedPrompt = `This is the User's New Prompt:\n ${prompt}\n\n${historyChat}`;
|
|
596
|
-
}
|
|
597
|
-
let response;
|
|
598
|
-
if (enhancedPrompt.length >= 2000) {
|
|
599
|
-
const chunks = [];
|
|
600
|
-
while (enhancedPrompt.length > 0) {
|
|
601
|
-
chunks.push(enhancedPrompt.substring(0, 2000));
|
|
602
|
-
enhancedPrompt = enhancedPrompt.substring(2000);
|
|
603
|
-
}
|
|
604
|
-
const responses = await Promise.all(chunks.map(async (chunk) => {
|
|
605
|
-
return await processChunk(model, chunk, { ApiKey: Api_key, personality: instruction });
|
|
606
|
-
}));
|
|
607
|
-
response = responses.join('');
|
|
608
|
-
}
|
|
609
|
-
else {
|
|
610
|
-
response = await processChunk(model, enhancedPrompt, { ApiKey: Api_key, personality: instruction });
|
|
611
|
-
}
|
|
612
|
-
if (memory && userId) {
|
|
613
|
-
await db.update(`${userId}`, { userId }, { $push: { history: { user: prompt, model: response } }, $set: { currentTime: Date.now() } }, true);
|
|
614
|
-
}
|
|
615
|
-
return response;
|
|
616
|
-
}
|
|
617
|
-
catch (error) {
|
|
618
|
-
console.error(error.message);
|
|
619
|
-
return '';
|
|
620
|
-
}
|
|
621
|
-
}
|
|
622
|
-
const genAI = new generative_ai_1.GoogleGenerativeAI('AIzaSyCSNDp8lx9CT_DlLvbQwEAdOFC6Srph1dM');
|
|
623
|
-
const model = genAI.getGenerativeModel({ model: "text-embedding-004" });
|
|
624
|
-
async function getRelevantHistoryAI(prompt, history, maxResults, threshold = 0.7) {
|
|
625
|
-
const trimmedPrompt = prompt.length > 20000 ? prompt.slice(0, 10000) + "..." + prompt.slice(-10000) : prompt;
|
|
626
|
-
// Batch embeddings instead of one-by-one calls
|
|
627
|
-
const [promptEmbedding, historyEmbeddings] = await Promise.all([
|
|
628
|
-
embedding(trimmedPrompt),
|
|
629
|
-
embeddingBatch(history.map(item => item.user))
|
|
630
|
-
]);
|
|
631
|
-
// Calculate cosine similarity in a single loop (faster)
|
|
632
|
-
const scores = historyEmbeddings.map((messageEmbedding, index) => ({
|
|
633
|
-
item: history[index],
|
|
634
|
-
score: cosineSimilarity(promptEmbedding, messageEmbedding)
|
|
635
|
-
}));
|
|
636
|
-
return scores
|
|
637
|
-
.filter(entry => entry.score >= threshold)
|
|
638
|
-
.sort((a, b) => b.score - a.score)
|
|
639
|
-
.slice(0, maxResults)
|
|
640
|
-
.map(entry => entry.item);
|
|
641
|
-
}
|
|
642
|
-
async function embeddingBatch(texts) {
|
|
643
|
-
let embeddings = [];
|
|
644
|
-
for (const text of texts) {
|
|
645
|
-
const trimmedText = text.length > 20000 ? text.slice(0, 10000) + "..." + text.slice(-10000) : text;
|
|
646
|
-
const embedded = await embedding(trimmedText);
|
|
647
|
-
embeddings.push(embedded);
|
|
648
|
-
}
|
|
649
|
-
return embeddings;
|
|
650
|
-
}
|
|
651
|
-
async function embedding(text) {
|
|
652
|
-
let maxRetries = 5;
|
|
653
|
-
let delay = 5000;
|
|
654
|
-
let attempt = 0;
|
|
655
|
-
while (attempt < maxRetries) {
|
|
656
|
-
try {
|
|
657
|
-
const response = await model.embedContent(text);
|
|
658
|
-
return response.embedding.values;
|
|
659
|
-
}
|
|
660
|
-
catch (error) {
|
|
661
|
-
if (error.response) {
|
|
662
|
-
console.warn(`❌ API Error - Status: ${error.response.status}, Message: ${error.response.statusText}`);
|
|
663
|
-
}
|
|
664
|
-
else {
|
|
665
|
-
console.error("❌ Network or unknown error:", error.message);
|
|
666
|
-
}
|
|
667
|
-
if (error.response && error.response.status === 429) {
|
|
668
|
-
console.warn(`⚠️ Rate limited (429). Retrying in ${delay / 1000} seconds...`);
|
|
669
|
-
await new Promise(res => setTimeout(res, delay));
|
|
670
|
-
}
|
|
671
|
-
else {
|
|
672
|
-
throw error;
|
|
673
|
-
}
|
|
674
|
-
}
|
|
675
|
-
attempt++;
|
|
676
|
-
}
|
|
677
|
-
throw new Error("Max retries reached. Failed to get embedding.");
|
|
678
|
-
}
|
|
679
|
-
function cosineSimilarity(a, b) {
|
|
680
|
-
const dotProduct = a.reduce((sum, val, i) => sum + val * b[i], 0);
|
|
681
|
-
const magnitudeA = Math.sqrt(a.reduce((sum, val) => sum + val * val, 0));
|
|
682
|
-
const magnitudeB = Math.sqrt(b.reduce((sum, val) => sum + val * val, 0));
|
|
683
|
-
return dotProduct / (magnitudeA * magnitudeB);
|
|
684
|
-
}
|
|
685
|
-
async function resetHistory({ id, last }) {
|
|
686
|
-
if (!id)
|
|
687
|
-
return false;
|
|
688
|
-
try {
|
|
689
|
-
const getUserData = (await db.findCollection(`${id}`, 'normal')).results;
|
|
690
|
-
if (!getUserData)
|
|
691
|
-
return false;
|
|
692
|
-
const userRecord = (await db.find(`${id}`, { userId: id })).results;
|
|
693
|
-
if (!userRecord || !userRecord.history)
|
|
694
|
-
return false;
|
|
695
|
-
const countHistory = userRecord.history.length;
|
|
696
|
-
let updateQuery = {};
|
|
697
|
-
if (typeof last === "string" && last.toLowerCase() === "all") {
|
|
698
|
-
updateQuery = { $set: { history: [] } };
|
|
699
|
-
}
|
|
700
|
-
else if (typeof last === "number" && last > 0) {
|
|
701
|
-
const keep = Math.max(countHistory - last, 0);
|
|
702
|
-
if (keep === 0) {
|
|
703
|
-
updateQuery = { $set: { history: [] } };
|
|
704
|
-
}
|
|
705
|
-
else {
|
|
706
|
-
updateQuery = { $slice: { history: keep } };
|
|
707
|
-
}
|
|
708
|
-
}
|
|
709
|
-
else {
|
|
710
|
-
console.log("Invalid value for 'last'. Must be a positive number or 'all'.");
|
|
711
|
-
return false;
|
|
712
|
-
}
|
|
713
|
-
await db.update(`${id}`, { userId: id }, updateQuery);
|
|
714
|
-
return true;
|
|
715
|
-
}
|
|
716
|
-
catch (error) {
|
|
717
|
-
console.error("Error resetting history:", error);
|
|
718
|
-
return false;
|
|
719
|
-
}
|
|
720
|
-
}
|
|
721
|
-
async function processChunk(model, prompt, { ApiKey, personality }) {
|
|
722
|
-
const validOptions = await (0, validOptions_1.validateModels)();
|
|
723
|
-
let response;
|
|
724
|
-
switch (true) {
|
|
725
|
-
case validOptions.validHercChatModels.includes(model):
|
|
726
|
-
response = (await hercai.question({
|
|
727
|
-
model: model,
|
|
728
|
-
content: prompt,
|
|
729
|
-
personality
|
|
730
|
-
})).reply;
|
|
731
|
-
break;
|
|
732
|
-
case validOptions.validGroqChatModels.includes(model):
|
|
733
|
-
response = await (0, chatgroq_1.chatGroq)({
|
|
734
|
-
API_KEY: ApiKey,
|
|
735
|
-
apiName: model,
|
|
736
|
-
prompt,
|
|
737
|
-
instruction: personality
|
|
738
|
-
});
|
|
739
|
-
break;
|
|
740
|
-
case validOptions.validElectronModels.includes(model):
|
|
741
|
-
response = (await (0, chatmodels_1.electronChat)({
|
|
742
|
-
ApiKey,
|
|
743
|
-
prompt,
|
|
744
|
-
instruction: personality,
|
|
745
|
-
modelName: model
|
|
746
|
-
}));
|
|
747
|
-
break;
|
|
748
|
-
default:
|
|
749
|
-
throw new Error("Invalid model.");
|
|
750
|
-
}
|
|
751
|
-
return response;
|
|
752
|
-
}
|
|
753
|
-
async function ApexListener(options) {
|
|
754
|
-
const { filepath, model = 'v3', prompt = '', lang = 'en', apiKey = undefined } = options;
|
|
755
|
-
const validatedLang = validateLanguageInput(lang);
|
|
756
|
-
if (!validatedLang) {
|
|
757
|
-
throw new Error(`Unsupported language: ${lang}. Please provide a valid ISO 639-1 language code or language name.`);
|
|
758
|
-
}
|
|
759
|
-
const transcribe = await (0, whisper_1.whisper)(prompt, filepath, validatedLang, apiKey);
|
|
760
|
-
const enhancer = `Below is the the speech/text that has been said in the voice/audio file.\n\n${transcribe}`;
|
|
761
|
-
let response = "";
|
|
762
|
-
if (model)
|
|
763
|
-
response = await ApexChat(model, enhancer, {});
|
|
764
|
-
return { response, transcribe };
|
|
765
|
-
}
|
|
766
|
-
;
|
|
767
|
-
function validateLanguageInput(lang) {
|
|
768
|
-
const supportedLanguages = [
|
|
769
|
-
{ code: 'en', name: 'English' },
|
|
770
|
-
{ code: 'es', name: 'Spanish' },
|
|
771
|
-
{ code: 'fr', name: 'French' },
|
|
772
|
-
{ code: 'de', name: 'German' },
|
|
773
|
-
{ code: 'it', name: 'Italian' },
|
|
774
|
-
{ code: 'pt', name: 'Portuguese' },
|
|
775
|
-
{ code: 'ru', name: 'Russian' },
|
|
776
|
-
{ code: 'zh', name: 'Chinese' },
|
|
777
|
-
{ code: 'ja', name: 'Japanese' },
|
|
778
|
-
{ code: 'ko', name: 'Korean' },
|
|
779
|
-
{ code: 'ar', name: 'Arabic' },
|
|
780
|
-
{ code: 'hi', name: 'Hindi' },
|
|
781
|
-
{ code: 'bn', name: 'Bengali' },
|
|
782
|
-
{ code: 'pa', name: 'Punjabi' },
|
|
783
|
-
{ code: 'ur', name: 'Urdu' },
|
|
784
|
-
{ code: 'tr', name: 'Turkish' },
|
|
785
|
-
{ code: 'vi', name: 'Vietnamese' },
|
|
786
|
-
{ code: 'th', name: 'Thai' },
|
|
787
|
-
{ code: 'nl', name: 'Dutch' },
|
|
788
|
-
{ code: 'pl', name: 'Polish' },
|
|
789
|
-
{ code: 'sv', name: 'Swedish' },
|
|
790
|
-
{ code: 'no', name: 'Norwegian' },
|
|
791
|
-
{ code: 'fi', name: 'Finnish' },
|
|
792
|
-
{ code: 'da', name: 'Danish' },
|
|
793
|
-
{ code: 'el', name: 'Greek' },
|
|
794
|
-
{ code: 'he', name: 'Hebrew' },
|
|
795
|
-
{ code: 'fa', name: 'Persian' },
|
|
796
|
-
{ code: 'hu', name: 'Hungarian' },
|
|
797
|
-
{ code: 'cs', name: 'Czech' },
|
|
798
|
-
{ code: 'ro', name: 'Romanian' },
|
|
799
|
-
{ code: 'uk', name: 'Ukrainian' },
|
|
800
|
-
{ code: 'bg', name: 'Bulgarian' },
|
|
801
|
-
{ code: 'ms', name: 'Malay' },
|
|
802
|
-
{ code: 'id', name: 'Indonesian' },
|
|
803
|
-
{ code: 'tl', name: 'Tagalog' },
|
|
804
|
-
{ code: 'nl', name: 'Dutch' }
|
|
805
|
-
];
|
|
806
|
-
const foundByCode = supportedLanguages.find(langObj => langObj.code === lang.toLowerCase());
|
|
807
|
-
if (foundByCode) {
|
|
808
|
-
return foundByCode.code;
|
|
809
|
-
}
|
|
810
|
-
const foundByName = supportedLanguages.find(langObj => langObj.name.toLowerCase() === lang.toLowerCase());
|
|
811
|
-
if (foundByName) {
|
|
812
|
-
return foundByName.code;
|
|
813
|
-
}
|
|
814
|
-
return null;
|
|
815
|
-
}
|
|
816
|
-
async function ApexText2Speech({ ApiKey, inputText, modelName, personality }) {
|
|
817
|
-
const maxLength = 3000;
|
|
818
|
-
const trimmedInput = inputText.length > maxLength ? inputText.slice(0, maxLength) : inputText;
|
|
819
|
-
return await (0, speechModels_1.electronSpeech)({ ApiKey, inputText: trimmedInput, modelName, personality });
|
|
820
|
-
}
|
|
821
|
-
async function ApexVideo({ ApiKey, prompt, modelName }) {
|
|
822
|
-
return await (0, videoModels_1.electronVideo)({ ApiKey, prompt, modelName });
|
|
823
|
-
}
|
|
824
|
-
//# sourceMappingURL=ApexModules.js.map
|