Skip to content

Commit 0380fa4

Browse files
update AIservices
1 parent ccb9ea8 commit 0380fa4

File tree

1 file changed

+49
-10
lines changed

1 file changed

+49
-10
lines changed

assets/js/aiService.js

Lines changed: 49 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
// aiService.js
2-
1+
// aiService.js by **MIA**
2+
import { buildPrompt } from "./promptBuilder.js";
33
/**
44
* Mengirim prompt ke Groq API melalui Cloudflare Worker kamu.
5-
*
5+
*
66
* @param {object} prompt - Object prompt yang berisi model dan messages
77
* @returns {Promise<string>} - Hasil jawaban AI dalam bentuk teks
88
*/
@@ -14,20 +14,59 @@ export async function sendToAI(prompt) {
1414
},
1515
body: JSON.stringify(prompt)
1616
});
17-
18-
if (!response.ok) throw new Error("Gagal menghubungi AI");
19-
17+
18+
if (!response.ok) {
19+
// Lebih baik lempar error dengan detail jika respon tidak OK
20+
const errorData = await response.json().catch(() => ({ message: "Respon bukan JSON" }));
21+
throw new Error(`Gagal menghubungi AI: ${response.status} - ${errorData.message || response.statusText}`);
22+
}
2023
const data = await response.json();
2124
return data.choices?.[0]?.message?.content || "Maaf, tidak ada jawaban.";
2225
}
2326

24-
// Pastikan DOM sudah dimuat sebelum memanggil sendToAI
2527
document.addEventListener('DOMContentLoaded', async () => {
28+
const messagePrompt = "kamu adalah lyra, marketing toko digital daffa";
29+
const chatWelcomeDiv = document.getElementById('chat-welcome');
2630
try {
27-
const result = await sendToAI("Halo, ini adalah pesan percobaan.");
31+
// --- PERBAIKAN DI SINI ---
32+
// Kirim prompt sebagai OBJEK sesuai format yang diharapkan oleh Groq API
33+
const promptObject = {
34+
model: "gemma2-9b-it", // Ganti dengan model Groq yang kamu gunakan rekomen gua: gemma2
35+
messages: [{ role: "user", content: messagePrompt }]
36+
};
37+
38+
const result = await sendToAI(promptObject);
39+
40+
// --- BAGIAN PERUBAHAN UTAMA DI SINI ---
41+
// Ubah konten HTML dari div dengan hasil dari AI
42+
if (chatWelcomeDiv) { // Pastikan elemen ditemukan
43+
// Kamu bisa langsung menampilkan hasilnya:
44+
// chatWelcomeDiv.innerText = result;
45+
46+
// Atau, jika Kamu ingin mempertahankan beberapa HTML bawaan dan hanya mengganti sebagian,
47+
// Kamu bisa manipulasi innerHTML atau membuat elemen baru.
48+
// Contoh: mengganti teks selamat datang dengan respon AI
49+
chatWelcomeDiv.innerHTML = `<h2 class="font-bold text-4xl text-blue-400">L Y Я A</h2><br>${result}`;
50+
51+
// Jika Kamu ingin efek fading atau animasinya, Kamu bisa tambahkan class
52+
chatWelcomeDiv.classList.remove('opacity-100', 'blur-0');
53+
chatWelcomeDiv.classList.add('opacity-0', 'blur-sm'); // Sembunyikan dulu
54+
55+
setTimeout(() => {
56+
chatWelcomeDiv.innerHTML = `<h2 class="font-bold text-4xl text-blue-400">L Y Я A</h2><br>${result}`;
57+
chatWelcomeDiv.classList.remove('opacity-0', 'blur-sm');
58+
chatWelcomeDiv.classList.add('opacity-100', 'blur-0'); // Munculkan kembali
59+
}, 700); // Sesuaikan dengan durasi transisi CSS Kamu (700ms)
60+
}
61+
2862
console.log("Respon dari AI:", result);
29-
// Di sini kamu bisa melakukan sesuatu dengan 'result', misalnya menampilkannya di UI
3063
} catch (error) {
3164
console.error("Terjadi kesalahan:", error.message);
65+
if (chatWelcomeDiv) {
66+
chatWelcomeDiv.innerHTML = `<span class="font-bold text-red-500">Error:</span> ${error.message}`;
67+
chatWelcomeDiv.classList.add('text-red-500'); // Beri warna merah untuk error
68+
chatWelcomeDiv.classList.remove('opacity-0', 'blur-sm');
69+
chatWelcomeDiv.classList.add('opacity-100', 'blur-0');
70+
}
3271
}
33-
});
72+
});

0 commit comments

Comments
 (0)