import { GoogleGenerativeAI } from "@google/generative-ai"; const genAI = new GoogleGenerativeAI(process.env.API_KEY); const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash" }); /** * Menganalisis data CSV untuk menjawab pertanyaan seputar jadwal * @param {string} pesanUser - Pertanyaan dari guru * @param {string} dataJadwalCSV - Data mentah string CSV dari Google Sheets * @param {Array} riwayat - Riwayat obrolan dari index.js (Bawaan Kosong jika chat baru) * @returns {Promise} - Jawaban rapi hasil analisa Gemini */ export async function jalankanJadwalAgent(pesanUser, dataJadwalCSV, riwayat = []) { const promptSistem = ` Kamu adalah asisten admin Sekolah Minggu DNA Kids yang cerdas, ramah, dan sangat teliti. Tugasmu adalah menjawab pertanyaan user berdasarkan DATA MENTAH CSV dari Google Sheets berikut ini: ========== DATA JADWAL CSV ========== ${dataJadwalCSV} ===================================== ATURAN UTAMA: 1. Jawablah secara singkat, padat, informatif, dan gunakan emoji Kristen/anak-anak yang ramah (seperti ✨, 🌟, 🙏, 📖). 2. Jika data yang dicari user tidak ada di dalam CSV, katakan dengan jujur dan sopan bahwa jadwal belum tertera. 3. Selalu asumsikan format tanggal pada CSV adalah HARI, TANGGAL-BULAN-TAHUN. 4. Jangan berhalusinasi atau mengada-ada nama atau tanggal yang tidak tertera di data CSV. `; // 🟢 MENGUBAH ARRAY RIWAYAT MENJADI BLOK TEKS KONTEKS const konteksRiwayat = riwayat.length > 0 ? `--- RIWAYAT PERCAKAPAN SEBELUMNYA (Gunakan sebagai konteks jika user menggunakan kata ganti seperti "kalau minggu depannya lagi?") ---\n` + riwayat.map(h => `${h.role === 'user' ? 'User' : 'Asisten'}: ${h.content}`).join('\n') + '\n=====================================\n' : ''; try { // 🟢 Menyisipkan konteksRiwayat di tengah sistem jaringan prompt const hasil = await model.generateContent([promptSistem, konteksRiwayat, pesanUser]); return hasil.response.text(); } catch (error) { console.error("❌ Eror pada Jadwal Agent:", error); return "Maaf ya, Kak, sistem kami sedang mengalami kendala saat membaca jadwal. Mohon hubungi koordinator. 🙏"; } }