chat / script.js
Ikyy's picture
Update script.js
3e82bd8 verified
// Menyimpan riwayat percakapan per pengguna
let conversationHistory = {};
// Identitas pengguna
const userId = generateUniqueId(); // Fungsi untuk menghasilkan ID unik
// Fungsi untuk menghasilkan ID unik
function generateUniqueId() {
return "user_" + Math.random().toString(36).substr(2, 9);
}
async function sendMessage() {
const userInput = document.getElementById("userInput");
const messages = document.getElementById("messages");
const typingIndicator = document.getElementById("typingIndicator");
if (userInput.value.trim() === "") {
return; // Don't send empty messages
}
// Create user message element
const userMessage = document.createElement("div");
userMessage.className = "message user-message";
userMessage.textContent = userInput.value;
messages.appendChild(userMessage);
// Update conversation history
if (!conversationHistory[userId]) {
conversationHistory[userId] = [];
}
conversationHistory[userId].push({
role: "user",
content: userInput.value
});
// Scroll to bottom of messages
messages.scrollTop = messages.scrollHeight;
// Clear user input field
userInput.value = "";
// Show typing indicator
typingIndicator.style.display = "flex";
// Create bot message element
const botResponse = await generate(userMessage.textContent);
const botMessage = document.createElement("div");
botMessage.className = "message bot-message";
let ee = 0;
botMessage.textContent = botResponse;
// Update conversation history
conversationHistory[userId].push({
role: "assistant",
content: botResponse
});
// Hide typing indicator
typingIndicator.style.display = "none";
messages.appendChild(botMessage);
// Scroll to bottom of messages
messages.scrollTop = messages.scrollHeight;
}
async function generate(q) {
// Mengambil riwayat percakapan untuk pengguna tertentu
const userConversation = conversationHistory[userId] || [];
const bot = await fetch("https://chatbot-ji1z.onrender.com/chatbot-ji1z", {
method: "post",
body: JSON.stringify({
messages: [
{
role: "system",
content:
"Kamu adalah asisten virtual dengan nama ikyy yang dibuat oleh ikyyofc. 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."
},
...userConversation
]
})
});
let tes = await bot.json();
// Mengembalikan respons dari bot
return tes.choices[0].messages.content;
}