apexify.js 4.1.8 → 4.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -17
- package/dist/ai/modals-chat/Gemini-flash.d.ts.map +1 -1
- package/dist/ai/modals-chat/Gemini-flash.js +18 -35
- package/dist/ai/modals-chat/Gemini-flash.js.map +1 -1
- package/dist/ai/modals-chat/Gemini-pro.d.ts.map +1 -1
- package/dist/ai/modals-chat/Gemini-pro.js +18 -35
- package/dist/ai/modals-chat/Gemini-pro.js.map +1 -1
- package/dist/ai/modals-chat/config.d.ts.map +1 -1
- package/dist/ai/modals-chat/config.js +5 -4
- package/dist/ai/modals-chat/config.js.map +1 -1
- package/dist/index.d.ts +11 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -6
- package/dist/index.js.map +1 -1
- package/lib/ai/modals-chat/Gemini-flash.ts +21 -36
- package/lib/ai/modals-chat/Gemini-pro.ts +21 -36
- package/lib/ai/modals-chat/config.ts +5 -4
- package/lib/index.ts +3 -7
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -20,22 +20,6 @@ Sure, here's a more polished version:
|
|
|
20
20
|
- **AI Personality:** Personalize your interactions with the AI chatbot by defining its personality traits and characteristics.
|
|
21
21
|
- **Chat Memory:** Enable the AI chatbot to remember past interactions and maintain context across conversations, providing a more personalized and coherent experience.
|
|
22
22
|
|
|
23
|
-
- **Usage outside discord**
|
|
24
|
-
<details>
|
|
25
|
-
|
|
26
|
-
```js
|
|
27
|
-
const { ApexImagine, ApexChat } = require('apexify.js');
|
|
28
|
-
|
|
29
|
-
const imgURLS = await ApexImagine(model: 'prodia', prompt: 'draw a cat', options: { count: 2, nsfw: false, deepCheck: true, negative_prompt: 'not blur image', cfg_scale: 9, width: 1024, height: 1024, steps: 19, seed: -1, sampler: "DPM-Solver", image_style: "Cinematic" });
|
|
30
|
-
|
|
31
|
-
console.log(imgURLS); // returns string array of each generated image url.
|
|
32
|
-
|
|
33
|
-
const chatreply = await ApexChat(model: 'gemini', prompt: 'hey how r u?');
|
|
34
|
-
|
|
35
|
-
console.log(chatreply); // returns ai response as string.
|
|
36
|
-
```
|
|
37
|
-
</details>
|
|
38
|
-
|
|
39
23
|
### 📸 Canvas Image Manipulation Toolkit 🎨
|
|
40
24
|
|
|
41
25
|
**Features:**
|
|
@@ -64,7 +48,7 @@ console.log(chatreply); // returns ai response as string.
|
|
|
64
48
|
## 📚 More Info & Documentation 📖
|
|
65
49
|
|
|
66
50
|
- Explore a detailed list of apexify.js and their usage at our
|
|
67
|
-
[Support Server](https://discord.gg/mDyXV9hzXw) or at [jedi-studio](http://
|
|
51
|
+
[Support Server](https://discord.gg/mDyXV9hzXw) or at [jedi-studio](http://apexifyjs.jedi-studio.com).
|
|
68
52
|
|
|
69
53
|
### 🚨 Important Notes 📌
|
|
70
54
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Gemini-flash.d.ts","sourceRoot":"","sources":["../../../lib/ai/modals-chat/Gemini-flash.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Gemini-flash.d.ts","sourceRoot":"","sources":["../../../lib/ai/modals-chat/Gemini-flash.ts"],"names":[],"mappings":"AAQA,wBAAsB,WAAW,CAAC,OAAO,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,GAAG,CAAC;IAAC,EAAE,EAAE,OAAO,CAAA;CAAE,EAAE,EAAE,EAAE;IAAE,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAyLnP"}
|
|
@@ -5,13 +5,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.geminiFlash = void 0;
|
|
7
7
|
const generative_ai_1 = require("@google/generative-ai");
|
|
8
|
-
const path_1 = __importDefault(require("path"));
|
|
9
|
-
const fs_1 = __importDefault(require("fs"));
|
|
10
|
-
const config_1 = __importDefault(require("./config"));
|
|
11
8
|
const general_functions_1 = require("../../canvas/utils/general functions");
|
|
12
9
|
const verse_db_1 = require("verse.db");
|
|
10
|
+
const config_1 = __importDefault(require("./config"));
|
|
13
11
|
const axios_1 = __importDefault(require("axios"));
|
|
14
|
-
|
|
12
|
+
const path_1 = __importDefault(require("path"));
|
|
13
|
+
const fs_1 = __importDefault(require("fs"));
|
|
15
14
|
async function geminiFlash(message, AI) {
|
|
16
15
|
async function validateKey(apiKey) {
|
|
17
16
|
try {
|
|
@@ -23,16 +22,6 @@ async function geminiFlash(message, AI) {
|
|
|
23
22
|
return false;
|
|
24
23
|
}
|
|
25
24
|
}
|
|
26
|
-
async function getValidGenAI(apiKeys, initialIndex) {
|
|
27
|
-
for (let i = initialIndex; i < apiKeys.length; i++) {
|
|
28
|
-
const apiKey = apiKeys[i];
|
|
29
|
-
if (await validateKey(apiKey)) {
|
|
30
|
-
currentApiKeyIndex = i;
|
|
31
|
-
return new generative_ai_1.GoogleGenerativeAI(apiKey);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
return null;
|
|
35
|
-
}
|
|
36
25
|
async function processRequest(genAI) {
|
|
37
26
|
var _a, _b;
|
|
38
27
|
let personalityString = '';
|
|
@@ -42,7 +31,7 @@ async function geminiFlash(message, AI) {
|
|
|
42
31
|
personalityString = personalityContent.split('\n').join(' ');
|
|
43
32
|
}
|
|
44
33
|
const generationConfig = {
|
|
45
|
-
maxOutputTokens:
|
|
34
|
+
maxOutputTokens: 1048576,
|
|
46
35
|
};
|
|
47
36
|
const safetySettings = [
|
|
48
37
|
{
|
|
@@ -95,7 +84,7 @@ async function geminiFlash(message, AI) {
|
|
|
95
84
|
if (message.db) {
|
|
96
85
|
db = new verse_db_1.connect({ adapter: 'json', dataPath: `${message.serverId}_ChatHistory` });
|
|
97
86
|
const data = await db.find(`${message.userId}_chatHistory`, { userId: message.userId });
|
|
98
|
-
historyData = ((_a = data.results) === null || _a === void 0 ? void 0 : _a.history) || undefined;
|
|
87
|
+
historyData = ((_a = data.results) === null || _a === void 0 ? void 0 : _a.history.slice(-20)) || undefined;
|
|
99
88
|
}
|
|
100
89
|
const chat = model.startChat({
|
|
101
90
|
history: historyData || defaultHistory,
|
|
@@ -111,7 +100,7 @@ async function geminiFlash(message, AI) {
|
|
|
111
100
|
mimeType: "image/png",
|
|
112
101
|
},
|
|
113
102
|
};
|
|
114
|
-
result = await
|
|
103
|
+
result = await model.generateContent([AI.userMsg, image]);
|
|
115
104
|
}
|
|
116
105
|
else {
|
|
117
106
|
result = await chat.sendMessage(AI.userMsg);
|
|
@@ -150,39 +139,33 @@ async function geminiFlash(message, AI) {
|
|
|
150
139
|
}
|
|
151
140
|
}
|
|
152
141
|
try {
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
genAI = new generative_ai_1.GoogleGenerativeAI(AI.API_KEY);
|
|
142
|
+
if (AI.API_KEY && !(await validateKey(AI.API_KEY))) {
|
|
143
|
+
return 'Invalid API key provided.';
|
|
156
144
|
}
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
}
|
|
145
|
+
function getRandomApiKey() {
|
|
146
|
+
const { apiKeys } = config_1.default;
|
|
147
|
+
const randomIndex = Math.floor(Math.random() * apiKeys.length);
|
|
148
|
+
return apiKeys[randomIndex];
|
|
162
149
|
}
|
|
150
|
+
const randomApiKey = getRandomApiKey();
|
|
151
|
+
const genAI = new generative_ai_1.GoogleGenerativeAI(AI.API_KEY || randomApiKey);
|
|
163
152
|
return await processRequest(genAI);
|
|
164
153
|
}
|
|
165
154
|
catch (e) {
|
|
166
155
|
if (e.message) {
|
|
167
156
|
if (e.status === 429 || e.status === 403) {
|
|
168
|
-
|
|
169
|
-
if (currentApiKeyIndex < config_1.default.apiKeys.length) {
|
|
170
|
-
return await geminiFlash(message, AI);
|
|
171
|
-
}
|
|
172
|
-
else {
|
|
173
|
-
return 'Ai is on a cooldown for the rest of the day. Either provide your own API key or wait for tomorrow. Check ai.google.dev for free apikeys';
|
|
174
|
-
}
|
|
157
|
+
return 'AI is on a cooldown for the rest of the day. Either provide a new API key or wait for tomorrow. Check ai.google.dev for free API keys.';
|
|
175
158
|
}
|
|
176
159
|
else if (e.status === 400) {
|
|
177
|
-
return
|
|
160
|
+
return 'The hoster/bot owner/the used host isn\'t supported by Gemini.';
|
|
178
161
|
}
|
|
179
162
|
else if (e.message === '[GoogleGenerativeAI Error]: Candidate was blocked due to SAFETY') {
|
|
180
163
|
console.error(e);
|
|
181
|
-
return
|
|
164
|
+
return 'Due to safety enabled by Gemini, you have been blocked.';
|
|
182
165
|
}
|
|
183
166
|
else {
|
|
184
167
|
console.error(e);
|
|
185
|
-
return
|
|
168
|
+
return 'Try again later please... Either API is on a cooldown or an internal server error has occurred. If issue persists, please contact the bot developer or owner of the npm package.';
|
|
186
169
|
}
|
|
187
170
|
}
|
|
188
171
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Gemini-flash.js","sourceRoot":"","sources":["../../../lib/ai/modals-chat/Gemini-flash.ts"],"names":[],"mappings":";;;;;;AAAA,yDAA6F;AAC7F,
|
|
1
|
+
{"version":3,"file":"Gemini-flash.js","sourceRoot":"","sources":["../../../lib/ai/modals-chat/Gemini-flash.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Gemini-pro.d.ts","sourceRoot":"","sources":["../../../lib/ai/modals-chat/Gemini-pro.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Gemini-pro.d.ts","sourceRoot":"","sources":["../../../lib/ai/modals-chat/Gemini-pro.ts"],"names":[],"mappings":"AAQA,wBAAsB,SAAS,CAAC,OAAO,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,GAAG,CAAC;IAAC,EAAE,EAAE,OAAO,CAAA;CAAE,EAAE,EAAE,EAAE;IAAE,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAyLjP"}
|
|
@@ -5,13 +5,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.geminiPro = void 0;
|
|
7
7
|
const generative_ai_1 = require("@google/generative-ai");
|
|
8
|
-
const path_1 = __importDefault(require("path"));
|
|
9
|
-
const fs_1 = __importDefault(require("fs"));
|
|
10
|
-
const config_1 = __importDefault(require("./config"));
|
|
11
8
|
const general_functions_1 = require("../../canvas/utils/general functions");
|
|
12
9
|
const verse_db_1 = require("verse.db");
|
|
10
|
+
const config_1 = __importDefault(require("./config"));
|
|
13
11
|
const axios_1 = __importDefault(require("axios"));
|
|
14
|
-
|
|
12
|
+
const path_1 = __importDefault(require("path"));
|
|
13
|
+
const fs_1 = __importDefault(require("fs"));
|
|
15
14
|
async function geminiPro(message, AI) {
|
|
16
15
|
async function validateKey(apiKey) {
|
|
17
16
|
try {
|
|
@@ -23,16 +22,6 @@ async function geminiPro(message, AI) {
|
|
|
23
22
|
return false;
|
|
24
23
|
}
|
|
25
24
|
}
|
|
26
|
-
async function getValidGenAI(apiKeys, initialIndex) {
|
|
27
|
-
for (let i = initialIndex; i < apiKeys.length; i++) {
|
|
28
|
-
const apiKey = apiKeys[i];
|
|
29
|
-
if (await validateKey(apiKey)) {
|
|
30
|
-
currentApiKeyIndex = i;
|
|
31
|
-
return new generative_ai_1.GoogleGenerativeAI(apiKey);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
return null;
|
|
35
|
-
}
|
|
36
25
|
async function processRequest(genAI) {
|
|
37
26
|
var _a, _b;
|
|
38
27
|
let personalityString = '';
|
|
@@ -42,7 +31,7 @@ async function geminiPro(message, AI) {
|
|
|
42
31
|
personalityString = personalityContent.split('\n').join(' ');
|
|
43
32
|
}
|
|
44
33
|
const generationConfig = {
|
|
45
|
-
maxOutputTokens:
|
|
34
|
+
maxOutputTokens: 1048576,
|
|
46
35
|
};
|
|
47
36
|
const safetySettings = [
|
|
48
37
|
{
|
|
@@ -95,7 +84,7 @@ async function geminiPro(message, AI) {
|
|
|
95
84
|
if (message.db) {
|
|
96
85
|
db = new verse_db_1.connect({ adapter: 'json', dataPath: `${message.serverId}_ChatHistory` });
|
|
97
86
|
const data = await db.find(`${message.userId}_chatHistory`, { userId: message.userId });
|
|
98
|
-
historyData = ((_a = data.results) === null || _a === void 0 ? void 0 : _a.history) || undefined;
|
|
87
|
+
historyData = ((_a = data.results) === null || _a === void 0 ? void 0 : _a.history.slice(-20)) || undefined;
|
|
99
88
|
}
|
|
100
89
|
const chat = model.startChat({
|
|
101
90
|
history: historyData || defaultHistory,
|
|
@@ -111,7 +100,7 @@ async function geminiPro(message, AI) {
|
|
|
111
100
|
mimeType: "image/png",
|
|
112
101
|
},
|
|
113
102
|
};
|
|
114
|
-
result = await
|
|
103
|
+
result = await model.generateContent([AI.userMsg, image]);
|
|
115
104
|
}
|
|
116
105
|
else {
|
|
117
106
|
result = await chat.sendMessage(AI.userMsg);
|
|
@@ -150,39 +139,33 @@ async function geminiPro(message, AI) {
|
|
|
150
139
|
}
|
|
151
140
|
}
|
|
152
141
|
try {
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
genAI = new generative_ai_1.GoogleGenerativeAI(AI.API_KEY);
|
|
142
|
+
if (AI.API_KEY && !(await validateKey(AI.API_KEY))) {
|
|
143
|
+
return 'Invalid API key provided.';
|
|
156
144
|
}
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
}
|
|
145
|
+
function getRandomApiKey() {
|
|
146
|
+
const { apiKeys } = config_1.default;
|
|
147
|
+
const randomIndex = Math.floor(Math.random() * apiKeys.length);
|
|
148
|
+
return apiKeys[randomIndex];
|
|
162
149
|
}
|
|
150
|
+
const randomApiKey = getRandomApiKey();
|
|
151
|
+
const genAI = new generative_ai_1.GoogleGenerativeAI(AI.API_KEY || randomApiKey);
|
|
163
152
|
return await processRequest(genAI);
|
|
164
153
|
}
|
|
165
154
|
catch (e) {
|
|
166
155
|
if (e.message) {
|
|
167
156
|
if (e.status === 429 || e.status === 403) {
|
|
168
|
-
|
|
169
|
-
if (currentApiKeyIndex < config_1.default.apiKeys.length) {
|
|
170
|
-
return await geminiPro(message, AI);
|
|
171
|
-
}
|
|
172
|
-
else {
|
|
173
|
-
return 'Ai is on a cooldown for the rest of the day. Either provide your own API key or wait for tomorrow. Check ai.google.dev for free apikeys';
|
|
174
|
-
}
|
|
157
|
+
return 'AI is on a cooldown for the rest of the day. Either provide a new API key or wait for tomorrow. Check ai.google.dev for free API keys.';
|
|
175
158
|
}
|
|
176
159
|
else if (e.status === 400) {
|
|
177
|
-
return
|
|
160
|
+
return 'The hoster/bot owner/the used host isn\'t supported by Gemini.';
|
|
178
161
|
}
|
|
179
162
|
else if (e.message === '[GoogleGenerativeAI Error]: Candidate was blocked due to SAFETY') {
|
|
180
163
|
console.error(e);
|
|
181
|
-
return
|
|
164
|
+
return 'Due to safety enabled by Gemini, you have been blocked.';
|
|
182
165
|
}
|
|
183
166
|
else {
|
|
184
167
|
console.error(e);
|
|
185
|
-
return
|
|
168
|
+
return 'Try again later please... Either API is on a cooldown or an internal server error has occurred. If issue persists, please contact the bot developer or owner of the npm package.';
|
|
186
169
|
}
|
|
187
170
|
}
|
|
188
171
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Gemini-pro.js","sourceRoot":"","sources":["../../../lib/ai/modals-chat/Gemini-pro.ts"],"names":[],"mappings":";;;;;;AAAA,yDAA6F;AAC7F,
|
|
1
|
+
{"version":3,"file":"Gemini-pro.js","sourceRoot":"","sources":["../../../lib/ai/modals-chat/Gemini-pro.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../lib/ai/modals-chat/config.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,MAAM;;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../lib/ai/modals-chat/config.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,MAAM;;CAQT,CAAC;AAEF,eAAe,MAAM,CAAC"}
|
|
@@ -2,10 +2,11 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const config = {
|
|
4
4
|
apiKeys: [
|
|
5
|
-
"
|
|
6
|
-
"
|
|
7
|
-
"
|
|
8
|
-
"
|
|
5
|
+
"AIzaSyAdlBVg12yjqqGfBqxT5DLGMhP2jysG7Hk",
|
|
6
|
+
"AIzaSyCiko-Viy8FduRAtT-X1T598n-24t0ATK0",
|
|
7
|
+
"AIzaSyC4K7fWab65-Ol4g13FIdJcKAlBIJLPOgA",
|
|
8
|
+
"AIzaSyC2Ga-8e-lRr6D_ehiGlxIUK8Fx7_f9tvk",
|
|
9
|
+
"AIzaSyA2dOYNHZ2O08fBu4rr4YtXO8OskFpRxYo"
|
|
9
10
|
]
|
|
10
11
|
};
|
|
11
12
|
exports.default = config;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../lib/ai/modals-chat/config.ts"],"names":[],"mappings":";;AAAA,MAAM,MAAM,GAAG;IACX,OAAO,EAAE;QACP,yCAAyC;QACzC,yCAAyC;QACzC,yCAAyC;QACzC,yCAAyC;KAC1C;CACF,CAAC;AAEF,kBAAe,MAAM,CAAC"}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../lib/ai/modals-chat/config.ts"],"names":[],"mappings":";;AAAA,MAAM,MAAM,GAAG;IACX,OAAO,EAAE;QACP,yCAAyC;QACzC,yCAAyC;QACzC,yCAAyC;QACzC,yCAAyC;QACzC,yCAAyC;KAC1C;CACF,CAAC;AAEF,kBAAe,MAAM,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,11 +1,20 @@
|
|
|
1
1
|
import { ApexAI, ApexChat, ApexImagine, ApexPainter } from "./utils";
|
|
2
|
-
|
|
2
|
+
import { validOptions } from "./ai/functions/validOptions";
|
|
3
|
+
export { ApexPainter, ApexAI, ApexImagine, ApexChat, validOptions };
|
|
3
4
|
declare const _default: {
|
|
4
5
|
ApexPainter: typeof ApexPainter;
|
|
5
6
|
ApexAI: typeof ApexAI;
|
|
6
7
|
ApexImagine: typeof ApexImagine;
|
|
7
8
|
ApexChat: typeof ApexChat;
|
|
9
|
+
validOptions: Promise<{
|
|
10
|
+
validHercaiModals: string[];
|
|
11
|
+
validEnhancers: string[];
|
|
12
|
+
validSamplers: string[];
|
|
13
|
+
validSXDL: string[];
|
|
14
|
+
validImgStyle: string[];
|
|
15
|
+
validProdiaModals: string[];
|
|
16
|
+
allModals: string[];
|
|
17
|
+
}>;
|
|
8
18
|
};
|
|
9
19
|
export default _default;
|
|
10
|
-
export declare function apexAI(): Promise<void>;
|
|
11
20
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AA8BA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AA8BA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC;;;;;;;;;;;;;;;;AACpE,wBAA4E"}
|
package/dist/index.js
CHANGED
|
@@ -23,7 +23,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.
|
|
26
|
+
exports.validOptions = exports.ApexChat = exports.ApexImagine = exports.ApexAI = exports.ApexPainter = void 0;
|
|
27
27
|
const path = __importStar(require("path"));
|
|
28
28
|
const fs = __importStar(require("fs"));
|
|
29
29
|
const CYAN = "\x1b[36m";
|
|
@@ -55,9 +55,7 @@ Object.defineProperty(exports, "ApexAI", { enumerable: true, get: function () {
|
|
|
55
55
|
Object.defineProperty(exports, "ApexChat", { enumerable: true, get: function () { return utils_1.ApexChat; } });
|
|
56
56
|
Object.defineProperty(exports, "ApexImagine", { enumerable: true, get: function () { return utils_1.ApexImagine; } });
|
|
57
57
|
Object.defineProperty(exports, "ApexPainter", { enumerable: true, get: function () { return utils_1.ApexPainter; } });
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
}
|
|
62
|
-
exports.apexAI = apexAI;
|
|
58
|
+
const validOptions_1 = require("./ai/functions/validOptions");
|
|
59
|
+
Object.defineProperty(exports, "validOptions", { enumerable: true, get: function () { return validOptions_1.validOptions; } });
|
|
60
|
+
exports.default = { ApexPainter: utils_1.ApexPainter, ApexAI: utils_1.ApexAI, ApexImagine: utils_1.ApexImagine, ApexChat: utils_1.ApexChat, validOptions: validOptions_1.validOptions };
|
|
63
61
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA6B;AAC7B,uCAAyB;AAEzB,MAAM,IAAI,GAAW,UAAU,CAAC;AAChC,MAAM,KAAK,GAAW,SAAS,CAAC;AAEhC,MAAM,eAAe,GAAW,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAC;AAC5E,MAAM,WAAW,GAAQ,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC;AAE9E,MAAM,iBAAiB,GAAG,UAAS,OAAe;IAC9C,MAAM,YAAY,GAAQ,WAAW,CAAC,YAAY,IAAI,EAAE,CAAC;IACzD,MAAM,eAAe,GAAQ,WAAW,CAAC,eAAe,IAAI,EAAE,CAAC;IAC/D,MAAM,OAAO,GAAW,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,eAAe,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,eAAe,CAAC;IAC5H,OAAO,OAAO,CAAC;AACnB,CAAC,CAAC;AAEF,KAAK,CAAC,wDAAwD,CAAC;KAC1D,IAAI,CAAC,UAAS,QAAkB;IAC7B,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;AAC3B,CAAC,CAAC;KACD,IAAI,CAAC,UAAS,IAAS;;IACpB,MAAM,OAAO,GAAW,MAAA,MAAA,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,0CAAE,OAAO,0CAAE,OAAO,CAAC;IAC1D,IAAI,OAAO,IAAI,iBAAiB,CAAC,YAAY,CAAC,KAAK,OAAO,EAAE,CAAC;QACzD,OAAO,CAAC,KAAK,CAAC,IAAI;YACd,yDAAyD,GAAG,OAAO,GAAG,IAAI;YAC1E,KAAK,CAAC,CAAC;IACf,CAAC;AACL,CAAC,CAAC;KACD,KAAK,CAAC,UAAS,KAAU,IAAG,CAAC,CAAC,CAAC;AAEpC,mCAAqE;AAE/C,uFAFb,cAAM,OAEa;AAAe,yFAF1B,gBAAQ,OAE0B;AAArB,4FAFH,mBAAW,OAEG;AAAhC,4FAF+B,mBAAW,OAE/B;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA6B;AAC7B,uCAAyB;AAEzB,MAAM,IAAI,GAAW,UAAU,CAAC;AAChC,MAAM,KAAK,GAAW,SAAS,CAAC;AAEhC,MAAM,eAAe,GAAW,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAC;AAC5E,MAAM,WAAW,GAAQ,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC;AAE9E,MAAM,iBAAiB,GAAG,UAAS,OAAe;IAC9C,MAAM,YAAY,GAAQ,WAAW,CAAC,YAAY,IAAI,EAAE,CAAC;IACzD,MAAM,eAAe,GAAQ,WAAW,CAAC,eAAe,IAAI,EAAE,CAAC;IAC/D,MAAM,OAAO,GAAW,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,eAAe,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,eAAe,CAAC;IAC5H,OAAO,OAAO,CAAC;AACnB,CAAC,CAAC;AAEF,KAAK,CAAC,wDAAwD,CAAC;KAC1D,IAAI,CAAC,UAAS,QAAkB;IAC7B,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;AAC3B,CAAC,CAAC;KACD,IAAI,CAAC,UAAS,IAAS;;IACpB,MAAM,OAAO,GAAW,MAAA,MAAA,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,0CAAE,OAAO,0CAAE,OAAO,CAAC;IAC1D,IAAI,OAAO,IAAI,iBAAiB,CAAC,YAAY,CAAC,KAAK,OAAO,EAAE,CAAC;QACzD,OAAO,CAAC,KAAK,CAAC,IAAI;YACd,yDAAyD,GAAG,OAAO,GAAG,IAAI;YAC1E,KAAK,CAAC,CAAC;IACf,CAAC;AACL,CAAC,CAAC;KACD,KAAK,CAAC,UAAS,KAAU,IAAG,CAAC,CAAC,CAAC;AAEpC,mCAAqE;AAE/C,uFAFb,cAAM,OAEa;AAAe,yFAF1B,gBAAQ,OAE0B;AAArB,4FAFH,mBAAW,OAEG;AAAhC,4FAF+B,mBAAW,OAE/B;AADpB,8DAA2D;AACN,6FAD5C,2BAAY,OAC4C;AACjE,kBAAe,EAAE,WAAW,EAAX,mBAAW,EAAE,MAAM,EAAN,cAAM,EAAE,WAAW,EAAX,mBAAW,EAAE,QAAQ,EAAR,gBAAQ,EAAE,YAAY,EAAZ,2BAAY,EAAE,CAAC"}
|
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
import { GoogleGenerativeAI, HarmCategory, HarmBlockThreshold } from "@google/generative-ai";
|
|
2
|
-
import path from 'path';
|
|
3
|
-
import fs from 'fs';
|
|
4
|
-
import config from './config';
|
|
5
2
|
import { converter } from "../../canvas/utils/general functions";
|
|
6
3
|
import { connect } from "verse.db";
|
|
4
|
+
import config from './config';
|
|
7
5
|
import axios from "axios";
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
import path from 'path';
|
|
7
|
+
import fs from 'fs';
|
|
10
8
|
|
|
11
9
|
export async function geminiFlash(message: { userId: string, serverName: string, serverId: string, channelName: string, attachment: any, db: boolean }, AI: { AiPersonality: string | null, userMsg: string, API_KEY: string | null }): Promise<any> {
|
|
12
10
|
|
|
@@ -20,17 +18,6 @@ export async function geminiFlash(message: { userId: string, serverName: string,
|
|
|
20
18
|
}
|
|
21
19
|
}
|
|
22
20
|
|
|
23
|
-
async function getValidGenAI(apiKeys: string[], initialIndex: number): Promise<any> {
|
|
24
|
-
for (let i = initialIndex; i < apiKeys.length; i++) {
|
|
25
|
-
const apiKey = apiKeys[i];
|
|
26
|
-
if (await validateKey(apiKey)) {
|
|
27
|
-
currentApiKeyIndex = i;
|
|
28
|
-
return new GoogleGenerativeAI(apiKey);
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
return null;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
21
|
async function processRequest(genAI: any): Promise<any> {
|
|
35
22
|
let personalityString = '';
|
|
36
23
|
|
|
@@ -41,7 +28,7 @@ export async function geminiFlash(message: { userId: string, serverName: string,
|
|
|
41
28
|
}
|
|
42
29
|
|
|
43
30
|
const generationConfig = {
|
|
44
|
-
maxOutputTokens:
|
|
31
|
+
maxOutputTokens: 1048576,
|
|
45
32
|
};
|
|
46
33
|
|
|
47
34
|
const safetySettings = [
|
|
@@ -99,7 +86,7 @@ export async function geminiFlash(message: { userId: string, serverName: string,
|
|
|
99
86
|
if (message.db) {
|
|
100
87
|
db = new connect({ adapter: 'json', dataPath: `${message.serverId}_ChatHistory` });
|
|
101
88
|
const data = await db.find(`${message.userId}_chatHistory`, { userId: message.userId });
|
|
102
|
-
historyData = data.results?.history || undefined;
|
|
89
|
+
historyData = data.results?.history.slice(-20) || undefined;
|
|
103
90
|
}
|
|
104
91
|
|
|
105
92
|
const chat = model.startChat({
|
|
@@ -118,7 +105,7 @@ export async function geminiFlash(message: { userId: string, serverName: string,
|
|
|
118
105
|
mimeType: "image/png",
|
|
119
106
|
},
|
|
120
107
|
};
|
|
121
|
-
result = await
|
|
108
|
+
result = await model.generateContent([AI.userMsg, image]);
|
|
122
109
|
} else {
|
|
123
110
|
result = await chat.sendMessage(AI.userMsg);
|
|
124
111
|
}
|
|
@@ -171,35 +158,33 @@ export async function geminiFlash(message: { userId: string, serverName: string,
|
|
|
171
158
|
}
|
|
172
159
|
|
|
173
160
|
try {
|
|
174
|
-
|
|
161
|
+
if (AI.API_KEY && !(await validateKey(AI.API_KEY))) {
|
|
162
|
+
return 'Invalid API key provided.';
|
|
163
|
+
}
|
|
175
164
|
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
if (!genAI) {
|
|
181
|
-
return 'All provided API keys are invalid.';
|
|
182
|
-
}
|
|
165
|
+
function getRandomApiKey() {
|
|
166
|
+
const { apiKeys } = config;
|
|
167
|
+
const randomIndex = Math.floor(Math.random() * apiKeys.length);
|
|
168
|
+
return apiKeys[randomIndex];
|
|
183
169
|
}
|
|
170
|
+
|
|
171
|
+
const randomApiKey = getRandomApiKey();
|
|
184
172
|
|
|
173
|
+
const genAI = new GoogleGenerativeAI(AI.API_KEY || randomApiKey);
|
|
185
174
|
return await processRequest(genAI);
|
|
175
|
+
|
|
186
176
|
} catch (e: any) {
|
|
187
177
|
if (e.message) {
|
|
188
178
|
if (e.status === 429 || e.status === 403) {
|
|
189
|
-
|
|
190
|
-
if (currentApiKeyIndex < config.apiKeys.length) {
|
|
191
|
-
return await geminiFlash(message, AI);
|
|
192
|
-
} else {
|
|
193
|
-
return 'Ai is on a cooldown for the rest of the day. Either provide your own API key or wait for tomorrow. Check ai.google.dev for free apikeys';
|
|
194
|
-
}
|
|
179
|
+
return 'AI is on a cooldown for the rest of the day. Either provide a new API key or wait for tomorrow. Check ai.google.dev for free API keys.';
|
|
195
180
|
} else if (e.status === 400) {
|
|
196
|
-
return
|
|
181
|
+
return 'The hoster/bot owner/the used host isn\'t supported by Gemini.';
|
|
197
182
|
} else if (e.message === '[GoogleGenerativeAI Error]: Candidate was blocked due to SAFETY') {
|
|
198
183
|
console.error(e);
|
|
199
|
-
return
|
|
184
|
+
return 'Due to safety enabled by Gemini, you have been blocked.';
|
|
200
185
|
} else {
|
|
201
186
|
console.error(e);
|
|
202
|
-
return
|
|
187
|
+
return 'Try again later please... Either API is on a cooldown or an internal server error has occurred. If issue persists, please contact the bot developer or owner of the npm package.';
|
|
203
188
|
}
|
|
204
189
|
} else {
|
|
205
190
|
console.error(e);
|
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
import { GoogleGenerativeAI, HarmCategory, HarmBlockThreshold } from "@google/generative-ai";
|
|
2
|
-
import path from 'path';
|
|
3
|
-
import fs from 'fs';
|
|
4
|
-
import config from './config';
|
|
5
2
|
import { converter } from "../../canvas/utils/general functions";
|
|
6
3
|
import { connect } from "verse.db";
|
|
4
|
+
import config from './config';
|
|
7
5
|
import axios from "axios";
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
import path from 'path';
|
|
7
|
+
import fs from 'fs';
|
|
10
8
|
|
|
11
9
|
export async function geminiPro(message: { userId: string, serverName: string, serverId: string, channelName: string, attachment: any, db: boolean }, AI: { AiPersonality: string | null, userMsg: string, API_KEY: string | null }): Promise<any> {
|
|
12
10
|
|
|
@@ -20,17 +18,6 @@ export async function geminiPro(message: { userId: string, serverName: string, s
|
|
|
20
18
|
}
|
|
21
19
|
}
|
|
22
20
|
|
|
23
|
-
async function getValidGenAI(apiKeys: string[], initialIndex: number): Promise<any> {
|
|
24
|
-
for (let i = initialIndex; i < apiKeys.length; i++) {
|
|
25
|
-
const apiKey = apiKeys[i];
|
|
26
|
-
if (await validateKey(apiKey)) {
|
|
27
|
-
currentApiKeyIndex = i;
|
|
28
|
-
return new GoogleGenerativeAI(apiKey);
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
return null;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
21
|
async function processRequest(genAI: any): Promise<any> {
|
|
35
22
|
let personalityString = '';
|
|
36
23
|
|
|
@@ -41,7 +28,7 @@ export async function geminiPro(message: { userId: string, serverName: string, s
|
|
|
41
28
|
}
|
|
42
29
|
|
|
43
30
|
const generationConfig = {
|
|
44
|
-
maxOutputTokens:
|
|
31
|
+
maxOutputTokens: 1048576,
|
|
45
32
|
};
|
|
46
33
|
|
|
47
34
|
const safetySettings = [
|
|
@@ -99,7 +86,7 @@ export async function geminiPro(message: { userId: string, serverName: string, s
|
|
|
99
86
|
if (message.db) {
|
|
100
87
|
db = new connect({ adapter: 'json', dataPath: `${message.serverId}_ChatHistory` });
|
|
101
88
|
const data = await db.find(`${message.userId}_chatHistory`, { userId: message.userId });
|
|
102
|
-
historyData = data.results?.history || undefined;
|
|
89
|
+
historyData = data.results?.history.slice(-20) || undefined;
|
|
103
90
|
}
|
|
104
91
|
|
|
105
92
|
const chat = model.startChat({
|
|
@@ -118,7 +105,7 @@ export async function geminiPro(message: { userId: string, serverName: string, s
|
|
|
118
105
|
mimeType: "image/png",
|
|
119
106
|
},
|
|
120
107
|
};
|
|
121
|
-
result = await
|
|
108
|
+
result = await model.generateContent([AI.userMsg, image]);
|
|
122
109
|
} else {
|
|
123
110
|
result = await chat.sendMessage(AI.userMsg);
|
|
124
111
|
}
|
|
@@ -171,35 +158,33 @@ export async function geminiPro(message: { userId: string, serverName: string, s
|
|
|
171
158
|
}
|
|
172
159
|
|
|
173
160
|
try {
|
|
174
|
-
|
|
161
|
+
if (AI.API_KEY && !(await validateKey(AI.API_KEY))) {
|
|
162
|
+
return 'Invalid API key provided.';
|
|
163
|
+
}
|
|
175
164
|
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
if (!genAI) {
|
|
181
|
-
return 'All provided API keys are invalid.';
|
|
182
|
-
}
|
|
165
|
+
function getRandomApiKey() {
|
|
166
|
+
const { apiKeys } = config;
|
|
167
|
+
const randomIndex = Math.floor(Math.random() * apiKeys.length);
|
|
168
|
+
return apiKeys[randomIndex];
|
|
183
169
|
}
|
|
170
|
+
|
|
171
|
+
const randomApiKey = getRandomApiKey();
|
|
184
172
|
|
|
173
|
+
const genAI = new GoogleGenerativeAI(AI.API_KEY || randomApiKey);
|
|
185
174
|
return await processRequest(genAI);
|
|
175
|
+
|
|
186
176
|
} catch (e: any) {
|
|
187
177
|
if (e.message) {
|
|
188
178
|
if (e.status === 429 || e.status === 403) {
|
|
189
|
-
|
|
190
|
-
if (currentApiKeyIndex < config.apiKeys.length) {
|
|
191
|
-
return await geminiPro(message, AI);
|
|
192
|
-
} else {
|
|
193
|
-
return 'Ai is on a cooldown for the rest of the day. Either provide your own API key or wait for tomorrow. Check ai.google.dev for free apikeys';
|
|
194
|
-
}
|
|
179
|
+
return 'AI is on a cooldown for the rest of the day. Either provide a new API key or wait for tomorrow. Check ai.google.dev for free API keys.';
|
|
195
180
|
} else if (e.status === 400) {
|
|
196
|
-
return
|
|
181
|
+
return 'The hoster/bot owner/the used host isn\'t supported by Gemini.';
|
|
197
182
|
} else if (e.message === '[GoogleGenerativeAI Error]: Candidate was blocked due to SAFETY') {
|
|
198
183
|
console.error(e);
|
|
199
|
-
return
|
|
184
|
+
return 'Due to safety enabled by Gemini, you have been blocked.';
|
|
200
185
|
} else {
|
|
201
186
|
console.error(e);
|
|
202
|
-
return
|
|
187
|
+
return 'Try again later please... Either API is on a cooldown or an internal server error has occurred. If issue persists, please contact the bot developer or owner of the npm package.';
|
|
203
188
|
}
|
|
204
189
|
} else {
|
|
205
190
|
console.error(e);
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
const config = {
|
|
2
2
|
apiKeys: [
|
|
3
|
-
"
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
"
|
|
3
|
+
"AIzaSyAdlBVg12yjqqGfBqxT5DLGMhP2jysG7Hk",
|
|
4
|
+
"AIzaSyCiko-Viy8FduRAtT-X1T598n-24t0ATK0",
|
|
5
|
+
"AIzaSyC4K7fWab65-Ol4g13FIdJcKAlBIJLPOgA",
|
|
6
|
+
"AIzaSyC2Ga-8e-lRr6D_ehiGlxIUK8Fx7_f9tvk",
|
|
7
|
+
"AIzaSyA2dOYNHZ2O08fBu4rr4YtXO8OskFpRxYo"
|
|
7
8
|
]
|
|
8
9
|
};
|
|
9
10
|
|
package/lib/index.ts
CHANGED
|
@@ -29,10 +29,6 @@ fetch("https://registry.npmjs.com/-/v1/search?text=apexify.js")
|
|
|
29
29
|
.catch(function(error: any) {});
|
|
30
30
|
|
|
31
31
|
import { ApexAI, ApexChat, ApexImagine, ApexPainter } from "./utils";
|
|
32
|
-
|
|
33
|
-
export { ApexPainter, ApexAI, ApexImagine, ApexChat };
|
|
34
|
-
export default { ApexPainter, ApexAI, ApexImagine, ApexChat };
|
|
35
|
-
|
|
36
|
-
export async function apexAI() {
|
|
37
|
-
throw new Error('This Function is deprecated. Please use ApexAI instead. Refer to the documentation for further information.')
|
|
38
|
-
}
|
|
32
|
+
import { validOptions } from "./ai/functions/validOptions";
|
|
33
|
+
export { ApexPainter, ApexAI, ApexImagine, ApexChat, validOptions };
|
|
34
|
+
export default { ApexPainter, ApexAI, ApexImagine, ApexChat, validOptions };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "apexify.js",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.2.0",
|
|
4
4
|
"description": "Ai and Canvas library. Supports typescript and javascript",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -153,6 +153,7 @@
|
|
|
153
153
|
"@google/generative-ai": "^0.11.1",
|
|
154
154
|
"@iamtraction/google-translate": "^2.0.1",
|
|
155
155
|
"@napi-rs/canvas": "^0.1.51",
|
|
156
|
+
"apexify.js": "^4.1.9",
|
|
156
157
|
"api": "^6.1.1",
|
|
157
158
|
"gifencoder": "^2.0.1",
|
|
158
159
|
"hercai": "^12.2.0",
|