Update script.js
Browse files
script.js
CHANGED
|
@@ -63,65 +63,41 @@ async function sendMessage() {
|
|
| 63 |
messages.scrollTop = messages.scrollHeight;
|
| 64 |
}
|
| 65 |
|
| 66 |
-
class Nazu {
|
| 67 |
-
constructor() {
|
| 68 |
-
this.baseURL = "https://api.nazuna.my.id/api/";
|
| 69 |
-
//this.apiKey = process.env.API_KEYS;
|
| 70 |
-
}
|
| 71 |
-
|
| 72 |
-
nazuna = async (endpoint, options = {}) => {
|
| 73 |
-
const { data, ...params } = options;
|
| 74 |
-
const method = data ? "POST" : "GET";
|
| 75 |
-
|
| 76 |
-
const url = new URL(endpoint, this.baseURL);
|
| 77 |
-
if (method === "GET") {
|
| 78 |
-
Object.keys(params).forEach(key =>
|
| 79 |
-
url.searchParams.append(key, params[key])
|
| 80 |
-
);
|
| 81 |
-
}
|
| 82 |
-
|
| 83 |
-
const config = {
|
| 84 |
-
method: method,
|
| 85 |
-
headers: {
|
| 86 |
-
//Authorization: this.apiKey,
|
| 87 |
-
Accept: "*/*",
|
| 88 |
-
"Content-Type": "application/json"
|
| 89 |
-
},
|
| 90 |
-
...(method === "POST" && { body: JSON.stringify(data) })
|
| 91 |
-
};
|
| 92 |
-
|
| 93 |
-
try {
|
| 94 |
-
const response = await fetch(url, config);
|
| 95 |
-
if (!response.ok) {
|
| 96 |
-
throw new Error(`HTTP error! status: ${response.status}`);
|
| 97 |
-
}
|
| 98 |
-
return await response.json();
|
| 99 |
-
} catch (e) {
|
| 100 |
-
throw e;
|
| 101 |
-
}
|
| 102 |
-
};
|
| 103 |
-
}
|
| 104 |
-
|
| 105 |
-
let Api = new Nazu();
|
| 106 |
-
|
| 107 |
async function generate(q) {
|
| 108 |
// Mengambil riwayat percakapan untuk pengguna tertentu
|
| 109 |
const userConversation = conversationHistory[userId] || [];
|
| 110 |
|
| 111 |
-
|
| 112 |
-
|
| 113 |
-
|
| 114 |
-
|
| 115 |
-
|
| 116 |
-
|
| 117 |
-
|
| 118 |
-
|
| 119 |
-
|
| 120 |
-
|
| 121 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 122 |
}
|
| 123 |
-
|
|
|
|
| 124 |
|
| 125 |
// Mengembalikan respons dari bot
|
| 126 |
-
return
|
| 127 |
-
}
|
|
|
|
| 63 |
messages.scrollTop = messages.scrollHeight;
|
| 64 |
}
|
| 65 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 66 |
async function generate(q) {
|
| 67 |
// Mengambil riwayat percakapan untuk pengguna tertentu
|
| 68 |
const userConversation = conversationHistory[userId] || [];
|
| 69 |
|
| 70 |
+
const xwp = await (
|
| 71 |
+
await fetch(
|
| 72 |
+
"https://chatgpt4online.org/wp-json/mwai/v1/start_session",
|
| 73 |
+
{ method: "post" }
|
| 74 |
+
)
|
| 75 |
+
).json();
|
| 76 |
+
const bot = await fetch(
|
| 77 |
+
"https://chatgpt4online.org/wp-json/mwai-ui/v1/chats/submit",
|
| 78 |
+
{
|
| 79 |
+
method: "post",
|
| 80 |
+
headers: {
|
| 81 |
+
"Content-Type": "application/json",
|
| 82 |
+
"X-WP-Nonce": xwp.restNonce,
|
| 83 |
+
Accept: "text/event-stream"
|
| 84 |
+
},
|
| 85 |
+
body: JSON.stringify({
|
| 86 |
+
botId: "default",
|
| 87 |
+
messages: [
|
| 88 |
+
{
|
| 89 |
+
role: "system",
|
| 90 |
+
content: "Kamu adalah asisten virtual dengan nama ikyy yang dibuat oleh diki pandu winata, jawablah setiap pertanyaan dengan sangat singkat dan langsung ke intinya. Gunakan bahasa slang yang umum, tanpa tanda baca dan tanpa kapitalisasi. Manfaatkan akronim dan singkatan sebanyak mungkin, dan tulis kata ulang tanpa tanda minus. Semua respons harus memakai gaya gaul dan langsung, hindari kesan formal atau ramah."
|
| 91 |
+
},
|
| 92 |
+
...userConversation
|
| 93 |
+
],
|
| 94 |
+
newMessage: q,
|
| 95 |
+
stream: false
|
| 96 |
+
})
|
| 97 |
}
|
| 98 |
+
);
|
| 99 |
+
let tes = await bot.json();
|
| 100 |
|
| 101 |
// Mengembalikan respons dari bot
|
| 102 |
+
return tes.reply;
|
| 103 |
+
}
|