// 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; }